IPv4协议学习笔记

本文详细介绍了IPv4协议,包括数据报格式、网络头部结构、服务类型、总长度、标识ID、标志和片偏移等字段。还探讨了MTU最大传输单元和数据报分片机制,以及IPv4编址的点分十进制记法、子网掩码和特殊用途地址。此外,提到了无类别域间路由(CIDR)及其对IP地址分配的影响。
摘要由CSDN通过智能技术生成

IPv4协议学习笔记

网络协议相关标准目录

IPv4数据报格式

RFC791中描述的IPv4数据报的格式:

RFC791 INTERNET PROTOCOL 标准文档连接【点我查看】

IPv4 网络头部结构

    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    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Example Internet Datagram Header

Version [4 bits]: 协议版本

RFC791描述的是IPV4版本,所以此处使用4作为版本号

IHL(Internet Header length) [4 bits]: 网络头长度

网络头长度是以32bit为单位的,既 IHL×4byte;

由于除了Options所有字段全为必选,所以网络头长度最小值是5

Type of Service [8 bits]: 服务样式

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 bits]: 总计长度

数据报总长度,以字节为单位,包括Internet报头数据。
最长常大虎为65535字节。

Identification: [16 bits]: 标识ID号

数据报ID,一般标识ID号多个IP数据包之间是递增的。

Flags [3 bits]:标志

  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 bits]: 片偏移

碎片的偏移量,字节为单位。

TTL(Time to Live) [8 bits]: 生存时间

生存时间,秒为单位。
虽然TTL从字面上翻译,是可以存活的时间,但实际上TTL是IP数据包在计算机网络中可以转发的最大跳数。
TTL字段由IP数据包的发送者设置,在IP数据包从源到目的的整个转发路径上,每经过一个路由器,路由器都会修改这个TTL字段值,具体的做法是把该TTL的值减1,然后再将IP包转发出去。

Protocol [8 bits]: 协议

下级协议
TCP: 6
UDP: 17
详见RFC790【点我查看】

Header Checksum [16 bits] 校验位

头部校验位

Source Address [32 bits]: 源地址

发送源的地址

Destination Address [32 bits]: 目标地址

发送目标的地址

Options [variable]: 选项字段

头部扩展,略

Padding [variable]: 补位

补充Options到32bit的倍数

IPv4 数据报分片

MTU(Maximum Transmission Unit) 最大传输单元

链路层协议承载不同的长度的数据,不同协议的MTU限制IP报文长度。
以太网 MTU = 1500
广域网 MTU = 576

Fragment 碎片

当数据报大于MTU时,需要通过分片,将一个大的IP数据报切分为多个小的IP数据报。

同一个IP数据报被切分为多个碎片时,多个碎片IP数据包的源地址目标地址标识ID号 相同;

Flags [3 bits],表明是否是碎片
Fragment Offset [13 bits], 表明碎片在演示报文中的位置

IPv4编址

dotted-decimal notation 点分十进制记法

IPv4地址有32bit(4byte)记录其值,每个字节用十进制表示后用“.”进行分割,叫做dotted-decimal notation (点分十进制记法);

subnet mask 子网掩码

也叫:network mask 网络掩码
它用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。

分类网络(已过时)

分类前缀码开始地址结束地址对应CIDR修饰默认子网掩码
A类地址00.0.0.0127.255.255.255/8255.0.0.0
B类地址10128.0.0.0191.255.255.255/16255.255.0.0
C类地址110192.0.0.0223.255.255.255/24255.255.255.0
D类地址1110 (组播)224.0.0.0239.255.255.255/4未定义
E类地址1111(保留)240.0.0.0255.255.255.255/4未定义

CIDR(Classless Inter-Domain Routing) 无类别域间路由

无类别域间路由是基于可变长子网掩码(VLSM)来进行任意长度的前缀的分配的。在RFC 950(1985)中有关于可变长子网掩码的说明

特殊用途的地址

CIDR地址块描述参考资料
0.0.0.0/8本网络(仅作为源地址时合法)RFC 6890
10.0.0.0/8专用网络RFC 1918
100.64.0.0/10电信级NATRFC 6598
127.0.0.0/8环回RFC 5735
169.254.0.0/16链路本地RFC 3927
172.16.0.0/12专用网络RFC 1918
192.0.0.0/24保留(IANA)RFC 5735
192.0.2.0/24TEST-NET-1,文档和示例RFC 5735
192.88.99.0/246to4中继RFC 3068
192.168.0.0/16专用网络RFC 1918
198.18.0.0/15网络基准测试RFC 2544
198.51.100.0/24TEST-NET-2,文档和示例RFC 5737
203.0.113.0/24TEST-NET-3,文档和示例RFC 5737
224.0.0.0/4多播(之前的D类网络)RFC 3171
240.0.0.0/4保留(之前的E类网络)RFC 1700
255.255.255.255/32受限广播RFC 919

广播地址

主机码部分全为1是,表示广播地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值