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