实验四 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