数据帧、MTU、MSS、IP分片

1.以太网帧网络

  在以太网链路上的数据包称做以太帧,在802.3标准里,规定了一个以太帧的数据部分(Payload)的最大长度是1500个字节(MTU),再加上14字节链路头和4字节的FCS,因此以太网帧的最大长度为1518。另外,以太网帧的最小长度为64字节。blog

  [1]4字节的FCS是网卡处理的,因此抓到的包看不到这个字段(网卡驱动去掉了),组建包时也不用设置这个字段(由网卡驱动计算填充)。im

  [2]每一个帧的前面有7字节的前导码和1字节的帧起始定界符,这8个字节是帧以外的数据,由接收器电路使用。数据

  [3]链路头+4字节的FCS是帧头,MTU是帧的负载,因此MTU是不包括链路头的。协议

  

2.MSSdb

  MSS是TCP报文负载的最大长度。MSS经常使用1460,是由于MTU最大为1500,减去IP头(20字节)和TCP头(20字节)后为1460。img

  MSS的做用:dba

    [1]若是一端的接收缓冲区比较小(例如10字节),则必须两端协商一个合适的MSS大小。co

    [2]提升网络带宽的利用率,减小IP分片和重组,由于发送到IP的数据包过大时会进行IP分片和重组,而经过MSS限制数据大小,上送到IP层时数据长度有限制,所以能够减小分片。ps

  而UDP协议没有MSS,因此发送给IP层时,由IP协议完成分片。例如发送数据长度为2000字节,使用TCP协议时(例如MSS是1460),TCP分红两个包上送到IP层,此时IP层不用分片;而使用UDP时,一次上送到IP层,此时IP层须要分片。

3.IP分片

  IP层收到数据时,若是数据加上IP头的长度超过MTU,则须要分片。

相关文章
相关标签/搜索