IP 数据报结构和各字段含义

这篇具有很好参考价值的文章主要介绍了IP 数据报结构和各字段含义。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

IP 数据报位于 OSI 七层模型中的网络层,对应与 TCP/IP 四层模型中的网络层(也称网际层)。网络层用来处理网络上流动的数据包(网络传输中最小的数据单元),规定了怎样的路径把数据包传输到目标计算机,并把数据包传送给对方。(与 tcp/ip 协议密切相关的有 IP 协议、ARP 协议、RARP 协议)。IP 协议就在这里,它负责对数据加上 IP 地址和其他的数据,以确定传输的目标,和相邻计算机之间的通信。

其功能包括三方面:

  1. 处理来自传输层的分组发送请求,收到请求后,将分组装入 IP 数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。
  2. 处理输入数据报:首先检查其合法性,然后进行寻径。假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。
  3. 处理路径、流控、拥塞等问题。

IP协议:Internetworking Protocol(网间网协议),IP是跨越网络传送数据包,使整个互联网都能收到数据的协议。IP也是分组交换的一种协议,但是它不具备重发机制,因此它是不可靠传输协议。

IPv4:头部由 20bytes 定长和一个可选的变长部分(小于等于 40bytes )组成,其中包括 32 位记录源端IP地址,32 位记录目的端 IP 地址。所有内容长度最大为 216-1=65535bytes。

IP数据报的具体结构和解析如下:
IP 数据报结构和各字段含义

通过 Wireshark 抓取的一个 IPv4 的数据报片段示例如下:

Internet Protocol Version 4, Src: 192.168.43.69, Dst: 220.181.38.148
    0100 .... = Version: 4
    .... 0101 = Header Length: 20 bytes (5)
    Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
        0000 00.. = Differentiated Services Codepoint: Default (0)
        .... ..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0)
    Total Length: 669
    Identification: 0x989b (39067)
    Flags: 0x40, Don't fragment
        0... .... = Reserved bit: Not set
        .1.. .... = Don't fragment: Set
        ..0. .... = More fragments: Not set
    ...0 0000 0000 0000 = Fragment Offset: 0
    Time to Live: 128
    Protocol: TCP (6)
    Header Checksum: 0x7088 [validation disabled]
    [Header checksum status: Unverified]
    Source Address: 192.168.43.69
    Destination Address: 220.181.38.148

注意:上面描述的首部,不包括选项字段的 IP 头部长度为 20bytes(1byte=8bits)长度,最高位在左边,记为 0bit。最低位在右边,记为 31bits。采用 “大端” byte 序进行传输,也就是对于 4bytes 的 32bits 数据,从高位byte(0bit)开始传输 0~7,8~15,15~23,24~31bits。各字段的含义如下:文章来源地址https://www.toymoban.com/news/detail-444456.html

  • 版本:4bits,0100 值为4代表 IPv4。
  • 首部长度:4bits,占4位,指的是包括选项字段在内的 IP 首部长度。首部单位长度为4个 byte,以有多少组 4bytes 字组来表达 header 的长度。从0000~1111,当“首部长度”表示为0001时,首部的长度是1(4bytes)。首部最大长度为15(60bytes)。
  • 服务类型(区分服务):8bits,前 3bits 优先级字段(现在已经不用了),后 4bits TOS字段, 最后 1bit 备用位。4bits TOS位分别代表:第一位D(delay)最小时延、T(throughput)最大吞吐量、R(reliability)最高可靠性和C(cost)最小费用,只能设置其中 1bit,如果所有 4bits 均为0,那么就表示是一般服务。在抓包中显示Differentiated Services Field,叫差分服务,或叫区分服务。
  • 总长度:16bits,包括首部和数据部分。能表示的最大长度为 65535(216-1)。且这个字段是必须的,当 IP 数据包小于 46bytes 时在以太网帧中数据将会被填充到 46bytes ,这时候如果没有这个字段我们接收到帧后便不能得到正确的 IP 数据包。
  • 标识:16bits,它是一个计数器,用来产生数据报文的标识。数据报文在分片时标志会被复制到每一个分片中。
  • 标志:3bits,第一位 0bit 保留;中间位DF(Don’t Fragment),DF=0 表示能分片,DF=1 表示不能分片。最低位为MF(More Fragment) ,MF=1 表示后面还在传输数据报的分片, MF=0 表示最后一个报文段。
  • (片)偏移:13bits,用于数据包分片和重组。13 位(片)偏移字段,较长的分组在分片后,某片在原来分组中的相对位置。分片偏移以 8bytes 做为计量单位,第一个分片偏移为 0。所以当 Fragment Offset 为0时,表示这个数据报文没有分片,或者第一个分片。
  • 生存时间(TTL):8bits,意为Time To Live,表明是数据报在网络中的寿命,单位为秒设置了数据包可以经过的最多路由器数量。
  • 协议:8bits,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的 IP 层知道应将数据部分上交给哪个处理过程。网络层以上的高层协议有 TCP,UDP,OSPF,EGP,IGMP,ICMP 等。
  • 首部校验和:16bits,校验数据报的首部根据 IP 首部计算的检验和码,它不对首部后面的数据进行计算。采用的是 16bits 二进制反码求和。在上面的 Wireshark 中的 Header Checksum 显示validation disabled,表示这个软件关闭校验和的抓包功能。如果开启该功能,会显示 good 或 bad。
  • 源地址:32bits,源主机的 IP 地址。
  • 目的地址:32bits,目标主机的 IP 地址。
  • 可项字段:最多 40bytes,IP首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。选项字段的长度可变,取决于所选择的项目。增加首部的可变部分是为了增加IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。实际上这些选项很少被使用。

到了这里,关于IP 数据报结构和各字段含义的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机网络笔记:计算机网络体系结构(OSI七层模型、TCP/IP五层协议)

    计算机网络是一个复杂的、具有综合性技术的系统,它由计算机系统、通信处理机、通信线路和通信设备、操作系统以及网络协议等组成。为了更好地描述计算机网络结构,使计算机网络系统有条不紊地处理工作,需要定义一种较好的网络体系结构。分层结构就是一种较好地

    2024年02月07日
    浏览(55)
  • 通信模型四层(TCP/IP)、五层、七层(OSI)的作用、协议及数据传输单位

    四层模型 五层模型 七层模型 每层作用 物理层:传输比特流 数据链路层:控制网络层和物理层之间的通信 网络层:IP寻址和路由选择 传输层:建立、维护、管理端到端连接 会话层:建立、维护、管理会话连接 表示层:数据格式化,加密、解密、 应用层:为应用程序提供网

    2024年02月03日
    浏览(45)
  • TCP/IP四层模型对比OSI七层网络模型的区别是啥?数据传输过程原来是这样的

    一、TCP/IP四层模型对比OSI七层模型 它们两个定义的一些功能和协议都是差不多的。TCP/IP四层协议模型比我们的七层少了三层,把我们的数据链路层和物理层放在一层里面了,叫做数据链路层(网络接口层),对应网络协议也没有变。 网络层和传输层是非常重要的,所以也没

    2024年02月14日
    浏览(42)
  • 数据结构-散列表的含义与C++实现

    目录 一、散列表的概念 二、散列函数的作用 三、散列表的查找技术 1. 直接寻址表 2. 线性探测法 3. 平方探测法 4. 双散列法 四、散列表的优缺点 五、总结 散列表(Hash Table)是一种数据结构,它通过散列函数将映射到散列表中的一个位置,从而实现快速的查找、插入

    2024年02月08日
    浏览(46)
  • webrtc sdp各字段含义

    WebRTC使用Session Description Protocol(SDP)实现传输协议的协商和描述。以下是SDP中常见的字段及其含义: v:协议版本号 o:会话创建者的标识符、会话ID、和会话版本号 s:会话名称 t:会话时间描述(会话开始和会话结束时间) a:会话级别的属性描述,例如:带宽限制、编解码

    2024年02月10日
    浏览(44)
  • mysql中explain的字段含义

    在MySQL中,EXPLAIN语句用于分析查询语句的执行计划。它返回一组关于查询执行的信息,其中包括一些重要的字段。以下是一些常见的字段及其含义: 1、id: 查询的标识符,表示查询的顺序。如果查询是复合查询(包含子查询或联接),则会出现多个id。 2、select_type: 表示查

    2024年02月12日
    浏览(37)
  • git提交规范,fix,feat的字段含义

    主要是在提交代码时标识本次提交的属性 feat : 新功能(feature) fix : 修补bug docs : 文档(documentation) style : 格式(不影响代码运行的变动) refactor : 重构(即不是新增功能,也不是修改bug的代码变动) chore : 构建过程或辅助工具的变动 revert : 撤销,版本回退 perf : 性能优化

    2024年02月08日
    浏览(36)
  • [JAVA数据结构] 认识 Iterable、Collection、List 的常见方法签名以及含义

            (一)Iterable                 1. 介绍                 2. 常见方法         (二)Collection                 1. 介绍                  2. 常见方法         (三) List                  1. 介绍                 2. 常见方法

    2024年02月02日
    浏览(44)
  • 填充字段(以太网帧和IP数据报)

    要求是确保数据字段的长度在46到1500字节之间 。 以太网帧是网络通信中的基本单位,它的结构包括前导码、定界符、目的地址(DA)、源地址(SA)、类型/长度字段、数据、帧校验序列(FCS)等部分。其中,数据字段是用于承载上层数据的部分,而填充字段则是为了确保数据

    2024年02月21日
    浏览(44)
  • TCP/IP 七层架构模型

    传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议 。    套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中

    2024年04月22日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包