当前位置: 首页 > Linux

IP协议总结

时间:2023-04-06 11:45:57 Linux

特点:无状态、无连接、不可靠IPv4报头结构:4位版本号,4位报头长度,8位服务类型,16位总长,16位标识,3位flag/13-bitsliceoffset,8-bitTimetoLive(TTL)8-bitprotocol16-bitheaderchecksum32-bitsourceIPaddress32-bitdestinationIPaddressoptionupto40bytesa.4位版本号,IPV4的版本号为4,其他IP协议扩展协议(SIP和PIP协议)有不同的版本号。b.4-bitheaderlength表示header中有多少个32bits(4字节),最多15个32bits,所以IPV4协议头最大长度为60字节。C。8位服务类型,前3位为优先级字段,后4位为TOS字段,每一位代表最小延迟、最大吞吐量、最大可靠性和最小成本。一个最多只能是1个。最后一位是保留字段。d.16位总长度,表示IP数据包的总大小,单位为字节,因此IP数据包的最大大小为2的16次方-1,65535字节。e.16位标识符,唯一标识主机发送的每个数据报。初始值由系统生成,没有发送则加1。同一数据报的不同片段具有相同的标识符。F。3位标志,第一位保留,第二位(DF)表示禁止分片。如果设置了这个标志位,数据报就不会被分片。如果长度超过MTU,IP模块将丢弃该数据报,并返回一个ICMPEraseError消息。第三位表示更多的分片,除了IP分片的最后一个,其他分片的该标志位设置为1。g.13位分片偏移量是指分片相对于数据报起始位置的位移。实际值是左移三位的值,因为除了最后一个分片外,每个分片的数据部分的大小保证是8.h的倍数。8位生存时间(TTL),初始值由源端设置,一般为64,每经过一条路由就会减1,减为0时,数据报将被丢弃并返回ICMP错误消息。TTL保证数据报不会陷入路由循环。我。8位协议,用于区分上层协议。/etc/protocols定义了所有上层协议对应的协议字段的值。其中ICMP为1,TCP为6,UDP为7.g。16位的包头校验和由发送端填充,接收端进行CRC算法校验IP包头数据的完整性。H。32位的源IP地址和32位的目的IP地址用于标识数据报的发送方和接收方。k.可变长度的可选信息,最多40个字节。选项包括:(1)记录路由,告诉数据报路由上的所有路由器在IP报头的选项部分填写自己的IP地址,以便我们跟踪数据报的传递路径。(2)Timestamp,告诉每个路由器在option部分填写数据报转发时的时间(或时间和IP地址对),我们可以跟踪数据投递的时间。(3)松源路由选择,指定一个路由器IP地址列表,数据发送过程必须经过这些路由。(4)严格的源路由选择,数据报只能通过指定的路由器。IPv6固定报头结构4位版本号8位通信类型20位流标签16位有效载荷长度8位下一个数据包报头8位跳数限制128位源IP地址128位目的IP地址4位版本号,IPv6版本号为6。b.8位通信类型,类似于IPv4中的8位服务类型,表示数据通信类型和优先级,TOS字段。C。20比特的流标签是IPv6新增加的字段,用于对连接的服务质量有特殊要求的通信,如音视频等实时数据传输。d.16位有效载荷长度,表示IPv6扩展报头和数据长度之和,不包括固定报头长度。e.8-bitnextheader,表示固定报头后面的报头类型,如扩展报头或上层协议报头。类似于IPv4的8位协议字段,相同的值代表相同的含义。F。8-bithoplimit,与IPv4TTL同义。G。128位源IP地址和128位目的地址与32位IPv4IP地址相同,只是IP地址的表示方式不同。