2

我有一个运行内核 3.8 (BBB) 的 linux 嵌入式系统。网络层是这样的:

  • 应用程序(使用 UDP/IP 和 ICMP/IP 协议)
  • 通过串行 tty 进行 pppd
  • 串口
  • 通过 USB 串行端口(慢速链路,19kbps)提供透明无线电发射器/接收器的 USB 硬件

当无线电链路(或者可能是 USB 硬件)出现问题时,不会发送包(因此它们会在某个地方缓冲——可能在 ppp 或内核中)。

但是,由于环境嘈杂,链路每小时会断开/接通很多次。

包在某个地方被缓冲,因为当链接建立时,所有缓冲的包都会被发送(暂时超载低速链接)。

我见过一些罕见的情况,我得到了 RTT 为 400 秒的 ICMP-echo-r​​eply!(甚至超过 255 秒或跳跃所允许的最大 TTL)

我的问题:

  • 如何知道这些包是否被内核、pppd 或 usbserial 缓冲?
  • 如何告诉(手动)(内核或pppd或usbserial)丢弃输出缓冲区?
  • 如何检查(或限制)这些缓冲区使用了多少内存?
4

0 回答 0