计算机网络学习~IPv4数据报格式

本文为计算机网络学习系列读书笔记

网络层分组被称为数据报。
网际协议(Internet Protocol)是TCP/IP体系中最主要的协议之一。IP协议有两个主要的版本:IPv4和 IPv6.
有关IP协议最重要的文档就是互联网标准FRC791:https://www.ietf.org/rfc/rfc791.txt

IPv4的数据报格式

计算机网络学习~IPv4数据报格式_第1张图片

IPv4数据报中包含如下字段信息

  • 版本(Version)(4比特):IP协议的版本号。路由器根据此版本号确定如何解释IP数据报的剩余部分。

  • 首部长度(Internet Header Length )(4比特):Internet报头的有效长度。

  • 服务类型(8比特):表明所想要的服务质量的一种抽象表示,以便使不同类型的数据报相互区分开来。比如实时数据报(如IP电话应用)和非实时流量(如FTP)区分开来。根据Low Delay,High Reliablibity,High Throughput三个指标区分服务类型。

    Bits 0-2:  Precedence.
    Bit    3:  0 = Normal Delay,      1 = Low Delay.
    Bits   4:  0 = Normal Throughput, 1 = High Throughput.
    Bits   5:  0 = Normal Relibility, 1 = High Relibility.
    Bit  6-7:  Reserved for Future Use.
    
       0     1     2     3     4     5     6     7
    +-----+-----+-----+-----+-----+-----+-----+-----+
    |                 |     |     |     |     |     |
    |   PRECEDENCE    |  D  |  T  |  R  |  0  |  0  |
    |                 |     |     |     |     |     |
    +-----+-----+-----+-----+-----+-----+-----+-----+
    
      Precedence
    
        111 - Network Control
        110 - Internetwork Control
        101 - CRITIC/ECP
        100 - Flash Override
        011 - Flash
        010 - Immediate
        001 - Priority
        000 - Routine
    
  • 数据报长度(Total Length)(字节)(16比特):这是IP数据报的总长度(首部20字节+数据N字节)(单位:字节)。因为该字段占16比特,最大长度2^16-1 (65535字节),但实际数据报很少有超过1500字节的,这是因为以太网帧承载的数据不能超过1500字节。而且某些广域网链路的帧可承载的不超过576字节的数据。根据木桶原理,当IP数据报总长度超过整条链路中最小的数据量时(即MTU,Max Transmission Unit),就会出现IP分片。

  • 16比特标识(Identification):IP数据报分片时,有发送方指定的一个值,用于帮助组装数据报的各个片段。

  • 标志(Flags)(3比特):指明IP数据报是否有分片,以及分片是否是最后一个
    Various Control Flags.

    Bit 0: reserved, must be zero
    Bit 1: (DF) 0 = May Fragment,  1 = Don't Fragment.
    Bit 2: (MF) 0 = Last Fragment, 1 = More Fragments.
    
        0   1   2
      +---+---+---+
      |   | D | M |
      | 0 | F | F |
      +---+---+---+
    
  • 片偏移量(Fragment Offset)(13比特):指明IP数据报分片的片在整个分片的哪个位置
    Identification、flags、fragment offset这三个字段与IP分片有关。

  • 寿命(Time to Live)(8比特):表明数据片段在网络中可存在的最长时间,该数据段每转发一次,该值就减1。当减为0时,该数据片段将会被立即丢弃。能有效避免数据报片段在网络无限转发下去。

  • 上层协议(Protocol)(8比特):该字段通常仅当一个IP数据报到达其最终目的地时才会有用。该字段值指示了 IP数据报的数据部分应交给哪个特定的运输层协议。例如,值为6表明数据部分要交给TCP,而值为17表明数据要交给UDP。对于所有可能值的列表,参见[IANA Protocol Numbers 2016 ] °

  • 首部校验和(Header Checksum)(4比特):用于路由器检测收到的IP数据报中的比特错误

  • 源IP地址(Source Address)(32比特):IP数据报源地址

  • 目的地址(Destination Address)(32比特):IP数据报目的地址

抓包:实际的数据报样例

计算机网络学习~IPv4数据报格式_第2张图片

你可能感兴趣的:(学习笔记,网络协议)