应用层协议原理

1 网络应用程序体系结构

客户-服务器体系结构(client-server architecture)

C/S结构和B/S结构。
有一个总是打开的主机成为服务器,他服务于来自许多其它成为客户的主机的请求。客户之间不直接通信。另外,服务器具有一个固定的,周知的地址,IP地址。应用:Web,FTP,Telnet和电子邮件。

P2P体系结构(P2P architecture)

(person to person)
对位于数据中心的专用服务器有最小的(或者没有)依赖,应用程序在间断连接的主机对之间使用直接通信,这些主机对称为对等方。应用:文件共享(BitTorrent),对等方协助下载加速器(迅雷),网络电话(Skype)和IPTV(迅雷看看和 PPStream)

混合的体系结构(C/S + P2P)

即时讯息应用,服务器跟踪用户IP地址,用户之间P2P直接发送报文

2 进程通信

进行通讯实际是进程,不是程序。不同端系统的进程间交换报文相互通信。发送进程生成并向网络发送报文;接收进程接收这些报文并可能通过将报文发送回去进行响应。

客户与服务器进程

网络应用程序由成对的进程组成,这些进程通过网络相互发送报文,一个客户浏览器进程与一台 Web 服务器进程交换报文。发起通信的进程被标识为客户,会话开始时等待联系的进程是服务器。

P2P进程

文件从一个对等方中的进程传输到另一个对等方中的进程,下载文件的对等方标识为客户,上载文件的对等方标识为服务器。

进程与计算机网络之间的接口:进程通过一个称为套接字(socket)的软件接口向网络发送报文和从网络接收报文。套接字是同一台主机内应用层与网络层之间的接口,应用程序和网络之间的API。

应用程序开发者对于运输层的控制仅限于:

  1. 选择运输层协议
  2. 设定几个运输层参数,如最大缓存和最大报文段等

进程寻址

标识进程

  • 主机的地址。IP地址。
  • 主机中接收进程的标识符。端口号。

3 可供应用程序使用传输服务

可靠数据传输

  • 由应用程序的一端发送的数据正确,完全地交付给该应用程序地另一端。
  • 有些运输层协议不提供可靠数据传输,由发送进程发送地某些数据可能不能够到达接收进程。

吞吐量

  • 运输层协议可以以某种特定地速率提供确保地可用吞吐量。
  • 带宽敏感地应用和弹性应用。

定时

安全性

4 因特网提供的运输服务

可靠数据传输、吞吐量、定时、安全性

TCP服务

  • 面向连接的服务,全双工
  • 可靠的数据传送服务:无差错,按适当顺序交付所有发送的数据
  • 拥塞控制机制:当发送方和接收方之间的网络出现拥塞时,TCP会抑制发送进程
  • 安全套接字层 SSL 提供安全性服务

UDP服务

  • 提供最小服务
  • 无连接
  • 不可靠数据传送服务
  • 因特网运输协议不提供的服务:吞吐量和定时

5 应用层协议

定义:

应用层协议定义了运行在不同端系统上应用程序进程如何相互传递报文:

  • 交换的报文类型,例如请求报文和响应报文
  • 各种报文类型的语法,如报文中的各个字段及这些字段是如何描述的
  • 字段的语义,即这些字段中包含的信息的含义
  • 一个进程何时以及如何发送报文,对报文进行响应的规则

常见应用层协议

  • DNS域名服务。用于将名称解析为IP地址,反之亦然DNS是一个倒置的树形结构。最顶部是根域,用英文句点(.)表示。全球有13个根域服务器,一台主服务器在美国,9台辅助服务器在美国,2台在欧州,一台在日本。根域服务器以下是一级域(顶级域)、二级域、三级域……最多127级
  • FTP(File Translation Protocol)文件传输协议。FTP默认有两个端口21和20。21用于控制连接,20用于数据传输。
  • DHCP(Dynamic Host Configuration Protocol)动态主机分配协议,使用 UDP 协议工作,给主机自动分配IP地址,作为网络管理员的主要管理手段。实现即插即用即联网功能。
  • HTTP(HyperText Transfer Protocol)超文本传输协议,它是Web的核心。
  • SMTP(Simple Mail Transfer Protocol )简单邮件传输协议 <端口号25> 用于发送邮件。
  • POP3(Post Office Protocol-Version 3)第三版的邮局协议: 接收方的用户代理不能使用SMTP取回邮件,因为取邮件是一个拉操作,而SMTP协议是一个推协议。通过引入一个特殊的邮件访问协议来解决这个难题,该协议将接收方邮件服务器上的邮件传送给他的本地PC。目前有多个流行的邮件访问协议,
  • TELNET 远程登录协议 <端口号23>

不常用应用层协议

  • RPC (Remote Procedure Call Protocol )(RFC- 1831)远程过程调用协 议
  • RTCP (RTP Control Protocol )RTP 控制协议
  • RTSP (Real Time Streaming Protocol )实时流传输协议
  • TLS (Transport Layer Security Protocol )安全传输层协议
  • SDP( Session Description Protocol )会话描述协议
  • SOAP (Simple Object Access Protocol )简单对象访问协议
  • GTP 通用数据传输平台
  • STUN (Simple Traversal of UDP over NATs ,NAT 的UDP 简单穿越) 是一种网络协议
  • NTP (Network Time Protocol )网络校时协议。