IP协议属于网络层协议,不可靠,无连接
网络层协议功能:
1.路由与寻址:IP协议头部带有源IP和目的IP
2.数据组包和分包:有字段表示是否分包,且有标识字段指示唯一数据包
各字段详解:
1)4位版本号:0100 值4,IPV4
2)4位首部长度:数值单位4字节,value*4个字节数。0101 值5,5*4 = 20字节。注:IP头部最大长度60字节
3)8位服务类型:3位优先权字段(已经弃用);4位TOS字段:最小延时,最大吞吐量,最高可靠性,最小成本(这四者冲突,只能选择一个)1位保留字段,必须为0,对应Differentiated services field,即00字节
4)16位总长度:IP数据报整体占多少个字节,包括TCP协议也属于IP数据报数据,此处是00 50,80字节。头部使用20字节,剩余60字节
5)16位标识:唯一标识报文。若IP报文在数据链路层被分片了(IP报文长度大于MTU),则每一片里的这个标识(id)都是一样的。0x96 93
6)3位标志:第一位:保留;第二位:是否允许分片(置0:允许,置1:不允许),如果置1,但是IP报文长度超过MTU则被丢弃;第三位:结束标志(最后一片置1,表示已经完了,其余的置0)
7)13位片偏移:分片相对于原始IP报文的偏移(其实就是表示当前分片在原报文中处在哪个位置)
以上3位和13位构成一个字节,值位0x40 00,0100 0000 0000 0000。前3位为010 后13为为0.表示不分片
8)8位生存时间(TTL):数据报到达目的地的最大报文跳数,一般是64,每次经过一个路由,TTL-=1;一直减到0,还没到达就丢弃。主要用来防止出现路由循环.值为0x40
9)8位协议:上层协议类型。值为0x06,表示上层协议为TCP
10)16位首部校验和:使用CRC来进行校验,鉴别头部是否损坏。0x2c17
11)32位源IP地址,32位目的IP地址:表示发送端和接受端。处于安全考虑,模糊掩饰。
12)选项:不定长,最多40个字节,没有不占位。一般不设置,参见:https://en.wikipedia.org/wiki/Internet_Protocol_Options
资料来源:https://blog.csdn.net/audience_fzn/article/details/81269581