2.5 IP与以太网的包收发操作

2.5.1包的基本知识

TCP/IP 包含两个头部

(a)MAC头部(用于以太网协议)

(b)IP头部(用于IP协议)

 

(1)路由器根据目标地址判断下一个路由器的位置

(2)集线器在子网中将网络包传给下一个路由

实际上,集线器是按照以太网规则传输包的设备,而路由器是按照IP规则传输包的设备

(1)IP协议根据目标地址判断下一个IP转发设备的位置

(2)子网中的以太网协议将包传输到下一个转发设备

IP模块负责添加

(1)MAC头部:以太网用的头部,包含MAC地址

(2)IP头部:IP用的头部,包含IP地址

 

2.5.3生成包含接收方IP地址的IP头部

IP地址由TCP模块告知的,而TCP又是在执行连接操作是从应用程序那里获得这个地址

IP头部格式

IP地址实际上不是分配给计算机的,而是分配给网卡的

 

IP模块根据路由表Gateway栏的内容判断应该把包发给谁

 

2.5.4生成以太网用的MAC头部

MAC地址是在网卡生产时写入ROM里的

 

2.5.5通过ARP查询目标路由器的MAC地址

 

2.5.6以太网的基本知识

(c)使用的交换式集线器,现在信号只会流到根据MAC地址指定的设备,而不会到达其他设备了

 

2.5.7将IP包转换成电或光信号发送出去

网卡依靠网卡驱动将IP生成的存在内存中的一串数字信息IP包转换成光或电信号

 

2.5.8给网络包再加3个控制数据

MAC模块会将包从缓冲区中取出,并在开头加上报头和起始帧分解符,在末尾加上用于检测错误的FCS(帧校验序列)

末尾的FCS用来检查包传输过程中因噪声导致的波形紊乱、数据错误,它是一个32比特的序列,是通过一个公式对包中从头到尾的所有内容进行计算而得出来的。

报头是一串像10101010这样1和0交替出现的比特序列,长度为56比特 它的作用是确定包的读取时机

起始帧分界符是一个用来表示包起始位置的标记

 

2.5.9 向集线器发送网络包

网卡的MAC模块生成通用信号,然后由PHY(MAU)模块转换成可在网线中传输的格式,并通过网线发送出去