- 网络层数据包(IP数据包)由首部+数据两部分组成
-
数据:很多时候使用上层传输层传递下来的数据段组成
网络层首部.png
首部
- 版本、占4位 、0b0100 :IPv4 、0b110:IPv6
- 首部长度、占4位、 二进制乘以4才是最终长度 0b101(最短) 0b110(最长)
- 区分服务、占8位、 可以用于提高网络的服务质量(知道就好)
-
总长度、占16位、 首部 + 数据的长度之和,最大值是 65535字节
网络层首部-总长度.png
- 由于帧的数据不能超过1500字节,所以过大的IP数据包,需要 分片(fragments) 传输给数据链路层。
- 每一片都有自己的网络层首部(IP首部)
- 标识
- 占16位
- 数据包的ID,当数据包过大进行分片时,同一个数据包的所有片的标识都是一样的
- 有一个计数器专门管理数据包的ID,每发出一个数据包,ID就加1
- 标志
- 占3位
- 第1位(保留位)
- 第2位(Don’t Fragment):1代表不允许分片,0代表允许分片
- 第3位(More Fragments):1代表不是最后一片,0代表是最后一片
- 片偏移
-
占13位
-
片偏移乘以8:字节偏移(wireshark显示的是字节偏移)
-
每一片的长度一定是8的整数倍
网络层首部-总长度.png -
通过ping命令直接在网络层发送4000字节数据
片偏移表格.png
- 生存时间
- 占8位
- 每个路由器在转发之前会将TTL减1,一旦发现TTL减为0,路由器会返回错误报告
- 协议
- 占8位
- 用于说明封装数据使用的那种协议
- 首部检验和
- 用于检查首部是否有错误
网友评论