网络应用(层)
网络应用体系结构
网络应用体系结构
- 客户机/服务器结构(Client-Server,C/S)
- eg: Web
- P2P点对点结构(Peer-to-Peer)
- 混合结构(Hybrid)
客户机/服务器(C/S)结构
客户机
- 与服务器通信,使用服务器提供的服务
- 间歇性接入网络
- 可能使用动态IP地址
服务器
- 7*24小时不间断提供服务
- 永久性访问地址/域名
- 利用大量服务器实现可扩展性
纯P2P结构
- 没有永远在线的服务器要求
- 人一段系统/节点之间可以直接通讯
- 节点间歇性接入网络
- 节点可能改变IP地址
优点:高度可伸缩
缺点:难于管理
混合结构(C/S与P2P混合)结构实例
- Napster
- 文件传输使用P2P结构
- 文件的搜索采用C/S结构——集中式
- 每个节点向中央服务器等级自己的内容
- 每个节点想中央服务器提交查询请求,查找感兴趣的内容
网络应用进程通信
同一主机上运行的进程之间
- 进程间通信机制来通信
- 机制由操作系统来提供
不同主机上运行的进程之间
- 消息交换来通信
- 客户机进程:发起通信的进程
- 服务器进程:等待通信请求的进程
套接字(Socket)——不同主机之间通信的接口
- 进程间通信利用socket发生/接收消息实现
- 类似于"寄信"
- 传输基础设施想进程提供API
- 传输协议的选择
- 参数的设置
寻址——实现消息交换
- 不同主机上的进程间通信,那么每个进程必须要有标识符
- 进程的标识符:IP地址+端口号
- IP地址
- 因为是不同主机,所以要借IP地址来寻址主机
- 端口号(Port number)
- 为主机上每个需要通信的进程分配一个端口号
- HTTP Server:80
- Mail Server:25
- IP地址
应用层协议——交换的实现协议
- 网络应用都需遵循应用层协议
- 公开协议
- 由RFC(Request For Comments)定义
- 允许互操作
- HTTP、SMTP…
- 私有协议
- 多数P2P文件共享应用(用于商业应用等)