UDP 数据包丢失?

UDP 数据包丢失?

多播数据包在服务器之间丢失,多播工作在不可靠的 UDP 上,因此预计会丢失数据包

问题:是否有方法或实用程序可以在操作系统内核级别捕获 udp 数据包?

答案1

这个问题目前还不太清楚,但如果您在 Linux 上寻找 UDP 数据包捕获工具,您可以使用tcpdump它,它应该默认安装在您的发行版中或安装在您的发行版的存储库中。

捕获主机具有可见性的所有 UDP 数据包的示例(以 root 身份或使用 sudo 查看所有数据包,甚至包括那些不是发往主机而是“经过”的数据包):

tcpdump -i <net_interface> -vv udp

<net_interface>用 eth0、p1p1、ens32 等替换您当前的网络接口。

您可以使用-w <file>交换机将数据包存储在文件中,以便稍后使用 tcpdump 或 wireshark(GUI 工具)读取。

答案2

关于在 Linux 服务器上捕获 UDP,您可以使用以下内容。

https://stackoverflow.com/questions/7931746/how-can-i-use-tcpdump-on-unix-to-view-messages-sent-to-a-specific-multicast-addr

tcpdump -nqi eth0 -s0 -w /tmp/$HOSTNAME-udp-trace.pcap

在两个服务器上循环运行 netstat 命令:

while true; do date >> /tmp/netstat_-s-$HOSTNAME.out.txt; netstat -s >> /tmp/netstat_-s-$HOSTNAME.out.txt; sleep 1; done

相关内容