第一范文网 - 专业文章范例文档资料分享平台

实验四 IP协议分析

来源:用户分享 时间:2020-06-21 本文由呆萌综合征 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

实验四 IP协议/TCP协议分析实验

一、实验目的

通过对截获帧进行分析,验证TCP/IP的主要协议和协议的层次结构,掌握对应数据包的内部封装结构。

二、实验内容

使用Ethereal网络监听软件对TCP/IP体系下的以太网链路层MAC帧,网络层ARP协议、ICMP协议和IP协议,传输层TCP协议和UDP协议格式进行分析。

三、实验知识

局域网按照网络拓扑结构可以分为星形网、环形网、总线网和树形网,相应代表性的网络主要有以太网、令牌环形网、令牌总线网等。局域网经过近三十年的发展,尤其是近些年来快速以太网(100Mb/s)、吉比特以太网(1Gb/s)和10吉比特以太网(10Gb/s)的飞速发展,采用CSMA/CD(Carrier sense,Multiple Access with Collision detection)接入方法的以太网已经在局域网市场中占有绝对优势,以太网几乎成为局域网的同义词。因此,本章的实验以以太网为主。

以太网MAC帧

常用的以太网MAC帧格式有两种标准,一种是DIX Ethemet V2标准,另一种是IEEE 的802.3标准。图 4-1显示了这两种不同的MAC帧格式。

这种802.3+802.2帧已经很少使用了 当长度/类型字段 表示长度时 6 802.3 字节 MAC帧 目的地址 6 源地址 1 1 802.2 字节 1 LLC帧 DSAP SSAP 控制 2 1 1 1 IP数据 IP层 数据 43~1497 数据 4 FCS LLC子层 长度/类型 DSAP SSAP 控制 MAC子层 IP数据 6 以太网V2 字节 目的地址 MAC帧 插入 8字节 7字节 1字节 MAC帧 6 源地址 2 长度/类型 46~1500 IP数据 4 FCS IP层 MAC子层 物理层 10101010101010??101010101010 10101011 前同步码 帧开始定界符 图 4-1 Ethernet和IEEE 802.3/802.2定义的帧封装结构

Ethernet V2标准的MAC帧格式

DIX Ethernet V2标准是指数字设备公司(Digital Equipment Corp.)、英特尔公司(Intel Corp.)和Xerox公司在1982年联合公布的一个标准。它是目前最常用的MAC帧格式,它比较简单,由5个字段组成。第一、二字段分别是目的地址和源地址字段,长度都是6字节;第三字段是类型字段,长度是2字节,标志上一层使用的协议类型;第四字段是数据字段,长度在46~1500字节之间;第五字段是帧检验序列FCS,长度是4字节。

此外,为了使发送端和接收端达到位同步,实际传送时要在MAC帧前设置前同步码(7字节)和帧开始界定符(1字节)。这两个字段和帧检验序列FCS在网卡接收MAC帧时被去掉了,因此实验中抓包软件截获报文中没有这些字段。

Ethernet V2标准定义MAC帧都有最小长度要求,规定数据部分必须至少为46字节。为了保证这一点,必要时需要插入填充(pad)字节。

IEEE 802.3标准的MAC帧格式

1983年,IEEE(电子电气工程师协会)802委员会公布了一个和Ethernet V2标准稍有不同的标准集,局域网的数据链路层被拆成逻辑链路控制LLC子层和媒体接入控制MAC子层。MAC子层中定义了几种不同的局域网标准,如802.3针对整个CSMA/CD网络,802.4针对令牌总线网络,802.5针对令牌环网络。如图 4-1所示,802.2和802.3定义了一个与DIX Ethernet V2标准不同的以太网帧格式。

IEEE 802.3标准设计的主要特点是MAC层能够知道其有效数据的长度并能够为局域网提供面向连接的服务。与DIX Ethernet V2标准相比要复杂一些。

IEEE 802.3 MAC帧的第一、二字段也分别是目的地址和源地址字段,长度都是6字节;第三字段是长度/类型字段,如果该字段数值小于1500,它就表示MAC帧数据字段的长度;如果其数值大于0x0600,就表示类型,即上层协议的类型,此时802.3的MAC帧和Ethernet V2的MAC帧一样。

当长度/类型字段表示长度时,MAC帧的数据部分为802.2标准定义的LLC子层的LLC帧,其长度就是长度/类型字段的值。LLC帧的首部有3个字段,目的服务访问点DSAP(Destination Service Access Point,l字节)、源服务访问点SSAP(Source Service Access Point,1字节)和控制字段(1或2字节)。DSAP指出LLC帧的数据应当上交的协议,SSAP指出发送数据的协议,控制字段则指出LLC帧的类型。其数据字段、帧检验序列FCS字段、MAC帧前前同步码、帧开始界定符,以及最小长度要求与Ethernet V2标准类似。

此外,802.3标准为了能够更好地与Ethernet V2标准兼容,802委员会又制定了802.3子网接入协议SNAP(Sub-Network Access Protocol),对LLC首部进行扩展。使用SNAP协议时,DSAP和SSAP的值都设为0xaa,Control字段的值设为3,随后的3个字节Organization Code一般都置为0。再接下来的2个字节类型字段和以太网帧格式一样。

显然,与Ethernet V2标准相比,802.3标准在MAC帧中增加了8个字节的开销,而且实践证明,这样做过于繁琐,使得其在实际中很少得到使用。因此,本实验中重点分析Ethernet V2 MAC帧的格式,802.3 MAC帧只做一般了解。

TCP/IP体系结构

当网络运行TCP/IP协议时,其协议栈如错误!未找到引用源。所示。

应用层 运输层 ICMP 网际层 IGMP IP RARP 网络接口层 与各种网络接口 物理硬件 ARP 各种应用层协议 (TELNET, FTP, SMTP 等) TCP, UDP 图 4-2 TCP/IP协议栈

在错误!未找到引用源。中,与网际协议IP配套使用的还有地址解析协议ARP(Address Resolution Protocol)、逆地址解析协议RARP(Reverse Address Resolution Protocol)、因特网控制报文协议ICMP(Internet Control Message Protocol)和因特网组管理协议IGMP(Internet Group Management Protocol)等四个协议。其中ARP和RARP画在最下面,因为IP经常要使用这两个协议。ICMP和IGMP画在这一层的上部,因为它们要使用IP协议。

由于IP、ARP和RARP直接承载在MAC数据包上,作为链路层数据帧的帧头,其帧类型标识主要有:

0x0800——IP 0x0806——ARP

0x8035——RARP

ARP协议

ARP(Address Resolution Protocol)是地址解析协议的简称。在实际通信中,物理网络使用硬件地址进行报文传输,IP地址不能被物理网络所识别。所以必须建立两种地址的映射关系,这一过程称为地址解析。用于将IP地址解析成硬件地址的协议就被称为地址解析协议(ARP协议)。ARP是动态协议,就是说这个过程是自动完成的。

在每台使用ARP的主机中,都保留了一个专用的内存区(称为缓存),存放最近的IP地址与硬件地址的对应关系。一旦收到ARP应答,主机就将获得的IP地址和硬件地址的对应关系存到缓存中。当发送报文时,首先去缓存中查找相应的项,如果找到相应项后,便将报文直接发送出去;如果找不到,再利用ARP进行解析。ARP缓存信息在一定时间内有效,过期不更新就会被删除。

同一网段的ARP解析过程

处在同一网段或不同网段的主机进行通信时,利用ARP协议进行地址解析的过程不同。在同一网段内通信时,如果在ARP缓存中查找不到对方主机的硬件地址,则源主机直接发送ARP请求报文,目的主机对此请求报文作出应答即可。例如,如果主机A需要发报文给同一网段中主机B,如果在缓存中查找不到相应的记录,就必须先解析主机A的硬件地址。主机A首先在网段内发出ARP请求报文,主机B收到后,判断报文的目的IP地址是自己的IP地址,便将自己的硬件地址写入应答报文,发送给主机A,主机A收到后将其存入缓存,则解析成功。然后才将报文发往主机B。

不同网段的ARP解析过程

位于不同网段的主机进行通信时,源主机只需将报文发送给它的默认网关,即只需查找或解析自己的默认网关地址即可。例如,如果主机A要发报文给位于不同网段的主机B,首先,主机A分析目的地址不在同一网段,需要将报文先发给其默认网关,再由默认网关转发。如果没有找到默认网关的硬件地址,便发送ARP请求报文,请求默认网关的硬件地址,默认网关收到之后,将自己的硬件地址写入应答报文,发送给主机A。然后,主机A到主机B的报文首先被送到默认网关,默认网关再查找或解析主机B的硬件地址,将报文送到主机B中。主机B到主机A的报文以相反的顺序发送。

ICMP协议

ICMP(Internet Control Message Protocol)是因特网控制报文协议[RFC792]的缩写,是因特网的标准协议。ICMP允许路由器或主机报告差错情况和提供有关信息,用以调试、监视网络。

在网络中,ICMP报文将作为IP层数据报的数据,封装在IP数据报中进行传输。如图 4-3所示。但ICMP并不是高层协议,而仍被视为网络层协议。

IP报头 ICMP报头 ICMP信息 图 4-3 ICMP报文

ICMP 报文的格式

由于ICMP报文的类型很多,且各自又有各自的代码,因此,ICMP并没有一个统一的报文格式以供全部ICMP信息使用,不同的ICMP类别分别有不同的报文字段。ICMP报文只是在前4个字节有统一的格式,共有类型、代码和校验和3个字段。接着的4个字节的内容与ICMP报文的类型有关。再后面的数据字段的长度取决于ICMP报文的类型。以回送请求或应答报文为例,其ICMP报文格式如图 4-44所示。

0 类型(8/0) 8 代码(0) 标识 16 校验和 序列号 数据部分 ?? 31 图 4-4 回送请求和应答报文格式

其中类型字段表示ICMP报文的类型,代码字段是为了进一步区分某种类型的几种不同情况,校验和字段用来检验整个ICMP报文。

ICMP报文的分类

ICMP报文的种类可以分为ICMP差错报告报文和ICMP询问报文两种,它们各自对应的报文类型及代码如错误!未找到引用源。所示。

表 4-1 ICMP报文的分类及各自对应的报文类型和代码 ICMP报文种类型的值 ICMP报文的类型 类 3 终点不可达 4 源站抑制(Source Quench) 差错报告报文 11 时间超过 12 参数问题 5 路由重定向(Redirect) 8或0 回送(echo)请求或应答 13或14 时间戳(Timestamp)请求或应答 询问报文 17或18 地址掩码(Address Mask)请求或应答 10或9 路由器询问(Router Soliciation)或通告 ICMP差错报告报文主要有终点不可达、源站抑制、超时、参数问题和路由重定向5种。实验中主要涉及终点不可达和超时两种。其中终点不可达报文中需要区分的不同情况较多,对应的代码列表如表 4-22所示。

表 4-2 ICMP类型3 代码 描述 处理方法 代码 描述 处理方法 0 网络不可达 无路由到达主机 8 源主机被隔离(作废无路由到达主不用) 机 1 主机不可达 无路由到达主机 9 目的网络被强制禁无路由到达主止 机 2 10 协议不可达 连接被拒绝 目的主机被强制禁无路由到达主止 机 3 11 端口不可达 连接被拒绝 由于服务类型TOS,无路由到达主网络不可达 机 4 12 需要进行分片但报文太长 由于服务类型TOS,无路由到达主设置了不分片位 主机不可达 机 5 源站选路失败 无路由到达主机 13 由于过滤,通信被强(忽略) 制禁止 6 目的网络不认识 无路由到达主机 14 主机越权 (忽略) 7 目的主机不认识 无路由到达主机 15 优先权中止生效 (忽略) 其中较常见的是前5种。

ICMP询问报文有回送请求和应答、时间戳请求和应答、地址掩码请求和应答以及路由

器询问和通告4种。

ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出询问,收到此报文的机器必须给源主机发送ICMP回送应答报文。ping命令就是基于它的一个广泛而重要的应用。其报文格式如图 4-44所示。

ICMP时间戳请求报文是请某个主机或路由器应答当前的日期和时间。可用来进行时钟同步和测量时间。其报文格式如图 4-54所示,报文长度不少于12 字节。

0 8 代码(0) 数据部分 ?? 标识 16 校验和 序列号 31 类型(13/14) 图 4-5 时间戳请求和应答报文格式

主机使用ICMP地址掩码请求报文可从子网掩码服务器得到某个接口的地址掩码。其报文格式如错误!未找到引用源。所示,报文长度不少于20字节。

0 8 代码(0) 数据部分 ?? 标识 16 校验和 序列号 31 类型(17/18) 图 4-6 地址掩码请求和应答报文格式

基于ICMP的应用程序

目前网络中常用的基于ICMP的应用程序主要有ping(重要,必须掌握,以后联网时经常要用的)和tracert命令(两个命令都工作在命令提示符界面下)。

(1) ping命令

ping是调试网络最有用的工具之一,其命名来自于潜艇的声纳系统。在IP层中,ping发出ICMP Echo请求报文并监听其回应。通过执行ping命令主要可获得如下信息:

? 检测网络的连通性,检验与远程计算机或本地计算机的连接。

? 确定是否有数据报被丢失、复制或重传。ping 在所发送的数据包中放置惟一的序

列号(Sequence Number),以此检查其接收到应答报文的序列号。 ? ping在其所发送的数据报中还放置时间戳(Timestamp),根据返回的时间戳信息可

以很容易地计算数据包交换的时间,即RTT ( Round Trip Time)。 ? ping校验每一个收到的数据报,据此可以确定数据报是否损坏。

ping命令需要在安装TCP/IP协议之后才能使用,其命令参数为:

ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [ -s count] [[-j computer - list]|[-k computer - list]] [-w timeout] destination – list

这里对实验中可能用到的参数解释如下:

-t:校验与指定计算机的连接,直到用户中断。

-n count:发送由count指定数量的ECHO报文,缺省值为4。

-l length:发送包含由length指定数据长度的ECHO报文。缺省值为64字节,最大值为8192字节。

-i ttl:将“生存时间”字段设置为由ttl指定的数值。 -s count:指定由count指定的转发次数的时间戳。 -w timeout:以毫秒为单位指定超时间隔。

destination - list:指定要校验连接的远程计算机。

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新小学教育实验四 IP协议分析 全文阅读和word下载服务。

实验四 IP协议分析 .doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1089561.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top