以太网数据包、ip数据包、udp数据包
搭配这篇博文服用,效果更好:数据封装 和 数据拆封:https://blog.csdn.net/u011754972/article/details/117946968
【以太网数据包】
即“帧”(frame)
,每一帧分成两个部分:标头(Head)
和数据(Data)
。“标头”
包含数据包的一些说明项,比如发送者MAC地址
、接受者MAC地址
、数据类型
等等;
"数据"
则是数据包
的具体内容。“标头”
的长度,固定为18 字节
。"数据"
的长度,最短为 46 字节
,最长为1500 字节
。因此,整个"帧"
最短为64 字节
,最长为1518 字节
。
如果数据很长,就必须分割成多个帧进行发送。
【IP数据包】
根据IP 协议
发送的数据,就叫做 IP 数据包
。不难想象,其中必定包括IP 地址信息
。以太网数据包
只包含MAC地址
,并没有 IP 地址
的栏位。
把 IP 数据包
直接放进以太网数据包
的“数据”
部分,因此完全不用修改以太网的规格。
IP 数据包 也分为“标头”
和“数据”
两个部分。“标头”
部分主要包括版本
、长度
、IP 地址
等信息,“数据”
部分则是 IP 数据包
的具体内容。
IP数据包
的 “标头”
部分的长度为 20
到60
字节,整个数据包的总长度最大为65,535字节
。因此,理论上,一个 IP 数据包
的“数据”
部分,最长为 65,515字节
。
前面说过,以太网数据包
的“数据”
部分,最长只有 1500 字节。因此,如果 IP 数据包
超过了 1500 字节,它就需要分割
成几个以太网数据包,分开发送了。
【UDP数据包】
UDP数据包
,也是由“标头”
和“数据”
两部分组成。“标头”
部分主要定义了发出端口
和接收端口
,“数据”
部分就是具体的内容。
然后,把整个 UDP 数据包
放入 IP 数据包
的“数据”
部分,而前面说过,IP 数据包
又是放在以太网数据包
之中的.
以太网数据包
中存放 IP数据包
;
IP数据包
中存放 UDP数据包
。