比特彗星-端口阻塞解决方案-1.7 P2P模式和C/S模式的差异
ie-12
编辑于 2026年02月11日 09:00
收录于文集
共15篇

请点击页面右侧的 回到旧版 按钮以获得最佳的阅读体验

或前往博客阅读:https://ie12blog.36102025.xyz/articles/bitcomet-port-forwarding/cs-and-p2p/


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下载人越多越快的原因