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

写在前面

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

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实现多个主机之间互传文件

相关推荐
镜中人★1 天前
408计算机组成原理考纲知识点
网络·笔记
汤愈韬1 天前
双向NAT
网络·网络协议·网络安全·security·huawei
*才华有限公司*1 天前
RTSP视频流播放系统
java·git·websocket·网络协议·信息与通信
栗子叶1 天前
IP协议 地址划分&MAC地址作用&ip addr命令
网络·tcp/ip·macos
维构lbs智能定位1 天前
基于UWB定位技术的工地安全管理系统从技术原理到功能应用详解
网络·安全·工地安全管理系统
Cyber4K1 天前
【Kubernetes专项】DockerFile、数据持计划、网络模式及资源配额
运维·网络·云原生·容器·kubernetes
开开心心就好1 天前
系统管理工具,多功能隐私清理文件粉碎工具
java·网络·windows·r语言·电脑·excel·symfony
逑之1 天前
C语言笔记15:动态内存管理
c语言·网络·笔记
hui函数1 天前
如何解决 pip install 网络报错 403 Forbidden(访问被阻止)问题
网络·pip
乾元1 天前
现场运维机器人的工程化落地——移动探针采集 + AI 诊断,在真实网络中的实现路径
运维·网络·人工智能·架构·机器人·自动化