应用层
发展历史
- 1970s:基于文本的应用
- 文本电子邮件
- 远程访问计算机
- 文件传输
- 新闻
- 1990s
- Web冲浪
- 电子商务
- 20世纪末
- 即时通讯
- 对等文件共享P2P
- 2000年以来:语音、视频游戏应用
- IP电话(VoIP)
- IP视频会议(Skype)
- 视频分享Youtube
- 电影点播(Netflix)
- 在线游戏:魔兽世界
- 社交网络:Facebook, Twitter
主要内容
- 网络应用体系结构
- 客户机/服务器
- P2P
- 混合结构
- 网络应用的服务需求
- 可靠性
- 带宽
- 时延
- Internet传输层服务模型
- TCP
- UDP
- 特定网络应用及协议
- HTTP
- SMTP,POP,IMAP
- DNS
- 在应用层实现网络核心功能
- P2P应用
- Socket编程
- TCP
- UDP
网络应用的体系结构
网络应用有那些特点
- 与单机应用有那些本质性不同
- 网络硬件环境
- 多主机交互
- 网络应用应采取什么样的体系结构
- 客户机/服务器结构(Client - Server CS)
- 点对点结构(Peer to Peer, P2P)
- 混合结构(Hybrid)
客户机/服务器结构
- 功能决策划分
- 服务器:对外提供服务
- 客户机:使用服务
- 服务器
- 7*24不间断服务
- 永久性访问地址/域名
- 数据中心
- 利用大量服务器实现可扩展性,同时处理大量并发请求
- 客户机
- 与服务器通信,使用服务器提供的服务
- 间歇性接入网络
- 肯能使用动态IP地址
- 不会与其他客户机直接通信
- 例子
- Web
- FTP
- *Telnet
纯P2P结构
- 没有永远在线的服务器
- 任意端系统/节点之间可以直接通讯
- 节点间歇性接入网络
- 节点肯能改变IP地址
- 最常见的:文件共享服务BT
- 优点
- 高度可伸缩(自扩展性)
- 不需要庞大的服务器基础设施和服务器带宽
- 问题
- ISP友好:因为上传和下载速度不对等,增加了ISP的压力
- 安全性:高度分布和开放,难于管理
- 激励用户:资源向应用提供带宽、存储和计算资源
- 例子
- 文件共享(BitTorrent)
- 对等协助下载器(迅雷)
- 因特网电话(Skype)
- IPTV(迅雷看看)
混合结构
- Napster
- 文件传输使用P2P结构:分散式
- 文件搜索采用C/S结构:集中式
- 每个节点向中央服务器登记内容
- 每个节点向中央服务器提数据
网络应用进程通信
- 网络应用的基础:进程间通信
- 进程:主机上运行的程序
- 同一主机的进程通信
- 进程间通信机制
- 操作系统提供
- 不同主机进程通信
- 消息(报文)交换
- 客户机进程:发起通信的进程
- 服务器进程:等待通信请求i的进程
套接字:Socket
-
进程与计算机网络之间的接口
-
应用层和运输层之间的接口
-
进程间通信利用socket发送/接收消息
-
传输基础设施向进程提供API(应用对传输层的控制)
- 传输协议的选择
- 参数的设置
进程寻址
- 寻址主机
- IP地址
- 寻址进程
- 端口号/Port Number
- 为主机每个需要通信的进程分配一个端口号
- HTTP Server:80
- Mail Server:25
- 更多:
http://www.iana.org
- 端口号/Port Number
- 网络进程的标识符
- IP地址 + 端口号
应用层协议
- 网络应用需遵循应用层协议
- 网络应用的重要组成部分
- 公开协议
- 由RFC(Request For Comments)定义
- 允许互操作
- HTTP,SMTP
- 私有协议
- 多数P2P文件共享应用
- Skype
应用层协议的内容
- 消息类型(type)
- 请求
- 响应
- 消息的语法(syntax)/格式
- 字段
- 描述
- 字段的语义(semantics)
- 字段信息的含义
- 规则(rules)
- 何时发送/响应
- 如何发送/响应
网络应用的需求与传输层服务
对传输服务的需求
数据丢失(data loss)/可靠性(reliability)/可靠数据传输
- 能够容忍一定的数据丢失:网络电话
- 要求100%可靠数据传输:文件传输
时间(timing)/延迟(delay)
- 电话/游戏等应用要求低时延
带宽(bandwidth)
- 要求最低带宽(带宽敏感应用):网络视频
- 能够适应任意带宽(弹性应用):文件下载
安全性(security)
- 加解密传输的所有数据
- 数据完整性等
- 如网上银行等
Internet提供的传输服务
TCP服务
- 面向连接:C/S进程间需要建立连接
- 可靠的传输
- 流量控制:发送数据不会过快,超过接收方能力
- 拥塞控制:限制发送方速度
- 不提供
- 时间/延迟保障
- 最小带宽保证
- SSL加强的TCP
- 安全服务
- 加密
- 数据完整性
- 端点鉴别等
- 安全服务
UDP服务
-
轻量级运输协议
- 仅提供最小服务
- 不提供不必要服务
-
无连接
-
不可靠的数据传输
-
不提供
- 可靠性
- 流量控制
- 拥塞控制
- 延迟保障
- 带宽保障
-
提供了极大的自主控制
- 可以通过定制提供带宽保证?
总结
- 提供:
- 可靠数据传输
- 安全性保证(SSL)
- 不提供
- 带宽保证
- 时延保证
- 但能最大化满足用户需求