基于ICMP模拟网络控制软件开发——接收处理模块
以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
资料介绍:
1 引言
1.1 课题背景
随着计算机的发展,网络越来越重要,而网络最重要的作用就是为进行不同计算机之间的通信服务的。网络游戏技术是一种新兴的网络技术,电脑游戏行业经过二十年的发展,已经成为与影视、音乐等并驾齐驱的全球最重要的娱乐产业之一,其年销售额超过好莱坞的全年收入。互联网的出现为电脑游戏行业发展注入了新的活力,凭借信息双向交流、速度快、不受空间限制等优势,让真人参与游戏,提高了游戏的互动性、仿真性和竞技性,使玩家在虚拟世界里可以发挥现实世界无法展现的潜能,改变了单机版游戏固定、呆板、与机器对话的状况。网络游戏的这些优势不仅使其在电脑游戏行业中异军突起并在某种程度上取代了单机版游戏,而且成为网络业三大(网上金融、网上教育和网络游戏)赢利且利润优厚的领域之一。
1.2 国内外研究现状
随着计算机技术和网络技术的发展,以多媒体通信为主体的信息网络己成为世界关注的热点。Internet的巨大成功,使得通信协议成为未来信息网络的支柱技术之一。现在TCP/IP协议体系已成为全球通用的基本协议,它作为整个网络通信协议的基础平台而存在。现在个人或团体,只要有需要就都可以在TCP/IP协议族之上进行自己协议的设计和使用。这方面的研究已很成熟,并已形成了相应的工程理论。
【买计算机毕业论文就到计算机毕业论文网】 内容来自think58
[资料来源:THINK58.com]
1.3 本课题研究的意义
网络游戏必须进行不同的计算机之间(硬件、操作系统等)的通信,而这种信息交流又需要有一定的规则才能实施,即网络通信协议,如今一些起到平台作用的通信协议已趋于完善,如TCP、UDP和ICMP等,他们都以IP数据包为载体(IP头+TCP/UDP/ICMP头+数据)。网络通信成了时代进步最不可或缺的条件,而协议又是实现网络通信所必需的。
1.4 本课题的研究方法
使用VC 6.0,建立一个工程来实现ICMP数据包的发送和接收,用ICMP的数据部分作为本协议实现的载体,即用IP头+ICMP头+数据(自己设计的协议)样的数据包实现2台机器之间的网络通信而达到个人协议的实现。具体的网络通信编程使用的是raw socket即原始套接字编程。
2 协议工程理论
在对协议的设计进行详细探讨之前,我们有必要先对协议工程方法有一定的了解。协议工程理论对于我们的工程的设计,提供了完善而丰富的方法理论指导。
2.1 什么是协议
我们要讨论的协议是用于计算机通信、电信等领域的通信协议(Communication Protocol),通信协议的定义如下:
在计算机网络中,为了使计算机或终端之间能够正确地传递信息,必须有一套关于信息传输顺序、信息格式和信息内容等的约定,这一整套约定称为通信协议。
copyright think58
[资料来源:THINK58.com]
计算机或终端之间的通信采用分层结构,比如,国际标准组织(ISO)定义的开放系统参考模型(OSI-RM)在功能上把计算机网络划分成七层,即物理层(最低层)、数据链路层、网络层、传输层、会话层、表示层和应用层。通信只能发生在对等层之间,而各层采用的通信协议是各不相同的,即使是在同一层,不同的功能要求也可能采用不同的通信协议。如目前应用很广的TCP/IP协议栈(协议族)共分四层,即数据链路层、网络层、传输层和应用层。每层包含通信协议各不相同,比如:网络层包括IP(网际协议)、IGMP(网际组管理协议)、ICMP(网际控制报文协议)等;传输层包括TCP(传输控制协议)、UDP(用户数据报协议)、等;应用层包括TELNET(远程通信网络协议)、FTP(文件传输协议)、SMTP(简单邮件传送协议)、DNS(域名系统)、SNMP(简单网络管理协议)、DHCP(动态主机配置协议)等。
2.2 协议开发过程
协议开发过程是开发协议的过程。开发协议有两种含义,一个是为了满足新的通信要求,研究开发新的协议,制定协议标准;另一个则是在一个特定应用环境下,实现某个已经成熟的协议。所谓成熟的协议是指已经成为标准文本的协议,如TCP/IP协议等。也可以是即将成为标准文本的协议,如3GPP制定的一系列关于第三代移动通信的协议文本等。
copyright think58 [来源:http://think58.com]
对于第一种含义(开发新的协议),开发协议的目标是形成新的协议文本,重点是说明本协议应该具有什么功能。其协议开发过程包括:
1) 协议环境分析,包括用户要求、通道性质、工作模式等。
2) 协议功能分析,根据环境分析结果明确本协议应具有的功能。
3) 协议元素设计,设计服务原语、PDU格式等。
4) 形成协议文本,用自然语言描述协议结构及协议元素之间的关系。
5) 协议验证,在开发环境下仿真运行协议软件,验证协议的正确性。
对于第二种含义(实现具体协议),开发协议的目标是生成一个软件系统,该软件系统可以实现具体协议的全部功能或一个功能子集,重点是说明如何实现协议功能。其协议开发过程包括:
1) 协议分析,包括协议环境分析和协议功能分析
2) 协议设计,包括协议机制设计、协议元素设计及协议组织设计。
3) 协议描述,用一种形式化语言来描述设计结果,包括软件系统结构、模块划分、系统行为实现细节等。
4) 协议验证,在开发环境下仿真运行协议软件,验证协议的正确性。
5) 协议实现,用某种编程语言实现协议软件系统(自动生成代码或手工编码)。
6) 协议测试,在目标环境下测试协议软件系统。 [来源:http://think58.com]
7) 协议维护,在协议软件的使用过程中不断完善系统。 本文来自think58
实现具体协议的过程基本上涵盖了开发新的协议的过程,只有两个过程的出发点和侧重点不同的。从应用角度来看,实现具体协议的需求大于开发新的协议的需求,所以本文将重点介绍实现具体协议的过程。
在本文中由于讨论所限制,整个协议的开发过程仅设计到第一种含义,即新协议的开发和设计的讨论,并不会涉及协议实现部分的内容。
2.3 协议工程
协议工程就是用工程的方法开发协议。所谓用工程的方法就是在开发协议的各个阶段均采用工具,而且这些工具在技术上前后衔接,被集成在同一个开发环境中。也就是说,协议的开发可以在同一个开发环境中完成。在协议开发过程中,协议可以有不同的表示形式,这些表示形式代表了不同开发阶段的结果。协议的表示形式有:
1) 非形式描述文本(Informal Specification)
用自然语言和图表表述的协议,易读易懂,但不严密,有多义性。非形式描述文本是协议分析和协议设计完成后的结果。
2) 形式描述文本(Formal Specification)
用FDL描述的协议,严密,无二义性,可符号执行,可转换成程序设计语言程序。形式描述文本是协议描述完成后的结果。对于已经用形式化语言描述的协议文本,在具体机器上实现时,仍需要经过协议分析和协议设计阶段,并且需要重新用形式化语言对其进行描述。这是因为标准化的协议文本重点的是协议应该具有的功能,而在实现协议时,重点描述的是协议实际具有的功能。特别是在只需要实现协议的一个功能子集时,更需要对协议进行重新描述。 think58好,好think58
[资料来源:http://www.THINK58.com]
3) 与机器无关的源程序代码(Machine-independent Source Code)
这是由形式描述文本翻译过来的程序设计语言(Pascal, C等)程序。协议本身有一定的抽象性,即协议没有指明这个协议在某个机器上怎样实现,正因为协议本身是抽象的。它才适合用FDL来描述,这样,形式描述文本翻译后的程序设计语言程序就是与机器无关的代码了。
4) 实现代码(Implementation Code)
这是协议实现后的最终代码,一般与机器无关的源程序代码只占最终实现代码的一部分
协议在一种机器上的实现还包括大量协议文本没有描述的程序,例如缓冲器分配管理,系统输入/输出操作等,这部分程序称作与机器相关代码。
协议工程中采用的工具就是用来描述协议文本,并实现不同表示形式的文本之间的自动转换。
从学术的角度来讲,协议工程是一门比较新的学科。协议工程研究的内容包括:
1) 协议设计技术,主要研究协议环境分析方法、协议设计方法及协议综合技术。
2) 协议描述技术,主要研究协议模型和形式化描述方法。
3) 协议验证技术,主要研究协议正确性验证方法和协议性能分析方法。
4) 协议实现技术,主要研究协议代码自动生成技术。
5) 协议测试技术,主要研究协议一致性测试方法。 copyright think58 [来源:http://think58.com]
从应用的角度来讲,协议工程协议开发者(实现具体协议)提供一整套协议开发工具,使得协议开发者可以用工程的方法来开发针对具体实现环境的具体协议。
以下章节也将放 应用这些工具开发出的结果及其意义和作用上,对开发的过程的讨论将较少涉及。
3 NGCP协议的分析与设计
因以网络游戏为假想对象,所以协议我称为Network Game Control Protocol,本论文中一律简称NGCP。协议设计的第一步就是需要对协议进行分析。协议分析包括两大部分,协议环境分析和协议功能分析。不管是设计开发一个新的协议,还是设计实现一个具体协议,都需要从协议的环境分析入手,只有了解了协议的环境,才能明确协议的功能,协议设计才能进行。
3.1 NGCP协议分析
3.1.1 协议描述
NGCP(Network Game Control Protocol)协议是一个简单的网络游戏协议,用语实现两台或多台主机上运行的游戏之间的通讯,使得玩家可以像在单机上进行游戏一样同远程玩家一起游戏。NGCP协议负责接游戏端与服务器端之间的信息的发送、接收、处理。
协议使用ICMP作为底层传输协议,采用不定长度数据包。协议功能包括了会话层、表示层和应用层的部分功能。
3.1.2 协议环境分析
1) 用户要求 copyright think58 [资料来源:http://think58.com]
连接管理:协议提供有连接的服务。有许底层采用无连接的ICMP协议,因此本协议必须提供有连接服务以保证通讯的正常运行。
组播/广播:有。因网络游戏必然要涉及到一点对多点的通讯,因此组播和广播是必须的。
服务认可方式:完全认可。为了保证通讯的可靠性,协议采用4条服务原语request(请求),indication(指示),response(响应),confirm(证实)进行完全认可。
通讯方式:全双工,同步通讯方式。
数据形式:包数据。协议没有很强的实时性要求,因此不是用流数据。
数据长度:不定长,根据所要进行的操作而定。
服务质量:数据要求无校验错,无丢失、无重复、顺序正确。
QoS要求:要求可靠性,暂不对实时性做要求。而由于时间关系,本协议也没有对安全性作进一步的探讨。
目标识别:IP地址,断口号,用户ID
其他要求:暂无测试、监视、统计和记账类要求
2) 通道性质
通道形成方式:通过ICMP协议形成无连接通道,连接管理问题由本协议进行处理
队列性质:n-1层可视平均长度非常短的队列通道
RTT:通常依靠经验值
数据可靠性:数据在通道中可能有出错的可能,如丢失、错误
通道可靠性:通道不可靠 内容来自think58
[来源:http://www.think58.com]
MTU:通道以单字节方式传送
工作方式:通道支持异步全双工
3) 工作模式
点到点的工作模式
4) 中转和路由
协议采取自动生成拓扑和选择路由的方式。
3.1.3 协议功能分析
1) 连接管理
N层协议实体(本协议)负责用户之间连接的建立、维护和释放 主要使用的连接管理手段有:合法性检查,连接目标名与地址的翻译
2) 通讯方式管理
发送方以同步方式发送数据报文和接受确认报文,
接收方以同步方式接收数据报文和发送确认报文。
3) 数据发送/接收管理
协议对数局报文进行封装(发送方)和解封装(接收方)
协议对PCI(协议控制信息)直接进行处理
由于报文长度都不大,协议无须对SDU进行分段和装配
4) 数据安全和可靠性管理
在发送端对PDU加校验和,在接收方进行校验
5) 发送接收和控制
对数据报文进行顺序控制(序号)和重发控制(定时器、重发次数)
6) 其他功能
copyright think58
[资料来源:www.THINK58.com]