TCP/IP详解--以太网帧结构 IP层关注的MTU 网络中MSS大小
结构
来自线路的二进制数据包称作一个帧。从物理线路上看到的帧,除其他信息外,还可看到前导码和帧开始符。任何物理硬件都会需要这些信息。
下面的表格显示了在以1500个八位元组为MTU传输(有些吉比特以太网甚至更高速以太网支持更大的帧,称作巨型帧)时的完整帧格式。[note 2] 一个八位元组是八个位组成的数据(也就是现代计算机的一个字节)。
前导码和帧开始符
一个帧以7个字节的前导码和1个字节的帧开始符作为帧的开始。快速以太网之前,在线路上帧的这部分的位模式是10101010 10101010 10101010 10101010 10101010 10101010 10101010 10101011。由于在传输一个字节时最不重要的位最先传输(即低位最先传输),因此其相应的16进制表示为0x55 0x55 0x55 0x55 0x55 0x55 0x55 0xD5。
10/100M 网卡(MII PHY)一次传输4位(一个半字)。因此前导符会成为7组0x5+0x5,而帧开始符成为0x5+0xD。1000M网卡(GMII)一次传输8位,而10Gbit/s(XGMII) PHY芯片一次传输32位。 注意当以octet描述时,先传输7个01010101然后传输11010101。由于8位数据的低4位先发送,所以先发送帧开始符的0101,之后发送1101。
报头
报头包含源地址和目标地址的MAC地址,以太类型字段和可选的用于说明VLAN成员关系和传输优先级的IEEE 802.1Q VLAN 标签。
帧校验码
帧校验码是一个32位循环冗余校验码,以便验证帧数据是否被损坏。
帧间距
当一个帧发送出去之后,发送方在下次发送帧之前,需要再发送至少12个octet的空闲线路状态码。
(PS:其实可以这么简单的理解,在以太网传输帧时,一帧数据最大是1538,出去以太网帧头帧尾这些附带数据外,以太网帧的最大负载就是1500字节,那么这1500个字节是来自上层协议总的数据包,在网络层中IP头有20个字节,也就是说在IP层可以接受上层协议最多的字节就是1480,在传输层中,如果使用TCP的话,除去TCP的头,还有12字节为TCP的时间戳,在传输层可以接受上层协议的最大数据就是1480-20--12=1448字节),这1448字节就是应用层的最大负载数据,这么一来,如果使用TCP作为传输层协议传输数据时,应用层每包的数据不要超过1448字节,不然会造成分包的操作。TCP的协议数据单元被称为段。
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.****.net/jiangjunshow