例如,是否在硬件级别进行了一些调度,以比特流中一个接一个地发送整个数据包,以防止单个数据包被分解,或者如果它们在通过网络传输时被拆分(这里和那里的奇数位)他们将如何重建?
单个物理数据包如何保持在一起?
网络工程
以太网
硬件
2022-02-27 22:26:19
3个回答
首先,数据包不是物理的;)
我假设您实际上是指以太网帧(而不是数据包) 一个简化的解释:以太网硬件接收队列结构中的整个帧,一次获取一个字节,并一次将其从接口输出一位。然后它获取下一个字节,依此类推,直到帧完成。因为以太网硬件一次只在一个帧上运行,所以不可能交错两个部分帧。
从7 个 osi 层开始,这将使您了解数据如何在应用程序层之间传输。
总而言之,每个 tcp 数据包都包含一个序列号,在接收端它们都放在一起,如果缺少一个,则从源请求它。
编辑:Q - 第 1 层的实际数据包。
所有现代网络都使用全双工以太网,以物理电缆的最大传输速度(例如 1Gbits/s)一次性发送单个 IP 数据包。
数据在数据包级别而不是位级别进行交织。因此数据包 1,通常 <1500bytes * 8bit = 12kbit 在一个突发中发送。(在千兆链路上这需要 12k/1Gb/s= 12uS,在 256kBit 链路上需要 47mS)
这也是为什么路由器和交换机有缓冲区来保存数据包,直到它们可以从拥塞的端口传输出去。
在较慢的链路速度下,您必须应对语音流量的序列化延迟,即使 VoiP 数据包被标记为高优先级,如果它到达一个刚刚开始发送另一个数据包的链路,它必须等待数据包离开才能被冲出界面。
在运行 ppp 的非常慢的串行链路 <1Mbit 上,可以使用链路分段来确保串行化延迟不会对阻塞在传输的大数据包后面的 VoiP 流量造成太大的抖动。
如果我理解正确的话,你所说的所谓的“比特”只不过是一个电信号。意思是,当数据通过电缆发送时,它只是一个信号,然后在接收端被读取(以我自己不太理解的方式)。
其它你可能感兴趣的问题