(二)分析IP协议及IP数据报分片
IP协议是因特网上的中枢。它定义了独立的网络之间以什么样的方式协同工作从而形成一个全球户联网。因特网内的每台主机都有IP地址。数据被称作数据报的分组形式从一台主机发送到另一台。每个数据报标有源IP地址和目的IP地址,然后被发送到网络中。如果源主机和目的主机不在同一个网络中,那么一个被称为路由器的中间机器将接收被传送的数据报,并且将其发送到距离目的端最近的下一个路由器。这个过程就是分组交换。
IP允许数据报从源端途经不同的网络到达目的端。每个网络有它自己的规则和协定。IP能够使数据报适应于其途径的每个网络。例如,每个网络规定的最大传输单元各有不同。IP允许将数据报分片并在目的端重组来满足不同网络的规定。
表1.1 DHCP报文
报文类型 DHCP-DISCOVER 主要功能 DHCP客户端广播发送的,用来查找网络中可用的DHCP服务器 DHCP-OFFER DHCP-REQUEST DHCP-ACK DHCP-NAK DHCP-RELEASE DHCP-DECLINE DHCP服务器用来响应客户端的DHCP-DISCOVER请求,并为客户端指定相应配置参数 DHCP客户端广播发送DHCP服务器,用来请求配置参数或者续借租用 DHCP服务器通知客户端可以使用分配的IP地址和配置参数 DHCP服务器通知客户端地址请求不正确或者租期已过期,续租失败 DHCP客户端主动向DHCP服务器发送,告知服务器该客户端不再需要分配的IP地址 DHCP客户端发现地址冲突或者由于其它原因导致地址不能使用,则发送DHCP-DECLINE报文,通知服务器所分配的IP地址不可用 DHCP客户端已有IP地址,用它来向服务器请求其它配置参数 DHCP-INFORM - 24 -
图3.1 DHCP报文
1、使用DHCP获取IP地址 (1)打开命令窗口,启动Wireshark。
(2)输入“ipconfig /release”。这条命令会释放主机目前的IP地址,此时,主机IP地址会变为0.0.0.0
(3)然后输入“ipconfig /renew”命令。这条命令让主机获得一个网络配置,
- 25 -
包括新的IP地址。
(4)等待,直到“ipconfig /renew”终止。然后再次输入“ipconfig /renew” 命令。
- 26 -
(5)当第二个命令“ipconfig /renew” 终止时,输入命令“ipconfig /release” 释放原来的已经分配的IP地址
(6)停止分组俘获。如下图所示:
- 27 -
下面,我们对此分组进行分析:
IPconfig 命令被用于显示机器的IP地址及修改IP地址的配置。当输入命ipconfig /release命令时,用来释放机器的当前IP地址。释放之后,该机没有有效的IP地址并在分组301中使用地址0.0.0.0作为源地址。
分组301是一个DHCP Discover(发现)报文。当一台没有IP地址的计算机申请IP地址时将发送该报文。DHCP Discovery报文被发送给特殊的广播地址:255.255.255.255,该地址将到达某个限定广播范围内所有在线的主机。理论上,255.255.255.255能够广播到整个因特网上,但实际上并不能实现,因为路由器为了阻止大量的请求淹没因特网,不会将这样的广播发送到本地网之外。
在DHCP Discover报文中,客户端包括自身的信息。特别是,它提供了自己的主机名和其以太网接口的物理地址。这些信息都被DHCP用来标识一个已知的客户端。DHCP服务器可以使用这些信息实现一系列的策略,比如,分配与上次相同的IP地址,分配一个上次不同的IP地址,或要求客户端注册其物理层地址来获取IP地址。
在DHCP Discover报文中,客户端还详细列出了它希望从DHCP服务器接收到的信息。在Parameter Request List中包含了除客户端希望得到的本地网络的IP地址之外的其他数据项。这些数据项中许多都是一台即将连入因特网的计算机所需要的数据。例如,客户端必须知道的本地路由器的标识。任何目的地址不在本地网的数据报都将发送到这台路由器上。也就是说,这是发向外网的数据报在通向目的端的路径上遇到的第一台中间路由器。
客户端必须知道自己的子网掩码。子网掩码是一个32位的数,用来与IP地址进行“按位逻辑与运算”从而得出网络地址。所有可以直接通信而不需要路由器参与的机器都有相同的网络地址。因此,子网掩码用来决定数据报是发送到本地路由器还是直接发送到本地目的主机。
- 28 -