《网络协议分析》实验指导书
表2 IP 地址的分类 IP 地址 类型 A 类 B 类 C 类 D 类 E 类 第一字节 十进制范围 1-126 128 -191 192 -223 224 -239 240 -254 二进制 固定最高位 0 10 110 1110 1111 二进制 网络位 8 位 16 位 24 位 二进制 主机位 24 位 16 位 8 位 组播地址 保留试验使用
如表2 所示,IP 地址分为A,B,C,D,E 五类,其中A、B、C 类地址为可分配主机地址,而D 类地址为组播地址,E 类地址保留以备将来的特殊使用。IP 地址采用点分十进制方式记录,每个地址表被视为4 个以点分隔开的十进制整数,每个整数对应一个字节。
A、B、C 三类地址由两部分组成:网络地址和主机地址,这三类地址的网络地址部分的 长度不一样。每个A 类地址的网络中可以有 1600 万台主机;每个B 类地址的网络中可以有 65534 台主机;每个C 类地址的网络中可以有254 台主机。 (2)IP 报文格式
IP 报文由报头和数据两部分组成,如图9 所示:
图9 IP 报文格式
其中主要字段的意义和功能如下: * 版本:指IP 协议的版本;
* 头长:是指IP 数据报的报头长度,它以4 字节为单位。IP 报头长度至少为 20 字节,如果选项部分不是4 字节的整数倍时,由填充补齐; * 总长度:为整个IP 数据报的长度; * 服务类型:规定对数据报的处理方式;
* 标识:是IP 协议赋予数据报的标志,用于目的主机确定数据分片属于哪个报文;
第 16 页 共 49 页
《网络协议分析》实验指导书
* 标志:为三个比特,其中只有低两位有效,这两位分别表示该数据报文能否分段和是 否该分段是否为源报文的最后一个分段;
* 生存周期:为数据报在网络中的生存时间,报文每经过一个路由器时,其值减 1,当生存周期变为 0 时,丢弃该报文;从而防止网络中出现循环路由; * 协议:指IP 数据部分是由哪一种协议发送的;
* 校验和:只对IP 报头的头部进行校验,保证头部的完整性;
* 源IP 地址和目的IP 地址:分别指发送和接收数据报的主机的IP 地址。 (3)IP 数据报的传输过程
在互联网中,IP 数据报根据其目的地址不同,经过的路径和投递次数也不同。当一台主机要发送 IP 数据报时,主机将待发送数据报的目的地址和自己的子网掩码按位 “与”,判断其结果是否与其所在网络的网络地址相同,若相同,则将数据报直接投递给目的主机,否则,将其投递给下一跳路由器。
路由器转发数据报的过程如下:
① 当路由器收到一个数据报文时,对和该路由器直接相连的网络逐个进行检查,即用目的地址和每个网络的子网掩码按位 “与”,若与某网络的网地址相匹配,则直接投递;否则,执行2。 ② 对路由表的每一行,将其中的子网屏蔽码与数据报的目的地址按位 “与”,若与该行的目的网络地址相等,则将该数据报发往该行的下一跳路由器;否则,执行3。
③ 若路由表中有一个默认路由,则将数据报发送给路由表所指定的默认路由器。否则,报告转发出错。
四.实验步骤
使用 Ping 命令在两台计算机之间发送数据报,用Wireshark 截获数据报,分析IP 数据报的格式,理解IPv4 地址的编址方法,加深对IP 协议的理解。
不带参数的ping命令,默认向目标主机发送数据为32个字节长度的ICMP回送请求报文,封装在IP数据报中。数据包如果顺利到达目的主机,则目的主机会返回一个回送请求报文,该报文会携带原始的数据。如果传输过程中出错,数据不能继续转发传输,则会向发送主机返回一个差错报文,报告发送主机数据传输过程中出现的问题。
环境应有局域网连接,学生两两一组,开展实验。
分析报文中IP 数据报头的格式,完成下表:
表3 IP 协议报文分析 字段 版本 头长 服务类型 总长度 标识 标志 片偏移 生存周期 协议 校验和 源地址 报文信息 说明 第 17 页 共 49 页
《网络协议分析》实验指导书
目的地址
附录:假设实验中192.168.7.87向192.168.7.85发送ping报文,则发出的请求报文可能如下:
收到的响应报文可能如下:
第 18 页 共 49 页
《网络协议分析》实验指导书
实验三 ICMP 协议分析
一.实验目的:
1.熟悉ICMP协议的主要内容
2.掌握获取ICMP协议几种常用报文的方法; 3.理解ICMP协议的主要用途; 4.理解ping、tracert命令的原理。
二.实验内容
第 19 页 共 49 页
《网络协议分析》实验指导书
1.捕获ICMP的常见报文(回送请求、回送响应、超时、目标不可达等),并进行分析。 2.分析tracert命令所产生的网络报文
三.实验原理
1. ICMP 协议介绍
ICMP(Internet Control Message Protocol)是因特网控制报文协议[RFC792]的缩写,是因特网的标准协议。ICMP允许路由器或主机报告差错情况和提供有关信息,用以调试、监视网络。
(1)ICMP 的报文格式
图10 ICMP 回送请求和应答报文格式
在网络中,ICMP 报文将封装在IP 数据报中进行传输。由于ICMP 的报文类型很多,且 又有各自的代码,因此,ICMP 并没有一个统一的报文格式供全部 ICMP 信息使用,不同的 ICMP 类别分别有不同的报文字段。
ICMP 报文只在前 4 个字节有统一的格式,即类型、代码和校验和 3 个字段。接着的4 个字节的内容与ICMP 报文类型有关。图20 描述了ICMP 的回送请求和应答报文格式,ICMP 报文分为首部和数据区两大部分。其中:
* 类型:一个字节,表示ICMP 消息的类型,内容参见表5; * 代码:一个字节,用于进一步区分某种类型的几种不同情况; * 校验和:两个字节,提供对整个ICMP 报文的校验和;
(2)ICMP 的报文类型
ICMP 报文的种类可以分为ICMP 差错报告报文和ICMP 询问报文两种,表4 列出了已定义的几种ICMP 消息。
表4 ICMP 消息及类型码 类型的值 0 3 4 5 8 9 10 ICMP 消息类型 回送(Echo)应答 目的站点不可达 源站点抑制(Source quench) 路由重定向(Redirect) 回送请求 路由器询问 路由器通告 类型的值 12 13 14 15 16 17 18 ICMP 消息类型 参数出错报告 时间戳(Timestamp)请求 时间戳(Timestamp)应答 信息请求 信息应答 地址掩码(Address mask)请求 地址掩码(Address mask) 应答 第 20 页 共 49 页