1、IP协议的特点:无状态、无连接、不可靠
无状态:指IP通信双方不同步传输数据的状态信息,因此所有IP数据报的发送、传输和接收都是相互独立、没有上下文关系的。
无连接:指IP通信双方都不长久的维持对方的任何信息。
不可靠:指IP协议不能保证IP数据报准确地到达接收端,它只承诺尽最大努力。
2、IPv4头部结构
4位版本号:指定IP协议的版本。对IPv4来说,其值为4
4位头部长度:4位最大能保存15,因此,IP数据报报头的长度最大是60字节
8位服务类型:包括3位的优先级字段,4位的TOS字段和1位保留字段。4位的TOS字段分别表示为:最小延时(ssh/tenlet),最大吞吐量,最高可靠性、最小费用。其中,最多只能有一个设置为1。
16为总长度:是指整个IP数据报的长度,以字节为单位。IP数据报最大的长度为65535字节。但是由于MTU的限制,长度超过MTU的数据报都会被分片传输。
16位标识:唯一地标识主机发送的每一个数据报。其初始值由系统随机生成,每发送一个数据报,其值加1。同一数据报的所有分片具有相同的标识。
3位标志:第一位保留;第二位是DF位,“禁止分片”,如果设置该位,则IP数据报不允许分片,如果IP数据报的长度超过MTU,则丢弃该数据报;第三位MF位,“更多分片”,除了数据报的最后一个分片外,其他分片都要将其设置为1。
13位片偏移:是分片相对原始数据报的偏移。实际的偏移值是将该值左移3位后的值,除了最后一个分片,每个IP分片的数据部分的长度必须是8的倍数。
8位生存时间:是数据报到达目的地之前允许经过的路由器跳数。当该值为0是,路由器丢弃该数据报,并向源端返回ICMP差错报文。
8位协议:用来区分上层协议。
16位头部校验和:由发送端填充,接收端使用CRC算法检验IP数据报头部在传输中是否出错。(仅检验头部)
32位源IP地址和目的IP地址:分别标识数据报的发送端和接收端
3、IP分片
(1)当IP数据报的长度超过帧的MTU时,它将被分片传输,分片可能发生在发送端,也可能发生在中转路由器,而且可能在传输过程中被多次分片,但只有在最终的目标机器上,这些分片才会被内核中的IP模块重新组装
(2)一个IP数据报的每个分片都有自己的IP头部,他们具有相同的标识值、但具有不同的片偏移。并且除了最后一个分片外,其他分片都设置MF标志。每个分片的IP头部的总长度都被设置为该分片的长度。
4、IPv6头部结构
IPv6版本目前使用较少,想要深入学习IPv6的小伙伴们就自己动手查资料吧~~