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

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

时间:2022-11-11 14:55:10 教案设计 来源:网友投稿

zoޛ)j首学习对于计算机网络课程的重要性,探讨目前的实验方法,提出基于msp430的计算机网络协议栈实验平台的设计及实现方案,指出通过此实验平台,学生可进行协议栈重演,真切感受到抽象协议的具体应用方法,提高学生的协议分析能力和开发能力。

关键词:网络实验;协议栈重演;msp430实验平台

O、引言

计算机网络原理课程是计算机专业主干课程之一,在专业教学体系中占有非常重要的地位。计算机网络原理课程中,最重要的是对于协议栈的理解和掌握。目前,计算机网络原理课程均设置有实验环节,实验内容主要包括4方面:①通过数据嗅探软件-sniffer/winshark/Ethereal等分析数据链路层、网络层和传输层协议;②利用网络仿真器如NS2分析网络协议及其性能;③协议开发,即利用套接字编程进行应用层协议开发;④网络设备配置实验,包括交换机、路由器、服务器等的配置,这些实验都涉及协议。通过前两类分析网络协议的实验,学生可以观察协议的内部原理、数据包的格式等基本理论知识,但是此类实验属于验证性实验,会令学生对于协议的具体应用仍然模糊,无法达到培养和锻炼学生设计新协议和独立设计开发协议能力的目标。通过套接字编程实验,学生可以开发新的应用层协议,但是仍然缺乏对底层协议的认知和运用。网络设备配置实验也有类似的问题。

目前,计算机网络原理实验课程存在的主要问题是实验的片段性和隔离性导致学生对知识点掌握得不完整、不系统,不能形成有机的整体,不能将针对协议的学习成果应用于具体的协议栈设计,缺少对协议栈开发方法的整体理解。

基于上述问题,为了更好地培养学生综合运用理论知识分析问题和解决问题的实践能力,笔者结合华中科技大学文华学院计算机网络实验教学的现状,构建基于MSP430的汁算机网络协议栈实验平台,设计一套实验方案,期望学生通过在实验平台上的操作,加深对协议栈的理解,提高分析协议栈的能力和实践动手能力。

1、实验平台设计概述

嵌入式实验平台的硬件部分主要由MSP430和CS8900网络接口芯片组成,如图1所示。平台采用的微控制器是德州仪器公司(TI)的MSP430F149。这是功耗极低的Flash型16位RISC指令集单片机,采用Crystal公司的CS8900作为太网接口芯片。CS8900功耗低,控制简单,可以直接和微控制器相连,通过微控制器的I/O口对CS8900进行控制。为扩展路由协议验证模块,实验平台的MSP430F149与两片CS8900连接。

2、实验内容设计

2.1实验1:Ethereal数据包嗅探

对协议栈的学习和开发都离不开数据包嗅探软件,Ethereal是目前比较流行的协议分析软件。计算机网络原理课程的第一个实验是要求学生掌握Ethereal软件的用法,通过包嗅探软件熟悉和掌握数据包的格式,为后续的复杂实验打好基础。这部分实验可以在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的网络协议,对学生协议分析、设计和开发能力的提高有很大帮助。

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

版权所有:巨优公文网 2018-2024 未经授权禁止复制或建立镜像[巨优公文网]所有资源完全免费共享

Powered by 巨优公文网 © All Rights Reserved.。备案号:沪ICP备18054162号-1