IP 分组交付和 ARP 协议分析

提前了解:

1.IP 地址、MAC 地址、子网和掩码的概念
IP地址是一种用于在互联网上唯一标识一个设备的数字地址,它由32位二进制数组成,通常以四个十进制数表示,如192.168.1.1。IP地址由网络号和主机号两部分组成,网络号表示设备所在的网络,主机号表示设备在网络中的位置。
MAC地址是一种用于在局域网中唯一标识一个网卡的物理地址,它由48位二进制数组成,通常以六个十六进制数表示,如00-0C-29-12-34-56。MAC地址由厂商分配,一般不可更改,它在数据链路层进行通信时使用。
子网是一种将一个大的网络划分成若干个小的网络的方法,它可以提高网络的效率和安全性。子网的划分需要根据网络的规模和需求进行设计,一般采用子网掩码来实现。
子网掩码是一种用于将IP地址划分成网络号和主机号的掩码,它由32位二进制数组成,其中网络位用1表示,主机位用0表示,如255.255.255.0。子网掩码与IP地址进行逻辑与运算,就可以得到网络地址,即子网的标识。

2.掩码运算:确定 IP 网络(或子网)及其范围

掩码运算是一种用于确定IP地址的网络号和主机号的运算,它利用子网掩码和IP地址进行按位与运算,得到网络地址,即子网的标识。子网掩码是一种用于将IP地址划分成网络号和主机号的掩码,它由32位二进制数组成,其中网络位用1表示,主机位用0表示,如255.255.255.0。

掩码运算的步骤如下:

将IP地址和子网掩码换算为二进制,子网掩码连续全1的是网络地址,后面的是主机地址
将子网掩码和IP地址按位进行逻辑“与”运算,得到IP地址的网络地址,剩下的部分就是主机地址,从而区分出任意IP地址中的网络地址和主机地址。
将运算结果中的网络地址不变,主机地址变为1,结果就是广播地址
将运算结果中的网络地址不变,主机地址变为0,结果就是网络地址
例如,假设IP地址是202.112.14.137,子网掩码是255.255.255.224,要求计算这个主机所在网络的网络地址和广播地址

IP地址202.112.14.137转二进制:11001010 01110000 00001110 10001001
子网掩码255.255.255.224转二进制:11111111 11111111 11111111 11100000
IP地址&子网掩码 11001010 01110000 00001110 10000000
结果为:202.112.14.128,这是网络地址
广播地址为:202.112.14.159(11001010 01110000 00001110 10011111),这是将主机地址全变为1得到的结果

ARP协议报文

格式:

源MAC地址:6个字节
目的MAC地址:6个字节
协议类型:2个字节

ARP 地址解析协议:
Hardware type硬件类型:2字节
Protocol type协议类型:2字节
Hardware size硬件地址:1字节
Protocol size协议长度:1字节
Opcode操作码:2字节
Sender MAC 地址:6字节
Sender IP 地址:6字节
Target MAC 地址:6字节
Target IP 地址:6字节

所以一般在wireshark中能捕获到42字节的ARP协议报文
Alt text

源MAC地址、目的MAC地址、协议类型:

Alt text

ARP 地址解析协议:

Alt text

在ARP请求报文中,目的MAC地址通常被设置为全f(即ff-ff-ff-ff-ff-ff)而不是全0(即00-00-00-00-00-00),是因为这样可以实现广播发送,让所有的主机都能收到这个请求,从而找到目标主机的MAC地址。

如果目的MAC地址被设置为全0,那么这个请求就会被当作单播发送,只有目标主机才能收到这个请求,但是这样就失去了ARP协议的意义,因为发送方并不知道目标主机的MAC地址,所以无法指定单播的目的MAC地址。

Target MAC地址是ARP报文中的一个字段,用来存储目标主机的MAC地址。在ARP请求报文中,Target MAC地址的值为0,表示请求的目标MAC地址未知,需要接收者回复。在ARP响应报文中,Target MAC地址包含请求者的MAC地址,用于确认请求者的身份。

因此,目的MAC地址和Target MAC地址的值不同,是为了区分ARP请求报文的发送方式和目标地址。目的MAC地址用于指定以太网帧的目的地址,Target MAC地址用于指定ARP报文的目的地址。

IP 子网划分技术

  • IP子网划分技术是一种将一个大的网络划分成若干个小的网络的方法,它可以提高网络的效率和安全性。子网划分的原理是借用IP地址的主机位的一部分作为子网位,从而区分不同的子网。子网划分的步骤包括确定子网数、子网内主机数、子网位数、子网掩码、子网地址、子网广播地址和子网内有效IP地址范围。

IP 地址分配原则

  • IP地址分配原则是指根据网络的规模和需求,合理地分配IP地址,避免浪费和冲突。IP地址分配的方法有静态分配和动态分配。静态分配是指手动为每台主机配置IP地址,适用于网络规模较小、稳定的情况。动态分配是指通过DHCP协议,自动为主机分配IP地址,适用于网络规模较大、变化的情况。

特殊 IP 地址的特征和作用

  • 特殊IP地址是指一些具有特殊功能或含义的IP地址,它们不能用于一般的网络通信。特殊IP地址的类型有以下几种:
    • 私有IP地址:指一些只能在局域网内部使用,不能直接访问Internet的IP地址,它们的范围有三类,分别是10.0.0.0/8,172.16.0.0/12,192.168.0.0/16。
    • 本地环回地址:指127.0.0.0/8网段的IP地址,用于测试本机的网络配置和应用,不能用于远程通信。
    • 本地广播地址:指255.255.255.255的IP地址,用于在本地网络中向所有主机发送广播信息,不能跨越路由器。
    • 网络地址:指IP地址的主机位全为0的地址,用于表示一个网络或子网的标识,不能分配给主机。
    • 广播地址:指IP地址的主机位全为1的地址,用于在一个网络或子网中向所有主机发送广播信息,不能分配给主机。

直接交付与间接交付

  • 直接交付是指分组的目的主机和发送主机在同一个IP网络中,不需要经过路由器的转发,只需要通过ARP协议找出目的主机的MAC地址,然后将分组封装在以太网帧中直接发送。
  • 间接交付是指分组的目的主机和发送主机在不同的IP网络中,需要经过一个或多个路由器的转发,每经过一个路由器,就需要通过路由表查找下一跳的IP地址,然后通过ARP协议找出下一跳的MAC地址,然后将分组封装在以太网帧中发送给下一跳。

IP 分组过程中的路由选择、ARP 解析

  • 路由选择是指路由器根据分组的目的IP地址和路由表中的信息,选择最佳的下一跳IP地址,从而将分组转发到目的网络的过程。路由选择的方法有静态路由和动态路由,静态路由是指路由表由管理员手动配置,动态路由是指路由表由路由协议自动更新。
  • ARP解析是指根据IP地址获取MAC地址的过程,它通过发送ARP请求和ARP响应报文来实现地址解析。ARP请求和响应报文都是封装在以太网帧中的,因此它们都包含了源MAC地址和目的MAC地址两个字段,用于标识发送者和接收者的物理地址。

子网划分对 IP 分组交付的影响

子网划分是一种将一个大的网络划分成若干个小的网络的方法,它可以提高网络的效率和安全性,但也会对IP分组的交付产生一些影响。

子网划分对IP分组交付的影响主要有以下几点:

  • 子网划分会增加路由器的数量和复杂度,因为每个子网都需要一个路由器来连接其他子网或外部网络。这样会增加路由器的配置和管理的工作量,也会增加路由表的大小和更新的频率。
  • 子网划分会改变IP分组的目的地址的判断,因为不同的子网可能有相同的主机号,但不同的网络号和子网号。因此,IP分组的交付需要根据子网掩码来判断目的地址是否在同一个子网内,或者是否需要通过路由器转发。
  • 子网划分会影响IP分组的广播,因为广播只能在同一个子网内进行,不能跨越路由器。这样会减少广播的范围和开销,但也会限制广播的功能,如ARP协议等。