第二章数据链路层协议的测试及分析doc.docx
《第二章数据链路层协议的测试及分析doc.docx》由会员分享,可在线阅读,更多相关《第二章数据链路层协议的测试及分析doc.docx(18页珍藏版)》请在冰豆网上搜索。
第二章数据链路层协议的测试及分析doc
第二章数据链路层协议的测试及分析
2.1TCP/IP通信协议实验系统
2.1.1TCP/IP通信协议实验系统硬件介绍
在实验二、四、五、六中,我们使用的设备是掌宇TCP/IP通信协议实验系统,该套系统由6台ITS-101、1台HUBOX以及线缆、电源等相关配件组成。
整套系统的连接如图2.1所示。
图2.1掌宇TCP/IP通信协议实验系统连接
下面介绍一下它们的结构功能及连接方法:
ITS-101是TCP/IP网络实验系统中最重要的核心设备。
它的前面板包括电源和一些指示灯,后面板包括1个RS-232串口、2个10/100M以太网接口和1个电源插口。
串口通过RS-232控制线与计算机串口相连。
两个以太网接口LAN1、LAN2分别与HUBOX后面板LAN1组、LAN2组相应的局域网接口0×相连,如图2.2所示。
HUBOX是建立网络拓扑结构使用的集线器。
它的后面板有LAN1、LAN2两组以太网接口,LAN1组的6个接口分别与6台ITS-101的LAN1接口相连,LAN2组的6个接口分别与6台ITS-101的LAN2接口相连。
如图2.3所示,前面板下方有LAN1、LAN2两组共12个以太网接口,在设备内部分别与后面板的LAN1、LAN2两组接口直通;前面板上方有两组共10个以太网接口,相当于两个独立的5端口HUB,两组接口的5号端口都可以用来上连。
图2.2ITS-101与HUBOX的连接
图2.3HUBOX前面板
HUBOX设计的目的在于当网络要切换到不同拓扑结构时,不需要重新从ITS-101上拉线,只需要在HUBOX上短的直通线或者交叉线更换连接方式即可。
以下三个例子说明了通过更换连接的方式获得了不同的拓扑结构,其中图左边为HUBOX的连接方式,右边为ITS-101的拓扑结构。
(1)运用HUBOX连线实现四台ITS-101同一子网
图2.4同一子网
(2)运用HUBOX连线实现六台ITS-101三个独立的子网
图2.5独立子网
(3)运用HUBOX连线实现四台ITS-101以路由方式串连
图2.6路由方式串连
2.1.2ITS-101软件介绍
用户在PC机上运行XClient软件。
XClient基于Java虚拟机的跨平台构架,可以在Win98/Me/2000/XP等多种操作系统下运行。
点击桌面上的XClient.bat快捷方式,运行KCodesNetworkExplorer,然后打开ITS-101开关。
当XClient软件执行时,屏幕上会出现两个窗口,一个为KCodesNetworkExplorer窗口,这是用户实验操作的主窗口;另一个为带有命令提示的XClient窗口,用户操作期间不需与其交互,它将一直处于背景方式运行,除非要关闭整个XClient,否则不要关闭此窗口。
XClient界面主要包括Listen、Send、TCP、Batch、Reactor、Application、Tool等菜单和一个工具栏按钮,如图2.7所示。
下面将简单说明一下它们的主要功能。
图2.7XClient主界面
(1)Listen
Listen是ITS-101的主要功能之一,能以实时的方式监测网络上的数据包传输状态,并可以设定监听数据包的种类与层级。
它的各个菜单项可以完成下列功能:
NewMemorizedMessageBrowse可以打开一个实时监听网络数据包传输的窗口NetworkMessageBrowser,该窗口可以实时显示ITS-101正在传输的数据包,并提供表2.1所示的数据包信息。
表2.1NetworkMessageBrowser窗口信息
名称
含义
#
数据包流水号
TIME
ITS-101发送或者接收到该数据包的时间
D
R表示Router,I表示In/Recieve,O表示Out/Send,E表示Error,U表示Unknown
I
1表示Interface1,2表示Interface2
TYPE
数据包类型
MACSRC
源接口MAC地址
MACDST
目的接口MAC地址
IPSRC
源接口IP地址
IPDST
目的接口IP地址
LEN
数据包总长度
TTL
数据包生存时间
F
FlagmentOffset,共3位。
第1位(R):
保留;第2位(DF):
0=能分片,1=不分片;
第3位(MF):
0=更多的片,1=最后一片。
ID
数据包序号
OFF
数据包如果有分片后的偏移量
PSRC
源端口号
PDST
目的端口号
DATA
数据包的内容
按该窗口的Detail按钮或者双击该数据包记录可以查看数据包的全部内容。
也可以按窗口中的Option按钮在SetMessageRange窗口中设定监听的过滤条件。
只有在工具栏或者菜单项ListenOn左边打勾才可以观察到链路传输的信息。
使用工具栏按钮Reset或者菜单项ResetMemorizedMessageLog可以清除掉NetworkMessageBrowser窗口的所有信息。
ListeningLevel可以选择监听数据帧或者IP包还是两者都监听。
PromiscuousMode可以将LAN1或者LAN2接口设置成混杂模式。
(2)Send
ITS-101是ARM9嵌入式系统,内涵标准的TCP/IP协议,可以自行定义并发送以太网帧、TCP、UDP、IP、ICMP等各种类型的数据包。
发送以太网数据帧可以通过SendInterfaceFrame菜单项或工具栏的SndE按钮打开NetworkMessageSender窗口进行。
发送IP数据包可以通过SendIPPacket菜单项或工具栏的SndIP按钮打开IPDatagramSender窗口进行,该窗口各个选项的含义如表2.2。
表2.2IPDatagramSender窗口信息
名称
含义
VERS
版本号
HLEN
数据包头长度
TOS
服务类型,包含Minimizedelay,throughout,reliabilityandmonetarycost几个选项
FLAGS
是否可以做分片以及是否做过分片的标识
Protocol
6(UDP)、17(UDP)、1(ICMP)、2(ICMP)或用户自定义
(3)TCP
通过NewTCPSession菜单项或工具栏的TCPS按钮打开TCPSession窗口,可以与目标主机的指定端口建立TCP连接。
(4)Batch
MDDLBatchPanel是一个可以执行“批处理”MDDL程序的工具。
一般情况下将数据包连续发送功能的程序写在“批处理”MDDL中执行。
可以在MDDLBatchEditor中编辑该类“批处理”,也可以点击ExecuteMDDLBatch菜单项执行已存在的该类“批处理”。
(5)Reactor
Reactor是ITS-101的一个开放式程序编写平台,通过它可以编写并执行MDDL程序。
MDDL程序不仅能实现TCP/IP协议群中各种协议,也能将ITS-101模拟为firewall、Switch、IPsharing等各种网络设备。
通过MDDLReactorPanel菜单项或工具栏的Mddl…按钮打开MDDLEditor窗口,编辑MDDL程序,并可以通过Upld按钮将程序上载到ITS-101内,还可以通过LoadMDDLReactor将已经存在的MDDL程序快速上载到ITS-101内。
按ResetReactor菜单项可以将上载的程序清除。
(6)Application
Application给出了两个通过TCP连接实现聊天功能和文件传输功能的应用程序。
通过Chat菜单项ITS-101可以与其它ITS-101互传信息,实现聊天功能。
FileTransfer是ITS-101在应用层内建的一个服务,可以将文件传输给其它ITS-101,并显示速率及所用时间等信息。
(7)Tool
ITS-101设定的自由度很高,在NetworkConfiguration中可以更改IP地址、子网掩码、MTU以及路由表等各类网络层参数。
当被设定为Host时,它相当于一个双网卡主机;当被设定为Gateway时,它就相当于一台路由器。
ITS-101内部也有一个记录MAC地址的ARP表,可以通过ClearARPCache菜单项清除该表的内容。
2.1.3MDDL基础
初始状态下的ITS-101只能完成一些基本的数据传输功能,要进行TCP/IP协议的各种测试,必须要运用MDDL(Message-DrivenDataflowLanguage)进行编程。
本文的实验软件安装完毕后所需要的MDDL程序源代码都已存储在C:
\XClient\Data\Mddl\Tutorial\Ex**\目录下,只需要做少许修改即可用于实验。
这里要求同学们能够看懂和修改这些程序,加深理解TCP/IP协议数据传输的过程,有余力的同学可以深入学习MDDL的编程方法,进行更为复杂的实验与测试。
MDDL与常用的C、C++、Java等语言相似,包括动作、事件句柄、程序控制等三种类型的语句,用一对{和}封装的0个或多个语句组成程序块。
MDDL是解释性语言,不需要编译,只要在Reactor上载(Upload)即可。
MDDL程序上载完成后,Reactor立即进行解释,该过程分成两部分:
(1)Reactor执行动作和一般的程序控制语句;
(2)Reactor安装事件句柄语句。
Reactor不能执行事件句柄语句,仅能将其安装在软件中,当相应事件发生时,Reactor触发事件句柄,执行包含在它们块内的动作语句与一般程序控制语句。
MDDL定义了19种句柄,包括了TCP/IP协议的基本事件,例如:
ETHER_IN_HANDLER表示以太网帧到达接口事件,IP_OUT_HANDLER表示IP报文发送事件,SERVICE_TCP_OPEN表示在用户定义TCP模式下点击了OPEN按钮,等等。
2.2以太网数据帧传输
2.2.1以太网数据帧的结构
以太网是目前局域网(LAN)数据链路层的主导技术,随着吉比特以太网的发展,也必将在城域网(MAN)中发挥更大作用。
以太网数据帧的长度为64~1518Bytes,如图2.8所示。
其中包含了6Bytes(48bits)的目标MAC地址和源MAC地址,2Bytes(16bits)的数据包类型(其中:
0X800为IP数据包、0X806为ARP数据包、0X8035为RARP数据包),数据字段的长度为46~1500Bytes,最后为4Bytes的帧检验序列FCS。
需要注意:
本实验中以太网数据帧的显示部分一律不包含FCS字段。
66246~15004byte
目标MAC地址
源MAC地址
类型
数据
FCS
06121460~151464~1518
图2.8以太网数据帧格式
目标地址可以是某一接口的MAC地址(如:
“00:
94:
12:
15:
01:
2C”),则该数据帧是一个单播帧,只具有该MAC地址的接口可以接收到该以太网帧;目标地址也可以是“FF:
FF:
FF:
FF:
FF:
FF”,则该数据帧是一个广播帧,局域网内的所有接口都可以接收到该以太网帧。
以太网帧的源地址就是发送接口的MAC地址。
2.2.2ITS-101以太网数据帧的发送
向已知MAC地址的接口发送以太网帧是ITS-101最基本的功能,下面以向已知接口发送单播帧为例,说明了其实现过程。
(1)在HUBOX上连线,连通传输以太网帧的两台ITS-101的两个Interface1接口。
(2)在两台客户机上分别点击桌面上的XCLIENT.BAT,启动ITS应用程序KCodesNetworkExplore。
(3)在两台客户机上分别开启以太网的监听功能,打开InterfaceFrames监听状态,如图2.9所示,操作时须将Listeningon与InterfaceFrames菜单项选中。
图2.9开启以太网的监听功能
(4)在两台客户机上分别打开NetworkMessageBrowser窗口,监听整个局域网上数据包传输;
(5)在其中一台客户机(这里设为Host1)上打开以太网帧发送界面NetworkMessageSender,运用地址为“00:
94:
12:
15:
01:
2D”的Interface1发送目标地址为“00:
94:
12:
15:
01:
2D”、类型为用户自定义“12:
34”的以太网帧,数据段内容为“hello”,界面如图2.10所示。
输入完成后,按“Send”按钮发送该帧。
图2.10发送以太网帧
(6)观察NetworkMessageBrowser窗口,出现如图2.11所示的一条以太网帧传送记录,说明成功发送。
图2.11发送端以太网帧传送记录
(7)观察另一台客户机(这里设为Host2)上的NetworkMessageBrowser窗口,也出现如图2.12所示与图2.11相似的一条以太网帧传送记录,说明成功接收。
这样以太网帧传输完成。
图2.12接收端以太网帧传送记录
2.2.3运用MDDL程序自动回复以太网帧
当接口接收到以太网帧后,可以运用MDDL程序回复,以下给出了其实现过程:
(1)连通两台ITS-101的两个Interface1接口,打开NetworkMessageBrowser并开启以太网的监听功能。
(2)在Host2上点击工具栏上的Mddl…按钮,打开MDDLEditor窗口,点击Load按钮,打开“C:
\XClient\Data\Mddl\Tutorial\Ex01\AutoResponser.mddl”文件,如图2.13所示,最后按Upld按钮将程序上载到ITS。
图2.13打开AutoResponser.mddl文件
(3)在Host1上按照上节的步骤(5)发送以太网帧到Host2的Interface1。
(4)观察Host1的NetworkMessageBrowser窗口,出现如图2.14所示的一条以太网帧传送记录和一条回复记录。
图2.14发送端以太网帧记录
(5)观察Host2的NetworkMessageBrowser窗口,也出现如图2.15所示的一条以太网帧接收记录和一条回复记录,说明以太网帧回复成功。
图2.15接收端以太网帧记录
(6)在Host2上点击Reactor->ResetReactor菜单,清除掉ITS内的MDDL程序,以免对其它实验造成干扰。
2.3ARP地址解析协议
2.3.1ARP协议的原理
IP地址不能直接用来通信,局域网中实际传输的是“帧”,帧的目标地址是目标接口的MAC地址,ARP地址解析协议就是在发送帧前将IP地址转化为MAC地址的协议。
ARP协议的基本功能就是通过目标接口的IP地址,查询目标接口的MAC地址,以保证通信的顺利进行。
ARP协议的整个过程为:
一台主机先向目标主机发送包含IP地址信息的广播数据包,即ARP请求;然后目标主机向该主机发送一个含有IP地址和MAC地址单播数据包,即ARP响应。
ARP报文被封装在以太网帧中,类型是0x0806,结构如图2.16所示。
081631
硬件类型
协议类型
硬件地址长度
协议长度
操作
发送方首部(0~3Bytes)
发送方首部(4~5Bytes)
发送方IP地址(0~1Bytes)
发送方IP地址(2~3Bytes)
接收方首部(0~1Bytes)
接收方首部(2~5Bytes)
接收方IP地址(0~3Bytes)
图2.16ARP请求报文格式
硬件类型字段表示发送方想知道的硬件接口类型,以太网的值为0x0001。
协议类型字段表示发送方提供的高层协议类型,IP为0x0800。
以太网的硬件地址长度0x06Bytes,协议长度表示高层协议地址的长度IPv4为0x04Bytes。
操作字段表示这个报文的目的,ARP请求为0x0001,ARP响应为0x0002,RARP请求为0x0003,RARP响应为0x0004。
当发出ARP请求时,发送方填好发送方首部和发送方IP地址,还要填写目标IP地址。
当目标机器收到这个ARP广播包时,就会在响应报文中填上自己的48位主机地址。
在具有以太网接口的设备中都有专门的ARP缓存,包含一个或多个表,用于保存IP地址以及经过解析的MAC地址。
在Windows中要查看或者修改ARP缓存中的信息,可以使用arp命令来完成,比如在命令提示符窗口中键入“arp-a”或“arp-g”可以查看ARP缓存中的内容。
2.3.2运用ITS-101发送ARP请求
下面以IP地址为“192.168.1.1”的接口向全网查询“192.168.1.3”所对应的MAC地址为例,说明了ITS发送ARP请求的过程。
(1)连通两台ITS的两个Interface1接口,打开NetworkMessageBrowser并开启以太网的监听功能。
(2)在Host1上点击Tool->NetworkConfiguration菜单,在弹出的窗口中将ITS的Interface1接口的IP地址设置为“192.168.1.1”,子网掩码设置为“255.255.255.0”,如图2.17所示。
点击“Set&Close”按钮保存设置。
图2.17配置ITS-101的IP地址
(3)运用相同的方法将令一台ITS的Interface1接口的IP地址设置为“192.168.1.3”,子网掩码设置为“255.255.255.0”。
(4)在Host1上打开以太网帧发送窗口。
将目标MAC地址设置为“FF:
FF:
FF:
FF:
FF:
FF”,帧的类型设置为“ARP(0806)”。
按照ARP报文的格式输入数据字段内容,发送方首部为源MAC地址,发送方IP为“192.168.1.1”(即:
C0:
A8:
01:
01),接收方IP为“192.168.1.3”(即:
C0:
A8:
01:
03)。
如图2.18所示,数据帧输入完成。
图2.18发送ARP请求报文
(5)点击“Send”按钮该ARP请求,立刻就可以接收到ARP回复报文,帧的观测结果如图2.19所示,说明ARP地址解析成功。
图2.19发送端ARP报文记录
2.4实验二ITS-101基本操作与数据链路层协议的测试及分析
2.4.1实验目的
掌握ITS-101基本操作方法,了解MDDL语言的编程机制,理解以太网数据帧的传送方式与ARP协议的工作原理。
2.4.2实验准备
(1)实验设备
●掌宇TCP/IP通信协议实验系统一套;
●装有ITS-101软件的PC机6台。
(2)预备知识
●熟悉TCP/IP通信协议实验系统的组成与结构,学习运用HUBOX连线变换拓扑结构;
●熟悉ITS-101软件界面与操作方法;
●熟悉以太网数据帧的结构,学习ITS-101单播帧的传输方法;
●熟悉ARP协议的工作原理,学习ITS-101实现ARP请求的方法。
2.4.3实验内容
(1)ITS-101拓扑结构连接练习
●改变HUBOX的连接方式,实现如图2.20所示的ITS-101拓扑结构(各个ITS-101的编号随意给出)。
图2.20实验网络拓扑结构一
●改变HUBOX的连接方式,实现如图2.21所示的ITS-101拓扑结构(在本实验中可以先不设置IP地址)。
图2.21实验网络拓扑结构二
(2)ITS-101以太网帧的传输
●使用图2.20所示的网络拓扑结构,将其中的一台ITS-101作为Leader,其余作为Member1~5。
●使用Leader向整个以太网发送一个广播帧,内容为“ThisisabroadcastfromtheLeader”。
●各个Member收到该帧后,向Leader发送一个单播帧,内容为“ThisisaunicastfromtheMember*”。
●从Leader观察各个ITS-101的MAC地址并记录到表2.3中。
表2.3各个ITS-101编号与MAC地址对应表
名称
MAC地址
Leader
Member1
Member2
Member3
Member4
Member5
(3)使用MDDL发送并回复以太网帧
●在各个Member上打开并上载AutoResponser.mddl程序,在Leader上打开并上载BcastMessages.mddl,观察发送和接收到的数据帧。
●清除掉Leader上ITS-101内的MDDL程序,打开并上载BCastMessages-1.mddl,观察发送和接收到的数据帧。
●清除掉Leader上ITS-101内的MDDL程序,打开IUCastMessages.mddl,按照图2.22修改该程序,然后上载到ITS-101,观察发送和接收到的数据帧。
图2.22修改IUCastMessages.mddl的MAC地址
●清除掉ITS-101内的MDDL程序,修改发送和回复的内容,重新进行实验。
(4)ARP协议测试
●将Leader和Member1~5的Interface1接口IP地址分别设置为“192.168.1.1”~“192.168.1.6”。
●各个成员发送ARP请求报文,根据ARP应答报文获得其它成员Interface1接口的MAC地址,并记录到表2.4中。
表2.4各个ITS-101的IP地址与MAC地址对应表
IP地址
MAC地址
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.6
●将一台客户机的IP地址设置为“192.168.1.7”并连接到网络内,在Windows中使用命令观察ARP缓存的内容。
●在Windows中使用“ping192.168.1.1”命令,检测是否连通,然后再用的命令观察ARP缓存的内容。
2.4.4问题与思考
(1)再增加一台HUB,可以将实验室所有ITS-101连接到一个局域网内。
应该使用哪种线缆如何连接?
(2)以太帧的最小帧长应为64字节,为何本实验的表示方法中,图2.11观测到的数据帧长度LEN是60?
是否可以使它的长度大于或小于60?
如何实现?
(3)比较Leader上加载BCastMessages.mddl与BCastMessages-1.mddl后结果有何不同?
说明产生的原因。
(4)根据BCastMessages.mddl和IUCastMessages.mddl的内容,编写一个同时发送广播和单播数据帧的程序。
(5)记录ARP请求和回复报文的内容,说明每个字段的含义。