第二章 应用层
Tags: 计算机网络
2.1 应用层协议原理
- 应用层协议只能运行在端系统,这种限制促进了应用程序的开发,即不用考虑底层网络核心的实现。
2.1.1 网络应用程序体系结构
两种主流 应用程序体系结构:
客户-服务器体系结构(CS)
- 有一个总是打开的主机称为服务器,它服务于来自许多其他称为客户的主机的请求。
- 客户之间不直接通信。
- 该服务器具有固定的 IP 地址。
P2P 体系结构
- 应用程序在间断的主机对之间进行直接通信,这些主机对被称为对等方。
2.1.2 进程通信
客户和服务器进程
- 网络应用程序有成对的进程组成,在两个不同端系统上的 进程,通过跨越计算机网络交换 报文(message)。
- 通常将两个进程之一标识为 客户,另一个标识为 服务器。
- 在给定的一对进程之间的通信会话场景中,发起通信的进程被标识为 客户,在会话开始时等待联系的进程是 服务器。
进程与计算机网络之间的接口
- 进程必须通过一个称为 套接字(socket) 的软件接口向网络发送和接收报文。
- 在发送端的应用程序将报文推进该套接字,在套接字另一侧,运输层协议负责使该报文进入接收进程的套接字。
- 套接字也被称为应用程序和网络之间的应用程序编程接口。
- 开发者可以控制套接字在应用层端的一切,但是对该套接字的运输层端几乎没有控制权,除了:1. 选择运输层协议(如果可供选择的话);2. 也许能设定几个运输层参数,如最大缓存和最大报文段长度。
进程寻址
- 一台主机的进程向另一台主机的进程发送分组,接收进程需要一个地址。为了标识该进程,需要定义两种信息:
-
- 主机的地址:用 IP地址 标识;
-
- 定义在目标主机中的接收进程的标识符:用目的地 端口号 标识。
2.1.3 可供应用程序使用的运输服务
- 根据运输层协议为应用层程序提供的服务,按下列要求进行分类:
- 可靠数据传输
是否容忍数据丢失 - 吞吐量
应用程序是否对吞吐量有特定的要求,若是,则称为带宽敏感的应用,否则称为弹性应用。 - 定时
对时延的要求 - 安全性
- 可靠数据传输
2.1.4 因特网提供的运输服务
TCP 服务
- TCP 服务模型包括:
- 面向连接的服务:在应用层数据报文开始流动之前,TCP 让客户和服务器互相交换运输层控制信息,即握手阶段。之后,一条 全双工 的 TCP 连接 就在两个进程的套接字之间建立了。应用程序结束发送报文时,则拆除该连接。
- 可靠的数据传送服务:通信进程能够依靠 TCP,无差错、按适当顺序交付所有发送的数据。
- TCP 协议还具有 拥塞控制机制:
- TCP 服务模型包括: