###IP数据报的格式
先来上张图在解释:
来看看每个字段的具体含义:(只讨论IPV4的情况)
1、版本
占4位,指IP协议的版本。通信双方使用IP协议的版本必须一致。例:使用IPV4即填4
2、首部长度
占4位,顾名思义,这个字段就是标识了IP数据报的首部长度。该字段以4字节为单位,可以表示的最大的数是"1111",也就是十进制数15,所以IP首部长度最大为60字节(15*4=60)。由于IP首部固定长度为20字节,所以该字段的最小值为"0101"。
3、区分服务
占8位。有3位优先权字段已经弃用,还有4位TOS字段和1位保留字段(这个保留字段必须置为0)。4位TOS字段分别代表最小延时、最大吞吐量、最高可靠性、最低成本。这四者相互冲突,只能选择一个。
4、总长度
占16位,表示IP数据报的总长度(包括数据部分)。单位为字节,所以数据报的最大长度为65535字节(2^16-1)。
在这里补充一个知识:最大传输单元MTU。表示某一层上面可以通过的最大的数据包的大小,所以IP数据报的总长度不能超过下面数据链路层的MTU值。
为了不使IP数据报的传输速率降低,规定所以主机和路由器必须能够处理的IP数据报长度不得小于576字节。当数据报长度超过网络所容许的最大传输单元时,就要把过长的数据报进程分片,这时数据报首部中的总长度不是指没有分片前的数据报长度,而是指分片后每一个分片数据报的长度。
5、标识
占16位,IP软件在存储器中维持一个计数器,每产生一个数据报计数器就加一,并将这个值赋给标识字段。当数据报长度超过网络的MTU要进行分片时这个标识字段的值就会复制到所有的数据报片的标识字段中。为了之后重新组装数据的时候可以分辨哪些数据报之