精华内容
下载资源
问答
  • ip数据报协议字段
    千次阅读
    2022-02-08 20:39:00

    IP数据报首部字段

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CcyJe5LZ-1644323913003)(C:\Users\user\AppData\Roaming\Typora\typora-user-images\image-20220208193135349.png)]

    IP数据报首部的固定部分的各字段:

    版本:占4位,指IP协议的版本。通信双方使用的IP协议版本必须一致,IPv4的版本号即为4,因此这个字段上的值也是4.

    首部长度(IHL:Internet Header Length):占4位,表明IP首部的大小,单位为4字节(32bit),最小为5

    区分服务(TOS:Type Of Service):占8位,指期望获得哪种类型的服务

    总长度(Total Length):表示IP首部与数据部分合起来的总字节数。该字段占16位,因此IP包的最大长度为65535(=2^16-1)字节

    标识(ID:Identification):占16位,用于分片重组。同一个分片的标识值相同,不同分片的标识值不同。通常,每发送一个IP包,它的值也逐渐递增。此外,即使ID相同,如果目标地址、源地址或协议不同的话,也会被认为时不同的分片

    标志(Flags):占3位,目前只有两位有意义

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

    片偏移(FO:Fragment Offset):占13位,用来标识被分片的每一个分段相对于原始数据的位置。第一个分片对应的值为0.由于FO域占13位,因此最多表示8192个相对位置。单位为8字节,因此最大可表示原始数据8×8192=65536字节的位置

    生存时间(TTL:Time To Live):该字段指定IP包被路由器丢弃之前允许通过的最大网段数量,指ICMP包的转发次数(跳数),当TTL=0时,就丢弃这个数据报

    协议(Protocol):占8位,指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理。

    协议名协议字段值
    ICMP1
    IGMP2
    TCP6
    EGP8
    IGP9
    UDP17
    IPv641
    OSPF89

    首部校验和(Header Checksum):占16位,也叫IP首部校验和。该字段只校验数据报的首部,不校验数据部分,用于确保IP数据报不被破坏

    源地址(Source Address):占32位,表示发送方IP地址

    目标地址(Destination Address):占32位,表示接收方IP地址

    可选项(Options):长度可变,通常只在实验或诊断时使用。包含:

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

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

    更多相关内容
  • IP报文字段

    千次阅读 2021-12-11 12:29:04
    ip报文字段4位版本号4位首部长度8位服务类型16位总长度16位标识, 3位标志, 13位片偏移8位生存时间TTL 4位版本号 代表是ipv4, 还是ipv6协议 4位首部长度 代表ip的报文头部长度, 变长的 8位服务类型 就是代表这个ip...


    在这里插入图片描述

    4位版本号

    代表是ipv4, 还是ipv6协议
    

    4位首部长度

    代表ip的报文头部长度, 变长的

    8位服务类型

    就是代表这个ip更注重于什么要求
    在这里插入图片描述

    16位总长度

    ip报文的总长度, 最大为2的16次方为64K, 和UDP一样最大长度为64K
    但是他们两个有个区别是, UDP不支持自动的拆包和组包
    想要实现需要用户自己在应用层实现. 但是ip协议, 支持自动的拆包和组包
    下面要介绍的三个字段则是用来辅助拆包和组包的
    

    16位标识, 3位标志, 13位片偏移

    这三个字段是用来实现拆包和组包的, 当TCP报文长度超出范围时, 就会进行拆包和组包
    下面就来说明一下, 比如我现在有a, b, c, d 四个ip包, 他们是由同一个TCP报文拆解下来的.
    16位标识 : 代表这几个包是属于同一个数据报的吗, 如果16位标识都相同, 那么就代表属于同一个报文中的.
    13位位偏移 : 按照偏移量的大小, 来确认先后的顺序. a的偏移量小于b的偏移量, b小于c, c小于d . 那么先后的顺序就是 a, b, c, d 防止"后发先至"
    3位标志 : 这个的作用只有一个确认是否到达结尾, 就相当于链表的NULL
    比如a:0 > b:0 > c :0 > d : 1
    d为1, 代表此处的组装就可以结束了, 因为他是最后一个需要组装的了

    8位生存时间TTL

    表示一个数据报在网络上能传输多久(代表可用经过几个路由器转发)
    初始值一般是64(可配置)
    每次进过一个路由器转发, 他的值就会减1如果减到了0, 这个包就认为不可达, 将会被丢弃

    8位协议号

    8位协议号, 代表你传输层应用的是什么协议
    如果是6那么就是TCP, 如果是17那么就是UDP

    16位首部检验和

    16位首部检验和的作用是用来检测ip报文头部的完整性

    32位源IP地址和32位目的IP地址

    ip地址其实是一个32位的整形二进制数字, 平常我们写的192.168.0.1, 这种叫做点分十进制, 是为了我们人理解起来方便, 就将每8位二进制, 化成十进制

    后面就是一个完整的TCP数据报或者UDP数据报

    值得一提的是TCP的总长度在TCP报文的头部并没有提及, 需要配合着IP报文才能算出.
    TCP的报文数据长度 = (IP数据报总长度 - IP首部长度) - TCP的报头长度

    展开全文
  • IP数据报首部字段分析

    千次阅读 2020-01-29 11:22:48
    IP数据报首部字段分析 IP数据报传输使用的是网络字节序,网络字节序是大端字节序 IP数据报首部一般为20个字节(没有选项的情况),最大是60字节,60字节的计算在首部长度字段中 版本号 区分IPv4和IPv6 IPv4是0100 ...

    IP数据报首部字段分析

    在这里插入图片描述

    IP数据报传输使用的是网络字节序,网络字节序是大端字节序
    IP数据报首部一般为20个字节(没有选项的情况),最大是60字节,60字节如何算出参考下面 首部长度字段

    • 版本号 区分IPv4和IPv6 IPv4是0100 IPv6是0110
    • 首部长度 单位是32bit,即4个字节,即图中的一行,所以首部最大长度是(2^4-1)* 4=60个字节 减一是因为首部长度不能为0
    • 服务类型TOS Type Of Service
      RFC791中划分为3bit的优先权子字段,4bit的TOS子字段和1bit保留字段

    在这里插入图片描述

    后来发现3bit,8个优先级不够用,后来在RFC 2474中又重新对TOS进行了划分,前六位为DSCP(Differentiated Services Code Point)后两位为保留位,详细可google DSCP

    • 总长度 16bit,是整个IP数据报的大小,单位是字节,一个IP数据报最大是(2^16-1)=65535bytes,利用总长度和首部长度就可以算出数据长度
    • 标识Identification 16bit,相当于IP数据报的ID,如果因为数据大于链路层MTU导致IP数据报分段(Fragment)的话,则每个分段的IP数据报的标识都是一样的
    • 标志Flag 3bit,只有两位在用,DF(Dont Fragment)和MF(More Fragment)用于分段标志,DF标志是否分段,MF标志分段后后面是否更多分段
    • 位偏移Offset 13bit 用于分段后标志该IP数据报相对原来数据报的偏移量(以8字节为单位)
    • 生存时间TTL Time To Live 限制数据报在网络上的存留时间,数值为经过的路由器的数目(Hop Count)每当一个IP数据报到达路由器或者主机,TTL就会被减一。如果减到0还没到达目的地,数据报会被丢弃,并用ICMP包告诉发送主机,TraceRoute的原理就是用TTL字段
    • 协议 表示上层协议,1代表ICMP,2代表IGMP,6代表TCP,17代表UDP。
    • 首部校验和 16位,用于验证数据完整性,计算方法为,首先将校验和位置零,然后将每16位二进制反码求和即为校验和,最后写入校验和位置。接收方验证时把数据和校验和一起做16位求和,如果二进制结果全为1,则数据无差错,如果不是全1,则丢弃该数据报,但不会跟TTL为0时一样发送ICMP报文,而是交给上层协议发现数据丢失进行重传,数据报经过路由器时TTL减一,对应的检验和也需要加一,这样不用重新计算校验和,具体可见RFC1141
    • 源IP地址
    • 目的IP地址
    展开全文
  • 首部长度:表示IP数据报中报头的长度,可表示的最大的十进制位是15。首部长度表示的基本单位是4个字节,因此首部长度的最小值是5,也就是报头最小长度是20个字节。当首部长度是1111时,表示的是报头最大是60个字节...
    • 💂 个人主页:努力学习的少年
    • 🤟 版权: 本文由【努力学习的少年】原创、在CSDN首发、需要转载请联系博主
    • 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦

    🚀 IP数据报格式

    • 版本:占4位,指ip协议的版本
    • 首部长度:表示IP数据报中报头的长度,可表示的最大的十进制位是15。首部长度表示的基本单位是4个字节,因此首部长度的最小值是5,也就是报头最小长度是20个字节。当首部长度是1111时,表示的是报头最大是60个字节。
    • 区分服务:占8位,用来获得更好的服务,但实际上一直没被用过。
    • 总长度:指的是一个IP数据报总的长度,也就是报头+数据。
    • 标识:占16位,在IP软件在存储器中维持着一个计数器,每产生一个数据报,计数器就+1,并将此值赋值给标识字段。当IP数据报长度超过MTU而必须进行分片,这个标识字段的值就被复制到所有的数据报片的标识字段中。相同的标识字段的值使分片后的各个数据报片最后的能正确地重装成为原来的数据。
    • 标志:占3位,但目前只有两位有意义
    1. 标志字段中的最低位为MF。MF=1即表示后面“还有分片”的数据报。MF=0表示的是这个数据报的最后一个。
    2. 标志字段中的中间一位记为DF,当DF记为1时,表示的是“不能分片”。
    • 片偏移: 占13位。片偏移指出,较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对于用户数据字段的起点,相对于用户的数据字段,该片从何开始。片偏移以8字节为单位。这就是说,每个分片长度一定是8字节的整数倍。 
    • 生存时间 :占8位,生存时间字段常用英文缩写是TTL(Time to Live),表明的是数据报在网络中的寿命。由发出数据报圆点设置这个字段,目的是防止无法交付的数据报无限制地在因特网中兜圈子,占用网络资源。TTL以跳数作为基本单位,路由器在转发数据报中,TTL值就会-1,当TTL为0时,该数据报就会被丢弃。显然数据报能在因特网中经过的路由器的最大数值是255。若把TTL的初始值设置为1,就表示该数据报只能在本局域网中传送。
    • 协议:占8位,协议字段指出此数据携带的数据是使用何种协议,以便让使目的的IP层知道将数据部分上交到哪个处理过程。如TCP,UDP等等
    • 首部检验和: 占16位,这个字段只检验数据报的首部,不包括数据部分。
    • 源IP地址:占32位。
    • 目的IP地址:占32位。

    🚀 IP数据报分片问题

    在了解IP数据报分片之前,我们先思考一下IP数据报为什么要进行分片?

    • 在数据链路层当中MAC层规定了MAC帧中最多能携带数据是MTU个字节(默认的MTU值是1500个字节),那么MAC中能携带最大能携带1500个字节。如果IP层向下传递一个超过1500个字节IP数据报给mac帧,则MAC帧是不会将数据报发送出去的,所以如果在IP层中是不能将一个大小是超过MTU的IP数据报传递到MAC层,如果检测到一个IP数据报的大小是超过MTU,则IP层会将IP数据报中的数据部分进行切片。

    IP层是如何将IP数据报进行分片呢?

    • 假设一个数据报的总长度为3820,其数据部分是3800,如果MTU是1420个字节,为了能让我们的MAC层能将IP报发出去,所以分片后的IP数据报不能超过1420个字节,因为IP报头是固定的20个字节,所以分片后的IP报中数据部分不能超过1400个字节,于是如下分成3片,其数据部分1400,1400,1000个字节。

     接受方主机是如何判断收到的IP报中的数据被分片过呢?

    • 如果收到一个IP数据报中的MF标志位是1,则说明该IP数据报中的数据部分被分片过,需要对数据部分进行组装。或者收到一个IP数据报中的MF标志位是0,且偏移量不是0的IP数据报,也说明该IP数据报中的数据部分也被分片过。

    接收方主机是如何判断IP数据报中数据部分组装完成或者IP数据报中的数据不需要进行组装了呢?

    • 如果接收方的IP层收到一个IP数据报中的MF标志位是0,且偏移量是0,说明该IP中的数据部分不需要进行组装,如果收到是一个IP数据报中的MF标志位是0,且偏移量不是0,那么就会检测组装数据部分中是否存在缺失的情况(根据偏移量进行检测),如果组装的数据部分是连续的,那么就说明被切片的数据字段已经组装完成。

    如果IP数据报中的数据部分被切片后,其中某些分片缺失后会怎么样?

    • 如果某些分片在网络中丢失后,那么接收方中的数据部分组装后是不完整的,所以代表被切分的IP数据报丢失了,所以其它的相同标识分片的数据报是会被丢弃掉,因此发送过来的数据字段就丢失了,如果上层是TCP协议,则会进行超时重传一个IP报,当然效率是会减低很多的。因此,如果将一个IP报中的数据字段被切分多个分片,是会增加该IP报丢失几率的(IP协议是没有可靠协议的),只要其中一个切片丢了,则被切分的IP报就丢了,因此是不建议将IP报进行切分。

    TCP协议为了减少IP报被切分的概率,双方主机在握手阶段会交换自己的MSS,那么MSS是什么呢?

    • MSS是TCP层交互给IP层最大分段大小,不包含TCP报头,只包含数据。由于在MAC层中规定了一个最大传输单元MTU,所有的MAC帧的数据部分不能超过该MTU,因此就要求IP层不能传输超过MTU字节的IP报,但IP报中报IP报头和IP数据部分,IP数据部分是由TCP层面决定的因此,所以TCP为了减少被切分的概率,就确定一个MSS限制每一次交互给IP层的数据大小。MSS数据大小去掉IP报头和TCP报头,IP报头和TCP报头都是20个字节(不考虑扩展项)。因此:MSS数据大小=MTU-20-20.(MTU默认值是1500个字节,也可以是其它值)。

     

    • 所以双方主机在建立连接的时候会交换自己的MSS大小值,最终大小取决于双方主机的较小值,如果一台主机的MSS是1200个字节,另一台主机的MSS是1300个字节,所以双方主机MSS都取1200个字节,那么双方通信的时候TCP层面发送的数据都是1200个字节。

    Ip层是如何将 IP数据报中的报头和数据部分分开的?

    • Ip层收到一个数据报,会先读取前20个字节,因为前20个字节是固定的,然后再找到首部长度判断报头中是否存在选项,如果首部长度是0101,则说明报头为20个字节,所以刚刚读取的20个字节就是报头,然后再找到总长度,数据大小=总长度-首部长度,所以接下来再读取数据大小个字节就是该数据报的数据部分。

    展开全文
  • IP协议数据报格式详解

    千次阅读 多人点赞 2021-11-04 22:26:50
    ????‍????写博客的主要原因是为了巩固所学知识????‍???? IP数据报格式
  • IP数据报

    千次阅读 2021-06-16 23:10:29
    IP数据报IPv4数据的格式IP数据报的首部IP数据报首部的可变部分关于分片IPv6的数据IPv6数据格式IPv6的首部IPv6的扩展首部。 IPv4数据的格式 IPv4数据的格式能够说明IP协议都具有什么功能。在TCP/IP的标准中...
  • 那么本题首部长度为1110,对应二进制为14,故该IP数据报首部的长度为144=56字节。 其中首部长度有10个单位(及40字节)作为可选字段。当IP分组的首部长度不是4字节的整数倍时,必须用0加以填充,从而保证数据部分始终...
  • IP数据报格式

    千次阅读 2022-03-28 11:55:39
    IP数据报的格式能够说明IP协议都具有什么功能。在TCP/IP的标准中,各种数据格式常常以32位(4字节)为单位来描述的。 wireshark中IP数据报文呈现 一个IP数据报文由首部和数据两部分组成。首部的前一部分是固定长度...
  • IP协议字段的取值表

    万次阅读 2014-11-17 18:28:35
    由于IPv4的包头可能包含可变数量的可选项,所以这个字段可以用来确定IPv4数据报数据部分的偏移位置。IPv4包头的最小长度是20个字节,因此IHL这个字段的最小值用十进制表示就是5 (5x4 = 20字节)。就是说,
  • IP数据报格式分析

    千次阅读 2019-04-07 17:50:27
    文章目录前言NAT网络地址转换IP数据报 前言 在前面的文章中,我们知道,如果一个主机(开发板)想要访问外网,那必须经过NAT地址转换,就拿我们的电脑来说,它想要访问外网,那就必须将电脑的IP地址转换为公网的IP...
  • IP报头的协议类型字段取值

    千次阅读 2020-05-12 00:43:08
    IP报头的协议类型字段定义如下: 取值 协议 0 HOPOPT 1 ICMP 2 IGMP 3 GGP 4 IP-in-IP 5 ST 6 TCP 7 CBT 8 EGP 9 IGP 10 BBN-RCC-MON 11 NVP-II 12 PUP 13 ARGUS 14 EMCON 15 ...
  • 整个IP数据包的首部长度,不包括数据部分; 但是首部长度只用4个bit存储,表示最大值也是1111,即15; 而我们实际上首部长度还需要乘于5才可以得到实际答案; 假如首部长度为0101,也就是4,那么实际的首部长度为4×...
  • ip数据报格式详解

    千次阅读 2018-12-19 11:57:34
    IP数据报 一、 固定部分 (1)版本 占4位 (2)首部长度 占4位 (3)区分服务 占8位  (4)总长度 占16位 (5)标识(identification) 占16位 (6)标志(flag) 占3位 (7)片偏移 占13位 (8)生存时间 占8位 (9)...
  • ip数据报格式;ip数据报分片

    万次阅读 多人点赞 2018-05-28 10:33:29
    由于TCP/IP协议头部中所有的二进制数在网络中传输时都要求以这种顺序进行,因此把它称为网络字节顺序。在实际编程中,以其他形式存储的二进制数必须在传输数据前使用网络编程API相应的函数把头部转换成网络字节顺序...
  • 文章目录IP数据报分片 IP数据报(一般称为分组) 头部的结构是体现IP分组的核心 其中,固定部分又是核心中的核心(共占有20B)(80bit) 下表中,第一行(即分组头部的前4Byte)包含的内容该分组的最基本信息 第二行内容有三个...
  • 用户数据报协议---UDP协议【详解】

    千次阅读 2022-02-04 15:45:13
    UDP(User Datagram Protocol,用户数据报协议)是一个简单地面向数据报的运输层协议,为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据报的方法。 UDP 的主要特点: UDP 是无连接的,即发送数据之前不...
  • IP数据包格式协议字段 IP数据包格式 IP数据格式解析: 版本(Version): 该字段包含的是IP的版本号,4bit,目前的版本是4.(即代表IPV4) 首部长度(Header length):该字段用于表示IP地址包头长度,4bit。...
  • IP数据报的格式以及分片细节

    千次阅读 2022-03-03 16:41:36
    首部长度(4bit): 因为一个IPv4数据可包含一些可变数量的选项(这写选项包括在IPV4数据首部中),故需要用这4bit来确定IP数据报中载荷(例如在这个数据中被封装的运输层文段)实际开始的地方。 服务类型TQS...
  • IP数据报的检验(计算机网络)

    千次阅读 2021-05-26 15:11:50
    IP数据报的检验原理及计算过程
  • IP数据报格式详解

    万次阅读 多人点赞 2017-07-05 16:22:04
    IP数据报的格式分为报头区和数据区两大部分,其中报头区是为了正确传输高层数据而加的各种控制信息,数据区包括高层协议需要传输的数据。 IP数据报的格式如下: 注意,上图表示的数据,最高位在左边,记为0位;...
  • IP数据报格式及分片与重组

    千次阅读 2021-10-27 11:16:25
    协议字段指出此数据报携带的数据是使用何种上层协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程(TCP或UDP等协议)。 常用网际协议编号: 首部检验和:占 16位.这个字段只检验数据报的首部,但不包括...
  • IP报文格式及各字段意义

    千次阅读 2020-12-24 13:59:58
    首部各字段的含义如下1、版本占4位,指IP协议的版本。2、报头长度占4位,该字段的单位是32位字(1个32位字长是4字节),因此当IP报头长度为1111时,报头长度就达到最大值60字节。当IP分组的首部长度不是4字节的整数倍...
  • 网络层协议初识之IP字段(一)

    千次阅读 2020-10-22 19:33:14
    一个IP 数据包是由IP数据包头 和数据组成的 这里是一个IP 数据包的表现形式如下图所示:蓝色框中的是 包头部分,黄色部分是上层传下来的上层数据部分,这里组成了一个IP数据包。 这里我们专门了解一下IP数据包的...
  • IP数据报 格式参数详解

    千次阅读 2018-09-10 10:58:04
    IP数据报的格式分为报头区和数据区两大部分,其中报头区是为了正确传输高层数据而加的各种控制信息,数据区包括高层协议需要传输的数据。 IP数据报的格式如下: 注意,上图表示的数据,最高位在左边,记为0位;...
  • 二、IP数据报格式 记忆方法: TCP是面向连接的服务,面向连接就非常6。而UDP是不面向连接的,数据就非常容易被“遗弃”(17)。因为如果不建立连接,这个链路是不太可靠的,所以数据会经常产生丢包现象,也就是被...
  • 一、网络层安全性 、 二、IPsec 协议族 、 三、IPsec 协议族组成 、 四、IP 安全数据包 工作方式 、 ...七、IP 安全数据报格式 、 八、IP 安全数据报 生成流程 、 九、IP 安全数据报格式 、 十、IPsec 构件 、
  • 以太网帧、IP数据报、TCP字段

    千次阅读 2018-04-13 22:15:11
    我们知道,现在商用化的计算机网络是基于TCP/IP的四层模型。分别为: 应用层 传输层 网络层 网络接口层 可以看到,每层都有属于自己的协议,这些协议其实就是一种规范,一种格式,为了让发送方和接收方都能理解的一...
  • IP数据报首部格式及相应练习

    千次阅读 2022-04-24 13:54:42
    IP数据报的格式 一个IP数据报由首部和数据两部分组成 首部分为固定部分和可变部分,固定部分长度为20个字节,可变部分长度不定 版本:IPV4或IPV6 首部长度:占四位,可表示的最大数值为60字节,出去固定部分的20...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 178,778
精华内容 71,511
关键字:

ip数据报协议字段