在比较理想的环境下传输大量数据,是否可以用 UDP 完全替代 TCP?

2018-06-23 13:21:26 +08:00
 gaayyy

简单来说,就是内网大约 100 多台机器分布存放了一些较大的数据文件,每台大概有 2T 的样子,现在想把这些分散的文件集中备份到三套专用的存储服务器上。没办法拆硬盘,也没办法改变网络结构,大致计算了一下数据量,理想状态下,等待传输的数据量是:2TB * 1024 * 1024 = 2097152 MB, 而千兆以太网 1Gbps / 8 = 128MBps,存储服务器都是走的硬盘 RAID,硬盘写速率应该能跟上,所以一台机器时间大约是 2097152 MB / 128MBps / 3600 = 4.55 小时。

环境是纯内部网络,没介入互联网,机器都是 DELL 和 hp 的机器,交换机用的是 NetGear 千兆,硬件应该都没问题。但是时间限制只能在周末或者晚上操作。现在主要是考虑到千兆网的 128MBps 是理想状态下的速率,如果自己写一个文件传输的小工具,用 UDP 替代 TCP,这样对数据传输速率是否有改善?想了解一下是否有 v 友处理过类似的案例。

13506 次点击
所在节点    程序员
71 条回复
eurokingbai2
2018-06-24 13:26:25 +08:00
用 mpi 呗。。
ryd994
2018-06-24 14:52:30 +08:00
@likuku 你说的这是 smartnic,是另一回事了。我说的 tcp 性能问题局限于单核下。使用支持 receive side scaling 的网卡,利用多队列多连接完全可以跑满。
smartnic 普通企业用户用不到的,基本上是云厂商为主。实现虚拟网络,隔离不同用户的虚拟机,这个工作以前是由宿主机的虚拟路由器完成。到了高速网卡时代,这样做技术上不是不可以,但是要消耗大量的主机性能,成本太高了。smartnic 的硬件加速,主要是这些对 SDN 处理的加速。
也并不只是 AWS,国内外各大云的所谓“高性能网络”、“优化网络”,基本上都是这个。
dorothyREN
2018-06-24 19:36:01 +08:00
gamexg
2018-06-24 20:57:33 +08:00
@dorothyREN #63 不理解什么意思,硬件上已经是千兆网络了,想继续提升硬件只能上万兆网络或者多网卡聚合,用 AB 线看起来不会提升多少。
likuku
2018-06-24 21:21:24 +08:00
@dorothyREN
@gamexg 就是交叉对联线,普通常用网线两头都一样的线序标准(586A/586B),若一头是 A,另一头是 B,即 AB 线

AB 线可以让两张网卡直接通讯(里面一对数据收发线对掉,让两张网卡收发对应起来)

千兆网卡的标准内置了“线序自动侦测和自动翻转",其实已经可以用一根普通网线对联两张网卡。

我实践中也遇到过两张千兆网卡(最近 3 年内),使用优质网线(超五类,六类)直接对联,实际传输速率却非常低,
直到用两根网线和一台交换机把它们连起来才达到正常速度(Debian/Ubuntu)。
gamexg
2018-06-24 21:26:26 +08:00
@likuku #65 明白 AB 线的意思,不理解的是目前已经是千兆网络了,改成网线直连比较麻烦效果应该也有限。
而且如果本身已经是多网卡聚合,那么这么做还会是负面效果。
DevNet
2018-06-24 23:01:41 +08:00
@dorothyREN 现在网卡都是自动反转了,而且服务器用网线直连也解决不了网卡瓶颈。

不考虑成本的话,合理的办法就是给存储网络单独新建一套 SAN,服务器插 HBA 卡,全光纤存储交换。也不用改变现有的 LAN。

楼上大部分都被协议带偏了,内网传输基本上不需要考虑协议快慢吧。公网的话,其实可以看看谷歌的 QUIC,基于 UDP,又做了一些可靠性的保证,比 TCP 快,比 UDP 可靠。chrome 浏览器和谷歌服务器通讯一直在用这个协议。这个协议也已经提交到 IETF,应该不久之后就会标准化。
Reficul
2018-06-24 23:46:04 +08:00
非要重新发明 TCP 的话,有个叫 udt 的协议。rsync 其实挺好的
msg7086
2018-06-25 01:46:21 +08:00
@dorothyREN
这都 8012 年了,我以为大家都知道网卡支持自动翻转了呢……
这还需要单独拿出来 at 所有人提一遍?侮辱人也要有个限度。

@likuku 服务器级的一般没这个问题吧。

@DevNet 如果能加钱的话,应该单独给存储上万兆,然后用千兆交换机级联口连上,只要背板速度够,还是能跑出万兆速度的。
QUIC 我是等了太久了,好几年前就想上的,一直没见广泛实现。
Caddy 真的是牛逼,各种新特性都是他先上的。
webjin1
2018-06-25 03:24:58 +08:00
如果是局域网,每个传输节点网络可控的话,还不如把交换机每个端口启用巨型帧,电脑网卡也启用。
yippees
2018-06-25 16:23:00 +08:00
@dorothyREN 另外 100 多台机器

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

https://www.v2ex.com/t/465240

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

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

© 2021 V2EX