应用层协议原理
基本概念:
客户和服务器:在给定一对进程之间的同心会话场景中,发起通信(即在该会话开始时发起与其他金成功的联系)的进程被标识为客户,在会话开始时等待联系的进程是服务器。比如Web中,Web浏览器是客户,Web服务器是服务器。P2P文件共享中,对等方A请求对等方B发送一个特定文件时,A是客户,B是服务器
进程: 简单的可以理解为正在运行的程序。
套接字(socket):同一台主机内应用层与运输层之间的接口。是进程向网络发送报文或接收报文的可编程接口,因此也称为应用程序和网络之间的应用程序编程接口(API)
进程寻址 需要主机地址(IP地址,用来标识通信的主机地址)和定义在目的主机中的接收进程的标识符(端口号,标识通信的进程)
运输层协议为调用它的应用程序提供的服务类型:
可靠数据传输服务 运输层协议能够确保由应用程序一端发送的数据正确、完全的交付给该应用程序的另一端。如果一个服务协议不提供这种服务时,就无法确保数据完全准确的到达接收进程,这可以被容忍丢失的应用接受,如音频/视频,可以承受一定量的数据丢失。
吞吐量 运输层协议能够以某种特定的速率提供确保的可用吞吐量。具有吞吐量要求的应用程序称为带宽敏感的应用,根据情况或多或少地利用可供使用的吞吐量的应用为弹性应用。比如电子邮件、文件传输、Web传送等。
定时 运输层协议能够提供定时保证。如较低的时延,这对于网络电话和多方游戏的环境中十分重要。
安全性 运输层协议能够为应用程序提供一种或多种安全性服务。包括加密解密等。.
下图为常见应用所需要提供的服务:
因特网为应用程序提供的服务
两个运输层协议,即UDP和TCP
TCP协议 :面向连接的服务以及可靠的数据传送服务,同时TCP协议还具有拥塞控制机制 。无加密机制(可以在应用层使用 安全套接字层(SSL)加强安全)
UDP协议: 面向无连接服务 以及不可靠数据传输服务 ,同时UDP协议无拥塞控制机制 无加密机制
可以看到,TCP提供了可靠的数据传输服务,并且能够通过SSL加强来提供安全服务。但是没有提供吞吐量和定时保证服务。对于这两种服务,由于多年的工作积累,因特网已经能够提供满意的服务,但是不能提供定时或带宽保证。
应用层协议
定义了运行在不同端系统上的应用程序进程如何想和传递报文。特别是定义了:
交换的报文类型,例如请求报文和响应报文
各种报文类型的语法,如报文中的各个字段及这些字段是如何描述的
字段的语义,即这些字段中包含的信息的含义
一个进程何时以及如何发送报文,对报文进行相应的规则。
下图为一些常见应用类型的应用层协议以及支撑他们的传输层协议。