当前位置:文档之家› 应用层协议在网络游戏技术中的应用

应用层协议在网络游戏技术中的应用

浅谈TCP/IP应用层协议在网络游戏技术中的应用
无论在OSI模型还是TCP/IP模型中,应用层(第七层)都是最高层。该层为用于通信 的应用程
序和用于消息传输的底层网络提供接口。应用层协议用于在源主机和目的主机上运 行的程序之间
进行数据交换。目前已有很多种应用层协议,而且人们还在不断开发新的协议。 下面我们来谈谈
TCP/IP应用层协议在网络游戏技术中的应用。
最广为人知的TCP/IP应用层协议是那些用于交换用户信息的协议。这些协议详细规定 了许多
常见In ternet通信功能的必备格式和控制信息。常见 TCP/IP应用层协议包括:
域名服务协议(DNS),用于将In ternet域名解析为IP地址;
超文本传输协议(HTTP),用于传输构成万维网网页的文件; 简单邮件传输协议(SMTP),用于
传输邮件及其附件信息;
Telnet协议(一种终端模拟协议),提供对服务器和网络设备的远程访问;
文件传输协议(FTP),用于系统间的文件交互传输。
当前的网络游戏工作模式主要包括 C/S模式和B/S模式。下面就来讲下这两种模式并详 细讲
述B/S模式的工作原理与应用层的联系。
C/S模式及其工作原理与应用层的联系
C/S结构,即Client/Server(客户机/服务器)结构,我们知道应用层为用于通信的应用 程序
和用于消息传输的底层网络提供接口,而 C/S结构体系表示两个程序间的关系,一个是
提出请求的应用程序,另一个是服务程序,这乃是应用层作用机制的典型体现。从概念上讲, C/S
模式是一种特殊的协作处理模式,整个应用程序分布于客户机和服务器上,两者都参与 一个应用
程序的处理。C/S模式把系统分成两个基本组成部分:
客户机(Client):面向最终用户,实现各自业务处理、提供人机交互界面;
服务器(Server):负责有效地管理系统资源,并提供某项服务功能。
C/S模型方案中客户应用程序向服务器程序请求服务。这种方式隐含了在建立客户机 /
服务器间通讯时的非对称性。这一套惯例包含了一套协议。它必须在通讯的两头都被实现。 根据
不同的实际情况,协议可能是对称的或是非对称的。在对称的协议中, 每一方都有可能扮演主从
角色;在非对称协议中,一方被不可改变地认为是主机,而另一方 则是从机。一个对称协议的例
子是In ternet中用于终端仿真的TELNET。而非对称协议的例 子是In ternet中的FTP。无论具
体的协议是对称的或是非对称的,当服务被提供时必然存在 “客户进程”和“服务进程”。
一个服务程序通常在一个众所周知的地址监听对服务的请求,也就是说,服务进程一直 处于
休眠状态,直到一个客户对这个服务的地址提出了连接请求。在这个时刻,服务程序被
“惊醒”并且为客户提供服务一对客户的请求作出适当的反应。虽然基于连接的服务是设计 客户机/
服务器应用程序时的标准,但有些服务也是可以通过数据报套接口提供的。
B/S模式及工作原理与应用层的联系

B/S(浏览器/服务器)模式是一种以 Web技术为基础的新型的系统体系结构。B/S系统采 取请
求/响应模式,首先由浏览器发起请求,以 URI(统一资源定位符)的方式向服务器申请资 源。如果
是静态资源,比如一个纯 HTML格式的网页,web服务器直接向浏览器返回该网页 内容;如果是动态资
源,web服务器会预先对它做出相应处理,同样返回 HTML格式的内容
浏览器对HTML内容进行语法解释并显示,这样就完成了一次过程。
浏览器和服务器之间通过HTTP协议进行通信,HTTP协议是无状态的,浏览器每次向 服务器请求
资源时都会主动建立连接,服务器返回结果后双方即断开连接,所以对于服务器 来说,在处理浏览器
请求时,根本不知上一次请求处理状况,这和传统的 C/S模式有很大区
别。在这个过程中,作为客户端的浏览器所做的工作非常有限,只要负责对返回的 HTML内
容进行处理,我们知道HTML是一个标准的标注语言,任何浏览器都能阅读和显示。在这个 意义上说,
B/S系统的客户端是通用的,当我们修改应用系统时,不需对客户端进行更新, 而且许多操作系统都
自带了浏览器,意味着我们可以不用去关心客户端。
所以B/S系统几乎所有的复杂性都在服务器端,在一个典型的 B/S系统中,绝大多数的
网页都是动态的,服务器要经过相应的处理并把它转化为 HTML格式的内容,才能被浏览器
识别出来,这个处理过程随着服务器不同而有很大差别。当前主流的服务器动态资源处理技 术基本有
两种:

1 •解释型
每次客户请求资源时,服务器解释执行网页中的脚本代码,结合网页中的 HTML标记
返回给用户,ASP和PHP等都属于这种类型。
2 •编译型

当客户第一次申请时,服务器先编译网页,然后执行代码,后续的客户请求就直接执行 编译后
的代码,JSP就是这种类型的代表。
从开发效率看,解释型的方式要优于编译型的;但性能上,后者要远远超过前者,所以 两者都
有很大的市场,在实践中都被普遍使用。
HTTP工作机制:

在B/S架构中,浏览器和服务器之间的应用层通信协议是 HTTP(超文本传输协议
),
所以理解HTTP协议的特点是B/S系统设计的基础。HTTP是WWW 联盟制定的标准,用 于分布式协作超
媒体信息系统的快速使用协议,是通用的,无状态的,面向对象的协议,通 过扩展命令(或方法),
可用于类似的任务,如名字服务,分布式面向对象系统。
HTTP协议在网络游戏中的作用主要表现在以下几个方面:

1. 客户/服务器工作模式
在HTTP协议中,作为客户的 WWW浏览器与作为提供 WWW网页数据服务的服务器 之间传递请求,
应答数据。一个服务器可接受和处理世界范围内多个客户浏览器的同时访问, 一个浏览器同样也可访
问世界范围内的 WWW服务器。
2. 简单快速
作为在客户与服务器之间传输超文本数据的协议, HTTP只规定了少量的用以沟通信息 的请求报
文、应答报文,这比因特网上其它的信息服务系统如 FTP,Telnet等都要简单。在 HTTP中定义的几
种请求方法中,要求 WWW 服务器必须实现的有GET和HEAD,而其它 是可选的。在浏览器与服务器建
立连接时,浏览器只需传递必须的请求,应答方法。
3. 传输数据灵活
虽然被称为超文本传输协议,HTTP实际上允许传输任意类型的数据对象,这功归于请 求信息与
响应信息中都具有的消息首部(message-header)。信息的内容就是关于被传递的 数据的信息。
4. 易于扩充
作为一个公开发布使用协议,HTTP具有良好的,可扩充性,如前述,它传输的已不仅仅 是超文
本数据。在此基础上针对应用开发者的研究、开发要求,很容易地增加请求方法和响 应状态,运行于
用户定制的系统之中。经过扩充的服务器,能够响应原有标准的浏览器,也 能够区别出用户自己开发
的专用客户程序,做出相应的响应处理。
5. 无状态性
在HTTP 1.0及其以前的版本中,每一次请求,应答的内容、状态及完成情况不作为历 史数据保
留到下一阶段使用。有关客户机的状态信息、用户消息也不保留在服务器中。服务 器的响应状态,运
作情况也都不反映在客户本地计算机中。这样做的优点是 HTTP服务器实
现起来比较简单、程序规模小,大大加快了服务器响应速度,对于早期 WWW注重于信息发
布的情况是比较合适的。
6. 无连接性
HTTP协议建立在可靠面向连接的 TCP报文传输基础上,无连接指的是在 HTTP 1.0中, 客户与服
务器的每次TCP连接只处理一个请求:客户发起连接后传递一个请求,服务器解析该 请求、返回应
答数据后立即断开连接。这种方式的优点同样也是对 HTTP服务器一方来说实
现起来简单,避免服务器由于保持和维护过多的 TCP连接而浪费服务器资源。
HTTP1.1对有些方面进行了改进,但总的来说,这些特性并没有多大改变。 可以看到,B/S和传
统的C/S方式有很大差别。在B/S模式下,复杂性都在服务器端, 客户端浏览器只负责用户界面,浏
览器的本地处理能力和资源访问能力是非常有限的。而在
C/S方式下,作为客户端的PC机除了界面显示,还具有很强的本地处理能力,并可以方便 地获取本
地及服务器上的各种资源。相对于 C/S方式,B/S系统的客户端处理能力太有限了,
再加上HTTP协议的无状态性质,所以B/S系统对设计开发者提出了更高的要求。
当然,现在各种网络游戏层出不强,所以网络游戏技术也是飞速发展。不过不管如何的 发展,
网络游戏中的信息交流,数据传输等都是至关重要的技术。所以关于应用层协议的应 用都是必不可少
的。我们应该加快应用层协议的开发以使网络游戏做的更加完美。

相关主题