【问题标题】:How to find out whether the packet transferred over UDP is lost or dropped?如何确定通过 UDP 传输的数据包是否丢失或丢弃?
【发布时间】:2015-03-05 05:33:32
【问题描述】:

我是网络新手。我有一个小小的疑问。 我正在使用 SNMP 向目标发送警报,但目标在指定时间内未收到警报。我觉得数据可能会丢失或丢失。

现在我的问题是:我应该在什么基础上得出亏损或下跌的结论? 或者会有什么其他原因导致没有收到陷阱?

【问题讨论】:

  • 你没有。 UDP 是一种直接暴露网络不可靠性的协议,因此不能保证任何数据报、序列甚至接收确认的成功传输——所有这些都是 TCP 的用途。
  • 您可能想阅读UDP vs TCP
  • 谢谢你的回复。我问这个是因为如果数据被丢弃,我可以看到一条消息说数据包被丢弃(在我生成的日志文件中)。现在,我没有收到那个警报在目标上,并且 drop 的值为 = 0。所以我认为他们可能是丢包而不是丢包。但我想要一个证据来得出结论。
  • 这个问题可能有助于解释为什么 UDP 适合 SNMP:stackoverflow.com/questions/3565975/…
  • 如果您想要可靠地传递警报,也许您可​​以查看 SNMP Inform 消息,即使在使用 UDP 时也提供一种传递回执功能。

标签: snmp packet-loss


【解决方案1】:

如果我假设您对“丢失”的定义是指其中一个网络设备(交换机、防火墙等)没有将其转发到下一跳,而“丢弃”则意味着您的网络板没有发送它到您的应用程序(例如输入缓冲区已满,...)。

在这些假设下,您无法在您的应用程序中知道数据包已“丢失”或“丢弃”。如果您想确定,您可以在您的计算机上安装网络嗅探器,例如Wireshark,以确保您的数据包已交付(但可能未由您的应用程序处理),或者配置您的网络设备(如果可以)记录数据包丢弃(意思是整个网络的“损失”)。

【讨论】:

  • 感谢您提供的信息。是的,正如你所说,他们没有办法。我会尝试通过安装wireshark来找到它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-29
  • 2014-03-07
  • 1970-01-01
  • 2015-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多