当前位置:论文网 > 论文宝库 > 信息科技类 > 通信论文 > 正文

计算机网络协议栈实验平台的设计

来源:UC论文网2015-11-06 19:18

摘要:

计算机网络原理课程是计算机专业主干课程之一,在专业教学体系中占有非常重要的地位。计算机网络原理课程中,最重要的是对于协议栈的理解和掌握。目前,计算机网络原理课程均

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

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

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

  1 实验平台设计概述

  嵌入式实验平台的硬件部分主要由MSP430和CS8900 网络接口芯片组成。平台采用的微控制器是德州仪器公司(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 : 网络层IP 协议、ARP 协议、ICMP 协议的实现

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

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

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

  2.4 Http 和Smtp 协议的实现

  用HTML 写一个简单的Web 页面,嵌入到实验平台,在平台上实现Http 协议,以便局域网内其他终端可以通过Http 协议访问实验平台。

  在实验平台上实现Smtp 协议,使实验平台在启动时或在某个事件驱动下完成向某个邮箱自动发送邮件的过程。

  3 实验平台扩展

  3.1 简单IPv6 协议

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

  1)IPv6 协议栈的实现。

  IPv6 协议栈的实现主要包括IPv6 模块和ICMPv6 模块。

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

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

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

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

  这时必须正确设置网络接口芯片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.2 RIP 和OSPF 路由协议的实现

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

  4 结语

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

核心期刊推荐