网络协议之文件下载相关协议

写在前面

文件下载在我们日常生活和工作中无处不在,还是挺重要的存在,所以本文来简单看下多有哪些文件下载的方式。

1:文件下载

1.1:http

比如当我们开发一个文件导入的接口的时候,模板文件的下载一般就是使用这种方式,因为模板文件一般是比较小的,几k,十几k这样,所以直接使用http协议下载是没有任何问题的,但是如果是大文件,比如上G的一个视频文件,就有问题了,因为http方式是比较慢的,效率堪忧,这个时候我们就要考虑其他方式了,比如ftp。

1.2:ftp

工作中,如果是有大量的文件下载需求的话,我们一般可以考虑使用搭建ftp服务器的方式,或者是工作中使用的日常软件,比如idea,maven,jdk等也可以使用ftp的方式来进行共享。

  • 主要命令

    list------获取文件目录;
    reter------取一个文件;
    store------存一个文件。

  • 工作方式

    两个TCP连接:
    连接1:控制连接,打开21端口,接收命令,并返回响应
    连接2:数据连接,需要传输文件时创建一个新连接。

连接非共享,所以速度是要优于http的。

尽管ftp采用了非共享的方式来使用TCP连接传输数据,但因为其只是在一台服务器上的,所以这非共享的TCP连接本质上还是共享了一台服务器的资源的,如宽带,IO,等,此时当其面向公司里的几十号人的时候,可能问题不大,但是当面向千千万万的广大人民群众的时候就显得力不从心了。此时我们就需要来处理只有一台服务器下载文件这个瓶颈,来引入一种分布式的下载方式了。

1.3:p2p

p2p协议就解决了单一服务器带来的宽带,IO等压力。p2p协议下,文件并不是分布在某台机器上,而是分布式在一大批机器上,这每一个机器我们可以称为peer。所以,当我们下载文件的时候就需要找到这样一个peer来下载文件。而要想找到这样一个peer,就需要用到大名鼎鼎的种子文件,即.torrent文件。通过解析种子文件,就可以解析到tracker服务器,tracker告知可以下载该文件的某个IP地址,然后去该地址下载就可以了。

可以看出,文件的存储是非中心化的,但是严重依赖tracker,文件信息都在tracker存储。这其实是单点了。想要解决就要使用真正的非中心化了,这就是DHT协议了,即各自存储可下载文件地址信息。

写在后面

参考文章列表

sftp的基本使用 。

使用sftp实现多个主机之间互传文件 。

相关推荐
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
wuyk5553 天前
《WiFi 嵌入式物联网开发全套实战》| 第 16 章 ESP32 AP+STA 双模共存原理与工程坑点
网络·stm32·物联网
XUEYUAN52123 天前
ASN 自治系统号风控:平台如何通过 IP 所属自治域批量识别代理流量
python·网络协议·http·网络安全·socks5
QYRdata3 天前
年均增速24.2%!机器人数据湖未来六年增长动能强劲
网络·机器人·服务发现
CHENKONG_CK3 天前
破解制鞋打磨痛点:RFID赋能去毛刺工序自动化升级
网络·单片机·嵌入式硬件·网络协议·tcp/ip
chshang19923 天前
工业路由器是什么?浅谈5G工业网络中的IR602
网络·物联网·5g·智能路由器
萧瑟余晖3 天前
Netty 核心组件与 Reactor 模型详解
网络·架构
ITxiaobing20233 天前
IP 定位服务选型指南:从准确率到工程落地的技术考察
linux·服务器·网络
wuyk5553 天前
【Socket 进阶之路】第 9 章 Linux 网络服务量产稳定性优化|心跳保活、TIME_WAIT、SO_LINGER、内存池、断线重连、完整异常防护框架
linux·服务器·开发语言·网络·物联网
z落落3 天前
C#UDP+串口服务端+UDP 客户端(含 CRC16 校验)
网络·网络协议·udp