理解“cat proc / net / udp”

时间:2015-12-17 08:37:37

标签: linux network-programming 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时,意味着有更多的数据包等待发送,而且应用程序的速度不足以发送这些数据包?

1 个答案:

答案 0 :(得分:5)

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

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

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

应用程序通常不需要担心任何这些数字。