计算机网络自顶向下---bit torrent

网络应用有3种体系结构:

  • 客户端/服务器模式(C/S:client/server)

  • 对等模式     P2P (peer to peer)

  • 混合体(上述2种模式的混合)

bit torrent就是在应用层属于P2P的一种文件分发协议。

  • 首先,一个文件被分为n块,每块256kb,一个洪流需要共享这个文件,那么如何建立目录让其他客户端互相知道对方有哪些文件片段呢?
  • 使用一个很小的bit map(映射),用1表示拥有这个片段,0表示没有,这样大家就能知道对方有哪些片段了。

  • 之后所有节点泛洪(类似路由,比如说A和它的邻居节点C互相通知,C在和他的邻居节点D等等节点互相通知,以此类推)交换bitmap,最后就能知道互相有哪些数据片段。
  • 问题:如果一个新的用户加入呢,此时他所有数据片段都没有?
  1. 如果新加入一个节点,它什么都没有,它就会随机请求几块(4块)数据,并且此时块向自己提供最大带宽服务,然后再请求洪流中最稀缺的块(如果最稀缺的块只有一个节点有,如果该节点下线了,就没了,所以请求稀缺块),拿到稀缺块之后被访问的机会增大了(别人需要而只有你有,所以机会大了),别人提供给你的服务(带宽)更好了,一报还一报(用稀缺块换更好服务)。

  2. 新用户怎么加入洪流呢,tracker就是tracking server,负责给新用户分配洪流。tracker是种子网站负责维护的。

  • 如果有很多人都请求我一个节点呢?答:排队,一般新加入洪流的节点拥有top4的优先权,他们会在队列的前4个,并且后面队列优先给之前给我提供带宽更大的节点,以此几个周期(2个)后,再更改规则,随便选一个节点优先排队。这或许也能解释迅雷刚下载时速度快,后来就慢了(我也不清楚,瞎想的= ̄ω ̄=)

以上都是学习中科大郑老师计算机网络自顶向下视频总结的,视频地址:https://www.bilibili.com/video/BV1JV411t7ow?p=18

希望对您有所帮助

猜你喜欢

转载自blog.csdn.net/weixin_43891234/article/details/113358412