IP协议的特点
- 无连接:通信双方不需要建立连接,也不需要断开连接,上层协议交付的数据都必须明确指定IP地址
- 不可靠:IP协议不保证数据能够到达接收方,只是承诺会尽最大努力去传递
- 无状态:接受方接收的数据可能是重复的,也有可能是乱序的
关于乱序的理解
数据传输过程中IP协议只保证IP数据报里面的数据不乱序,而不能保证IP数据报有序
IP协议的报头
大小:20字节<=报头<=60字节
名称 | 含义 |
---|---|
4位版本号 | 标识了IPV4的版本,如SIP,PIP |
4位头部长度 | 头部结构的长度 |
8位服务类型 | 3位优先权字段+1位保留字段+4位服务类型:最小延时、最大吞吐量、最高可靠性、最小费用(互斥的) |
16位总长度 | IP数据报最大的长度 |
8位生存时间 | 标志IP数据报的跳数,即经过路由器的个数,每经过一个路由器就减一,为0若还没有到接收方就丢弃 (防止产生回路) |
8位协议 | 标志上层使用的协议 TCP(6) UDP(17) |
16位头部校验和 | 只校验头部结构,因为网络层只负责数据转发,只需保证头部正确 |
32位源端IP地址 | 发送端IP地址 |
32位目的端IP地址 | 接收端IP地址 |
IP分片
- MTU(网络最大传输单元) :一个数据报在网络中最大的长度,以太网1500字节
若超过1500字节,则会产生IP分片,为保证IP分片有序,每一个分片都有报头
16位标识
- 同一个数据报分出的IP分片的16位标识是一样的
3位标志
- 1位保留+1位禁止分片+1位有更多的分片
- 若禁止分片为1:不允许分片,若超过MTU,则将次数据报丢弃
- 有更多的分片:同一个IP数据报的分片,除了最后一个为0,其他必须为1
13位片偏移
- 数据部分的第一个字节在整个IP分片的数据部分的偏移值
- 为使13位片偏移表示16位数
除了最后一个分片以外,前面所有分片的字节数都必须是8的倍数,这样二进制表示的最低三位始终为0,只需将高13位数左移三位即可表示16位数
IP分片不仅仅发生在发送端,在网络传输中也可能发生IP分片(路由器两端的网络不同,MTU不同)