应用层(一)
应用层协议原理
研发网络应用程序
- 运行在不同端系统
- 通过网络彼此通信
eg:web服务器和浏览器通信
不需要给网络核心设备写软件
- 网络核心设备不在应用层上运行
- 网络核心设备不在应用层起作用
应用程序体系结构
client-server 客户机-服务器架构
- server:总是打开,永远在线,固定IP
- client:间断(intermittently)连接,可能动态IP,不相互直接通信
include:Web、FTP、Telnet、email
通常大型因特网服务都配备了数据中心,装有大量服务器和数据
peer-to-peer(P2P)对等网络架构
对位于数据中心的专用服务器有最小的依赖,应用程序在间断连接的主机对之间直接通信,这些主机称为对等方(peer)
应用:BitTorrent、迅雷、
特点:
自扩展性:在一个P2P文件共享应用中,尽管每个对等方都由于请求文件产生工作负载,但每个对等方向其他对等方分发文件也为系统增加服务能力,使得其不需要庞大的服务器基础设施和服务器带宽
hybrid of client-server and P2P 混合C/S和P2P架构
即时通信应用服务器用于跟踪用户IP,但用户到用户间的报文在用户主机之间直接发送
进程通信
进行通信的实际上是进程而不是程序
进程
- 运行在端系统的一个程序
- 通过跨越计算机网络交换报文而相互通信
客户进程和服务器进程
会话开始时发起与其他进程联系的进程$\rightarrow$客户,等待联系的进程$\rightarrow$服务器
eg:
- 在Web中,浏览器是一个客户进程,Web服务器是一台服务器进程
- 在P2P文件共享中,下载文件的peer标识为客户,上传文件的peer标识为服务器
套接字(sockets)
进程与计算机网络之间的接口
可以将进程比作房子,套接字比作门
也被称作API,应用程序编程接口
寻址过程
为向另一台主机发送分组,接收进程需要有一个地址:IP地址(IPv4-Ch4)
IP地址区分不同主机,端口号区分相同主机不同进程,eg:HTTP server-80,邮件服务-25
可供应用程序使用的运输服务
可靠数据传输
分组不丢失$\rightarrow$可靠数据传输(数据完整性)
- no loss
- loss-tolerant
吞吐量
发送进程能够向接收进程交付比特的速率
- 具有吞吐量需求的,bandwidth-sensitive,带宽敏感的应用
- elastic,弹性应用
及时性
实时应用(对时延有约束)和非实时应用
安全性
数据完整性、加密、端点鉴别
因特网提供的运输服务
TCP OR UDP?
网络应用需求
TCP:
- 面向连接
- 可靠数据传输
- 流量控制:发送方不会淹没接收方
- 拥塞控制
- 不提供:及时性、最小的吞吐量保证、安全性
UDP:
- 不可靠数据传输
扩展:安全性:SSL,安全套接字层加强TCP,提供加密连接、数据完整性、端点鉴定
流行的应用及其应用层协议和支撑的运输协议
不提供吞吐量或及时性保证
应用层协议
定义了:
- 交换的报文类型:请求(request)、响应(response)
- 各种报文类型的语法:报文中各个字段及其描述
- 字段的语义:这些字段中的信息含义
- 确定一个进程何时以及如何发送报文,对报文响应的规则
- 公开协议:由RFC文档定义,遵循RFC规则
- 私有协议(proprietary protocol):Skype、QQ、Thunder