趣谈网络协议
刘超
前网易研究院云计算技术部首席架构师
130417 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 51 讲
趣谈网络协议
15
15
1.0x
00:00/00:00
登录|注册

第17讲 | P2P协议:我下小电影,99%急死你

FIND_VALUE
FIND_NODE
STORE
PING
文件索引
ID
段哈希值
段大小
Name字段
info区
朋友圈维护
距离计算
哈希值
DHT node
文件信息
announce
去中心化分布式哈希
依赖tracker
域名与IP的映射机制
其他应用场景
DHT网络
种子文件
P2P
FTP
HTTP
思考题
P2P的工作原理
下载方式

该思维导图由 AI 生成,仅供参考

如果你想下载一个电影,一般会通过什么方式呢?
当然,最简单的方式就是通过 HTTP 进行下载。但是相信你有过这样的体验,通过浏览器下载的时候,只要文件稍微大点,下载的速度就奇慢无比。
还有种下载文件的方式,就是通过 FTP,也即文件传输协议。FTP 采用两个 TCP 连接来传输一个文件。
控制连接:服务器以被动的方式,打开众所周知用于 FTP 的端口 21,客户端则主动发起连接。该连接将命令从客户端传给服务器,并传回服务器的应答。常用的命令有:list——获取文件目录;reter——取一个文件;store——存一个文件。
数据连接:每当一个文件在客户端与服务器之间传输时,就创建一个数据连接。

FTP 的两种工作模式

每传输一个文件,都要建立一个全新的数据连接。FTP 有两种工作模式,分别是主动模式PORT)和被动模式PASV),这些都是站在 FTP 服务器的角度来说的。
主动模式下,客户端随机打开一个大于 1024 的端口 N,向服务器的命令端口 21 发起连接,同时开放 N+1 端口监听,并向服务器发出 “port N+1” 命令,由服务器从自己的数据端口 20,主动连接到客户端指定的数据端口 N+1。
被动模式下,当开启一个 FTP 连接时,客户端打开两个任意的本地端口 N(大于 1024)和 N+1。第一个端口连接服务器的 21 端口,提交 PASV 命令。然后,服务器会开启一个任意的端口 P(大于 1024),返回“227 entering passive mode”消息,里面有 FTP 服务器开放的用来进行数据传输的端口。客户端收到消息取得端口号之后,会通过 N+1 号端口连接服务器的端口 P,然后在两个端口之间进行数据传输。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

P2P协议:解决传统下载方式的瓶颈问题 P2P协议通过点对点连接和去中心化网络的方式,解决了传统下载方式的瓶颈问题,实现了更快速的文件下载和分享。P2P避免了单一服务器带宽压力,提高了下载速度。种子文件(.torrent)是P2P下载的关键,包含tracker URL和文件信息,通过连接tracker服务器获取其他下载者IP,实现数据交换。为解决服务器故障或线路屏蔽问题,出现了去中心化网络(DHT),如Kademlia协议,实现了彻底的非中心化。每个加入DHT网络的人都负责存储资源信息和其他成员联系信息,构成分布式存储数据库。通过DHT,每个节点都有责任掌握文件索引,进一步提高了下载效率。P2P协议的技术特点在于其去中心化、点对点连接的方式,为读者提供了更快速、高效的文件下载和分享体验。Kademlia算法中,每个节点只有4个指令:PING、STORE、FIND_NODE和FIND_VALUE。DHT网络中,朋友圈如何更新保证了任意节点加入和离开都不影响整体网络。 P2P协议的技术特点在于其去中心化、点对点连接的方式,为读者提供了更快速、高效的文件下载和分享体验。 DHT网络中的朋友圈按距离分层,实现了高效的节点管理和信息交换。 P2P协议的技术特点在于其去中心化、点对点连接的方式,为读者提供了更快速、高效的文件下载和分享体验。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《趣谈网络协议》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(125)

  • 最新
  • 精选
  • ismind
    刘老师,您好,我们都付费买了课程,肯定是想学好的,为什么不发不出来呢?那样的话,真的非常感谢您了。

    作者回复: 运营策划的活动,哈哈

    2018-06-26
    24
  • darren
    这就是种子过久了失效的原因吗?

    作者回复: 所有服务器都停了,也就下载不到了

    2019-06-27
    9
  • 龚极客
    思考题1,调用域名解析库解析出ip,或者本地hosts文件 思考题2,区块链数字货币 疑问,标题为啥老是卡在99%没说啊喂,不会那么巧每次node下线吧,我看还是显示有流量在下载就是没完成啊。

    作者回复: 这个。。。标题党,我以为不会有人纠结

    2018-06-25
    6
  • soga
    新加入dht网络的节点最开始没有任何其他节点的信息吧?要怎么启动?是会默认给一两个节点做初始的已知网络节点吗?如果是的话,这些初始节点怎么得到?

    作者回复: 种子里面有

    2018-07-05
    4
  • 起风了001
    这章跳过去了. 算法用文字描述太难看懂, 而且这个协议专业性比较强, 如果不是专门做p2p的感觉可以先跳过, 以后有时间再回头看

    作者回复: 可以呀

    2019-05-22
    3
  • 时间是最真的答案
    迅雷下载是不是使用的P2P协议?

    作者回复: 是的

    2019-04-09
    3
  • 风车车
    思考题老师也没讲解,看评论只有赞,没有对评论内容进行对错 纠正。

    作者回复: 每周三篇文章,压力太大,来不急讲,后面会补上

    2018-07-16
    2
  • 凉凉
    Node new 从哪获取文件1的种子文件的?

    作者回复: 你如果是一个bt客户端,你肯定有种子,要不下载啥

    2019-02-13
    3
    1
  • 赵梅
    同问,Node new想下载文件1,但它本身并没有文件1,那是通过什么计算出文件1的哈希值的?

    作者回复: 种子里面有

    2018-09-27
    1
  • 意无尽
    不晓得为啥,看了这个后,觉得用种子下载很不安全啊,P2P 的下载方式,虽然是快了,但是别人也可以从你这里下载😳。

    作者回复: 是呀,互惠互利

    2020-06-07
收起评论
显示
设置
留言
99+
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部