便宜的网卡是不是只提供个插口,基本不参与运算?

2019-10-11 01:44:45 +08:00
 lihongming

不知道我的理解是不是正确。

便宜的网卡是不是只提供个插口,运算工作都转给了 CPU ?而贵的网卡是自己有专用计算芯片,不仅能减轻 CPU 负担,而且专用芯片处理速度比通用 CPU 更快?

4760 次点击
所在节点    宽带症候群
11 条回复
CEBBCAT
2019-10-11 05:30:09 +08:00
要不先定义一下便宜?常见的 RTL8111 可以搜来数据表格,应该就有答案了
CEBBCAT
2019-10-11 05:45:26 +08:00
@CEBBCAT 搜是搜到了,就是我英语太差了。。。

https://www.recomb-omsk.ru/published/SC/html/scripts/doc/A01-RTL8111EVL-F(RTL8111E-VL-CG_Datasheet_1%201.pdf

根据我看懂的那一点,我想还是有不弱的计算能力的。专用芯片( ASIC ?)除非是骗经费不然怎么想都要比通用芯片来得快
---
楼主这个问题倒是奇怪,我预感楼主说明白问题的来源后大家应该都将有啼笑皆非的感觉
xxq2112
2019-10-11 06:03:31 +08:00
硬网卡、软网卡的差异?

@CEBBCAT RTL81xx 都是硬网卡……
lihongming
2019-10-11 06:43:05 +08:00
@CEBBCAT 我就是想知道十几块钱的网卡和几百块钱的网卡到底有什么区别
zhjits
2019-10-11 08:37:51 +08:00
差不多是这样吧,比如 ConnectX-5 这种网卡,常见的负载都能 offload,很省 CPU 的
cubecube
2019-10-11 09:45:42 +08:00
@lihongming 有线同速率没啥区别。有的网卡性能强点,延迟低一些而已。无线网卡的话,因为无线频率差别,差距比较大
ungrown
2019-10-11 12:33:16 +08:00
cpu 负责跑驱动程序,其他的都是硬件完成。
你以为网卡应该很贵吗?
iwtbauh
2019-10-11 13:04:29 +08:00
然而并不一定会更快,不要迷信 offload

使用专用芯片 offload 是会损失可用性的,而且在链路层设备上访问上层数据是很肮脏且(有可能会)违反网络中立性原则的。这可能导致性能反而下降!

比如 Intel(R) Ethernet 10 Gigabit PCI Express Family of Adapters 的驱动程序手册中的警告信息显示:使用 IP 转发或桥接时,如果不禁用 LRO,可能导致吞吐量很低甚至内核恐慌( https://downloadmirror.intel.com/14687/eng/readme.txt

而且 offload 会大大降低可用性。例如,如果你的网卡仅支持 IPv4 Checksuming Offload,你怎么办?为了 IPv6,你只你禁用此项 offload。

对于无线网卡这种标准和新策略变化更快的设备上,这种效应就更明显了。Full-MAC 设备性能可能通常情况下更好,但一旦新的机制出现,可能能解决的办法只有更换硬件(当没有高质量 Soft-MAC 驱动程序时)。使用 Soft-MAC 友好的无线网卡,就可以通过软件在旧硬件上实施 WPA3 新的、更强的加密协议,MESH 网状网络等等而无需更换硬件。

计算机网络为何分层设计,打破分层获得一时的速度是否真的值得。而且现代的 CPU 已经非常强大,这点消耗其实并不大。

这也是对”机制“和”策略“分离的考虑。将机制和策略分离损失一些性能获得更高的可用性,还是糅合在一起获得最大性能但一旦需要对策略的改变都将动摇机制。
jedihy
2019-10-11 14:44:58 +08:00
@iwtbauh 虽然我也讨厌 offload,但速度的提升是很大的,你平时用 1G/10G 的感觉没区别。我们用的 40G/100G LSO 开不开影响非常大,数量级的差距。

V4 checksum 跟 V6 有什么关系?这个 capability 本身就是区分 V4 和 V6 的。V6 没有 offload,IP 层就会自己算 checksum。
ryd994
2019-10-11 15:02:20 +08:00
@iwtbauh
公有云三大头的 TCP 吞吐性能
单线程 Azure>AWS>GCE
多线程 AWS>Azure>GCE
原因在于,Azure 用 FPGA 处理 SDN,即使单线程也能跑满线速。AWS 用 ASIC+SoC,所以单线程能力有限
多线程可以 RSS 到多个核,所以总带宽够高。GCE 纯软件处理,所以无论带宽还是延迟都不行,不过人家卖点也不在于网络吞吐性能。

你举的例子是硬件还不够好而已。超大带宽的服务器网卡都是可以刷固件的。有 bug 刷固件就好了。钱给够的话,别说修 bug,加 feature 都可以。

CPU 包转发能力单核极限在 10G 左右,如果还要带各种 SDN 策略的话能有两三 G 就算不错了。不靠硬件加速你拿什么去顶大带宽? 100G 就 100 个核么?
lihongming
2019-10-12 01:06:39 +08:00
呃!看你们讨论的这么高大上,都是服务器的需求。看来家用十几块钱的就够了。

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

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

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

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

© 2021 V2EX