趣谈网络协议-应用层(P2P协议)

趣谈网络协议-应用层(P2P协议),第1张

趣谈网络协议-应用层(P2P协议) 一、FTP 1. 概述

FTP:文件传输协议,使用两个TCP连接来传输文件

控制连接:客户端主动发起连接,服务端被动打开21端口。改连接将客户端命令传送给服务器,并回传服务器应答(list-获取文件目录;reter-取一个文件;store-存一个文件)数据连接:当有文件进行传输时,创建数据连接用以传输数据 2. FTP两种工作模式

FTP工作模式:主动模式(PORT)和被动模式(PASV)

主动模式:

    客户端随机打开大于1024的端口N,向服务器21端口发起连接,同时客户端监听N+1端口,并通过21端口向服务器发送"port N+1"命令服务器将自己的数据端口20连接到客户端指定端口N+1

被动模式:

    客户端打开任意端口N(大于 1024)和 N+1N端口连接服务器21端口,并发送PASV 命令。服务端开启端口P,服务端21端口返回“227 entering passive mode”消息,消息包含服务器开放用来传输数据的端口P客户端收到消息取得端口号之后,会通过 N+1 号端口连接服务器的端口 P,然后在两个端口之间进行数据传输。
二、P2P 1. 概述

FTP问题:难以解决一服务器的带宽压力

P2P(peer-to-peer)特点:

资源分散存储在多个设备中下载文件时,需要获得已经存储了文件的peer,和这些peer建立点对点连接。一旦下载了文件,当前机器也成了peer的一员。旁边的机器也会从当前机器中下载文件。因此p2p软件一般有下载流量,也有上传流量 2. 种子(.torrent)文件

.torrent 文件:下载文件时,获取有哪些peer有该文件数据

.torrent 文件组成:announce(tracker URL)和文件信息

文件信息:

info区:该种子有几个文件、文件有多长、目录结构,以及目录和文件的名字Name字段:顶层目录名字每个段大小:BitTorrent(简称 BT)协议把一个文件分成很多个小段,然后分段下载。段哈希值:将整个种子中,每个段的 SHA-1 哈希值拼在一起。

P2P下载流程:

    BT客户端解析.torrent文件,得到tracker地址,连接tracker服务器tracker服务器响应下载者,将其他下载者的IP地址提供给下载者下载者连接其他下载者,两者告知对方自己已经有的数据块,交换对方没有的数据块下载者每得到一个块,需要计算出下载快的HASH验证码,与.torrent 文件中的对比。若哈希值一致,则说明数据正确,否则需要重新下载该数据块

上述P2P下载流程的特点:

下载过程非中心化加入P2P网络时,需要依赖tracker(tracker服务器是用来登记有哪些用户在请求哪些资源) 3. 去中心化网络

DHT去中心化网络:

目的:使得tracker去中心化特点:每个加入这个 DHT 网络的人,都要负责存储这个网络里的资源信息和其他成员的联系信息

Kademlia协议:

每个BitTorrent启动,会承担两个角色,分别是peer(监听TCP 端口以上传和下载文件)、DHT node(监听一个UDP 的端口,加入DHT 的网络)DHT 网络里面,每一个 DHT node 都有一个 ID,DHT node 都有责任掌握一些知识,也就是文件索引,也即它应该知道某些文件是保存在哪些节点上。

4. 哈希值

5. DHT 网络中的朋友圈是怎么维护的

6. DHT 网络是如何查找朋友的

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5720436.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存