{$cfg_webname}
主页 > 计算机 > C++ >

基于ICMP模拟网络控制软件的开发——控制管理模块

来源:wenku163.com  资料编号:WK1638210 资料等级:★★★★★ %E8%B5%84%E6%96%99%E7%BC%96%E5%8F%B7%EF%BC%9AWK1638210
资料介绍

基于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 ICMP
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. 

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    阻塞和非阻塞    9
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
参考文献    22
致    谢    23
声    明    24

 
1    引言
1.1     课题背景
随着科学技术的飞速发展,21世纪的地球人已经生活在信息时代。20世纪人类两大科学技术成果—计算机技术和网络技术,均已深入到人类社会的各个领域,Internet把“地球村”的居民紧密联系在一起,“天涯若比邻”已然成为现实。互联网之所以能迅速蔓延,被世人接受,是因为它具备特有的信息来源。近年来Internet的迅速发展,给人们的日常生活带来了全新的感受,“网络生存”已经成为时尚,同时人类社会诸如政治、科研、经济、军事等各种活动对信息网络的依赖程度已经越来越强,“网络经济”时代已初露端倪。
1.2     国内外研究现状
Ping命令早已是耳熟能详的检查网络畅通的得力方法之一,但是ping命令是来自于哪个网络层次的哪个协议,就不是每个人能说得上的了。其实,ping命令就是ICMP协议的一个重要应用,Traceroute命令也是。ICMP协议是一个非常重要的协议,它对于网络安全、网络的正常运作具有极其重要的意义。它被用于在IP主机、路由器之间传递控制消息,如网络通不通、主机是否可达、路由是否可用等。这些控制信息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。而且,ICMP协议本身的特点又决定了它非常容易被用于攻击网络上的路由器和主机,造成CPU疲与奔命,系统瘫痪,主机死机。
1.3     本课题研究的意义
网络经济的发展自然离不开网络,而网络的发展更离不开网络协议。协议本.质上是一套行为规则,这些规则也许是非书面形式的,但却是人们在使用中认为是正确而接受的。由于环境和文化的原因,行为规则有些细微差别。有些行为规则是写在纸上的,例如交通规则。但由于国家和地区的不同,交通规则的差异也很大。例如,在中国,黄色交通信号意味着“当心,准备停车”。但是在德国,同样的黄色交通信号却表示“准备,灯就要变成绿色了”。类似地,当两台或更多台计算机需要通信时,它们也要有行为规则和书写与传送信息的习惯。就像世界各地的人们在不同的地区讲不同的语言一样,计算机也需要“讲”特定的网络语言即“协议”。如果一个计算机不能使用某个协议,它就不能与使用那个协议的计算机通信。
网络里面充斥着各种协议。一台计算机需要准确地知道信息在网络里以什么形式传递,从而确保信息到达正确的地方。它需要知道网络预计的信息格式(例如,信息的哪一部分是数据,哪一部分用于制定接收方的地址;只有这样,网络才能将数据顺利地传递至目的地。就像上面提到的交通规则,我们可以称之为十字路口的公路交通协议,这种协议可以确保车辆的安全通过。
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协议组成的。
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成了事实上的标准。
2.2    TCP/IP分层结构
网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。一个协议族,比如TCP/IP,是一组不同层次上的多个协议的组合。TCP/IP通常被认为是一个四层协议系统,应用层,运输层,网络层,链路层。下面简单介绍各层的主要功能和主要协议,它们的工作关系如图2-1所示。
1)链路层,有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其它任何传输媒介)的物理接口细节。
2)网络层,有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括IP协议,ICMP协议,以及IGMP协议。
3)运输层主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个互不相同的协议:TCP(传输控制协议)和UDP(用户数据报协议)。
TCP为两台主机提供可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于运输层高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。而另一方面,UDP则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能达到另一端。任何必须的可靠性必须由应用层来负责。
4)应用层负责处理特定的应用程序细节。几乎各种不同的TCP/IP实现都会提供下面这些通用的应用程序:
Telnet 远程登陆;FTP 文件传输协议;SMTP简单邮件传送协议;SNMP简单网络管理协议。
 

推荐资料