当前位置:文档之家› 实验四 IP协议分析

实验四 IP协议分析

实验四 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帧格式。

帧开始定界符 前同步码 1字节 7字节 43~1497 6 2 4 1 1 1 字节 IP数据 数据 控制 SSAP DSAP 1 1 1 数据 控制 SSAP DSAP 长度/类型 源地址 目的地址 FCS 6 字节

IP层 LLC子层 MAC子层

802.2 LLC帧

802.3 MAC帧

当长度/类型字段 表示长度时

IP数据 6 2 长度/类型 源地址 目的地址 6 字节 以太网V2 MAC帧 46~1500 4 FCS MAC子层 IP数据

IP层

MAC帧 8字节 物理层 10101010101010„„101010101010 10101011

插入

这种802.3+802.2帧已经很少使用了

图 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协议时,其协议栈如错误!未找到引用源。所示。

各种应用层协议

网络接口层 (TELNET, FTP, SMTP 等) 物理硬件 运输层 TCP, UDP 应用层 ICMP IP RARP ARP 与各种网络接口 网际层 IGMP

图 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并不是高层协议,而仍被视为网络层协议。

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

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

相关主题