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