计算机毕业论文|计算机论文|计算机毕业设计|计算机网络论文  
设为首页 加入收藏 联系站长
论文无忧网|专业的计算机论文、计算机毕业论文服务网站
计算机毕业设计 计算机毕业论文 计算机论文 管理系统 工资 在线选课 图书
当前位置:计算机毕业论文网 >> 计算机网络 >> 浏览文章
网络管理控制系统的研究与探讨

【说明】本站所列作品的内容只是论文的部分介绍,如果想了解此作品的详细资料,请联系在线客服。
全套设计作品包括系统+源程序+论文+开题报告+使用手册,可以直接作为毕业设计/论文使用.
本站作品全部经过技术员测试,完整无错,大家可以放心参考使用。包调试,包指导,售后全部免费,直到您通过答辩为止。
现成作品的购买流程请参照:购买现成作品流程 网站介绍 常见问题解答

目    录
论文总页数:29页
1 引言 1
1.1 课题背景 1
1.2 国内外研究现状 1
1.3 课题意义 1
1.4 本课题研究方法 1
2 Linux开发环境介绍 2
2.1 Linux简介 2
2.2 Linux下的C语言开发环境 2
2.3 常用的网络数据控制工具介绍 3
3 Linux网络管理控制核心技术 5
3.1 SOCKET网络编程 5
3.1.1 Linux网络编程 5
3.1.2基本套接字函数 5
3.2 基于TCP协议的通讯 7
3.2.1 TCP传输协议简介 7
3.2.2控制字符的制定 7
4 NETFILTER-网络控制模块设计基础 8
4.1 netfilter介绍 8
4.2 netfilter中的重要返回值 8
4.3 netfilter在IPv4中的框架 9
4.4 netfilter核心模块 10
4.5 netfilter可以实现的基本控制功能 11
5 测试Linux网络管理系统的设计实现 13
5.1 系统设计整体框架 13
5.2 用SOCKET实现控制端和管理端的通讯 14
5.2.1管理端的设计与实现 15
5.2.2控制端的设计与实现 16
5.3 用netfilter设计控制功能模块 18
5.3.1设计控制ICMP数据报的模块 18
5.3.2用netflter设计管理控制FTP服务器的模块 20
5.3.3设计控制HTTP网站访问的模块 22
5.4 用GCC编译生成模块 23
5.5 管理控制系统测试 23
5.6 程序设计中遇到的问题和解决方法 24
5.6.1解决模块编译的环境问题 24
5.6.2解决程序异常退出问题 25
5.6.3解决模块自动加载问题 26
结    论 26
参考文献 27
致    谢 28
声    明 29


当TCP连接建立成功后,控制字节就包含在TCP报文的数据部分发送出去,接收端通过对TCP数据报的解析,取出数据部分的控制字节进行相关的操作。系统制定的通过TCP协议传输的控制字节可以完成以下网络控制功能:⑴当收到TCP报文段中的数据部分为字符‘a’时,系统编译加载所有的网络控制模块;⑵当收到TCP报文段中的数据部分为字符‘f’时,系统丢弃所有进出网络的ICMP数据包;⑶当收到TCP报文段中的数据部分为字符‘i’时,系统接收所有进出网络的ICMP数据包;⑷当收到TCP报文段中的数据部分为字符‘t’时,系统禁止访问FTP服务器;⑸当收到TCP报文段中的数据部分为字符‘p’时,系统允许访问FTP服务器;⑹当收到TCP报文段中的数据部分为字符‘c’时,系统禁止浏览HTTP网页;⑺当收到TCP报文段中的数据部分为字符‘o’时,系统允许浏览HTTP网页;⑻当收到TCP报文段中的数据部分为字符‘r’时,系统卸载所有功能模块。
函数bind():这个函数将本地地址与套接字绑定在一起,其定义为:int bind(int sockfd,struct sockaddr * myaddr,int addrlen);参数sockfd是函数sockt返回的套接字描述符;参数myaddr是本地地址;参数addrlen是套接字地址结构的长度。执行成功时返回0,否则,返回-1,并设置全局变量errno为错误类型EADDRINUSER。服务器和客户机都可以调用函数bind来绑定套接字地址,但一般是服务器调用函数bind来绑定自己的公认端口号
函数listen():函数listen将一个套接字转换为征听套接字,定义为:int listen(int sockfd,int backlog)参数sockfd指定要转换的套接字描述符;参数backlog设置请求队列的最大长度;执行成功时返回0, 否则返回-1。函数listen功能有两个:(1)将一个尚未连接的主动套接字(函数socket创建的可以用来进行主动连接但不能接受连接请求的套接字)转换成一个被动连接套接字。执行listen之后,服务器的TCP状态由CLOSED转为LISTEN状态;(2)TCP协议将到达的连接请求队列,函数listen的第二个参数指定这个队列的最大长度。
函数accept():函数accept从征听套接字的完成队列中接收一个已经建立起来的TCP连接。如果完成连接队列为空,那么这个进程睡眠。int accept(int sockfd,struct sockaddr * addr,int * addrlen)参数sockfd指定征听套接字描述符;参数addr为指向一个Internet套接字地址结构的指针;参数addrlen为指向一个整型变量的指针。执行成功时,返回3个结果:函数返回值为一个新的套接字描述符,标识这个接收的连接;参数addr指向的结构变量中存储客户机地址;参数addrlen指向的整型变量中存储客户机地址的长度。失败时返回-1。当函数accept阻塞等待已经建立的连接时,如果进程捕获到信号,函数将以错误返回,错误类型为EINTR。对于这种错误,一般重新调用函数accept来接收连接。
本地产生的数据经过钩子函数NF_IP_LOCAL_OUT [5]处理以后,进行路由选择处理,然后经过NF_IP_POST_ROUTING[4]处理以后发送到网络上。
由此可见,五个HOOK的位置,掌管了全部数据包的可能出入口,我们只要在对应的位置对数据报进行操作,就能实现对数据报的各种处理。
IPv4代码中netfilter的接口。IPv4 协议栈为了实现对 netfilter 架构的支持,在数据报经过 IPv4 协议栈的过程中,仔细选择了五个参考点:NF_IP_PRE_ROUTING、NF_IP_LOCAL_IN、NF_IP_FORWARD、NF_IP_POST_ROUTING、NF_IP_LOCAL_OUT,分别对应IP层五个不同的位置。在这五个参考点上,各引入了一行对 NF_HOOK() 宏函数的一个相应的调用。


在模块设计编写好后,必须将其编译成一个适合内核加载的对象文件。因为模块是用C语言来完成的,故采用gcc编译器来编译。如果需要通知编译程序把这个模块作为内核代码而不是普通的用户代码来编译,则需要向gcc传递参数“_DMODULE”;若要对模块程序进行优化编译、链接、,则就要用参数“-O2”;如果要对加载后的模块进行调试,那么就应该使用“-g”参数;同时需要使用“-Wall”参数将所有的警告信息显示出来,并使用“-c”开关通知编译程序在编译完这个模块文件后不调用链接程序。一般编译模块文件的命令格式如下:

gcc –O2 –g –Wall –DMODULE –D_KERNEL_ -c mymodules.c

命令行中mymodules.c为自己编写的模块程序源代码文件。其中:-O2 表示编译产生尽可能小和尽可能快的代码;-g对加载后的模块调试;-Wall 提示编译信息;-DMODULE  确定模块类型;-D_KERNEL_提示是内核的编译;-c 通知编译程序在编译完后不调用链接程序;/usr/src/linux-2.4/include为计算机的内核版本。与模块有关的几个命令:lsmod把现在kernel中已经安装的模块列出来;insmod把某个模块安装到内核中;rmmod把某个没在用的模块从内核中卸载;depmod制造模块的信赖文件,以告诉将来的insmod在哪里找模块来安装。

接下来就是模块的加载,加载模块有两种方法:一种是通过insmod命令手工将模块载入内核;另一种是根据需要载入模块(demand loaded module)。当内核发现需要某个模块时,内核请求守护进程(kerneld)载入模块。守护进程是一个带有超级用户权限的普通用户进程。当该进程启动时,kerneld开始执行,并为内核打开一个IPC通道。内核通过该通道发送消息,请求kerneld完成具体的任务。

kerneld的主要功能是加载和卸载内核模块,kerneld自身并不执行这些任务,它是通过某些程序(insmodrmmod)来完成。Kerneld只是内核的代理,为内核进行调试。

 

上一篇: 个人防火墙中截获封装包的实现方法
下一篇: 计算理论-自动机
在线客服  
点击这里给我发消息 点击这里给我发消息
点击这里给我发消息 点击这里给我发消息
QQ:528311109 QQ:528311109
  服务邮箱:Service@paper51.com
热门浏览
论文降价了,2010年毕业的同学你
计算机毕业论文无忧网-公告
计算机毕业论文-论文无忧网至同学
5年信誉服务保证-计算机毕业论文
购买现成作品流程
计算机毕业论文答辩过程中需要注
付款方式
网站介绍
计算机毕业论文答辩前的准备
常见问题
最近更新  
论文降价了,2010年毕业的同学你
计算机毕业论文无忧网-公告
计算机毕业论文-论文无忧网至同学
5年信誉服务保证-计算机毕业论文
购买现成作品流程
计算机毕业论文答辩过程中需要注
付款方式
网站介绍
计算机毕业论文答辩前的准备
常见问题
设为首页 | 加入收藏 | 关于本站 | 联系站长 | 友情链接 | 版权申明 | 在线留言 | 网站地图
Copyright 2006-2008 Powered by Paper51.com,论文无忧网 All Rights Reserved.
声明:《论文无忧网》,根据《信息网络传播权保护条例》,如果我们网站上的的作品侵犯了您的权利,请及时通知我们,我们会及时删除。
《论文无忧网》为您提供优秀的计算机毕业设计|计算机毕业论文|计算机论文|毕业论文等资料,仅供学习参考使用。