IP报文看懂了才行

IP报文看懂了才行_第1张图片
字节、字、位、比特,这四者之间的关系

1字=2字节=16比特=16位

1.位
位是计算机存储的最小单位,简记为b,也称为比特(bit)计算机中用二进制中的0和1来表示数据,一个0或1就代表一位。位数通常指计算机中一次能处理的数据大小

2、比特
比特(bit)是由英文BIT音译而来,比特同时也是二进制数字中的位,是信息量的度量单位,为信息量的最小单位;

3.字节
字节,英文Byte,是计算机用于计量存储容量的一种计量单位,通常情况下一字节等于八位,字节同时也在一些计算机编程语言中表示数据类型和语言字符,在现代计算机中,一个字节等于八位;

4.字
字是表示计算机自然数据单位的术语,在某个特定计算机中,字是其用来一次性处理事务的一个固定长度的位(bit)组,在现代计算机中,一个字等于两个字节。

IP报字段内容

  1. 版本(Version)
    由4个比特标识IP首部的版本号。
  2. 首部长度(IHL)
    图中每行是32bits(即4字节),图中标识的固定部分总共有5行,也就是说,没有可选项时,IP首部的长度位20字节,即最小为0101。首部长度最大是60个字节?首部长度为4位,而最大值为1111,所以为15*4(每行4个字节)即为60个字节。
  3. 区分服务(Type Of Service)
    由8比特构成,用来标识服务质量…
  4. 总长度(Total Length)
    表示IP首部与数据部分合起来的总字节数。该字段长为16比特。因此Ip报的最大长度为65535=(2^16-1)字节。

如果“段总长度”字段为1位,则只能表示0或者1,数据包的最大长度为1(2^1-1)
如果“段总长度”字段为2位,则只能表示0b00、0b01、0b10、0b11,数据包的最大长度为0b11,即为3(2^2-1)
同理,如果“段总长度”字段为3位,则数据包的最大长度0b111,即7(2^3-1)

  1. 标识(Identification)
    由16比特构成,用于分片重组。同一个分片的标识值相同,不同分片的标识值不同。通常,每发送一个IP包,它的值也会逐渐递增。此外,即使IP相同,如果目标,源地址或协议不同的话,也会被认为是不同的分片。
  2. 标志(flags)
    由3比特构成,表示包被分片的相关信息。

0 未使用。现在必须是0
1 指示是否进行分片。0- 可以分片 1-不能分片
2 包被分片的情况下,表示是否位最后一个包。 0- 最后一个分片的包 1- 分片中段的包

  1. 片偏移(Fragement Offset)
    由13位比特构成,用来标识被分片的每一个分段相对于原始数据的位置。第一个分片对应的值为0.由于FO域占13位,因此最多可以表示8192=(2^13)个相对位置。单位8字节,因此最大可表示原始数据8*8192=65536字节的位置。
  2. 生存时间(Time To Live)
    由8比特构成,它最初的意思是以秒为单位记录在当前包在网络上应该生存的期限。然而,在实际中它是指可以中转多少个路由器的意思。每经过一个路由器,TTL会减少1,直到变为0则丢弃该包。
  3. 协议(Protocol)
    由8比特构成,表示的是IP包传输层的上层协议编号。协议略…
  4. 首部校验和(Header Checksum)
    由16比特(2个字节构成),也叫IP首部校验和。
  5. 源地址(Source Address)
    由32比特(4个字节构成),表示发送端的IP地址
  6. 目标地址(Destination Address)
    由32比特(4个字节构成),表示接收端IP地址
  7. 填充
    也称作填补物。在由可选项的情况下,首部长度可能不是32比特的整数倍。为此,通过向该字段填充0,调整为32比特的整数倍。
  8. 数据
    存入数据。将IP上层协议的首部也作为数据进行处理

你可能感兴趣的:(网络协议,网络通信,网络)