应用层(一)

来源:互联网 发布:淘宝五个金冠 编辑:程序博客网 时间:2024/05/18 16:39

应用层协议原理

网络应用程序体系结构

在编写软件之前,我们需要对应用程序有一个宽泛的体系结构计划。对于目前来说,一般会使用一种主流的体系结构:客户-服务器体系结构或对等(P2P)体系结构。
客户-服务器体系结构中,有一个总是打开的主机称为服务器,它有一个固定的,周知的地址,称为IP地址,它的功能是服务器于来自许多其他称为客户的主机的请求。值得注意的是,在客户-服务器体系结构中,客户之间无法直接通信。
P2P体系结构中,应用程序的通信对数据中心的服务器的依赖很小(或者没有依赖),应用程序可以直接进行通信,这些主机被称为对等方。这个体系的特性之一就是具有自扩展性。例如在一个文件共享的应用中,虽然每个对等方请求文件会产生工作量,但每个对等方向其他对等方发送文件为整个系统增加了服务能力。
但是,某些应用具有混合的体系结构,他们结合了两种体系结构中的一些元素。例如很多的即时通讯的软件,服务器被用于跟踪用户的IP地址,但是用户和用户之间的通信可以直接进行。

进程通信

在构建应用程序之前,我们需要对应用程序之间是如何通信的有一定的了解。
其实进行通信的是进程,而不是程序。
一个进程可以被认为是运行在端系统中的一个程序,当进程运行在相同的端系统时,它们使用进程间通信机制相互通信。
而对于不同端系统上的进程,通过跨越计算机网络交换报文而相互通信。发送进程生成并向网络中发送报文;接收进程接受这些报文并响应。

客户和服务器进程
在网络应用程序中,进程总是成对的出。例如在web应用程序中,浏览器进程与一台web服务器进程交换报文;在一个P2P的文件共享系统中,两个对等方进程相互交换文件。对于每队通信进程,通常将其中之一标识为客户,而另一个进程标识为服务器(注意:这里的客户和服务器不同于应用程序体系结构中的客户和服务器)

进程与计算机网络之间的接口
多数应用程序是由通信进程对组成的,每对中的两个进程互相发送报文。从一个进程向另一个进程发送的报文是通过一个叫做套接字(socket)的接口进行的。我们可以考虑这样的类比:进程就像一座房子,套接字就是它的门。当一个进程想向位于另外一台主机上的进程发送报文时,它把报文推出该门(套接字)。当报文到达接受进程的门口时,通过接受进程的门(套接字)传递进去。
这里写图片描述
如图所示,套接字是同一台主机内应用层与运输层之间的接口。

进程寻址
在一台主机上的进程为了向另一台主机上运行的进程发送分组,接受进程需要有一个地址。为了标识一个进程,需要定义两种信息:1.主机的地址;2.主机中接收进程的标志符。
主机的由IP地址标识,大家应该对这个很熟悉。
接收进程的地址由端口号标识。

0 0
原创粉丝点击