ADSL 的 UDP 数据包转发速率是否与数据包大小严格线性?
答案是“不,因为 ADSL 线路中使用的 ATM AAL5 填充的可变性质”。
由于您不确定 ADSL 调制解调器上使用了什么封装,我假设它是PPPoE,大多数提供商使用PPPoE进行客户连接。我还假设您已经测量了调制解调器可用的全部 ATM 带宽。我做了其他几个假设……所有这些假设见下文。
由于数据包的尺寸很小,有效数据包转发速率是 4,800 p/s 还是比这个低很多?
它远小于 4800 pps,因为 PPPoE 需要 ADSL 调制解调器将整个以太网帧封装在 ADSL 有效载荷中。要找到这条 ADSL 线路上 8 字节 UDP 数据包的转发率...
首先,当您测量下载速度时,我们必须找出每秒发送的 PPPoE 数据包数。鉴于问题中 300Kbps(1452 字节 TCP 有效负载)的假设,计算每秒 PPPoE 数据包 (pps)...
(300*1000 bps) / (1452 Bytes/packet * 8 bits/Byte) = 25.826 1452 字节 TCP pps
现在我们需要计算通过 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
最后,我们可以使用这个数字来推导出 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 |
+------------------------------+