当前位置:作文大全 > 计算机网络课程原始套接字编程实验的实践探索

计算机网络课程原始套接字编程实验的实践探索

发布时间: 2022-11-01 08:15:07


打开文本图片集

摘要:简述计算机网络课程及实验体系的发展状况,指出原有实验模式的不足,改革实验体系并新增了部分原始套接字实验模块,以网络嗅探程序设计为例给出原始套接字程序设计实验的目的、要求和实现方法,分析总结了原始套接字实验的特色和优势。

关键词:网络实验;原始套接字;协议分析;综合设计

作为计算机科学与技术、软件工程、网络工程等专业重要的学位课和考研课,计算机网络课程在我校开设已整整20年,先后历经多次课程和实验体系改革,在IT人才培养和专业建设方面发挥着重要作用。1990年,计算机网络课程在我校计算机应用87级本科班正式开设;1996年,计算机网络课程从OSI开放式系统互连模型转向到TCP/IP协议体系;2001年,计算机网络课程实施双语教学并成为我校首批双语示范课程;2003年,Cisco网络技术引入网络课程教学;2004年,计算机网络课程被评为校优质课和首批校级精品课。2004年以后,计算机网络实验课程主要采用Java套接字编程和思科网络配置管理相结合,在学生动手能力培养方面取得了积极效果。然而,Java套接字技术只能进行应用层编程,路由配置管理则只关注网络互连设备的操作管理,这对于理解底层网络协议是不够的。

在此背景下,课程组对网络实验课程进行了改革,在原有实验环节中增加了原始套接字实验,将操作、验证、分析和设计结合起来,在提高动手能力的同时,加深了学生对于网络协议的理解和运用。

1计算机网络课程实验体系

目前,我院网络课程体系包括了计算机网络原

理、TCP/IP协议分析、网络安全、路由与交换、无线网络技术、网络编程以及网络管理等7门专业课程。其中,计算机网络原理为必修课和研究生入学统考课,面向计算机科学与技术、通信工程、软件工程等专业开设,而不同专业的后续网络课程安排有所差异。

从有利于学生综合素质和创新能力的培养角度出发,课程组对计算机网络原理实验课程进行了调整,增加了两个原始套接字编程设计实验,将网络编程深入到底层协议,旨在强化学生深入理解网络协议和报文格式。调整后的计算机网络原理实验课程设置了8个实验模块,每模块分配2个学时,总计16个实验学时,具体如下。

实验一:网线制作与连接测试实验。物理层操作实验,掌握非屏蔽五类双绞线制作和测试,理解T568A/568B标准,完成直通双绞线、交叉双绞线的制作和连接测试。

实验二:客户机/服务器通信实验。标准套接字编程实验,学习套接字编程调试,理解服务器与客户端程序的工作原理,设计实现简单的服务器和客户端程序,进行网络请求和响应测试。

实验三:网络服务配置实验。操作性实验,熟练掌握FTP文件下载服务、POP3邮局服务、SMTP简

单邮件发送服务、WWW服务等常见网络服务的安装配置。

实验四:网络命令字实验。验证性实验,熟练掌握FTP、POP3、SMTP服务命令字,掌握Ping、Netstat、Tracert、Nslookup、Route等常见网络命令。

实验五:邮件收发程序设计。编程设计性实验,掌握标准套接字编程方法,设计实现简单的电子邮件发送和接收程序。

实验六:网络嗅探分析实验。验证性实验,学习使用Sniffer、Wireshark、Iris等专业网络分析工具,捕获局域网数据并进行协议分析。

实验七:网络嗅探程序设计。编程设计性实验,掌握原始套接字编程基本方法,深入理解网络嗅探原理,设计实现网络数据包捕获程序,按照以太网数据帧—IP报文—TCP/UDP报文封装顺序,对所捕获数据进行分析。

实验八:TCP洪泛攻击程序设计。编程设计性实验,掌握原始套接字编程基本方法,学习网络协议数据包的构造,理解TCP三次握手协议,设计实现TCP SYN同步报文伪造和发送程序,实现洪泛攻击。

2原始套接字实验设置

下面以网络嗅探程序设计为例,简要介绍实验课

程体系中的原始套接字实验项目。

实验原理:共享式局域网中,设置为混杂模式的网卡可以接收所有经过网卡的网络数据。

实验目的:掌握共享式局域网数据捕获的基本原理;深入理解Ehternet数据帧、IP数据包、TCP/UDP报文的格式,理解协议封装过程;掌握原始套接字编程方法。

实验要求:捕获数据包,解析目标和源MAC地址、IP地址、端口号以及传输层协议类型。

实验环境:Redhat Linux 9.0,Vi编辑/Gcc编译,共享式网络环境。

实验步骤:1)编写程序打开网卡,创建原始套接字;2)设置网卡工作在混杂模式;3)启动数据包捕获;4)判断并具体解析数据。

程序实现:首先引用必要的Linux C程序头文件,定义网卡设备、接收字符缓冲区、报头指针等变量,创建原始套接字;然后,设置网卡工作方式为混杂模式以进行数据捕获,方法为ioctl(int fd, int cmd, (char *) args);接下来程序即可开始连续捕获数据,并对捕获的数据进行分析。

根据网络协议的封包原则[1-2],如图1所示,以太网数据帧中目标MAC(6字节)、源MAC(6字节),类型(2字节)占据了前14字节位置,随后为IP报文起始位置。对于IP报文,IP数据包第一个字节的高

十六进制数表示了IP协议的版本,如IPv4、IPv6等;低十六进制数表示IP报头长度,通过该数值可以准确定位IP数据部分位置,如IP第一字节十六进制数值在0x45,则表示为IPv4基本报首。第13~16字节表示了源IP地址,目标地址则存储于17~20字节位置,IP报文承载的高层协议类型由第10字节标识。对于IPv4基本报首,其TCP/UDP源端口和目标端口则分别由第21~22字节和第23~24字节表示。

由上分析很容易写出完整的网络嗅探程序实现代码。考虑到部分学生的兴趣钻研,我们安排了实验拓展环节,提出“如何在交换式网络环境中实施数据包捕获”的问题,鼓励学生研究交换式数据包捕获机理,自主设计方案并编程实现。显然,基于原始套接字实现的网络嗅探程序实验与运用经典工具软件的网络嗅探分析实验[3-4]有很大的差异,前者对于拓展学生编程能力,深入理解网络协议封装过程有明显的优势。

3结语

基于原始套接字编程的网络实验课程在我院06、07级本科生中实施,目前已开设网络嗅探和TCP洪泛攻击两个原始套接字程序设计实验。调整后的网

络实验模块具有如下特点:

1) 实验模块将操作、验证与设计有机结合。新实验方案设置了操作性实验、验证性实验各两个,设置标准套接字、原始套接字实验各两个,实验模块分布合理,相关性强。例如,嗅探分析实验和嗅探程序设计,从系统操作、协议验证到程序设计相结合,可以加深学生对于网络协议封装的理解。

2) 实验内容前后连贯,由浅入深:新实验方案所设置的网络服务配置、网络命令字和邮件收发程序设计等实验模块前后密切相关。网络服务配置实验完成后,可以作为网络命令字实验的服务平台;而POP3/SMTP网络命令字的编程实现即为简单邮件收发程序。

3) 实验模块平台无关:实验模块内容不依赖于具体系统平台,既可以基于Linux系统进行,也可以在Windows操作系统下实施,通用性好。

总体上看,尽管新增的原始套接字实验编码只有几十行,但由于实验涉及到网卡工作方式设置、数据帧格式解析、数据包构造等底层操作,因而对于学生深入理解和运用TCP/IP网络协议、强化动手能力,培养专业兴趣都是十分有益的,很好地实现了网络实验课程改革的预期目标。

参考文献:

[1]吴功宜. 计算机网络[M]. 2版. 北京:清华大学出版社,2007:15-27.

[2]谢希仁. 计算机网络[M]. 5版. 北京:电子工业出版社,2008:23-32.

[3]周斌,霍严梅,周春光. 网络协议分析实验课的教学改革[J]. 实验室研究与探索,2006,25(1):56-60.

[4]郑啸,袁志祥,秦锋,等. 协议分析与测试课程的教学探索与实践[J]. 计算机教育,2010(14):80-83.

Practice on Raw Socket Programming for Network Experiments

SHI Le-yi, QI Ping

(College of Computer and Communication Engineering, China University of Petroleum, Qingdao 266555, China)

Abstract: The paper firstly demonstrates the evolution of course and experimentation for computer networks, discusses the disadvantage of the former experimental scheme. Thereafter, reformations are launched on and several items of raw socket programming are included. Finally, sniffing programming is exemplified to illustrate the purpose, requirement and implementation method of raw socket programming, which shows several advantages for network experiments.

Key words: network experiment; raw socket; protocol analysis; complicated design

(编辑:白杰)

最新文章

版权所有:策划范文网 2010-2024 未经授权禁止复制或建立镜像[策划范文网]所有资源完全免费共享

Powered by 策划范文网 © All Rights Reserved.。沪ICP备20021408号