计算机网络学习第二章,应用层协议部分
应用层
协议原理
研发网络应用程序的核心是写出能够运行在不同的端系统和通过网络彼此通信的程序。
例如,在Web应用程序中,有两个互相通信的不同的程序:一个是运行在用户主机(桌面机、膝上机、PDA、蜂窝电话等)上的浏览器程序;另一个是运行在Web服务器主机上的Web服务器程序。又比如P2P文件共享系统,在参与文件共享的每台主机中都有一个程序。在这种情况下,每台主机中的这些程序可能都是类似的或相同的。
网络应用程序体系结构
各种端系统上组织该应用程序。在选择应用程序体系结构时,应用程序研发者很可能利用现代网络应用程序中所使用的两种主流体系结构之一:客户机/服务器体系结构或对等(P2P) 体系结构。
CS(客户机服务器体系结构)
在客户机服务器体系结构( client-server architecture)中,有一个总是打开的主机称为服务器,它服务于来自许多其他称为客户机的主机请求。客户机主机既可能有时打开,也可能总是打开。一个典型的例子是Web应用程序,其中总是打开的Web服务器服务于运行在客户机主机上的浏览器的请求。当Web服务器接收到来自某客户机对某对象的请求时,它向该客户机发送所请求的对象作为响应。注意到客户机/服务器体系结构中,客户机相互之间不直接通信,例如,在Web应用中两个浏览器并不直接通信。客户机/服务器体系结构的另一个特征是在客户机/服务器应用中,常会出现一台服务器主机跟不上其所有客户机请求的情况。例如,一个流行的社会联网站点如果仅有一台服务器来处理所有请求,将很快变得不堪重负为此,在客户机服务器体系结构中,常用主机群集(有时称为服务器场( server farm))创建强大的虚拟服务器。基于客户机/服务器体系结构的应用服务通常是基础设施密集的( infrastructure intensive),因为它们要求服务提供商购买、安装和维护服务器场。
P2P体系结构
在P2P体系结构(P2 P architecture)中,对总是打开的基础设施服务器有最小的(或者没有)依赖。相反,任意间断连接的主机对一一称为对等方,直接相互通信。对等方并不为服务提供商所有,而是为用户控制的桌面机和膝上机所有,大多数对等方驻留在家庭、大学和办公室。因为这种对等方通信不必通过专门的服务器,所以该体系结构被称为对等方到对等方(简称为对等)。目前,大多数流行的流量密集型应用程序都是P2P体系结构的,包括文件分发。
进程通信
在操作系统的术语中,进行通信的实际上是进程( process)而不是程序。
客户机和服务器进程
- 网络应用程序是由成对的进程组成,这些进程通过网络相互发送报文。
- 对每对通信进程,我们通常将这两个进程之一标示为客户机( client),而另一个进程标示为服务器( server)。在Web中, 浏览器是一个客户机进程,Web服务器是一个服务器进程。对于P2P文件共享,下载文件的对等方被标示为客户机,上載文件的对等方被标示为服务器。
- 在给定的一对进程之间的通信会话中,发起通信(即在该会话开始时与共他进程联系)的进程被标示为客户机,在会话开始时等待联系的进程是服务器。
进程与计算机网络之间的接口(Socket)
- 进程通过一个称为套接字( socket)的软件接口在网络上发送和接收报文
- 由于该套接字是在网络上建立网络应用程序的可编程接口,因此也将套接字称为应用程序和网络之间的应用程序编程接口( Application Programming Interface,API) 应用程序开发者可以控制套接字在应用层端的所有东西,但是对该套接字的运输层端几乎没有控制。
因特网提供的运输服务
因特网提供的运输服务至此,我们已经讨论了计算机网络能够提供的一般运输服务。下面要更为具体地考察因58 第2章特网上的应用程序支持的类型。因特网(更一般地说是TCP/P网络)上的应用使用了两个运输层协议:UDP和TCP。当你(作为ー个软件开发者)创建一个新的因特网应用时,首先要做出的决定是,选择UDP还是选择TCP。每个协议为调用它们的应用程序提供了不同的服务集合。
进程寻址
- 为了识别接收进程, 需要定义两种信息:①