【计网】初识计算机网络(图解+举例+详细说明)

初识计算机网络

前言:前面我们主要梳理了计算机系统编程的内容,现在开始走进计算机网络的大门

计算机网络背景

网络发展:
独立模式: 计算机之间相互独立;
图片来自《图解TCP/IP(第5版)》

网络互联:多台计算机连接在一起,完成数据共享
在这里插入图片描述
局域网LAN:计算机数量更多了, 通过交换机和路由器连在一起
在这里插入图片描述
广域网WAN:将远隔千里的计算机都连在一起;
在这里插入图片描述

网络基础概念

IP地址:unint32_t类型的一个整数,用于在网络中唯一标识一台主机。
分类:
IPV4:存放32位的整数,用于在网络中唯一标识一台主机
IPV6:存放128位的整数,存储防伪更大,但因为不兼容IPV4而没有推广起来
解决IPV4地址不够用的情况下的两种方法:
DHCP动态地址分配计数:谁上网给谁分配
NAT地址转换技术:使用同一IP地址上网
场景:
在这里插入图片描述
例:小杨和他对象进行qq聊天(发送i miss you),怎样才能通过路由器而准确找到他对象所对应的主机呢?就是通过IP地址作用,否则可能会发给他对象的闺蜜,那就不好了。

端口:unint16_t 类型的一个整数,用于一个主机上标识进程
端口号范围:64K 0~65535
一个端口只能被一个进程占用,但是一个进程可以使用多个端口
例:要将用户数据要发送到小杨对象主机中的QQ上,就需要端口来进行完成,否则多个进程,主机不知发送给谁,导致传输出错。

协议:一种约定
通信协议:通信双方在通信过程中数据格式约定
(只有使用同一种标准网络通信协议才能实现网络互联)
例:假设小杨和他对象,一个说广东话,一个说汉中话,那么无法进行沟通,他们必须达成一种说普通话的“协议”才能进行沟通。
协议分层:
例:在这里插入图片描述
小杨和他对象进行通话,可以使用电话机来完成,也可以使用手机完成,并不会影响他们通话。分层最大的好处在于 “封装” ( 面向对象例子)
网络传输五元组:源IP地址,目的IP地址,源端口,目的端口,协议
协议分层模型
OSI七层模型(了解即可)
在这里插入图片描述
由于划分过于细致,则较为冗余复杂,不常用
TCP/IP五层(或四层)模型(常用)
在这里插入图片描述
应用层:负责进程间的数据沟通;(应用层协议都为程序员自己定义的,如:http,ftp,ssh等协议)
传输层:负责进程间的数据传输;(TCP/UDP协议)
网络层:负责地址管理与路由选择;(IP协议)
链路层:负责相邻设备的数据传输;(以太网协议-Ethernet)
物理层(可无):负责光电信号的传输
数据包封装和分用
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame).
应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation).
首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息.数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 “上层协议
字段” 将数据交给对应的上层协议处理.
下图为数据封装的过程
在这里插入图片描述
数据分用的过程
在这里插入图片描述

网络字节序

字节序:cpu从内存中对数据进行存取的顺序
主机字节序的分类:
大端字节序:低地址存高位
小端字节序:低地址存低位
(使用联合可以确定主机字节序是大端还是小端)
决定主机字节序是大端还是小端关键:cpu架构 X86—小端、MIPS—大端
主机字节序对网络通信的影响:不同主机字节序的两台主机进行通信时可能会造成数据二义,因此使用大端字节序作为网络字节序

发布了30 篇原创文章 · 获赞 77 · 访问量 6395

猜你喜欢

转载自blog.csdn.net/qq_43676757/article/details/105301948