通过两个网络设备之间的带宽 link 同时发送两个包?

sending two packages simultaneously through a bandwidth link between two network devices?

如果我有两个网络设备 A 和 B,带宽 link 为 1000 Mbps,我想同时从设备 A 向设备 B 发送两个大小为 500 Mb 的包。它在现实生活中是如何运作的。选项 (A) link 一次只传输一个包,直到到达目的地然后发送下一个包。例如,如果我在 10:00 pm 发送了两个包裹,第一个包裹需要 (500/1000)(transmission delay) = 0.5 秒才能在 10:05 pm 到达设备 B,然后下一个包裹将在 10:10 下午到达。选项 (B) 两个包将同时发送,并在 10:05 pm 全部到达目的地(设备 B ),因为带宽可以承受两个包 500 + 500 = 1000 Mbps。如果第二个选项是正确答案,那么如果我想发送三个包,每个包大小为 500 Mb,这是否意味着第三个包将由于带宽效率低下而丢失?请帮忙

我正在使用模拟器,在该模拟器中,一次只传输一个包,直到到达目的地,然后发送第二个包。这就是现实生活中寄包裹的方式吗??

现实世界的网络要复杂一些。首先,您发送的数据不仅仅是作为一大块数据发送,而是通过不同的网络层拆分为段、数据包、帧和位。如果您想了解更多信息,请阅读 OSI-model.

如果数据通过普通网络电缆(如 CAT6)发送,则使用以太网协议,根据版本使用不同的编码协议:虽然不再使用 Manchester Code 可能是最容易获得的粗略地了解那些做什么。通过这种方式,每个 time-slot 只能接收到一位。 如果您使用的是光纤载波,则可以同时传输多个信号(比较 multiplexing)。由于这需要更复杂的硬件,因此它不在两台(普通)计算机之间使用,而是在供应商和城市之间使用。

在您的特定情况下,某些应用程序发送的数据首先由操作系统处理,然后由网卡处理,直到它被分成 1518 字节的以太网帧(比较 MTU),然后发送通过由传输技术确定的特定方法编码的网络。在主机 B 上,相同的过程相反。您的两个 data-packets 的不同部分可以依次发送、交替发送或以其他形式发送,这将由不同的层决定并取决于它们的确切配置。

为什么要同时发送两个包裹?这不是一个修辞问题。同时发送音频和视频可能很有意义,因此音轨与屏幕上的事件相匹配。

从编程的角度来看,您将数据交给 OS。如果数据量很大并且 OS 没有足够的可用 RAM 来缓冲它,则此函数调用可能不会立即 return。

注意:当您谈论 500 Mb + 500 Mb = 1000 Mbps 时,您似乎混淆了大小和带宽。这些单位清楚地表明这不会像那样加起来。通过 1000 Mbps link 发送一个 500 Mb 的包确实需要半秒(500 毫秒),发送 3 个这样的包需要 1500 毫秒。 1000 毫秒的障碍并没有什么魔力会导致发送前两个包,但丢失第三个包。事实上,很有可能通过 10 Mbit 的线路下载 700 MB 的文件(~1 CD,5800 MBit)。这只需要 580 多秒。