JavaEE 第27节——IP协议报头格式介绍

一、IP层的作用

IP层,即网络层。网络层负责在不同网络之间提供数据传输服务,实现主机之间的通信。
其主要作用如下:

  • 路由选择: 网络层负责确定数据包从源主机到目标主机的最佳路径。它使用路由选择算法来确定数据包应该经过哪些节点和链路才能到达目标主机。
  • 分片与重组: 由于单个IP数据包长度有限,对于一些较大数据,IP协议会对其进行数据拆包,最终到达目标设备后,进行组包,从而实现较大数据的传输。
  • IP地址分配: 网络层使用IP地址来唯一标识主机和网络设备。网络层主要负责为不同的主机分配IP地址,确保数据能供到达目标主机。

在 TCP/IP 协议中,使用 IP 协议传输数据的包被称为 IP 数据包,每个数据包都包含 IP 协议规定的内容。IP 协议规定的这些内容被称为 IP 数据报文(IP Datagram) 或者 IP 数据报。

二、IP协议报首部字段介绍

如图:
在这里插入图片描述

对于一个IP数据报:分为首部和数据部分,数据部分包含了传输层的数据报,例如可能时TCP数据报,或者UDP数据报。

1、4位版本号(Version)

  • 作用: IP协议当下主流的版本只有两个:IPv4IPv6
    版本号用于表示当前IP数据报属于那一个版本。

2、4位首部长度 (Header Length)

  • 作用: 标识当前数据报的报头长度,单位是4字节。

  • 注意: 由于IP数据报首部由固定部分(占20个字节)和可变部分(占,0~40个字节)组成。因此,首部长度的值只能在区间[5,15]上。

3、8位服务类型(Type of Service,TOC)

  • 作用: 为IP数据包提供不同的传输优先级和服务质量的设置。

  • 3位,优先权字段(已弃用)。

  • 4位,TOC字段:最小延迟、最大吞吐、最高可靠性(IP协议不像TCP那样具有严格的可靠性,但是它的一些机制也可以影响到丢包率)、最小成本(设备上的资源消耗减少)。

  • 1位,保留位,必须置为0。

4、16位总长度(Total Length,TL)

  • 作用: 说明整个IP数据报的长度,单位是字节。
  • 注意: 虽然这个字段可以表示的长度有限,但是不代表IP数据报传输数据的大小有限,它和TCP的字节流类似,对于较大数据,IP协议会对其进行拆包组包,从而实现较大数据的传输。

5、16位标识(Identification)

  • 作用: 刚才讲TL的时候说过,对于较大的原始数据,IP协议会对这个数据进行拆解分片,分成多个数据进行传输,那么接收端如何直到这些分片的数据属于一个原始数据呢?方法就是使用这个标识字段 将来自同一个的原始数据的分片数据报中的标识字段,设置成同一个值进行区分即可。

6、 3位标志(Flags)

  • 作用: 控制是否允许分片以及是否是最后一个片段。

  • 第1位: 保留位 (Reserved Bit),这一位是保留的,通常设置为0,不用于实际操作。

  • 第2位: 不分片标志 (DF, Don’t Fragment),如果这一位设置为1,表示 禁止分片,也就是拆包。

  • 第3位: 更多片段标志 (MF, More Fragments),所有的片段都将这一位设置为1,表示后面还有更多的片段。如果这一位是0,则表示这是最后一个片段。

7、13位片偏移(Fragment Offset)

  • 作用: 在分片时,指示该片段在原始数据包中的相对位置。用来应对先发后至的问题。

8、8位生存时间(Time to Live,TTL)

  • 作用: 说明一个IP数据报,在网络传输中的最大存活时间。单位是不是具体的时间,而是经路由器转发的次数
  • 解释: 在某些情况,一个IP数据报可能会一直在网络上传输,不会终止,例如填写了一个不存在的目的IP地址。如果这种情况变得多了的话,会极大的消耗资源。为此设置了TTL。TTL初始值不同系统可能都不一样,一般常见的有64、128、255。每当经过一次路由器,TTL就会-1,如果为0,丢弃这个数据报。

9、8位协议 (Protocol):

  • 作用: 指示IP数据包承载的上层协议(例如TCP、UDP),这些上层协议实际上就包含在了IP数据报中的数据部分

10、16位首部检验和 (Header Checksum)

  • 作用: 和UDP以及TCP的校验和一样,用于检测IP报头的传输错误。

11、32位源地址 (Source Address):

  • 作用: 用于标记数据包发送方的IP地址。

12、32位目的地址 (Destination Address):

  • 作用: 用于标记数据包接收方的IP地址。

12、可选字段 (Options)

  • 作用: 用于某些特殊功能,如路由记录或时间戳。根据选择的功能,其占用长度不同,但最大不超过40字节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值