毕业设计(论文)-Linux下的简单网络管理控制系统的设计与开发设计与实现.doc
《毕业设计(论文)-Linux下的简单网络管理控制系统的设计与开发设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-Linux下的简单网络管理控制系统的设计与开发设计与实现.doc(27页珍藏版)》请在三一文库上搜索。
1、Linux下的简单网络管理控制系统的设计与开发摘 要随着网络的逐步普及,网络的管理和控制的重要性已经越来越突出,它关系着网络的进一步发展和普及,甚至关系着网络的生存。为了促进网络的发展,在现有的技术条件下,可以开发出成熟的网络控制系统对网络进行管理和控制。可以通过对网络的管理和控制为本地网络和外部网络之间建立一道屏障,从而控制和管理进出网络的数据。网络管理控制系统的核心是制定一套完整的网络控制指令集和设计控制管理的功能模块。本系统在Linux-2.4.20-8内核下完成网络管理控制系统的设计,使用控制管理命令实现对网络数据的管理。控制和管理模块的设计使用了netfilter数据控制过滤机制来实
2、现对网络的管理。模块可以实现对固定端口,网页访问以及不同数据协议类型的数据进行管理和控制。从实际应用中可以得出结论在Linux-2.4.20-8的内核下可以成功的使用netfilter网络数据控制机制过滤和管理进出系统的网络数据。本文首先介绍网络管理控制系统的一些基本概念以及一些在Linux下的C语言编译环境,其次介绍Linux netfilter控制模块在内核中的实现,在此着重介绍了netfilter在IPv4中的结构以及在Linux 2.4.x内核中实现,最后介绍了网络数据管理的策略、模块编程以及如何设计网络管理控制的功能模块。在了解这些技术的基础之上,成功的在Linux-2.4.20-8
3、内核下开发出一套简单的网络管理控制模块。这些模块通过程序发出的控制指令进行动态的插入和卸载。这些模块分别实现了对ICMP网络数据,HTTP站点,FTP服务器的管理控制。关键词:内核模块;数据包;netfilterDesign and Development of Simple Internet Management and Controlling System under LinuxAbstractWith the permeation of Internet,the importance of Internet management and controlling becomes more
4、prominent, It is related to the further development and permeation even the existence of Internet. To promote the development of Internet, it is possible to develop a mature Internet controlling system which can be managed and controlled under the current technical conditions. It can build a natural
5、 defense between internal and external network through managing and controlling the data of Internet. It is the core of this system that builds an overall Internet controlling agreement and realizes the model function of controlling and management. This system realizes the management and controlling
6、 of Internet data successfully by doing its design whose modules mainly based on the data controlling and filtering mechanism of Netfilter, under Linux. The modules have success in realizing the data managements. From practice, it concludes that data controlling mechanism of Netfilter can succeed in
7、 managing and filtering the whole data under Linux. This thesis introduces some basic concepts of MCS and edition environment of C language under Linux, firstly. Then it introduced realization of controlling module of Linux, Netfilter in Kernel, which highlight the structure of Netfilter in IPv4 and
8、 realization of Linux. Lastly it mentioned the strategy of MCS modules edition and how to design the function modules of MCS. So one simple modules of MCS of which doing dynamic insertion and suddenly unloading through controlling agreement sent by programs is designed successfully under Linux, foll
9、owing these skills. These modules also realize the management and controlling of ICMP data, HTTP websites and FTP Servers, respectively.Key words: Kernel Module;Packet;Netfilter目 录论文总页数:29页1引言11.1课题背景11.2国内外研究现状11.3课题意义11.4本课题研究方法12Linux开发环境介绍22.1Linux简介22.2Linux下的C语言开发环境22.3常用的网络数据控制工具介绍33Linux网络管理
10、控制核心技术53.1SOCKET网络编程53.1.1 Linux网络编程53.1.2基本套接字函数53.2基于TCP协议的通讯73.2.1 TCP传输协议简介73.2.2控制字符的制定74NETFILTER-网络控制模块设计基础84.1netfilter介绍84.2netfilter中的重要返回值84.3netfilter在IPv4中的框架94.4netfilter核心模块104.5netfilter可以实现的基本控制功能115测试Linux网络管理系统的设计实现135.1系统设计整体框架135.2用SOCKET实现控制端和管理端的通讯145.2.1管理端的设计与实现155.2.2控制端的设计
11、与实现165.3用netfilter设计控制功能模块185.3.1设计控制ICMP数据报的模块185.3.2用netflter设计管理控制FTP服务器的模块205.3.3设计控制HTTP网站访问的模块225.4用GCC编译生成模块235.5管理控制系统测试235.6程序设计中遇到的问题和解决方法245.6.1解决模块编译的环境问题245.6.2解决程序异常退出问题255.6.3解决模块自动加载问题26结 论26参考文献27致 谢28声 明291 引言1.1 课题背景Linux做为当今使用最为广泛的操作系统,在各个领域都具有非常重要的用途,随着网络技术的飞速发展,网络数据管理和控制系统方面设计人
12、才的需求不断增加。特别是随着我国经济的不断发展,网络管理控制系统开发方面的人才的需求也越来越大。通过这个课题可以使我们熟悉Linux下的netfilter网络数据控制过滤机制,可以使我们学会指定网络控制协议和开发网络管理控制模块的方法。通过Linux下的简单网络管理控制系统的设计和开发,可以提高实际的编程能力,特别是网络数据通讯管理这部分的编程能力。1.2 国内外研究现状Linux作为一种开源的操作系统,在国内外享有较高的声誉,其重要地位是其他操作系统所不可取代的。正是由于Linux操作系统的开源性,在国内外各大研究机构对其进行了不断的开发和完善,逐步形成了今天的Linux操作系统,其功能非常
13、强大,运行非常稳定。国内外均成立了专门的研究机构对其进行开发和研究。而近年来由于网络技术的兴起,Linux系统也发展为一种可以进行资源共享和交互的网络平台。在资源共享的同时,网络的安全已经成为科研机构研究的重点,并且推出了一系列的网络管理控制系统,特别是实现对网络数据的管理和控制。其中以网络数据管理和控制过滤器IPTABLES最为出名。可以说就目前国内外研究的情况来看Liunx方面的网络管理控制系统的开发技术已经相当成熟,并且正在不断的进行完善。1.3 课题意义随着网络技术的飞速发展,在越来越多的领域要用到网络控制管理。Linux操作系统是一个开源操作系统,对网络管理控制程序的设计提供了良好的
14、实验开发平台,同时市场对Linux下的研发人员需求也很大。通过对Linux网络通讯管理控制系统的开发,可以提高学生对网络通讯知识的了解和实际网络编程的能力,同时通过网络管理控制模块功能的设计,可以熟悉Linux下的网络数据的过滤机制,学会运用netfilter实现对网络数据的管理和控制。因此,该课题具有较好的实用价值。1.4 本课题研究方法在Linux-2.4.20-8操作系统平台下使用C语言开发环境。通过使用netfilter网络数据包管理控制机制进行网络控制模块功能的开发和编译,并且运用C语言编程开发出可以发出控制协议的管理控制平台进行相应的管理和控制模块的运行。其次研究网络通讯中的传输协
15、议,以及数据报的传输过程,以及一些可以控制和管理网络数据的传输端口,制定出一套网络管理控制协议,即一套完整的控制字节。最终在Linux操作系统环境下实现完成该网络管理控制程序,并且用netfilter实现控制功能模块的设计。2 Linux开发环境介绍2.1 Linux简介Linux是开源的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。它主要用于基于Intel x86系列CPU的计算
16、机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。同时Linux以高效性和灵活性著称。Linux模块化的设计结构,使得它既能在价格昂贵的工作站上运行,也能够在廉价的PC机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同使用Windows NT一样,允
17、许使用窗口、图标和菜单对系统进行操作。Linux具有:稳定、可靠、安全的优点,并且有强大的网络功能。在相关软件的支持下,可实现WWW、FTP、DNS、DHCP、E-mail等服务,还可作为路由器使用,利用IPCHAINS/IPTABLE网络管理工具可构建NAT及功能全面的防火墙。2.2 Linux下的C语言开发环境C语言是一种成功的系统描述语言,同时C语言又是一种通用的程序设计语言,在国际上广泛流行。它主要有以下一些特点:(1)语言表达能力强。C语言是面向数据结构的程序设计语言,通用性好。它可以直接处理字符、数字、地址,可以完成通常由硬件实现的算术、逻辑运算。它能有效地取代汇编语言来编写各种系
18、统软件和应用软件。最明显的就是UNIX操作系统。在UNIX操作系统中除了核心内部的1000行左右用汇编语言书写之外,其余的都是用C语言描述的。C语言同样可以表达数值处理、字处理功能,所以它又是一种通用语言。(2)语言简洁、紧凑,使用灵活,易于学习和使用。C语言共有32个关键字,9种控制语句,程序书写形式自由,主要用小写字母,在表示上力求简洁易行,如用一对来代替复合语句begin、end,用赋值运算符(如+=,-=,*=等)对运算和赋值的形式进行精简。(3)数据类型丰富,具有很强的结构化控制语句。C语言有简单数据类型(如整型、浮点型、字符型),在此基础上产生各种构造类型(如数组、结构体、共用体等
19、),因而C的数据类型很丰富。同时,它有各种控制流语句,如if-else、while、for、switch、break等,功能很强,能够描述结构化的程序。(4)语言生成的代码质量高。高级语言能否用来描述系统软件,特别是象操作系统、编译程序等,除要求语言表达能力强之外,很重要的一个因素是语言生成的代码质量如何。如果代码质量低,则系统开销就大,无实用价值。试验表明,针对同一问题用C语言编写程序,其生成代码的效率仅比用汇编语言写的代码效率低10%20%。由于用高级语言比用汇编语言描述问题编程迅速、工作量小、可读性好,易于调试、修改和移植,因此C 语言就成了人们描述系统软件和应用软件比较理想的工具。(5
20、)语法限制不严格,程序设计自由度大。例如,对数组下标越界不作检查,由程序编写者自己保证程序正确。一般的高级语言语法检查非常严格,能检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度,放宽了语法检查。限制与灵活是一对矛盾,限制严格,就失去灵活性;而强调灵活,就必然放松限制。程序编写者要仔细检查程序,保证其正确,而不要过分依赖C编译程序去查错。(6)可移植性好。用C语言编写的程序基本上不作修改就能用于各种型号的计算机和各种操作系统。2.3 常用的网络数据控制工具介绍在Linux系统中经常使用的网络管理工具是IPTABLES。管理工具iptables是Linux 2.4内核用来安装、维护
21、、检查数据包规则的管理程序。在Linux 2.4网络管理控制体系结构中,数据处理的规则可以分为四类:IP输入链(IP input chain)、IP输出链(IP output chain)、IP转发链(IP forward chain)、用户自定义链(user defined chain)。网络数据控制管理的规则指定包的格式和目标。当一个包进来时,内核使用输入链来决定数据包的命运。数据包沿着输入链一条规则一条规则匹配,如果它通过了输入链的检查,内核将决定包下一步该发往何处(这一步叫路由)。假如该数据包是送往另一台机器的,内核就将调用转发链。数据包再沿着转发链一条规则一条规则检查,如果不匹配,就
22、进入目标值所指定的下一条链。这条规则链有可能是用户自己定义的规则链,或者是一个特定值:接受(ACCEPT)、否定(DENY)、拒绝(REJECT)、伪装(MASQ)、重定向(REDIRECT)、返回(RETURN)。 基本的iptables命令一个iptables命令基本上包含如下五个部分: 希望工作在哪个表上 希望使用该表的哪个链 进行操作(插入、添加、删除、修改) 对特定规则的目标动作 匹配数据报条件 iptables基本语法iptables基本语法如下:iptables -t table -Operation chain -j target match(es)例如希望添加一个规则,允许所
23、有从任何地方到本地SMTP端口的连接:iptables -t filter -A INPUT -j ACCEPT -p tcp -dport smtp。还有其他的对规则进行操作的命令如:清空链表、设置链缺省策略、添加一个用户自定义的链。 iptables的一些基本的操作-A 在链尾添加一条规则-I 插入规则-D 删除规则-R 替代一条规则-L 列出规则 iptables的一些基本目标动作,适用于所有的链ACCEPT 接收该数据报DROP 丢弃该数据报QUEUE 排队该数据报到用户空间RETURN 返回到前面调用的链Foobar 用户自定义的链 iptables的一些基本匹配条件, 适用于所有的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 Linux 简单 网络 管理 控制系统 设计 开发 实现
链接地址:https://www.31doc.com/p-3281348.html