计算机网络自顶向下的方法 第二章 应用层 2.1应用层协议原理

应用层时网络应用程序以及它们的应用层协议留存的地方

应用层协议分布在多个端系统上,而一个端系统中的应用程序使用协议与另一个端系统中的应用程序交换信息分组。我们把这种位于应用层的信息分组称为报文。

2.1应用层协议原理

研发网络应用程序的核心是写出能够运行在不同的端系统和通过网络彼此通信的程序

2.1.1网络应用程序体系结构

客户--服务器体系结构中有一个总是打开的主机称为服务器,它服务于来自许多其他称为客户的主机的请求。客户相互之间不直接通信。该服务器具有固定的,周知的地址,该地址称为IP地址。

2.1.2 进程通信

1. 客户和服务器进程

网络 应用程序由成对的进程组成,这些进程通过网络相互发送报文。在每对通信进程中,我们通常将这两个进程之一标识为客户,而另一个进程标识为服务器。

在一对进程之间的通信会话场景中,发起通信的进程被标识为客户,在会话开始时等待联系的进程是服务器。

2.进程与计算机网络之间的接口

进程通过一个称为套接字的软件接口向网络发送报文和从网络接受报文。套接字也称为应用程序和网络之间的应用程序编程接口。

应用程序开发者对于运输层的控制仅限于:选择运输层协议,设定几个运输层参数

3.进程寻址

为了向特定目的地发送邮政邮件,目的地需要有一个地址。为了标识接收进程,需要定义两种信息:主机的地址,在目的主机中指定接收进程的标识符。在因特网中,主机由其IP地址标识。目的地端口号用于标识接收主机上的接收进程。

2.1.3 可供应用程序使用的运输服务

1.可靠数据传输

应用程序的一端发送的数据正确,完全地交付给该应用应用程序的另外一端。如果一个协议提供了这样的确保数据交付服务,就认为提供了可靠数据传输。

2.吞吐量

具有吞吐量要求的应用程序被称为带宽敏感应用。弹性应用能够根据当时可用的带宽或多或少地利用可供使用的吞吐量。

3.定时

运输层协议也能提供定时保证。如同具有吞吐量保证那样,定时保证能够以多种形式实现。一个保证的例子如:发送方注入进套接字中的每个比特到达接收方的套接字不迟于100ms。

4.安全性

运输协议能够为应用程序提供一种或者多种安全性服务

2.1.4 因特网提供的运输服务

因特网为应用程序程序提供两个运输层协议,即UDP和TCP。当创作一个新的应用时,首相要做出的决定是选择UDP还是TCP

1.TCP服务

TCP服务模型包括面向连接服务和可靠数据传输服务。当某个应用程序调用TCP作为其运输协议的时候,该应用程序就能获得来自TCP的这两种服务。

  • 面向连接的服务:在应用层数据报文开始流动之前,TCP让客户和服务器互相交换运输层控制信息。这个所谓的握手过程提醒客户和服务器,让它们为大量分组的到来做好准备。在握手阶段后,一个TCP连接就在两个进程的套接字之间建立了。这条连接时全双工的,即连接双方的进程可以在此连接上同时进行报文收发。
  • 可靠的数据传送服务:通信进程能够依靠TCP,无差错,按适当顺序交付所有发送的数据。当应用程序的一端将字节流传进套接字时,它能够依靠TCP将相同的字节流交付给接收方的套接字。而没有字节的丢失和冗余。

2.UDP服务

UDP是一种不提供不必要服务的轻量级运输协议,它仅提供最小服务。UDP时无连接的,因此在两个进程通信前没有握手过程。UDP协议提供一种不可靠的数据传送服务。

2.1.5 应用层协议

应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递报文。特别是应用层协议定义了:

  • 交换的报文类型,例如请求报文和响应报文。
  • 各种报文类型的语法,如报文中的各个字段及这些字段时如何描述的。
  • 字段的语义,即这些字段中的信息的含义。
  • 确定一个进程何时以及如何发送报文,对报文进程相应的规则。
posted @ 2021-12-07 21:21  Lily-Shawn  阅读(84)  评论(0)    收藏  举报