应用程序体系结构
应用程序体系结构由程序研发者设计,规定了如何在各种端系统上组织应用程序。
客户-服务体系结构
在客户-服务器体系结构中,服务器是一台总是打开的主机,具有固定的IP地址,用于服务来自称为客户的主机的请求,当服务器接收到来自客户对某对象的请求时,他向该客户发送所请求的对象作为响应;而客户之间不直接通信。
P2P体系结构
在对等(P2P)体系结构中,应用程序在间断连接的主机对之间用直接通信,这些主机对被称为对等方,这些对等方通信不必经过专门的服务器,因此对位于数据中心的专有服务器有最小的(或没有)依赖,一个进程既是客户也是服务器,该体系具有较强的自扩展性。
进程通信
进行通信的实际上是进程,即运行在端系统中的一个程序,两个不同端系统上的进程通过跨越计算机网络交换报文而相互通信。
进程与计算机之间的接口
进程间通过称为套接字的软件接口向网络发送报文和从网络接收报文,套接字是同一台主机内应用层与运输层之间的接口,也称为应用程序和网络之间的应用程序编程接口(API)。
进程寻址
目标进程和接收进程都需要一个地址,标识进程通过定义IP地址和端口号进行标识,IP地址用于唯一标识主机,端口号用于标识运行在主机上的进程。
应用程序使用的运输服务
根据服务要求分类
应用程序对于运输服务的要求主要包含:
- 可靠性传输:确保由应用程序的一端发送的数据正确、完全地交付给应用程序的另一端。不提供可靠数据传输的应用层协议一般能被容忍丢失的应用所接受,如多媒体应用。
- 吞吐量:可用吞吐量是发送进程能够向接收进程交付比特的速率,具有吞吐量要求的应用程序被称为宽带敏感的应用,如多媒体应用;能够根据当时可用带宽利用可用吞吐量的应用称为弹性应用,如电子邮件、文件传输、Web传送。
- 定时:一些应用为了有效性而要求数据交付有严格的时间限制,如交互式实时应用程序,包括网络电话、虚拟环境、电话会议、多方游戏。
- 安全性:主要包括机密性、数据完整性、端点鉴别。
TCP服务
TCP服务模型包括以下服务:
- 面向连接服务:在应用层数据报开始流动前,TCP会让客户和服务器互相交换运输层控制信息,即握手阶段,之后一个全双工的TCP连接就在两个进程套接字之间建立了,当应用程序结束发送报文时,必须拆除该连接。
- 可靠的数据传输服务:通信协议能够依靠TCP实现无差错、按适当顺序交付所有发送的数据。
- 拥塞控制机制,当双方网络出现拥塞时,TCP的拥塞控制机制能够抑制发送进程。
UDP服务
UDP是一种仅提供最小服务的轻量级运输协议,无连接、提供不可靠数据传输服务、没有拥塞控制机制。
SSL
无论是TCP还是UDP都没有提供加密机制,安全套接字层(SSL) 能够为TCP提供关键的进程到进程的安全性服务,包括加密、数据完整性、端点鉴别。
SSL不是运输层协议,而是在应用层实现的对TCP的加强。
SSL有自己的套接字API,当一个应用使用SSL时,发送进程向SSL套接字传递明文数据,在发送主机中的SSL则加密该数据并将密文传递给TCP套接字,由因特网传输加密数据,接收进程中的TCP套接字将密文传递给接收主机中的SSL套接字,由其进行解密,最后SSL通过SSL套接字将明文传递给接收进程。