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