了解 "cat proc/net/udp"

Understanding "cat proc/net/udp"

# cat /proc/net/udp | egrep "sl|3ADBFE0A"
  sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode ref pointer drops             
   16: 3ADBFE0A:007B 00000000:0000 07 00000000:00000000 00:00000000 00000000    74        0 40124 2 f203ca80 0                 
  509: 3ADBFE0A:0868 00000000:0000 07 00008C00:00000000 00:00000000 00000000     0        0 79208333 2 ea226340 0

我想寻求对 "cat proc/net/udp" 输出字段,尤其是 tx_queue 字段的更深入和更适合初学者的解释。如果我的理解是正确的,当这个 [tx_queue] 值大于 0 时意味着有更多的数据包正在等待发送并且应用程序发送这些数据包的速度不够快?

相反:如果您的应用程序生成数据的速度比网络适配器发送数据的速度快(通常是这种情况),则 tx_queue > 0。

tx_queue 是内核内存当前被尚未发送的传出数据包使用。它们还没有被发送,因为内核和网络适配器(不是应用程序)还不能发送它们,很可能是因为它们正忙于发送其他东西。

在此缓冲区中等待很短时间的适量数据是完全正常的。

应用程序通常根本不需要担心这些数字中的任何一个。