当前位置: 首页 > news >正文

IPV4首部

文章目录

    • 1_版本(Version)
    • 2_首部长度(IHL:Internet Header Length)
    • 3_DSCP和ECN字段
    • 4_服务类型(TOS: Type Of Service)
    • 5_总长度(Total Length)
    • 6_标识(ID: Identification)
    • 7_标志(Flags)
    • 8_片偏移(FO: Fragment Offset)
    • 9_存活时间(TTL: Time to Live)
    • 10_协议(Protocol)
    • 11_首部校验和(Header Checksum)
    • 12_源地址(Source Address)
    • 13_目标地址(Destination Address)
    • 14_可选项(Options)
    • 15_填充(Padding)
    • 16_数据(Data)

通过 IP 进行通信时,需要在数据的前面加入 IP 首部信息。IP 首部包含 IP 进行发包控制时所需的必要信息。

IP 首部结构如下,了解 IP 首部的详细信息即可对 IP 所具有的功能有一个详细的把握。

1_版本(Version)

版本由 4 位构成,表示 IP 首部的版本号。IPV4 的版本号为 4,因此在这个字段上的值是“4”。

此外,关于 IP 的所有版本号在下表中列出:

版本号简称协议
4IPInternet Protocol
5STST Datagram Mode
6IPv6Internet Protocl version 6
7TP/LXTP/IX: The Next Internet
8PIPThe P Internet Protocol
9TUBATUBA

关于 IP 版本号:

关于 IPV4 的下一个版本是 IPV6。为什么要从版本 4 直接跳到版本 6 呢?

这里需要提到的是,IP 版本号的含义与普通软件的版本号有所区别。普通软件的版本号会随着更新逐渐增大,最新版本号即为最大号码。这要基于每款软件都由特定的软件公司或团体进行开发才能实现。

而在互联网中,为了让 IP 更完善,有众多机构致力于它的规范化。机构为了能够验证相应的 IP,他们会按照顺序分配具体的版本号。

一向重视实践的互联网,在遇到好的提案时,不能纸上谈兵,还需要反复实验。为此,对于那些还未正式使用的版本号就会被标上号码,进而在实验的过程中选择一个最佳的产物进行标准化。

IPv6 正是经历了这些过程之后才成为 IPv4 的下一代 IP。因此,IP 版本号的大小本身并没有什么意义。

2_首部长度(IHL:Internet Header Length)

首部长度由 4 位构成,表明 IP 首部的大小,单位为 4 字节(32位)。

对于没有可选项的 IP 包,首部长度设置为“5”。

也就是说,当没有可选项时,IP 首部的长度为 20 字节(4 * 5 = 20)。

3_DSCP和ECN字段

DSCP(Differentiated Services Code Point,差分服务代码点)是 TOS(Type Of Service)的一部分(如下图)。

DSCP 用于进行称为 DiffServ 的质量控制。

img

如果 3~5 位的值为 0,0 ~ 2 位则被称作类别选择代码点。这样就可以像 TOS 的优先度那样提供 8 种质量控制级别。

对于每种级别所采取的措施由使用 DiffServ 的管理员制定。为了与 TOS 保持一致,值越大优先度越高。如果第 5 位为 1,表示实验或本地使用的意思。

ECN(Explicit Congestion Notification,显式拥塞通告)用来报告网络拥塞情况,由 2 位构成,每一位的具体含义如下表所示:

简称含义
6ECTECN-Capable Transport
7CECongestion Experienced

第 6 位的 ECT 用以通告传输层协议是否处理 ECN。当路由器在转发 ECN 为 1 的包时,如果出现网络拥塞的情况,就将 CE 的位置设置为 1。

4_服务类型(TOS: Type Of Service)

DSCP 字段和 ECN 字段所占的 8 位在早期的 IP 首部中叫作服务类型字段。

服务类型字段由 8 位构成,用来表明服务质量。每一位的具体含义如下表。

含义
0 1 2优先度
3最低延迟
4最大吞吐
5最大可靠性
6最小代价
(3~6)最大安全
7未定义

不过,因为要按照要求在该字段中发送数据,相应的控制机制会异常复杂,或是一但设置错误,就没有实际效果了等原因,所以 TOS 字段难以投入使用。

因此,普遍是将 TOS 字段划分为 DSCP 和 ECN 这两个字段使用。

5_总长度(Total Length)

总长度表示 IP 首部与数据合起来的总字节。该字段长 16 位。因此 IP 包的最大长度为 65535(216−1=655352^{16} - 1 = 655352161=65535)字节。

但是,目前几乎不存在能够传输最大长度为 65535 字节的 IP 包的数据链路。

不过,由于有 IP 分片处理,因此从 IP 的上层看,不论底层采用何种数据链路,都认为能够以 IP 包的最大长度传输数据。

6_标识(ID: Identification)

标识由 16 位构成,用于分片重组。同一分片的标识值相同,不同分片的标识值不同。

通常,发送 IP 包时,它的值呈递增趋势。此外,即使 ID 相同,如果目标地址、源地址或协议不同,也会被认为是不同的分片。

7_标志(Flags)

标志由 3 位构成,表示包被分片的相关信息。每一位的具体含义如下表所示:

含义
0未使用,现在必须是 0
1表示是否进行分片(don’t fragment)0 - 可以分片1 - 不能分片
2包被分片的情况下,表示是否为最后一个包(more fragment)0 - 最后一个分片的包1 - 分片中段的包

8_片偏移(FO: Fragment Offset)

片偏移由 13 位构成,用来标识每个分片相对于原始数据的位置。

第一个分片对应的值为 0。由于 FO 字段占 13 位,因此可以最多表示 8192(213=81922^{13} = 8192213=8192)个相对位置。

片偏移的单位为 8 位(即 1 字节),所以最大可以表示原始数据的第 8∗(8192−1)=655288*(8192-1)=655288(81921)=65528 字节的位置。

9_存活时间(TTL: Time to Live)

存活时间由 8 位构成,它最初的意思是以秒为单位记录当前包在网络中存活的期限。

然而,在实际中,它是可以中转多少个路由器的意思。

每经过一个路由器,TTL 减少 1,直到变成 0 则丢弃该包。

10_协议(Protocol)

协议由 8 位构成,表示紧随 IP 首部之后的下一个首部所属的协议。目前经常使用的协议如表所示:

协议编号简称协议名称
0HOPOPTIPv6 Hop-by-Hop Option
1ICMPInternet Control Message Protocol (ICMP)
2IGMPInternet Group Management Protocol
4IPIP encapsulation(IP in IP)
6TCPTransmission Control Protocol
8EGPExterior Gateway Protocol
9IGPany private Interior Gateway (私有/实验 Cisco IGRP)
17UDPUser Datagram Protocol
41IPv6IPv6 Protocol Version 6
43IPv6-RouteRouting Header for IPv6
44IPv6-FragFragment Header for IPv6
46RSVPResource Reservation Protocol
47GREGeneric Routing Encapsulation
50ESPEncap Security Payload
51AHAuthentication Header
58IPv6-ICMPICMP for IPv6
59IPv6-NoNextNo Next Header for IPv6
60IPv6-OptsDestination Options for IPv6
88EIGRPEnhanced Interior Gateway Routing Protocol (Cisco)
89OSPFOpen Shortest Path First
115L2TPLayer Two Tunneling Protocol
124ISIS over IPv4ISIS over IPv4
132SCTPStream Control Transmission Protocol
135Mobility Header(IPv6)Mobility Header(IPv6)
136UDPLiteUDP-Lite

11_首部校验和(Header Checksum)

首部校验和由 16 位(2字节)构成,也叫 IP 首部校验和。该字段只校验数据报的首部,不校验数据部分。它主要用来确保 IP 首部不被破坏。

校验和的计算过程如下:

  1. 首先,将校验和字段的所有位设置为 0。
  2. 其次,以 16 位为单位划分 IP 首部,并用 1 补码计算所有位置的和。
  3. 最后,将所得到的和的 1 补码赋给首部校验和字段。

12_源地址(Source Address)

源地址由 32 位(4 字节)构成,表示发送端 IP 地址。

13_目标地址(Destination Address)

目标地址由 32 位(4 字节)构成,表示接收端 IP 地址。

14_可选项(Options)

可选项长度可变,通常只在进行实验或诊断时使用。该字段包含如下几点信息:

  • 安全级别
  • 源路径
  • 路径记录
  • 时间戳

一个数据报中可以有零个或多个可选项。可选项的格式有两种情况:

  • 情况 1:单字节选项(仅 1 Byte),这种情况没有后续长度字段,也没有数据字段。仅用于填充对齐或表示结束。
  • 格式:| Option Type (8 bits) |
  • 例:End of Option List (EOL, 类型=0)、No Operation (NOP, 类型=1)。
  • 情况 2:多字节选项(≥ 2 Bytes)
  • 格式:| Option Type (8 bits) | Option Length (8 bits) | Option Data (可变长) |
  • 例:Record Route (RR, 类型=7)、Timestamp (TS, 类型=68)、Loose Source Route (LSRR, 类型=131)、Strict Source Route (SSRR, 类型=137)

Option Type 的细分结构:

  • | Copied flag (1 bit) | Option class (2 bits) | Option number (5 bits) |
  • 1 位复制标志:0 = 未复制、1 = 已复制。
  • 2 位选项类:0 = 控制、1 = 保留以备将来使用、2 = 调试和测量、3 = 保留以备将来使用。
  • 5 位选项号。

15_填充(Padding)

在有可选项的情况下,首部长度可能不是 32 位的整数倍。为此,通过向字段填充 0,调整为 32 位的整数倍。

16_数据(Data)

存入数据。将 IP 上层协议的首部作为数据进行处理。

http://www.dtcms.com/a/439335.html

相关文章:

  • 个人网站网址有哪些做网站要什么
  • 在网站上做播放视频广告是否违法优设网页
  • 虚拟机扩容硬盘后,系统磁盘空间仍不够?
  • C语言:字符统计
  • 龙岩做网站怎么做论坛网站
  • 【完整源码+数据集+部署教程】 白血球图像分割系统: yolov8-seg-repvit
  • 厦门市建设局电工报名网站服务号微网站怎么做
  • socketpair深度解析:Linux中的“对讲机“创建器
  • 室内设计者联盟网站photoshop在线制作
  • wordpress 相关文章 插件温州seo网站推广
  • Claude Code v2.0 使用感悟
  • CrewAI + Bright Data MCP 打造“点评情报智能体”:从抓取到洞察
  • 腾讯建站平台官网天津百度快照优化公司
  • 长春建设网站公司吗门户网站 销售
  • 潍坊企业网站建设河南一情况
  • 10.3作业
  • Cocos做网站wordpress多张页面左右滑动
  • 个人网站设计作业在家来料加工
  • AI如何提升数据科学效率?
  • 湘潭网站建设网站推广做网站搞活动
  • Spring进阶 - Spring AOP实现原理(一)AOP切面实现原理
  • 整体设计 逻辑系统程序 之9 三种逻辑表述形式、形式化体系构建及关联规则(正则 / 三区逻辑)之2
  • SSM框架下的redis使用以及token认证
  • 十堰seo百度搜索引擎优化方式
  • 连锁酒店网站建设微信版本的wordpress
  • 网站建设分金手指专业一网络运营主要做什么
  • 人工智能专业术语详解(C)
  • EfficientNet:复合缩放
  • 淄博网站的建设wordpress好用的编辑器
  • MyBatis 基础