IPv4基础介绍

发布于:2023-01-16 ⋅ 阅读:(585) ⋅ 点赞:(0)

IP报文结构

在剥掉帧的头部和尾部之前,网络设备需要根据帧头中Type字段确定下一步将帧发送到哪个上层协议进行处理。当以太网帧中的Type字段值为0x0800,表示该帧的网络层协议为IP协议。

如下图所示,一个IPv4数据报文由首部和数据两部分组成。首部的前一部分是固定长度,共20个字节,是所有IPv4数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度可变。

各字段含义如下图所示:

字段

长度

含义

Version

4比特

IP协议的版本号,分为IPv4和IPv6协议。

Header
Length

4比特

IPv4的首部长度。

DS
Field

8比特

用来获得更好的服务。只有在使用区分服务时,这个字段才起作用。

Total
Length

16比特

指首部和数据之和的长度。

Identification

16比特

IPv4软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。

Flags

3比特

目前只有两位有意义。最低位为1表示后面“还有分片”的数据报,为0表示这已经是最后一个数据片;中间一位为1表示“不能分片”,为0才允许分片。

Fragment
Offset

13比特

指出较长的分组在分片后,该片在原分组中的相对位置。

Time
to Live

8比特

表示数据报在网络中的寿命,功能是“跳数限制”。

Protocol

8比特

指出此数据报携带的数据是使用何种协议。

Header
Checksum

16比特

数据报每经过一个设备,设备都要重新计算一下首部检验和,若首部未发生变化,则此结果必为0,于是就保留这个数据报。这个字段只检验数据报的首部,但不包括数据部分。

Source IP
Address

32比特

报文发送方的IPv4地址。

DestinationIP 
Address

32比特

报文接收方的IPv4地址。

IP 
Options

0~40字节(长度可变)

用来支持排错、测量以及安全等措施。在必要的时候插入值为0的填充字节。

IP编址

IPv4地址为32比特的二进制数,通常用点分十进制表示。IP地址用来标识网络中的设备,具有IP地址的设备可以在同一网段内或跨网段通信。IP地址包括两部分,第一部分是网络号,表示IP地址所属的网段,第二部分是主机号,用来唯一标识本网段上的某台网络设备。

每个网段上都有两个特殊地址不能分配给主机或网络设备。

  • 网段的网络地址,IP地址的主机位为全0,表示一个网段。

  • 网段中的广播地址,IP地址的主机位为全1。目的地址为广播地址的报文会被该网段中的所有网络设备接收。

  • 除网络地址和广播地址以外的其他IP地址都可以作为网络设备的IP地址。

以下图为例,IP地址的前三个字节表示网络号,最后一个字节表示该网络上网络设备可用的地址范围。将二进制格式的IP地址转换为十进制格式时,需要把二进制中每一位1所代表的值加在一起,得出IP地址的十进制值。

IP地址分类

IPv4地址被划分为A、B、C、D、E五类,各类IP地址可以通过第一个字节中的比特位进行区分,且每类地址的网络号包含不同的字节数。具体划分情况如下图所示:

  • A类,B类和C类地址为可分配IP地址,每类地址支持的网络数和主机数不同。

  • D类地址为组播地址。主机收到以D类地址为目的地址的报文后,如果该主机是此组播组成员,就会接收并处理该报文。

  • E类地址是保留地址

现在,世界上所有终端系统和网络设备需要的IP地址总数已经超过了32位IPv4地址所能支持的最大地址数。为节省IPv4地址,A、B、C类地址段中都预留了特定范围的地址作为私网地址:

  • 10.0.0.0~10.255.255.255

  • 172.16.0.0~172.31.255.255

  • 192.168.0.0~192.168.255.255

默认情况下,网络中的主机无法使用私网地址与公网通信;当需要与公网通信时,私网地址必须转换成公网地址。

IP地址中还有其他一些特殊IP地址:

  • 127.0.0.0~127.255.255.255 为环回地址,用于诊断网络是否正常。

  • 0.0.0.0 表示任何网络

  • 255.255.255.255 为广播地址

子网掩码

子网掩码用于区分网络部分和主机部分。子网掩码与IP地址的表示方法相同,子网掩码中的1表示网络位,0表示主机位。

通过子网掩码可以判断主机所属的网段、网段上的广播地址以及网段上的主机数(网段中的主机数为2ⁿ,n为主机位的个数)。

如下图所示,主机地址为192.168.1.7,子网掩码为24位。从中我们可以判断该主机位于192.168.1.0/24网段。将IP地址中的主机位全部置为1,并转换为十进制数,即可得到该网段的广播地址192.168.1.255。本例中n=8,2⁸=256,减去本网段的网络地址和广播地址,可知该网段支持254个有效主机地址。

IP地址通信

源主机向其他目的主机发送报文之前,需要检查目的IP地址和源IP地址是否属于同一个网段。

  • 如果属于同一网段,则报文将被下发到底层协议进行以太网封装处理。

  • 如果属于不同网段,则主机需要获取下一跳路由器的IP地址,然后将报文下发到底层协议处理。

本文含有隐藏内容,请 开通VIP 后查看