链路层的三个主要目的:
- 为IP模块发送和接收IP数据报。
- 为ARP模块发送ARP请求和接收ARP应答。
- 为RARP发送RARP请求和接收RARP应答。
目的地址(6字节) + 源地址(6字节) + 类型(2字节) + 数据(46-1500字节) + CRC校验(4字节)
链路层对数据帧长度的限制,这个上限值称为最大传输单元(MTU)。在上图中,1500就是以太网的MTU,IP数据报大于这个MTU就需要分片传输了。
下面看几个实例,由于抓包工具Wireshark把CRC字段给过滤掉了,所以看不到这个字段。
TCP包(传输层):
UDP包(传输层):
ICMP包(网络层):
SSDP包(应用层):
ARP包(链路层):
链路层的地址都是以6字节的硬件地址,也就是MAC地址来表示的。由于数据字段要求最小长度为46字节,而ARP数据字段只有28字节,所有要在后面插入填充字节,也就是Padding后面的那些0。从上面这些不同协议的包可以看出,网络层和网络层之上的数据包统一归类到IP(0x0800)类型中,具体是那一层的数据则交由上层区分。
参考:
《TCP/IP详解》 P15-P16.
版权声明:本文为jy02326166原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。