基于ICMP模拟网络控制软件的开发——控制管理模块
摘 要
随着网络技术的发展,网络通信已经越来越重要。而网络通信的实现,必然离不开网络协议。网络协议是一套传递信息、管理信息的规则。通过这套规则,计算机之间才能相互通信。目前,一些起到平台作用的通信协议已趋于完善,如TCP、UDP和ICMP等。它们是以IP数据包为载体(IP头+TCP/UDP/ICMP头+数据)的。控制管理模块的主要目标是管理和发送控制信息,在ICMP协议的基础上,模拟出一套自定义的规则,用于实现简单的网络控制。具体实现是通过VC 6.0创建一个对话框工程,并采用RAW SOCKET技术完成ICMP数据包的发送和接收,以ICMP的数据部分作为本协议实现的载体,即IP头+ICMP头+数据(自定义的简单协议)的数据包形式实现不同计算机之间的通信,从而达到网络控制的目的。通过测试,该模块实现了控制信息的管理和发送。
关键词:ICMP;RAW SOCKET;网络协议;数据包
The Controlling and Management software module development of simulating network control based on ICMPhttp://www.16sheji8.cn/
Abstract
With the advance of network technique, internet communication is becoming more and more important. However, it can not be realized without network protocol, which is a set of rules for transmitting and managing information. Through these rules, each computer can communicate with each other. At present, a lot of basal protocols have been nearly perfect, such as TCP、UDP、ICMP, which are based on the IP packets (IP head + TCP/UDP/ICMP head + data). The main task of Control Module is to manage and send the control information, which is to simulate a set of self user-defined rules and realize simple network control on the basic of ICMP protocol. The concrete realization is that we first establish a dialog-box project through VC 6.0, and then use RAW SOCKET technology to complete the sending and receiving of ICMP packets whose data part can be used as the carrier helping realize the protocol. It means that we can use the form of IP head + ICMP head + data (simple user-defined protocol) to realize the correspondence among different computers to achieve the goal of net-controlling. Through the test, the module has realized the management and transmission of control information. http://www.16sheji8.cn/
Key words:ICMP; RAW SOCKET; network protocol; data packet
目 录
论文总页数:24页
1 引言 1
1.1 课题背景 1
1.2 国内外研究现状 1
1.3 本课题研究的意义 1
1.4 本课题的研究方法 2
2 TCP/IP概述 2
2.1 概念 2
2.2 TCP/IP分层结构 2
2.3 数据封装格式 3
3 ICMP概述 4
3.1 ICMP介绍 4
3.2 ICMP报文格式 5
3.3 ICMP报文的类型 5
3.4 ICMP的重要性简介 7
4 网络套接字 7
4.1 套接字概述 7
4.2 WINSOCK中的几个基本概念 9
4.2.1 Winsock 9
4.2.2 阻塞和非阻塞 9http://www.16sheji8.cn/
4.2.3 字节顺序 9
4.2.4 客户机/服务器模型 9
4.3 WINSOCK编程原理 10
4.3.1 Winsock的启动和终止 10
4.3.2 错误检查和控制 11
4.3.3 Winsock编程模型 11
5 控制协议的模拟实现 15
5.1 课题的具体要求 15
5.2 课题的实现重点 15
5.3 可视化界面的具体实现 16
5.3.1 思考过程 16
5.3.2 几种控件的具体实现 16
5.4 ICMP类的核心实现 17
5.4.1 在工程文件中插入ICMP,编写IP和ICMP头结构 17
5.4.2 对Winsock进行初始化 18
5.4.3 创建一个原始套接字,填充地址结构 18
5.4.4 填充数据 19
5.4.5 发送控制信息 19
5.5 工程文件的组成 19
5.6 控制协议的简单设计 19
5.7 模拟环境 20
5.7.1 硬件环境 20
5.7.2 软件环境 20
5.8 操作过程 20
结 论 22
参考文献 22http://www.16sheji8.cn/
致 谢 23
声 明 24
1 引言
1.1 课题背景
随着科学技术的飞速发展,21世纪的地球人已经生活在信息时代。20世纪人类两大科学技术成果—计算机技术和网络技术,均已深入到人类社会的各个领域,Internet把“地球村”的居民紧密联系在一起,“天涯若比邻”已然成为现实。互联网之所以能迅速蔓延,被世人接受,是因为它具备特有的信息来源。近年来Internet的迅速发展,给人们的日常生活带来了全新的感受,“网络生存”已经成为时尚,同时人类社会诸如政治、科研、经济、军事等各种活动对信息网络的依赖程度已经越来越强,“网络经济”时代已初露端倪。
1.2 国内外研究现状
Ping命令早已是耳熟能详的检查网络畅通的得力方法之一,但是ping命令是来自于哪个网络层次的哪个协议,就不是每个人能说得上的了。其实,ping命令就是ICMP协议的一个重要应用,Traceroute命令也是。ICMP协议是一个非常重要的协议,它对于网络安全、网络的正常运作具有极其重要的意义。它被用于在IP主机、路由器之间传递控制消息,如网络通不通、主机是否可达、路由是否可用等。这些控制信息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。而且,ICMP协议本身的特点又决定了它非常容易被用于攻击网络上的路由器和主机,造成CPU疲与奔命,系统瘫痪,主机死机。http://www.16sheji8.cn/
1.3 本课题研究的意义
网络经济的发展自然离不开网络,而网络的发展更离不开网络协议。协议本.质上是一套行为规则,这些规则也许是非书面形式的,但却是人们在使用中认为是正确而接受的。由于环境和文化的原因,行为规则有些细微差别。有些行为规则是写在纸上的,例如交通规则。但由于国家和地区的不同,交通规则的差异也很大。例如,在中国,黄色交通信号意味着“当心,准备停车”。但是在德国,同样的黄色交通信号却表示“准备,灯就要变成绿色了”。类似地,当两台或更多台计算机需要通信时,它们也要有行为规则和书写与传送信息的习惯。就像世界各地的人们在不同的地区讲不同的语言一样,计算机也需要“讲”特定的网络语言即“协议”。如果一个计算机不能使用某个协议,它就不能与使用那个协议的计算机通信。http://www.16sheji8.cn/
网络里面充斥着各种协议。一台计算机需要准确地知道信息在网络里以什么形式传递,从而确保信息到达正确的地方。它需要知道网络预计的信息格式(例如,信息的哪一部分是数据,哪一部分用于制定接收方的地址;只有这样,网络才能将数据顺利地传递至目的地。就像上面提到的交通规则,我们可以称之为十字路口的公路交通协议,这种协议可以确保车辆的安全通过。
1.4 本课题的研究方法
使用VC 6.0,建立一个工程来实现ICMP数据包的发送和接收,用ICMP的数据部分作为本协议实现的载体,即用IP头+ICMP头+数据(自己设计的简单协议)的数据包形式实现不同机器之间的网络通信而达到网络控制的目的。具体的网络通信编程使用的是raw socket即原始套接字编程。
2 TCP/IP概述
2.1 概念
TCP/IP(Transmission Control Protocol/Internet Protocol的简写,中文译名为传输控制协议/互联网络协议)协议是Internet最基本的协议,简单地说,就是由底层的IP协议和TCP协议组成的。http://www.16sheji8.cn/
TCP/IP是网络中使用的基本的通信协议。虽然从名字上看TCP/IP包括两个协议,传输控制协议(TCP)和网际协议(IP),但TCP/IP实际上是一组协议,它包括上百个各种功能的协议,常用的如:HTTP协议、FTP协议、TELNET协议等,而TCP协议和IP协议是保证数据完整传输的两个最基本的协议。通常说的TCP/IP是Internet协议族,而不单单是TCP和IP。
TCP/IP是用于计算机通信的一组协议,我们通常称它为TCP/IP协议族。它是70年代中期美国国防部为其ARPANET广域网开发的网络体系结构和协议标准,以它为基础组建的Internet是目前国际上规模最大的计算机网络,正因为Internet的广泛应用,使得TCP/IP成了事实上的标准。