小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
前言
IP协议属于7层网络协议中的网络层,定义了如何封装上层协议(UDP\TCP)的报文段,定义了Internet网络层寻址以及如何转发IP数据报等内容,是Internet网络层最核心的协议
数据报格式
| 字段 | 释义 |
|---|---|
| 版本 | Ip版本号,路由器根据该字段确定哪个版本的IP来解析数据报 |
| 首部长度 | 和TCP首部长度类似,4字节为单位 |
| 数据报长度 | IP数据报的总长度 |
| 标识 | 在ip数据报分组和重组的过程中,用于标识属于同一源ip |
| 标志 | 分片时使用,DF=1 代表数据报禁止分片,MF=1代表此数据报一定是分片的 |
| 片位移量 | 标识此数据报为整个ip数据报的哪个字节开始 |
| 生存时间 | 数据报最长存活时间(路由选择错误时可能造成环路) |
| 上层协议 | 6-tcp、17-udp |
| 首部校验和 | 差错校验 |
验证
随便在wireshark中找一个tcp的协议包
为啥要分片
一个IP数据报从源主机到目的主机的传输过程中,可能经过多个运行不同数据链路层协议的网络,如以太网、IEEE 802.11 无线局域网等。
不同数据链路层协议所能承载的网络层数据报的最大长度不尽相同,以太网帧可以承载的数据最大长度为1500 字节,而有一些数据链路层协议所能承载的数据最大长度远小于这个值。
所以需要将数据分片传送
这时候在想想tcp协议报文其实也是有分片的,序号就是这个作用