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

    千次阅读 2017-01-03 21:03:09
    转载地址:... 字段内容介绍如下: ...声明这个ip数据包的版本,如目前惯用的IPv4信息就反映在这里。...首部长度(IHL:Internet Header Length)占4位 这个ip数据包的报头长度,以4

    转载地址:http://blog.chinaunix.net/uid-26413668-id-3407371.html

    字段内容介绍如下:

    版本(Version)占4位
    声明这个ip数据包的版本,如目前惯用的IPv4信息就反映在这里。

    首部长度(IHL:Internet Header Length)占4位
    这个ip数据包的报头长度,以4字节为一个单位来记录IP报头的长度。

    服务类型(Type of Service)占8位
    这个字段内容为“PPPDTRUU”,表示这个IP数据包的服务类型,主要分为:
    • PPP:表示此IP数据包的优先级,目前很少用。
    • D:若为0表示一般延迟,若为1表示为低延迟。
    • T:若为0表示一般传输量(throughput),若为1表示为高传输量。
    • R:若为0表示为一般可靠度(reliability),若为1表示高可靠度。
    • UU:保留尚未被使用。

    总长度(Total Length)占16位
    指这个IP数据包的总容量,包括报头与数据部分。总长度字段为16位,因此数据报的最大长度为216-1=65535字节。

    标识(Identification)占16位
    当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。

    标志(flags) 占3位,但目前只有2位有意义。 
    这个地方的内容为“0DM”,其意义为:
    • D:若为0表示可以分段,若为1表示不可分段
    • M:若为0表示此IP为最后分段,若为1鸟事非最后分段。

    片偏移(Fragment Offset) 占13位
    表示目前这个IP分段在原始的IP数据包中所占的位置。
    片偏移以8个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍。
    所以通过Total Length,Identification,Flags以及fragment Offset就能够将小IP分段在接收端组合起来了。

    生存时间(Time To Live:TTL)占8位
    表示这个IP数据包的生存时间,范围0~255.
    当这个IP数据包通过一个路由器时,TTL就会减1,当TTL为0时,这个数据包将被直接丢弃。

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

    首部检验和(Header Checksum) 占16位。
    这个字段只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。 
     
    源地址(Source Address) 占32位。 
    源IP

    目的地址(Destination Address) 占32位。
    目标IP

    可选字段(Options)
            用来支持排错、测量以及安全等措施,内容很丰富。此字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目。
      增加首部的可变部分是为了增加IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。实际上这些选项很少被使用。新的IP版本IPv6就将IP数据报的首部长度做成固定的。 
      目前,这些任选项定义如下: 
      (1)安全和处理限制(用于军事领域) 
      (2)记录路径(让每个路由器都记下它的IP地址) 
      (3)时间戳(让每个路由器都记下它的IP地址和时间) 
      (4)宽松的源站路由(为数据报指定一系列必须经过的IP地址) 
      (5)严格的源站路由(与宽松的源站路由类似,但是要求只能经过指定的这些地址,不能经过其他的地址) 
      这些选项很少被使用,并非所有主机和路由器都支持这些选项。 

    补充(Padding)
    由于Options的某些选项项目只需要1个字节,它只包括1个字节的选项代码。但还有些选项需要多个字节,这些选项一个个拼接起来,中间不需要有分隔符,最后用全0的填充字段补齐成为4字节的整数倍。 

    展开全文
  • 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数据报首部检验和原理

    千次阅读 2020-10-31 21:09:45
    在发送方,先把IP数据报首部划分为许多16位字的序列,并把检验和字段置为0,用反码算术运算把所有16位字相加,将得到的和的反码写入检验和字段。 接收方收到数据后,将首部所有的16位字使用反码算术运算相加一次,将...

    首部检验和

    首部检验和,只检验数据报的首部,不包括数据部分。
    在发送方,先把IP数据报首部划分为许多16位字的序列,并把检验和字段置为0,用反码算术运算把所有16位字相加,将得到的和的反码写入检验和字段。
    接收方收到数据后,将首部所有的16位字使用反码算术运算相加一次,将得到的和取反码,即得出接收方检验和的计算结果。若首部未发生任何变化,该结果为0,于是就保留这个数据报。否则就认为出错,并将此数据报丢弃。
    在这里插入图片描述

    示例:

    Wireshark抓包,图中蓝色的为ip数据报首部信息。
    在这里插入图片描述
    45 00 00 3c
    4:版本,4
    5:首部长度为5个32位,即20字节
    00:区分服务
    00 3c:总长度为60个字节,其中首部长度20字节,数据部分40个字节
    eb 20 00 00
    eb 20:标识
    00 00:3位的标志和13位的片偏移
    40 01 b7 fb
    40:生存时间TTL为64
    01:协议,1代表ICMP协议
    b7 fb:首部检验和
    c0 a8 2b 53
    源地址:192.168.43.83
    c0 a8 2b 01
    目的地址:192.168.43.1

    1.发送方先把IP数据报首部划分为许多16位字的序列,并把检验和字段置为0
    4500 003c 3b20 0000 4001 0000 c0a8 2b53 c0a8 2b01
    2.然后进行反码算术运算把所有16位字相加求和取反码
    求和得 48 04,取反得 b7 fb,写入检验和字段
    3.接收方收到后将首部所有的16位字使用反码算术运算相加求和取反码
    4500 003c 3b20 0000 4001 b7fb c0a8 2b53 c0a8 2b01
    求和得 ff ff ,取反得 00 00,因此判断未出现差错。

    展开全文
  • IP数据报首部校验和算法说明

    千次阅读 2017-12-28 16:26:28
    IP数据报首部校验和算法》 1. IP数据报首部校验主要用于保证IP数据报头的完整性。 2. 该算法为“反码求和校验”,”反码求和校验“是一个专用术语,区别于先求反码再求和。 3. 该算法过程如下文所示例。  => ...


    《IP数据报首部校验和算法说明》


    1.  IP数据报首部校验主要用于保证IP数据报头的完整性。

    2.  该算法为“反码求和校验”,”反码求和校验“是一个专用术语,区别于先求反码再求和。

    3.  该算法过程如下文所示例。

        => 发送方
        i.   将校验和字段初始化为0,然后将IP报头按照16bit分成多个单元,如果报头长度不是
            16bit整数倍,则填充0;
       
        ii.  对上述各个单元(16bit)采用“反码求和”运算,即将各个单元直接相加,高位溢出位
     加到最低位(不同于通常补码运算是直接丢掉溢出位),将得到的和取其反码,填入校验和字段即可;

        iii.  IP数据报头发送完毕后,接着发送数据报内容;


        => 接收方 

        i.   将校验和字段初始化为0,然后将IP报头按照16bit分成多个单元,如果报头长度不是

             16bit整数倍,则填充0;
       
        ii.  对上述各个单元(16bit)采用“反码加法”运算,包括发送方发送的校验和字段,
             然后检查得到的结果每个数据位是否全部为1;

        iii.  如果满足,则进行下步处理,否则表明该帧数据报在传输过程中发生错误,舍弃该帧数据;


    4.  “反码求和”运算示例


       例如,位宽为3bit的两个数值100b和101b进行反码求和运算。

        i.   100b + 101b = 1_001b,高位存在溢出;

        ii.  高位溢出的1,加到最低位。即 001b + 1b(溢出位) = 010b;

        iii. 上述两数反码求和结果为010b,然后取反,为101b即为校验和发送给接收端;

    说明:在接收端会接收到三个数值(包含校验和),100b, 101b, 101b。

       按照“反码求和”运算,结果为

       100b + 101b + 101b = 1_110b, 溢出位加到最低位后,结果为111b,每个数据位全部为1;

     (为什么全部为1,不难理解,原码010b与反码101b求和,其结果各数据位必然为1)


    备注:参考博客文章链接为http://www.360doc.com/content/15/0910/23/27653981_498345868.shtml

         








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

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

    千次阅读 2018-05-26 13:51:19
    IP数据报首部校验和算法 详细 非代码当用google搜索IP数据报首部校验和算法的时候,总是看到的是代码,没有看到其过程,于是就有了此文,如有错误请指正。文章省略一点,呵呵 IP/ICMP/IGMP/TCP/UDP等协议的校验和...
  • IP数据报首部的格式:关于标识(identification)、标志(flag)和片偏移 关于标识(identification) 标识(identification):占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值...
  • IPV4数据报的首部长度为5,数据总长度为80字节,数据报的标识为1,未分片, TTL值为4,封装的是TCP数据,源地址和目的地址分别是192.168.20.86和192.168.21.20, 请对IP数据报进行首部校验。
  • IP数据报首部长度计算

    万次阅读 2018-05-12 17:01:31
    IP数据报格式如图所示 IP首部固定部分有20字节,除非含有选项部分。故最小长度为20字节。 首部长度是指IP首部占32bit字的数目,包括选项(如果有)。首部长度本身为4bit字段,能表示的二进制最大数为1111,换算成...
  • 每一个IP数据报首部必须有生存周期TTL这个大小根据什么来设置
  • IP 数据报首部分析

    2020-10-25 15:21:33
    今咱就抓个数据报具体看一看真实网络中的 IP 报首部. 操作方法很简单, 使用wireshark进行抓包. 抓包后随便找个包看一下就行, 毕竟所有通信的包都需要经过网络层.(同时,wireshark会对协议的相关信息给出标识, 更...
  • IP数据报首部实验.docx

    2020-03-30 09:03:55
    在cmd窗口ping IP–l 3000 –n 1,用科来软件进行抓包截图,主要是观察其分片,文档特别简洁。各取所需 :)
  • IP数据报首部(报头)和数据两个部分组成。 首部可分为: 固定部分/定长部分(20字节)+可选部分/变长部分(40字节); 注释: (1)图中每一行由32比特/位bit(4个字节byte),每小格称为域/字段; (2)小括号里...
  • IP数据报首部选项字段详解

    千次阅读 2016-03-08 10:34:26
    IP选项主要用于控制和测试两大目的。 作为选项,用户可以使用也可以不使用IP...IP数据报选项有选项码、长度、和选项数据3部分组成, 其中,选项码用于确定该选项的具体内容,选项数据部分长度由选项字段决定。 1.源
  • IP数据报首部checksum的计算

    千次阅读 2015-04-05 10:27:13
    一、首先区别下面两个概念: (1)one's complement:正数=...1.发送IP数据报计算checksum (1)将校验和字段置为0; (2)对首部中(一般为20B)每个16位字进行二进制反码求和; (3)将(2)中得到的和再取反码,即得checksum,写
  • ip数据报首部检验和

    2014-09-30 23:35:30
    ip数据报首部检验和,是保证在发送端和接收端 首部数据没有改变,但是ttl字段每经过一个路由器就减1,这怎么办
  • IP数据报首部检验和字段分析

    千次阅读 2014-04-21 11:00:48
     在发送数据时,为了计算IP数据包的校验和。应该按如下步骤:  (1)把IP数据包的校验和字段置为0;  (2)把首部看成以16位为单位的数字组成,依次进行二进制反码求和;  (3)把得到的结果存入校验和...
  • 计算机网络的ip数据报首部各字段

    千次阅读 2016-05-08 21:35:19
    1.版本 2.首部长度 3.区分服务 4.总长度 5.标识 6.标志 7.片偏移 8.生存时间 9.协议 10.首部检验和 11.源地址 12.目的地址
  • ip数据报首部的校验和算法

    千次阅读 2009-10-13 19:13:00
    不仅是ip首部, 多种网络协议都用到了此种校验算法来求得校验和(checksum).这种算法称之为: 二进制反码求和. 不知道为什么会取这么一个别扭的名字.算校验和的时候, 要注意那些字节参与计算, 哪些不参加. // 求协议头...
  • 转自:...IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”不是序...
  • IP数据报首部

    万次阅读 多人点赞 2016-02-17 21:42:50
    1. IP数据报首部——固定部分 1.1 版本 占4位,指IP协议的版本。 通信双方使用的IP协议的版本必须一致。 IP协议版本号为4(即IPv4),IP协议版本号为6(即IPv6)。 1.2 首部长度 占4位,可表示的最大十进制数值是15。...
  • Win32如何定义IP数据报首部

    千次阅读 2014-05-30 09:47:02
    [摘要]本文介绍Win32如何定义IP数据报的首部,包括IP数据报首部的定义、TCP报文段首部的定义和UDP报文段首部的定义相关内容。 在进行网络编程时,可能需要直接操作原始的IP数据报,例如编写网络嗅探器。此时要...
  • IP数据报首部长度解析

    万次阅读 2016-11-23 16:06:47
    IP数据报首部长度解析

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,206
精华内容 13,282
关键字:

ip数据报首部