浅谈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模式下,复杂性都在服务器端,客户端浏览器只负责用户界面,浏