有人能向我解释一下如何使用 TCP/IP 在网络上传输数据吗?假设我现在通过 1 Gbps 线路接收 500 Mbps 的数据。如果我将线路升级到 10 Gbps,我的数据速度是否会由于序列化而增加到 5 Gbps(更多通道可供数据移动,即使每个通道可能仍以相同的速度移动)?
我真的很困惑到底是什么决定了吞吐量,为什么实际吞吐量与标记的链接速度不同。我相信实际吞吐量是由往返时间决定的,但要实现 10 Gbps,这是否意味着您需要亚毫秒级的 ping?或者这是每通道的吞吐量,然后根据链接速度,您将该传输速率乘以适当的通道数?
答案1
有许多因素会限制数据传输速度,并且传输速度只能达到链路中最慢的链路。一旦进入 1Gbps 范围,硬盘速度等因素将成为最慢的链路,而不是网络适配器。
你也在绑带宽和潜伏把两者结合在一起,而你不应该这样做,这两件事彼此无关。让我们通过一个现实世界的例子来说明这一点,如果我有一个工厂,每秒可以生产 100 个小部件,那么我花一个小时还是一个星期将小部件交付给客户并不重要,只要我生产小部件的速度保持相同即可。如果我将工厂升级为每秒生产 1000 个小部件,我的送货卡车仍然需要相同的时间才能到达那里,我可能会派出更大的卡车或更多的卡车。
现在,高延迟会降低你的吞吐量,因为拥塞控制算法有效但是增加带宽不会影响您的延迟(从理论上讲,在现实世界中您可能会看到一些变化,但这是改变协议和设备的副作用)。
我强烈建议听听史蒂夫·吉布森在“安全现在!”上关于互联网运作方式的系列文章(从第 309 集),然后在几集之后继续介绍 TCP 的工作原理。它们详细介绍了 TCP 的工作原理,这可能会帮助您了解您想要什么。
答案2
单个主机无法满足您的 10Gbps 链路的带宽要求,除非它还具有 10Gbps 接口。通过交换机访问链路的许多主机都可以做到这一点(例如,假设您在 10Gbps 链路的这一侧有一个具有 10Gbps 接口的交换机),例如具有 10Gbps 接口的服务器。
所有协议(如 TCP 和 IP)都有开销。因此,您无法通过 10Gbps 接口以 10Gbps 的速度移动文件。
提高 MTU 可以降低开销,因为它会增加每个数据包的有效负载大小。这就是为什么千兆以太网的一个重要特性是“巨型帧”,允许最大 MTU 从 1500 增加到 8192。然而,这意味着如果数据必须通过具有较低 MTU 的接口,则必须进行分段。这可能会增加您的延迟时间(以毫秒为单位)。增加延迟的其他因素包括路由和切换流量所花费的时间。