两台速度不同的电脑如何通信

网络工程 以太网 网络 带宽
2021-07-11 06:41:36

这是一个极其基本且可能同样愚蠢的问题,我永远找不到明确的答案。

假设我们有两台计算机,一台可以以每秒 10 位的速度传输数据 (A),另一台可以以每秒 2 位的速度接收数据 (B)。现在这都是理论,偏离 LAN 卡规格。如果 A 尝试向 B 发送一些 50 位长的信息并在 5 秒内以 10 bps 的速度传输它,那么 B 需要 25 秒才能使用它——这是如何工作的?该信息在传输后的 20 秒内在哪里存在?

我可以想象,使用 TCP A 将重新发送包,直到它得到对它们的全部确认,这会降低 A 的性能,因为必须整天重新发送包(也需要对此想法进行确认),但是使用 UDP 或其他此类协议问题仍然存在。

4个回答

我可以想象,使用 TCP A 将重新发送包,直到它得到对它们的全部确认,这会降低 A 的性能,因为必须整天重新发送包(也需要对此想法进行确认),但是使用 UDP 或其他此类协议问题仍然存在。

TCP具有“滑动窗口”机制,控制设备间的数据流向,该系统不仅管理基本的数据传输过程,还用于保证数据的可靠发送,也用于管理设备间的数据流向确保有效传输数据,而任一设备发送数据的速度都不会超过另一个设备的接收速度。”

有关滑动窗口机制如何工作的更多信息

对于直接连接的计算机,两者在相互发送时需要使用相同的速度。

以不同的速度传输和接收需要将数据分成数据包和计算机之间的某种数据包缓冲区。这样的缓冲区是网桥(交换机的工作方式类似于网桥)或路由器的一部分。中继器(和集线器)没有缓冲区,不能改变速度——除了双速集线器,它使用网桥并在不同速度之间缓冲数据包。

这些缓冲设备首先以发送方的速度接收数据包。当它完成时,他们决定它应该去哪里并以通向它的链接的速度将它转发到目的地。在较大的网络中,这可以在中间目的地重复多次,直到数据包到达其最终目的地。设备做出转发决策的方式可能会有很大不同,这是交换机和路由器之间的主要区别。

正如其他答案已经指出的那样,这种跳跃和速度变化会导致网络和使用中的协议需要解决的许多问题。

除了关于速度匹配直连系统的完全正确的答案......

互联网的基本原理之一(包括所有私有路由部分)是间接连接的快速主机 A 可以与慢速主机 B 完美通信,甚至无需了解第 2 层机制。层的分离意味着我们不必在广泛不同的技术和经济环境(例如 NASA 和幼儿园)之间具有直接的速度兼容性,而它们在限制范围内仍然可以完美地进行通信。

对于直接连接的计算机,NIC 的速度必须匹配,手动设置或通过自动协商,否则将无法连接。

如果您有一个中间设备,例如一个交换机,它允许不同接口上的不同速度,那么帧可能会从较快的计算机丢弃到较慢的计算机,因为较慢的链接将被超额订阅。

是否重新发送数据取决于所使用的传输协议(OSI 第 4 层)。例如,无连接协议,例如 UDP,由应用程序确定丢失的数据报并请求重新发送它们,否则它们就会丢失,这对于某些应用程序来说可能是一件好事,尤其是实时应用程序,例如 VoIP ,在那里重新发送丢失的信息可能是有害的(您不想要有用的声音)。面向连接的协议,例如 TCP,将处理丢失数据包的请求。

NIC 速度之间的这种差异肯定会影响性能。