精华内容
下载资源
问答
  • IP报文格式详解
    千次阅读
    2021-01-27 22:17:58

    IP报文格式讲解

        0                   1                   2                   3   
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |Version|  IHL  |Type of Service|          Total Length         |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |         Identification        |Flags|      Fragment Offset    |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |  Time to Live |    Protocol   |         Header Checksum       |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                       Source Address                          |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                    Destination Address                        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                    Options                    |    Padding    |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    Version:版本号。IPv4是4。IPv6是6。

    IHL:ip header length 首部长度。即数据部分的偏移量。以4字节为单位。有选项时,当IP报文首部的长度不是4字节的整数倍时,用0填充为4字节的整数倍。最小值是5,即首部最短20个字节,最大值是15,即首部最长60个字节。

    Type of Servie:ToS服务类型。指明以何种方式处理数据报文。目前前6位是DSCP(differentiated services codepoint),定义了一组区分服务。最后两位目前作为ECN比特,用于显式通知TCP发生了拥塞。ECN比特具体参见TCP相关文档。DSCP的右边三位为0时,前三位是优先级字段。111用于本地网络控制协议,110用于网际控制协议,比如OSPF、BGP,000是常规的数据,其它级别是具有优先级的数据报文。关于DSCP的详细讲解,参见QoS相关文档。

    Total Length:IP报文总长度。包括首部长度和数据部分。需要注意的是,如果IP报文被分片,这个字段表示的只是当前分片的总长度,而不是原始的IP报文的总长度。

    Identification:IP报文标识。IP协议通过源IP、目的IP、协议号和ID来标识一个IP报文。同一个IP报文的所有分片的Identification相同,都是原始IP报文的Identification。

    Flags:标志位。3个比特。高比特保留,必须是0。中间比特是不分片标志位(do not fragment),如果该比特是1,则数据报不能被分片。当IP报文长度大于出接口MTU,但是不分片bit置位时,路由器丢弃该报文,并向源主机发送一个ICMP消息。低比特是还有更多分片标志位(more fragment)。如果IP报文未被分片,则这个bit为1。如果被分片,该比特为0表示该分片不是原始IP报文的最后一个分片,该比特为1表示该分片是原始IP报文的最后一个分片。

    Fragment offset:片偏移。指明分片中的数据在原始的IP报文数据部分中的偏移量,以8字节为单位,所以除了最后一个分片,其它分片的IP报文数据部分长度必须是8字节的整数倍。如果IP报文没有被分片,那么这个字段的值为0。如果IP报文被分片,那么第一个分片中这个字段的值是0,后续分片中这个字段的值都不是0。假设第一个分片中数据部分的长度为1480字节,那么第二个分片的片偏移字段的值为185(1480/8=185)。

    TTL:time to live,实际上指明了报文能经过的路由器的最大数目,又叫最大跳数。因为是8个bit长,所以最大值为255。每台路由器转发报文时,就将其TTL值减1。如果减一之后这个字段的值变成了0,那么路由器就丢弃这个报文。这防止因为路由环路导致的IP报文在网络中无限转发。如果不希望一个报文跨跳传输,那么TTL值应该设置为1,比如OSPF报文。

    Protocol:协议号。表示上层协议是什么。常见值有ICMP:1;IGMP:2;TCP:6;UDP:17;RSVP:46;OSPF:89;PIM:103;VRRP:112。

    Header checksum:首部检验和。因为TTL逐跳递减,所在每一跳首部校验和都会变化。有人认为链路层有CRC字段,比如PPP、以太,但是IP并不限定于特定的链路层,并不能保证所有的链路层协议都有CRC字段。退一万步,即使所有的链路层协议都有CRC字段,在主机内部报文从链路层送到网络层时也可能发生错误。所以IP层需要计算校验和。那么为什么不计算整个报文的校验和呢?这会导致很大的开销,所以只检查对报文转发而言最重要的IP首部。IP协议把计算数据部分校验和的工作交给了上层协议。比如UDP和TCP,它们只需要在报文的目的地计算一次校验和,而不用每一跳都计算。另外,有些应用并不在乎少量的数据错误,比如实时视频流,UDP也可以不检查校验和。如果IP层将少量数据错误的报文都丢弃了,那会影响这种应用的工作。

    Source Address:源主机的IP地址。

    Destination Address:目的主机的IP地址。

    Options:选项头部。

    Padding:为当IP报文首部的长度不是4字节的整数倍时,用0填充为4字节的整数倍。

    IP报文首部之后就是数据部分。

    更多相关内容
  • 4.6 IP in IP报文格式 332 4.7 IPSec 335 4.7.1 IPSec报文AH封装 336 4.7.2 IPSec ESP 340 4.7.3 IPSec IKE 345 4.8 IP报文格式 359 4.9 IPv6报文格式 368 4.10 IPv6 in IPv4 (6to4)报文格式 378 4.11 MLD报文格式 ...
  • IP报文格式

    千次阅读 2022-02-15 22:06:21
    IP报文格式 如下,为IP报文格式: 字段解释 版本:占4比特。用来表明IP协议实现的版本号,当前一般为IPv4,即0100。 报头长度:占4比特。是头部占32比特的数字,包括可选项。普通IP数据报(没有任何选项),该字段...

    IP报文格式

    如下,为IP报文格式:
    在这里插入图片描述

    字段解释

    版本:占4比特。用来表明IP协议实现的版本号,当前一般为IPv4,即0100。
    报头长度:占4比特。是头部占32比特的数字,包括可选项。普通IP数据报(没有任何选项),该字段的值是5,即160比特=20字节。此字段最大值为60字节。
    区分服务:占8比特。以3:4:1的比例分开,其中前3比特为优先权子字段(Precedence,现已被忽略)。第8比特保留未用,置0。第4至第7比特分别代表延迟、吞吐量、可靠性和花费。当它们取值为1时分别代表要求最小时延、最大吞吐量、最高可靠性和最小费用。此字段多于QoS相关。
    总长度:占16比特,表示IP数据包的长度,最大为65535。
    标识:占16比特,用来唯一地标识主机发送的每一份数据报。通常每发一份报文,它的值会加1。
    标志:占3比特,以1:1:1分开,第一比特为df位,表示不允许分片,当数据包长度大于MTU,需要分片时,df位置1则表示直接丢弃此数据包。第二比特为mf。用于指明当前报文是否为分段的最后一个包。若数据报需要分段,mf为1,则说明后面还有报文,mf为0,则表明这是此数据报最后一段。第三比特未使用。
    片偏移:占13比特。如果一份数据报要求分片的话,此字段指明该段偏移距原始数据报开始的位置。
    生存时间(TTL):占8比特,代表数据包最多能经过的路由器数,每经过一个路由器,此值会减一,当TTL等于0,该报文被丢弃。由数据报源主机设置,一般为32、64、128等。此值是避免在环路上,数据包被无限转发。
    协议:占8比特,表明IP报文封装的上层协议类型,常见值有:ICMP(1)、IGMP(2) 、TCP(6)、UDP(17)等。
    首部校验和:占16比特。内容是根据IP头部计算得到的校验和码。注意:首部校验和,和tcp/udp等协议不同,IP不对头部之后的数据进行校验。用于确认数据包是否被篡改等。
    源IP地址:占32比特,发送IP数据报文的源主机地址。
    目标IP地址:占32比特,接收IP报文的目标主机地址。
    可选项字段:占32比特,用来定义一些任选项:如记录路径、时间戳等。这些选项很少被使用,同时并不是所有主机和路由器都支持这些选项。可选项字段的长度必须是32比特的整数倍,如果不足,必须填充0以达到此长度要求。

    展开全文
  • 中文版!花了不少人民币翻译的,翻译的很靠谱! EtherNet/IP Adaptation of CIP
  • TCP/IP报文格式大全

    2016-08-30 11:06:45
    TCP/IP报文格式大全
  • ip报文格式大全.hdx

    2020-02-12 14:26:42
    包含了链路层、Mpls层、网络层、传输层、应用层全部报文格式,适合学习探讨。有利于初学者的深入学习
  • IP报文格式大全 V10.0.zip
  • TCP-IP协议报文格式大全(V1.0),学习CISCO、HUAWEI网络技术必备资料。
  • IP报文格式定义.doc

    2021-08-02 16:36:10
    IP报文格式定义
  • 华为出的各类协议报文详解说明
  • 各种类型的IP报文格式详解
  • TCP/IP 报文格式IP数据包、TCP报头、UDP报头) 一、IP包格式 IP数据包,是一种可以变长的分组,由首部与数据负载组成。首部长度为20-60字节(Byte),后40字节是可选的,但长度不固定,前20字节格式为固定。数据...

    TCP/IP 报文格式(IP数据包、TCP报头、UDP报头)

    一、IP包格式

    IP数据包,是一种可以变长的分组,由首部与数据负载组成。首部长度为20-60字节(Byte),后40字节是可选的,但长度不固定,前20字节格式为固定。数据负载部分的长度一般可变。
    在这里插入图片描述
    1、 版本
    长度为4位,指IP协议的版本.通信双方使用的IP协议版本必须一致。目前广泛使用的 IP协议版本号为 4 (即 IPv4)。IPv6 目前还处于起步阶段。IP v4的值为0100,IP v6的值为0110。
    2、首部长度
    指的是IP包头长度,占 4 位,可表示的最大十进制数值是15。请注意,这个字段所表示数的单位是32位字 (1个32位字长是4 字节),因此,当 IP 的首部长度为 1111 时 (即十进制的 15),首部长度就达到 60字节。当 IP 分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充.因此数据部分永远在 4字节的整数倍开始,这样在实现 IP协议时较为方便。首部长度限制为 60字节的缺点是有时可能不够用.这样做的目的是希望用户尽量减少开销.最常用的首部长度就是 20 字节 (即首部长度为 0101),这时不使用任何选项。
    3、服务
    占 8 位,用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。1998年IETF把这个字段改名为区分服务 DS(Differentiated Services)。只有在使用区分服务时,这个字段才起作用。其组成:前3位为优先级(Precedence),后4位标志位,最后1位保留未用。优先级主要用于QoS,表示从0(普通级别)到7(网络控制分组)的优先级。标志位可分别表示D(Delay更低的时延)、T(Throughput 更高的吞吐量)、R(Reliability更高的可靠性)、C(Cost 更低费用的路由)。
    4、总长度
    总长度指首都及数据之和的长度,单位为字节.因为总长度字段为 16位,所以数据报的最大长度为 216-1=65 535字节.在IP层下面的每一种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,即最大传送单元 MTU (Maximum Transfer Unit).当一个数据报封装成链路层的帧时,此数据报的总长度 (即首部加上数据部分)一定不能超过下面的数据链路层的MTU值,否则要分片.
    5、标识 (Identification)
    占 16位.IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加 1,并将此值赋给标识字段.但这个"标识"并不是序号,因为 IP是无连接的服务,数据报不存在按序接收的问题.当数据报由于长度超过网络的 MTU 而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中.相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报.
    6、标志 (Flag)
    长度为3 位,但目前只有2位有意义. 标志字段中的最低位记为 MF(More Fragment).MF=1即表示后面"还有分片"的数据报.MF=0表示这已是若干数据报片中的最后一个.标志字段中间的一位记为DF(Don’t Fragment),意思是"不能分片",只有当 DF=0时才允许分片.
    7、片偏移
    占 13位。也称段偏移,较长的分组在分片后,某片在原分组中的相对位置.也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以 8个字节为偏移单位,这就是说,每个分片的长度一定是 8字节(64位)的整数倍。
    8、生存时间(TTL)
    长度为8位,初始值由操作系统设置,每经过一个路由器转发后其值就减1,减至0后丢弃该包。这种机制可以避免数据包找不到目地时不断被转发,堵塞网络。
    9、协议(Protocol)
    长度为8位,标识上层所使用的协议。
    10、首部校验和(Header Checksum)
    占16位,首部检验和只对IP数据包首部进行校验,不包含数据部分。因为数据包每经过一个路由器都要重新计算首部校验和, (一些字段,如生存时间,标志,片偏移等都可能发生变化)对首都进行检验。
    11、源IP地址(Source IP)
    长度为32位,表示数据发送的主机IP。
    12、目的IP地址(Destination IP)
    长度为32位,表示数据要接收的主机IP。
    13、选项字段(Options)
    长度为0-40字节(Byte),主要有:安全和处理限制(Security)、记录路径(Record Route)、时间戳(Timestamps)、宽松源站选路(Loose Source Routing)、严格的源站选路(Strict Source Routing)等。

    二、TCP报文

    在这里插入图片描述
    在这里插入图片描述
    TCP报文由首部和数据两部分组成。首部一般由20-60字节(Byte)构成,长度可变。其中前20B格式固定,后40B为可选。
    因为,TCP报文还得传给下层网络层,封装成IP包,而一个IP包最大长度为65535,同时IP包首部也包含最少20B,所以一个IP包或TCP包可以包含的数据部分最大长度为65535-20-20=65495B。

    TCP报文中数据部分是可选的,即TCP报文可以不包含数据(同理IP包也可以不包含数据)。不含数据的TCP报文通常是一些确认和控制信息类的报文,如TCP建立连接时的三次握手和TCP终止时的四次挥手等。

    1、源端口号(Source Port)
    16位的源端口字段包含初始化通信的端口号。源端口和IP地址的作用是标识报文的返回地址。

    2、目的端口号(Destination Port)
     16位的目的端口字段定义传输的目的。这个端口指明接收方计算机上的应用程序接口。

    3、序列号(Sequence Number)
    该字段用来标识TCP源端设备向目的端设备发送的字节流,它表示在这个报文段中的第几个数据字节。序列号是一个32位的数。

    4、确认号(Acknowledge Number)
      TCP使用32位的确认号字段标识期望收到的下一个段的第一个字节,并声明此前的所有数据已经正确无误地收到,因此,确认号应该是上次已成功收到的数据字节序列号加1。收到确认号的源计算机会知道特定的段已经被收到。确认号的字段只在ACK标志被设置时才有效。
    5、首部长度
    长度为4位,用于表示TCP报文首部的长度。用4位(bit)表示,十进制值就是[0,15],一个TCP报文前20个字节是必有的,后40个字节根据情况可能有可能没有。如果TCP报文首部是20个字节,则该位应是20/4=5。
    6、保留位(Reserved)
    长度为6位,必须是0,它是为将来定义新用途保留的。
    7、标志(Code Bits)
    长度为6位,在TCP报文中不管是握手还是挥手还是传数据等,这6位标志都很重要。6位从左到右依次为:
    1.
    • URG:紧急标志位,说明紧急指针有效;
    • ACK:确认标志位,多数情况下空,说明确认序号有效; 取1时表示应答字段有效,也即TCP应答号将包含在TCP段中,为0则反之。
    • PSH:推标志位,置位时表示接收方应立即请求将报文交给应用层;
    • RST:复位标志,用于重建一个已经混乱的连接,用来复位产生错误的连接,也会用来拒绝错误和非法的数据包。
    • SYN:同步标志,该标志仅在三次握手建立TCP连接时有效
    • FIN:结束标志,表示发送端已经发送到数据末尾,数据传送完成,发送FIN标志位的TCP段,连接将被断开。
    8、窗口大小(Window Size)
    长度为16位,TCP流量控制由连接的每一端通过声明的窗口大小来提供。
    9、检验和(Checksum)
    长度为16位,该字段覆盖整个TCP报文端,是个强制性的字段,是由发送端计算和存储,到接收端后,由接收端进行验证。
    10、紧急指针(Urgent Pointer)
    长度为16位,指向数据中优先部分的最后一个字节,通知接收方紧急数据的长度,该字段在URG标志置位时有效。
    11、选项(Options)
    长度为0-40B(字节),必须以4B为单位变化,必要时可以填充0。通常包含:最长报文大小(MaximumSegment Size,MSS)、窗口扩大选项、时间戳选项、选择性确认(Selective ACKnowlegement,SACK)等。
    12、数据
    可选报文段数据部分。

    三、UDP报头

    在这里插入图片描述

    UDP数据报由首部和数据两部分组成,其中首部只有8B(字节)。
    1、源端口号(Source Port)
    长度为16位,指明发送数据的进程。
    2、目的端口号(Destination Port)
    长度为16位,指明目的主机接收数据的进程。
    3、长度
    长度为16位,该字段值为报头和数据两部分的总字节数。
    4、检验和(Checksum)
    长度为16位,UDP检验和作用于UDP报头和UDP数据的所有位。由发送端计算和存储,由接收端校验。
    5、数据

    展开全文
  • TCP/IP报文格式详解

    万次阅读 2018-09-13 19:22:29
      源端口:占2个字节,源端口和IP的作用是标记报文的返回地址。   目的端口:占2个字节,指明接收方计算机上的应用程序接口。   TCP报头中的源端口号和目的端口号同IP报头中的源IP和目的IP唯一确定一条TCP...

    这里写图片描述
    1.端口号
      标记同一台计算机上的不同进程
      源端口:占2个字节,源端口和IP的作用是标记报文的返回地址。
      目的端口:占2个字节,指明接收方计算机上的应用程序接口。
      TCP报头中的源端口号和目的端口号同IP报头中的源IP和目的IP唯一确定一条TCP连接。

    2.序号
      占4个字节,是TCP可靠传输的关键部分。是本报文段发送的数据组的第一个字节的序号。
      在TCP传输流中,每一个字节一个序号。(例如:一个报文段的序号为300,此报文段数据部分共有100字节,则下一个报文段的序号为400.)所以序号确保了TCP传输的有序性。

    3.确认序号
      即ack,占4个字节,指明下一个期待收到的字节序号,表明该序号之前的所有数据已经正确无误的收到。确认号只有当ACK=1时才有效。比如建立连接时,SYN报文的ACK标志位为0。
    4.数据偏移
      占4位,它指出TCP报文的数据距离TCP报文段的起始处有多远。
      由于首部可能含有可选项内容,因此TCP报头的长度是不确定的,报头不包含任选子段时长度为20字节;4位首部长度字段所能表示的最大值为1111,转化为10进制为15,故报头最大长度为15*32/8=60个字节。首部长度也叫数据偏移。

    5.保留
      为将来定义新的用途保留,一般置为0。
    6.控制位
      URG:紧急指针标志。1:紧急指针有效;0:忽略紧急指针。
      ACK:确认序号标志。1:确认号有效;0:忽略确认号段。
      PSH:push标志。1:带有push标志的数据,表示接收方在接收到该报文后应尽快将这个报文段交给应用程序,而不是缓冲区排队。
      RST:重置连接标志。用于重置由于主机崩溃或其他原因而出现错误的连接。或者用于拒绝非法的报文段和拒绝连接请求。
      SYN:同步序号,用于建立连接过程,在连接请求中,SYN=1和ACK=0表示该数据段没有使用捎带的确认域,而连接应答捎带一个确认,即SYN=1和ACK=1。
      FIN:结束标志,用于释放连接,为1时表示发送方已经没有数据发送了,即关闭本方数据流。
    7.窗口
      滑动窗口大小,用来告知发送端接收端的缓存大小,以此控制发送端发送数据的速率,从而达到流量控制。窗口大小是2个字节,因而窗口大小最大为65536。
    8.校验和
      奇偶校验,此校验和是针对整个TCP报文段的,包括TCP报头和TCP报文数据段,以2个字节进行计算所得。由发送端计算和存储,并由接收端进行验证。
    9.紧急指针
      只有当URG标志置1时紧急指针才有效。紧急指针是一个正的偏移量,和顺序号字段中的值相加表示紧急数据最后一个字节的序号。TCP的紧急方式是发送端向另一端发送紧急数据的一种方式。
    10.选项和填充
      最常见的可选字段是最长报文大小,又称为MSS(Maximum Segment Size),每个连接方通常都在通信的第一个报文段(为建立连接而设置SYN=1的那个段)中指明这个选项,它表示本端所能接受的最大报文段的长度。选项长度不一定是32位的整数倍,所以要加填充位,即在这个字段中加入额外的0,以保证TCP头部是32的整数倍。
    11.数据部分
      TCP报文段中的数据部分是可选的。在一个连接建立和一个连接终止时,双方交换的报文段仅有TCP首部。如果一方没有数据要发送,也使用没有任何数据的首部来确认收到的数据。在处理超时的许多情况中,也会发送不带任何数据的报文段。

    展开全文
  • 华为网络协议报文格式大全 v1.0.chm 版本,里面包含了很多网络基础知识,有了这个文件基本就可以通吃常用的网络协议了。
  • SOME/IP报文格式-Request ID

    千次阅读 2019-10-31 19:41:29
    SOME/IP报文格式-Request ID Request ID [32 Bit] The Request ID allows a client to differentiate multiple calls to the same method. Therefore, the Request ID has to be unique for a single client and ...
  • SOMEIP报文格式部分字段概述(二)

    千次阅读 2020-05-10 12:37:26
    【SOMEIP报文格式部分字段概述】 【Message ID】 Message ID是一个32位标识符,用于将RPC调用分派给应用程序的method并识别event 。 Message ID必须能唯一标识service的method或event。 Message ID的分配取决于用户...
  • IP报文格式及各字段的意义

    千次阅读 2021-03-10 21:18:06
    IP数据包由报头和数据两部分组成。报头的前一部分是固定长度,共20字节。在报头的固定部分的后面是可选部分——IP选项和填充域。 首部各字段的含义如下 1、版本 占4位,指IP协议的版本。 2、报头长度 占4位,该字段...
  • TCP和UDP以及IP报文格式

    千次阅读 2019-01-12 19:27:54
    TCP和UDP以及IP报文格式 TCP报文: (上图转载自http://wenku.baidu.com/view/04b0d780e53a580216fcfeaa.html) 源端口: 数据发送方的端口号。 目的端口: 数据接受方的端口号。 序号:本数据报文中的的第一个...
  • IP报文格式和实例分析

    万次阅读 多人点赞 2017-06-18 10:01:37
    1.版本:ip报文中,版本占了4位,用来表示该协议采用的是那一个版本的ip,相同版本的ip才能进行通信。一般此处的值为4,表示ipv4。 2.头长度:该字段用四位表示,表示整个ip包头的长度,其中数的单位是4字节。...
  • 本文档详细的描述了关于IP报文格式,是了解IP报文的难得文档
  • IP报文格式学习笔记

    万次阅读 2015-07-30 10:24:40
    由于记性不好的原因, 一直对报文格式的字段记的不是很牢固, 故花了一天时间学习IP报文格式, 第二天来总结. 过两天再继续学习TCP和UDP. IP报文格式如下图所示(图片来源—百度百科):   版本(Version, 4bit):为4...
  • IP 协议报文格式 【IPv4】

    千次阅读 2022-02-12 12:58:45
    前言: IP 数据报文由首部(称为报头)和数据两部分组成;首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的;...IP 协议报文格式版本号首部长度区分服务 TOS总长度 如图所示: 版本号 占 4

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 103,021
精华内容 41,208
关键字:

ip报文格式

友情链接: 外推法.zip