当前位置:无忧公文网 >范文大全 > 征文 > 计算机网络协议栈实验平台的设计与实现——基于MSP430

计算机网络协议栈实验平台的设计与实现——基于MSP430

时间:2022-03-25 08:08:25 浏览次数:

zoޛ)j香f7i;i}-jSRiLH7ii1#@42H7]xYZzD
BKt$M41#AuВ4vvQ-j_KazKazky基础。这部分实验可以在PC机上完成。

实验内容包括:①掌握Ethereal软件的使用方法;②掌握通过数据包嗅探进行协议分析的方法;③截获典型数据包进行协议分析;④掌握一些经典协议(PPP协议、ARP协议、ICMP协议、Telnet协议、TCP协议和Smtp协议)并阅读相应的RFC文档。

2.2实验2:网络层lP协议、ARP协议、ICMP协议的实现

在网络层实现lP分组封装,ARP协议的实现是数据最终能够到达目的地的保证;设计完成部分ICMP协议;通过在接入段运行Ping命令验证实验结果的正确性。

2.3实验3:传输层TCP协议的实现

根据TCP有限状态机实现TCP协议可不考虑复杂的通信环境,忽略发送窗口、接受窗口、拥塞控制部分的实现。

2.4Http和Smtp协议的实现

用HTML写一个简单的Web页面,嵌入到实验平台,在平台上实现Http协议,以便局域网内其他终端可以通过Http协议访问实验平台在实验平台上实现Smtp协议,使实验平台在启;动时或在某个事件驱动下完成向某个邮箱一动发送邮件的过程。

3、实验平台扩展

3.1简单IPv6协议

随着嵌入式技术研究的深入发展,许多小型智能电子设备如智能家电、智能仪表等也接入到互联网中,导致IPv4地址空间明显不足,而IPv6协议解决了IPv4公共地址空间耗尽的问题IPv6协议使得移动电话、PDA、汽车、仪表甚至个人都可以获得多个公共IP地址,并且IPv6具有无状态地址自动配置、内置安全性强、服务质量高等诸多优点,是嵌入式设备进行网络互联的较好选择。实验平台可以实现简单的IPv6协议栈,帮助学生理解IPv6协议与lPv4协议的异同。

1) IPv6协议栈的实现

IPv6协议栈的实现主要包括IPv6模块和ICMPv6模块,协议栈的结构如图2所示。

由于实验平台资源有限,目前不考虑IPv6协议与IPv4协议的兼容问题,不支持IPv6扩展报头,不支持分片;测试运行在本地局域网,不涉及路由器;忽略MTU探测决定路径上的最大传输单元;将报文大小设定为小于以太网最大传输单元,避免报文分片。

ICMPv6模块具有IPv4的ICMP常用功能,可回送请求报文和回送应答报文,可在应用层进行ping6操作,测试网络的连通性和IPv6地址解析的正确性。IPv6中的邻节点发现过程是用一系列的报文和步骤确定邻节点之间关系的过程。邻节点发现取代了IPv4中使用的ARP报文、ICMP路由器发现和ICMP重定向报文。邻节点发现报文使用ICMPv6的报文结构。

实验平台的邻节点发现模块支持地址解析,省略了重复性探测和路由功能。程序设计在保证实现IPv6协议栈基本功能的基础上尽量减少代码复杂度,只考虑运行时的一般情况,忽略特殊情况需要的额外开销。实现该协议栈的重要内容之一是正确处理数据流程,实验平台数据处理流程如下。

当网络上有终端(主机)要访问嵌入式设备时,主机在适当的接口上发送多播帧,即IPv6主机发送多播邻节点,请求报文发现链路上IPv6节点的链路层地址。邻节点请求报文的多播地址是从日标IP地址得到的。邻节点请求报文格式如图3所示。

这时必须正确设置网络接口芯片CS8900地址滤波寄存器的值,以保证主机发送的多播邻节点请求报文可以通过地址滤波器;实验平台收到邻节点请求报文后,根据邻节点请求报文的信息,向报文发送方——主机发送一个单播邻节点公告报文,地址解析完毕;然后,实验平台根据TCP状态机的状态完成相应处理过程,接收数据时,从网络接口芯片缓冲区读取数据,依次提取:①以太网帧头信息——用于保存发送方MAC地址;②IPv6头信息——提取IPv6报文头中下一个头部的值。如果不是ICMPv6和TCP中的任何一个,就发送ICMPv6目的不可达报文;如果是ICMPv6,就进一步判断;如果是REQUES报文,就发送REPLY报文;如果是邻居请求报文,则发送邻居宣告报文。因为实验平台的TCP/IP连接是由主机发起的,所以嵌入式设备不会接收到邻居宣告报文。

实验平台采用TCP方式发送数据。嵌入式设备不主动向主机发送数据,而是根据主机的请求传送数据,根据主机发送的请求数据包得到同的地址相关信息,将发送的数据包送入发送缓冲区,添加以太网帧头部、IPv6数据报报头、TCP报文段首部等信息,更改相关标志位,将数据送人链路层。网络接口芯片负责将数据发送到网络。

2) IPv6协议栈的测试。

由于HTML不支持使用文字形式的IPv6地址格式作为URL(通用地址),因此需要一台运行Windows 2000 Server的计算机作为DNS服务器,在DNS服务器中添加实验平台IPv6地址的AAAA记录;同时需要正确配置测试局域网中主机的掩码,网关以及DNS服务器。

测试在本地局域网进行,除上述DNS服务器外,其他主机运行Windows XP或Windows2000操作系统。每台计算机都配置IPv4地址、安装IPv6协议栈并配置IPv6的链路本地地址。将嵌入式系统连入该网络,启动系统,系统的IPv6地址通过程序写入其RAM中,我们就可以通过该局域网内的一个网络终端访问嵌入式系统的主页。例如,在一台计算机输入“ping6嵌入式设备IPv6地址”,如果网络没有问题就可以返回信息。在Http的URL中输入嵌入式没备对应的域名,就可以看到其主页,这说明上述实验环境可以使IPv6协议栈得到较好的测试。

3.2RIP和OSPF路由协议的实现

为了在实验平台上验证RIP和OSPF路由协议,我们在实验平台上设计2个网络接口。由于实验平台资源有限且路由协议实现复杂,我们仅搭建图4所示的规模较小的网络拓扑。实验平台不设置接收缓冲区,不采用随机早期检测,仅实现RIP路由协议和OSPF路由协议。

4、结语

计算机网络协议分析与开发实验一直是计算机网络实验教学中的难点,如何让学生通过实验掌握协议分析与开发的精髓,具备协议分析与开发实践能力,是此类实验应重点关注的内容。基于msp430的计算机网络协议栈实验平台可以开展专业相关的各种实验,还可扩展进行IPv6协议和RIP、OSPF路由协议实验。学生通过实验可以重演TCP/IP协议栈,也可独立没计并开发类TCP/IP的网络协议,对学生协议分析、设计和开发能力的提高有很大帮助。

推荐访问: 计算机网络 协议 实验 设计 平台