一、概念
IP协议是TCP/IP协议族的核心协议,为上层协议提供无状态,无连接,不可靠的服务,它有一种能力将数据从A主机跨网络传输到B主机,IP地址分为网络地址和主机地址。
二、数据结构
版本号:占4位,指IP协议的版本,有IPv4和IPv6两种,对于IPv4协议该字段就是4 ;
首部长度:占4位,指IP协议的报头长度,范围在20-60字节 ;
服类型务:占8位,只有在使用区分服务时该字段才有作用,一般情况下不使用该字段;
长度:占16位,指IP协议的总长度:报头长度+数据长度 ;
根据IP报头来看,长度占16位,长度应该在65535个字节,但实际传送不了这么大长度的IP报文;
IP报文的长度是依据下层数据链路层规定的数据帧中的数据字段的最大长度,称为最大传输单元MTU;
一般最大传输单元MTU的长度为1500个字节,所以IP报文最大长度为1500个字节,若超过该长度,IP报文会被分片;
16位标识、3位标志、13位片偏移用于IP报文的分片和组装 ;
标识:占16位,由于IP报文有长度的限制,超过MTU会被分片,而在交付给上层时需要将IP报文组装,该字段用于唯一标识一个IP报文 ;
标志:占3位,第一位为保留位,第二位表示该IP报文是否分片(1表示禁止分片,0表示分片),第三位表示该IP报文是否为最后一个;
片偏移:占13位,在报文分片时有效,表示该片报文应位于整个IP报文的那个位置;
生存时间TTL:占8位,在路由时通过一跳与多跳的方式查找路径,为防止某个报文在网络中一直处于游离状态,无限循环,所以在报头中规定了报文在网络中最多经过路由器的数量,也就是该报文的最大跳数;
协议类型:占8位,表示该IP报文要交给上层的那个协议(UDP或TCP);
首部校验和:占16位,鉴别头部是否有损坏 ;
源IP:占32位,表示该IP报文从哪里来 ;
目的IP:占32位,表示该IP报文要发送到哪里。