如果链路当前忙,不能发送数据包?

网络工程 路由器 联网
2022-03-02 22:09:46

如果我的问题听起来很愚蠢,我是网络新手,我正在阅读一本教科书,上面写着:

数据包的出站链路是通向路由器 B 的链路。只有当链路上当前没有其他数据包正在传输并且队列中没有其他数据包在其前面时,才能在链路上传输数据包;如果链路当前正忙,或者如果有其他数据包已经为该链路排队,则新到达的数据包将加入队列。 在此处输入图像描述

我在这里很困惑,假设A和B之间的链路称为L,所以当前L中正在传输一个称为p1的数据包,并且L中没有排队的数据包,现在数据包p2到达,同时p1是还在L的中途,这是否意味着p2需要等到p1完成它的旅程?如果是,那么它不是非常低效吗?

2个回答

书中的描述是非常笼统的描述,因此具体媒体可能会在细节上有所不同。当它说正在传输时,它们意味着路由器A正在发送L上的电信号。一旦A完成,它可以发送p2。它不必等待 p1 到达路由器 B。

电信号到达 B 所需的时间是传播延迟。

开始联网时通常不直观的一件事是,实际获取线路上的比特的时间有多长,因此物理上的数据包有多大。

假设您在光纤上进行 100Mbps 传输。光纤中的光速大约为 2x10^8 m/s,因此每个比特大约有 2m 长。一千字节的数据包大约是 2mx8x1000=16km 长。

你可能会发现火车是一个有用的包的比喻,记住它不是在特定时间离开的东西,它是在特定时间开始离开的东西。