计算机网络--应用层的基本原理
一. 网络应用的基本原理
1. 网络应用之体系结构
a. 客户机/服务器结构(Client-Server,C/S)
服务器
- 7*24小时提供服务
- 永久性访问地址/域名
- 利用大量服务器实现可扩展性
客户机
- 与服务器通信,使用服务器提供的服务
- 间歇性接入网络
- 可能使用动态IP地址
- 不会与其他客户机直接通信
b. 点对点结构(Peer-to-peer,P2P)
-
没有永远在线的服务器
-
任意端系统/节点之间可以直接通讯
-
节点间歇性接入网络
-
节点可能改变IP地址
-
优点: 高度可伸缩
-
缺点: 难管理
c. 混合结构(Hybrid)
例如Napster
- 文件的传输使用P2P结构
- 文件的搜索采用C/S结构–集中式
2. 网络应用之进程间的通信
a. 什么是进程?
主机运行上运行的程序
b. 如何实现进程间的通信?
进程间的通信利用套接字:Socket发送/接收信息
类似寄信:
- 发送方将消息发送到门外邮箱
- 发送方依赖门外的传输基础设施将消息传输到接收方的主机,并送到接收方门外
- 接收方从门外获取消息
传输基础设施向进程提供API:
- 传输协议的选择
- 参数的设置
c. 如何寻址进程?
不同主机上的通信,那么每一个进程必须要有一个标识符
如何寻址主机?----IP地址
- Q:主机有了IP地址后,是否可以定位进程?
- A:否!同一主机上可能有多个进程要进行通信。
端口号 ----Port Number
- 为每个需要通信的进程分配一个端口号
- HTTP Server:80
- Mail Server:25
进程的标识符 ----IP地址 + 端口号
d. 应用层协议
网络应用必须遵循应用层协议:
- 公开协议:HTTP,SMTP
- 私有协议:多数P2P文件共享应用
3.网络应用之需求与传输层服务
网络应用对传输服务的需求:
数据丢失(data loss)/可靠性(reliability)
- 某些网络应用能容忍一定的数据丢失 :网络电话
- 某些网络应用要求100%可靠的数据传输:文件传输,Telnet
时间(timing)/延迟(delay)
- 有些应用只有在延迟足够低时才“有效”
- 网络电话/网络游戏
带宽
- 某些应用只有在带宽达到最低要求时才“有效”:网络视频
- 某些应用能使用任何带宽----弹性应用:Email
Internet提供的传输服务:
某些网络应用所需要的的传输服务: