基于TCP/IP协议的网络教学系统设计
摘 要 通过对高校网络教学现状的调查与分析,提出了总体的设计目标以及设计方案,包括系统运行环境以及系统展现内容。系统采用C/S 模式,通过主机与客户机发送数据包,利用网络包截获的相应技术以及包过滤等策略,对特定的数据包进行分析,将各类协议首部用的二进制代码展现,可更直观的看到网络传输的具体方式,同时可将二进制代码转换为十进制,使系统具有更强的可视性。
关键字 TCP/IP;教学平台;数据包截获;包过滤;协议分析
1 引言
TCP/IP协议族是计算机网络软件组成的核心部分,同时也是很抽象和难以掌握的部分。目前,对于TCP/IP协议族的研究,一般是基于协议应用本身的研究,也就是研究如何将指定的协议嵌入产品,使该产品能够支持上层产品应用该协议或自身产品对该协议的应用。作为高校计算机网络课程中所介绍的协议,对于很大一部分老师和同学来讲,都还只是停留在了解和使用这个协议上,并没有深入到协议本身的原理中去。
本系统通过对TCP/IP协议族的研究,将其中的部分常用协议(如TCP、IP、UDP等)的具体结构、工作方式和工作过程,用人机交互方式和图形化界面形象生动展现在学生面前。教学中通过对本套系统的利用,可以达到提高学习效率,改善学习效果,使学生对协议的学习不仅达到对使用方法的了解,同时达到对协议结构以及工作原理的领悟,使学生对网络课程的学习达到一个新的层次。
2 系统设计依据
2.1 设计思路及设计目的
本系统开发的目的是针对大学本科学生对《计算机网络》课程中关于网络传输以及协议原理部分的学习,使学生可以自己定制传输内容,并亲眼看到所有内容传输的过程形式等,增强对协议结构的记忆,并可以亲自动手控制协议的状态,达到对协议原理及工作方式的深入了解。
2.2 系统设计中所用到的原理
2.2.1 数据传输的原理
在基于TCP/IP的网络中,应用层的数据传输通常是基于TCP或者UDP协议的,而两种协议最大的区别在于是否面向连接。
在面向连接的TCP协议中,传输数据首先要求传输双方建立一条虚电路连接。通信双方通过自身的sockets(或称为通讯端点) 建立sockets的连接,从而达到传输的目的。
UDP是一种是无连接的用户数据报传输协议,与TCP操作不同,计算机间并不需要建立一个明确、可靠的链路,一个UDP应用可同时作为客户方或服务器方。UDP向应用程序提供了一种发送封装的原始IP数据包的方法。虽然UDP数据报只能提供不可靠的交付,但在许多方面UDP可以简化连接,这样可以避免建立和释放连接的麻烦。
2.2.2 网络包截获的原理
通常在同一个网段的所有网络接口都有访问在物理媒体上传输的所有数据的能力,而每个网络接口都还应该有一个硬件地址,该硬件地址不同于网络中存在的其他网络接口的硬件地址,同时,每个网络至少还要一个广播地址(代表所有的接口地址),在正常情况下,一个合法的网络接口应该只响应这样的两种数据帧:
(1)帧的目标区域具有和本地网络接口相匹配的硬件地址。
(2)帧的目标区域具有"广播地址"。
在接受到上面两种情况的数据包时,网卡通过CPU产生一个硬件中断,该中断能引起操作系统注意,然后将帧中所包含的数据传送给系统进一步处理。
本系统中对数据帧的截获就是利用将本地网卡模式设成混杂(promiscuous)状态的机制,混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包。当网卡处于这种"混杂"方式时,使网卡对所有遭遇到的每一个帧都产生一个硬件中断以便提醒操作系统处理流经该物理媒体上的每一个报文包。
2.2.3 协议状态跳转的原理
这里主要是指TCP协议各种状态的跳转,TCP的各状态间的跳转见图1。
图1中所展现的内容在系统中,主要是通过改变TCP首部中相应位置的值来实现状态的跳转。
3 系统设计方案
3.1 系统构成
该系统由三部分组成,其中包括数据传输部分,数据采集部分和数据分析部分。数据传输部分基本功能是完成主机间的相互通信,同时,完成控制协议状态机跳转的任务;数据采集部分主要负责数据的采集;数据分析是系统的重点,完成了对数据包的过滤以及对数据结构的分析。
3.2 系统实现方式设计
3.2.1 数据传输部分
在主系统应用程序窗口上,设置了几组选择按钮,其中一组是让用户选择不同的传输层协议,当用户选择使用TCP协议,系统再根据用户所选择的传输模式(本机与本机、本机与其他)自动开启或提示用户手工开启相应的附属应用程序,之后系统自动调用TCP协议建立连接的程序。对于TCP传输,首先在服务器端建立监听套接口(sListen),通过这个套接口监听来自客户端的连接请求,通过绑定(bind)该监听套接口与指向本地地址的指针,就完成了数据接受前的准备工作,由此,系统进入待发送状态,此时,系统通过接受(accept)函数与客户机建立连接,与accept函数对应的客户机函数为连接(connect)函数,主系统应用程序在调用accept函数后,系统会产生一个新的套接口(sAccept),数据的传输在这个套接口上进行,而之前的监听(sListen)套接口则继续其监听任务,客户机在完成连接的建立后,系统便可以通过发送(send)或接收(recv)函数进行数据的交换。
如果用户选择了UDP的传输方式,系统则调用相应的程序,其方式与TCP略有不同,服务器端不必建立监听套接口,仅仅需要建立一个传输数据的套接口(sSocket),通过绑定(bind)函数,将此套接口和指向本地地址的指针绑定,便可以和客户机进行通信。
现在来讨论一下客户端的实现,不论是TCP还是UDP,在客户端一方,与接收数据套进行绑定的为指向服务器地址的指针。
在主应用程序发送数据后,接收端便可以接收数据,如果用户选择的是TCP传输,在建立接收数据的套接口(sClient)后,还需利用连接(connect)函数请求与主应用程序的连接,建立连接后,通过接收(recv)函数接收数据。如果用户在传输数据前选择了UDP传输方式,附属应用程序则应使用UDP的接收模式,同样,建立sClient套接口,但是这里并不需要connect函数,因为UDP是非面向连接的,最后,利用recvfrom进行接收数据的工作。
以上是基本的数据传输的的实现方式,如果,用户需要了解详细的协议状态机(这里指TCP协议)的跳转过程,用户可以选择“单步运行”,在这个过程中,用户可以通过系统对协议首部的显示直观的看到TCP协议建立连接的过程,主要指三次握手的过程,这里涉及到了一些数据采集部分的内容。为了进一步了解协议工作原理,在这个阶段,用户可以自行确定协议状态机的状态编号,系统则会根据所选编号判断TCP首部中标志位的取值,从而达到使状态机向不同状态跳转的目的。这样就做到人机互动,达到让学生对协议的工作原理有所理解的目的。
3.2.2 数据采集部分以及数据分析部分
数据采集部分实现方法是使本机网卡对网络中传送的所有数据包进行响应,在接收到数据包后,调用系统OnRecvData()函数对本机网卡所有接收到的数据进行分析,通过比对数据中所包含的源IP地址、源端口号、目的IP地址、目的端口号等报文信息,将数据解码,以二进制或十进制形式显示。用户可以根据自己的需求指定只接收某些类型的报文,或者对这部分报文进行分析等。
同时,系统还可以对网络中传输的内容进行统计,根据IP首部中的“8位协议类型”字段,对所接收到的数据包进行分类,统计出相应的流量。
4 结语
“网络教学系统”的使用可以很大程度上促进学生对网络理论知识的学习效果,提高网络课程教学水平。本套基于TCP/IP协议的“网络教学系统”是一种符合当今计算机网络教学方式的系统,能够极大的提高学生学习网络课程的积极性,从而达到提高高校计算机网络教学质量的目的。
参考文献
[1](美)d Stevens . TCP/IP详解卷一:协议 [M],北京:机械工业出版社,2004
(美) Gary . TCP/IP详解 卷二:实现 [M],北京:机械工业出版社 2000
任泰明. TCP/IP协议与网络变成 [M],西安:西安电子科技大学出版社,2004
(美) Douglas Dabid s . Internetworking With TCP/IP Vol Ⅲ:Client- Server Programming And Applications Windows Sockets Version [M] 北京:清华大学出版社,2004
谢希仁. 计算机网络 . 第四版 [M],北京:电子工业出版社,2004
谭浩强. Visual C++ 6.0 实用教程 [M],北京:电子工业出版社,2001
任哲. MFC Windows应用程序设计 [M],北京:清华大学出版社 2004
上一篇:基于负载均衡的路由协议的设计
热门论文
- 基于TCP/IP协议的网络教学系统设计
- 嵌入式系统的TCP/IP协议的应用研究
- 网络安全之TCP/IP协议安全性探讨
- 计算机网络TCP协议的仿真与实现
- 基于xDSL宽带网络测试系统的TL1通信协议设计与实
- 基于IP网络构建视频会议系统的技术研究
- 如何基于IP网络构建视频会议系统技术
- 基于IP网络构建视频会议系统技术浅析
- TCP/IP在网络中的高效配置
- 基于云计算的网络教学系统的设计与实现
- 基于TCP/IP的制造自动化网络安全问题研究
- 使用Sniffer软件透视TCP/IP协议的安全
- 基于TCP/IP的配电柜监控装置
- UNIX TCP/IP网络文件传输的实现
- 基于LonWorks的智能网络测控系统设计