欢迎光临散文网 会员登陆 & 注册

比特彗星-端口阻塞解决方案-1.7 P2P模式 和C/S模式的差异

2023-08-20 19:54 作者:ie-12  | 我要投稿

1.7 P2P模式和C/S模式

为什么使用bt下载的时候会涉及到开端口的问题?
而其他的下载方式 比如浏览器 网盘 等都不存在这个问题?

:这其实就涉及到传输模式上的一些区别也就是 P2P模式 和 C/S 模式
我们先讲 C/S 模式

C/S 模式 (Client-Server) 即服务端-客户端 模式
我们平时使用的应用大部是 C/S 模式的

CS结构看起来像这样:

有中心服务器的中央网络系统
图片来自维基百科


在这个结构中有一台中心服务器
用户想要下载文件必须连接这个中心服务器 资源存储在这个中心服务器中

下载速度和服务器的带宽有关
如果服务器的带宽是固定的


那下载的用户越多 每个用户的平均下载速度也就越慢

如果中心服务器失效 那么其他用户也就无法进行下载了

在这个结构里面 一般来说 服务端只提供服务
而客户端只使用服务


而连接一般由客户端发起 服务端接受连接
这些中心服务器几乎都是有公网ip的 (可被直接访问)
所以不太需要考虑客户端的网络环境

:所以这就是网盘不开会员下载慢的原因吗?

:算是一个重要的原因
如果免费用户下载不限速 那将产生巨大的带宽成本
所以对非会员用户下载限速 也算是正常的操作

:那P2P呢?

P2P 是 (peer-to-peer)的缩写 即 对等式网络
bt下载 电骡(eMule)部分游戏联机 等 会使用这种模式

P2P结构看起来像这样:

无中心服务器的对等网络系统
图片来自维基百科


在P2P模式中没有 客户端 和 服务端之分
也可以认为每台设备既是 服务端 也是 客户端

每个设备之间是平等的
可以同时作为资源的请求者和提供者
我们称其为节点
资源通常存储在各个节点上

当一个节点加入P2P网络并共享资源时,它将提供自己拥有的资源
(例如文件、数据、带宽等)给其他节点使用。
其他节点可以通过与拥有资源的节点者直接通信,请求并获取所需的资源

:所以P2P网络中的节点需要像C/S模式中的中央服务器那样 打开端口
而其他节点来访问?

:是的

:端口也不是一定要开吧?我可以去连接其他的节点啊?

:对,开放端口不是必须的 可以去主动连接其他节点
但是其他节点需要开放端口接受你的请求

如果其他的节点也没有开放端口
那它们也无法接受你的请求

而如果你的节点开放了端口 就可以接受其他节点的请求
无论对方是否开放端口

:这么来说两个未开放端口的节点 无法相互连接了

是的 连接关系如下

公网节点:此处表示开放端口的节点 

内网节点:此处表示未开放端口的节点

》和《 表连接发起方向

  • 公网节点1 》公网节点2
    公网节点1《 公网节点2

  • 内网节点1 》内网节点2 X
    内网节点2《 内网节点1 X

  • 公网节点 》内网节点 X
    公网节点《 内网节点


公网节点之间可以互相连接

内网节点不能互相连接

公网节点无法主动连接内网节点
内网节点可以主动连接公网节点

:这么说来端口不通也可以用bt下载咯?
那开端口有什么好处呢

:一般认为 端口是否开放 对上传速度影响较大
对下载速度的影响相对较小

开放端口可以获得更好的上传速度
接受其他节点的连接请求 比 向其他节点发起请求效率更高

:可是我要上传速度有什么用呢?

:为BT网络做贡献 确切的说为其他节点做贡献

你的下载速度是别人的上传
而你的上传是别人的下载

如果没有人上传 那么也没有人有下载速度

:P2P不会像C/S模式 那样产生带宽费用的问题?

:还是会的,不过这个费用是各个节点分担的
如果是在家中使用bt下载那使用的就是家庭网络的带宽

:那家庭网络的上传和下载速度不对等
岂不是下载速度也很慢

:只要节点的数量够多就行
每个节点贡献少量上传速度 总量还是很可观的
这也是bt下载人越多越快的原因


比特彗星-端口阻塞解决方案-1.7 P2P模式 和C/S模式的差异的评论 (共 条)

分享到微博请遵守国家法律