6.09 应用层协议
6.09 应用层协议
一个应用层协议要包含什么
- 报文类型
- 如请求报文、应答报文
- 报文类型的语法
- 报文中的各个字段及其详细描述
- 报文语义
- 即包含在字段中的信息的含义
- 规则
- 进程何时、如何发送报文及对报文进行响应
两类协议
公共领域协议
由RFC文档定义可供大家使用
例如:HTTP,SMTP
专用协议
例如: Skype
一个应用需要什么样的传输服务?
分析应用层的服务需求,探讨不同服务需求的特性
- 数据完整性
- 一些应用 (如:实时音频)能容忍一定程度的数据丢失
- 另一些应用(如:文件传输,telnet)需要100%可靠的数据传输
- 定时
- 一些应用(如:因特网电话、多方游戏)要求低时延
- 带宽和吞吐量
- 一些应用(如:多媒体)必须要达到所需带宽
- 另一些应用(弹性应用)根据需要充分利用可供使用的带宽
- 安全
- 加密,数据完整性等
因特网运输协议提供的服务
TCP服务
- 面向连接的服务:在客户机程序和服务器程序之间必须建立连接
- 可靠的传输服务: 接收和发送进程间
- 流量控制: 发送方不会淹没接收方
- 拥塞控制: 网络出现拥塞时抑制发送进程
- 没有提供:时延保证,最小带宽保证,安全性
UDP 服务
- 不可靠数据传输
- 没有提供:建立连接,可靠性,流量控制,拥塞控制,时延和带宽保证
对于想快速处理从远程客户到服务器的事务,应该使用UDP还是TCP?为什么?
UDP。
- 使用UDP,事务可以在一次往返时间(RTT)内完成——客户端将事务请求发送到UDP套接字,服务器将响应发送回客户端UDP套接字。
- 对于TCP,至少需要两个RTT—一个用于建立TCP连接,另一个用于客户机发送请求,服务器发送回响应。
举例应用和协议
| 应用 | 应用层协议 | 下面的传输协议 |
|---|---|---|
| 电子邮件 | SMTP [RFC 2821] | TCP |
| 远程终端访问 | Telnet [RFC 854] | TCP |
| Web | HTTP [RFC 2616] | TCP |
| 文件传输 | FTP [RFC 959] | TCP |
| 流媒体 | 通常专用 (e.g. RealNetworks) | TCP or UDP |
| 因特网电话 | 通常专用 (e.g., Skype) | 典型用 UDP |
TCP安全
TCP与UDP:没有加密、网络明文传输,如用户名和口令信息等
SSL(Security Socket Layer)
- 是TLS的前身
- 提供加密的TCP连接
- 保证数据完整性
- 端点认证
- 应用使用SSL库调用TCP服务接口、lSSL提供套接字API