ADSL 的 UDP 数据包转发速率是否与数据包大小严格线性?

网络工程 以太网 协议理论 广告 自动提款机 pppoe
2021-07-26 22:28:30

假设 ADSL2 Annex A 设备的上传速度为 300kbps;使用 TCP 连接进行测试。现在假设我想以最大可能的速率*发送 8 字节的 UDP 保持活动数据包。

由于数据包的尺寸很小,有效数据包转发速率是 4,800 p/s 还是比这个低很多?

UDP 的数据包转发率是否与数据包大小严格线性?(即大小的一半,速率的两倍。)

* 该应用程序的目标是通知尽可能多的不同已知对等方,该对等方“活跃并开放业务”,而无需集中跟踪器。最大数据包转发率定义了应用程序的 P2P(稀疏)网状网络的最大分散大小。

1个回答

ADSL 的 UDP 数据包转发速率是否与数据包大小严格线性?

答案是“不,因为 ADSL 线路中使用的 ATM AAL5 填充的可变性质”。

由于您不确定 ADSL 调制解调器上使用了什么封装,我假设它是PPPoE,大多数提供商使用PPPoE进行客户连接。我还假设您已经测量了调制解调器可用的全部 ATM 带宽。我做了其他几个假设……所有这些假设见下文。

由于数据包的尺寸很小,有效数据包转发速率是 4,800 p/s 还是比这个低很多?

它远小于 4800 pps,因为 PPPoE 需要 ADSL 调制解调器将整个以太网帧封装在 ADSL 有效载荷中。要找到这条 ADSL 线路上 8 字节 UDP 数据包的转发率...

  1. 首先,当您测量下载速度时,我们必须找出每秒发送的 PPPoE 数据包数。鉴于问题中 300Kbps(1452 字节 TCP 有效负载)的假设,计算每秒 PPPoE 数据包 (pps)...

    (300*1000 bps) / (1452 Bytes/packet * 8 bits/Byte) = 25.826 1452 字节 TCP pps

  2. 现在我们需要计算通过 PPPoE 的 300Kbps 的 1452 字节 TCP 有效载荷所需的每秒 ATM 信元数……假设 AAL5 MUX PDU 是 1536 字节,包括填充,这相当于每个 PPPoE 数据包(1452 字节)有 32 个 ATM 信元TCP 有效载荷)。

    (25.826 PPPoE pps) * (32 ATM Cells per PPPoE packet) = 826.45 ATM Cells per second (826.45 ATM Cells per second) * (53 bytes per ATM cell) * (8 bits per Byte) = 350413.22 bps

  3. 最后,我们可以使用这个数字来推导出 8 字节 UDP 有效载荷的数量……每个封装在 PPPoE 中的 8 字节 UDP 数据包是 2 个 ATM 信元……

回答

(826.45 cells per second) / (2 cells per UDP packet) = 413.22 8-byte UDP pps

参考与假设

参考资料:

我假设:

  • 的 LAN 上有 1518 字节的以太网 II帧...
  • 您在 ATM 层有一个恒定的比特率上传(ADSL 使用 ATM 信元)
  • 您的提供商需要PPPoE封装
  • 您的局域网没有速率限制
  • 当您测量 300Kbps 的 TCP 有效负载时,您测量了 ADSL 调制解调器 ATM 信元容量的 100%

具有 8 字节有效载荷的通用以太网 UDP 数据包,在PPPoE 中看起来像这样......

+------------------------------+
| Ethernet II Header: 14 Bytes |
+------------------------------+
|     PPP Header: 2 Bytes      |
+------------------------------+
|    PPPoE Header: 6 Bytes     |
+------------------------------+
|    IPv4 Header: 20 Bytes     |
+------------------------------+
|      UDP Header: 8 Bytes     |
+------------------------------+
|      UDP Payload: 8 Bytes    |  <------ Payload here
+------------------------------+
| Ethernet padding to 64 Bytes |
|     This pad is 2 Bytes      |
+------------------------------+
|   Ethernet CRC32: 4 Bytes    |
+------------------------------+

具有 PPPoE 和 8 字节 UDP 有效载荷的通用 AAL5 MUX PDU 如下所示……使用 AAL5 填充,总 PDU 为 96 字节,即 2 个 ATM 信元。

+------------------------------+
| Ethernet II Header: 14 Bytes |
+------------------------------+
|     PPP Header: 2 Bytes      |
+------------------------------+
|    PPPoE Header: 6 Bytes     |
+------------------------------+
|    IPv4 Header: 20 Bytes     |
+------------------------------+
|      UDP Header: 8 Bytes     |
+------------------------------+
|      UDP Payload: 8 Bytes    |
+------------------------------+
| Ethernet padding to 64 Bytes |
|     This pad is 2 Bytes      |
+------------------------------+
|   Ethernet CRC32: 4 Bytes    |
+------------------------------+
| AAL5 Padding: Up to 47 Bytes |  <------ Used to keep the PDU at even 48-byte ATM payloads
|     This pad is 24 Bytes     |
+------------------------------+
|  AAL5 CPCS Trailer: 8 Bytes  |
+------------------------------+

PPPoE 中的通用以太网 MTU 大小的 TCP 数据包看起来像这样......

+------------------------------+
| Ethernet II Header: 14 Bytes |
+------------------------------+
|     PPP Header: 2 Bytes      |
+------------------------------+
|    PPPoE Header: 6 Bytes     |
+------------------------------+
|    IPv4 Header: 20 Bytes     |
+------------------------------+
|     TCP Header: 20 Bytes     |
+------------------------------+
|   TCP Payload: 1452 Bytes    |  <------ Payload here
+------------------------------+
|   Ethernet CRC32: 4 Bytes    |
+------------------------------+

带有 PPPoE 和 1452 字节 TCP 有效载荷的通用 AAL5 MUX PDU 看起来像这样……使用 AAL5 填充,总 PDU 为 1536 字节,即 32 个 ATM 信元。

+------------------------------+
| Ethernet II Header: 14 Bytes |
+------------------------------+
|     PPP Header: 2 Bytes      |
+------------------------------+
|    PPPoE Header: 6 Bytes     |
+------------------------------+
|    IPv4 Header: 20 Bytes     |
+------------------------------+
|     TCP Header: 20 Bytes     |
+------------------------------+
|   TCP Payload: 1452 Bytes    |
+------------------------------+
|   Ethernet CRC32: 4 Bytes    |
+------------------------------+
| AAL5 Padding: Up to 47 Bytes |  <------ Used to keep the PDU at even 48-byte ATM payloads
|     This pad is 10 Bytes     |
+------------------------------+
|  AAL5 CPCS Trailer: 8 Bytes  |
+------------------------------+