不同数据/物理链路上协议的带宽计算

网络工程 带宽
2021-07-14 04:47:35

我正在尝试计算特定协议在不同链接上的带宽利用率。首先,我在以太网上使用了这个协议。例如 70kbytes/sec,这将是在 TCP 层,即它将包括 L1 到 L4。我通过执行 Wireshark 跟踪得到了这个答案,然后是统计 -> 摘要,它为我的过滤器提供了每秒平均​​字节数。

现在我想计算/估计以下链路类型的情况:802.1Q、ATM、HDLC、PPP、帧中继和光纤。

这样做的好技术是什么?

如果我取平均数据包大小,然后去除以太网开销,并为每种链路类型添加不同的开销,是否就足够了

例如,每秒 70 KB,即 158223 字节超过 315 个数据包。那么平均数据包大小将为每个数据包 502.2952 字节。

然后我可以只删除以太网的 18 个字节,然后添加以下内容以获得每个不同传输的带宽:

ATM               ?
Ethernet          18
Ethernet 802.1Q   22
HDLC          ?
PPP               7
FrameRelay        7
Fiber         ?

能否也帮我补一下上面缺失的开销值?

1个回答

假设你没有被标记,你当前在网络上的堆栈是:

  • 7B 序言
  • 1B SFD
  • 6B DMAC
  • 6B SMAC
  • 2B型
  • 20B IPv4
  • 20B TCP
  • nB应用数据
  • 4B CRC
  • 12B IFG

第一件事非常重要,您正在查看 L2 开销,您还必须考虑 L1 开销。
对于以太网前导,sfd 和 ifg 是 L1,它们不是真正的字节,但以太网严格以字节大小的时间量定义它们。

对于 ATM,您无法通过您的方法获得非常准确的读数,因为它假定静态开销。如果您尝试发送 49B 的有效载荷,您会将其放入单个以太网帧中,但您需要两个 ATM 单元,第二个单元有 52B 的开销和 1B 的数据。
此问题在 HDLC、PPP 或 FrameRelay 中不存在,您的方法将给出这些问题的近似值。

如果你想要真正准确的数据,你需要知道每个数据包发送的大小,然后计算它们在序列化到给定 L2 技术的给定 L1 技术时是什么。
您发送的数据包越大,您的计算对近似方法的敏感度就越低,因为开销将是较小的贡献者。