应用层(application layer)之网络应用体系结构

应用层之网络应用体系结构

目录

网络应用体系结构(Network Application Architectures)

网络应用的体系结构和网络的体系结构是完全不同的两个概念。
网络的体系结构是五层协议栈。
从应用开发者的角度看,网络体系结构是固定的,给应用提供了一系列特定的服务。

应用的体系结构,一方面是由应用开发者设计的,致力于应用是怎么样在不同的端系统之间组织的。
在选择应用的体系结构中,一个应用开发者可能会绘制出两种在现代网络应用中主流的结构模型之一:

  • 客户端-服务器架构(client-server architecture)
  • 对等体系结构(peer-to-peer architecture)

客户端-服务器体系结构

在客户端-服务器体系结构中,首先有一台always-on的主机,我们叫做服务器,服务器为来自其他主机的请求提供服务。这些其他铸就我们称之为客户端

采用客户端-服务器体系结构的经典例子是:Web应用
Web应用中的服务器为运行在客户端主机上的浏览器发出的请求提供服务。
怎么服务呢?
当一个Web服务器收到一个客户端请求,客户端请求要一个object, 服务器就把the requested object发送给the client host.
注意,在客户端-服务器体系结构中,客户端之间不直接交流。
举个例子,在Web应用中,两个浏览器之间直接通信。

客户端-服务器体系结构还有一个特征

  • 服务器有一个固定的,well-known address, 叫做IP address(IP地址).

因为服务器有一个固定的,Well-known address,并且服务器is always on.所以只要客户端给服务器的IP address发送一个分组,就可以联系到服务器了。

除了Web应用,采用客户端-服务器架构的应用还有

  • FTP, Telnet, email

看个实际客户端-服务器体系架构的架构图吧
应用层(application layer)之网络应用体系结构
看不懂就算了

通常在客户端服务器应用中,一个服务器主机无法keep up with all the requests from clients.

举个例子,一个非常受欢迎的社交网络网站,如果这个网站仅仅有一个服务器来处理所有的请求的话,这个网站马上就会overwhelmed.
怎么办呢?我们把许多主机放在一个一起,构成一个数据中心,这就相当于创建了一个非常强大的虚拟服务器。

P2P architecure

在对等体系结构中,几乎不依靠数据中心中的服务器。应用程序在不定时连接的主机对之间进行通信。这些连接的主机对被称为peers(对等方)

对等方不是由服务提供者拥有,而是被用户控制的桌面机和平板电脑,大多数peers都放在家里,大学和办公室。因为这些peers之间的通信不需要通过服务器,这个结构就叫做peer-to-peer.

今天许多非常受欢迎的,流量比较大的应用都是基于P2P. 举个例子

  • 文件共享应用(BitTorrent)
  • 迅雷
  • 网络电话(skype)
  • IPTV(e.g. KanKan and PPStream)

结构就是下面这张图
应用层(application layer)之网络应用体系结构

P2P体系结构的优点:

  • self scalability 自扩展性
    举个例子,在p2p文件共享应用中,尽管每个peer在请求文件的时候都会产生workload,但是每个peer通过将这些文件分发给其他的peer.也为系统添加了服务能力。
    P2P体系结构的性价比高(cost effective),由于他们一般不需要非常大的服务器基础设施和服务器带宽(带宽这个东西到现在都还没有讲解)

但是未来的p2p应用将面临下列挑战(挑战先不讲解了好吧)

混合体系结构

有些应用有混合体系结构,结合了客户端-服务器和P2P, 举个例子,许多的即时通信应用(例如QQ),服务器用来追踪用户的IP address, 但是user-to-user messages 是直接在用户主机之间进行的(没有通过服务器).