网络层协议——IP协议

Louis 564 2020-03-01

IP(Internet Protocol)协议,又称网际协议,它负责Internet上网络之间的通信,并规定了将数据从一个网络传输到另一个网络应遵循的规则,是TCP/IP协议的核心。

IP协议功能

  • 寻址和路由
  • 传递服务
    • 不可靠,可靠性由上层协议提供。进最大努力进行传递,不保证数据到达
    • 在发送数据时不会建立会话
  • 数据报的分段和重组:对于大的数据进行分段,到达目的地后重新组合

IP数据报格式

网际协议第4版(Internet Protocol version 4,IPv4)是TCP/IP协议使用的数据报传输机制。数据报是一个可变长分组,有两部分组成:首部数据。首部长度可由20~60个字节组成。其中有固定20字节的首部和0~40字节的可变部分组成。一些重要的组成如下:

IP协议格式

版本(4位)

该字段定义IP协议版本,负责向处理机所运行的IP软件指明此IP数据报是哪个版本,所有字段都要按照此版本的协议来解释。如果计算机使用其他版本,则丢弃数据报。例:IPV4写法为0x0100

首部长度(4位)

该字段定义数据报协议头长度,表示协议头部具有32位字长的数量。协议头最小值为5,最大值为15。当首部长度取值为15时,由于一个单位可以存放4个字节,首部此时为4*15=60个字节。

服务类型(8位)

该字段定义上层协议对处理当前数据报所期望的服务质量,并对数据报按照重要性级别进行分配。前3位成为优先位,后面4位成为服务类型,最后1位没有定义。
服务类型
这些8位字段用于分配优先级、延迟、吞吐量以及可靠性。在目前的以太网中,该服务类型的提法已经被弃用。现在已经被差分服务替代。

总长度(16位)

该字段定义整个IP数据报的字节长度,包括协议头部和数据。其最大值为65535字节。以太网协议对能够封装在一个帧中的数据有最小值和最大值的限制(46~1500个字节)。

标识(16位)

该字段包含一个整数,用于识别当前数据报。当数据报分段时,标识字段的值被复制到所有的分段之中。该字段由发送端分配帮助接收端集中数据报分段。

标记(3位)

该字段由3位字段构成,其中最低位(MF)控制分段,MF=1表示后面“还有分片”;MF=0表示最后一个分片。中间位(DF)指出数据报是否可进行分段,如果为1则机器不能将该数据报进行分段。第三位即最高位保留不使用,值为0。

分段偏移(13位)

该字段指出分段数据在源数据报中的相对位置,支持目标IP适当重建源数据。
分片偏移的计算

生存时间(8位)

该字段是一种计数器,在丢弃数据报的每个点值依次减1直至减少为0。这样确保数据报拥有有限的环路过程(即TTL),限制了数据报的寿命。

协议(8位)

该字段指出在IP处理过程完成之后,有哪种上层协议接收导入数据报。这个字段的值对接收方的网络层了解数据属于哪个协议很有帮助。
协议

头部校验和(16位)

该字段帮助确保IP协议头的完整性。由于某些协议头字段的改变,这就需要对每个点重新计算和检验。计算过程是先将校验和字段置为0,然后将整个头部每16位划分为一部分,将个部分相加,再将计算结果取反码,插入到校验和字段中。

源地址(32位)

源主机IP地址,该字段在IPv4数据报从源主机到目的主机传输期间必须保持不变。

目的地址(32位)

目标主机IP地址,该字段在IPv4数据报从源主机到目的主机传输期间同样必须保持不变。

可变部分(0~40位)

  • IP首部的可变部分是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。
  • 长度是可变的,取决于所选择的项目
  • 增加首部可变部分是为了增加IP数据报的功能,但同时增加了每一个路由器的开销
  • 实际上这些选项很少被使用

参考网址

百度百科:https://baike.baidu.com/item/IP协议/131947?fr=aladdin#reference-[2]-2802-wrap

IPv6相关内容:https://blog.csdn.net/qq_42058590/article/details/82918678