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)模块转换成可在网线中传输的格式,并通过网线发送出去