计算机网络-应用层
应用层几乎总是在端系统用软件实现,应用层协议分布在多个端系统上,而一个端系统中的应用程序使用协议与另一个端系统中的应用程序交换信息分组,这种位于应用层的信息称为报文。
2.1应用层协议原理
2.1.1网络应用程序体系结构
客户-服务器体系:
- 有一个一直打开的主机为服务器,服务来自称为客户主机的请求
- 客户与客户之间不直接通讯。
- 为服务众多客户,配备大量主机的数据中心常被用于创建强大的虚拟服务器。
P2P体系结构:
- 应用程序在间接连接的主机对之间使用直接通信。这些主机对称为对等方。
- 具有自扩展性:每个对等方通过向其他对等方分发文件也为系统增加服务能力。
2.1.2进程通信
1.客户和服务器进程
- 网络应用程序由成成对的进程组成,通过网络相互发送报文。
发起通信的进程被标记为客户,会话开始时等待联系的进程是服务器。
2.进程与计算机网络之间的接口
- 进程通过一个称为套接字(网络程序编程接口,API)的软件接口向网络发送(接收)报文。
- 应用层开发者可以控制套接字在应用程端的一切,但对该套接字的运输层端几乎没有控制权。控制仅限于:选择运输层协议,也许能设定几个运输层参数(最大缓存,最大报文长度)。
3.进程寻址
- 为了向另一台主机发送分组,接受进程需要有一个地址
- 为了标识该接收进程,需定义:(1)主机的地址,用IP地址标识 (2)在目的主机中指定接受进程的标识符(接收套接字),用目的地端口号实现
2.1.3可供应用程序使用的运输服务
套接字是应用程序进程和运输层协议之间的接口,运输层能为调用它的应用程序提供的服务分类:可靠数据传输,吞吐量,定时和安全性。
1.可靠数据传输
- 如电子邮件,web文档传输等应用需要数据确保支付
- 音频,视频等容忍丢失的应用可以不用运输层提供这项服务。
2.吞吐量
- 发送进程向接受进程交付比特的速率
- 具有吞吐量要求的应用程序称为带宽敏感的应用
- 弹性应用对吞吐量无要求
3.定时
4.安全性
2.1.4因特网提供的运输服务
1.TCP服务
- 面向连接的服务:在应用层数据报文流动之前,TCP让客户和服务器互相交互运输层控制信息。在握手阶段之后,一个TCP连接建立。TCP连接是双全工的。结束报文发送时,必须拆除该连接。
- 可靠的数据传送服务
TCP还具有拥塞控制机制。
2.UDP服务
不提供不必要服务的轻量级运输协议。提供不可靠数据传输,没有拥塞控制协议。
3.因特网运输协议所不提供的服务:吞吐量和定时保证