网络体系结构的分类

现代网络应用程序有两种主流的体系结构: 客户机/服务器体系结构和P2P体系结构(peer to peer “对等”)
 

一 . 客户机/服务器体系结构

 

 
客户机/服务器体系结构是最为喜闻乐见的网络体系结构,它的最大特点是“一台服务器 — 多个客户机”,  客户机通常充当发起请求的角色,而服务器则通常充当接收请求,提供响应的角色。
这种网络体系结构还有以下几个特点;
1. 服务器主机是总是打开的, 客户机主机则并不总是打开
2. 服务器是处理所有逻辑的中心
3. 基于2的原因,两个客户机一般是不能直接通信的, 要进行通信必须经过服务器
 

 
4. 虽然客户机/服务器体系结构的特征是“一对多”,但是服务器却并不总是一台,因为有的时候要处理海量的客户机的请求, 一台服务器很快就会不堪重负,所以这个时候常用服务器集群技术(server clustering)创建强大的虚拟服务器。所以这里“一对多”的一要理解为一组服务器组成的“一”个整体的意思。
 
 

 
5. 由于4的原因,客户机/服务器体系的应用服务通常是基础设施密集的(infrastructure intensive),也就是说,提供该服务的互联网商家,例如搜索引擎(百度),网络商务(淘宝)通常要为服务器场的购买,安装和维护投入巨额的费用。
 
 
 
 

二. P2P体系结构

 
和客户机/服务器体系结构截然不同的是P2P体系结构(对等结构), 在P2P中,进行通信的的并不是客户机/服务器,而是两台客户机。
进行通信的可能是两台用户的电脑,两个手机,或者一台电脑和一个手机,总之,进行通信的任意一对都被称为“对等方”
 

 
我们结合以下这副图来说明P2P体系结构讨人欢喜的优点
 

 
1.客户机间的直接通信使得P2P有了强大的自扩展性(self-calability),什么意思呢? 假设上面这幅图是一个发送文件(上载/下载)文件的过程,我们可以看到,从上至下,接收文件的主机的数量是指数递增的,系统的服务能力在逐渐增强,而且越来越强。
 
2.P2P体系结构对基础设施服务器有最小的依赖, 这是和基础设施密集的客户机/服务器体系结构是截然相反的。
我们假设在上图的P2P结构中增加一个服务器,并且要求在客户机/服务器结构和P2P结构间做一个发送文件的能力的对比: 要求是每个客户机都成功下载一个文件,那么
  • 在客户机/服务器结构上,一个服务器要向7台客户机上载这个文件,共上载7次,而P2P结构下,服务器最少只要上载文件一次就够了。 相比之下, 前者服务器不堪重负,后者服务器则毫无压力
  • 事实上,完成这个任务。P2P会比客户机/服务器结构的应用快的多
 
对服务器依赖小就意味着投入建设的成本会大大减小,正因此许多互联网公司尤其喜欢P2P。 但话虽如此,但实际上具体的还是要看应用的具体业务,上面的表述仍然只是很单方面的对比。
 

两种网络体系结构各自的应用

 

许多我们常见的应用层协议,都是以客户机/服务器体系结构为基础的,例如http, FTP ,SMTP。从明天开始,我将发布一系列关于应用层协议的文章,以作为自己学习的总结
 

【完】

参考书籍

《计算机网络-自顶向下》  作者 James F. Kurose

博客目录

【目录】 你好! 我是博客总目录

【计算机网络】 网络体系结构分类: 客户机/服务器体系和P2P的更多相关文章

  1. TCP客户机-服务器

    1 僵尸进程 2 信号处理 信号: 1 由一进程发往另一进程 2 由内核发往某进程   僵尸状态: 父进程取回子进程的相关信息,进程的ID,终止状态,子进程的资源利用信息   编程时: 1 当派生子进 ...

  2. RPC 编程 使用 RPC 编程是在客户机和服务器实体之间进行可靠通信的最强大、最高效的方法之一。它为在分布式计算环境中运行的几乎所有应用程序提供基础。

    RPC 编程 使用 RPC 编程是在客户机和服务器实体之间进行可靠通信的最强大.最高效的方法之一.它为在分布式计算环境中运行的几乎所有应用程序提供基础.本文介绍 RPC 客户机和服务器之间基本的事件流 ...

  3. 如何配置 Oracle VirtualBox 中的客户机与物理机网络

    当你在 Oracle VirtualBox 虚拟机软件 中安装了各种操作系统时,你可能需要实现物理机与虚拟机之间的相互访问. 在这篇文章中,我们将会以最简单明了的方式来说明如何配置客户机与 Linux ...

  4. 如何配置 VirtualBox 中的客户机与宿主机之间的网络连接

    如何配置 VirtualBox 中的客户机与宿主机之间的网络连接 作者: Aaron Kili 译者: LCTT rusking | 2017-03-01 13:40   评论: 3 收藏: 3 当你 ...

  5. 如何为MySQL服务器和客户机启用SSL

    本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: mysql5.7后有ssl新特性 自己搭建mysql ent ...

  6. 01_Weblogic课程之概念篇:代理服务器,web服务器,应用程序服务器,JNDI概念,JTA概念,Java消息服务,Java验证和授权(JAAS),Java管理扩展,Web客户机,客户机应用程序

     1 什么是服务器 Weblogic中服务器分为两种,一种是受管服务器,另外一种是管理服务器. Weblogic课程(Weblogic是Oracle公司的,最开始的是BEA公司的) 一 系统管理 ...

  7. 正向代理 forward proxy、反向代理 reverse proxy、透明代理 transparent proxy nginx反向代理原理和配置讲解 防止外部客户机获取内部内容服务器的重定向 URL 缓存命中

    [大型网站技术实践]初级篇:借助Nginx搭建反向代理服务器 - Edison Chou - 博客园http://www.cnblogs.com/edisonchou/p/4126742.html 图 ...

  8. 【计算机网络】ISO/OSI 网络体系结构

    ISO/OSI 网络体系结构 计算机网络是相当复杂的系统,相互通信的两个计算机系统必须高度协调才能正常工作.为了设计这样复杂的计算机网络,人们提出了将网络分层的方法.分层可将庞大而复杂的问题转换为若干 ...

  9. wincc的服务器-客户机模式具体做法(全抄-未测试)

    一.原来的工作方式:在同一工作组中4台计算机其windows名分别为A.B.C.D且都已安装好wincc5.0+sp2,原来在每台计算机上运行的均是单用户,4台计算机上实际运行的是一个相同的项目,最先 ...

随机推荐

  1. centos 6.5 搭建zookeeper集群

    为什么使用Zookeeper? 大部分分布式应用需要一个主控.协调器或控制器来管理物理分布的子进程(如资源.任务分配等)目前,大部分应用需要开发私有的协调程序,缺乏一个通用的机制协调程序的反复编写浪费 ...

  2. 复制粘贴容易犯的错误 eclipse

    有时候复制原有的代码到xml文件中,会提示某文件没有找到,一般该文件名字改成别的了,这时候为了解决这问题一般需要对这个文件重命名

  3. 【转】再讲IQueryable<T>,揭开表达式树的神秘面纱

    [转]再讲IQueryable<T>,揭开表达式树的神秘面纱 接上篇<先说IEnumerable,我们每天用的foreach你真的懂它吗?> 最近园子里定制自己的orm那是一个 ...

  4. java笔记--问题总结

    1. 垃圾回收算法 标记-清除算法 标记-清除算法是最基本的算法,和他的名字一样,分为两个步骤,一个步骤是标记需要回收的对象.在标记完成后统一回收被标记的对象.这个算法两个问题.一个是效率问题,标记和 ...

  5. WebSocket 长连接 及超时问题解决

    <?phpset_time_limit(0); class SocketService { private $address = 'localhost'; private $port = 80; ...

  6. Educational Codeforces Round 60 D dp + 矩阵快速幂

    https://codeforces.com/contest/1117/problem/D 题意 有n个特殊宝石(n<=1e18),每个特殊宝石可以分解成m个普通宝石(m<=100),问组 ...

  7. ssh 认证

    ssh 秘钥认证流程 ssh配置认证 基于口令(密码)的安全验证 [root@m01 ~]# ssh 10.0.0.41 hostname root@10.0.0.41's password: bac ...

  8. 预装apk

    一般是在device/rockchip/ LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := LanguageSetLOC ...

  9. Nios II——定制自己的IP1之Nios接口类型

    信号自动识别的接口前缀 接口前缀 接口类型 asi Avalon-ST宿端口(输入) aso Avalon-ST源端口(输出) avm Avalon-MM主端口 avs Avalon-MM从端口 ax ...

  10. 【慕课网实战】Spark Streaming实时流处理项目实战笔记二之铭文升级版

    铭文一级: 第二章:初识实时流处理 需求:统计主站每个(指定)课程访问的客户端.地域信息分布 地域:ip转换 Spark SQL项目实战 客户端:useragent获取 Hadoop基础课程 ==&g ...