应用层协议原理
应用程序体系结构
- 客户-服务器结构
- 数据中心:配备了大量的主机
- P2P体系结构
- 对位于数据中心的专有服务器有最小的(或者没有)依赖
- 应用程序在间断连接的主机对之间使用直接通信,这些主机被称为对等方
- 有自拓展性
- 挑战
- ISP友好:大多数住宅ISP(DSL和电缆ISP),下载比上载多得多
- 安全性:因为高度分布和开放
- 激励:用户资源提供带宽、存储和计算资源
进程通信
- 进程通过套接字(socket)这个软件接口向网络发送报文和从网络接收报文
- 套接字是应用程序和网络之间的API,开发者可以完全控制应用层端,但对网络端控制权限仅限于:选择运输协议、设定几个运输层参数
- 进程寻址
- 定义:主机的地址、在目的主机的接收进程的标识符
- IP地址 + 端口号
选择运输层服务
四个维度考量
- 可靠的数据传输
- 分组在计算机网络中可能丢失(eg: 分组使路由器缓存溢出分组的某些比特损坏后可能被丢弃)
- 敏感:文件传输、电子邮件、web文档、即时通讯(这个可以容忍吧)
- 容忍丢失:多媒体应用
- 吞吐量
- 可用吞吐量:发送进程能向接受进程交付比特的速率
- 有一些自适应编码技术可以根据当前可用带宽进行相应速率的编码
- 带宽敏感:多媒体应用
- 弹性应用:文件传输、电子邮件、web文档
- 定时
- 敏感:多媒体应用,即时通讯
- 容忍高时延:件传输、电子邮件、web文档
- 安全性
- 运输层提供机密性、数据完整性和端点鉴别等服务
Internet提供的运输服务,TCP&UDP
TCP
- 面向连接的服务:全双工的TCP连接 - 可靠的数据传送服务:无差错,按照适当顺序交付所有发送的数据 - 拥塞控制机制 -SSL(Secure Sockets Layers,安全套接字层):TCP的加强,在应用层实现 ### UDP - 无连接 - 不可靠:可能是乱序到达的,可能不到达 - 没有拥塞控制机制,UDP的发送端可以以任意速率向网络层注入数据 ### Internet运输协议不提供的服务 - 不提供任何定时或带宽保证
- 运输层提供机密性、数据完整性和端点鉴别等服务
应用层协议
- 定义了:
- 交换的报文类型,例如请求报文和相应报文
- 各种报文类型的语法,如报文中的各个字段及这些字段是如何描述的
- 字段的语义:这些字段中包含的信息的含义
- 一个进程何时以及如何发送报文,对报文进行响应的规则
HTTP
PREVIOUS二叉搜索树