数据传输总体流程图:
备注:此文档主要讨论普通用户数据包,不包括特俗包头,例如 PPP、802.1Q、QOS等相关情况
我们讨论一个包的长度大小,主要取决于底层(数据链路层)所能支持的最大长度=1518字节。
1518字节=帧头+包头+段头+数据
由上图我们可以看出,数据封装到底层的时候,已经封装了帧头(2层)、包头(3层)、段头(4层) ,由此,我们可以进行逆推。
帧头长度:
这里帧头我们讨论ethernet2型帧,当然还有802.11、802.3帧类型
帧头总长度=目的MAC6字节+源MAC6字节+Type2字节+FCS4字节=18字节
IP包头长度:
这里我们也只讨论IPV4包头,IPV6不做讨论,也不讨论拓展包头
包头长度=20字节,具体构成如下图
段头长度:
1、TCP头部长度为20字节:
2、UDP头部8个字节
总结:
封装TCP的数据长度=1518-18-20-20==1460字节
封装UDP的数据长度=1518-18-20-8==1472字节