Solaris/UNIX:snoop 是否有可能减慢网络流量?

Solaris/UNIX:snoop 是否有可能减慢网络流量?

这是我的看法。

网络活动的副本被写入缓冲区,并snoop从缓冲区读取。只要 snoop 能够足够快地获取数据(直接写入文件比写入终端或 er 更快bzip),那么缓冲区就永远不会填满。

但是如果网络活动量很大,并且snoop无法在数据进入时快速写出(无论出于何种原因),则snoop必须等待,因此原始缓冲区就会变满。

如果缓冲区变大,会发生什么情况?

  • 为了实现最大吞吐量,缓冲区会无限增大。:-/
  • 为了降低内存使用率,可能会排除一些数据。:-o
  • 为了获得稳定的结果,网络 I/O 会受到瓶颈限制,直到缓冲区中有更多空间。B-)

我对 Solaris 特别感兴趣,但有关其他 UNIX 系统的信息也很有趣。

答案1

我认为监听程序丢弃数据包是为了在活动高峰期不延迟它们。

Snoop 提供了 -D 开关来显示捕获期间丢弃的数据包数量。

-s snaplen交换机可用于在snaplen字节后截断数据包捕获,这意味着在高流量期间缓冲区溢出的可能性较小。

手册页的警告部分也提到了这一点

实时数据包解释的处理开销要高得多。因此,数据包丢失数量可能会更高。为了获得更可靠的捕获,请使用 -o 选项将原始数据包输出到文件并离线分析数据包。

相关内容