博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【计算机网络】 网络体系结构分类: 客户机/服务器体系和P2P
阅读量:7112 次
发布时间:2019-06-28

本文共 1322 字,大约阅读时间需要 4 分钟。

网络体系结构的分类

现代网络应用程序有两种主流的体系结构: 客户机/服务器体系结构和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

博客目录

 

 

 

 

转载地址:http://axghl.baihongyu.com/

你可能感兴趣的文章
SSH 超时设置
查看>>
React-setState杂记
查看>>
Dojo 如何测试 widget
查看>>
GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
查看>>
GoLand中的指针操作 * 和 &
查看>>
116. Populating Next Right Pointers in Each Node
查看>>
webpack 最简打包结果分析
查看>>
NLPIR:数据挖掘深度决定大数据应用价值
查看>>
laravel接入Consul
查看>>
Flex 布局教程
查看>>
GET和POST两种基本请求方法的区别
查看>>
Webpack4 学习笔记 - 01:webpack的安装和简单配置
查看>>
二)golang工厂模式
查看>>
React 教程:快速上手指南
查看>>
Python 的 heapq 模块源码分析
查看>>
Jitsi快捷安装
查看>>
区块链技术的基本特点
查看>>
阿里云容器服务DaemonSet实践
查看>>
一个游戏拨账系统的数据库结算设计
查看>>
Kafka Network层解析
查看>>