在不考虑安全的前提下,如何设计一个方案,实现 4 个 G 的文件的快速异地传输?比如从北京到上海... 面试的时候没答上来,求大佬们指点迷津

2019-08-06 17:30:55 +08:00
 moran3649
21289 次点击
所在节点    Java
134 条回复
laike9m
2019-08-07 04:45:41 +08:00
蠢问题直接帮你排除了一家公司,不是挺好的吗?
Windelight
2019-08-07 05:08:44 +08:00
如果说不要安全,但完整性的话,直接通过云服务厂商的对象存储服务中转,因为我就这么尝试,一个德国法兰克福的服务器,11GB 压缩好的文件传回我的电脑上,直接连接基本上咣咣当当几 MB/s,或几百 KB/s,偶然发现我的阿里云 OSS 还有存储空间和流量,那就直接开了一个上海的 OSS,然后先从 ff 上传,大约稳定速度 70MB/s 以上,然后我再取回,速度 30-40MB/s 左右,迅雷超级会员加速和快鸟,满速,就像白先生的拉枪。
如果说只在国内之间互相传输的话,发送方能直接进公网的话不如直接 Http,但是如果是 4G 散文件那就 Rsync。
autogen
2019-08-07 06:02:43 +08:00
异地一般都是专线,走外网延迟高
MMMMMMMMMMMMMMMM
2019-08-07 07:15:10 +08:00
估计是想问你 socket UDP 分段传输

但是没问好,问的很尬
yankebupt
2019-08-07 07:55:11 +08:00
@moran3649 安全考虑不考虑有个卵用,关键是考虑不考虑预算……
预算 0 的话让他滚粗,自己公网爱拿什么工具拿什么工具传好了……即使有优劣估计没有任何一个方法 100%稳定,谁都知道,要不怎么炒起来的 net neturality 之类的概念
预算无限的话直接租线路啊,快到你不敢想象……
预算给定的情况下再考虑怎么拿钱换带宽的问题。
另外 UDP+自定义纠错协议绕过 isp qos 限速是什么年代的事情了,现在还管用么?
airfling
2019-08-07 07:58:39 +08:00
做种,然后发到种子服务器上,或者用文件分块用 cdn
fox0001
2019-08-07 08:00:08 +08:00
Nginx 开个 http 服务器,在另一边直接下载。一般情况下能占满带宽
KasuganoSoras
2019-08-07 08:03:46 +08:00
4B —— 直接手打,复制粘贴的时间都比你手打要长
4KB —— SFTP (反正对我来说两端都是 Linux,FTP 服务器都不用装了)
4MB —— SFTP / FTP
4GB —— SFTP / Rsync / 本地搭个 Nginx 远端下载
4TB —— 抱着硬盘坐高铁过去
4PB —— 叫辆五十铃一车载过去

另外还有就是条件 ——
没网络或者网络非常辣鸡的环境下:抱着硬盘过去
网络速度不限制的环境下:直接传输
jip
2019-08-07 08:17:58 +08:00
@Mac 哈哈
set01
2019-08-07 08:20:08 +08:00
顺丰
watzds
2019-08-07 08:20:18 +08:00
交给 v2 网友帮忙上传
ericbize
2019-08-07 08:20:35 +08:00
之前公司要导数据到国外, 傻逼开发 叫运维 用 sftp 传过去 ; 运维老大像看傻逼一样看着开发。

背景:10T 左右的图片。
已经在线上,只是在国内, 数据库有图片地址。

ps, 我觉得为什么开发不写个 爬虫....
AutumnVerse
2019-08-07 08:41:32 +08:00
qq 文件传输,onedrive,google 云端硬盘,百度云盘
chinvo
2019-08-07 08:51:34 +08:00
全面好多人提到 IPoHSR,这个成本太高

我建议 IPoAC,协议完善,有 QoS,支持 IPv6

[doge]
barrelsoil
2019-08-07 08:53:01 +08:00
联邦快递加急
vanishcode
2019-08-07 08:54:35 +08:00
顺丰。就像是下毛片快还是直接找老司机拷贝快呢 XD (记得国外哪家公司来着数据迁移用卡车)
HENQIGUAI
2019-08-07 09:01:46 +08:00
当然百度网盘超级 vip
windedge
2019-08-07 09:02:32 +08:00
nginx 配置个静态文件服务,然后用 aria 多线程下载
hyuhai
2019-08-07 09:04:19 +08:00
需要几个步骤
1. 压缩 如果是普通文本文件会压缩的比较小了
2. 切割 使用 split 或其他文件切割为大小均等的文件块 以减少单位块文件传输失败的概率 加快并行传输效果
3. 伪装 无论是推送模式还是拉取模式 都建议伪装成常用且不容易被攻击的服务 改 80 或 443 等端口 或伪装为 websocket 或 http,https 协议
上面做好之后
1. UDP 传输 , 在你的链路较稳定的情况下优先推荐使用该协议工具 nc 可以简单测下
2. TCP 传输 , 在你的链路不稳定的情况下推荐该协议
最后 针对以上两种协议找到适合自己的 然后去网上找工具 不管是推还是拉的方式 最好两端都支持多线程或断点续传 找不到合适的 自己写一个也不是很复杂
herotiga
2019-08-07 09:05:59 +08:00
量子通信啊,传输的过程没时延,时间主要就花费在将数据注入信道和接收数据以及设备中的稍许开销

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/589573

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX