如果我有一个典型的非管理型交换机,以 1Gps 连接到服务器,以 100Mbps 连接到多个客户端,交换机会缓冲数据包吗?
例如,如果两个客户端正在下载文件,服务器是否可以在第一个数据包传输完成之前为第二个客户端发送一个数据包?
答案1
如果我有一个典型的非管理型交换机,以 1Gps 连接到服务器,以 100Mbps 连接到多个客户端,交换机会缓冲数据包吗?
交换机会缓冲一定数量的帧,具体取决于型号。
如果两个客户端正在下载文件,服务器是否可以在第一个数据包传输完成之前为第二个客户端发送一个数据包?
“沿线”的含义不明确。一旦服务器完成向第一个客户端传输数据包(该数据包由交换机缓冲,随后以客户端的较低速率转发),它就可以向第二个客户端传输数据包。
基本上,以 1 Gbit/s 连接的服务器可以全速为 10 个以 100 Mbit/s 连接的客户端提供服务 - 假设它可以足够快地提供数据并且只有网络限制速度。
答案2
以太网交换机可以做两件事:
存储转发- 等到接收到整个帧后再发送。
突破- 一旦知道目标地址就开始发送帧。
目标 MAC 地址是以太网帧中最重要的部分,因此在直通交换机开始发送其收到的内容之前没有太多的缓冲 - 一些集线器具有“无碎片”功能,它会在发送前等待 64 个字节,以避免在发生冲突时打扰目的地。
在第一个数据包传输完成之前,服务器是否可以向第二个客户端发送数据包
例如,您的 PC 与其直接连接的交换机之间的通信每次只能处理 1 位,并且网络硬件会在一段时间内调制介质以“发送”数据。任何串行通信协议都是这样工作的。
因此,NIC 永远无法“一次”发送多个帧 - 它们会排队(服务质量会影响此排队顺序)并由服务器的网络堆栈和硬件协同处理。(NIC 组合/绑定可以使多个 NIC 像一个 NIC 一样协同工作。)
如果您向互联网传输某些内容,则几乎总是会有多个“跳跃” - 服务器将数据发送到您的交换机,然后转发到您的路由器,然后转发到可能的更多路由器,然后是您的 ISP 路由器,然后是您的 ISP 上游 IXP 等等。您的服务器的 NIC 不必等待所有这些跳跃完成,当然,它可以在 NIC 处理完当前帧后立即将另一个帧发送到交换机。
当然,在所有这些“跳数”之间,可能会有多个数据包在传输 - 而且它们可能会或可能不会按顺序到达另一端 - 这是 TCP 使用序列号和窗口解决的问题(UDP 不会)。不过,直通/存储和转发只会影响服务器和交换机之间的直接连接。
需要检查你的开关的规格才能了解它的功能。 这个例如,执行“存储并转发”操作。