2.1 应用层协议原理
2.1.1 网络应用程序体系结构
1.客户—服务器体系结构
服务器
- 持续提供服务
- 永久性访问地址/域名
- 利用大量服务器可实现可扩展性
客户
-
与服务器通信,使用服务器提供的服务
-
间歇性接入网络
-
可能使用动态IP地址
-
不会与其他客户机直接通信
例子:Web
2.P2P体系结构 -
没有永远在线的服务器
-
任意端系统/节点之间可以直接通讯
-
节点间歇性接入网络
-
节点可能改变IP地址
-
优点:高度可伸缩
-
缺点:难于管理
2.1.2 进程通信
- 进行通信的是进程,而不是程序
- 不同主机通过消息交换(报文交换)进行通信
- 相同主机通过:进程间通信机制,操作系统提供 进行通信
1.客户服务器进程
- 发起通信的进程是客户,等待通信的进程是服务器,
2.进程与计算机网络之间的接口
- 进程与计算机网络之间的接口是套接字:socket
- 进程间通信利用socket发送/接受消息来实现
- 套接字是同一台主机内应用层与运输层之间的接口,又称为应用程序与网络之间的应用程序编程接口
- 应用层开发者对于运输层的控制:
①选择运输层协议
②设定运输层参数(最大缓冲,最大报文段长度)
3.进程寻址
- 进程的标识符:IP地址+端口号
2.1.3 可供应用程序使用的运输服务
- 传输层协议能够为调用它的应用程序提供的服务:
① 可靠数据传输
②吞吐量
③定时
④安全性
可靠性(reliability)/数据丢失(date less)
- 一些网络应用可以忍受数据丢失:网络电话
- 一些网络不能忍受数据丢失:文件传输
时间(timing)/延迟(delay)
- 一些应用在延迟足够低时才有效
- 网络电话,网络游戏
带宽(bandwidth)
- 一些应用在带宽达到最低要求时才有效:网络电话
- 一些应用可以适应低的带宽:email等弹性应用
2.1.4 因特网提供的传输服务
两个传输层协议:TCP 和 UDP
TCP服务:
- 面向连接的服务: 客户机/服务器进程间需要建立连接
- 可靠的数据传输服务
- 流量控制: 发送方不会发送速度过快,超过接收方的处理能力
- 拥塞控制: 当网络负载过重时能够 限制发送方的发送速度
- 不提供时间/延迟保障
- 不提供最小带宽保障
UDP服务:
- 无连接
- 不可靠的数据传输
- 不提供
• 可靠性保障
• 流量控制
• 拥塞控制
• 延迟保障
• 带宽保障