东森游戏:浅谈计算机网络协议栈实验平台的设计与实现

2019-03-30 12:54作者:王噶子  |

计算机网络原理课程是计算机科学的主要课程之一,在专业教学系统中起着非常重要的作用。在计算机网络原理的过程中,最重要的是对协议栈的理解和掌握。目前,计算机网络原理课程设置有实验环节,实验内容主要包括四个方面:1,通过数据嗅探软件sniffer / winshark / Ethereal等分析数据链路层、网络层和传输层协议; 2使用网络仿真器如NS2分析网络协议及其性能[1-2]; 3协议开发,即使用套接字编程进行应用层协议开发; 4网络设备配置实验,包括配置交换机、路由器、服务器,这些实验涉及协议。通过前两种网络协议分析的实验,学生可以观察到协议、数据包内部原理的基本理论知识,但这类实验是验证实验,这将使学生对协议的具体应用仍然模糊不清而且无法实现培训。并在设计新协议和独立设计开发协议时锻炼学生的目标。通过套接字编程实验,学生可以开发新的应用层协议,但仍然缺乏底层协议的知识和使用。网络设备配置实验也存在类似问题。

目前,计算机网络原理实验课程的主要问题是实验的分散和隔离导致学生对知识点的不完全了解。、不系统,不能形成一个有机整体,不能将协议的学习成果应用于具体协议。堆栈设计缺乏对协议栈开发方法的全面理解。

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

1实验平台设计概述

东森游戏:浅谈计算机网络协议栈实验平台的设计与实现

嵌入式实验平台的硬件部分主要由MSP430和CS8900网络接口芯片组成。该平台使用的微控制器是德州仪器的MSP430F149。这是一款功耗极低的Flash型16位RISC指令集微控制器,采用Crystal Corporation的CS8900作为以太网接口芯片。 CS8900功耗低,控制简单。它可以直接连接到微控制器,并通过微控制器的I / O端口控制CS8900。为了扩展路由协议验证模块,实验平台的MSP430F149连接到两个CS8900。2实验内容设计

2.1实验1:Ethereal Packet Sniffing

数据包嗅探软件与协议栈的学习和开发密不可分。 Ethereal是目前最流行的协议分析软件。计算机网络理论课程的第一个实验是要求学生掌握Ethereal软件的使用,通过数据包嗅探软件熟悉和掌握数据包的格式,为后续的复杂实验奠定良好的基础。这部分实验可以在PC上完成。

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

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

根据TCP有限状态机,可以在不考虑复杂通信环境的情况下实现TCP协议,并且忽略窗口、的拥塞控制部分的实现。

2.4Http和Smtp协议的实现

用HTML编写一个简单的网页,将其嵌入到实验平台中,并在平台上实现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功能,可以发回请求报文和回复echo报文。可以在应用层执行ping6操作,以测试网络的连接性和IPv6地址解析的正确性。 IPv6中的邻居发现过程是使用一系列消息和步骤确定邻居之间关系的过程。发现邻居节点替换IPv4中使用的ARP数据包。、ICMP路由器发现和ICMP重定向数据包。邻居节点发现该数据包使用ICMPv6的数据包结构。

实验平台的邻居发现模块支持地址解析,省略重复检测和路由功能。程序设计在确保IPv6协议栈的基本功能的基础上最小化了代码的复杂性。它只考虑运行时的一般情况,并忽略特殊情况所需的额外开销。实现协议栈的一个重要内容是正确处理数据流。实验平台的数据处理流程如下。

当网络上的终端(主机)想要访问嵌入式设备时,主机在适当的接口上发送多播帧。也就是说,IPv6主机发送组播邻居节点,请求该分组发现链路上IPv6节点的链路层地址。从目的地IP地址获得邻居请求消息的多播地址。

此时,必须正确设置网络接口芯片CS8900地址过滤寄存器的值,以确保主机发送的组播邻居节点请求消息可以通过地址过滤器。在从邻居节点接收到请求消息之后,实验平台根据邻居节点请求消息。将该信息发送给消息发送方主机发送单播邻居节点通告消息,完成地址解析;然后,实验平台根据TCP状态机的状态完成相应的处理过程,并在接收数据时从网络接口芯片缓冲区读取。数据按顺序提取:1以太网帧头信息用于存储发送方MAC地址; 2 IPv6报头信息用于提取IPv6报文头中下一个报头的值。如果它不是ICMPv6和TCP中的任何一个,则它发送ICMPv6目的地不可达消息;如果是ICMPv6,它进一步评判;如果是REQUES消息,则发送REPLY消息;如果是邻居请求消息,则发送邻居声明。信息。由于实验平台的TCP / IP连接是由主机发起的,因此嵌入式设备不会收到邻居通告消息。

实验平台使用TCP发送数据。嵌入式设备不主动向主机发送数据,而是根据主机的请求发送数据。根据主机发送的请求报文,获取目的地址相关信息,并将发送的数据包发送到发送缓冲区,并添加以太网帧头、IPv6。数据报头、 TCP段头和其他信息,改变相关标志位,并将数据发送到链路层。网络接口芯片负责向网络发送数据。2)IPv6协议栈的测试。

由于HTML不支持使用文本IPv6地址格式作为URL(通用地址),因此需要运行Windows 2000 Server的计算机作为DNS服务器,并且将实验平台的IPv6地址的AAA??A记录添加到DNS服务器。主机,网关和DNS服务器的掩码。 东森游戏:

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

3.2 RIP和OSPF路由协议的实现

为了验证实验平台上的RIP和OSPF路由协议,我们在实验平台上设计了两个网络接口。由于实验平台的资源有限以及路由协议的复杂性,我们只构建了一个较小的网络拓扑。实验平台不设置接收缓冲区,不使用随机早期检测,只实现RIP路由协议和OSPF路由协议。

4。结论

计算机网络协议分析和开发实验一直是计算机网络实验教学的难点。如何让学生通过实验掌握协议分析和开发的本质,具备协议分析和开发实践的能力,这是实验的重点。基于msp430的计算机网络协议栈实验平台可以进行与该行业相关的各种实验,也可以扩展IPv6协议和RIP、 OSPF路由协议的实验。学生可以通过实验重放TCP / IP协议栈,或者独立设计和开发类似TCP / IP的网络协议,这将极大地改善学生协议分析、的设计和开发能力。

上一篇:富水,偏,弱地层隧道动态设计实践分析
下一篇:论王维山水诗的三界