精华内容
下载资源
问答
  • IP首部

    千次阅读 多人点赞 2019-03-17 12:32:15
    IP数据报首部的格式。 首部最小20个字节,最大60个字节。最小时就是只有固定部分(每个单位32bit,也就是4个字节,共5行,就是20个字节),一个单位指的是一行。 wireshark抓包分析 版本 在数据传输时,发送方...

    IP 网际协议(Internet Protocol, IP)

    IP数据报首部的格式。

    首部最小20个字节,最大60个字节。最小时就是只有固定部分(每个单位32bit,也就是4个字节,共5行,就是20个字节),一个单位指的是一行。
    在这里插入图片描述
    wireshark抓包分析

    版本
    在这里插入图片描述在数据传输时,发送方和接收方的IP版本是一致,如果不是,那么数据包就会被丢弃。

    首部长度
    在这里插入图片描述服务类型

    type of service (TOS) 服务类型
    在这里插入图片描述
    总长度
    在这里插入图片描述Total Length:表示IP数据报文的总长度,也就是说这个IP数据报文的数据总共有多少个字节,其中包括了IP数据报文的首部和数据部分。总长度占16位(即16-31位),指的是首部部分和数据部分的长度,单位为字节,IP数据报文的最大长度为2的16次方 - 1,也就是65535字节,所以总长度不能超过最大传输单元MTU。

    其中首部部分占用20 - 60字节,如果以首部占用60字节来算,那么在传输数据时,最大能传输65535 - 60 = 65475字节的数据(MSS)了。上图中我们抓的包的总长度为为40字节,首部长度为20字节,也就是说我们抓的这个数据报传递的实际数据为20字节大小。

    另外,要注意MTU和MSS之间的一些小区别:MTU包括了数据报文的首部和数据部分,而MSS只包括数据部分。

    标识
    在这里插入图片描述占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。
    同一个数据报的各个分片的标识是一样的
    同一个数据报的各个分片的标识是一样的
    同一个数据报的各个分片的标识是一样的

    标志
    在这里插入图片描述标志(flags)占用3位(即16 - 18),这三位分别是:R,D,M三位,第一位是保留位,没有被使用,目前只有后两个比特有意义。

    R:标志字段中的第一位是一个保留位,现在还没有使用,可能将来会用到这位

    D:标志字段中间的一位是 DF (Don’t fragment),表示传输的数据不允许分片。一般DF = 1的话,表示数据一次性传输过去,不允许分片。

    M:标志字段的最低位是 MF (More fragment)。代表数据是否分片,如果MF位值为1,表示后面还有数据,还没有传输完毕,相当于数据分片,分批次传输,如果MF = 0表示最后一个分片或者只有一个分片。

    这三位同一时刻也是只能有一个位的值能设置为1
    这三位同一时刻也是只能有一个位的值能设置为1
    这三位同一时刻也是只能有一个位的值能设置为1

    片偏移
    在这里插入图片描述片偏移(Fragment offset)占用13位:每次分片传输的数据之间的偏移距离,也就是某分片的数据在原数据中的相对位置,一般偏移以8字节为单位。比如:在网络层传输的ip数据报总长度最大不能超过65535字节,如果超过了,要么对ip数据报进行分片传输,否则将丢弃。

    那么问题来了,为什么是以8字节为单位?
      它是由IP头部格式中的“总长度(16bit)”和“偏移(13bit)”两个字段所决定的。总长度定义了IP包的最大长度为2^16 =64KB,偏移说明了IP分片时它最多能表示2^13 个偏移单位,这样偏移单位就是总长度除以偏移量得出片偏移单位(即2^16 / 213=23,即为8字节了)。

    通常,我们要发送一个非常大的数据,由于受网络传输的限制,一次性发不过去,就需要对数据进行分片传输,把数据发送到目的地后再把数据重新组装起来是根据偏移量来计算重组的。
    在这里插入图片描述因为偏移量是以8字节为偏移单位,对于分片1来说从0字节开始算,偏移量为0 / 8 = 0,对于分片2来说从1400字节开始算,偏移量为1400 / 8 = 175,对于分片3来说是从2800开始算,偏移量为2800 / 8 = 350。
    片偏移为0表示这可能是第一个分片,也有可能是这个数据报文不支持分片
    片偏移为0表示这可能是第一个分片,也有可能是这个数据报文不支持分片
    片偏移为0表示这可能是第一个分片,也有可能是这个数据报文不支持分片
    另外,这些数据包分片的ip首部大部分都是一样的,因为它们都属于同一数据报文,对于数据进行重组就需要参考片偏移和标识这两个重要的字段,需要注意的是,片偏移是根据某一数据片的开始位置来计算的。

    生存时间
    在这里插入图片描述生存时间(Time To Live,简称TTL ),占用8个bit位,表示数据报在网络传输过程中的生存时间,目的是防止无法交付的数据包在网络中出现路由环路,最初是秒作为单位,但为了方便,现在都用“跳数”作为TTL的单位。也就是说数据报每经过一个路由器就是一跳,其TTL值就减 1。

    而一般生存时间是有操作系统来设置的,有的是32、64、128、255。从上图可以看出数据经过64-54=10跳路由。
    主机A给主机B发送一个数据报文时,该数据报文在网络中会有一个TTL生存时间字段,就是数据报文每经过一台路由器,TTL字段值就会减1,当路由器收到数据报文后TTL字段值减1后为0的话,那么该路由器就会把数据报丢弃并向主机A发回一个ICMP超时报文,这种机制有效的防止了路由环路,也就是解决了数据报在路由器之间一直转圈的问题。

    协议
    在这里插入图片描述常用的协议和对应的协议字段值

    1	ICMP
    2	IGMP
    4	IP
    6	TCP
    8	EGP
    9	IGP
    17 	UDP
    41 	IPv6
    50 	ESP
    89	OSPE
    

    首部校验和
    在这里插入图片描述首部检验和字段占用16个bit位,只检验数据报的首部部分,并不包括数据部分,因为数据报每经过一个路由器都要重新计算一下首部校验和(一些字段,如生存时间,标志,片偏移等都可能发生变化),这里不采用 CRC 检验码而采用简单的计算方法,校验数据报在传输过程中是否被篡改或数据报被破坏。

    validation disabled表示wireshark软件把首部校验和这个功能关闭了。
      如果[Checksum Status: Good ]中是good则表示校验和是正确的,如果是bad表示是校验和是存在问题的,可能数据出现损坏或被篡改。

    在IP中只检验数据报的首部部分,并不包括数据部分
    在IP中只检验数据报的首部部分,并不包括数据部分
    在IP中只检验数据报的首部部分,并不包括数据部分

    源地址
    在这里插入图片描述
    目的地址
    在这里插入图片描述可选字段
     IP 首部的可变部分就是一个选项字段,一般用于支持排错、测试以及安全等措施,内容很多。选项字段的长度可变,从 1 个比特到 32个比特不等,取决于所选择的项目,增加首部的可变部分是为了增加 IP 数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这也就增加了每一个路由器处理数据报的开销,而实际上这些选项很少被使用。

    展开全文
  • 关于IP协议首部长度的计算

    千次阅读 2018-12-08 10:21:15
    0x00 看到《TCP/IP详解》IP协议中提到IP数据报首部长度是一...首部长度代表的是IP数据报头部的长度,即图中固定部分的长度。 0x02 1、为什么首部长度最小是20字节? 图中每行是32bits(即4字节),图中标识的固定部分...

    0x00

    看到《TCP/IP详解》IP协议中提到IP数据报首部长度是一个4比特字段,因此首部最长是60个字节。最小是20个字节。那么这个怎么算的呢?
    先看下IP数据报报格式及首部中各个字段,如下图:
    在这里插入图片描述

    这里只看首部长度(报文长度)部分
    首部长度代表的是IP数据报头部的长度,即图中固定部分的长度。

    0x02

    1、为什么首部长度最小是20字节?

    图中每行是32bits(即4字节),图中标识的固定部分总共有5行,所以IP首部最小是20个字节(5行*4字节每行=20字节)

    2、为什么说首部长度最大是60个字节?

    首部长度是4bit,而2^4是16,所以它的取值范围是0-15(也可理解为4bit即是4个1,转换成十进制就是15),图中每行是4个字节(32bits),所以最大长度就是15*4=60字节。从中也就得知首部长度最小数字是5,即1001(因为IP首部最小是20字节)。
    PS: 也有理解说,首部长度就是固定以4个字节为单位。所以总是长度乘4,当然结果是一样的。

    3、另外记录下图中总长度字段

    总长度总字是16bits,以字节为单位。所以总长度最大是65535个字节,也即是IP分组的最大长度。 总长度=(4*首部长度) + 数据长度

    展开全文
  • IP数据报计算(IP数据报分片) 题目: ...IP数据报的固定首部20字节 MF=1:表示后面还有分片数据报 MF=0:表示后面没有分片数据报 DF=0:表示能分片 DF=1:表示禁止分片 题目分析: 这个题目固定首部:24

    IP数据报计算(IP数据报分片)

    题目:
    一个数据报部分长度为3400字节(使用固定首部)。现在经过一个网络传输,该网络的MTU为800字节:
    (1)应分为几个数据报片?
    (2)各数据报片的数据字段长度?
    (3)各数据报片的片偏移字段值?


    分析思路:

    • IP数据报由首部和数据部分组成
    • MTU:最大传输单元(首部+数据部分)
    • IP数据报的固定首部20字节
      在这里插入图片描述
    • MF=1:表示后面还有分片数据报
    • MF=0:表示后面没有分片数据报
    • DF=0:表示能分片
    • DF=1:表示禁止分片

    题目分析:
    这个题目固定首部:24字节,正常情况下是20字节
    原因:片偏移以8个字节为偏移单位,每个分片长度一定是8字节(64位)的整数倍
    该网络的MTU为800字节:包括首部和数据部分,
    最大的数据部分(减去首部24字节)为776字节
    (1)数据报部分长度为3400字节能分成多少个776
    3400/776≈4.38
    剩余部分不能丢弃
    所以应分为5个数据报片
    在这里插入图片描述
    (2)各数据报片的数据字段长度776 776 776 776 296
    (3)各数据报片的片偏移字段值0 0 97 194 291 388

    展开全文
  • ip数据包的结构:首部+数据部分 1.版本(v4或者v6)+首部长度(固定的20字节,所以就没有)+区分服务优先级(我的例子是 assured forwarding 31 0x1a 26,保证转发) 2.总长度+是否分片+分片的标志+片偏移 (我的例子中...

    ip数据包的结构:首部+数据部分

     

    1.版本(v4或者v6)+首部长度(固定的20字节,所以就没有)+
    区分服务优先级(我的例子是 assured forwarding 31 0x1a 26,保证转发)

    2.总长度+是否分片+分片的标志+片偏移 (我的例子中不需要分片) 

    网络层数据包最大65535字节,数据链路层数据最大 1500字节,所以这里可能会有个数据包分片的行为

    使用ping命令可以发送一个大的数据包,ping -t -l 65500 ip地址 , 这样抓的数据可以看到分片现象

    3.生存时间+协议+首部检验和+源地址+目的地址

     

    展开全文
  • IP数据报首部格式

    千次阅读 2019-05-07 21:35:08
    1.IP数据报首部固定部分中的各字段 (1)版本占4位,指IP协议的版本。通信双方使用的IP协议的版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)。关于以后要使用的IPv6(即版本6的IP协议),我们将在后面的4.6节...
  • IP数据报首部长度计算

    万次阅读 2018-05-12 17:01:31
    IP首部固定部分有20字节,除非含有选项部分。故最小长度为20字节。 首部长度是指IP首部占32bit字的数目,包括选项(如果有)。首部长度本身为4bit字段,能表示的二进制最大数为1111,换算成十进制为15,即首部最长为...
  • IP数据报的首部

    万次阅读 多人点赞 2016-02-17 21:42:50
    1. IP数据报首部——固定部分 1.1 版本 占4位,指IP协议的版本。 通信双方使用的IP协议的版本必须一致。 IP协议版本号为4(即IPv4),IP协议版本号为6(即IPv6)。 1.2 首部长度 占4位,可表示的最大十进制数值是15。...
  • //可以看到TCP报文头部是固定的,数据部分就不知道了。 1.两个端口号总和4个字节, 2.序列号4个字节 3.确认号4个字节 4.(4位首部长度+6位保留+6位报文类型) 2个字节+窗口大小两个字节 ==> 4个字节 5. 检验...
  • TCP、UDP与IP首部

    2020-09-11 17:55:11
    1、TCP虽然是面向字节的,但传输的时候数据单元却是报文段,一个TCP报文段分为首部和数据两部分,TCP的首部前20个字节是固定的,后面的4n个字节根据需要来增加,因此TCP报文最小的长度为20字节。 引用一张图 各字段...
  • IP数据报由首部(报头)和数据两个部分组成。 首部可分为: 固定部分/定长部分(20字节)+可选部分/变长部分(40字节); 注释: (1)图中每一行由32比特/位bit(4个字节byte),每小格称为域/字段; (2)小括号里...
  • 一个ip数据报由首部和数据两部分组成 首部 前一部分是固定长度,共20个字节,所有ip数据报必须有的 固定部分的后面是一些可选字段,长度可变,可有可无,很少用到 首部固定部分各字段的意义 1、版本:4bit,4 ...
  • IP、TCP、UDP首部详解

    2017-08-03 11:22:29
    原文:IP、TCP、UDP首部详解IP首部(1)第一个4字节(也就是第一行) ...用于标识首部的长度,单位为4字节,所以首部长度最大值为:(2^4 - 1) * 4 = 60字节,但一般只推荐使用20字节的固定长度。 服务类
  • 首部长度是固定的20B(这些固定的东西必须有),所以最少是首部长度最少是5(20/4=5),也即0101,最大是15(1111)也即60B。 因为首部长度的单位是4B,所以实际的首部长度必须是4的整数倍。不够的话填充。 这张图...
  •  IP选项是IP固定首部之后的选项部分,由于IP首部长度是用4bit来计数,以4个字节为表示的,所以首部长度最多为60个字节,IP选项最多为40个字节。IP选项字段可能包含0~多个单独选项。选项包含两类:单字节与多字节。...
  • 一、TCP协议首部,包括固定头部为20个字节+选项, 最大60个字节。 二、wireshark抓包数据。 1、源端口。 2、目标端口。 3、发送序列号。 4、响应序列号。 5、首部长度,占一个字节,最大只能填0xF, 实际数据 = ...
  • TCP为了实现稳定可靠的传输,自然是需要在...报文段由报文首部和数据组成,报文首部最小占20字节最多占60字节,固定的20字节包含各种连接信息,可扩展的40字节存放各种选项值 源端口和目的端口 各占2个字节...
  • IP数据报由首部+数据形式存在,首部固定的20B+可选择的部分组成 IP数据报的首部长度字段值就是告诉你每个分片首部占多少字节 这个字段值显示的是二进制,由于每个单位占四个字节,所以你要把二进制转化
  • TCP首部格式

    2019-09-17 21:55:11
    先看TCP报文段的格式,如下;...1、源端口和目的端口:加上IP首部的源IP地址和目的IP地址,确定唯一的一个TCP连接。另外通过目的端口来决定TCP将数据报交付于那个应用程序,从而实现TCP的分用功能。...
  • TCP报文段首部结构分析

    千次阅读 2019-09-02 20:37:08
    TCP报文段如APR报文、IP数据报一样,也是由首部与数据区域组成,TCP首部内容很丰富,各个字段都有特定的含义,一般来说TCP首部只有20个字节,TCP报文段首部的前20个字节是固定的,后面有4N字节是根据需要而增加的...
  • IPv4数据报的首部格式

    2021-05-29 10:43:18
    最小十进制取值为5,表示IP数据报首部只有20字节固定部分;最大十进制取值为15,表示IP数据报首部包含20字节固定部分和最大40字节可变部分 可选字段:长度从1字节到40个字节不等。用来支持排错,测量及安全等措施。 ...
  • 这是IP数据包首部的结构图,上图中每行为4个字节,其中固定部分为5行,则固定部分为20个字节。 IP数据包首部的分为固定部分与可变部分。(一般情况下可变部分为0) IP数据包首部的各个信息 版本:标识TCP/IP是IPV...
  • IP数据包格式

    万次阅读 2018-04-28 00:10:22
    IP数据包格式 TCP/IP协议定义了一个在...在首部固定部分的后面是一些可选字段,其长度是可变的.IP数据报首部固定部分中的各字段 版本: 占4位,指IP协议的版本.通信双方使用的IP协议版本必须一致.日前广泛使用的...
  • udp/tcp/ip首部格式

    2021-06-01 14:02:48
    用于标识首部的长度,单位为4字节,所以首部长度最大值为:(2^4 - 1) * 4 = 60字节,但一般只推荐使用20字节的固定长度。 (3)服务类型(Type Of Service),8位;用于标识IP包的优先级,但现在并未使用。 (4)总...
  • TCP报文首部详解

    千次阅读 2018-09-04 15:29:42
    首先我们需要知道TCP的固定包头为20个字节...根据OSI七层模型我们知道TCP属于传输层,IP属于网络层,最终数据都在物理层上传输,其中从传输层到网络层会在发送数据前会封装IP首部,表示要传给那台IP地址的机器。然后...

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 364
精华内容 145
关键字:

ip固定首部