C/S工作模式的特点
服务器程序在固定的IP地址和熟知的端口号上一直处于打开状态,随时准备接收客户端的服务请求;
客户端程序可以根据用户需要,在访问服务器时打开;
客户端之间不能够直接通信;
当同时向服务器发出服务请求的客户数量比较多时,一台服务器不能满足多个客户请求的需要。人们经常使用由多台服务器组成的服务器集群(server farm)构成一个虚拟服务器;
如果在客户数量比较少,或者客户服务请求不频繁时,也可以将多种服务器应用程序安装在一台计算机中。一台服务器就可以提供多种网络服务功能。
P2P工作模式的特点
P2P应用程序体系结构分为:
纯P2P模式
P2P与C/S混合模式
纯P2P模式的应用程序体系结构特点
所有的结点地位是平等的,都可以以对等的方式直接通信;
纯P2P应用程序体系结构的典型例子如Gnutella。Gnutella是一个P2P文件共享应用程序;
P2P工作模式的最大优点是它的信息共享的灵活性与系统的可扩展性。在一个P2P文件共享应用程序中,可以有数以百万计的对等结点加入,每个结点即可以作为一个客户端,也可以起到服务器的作用。
P2P与C/S的混合模式
随着P2P规模的扩大,很多P2P应用实际上采用P2P与C/S的混合模式;
典型的软件是Napster;
在Napster系统中,共享的MP3文件是直接在两个对等结点之间直接传输,但是提出共享请求的结点需要通过一个查询服务器找到当前打开的对等结点的地址;
目前大量使用的P2P即时通信程序也采用P2P与C/S的混合模式。
网络应用与应用层协议
—应用层协议规定应用程序进程之间通信所遵循的通信规则。
应用层协议的基本内容:
交换报文的类型,如请求报文与应答报文;
各种报文格式与包含的字段类型;
对每个字段意义的描述;
进程在什么时间、如何发送报文,以及如何响应。
应用层协议的类型
标准的网络应用层协议
E-mail、FTP、TELNET、Web等
协议以RFC文档的方式公布
遵守RFC文档所制定的应用层协议开发的应用系统之间可以实现互联和互操作;
专用的应用层协议
目前P2P文件共享的应用层协议一般都属于专用协议。
网络应用对低层提供服务的要求
应用程序的开发者将根据网络应用的实际需求来决定传输层是选择TCP协议还是UDP协议,以及主要的技术参数;
传输层协议是在主机的操作系统控制下,为应用程序提供确定的服务。
传输层QoS表现在:可靠性、带宽与延时等方面。
E-mail、FTP、TELNET、Web、IM、IPTV、VoIP,以及金融应用系统、电子政务、电子商务、远程医疗、远程数据存储等应用对数据传输的可靠性、带宽和延时要求不同;
金融应用系统、电子政务、电子商务、远程医疗、远程数据存储等应用对数据传输的可靠性要求高;
IPTV、VoIP等对带宽和延时要求比较高,而对数据传输的可靠性要求不是很严格,一个分组的丢失一般不会影响语音与图像的收听或观看的效果。
网络应用系统对传输层协议的选择
TCP协议可以提供的服务:
支持可靠的面向连接服务
支持字节流传输服务
支持全双工服务
选择TCP协议时需要注意的问题
TCP协议的拥塞控制机制是通过限制每个TCP连接来达到公平使用网络带宽的方法;
对于有最低带宽限制的实时视频应用来说,抑制传输速率会造成严重的影响;
实时视频应用应该选择UDP协议,而不是TCP协议。
UDP协议能够提供的服务
UDP是一种无连接、不可靠的传输层协议;
UDP协议没有提供拥塞控制机制;
UDP协议不提供最小延时保证。
应用层协议与传输层协议的关系
网络应用类型 | 应用层协议 | 传输层协议 |
---|---|---|
STMP | TCP | |
TELNET | TELNET | TCP |
Web | HTTP | TCP |
FTP | FTP | TCP |
DNS | DNS | UDP 或 TCP |
流媒体 | Real Network | UDP 或 TCP |
VoIP | Net2phone | UDP |