Recently, I find one of my server face a drop package problem in a specific minute
I have use following tcpdump to capture the the eth1 traffic during that minute.
How can I filter out the dropped package by the kernel or something else in this pcap file using wireshark? Or how do I know which package is dropped by the destination? can those dropped package by destination can be captured by tcpdump? asked 24 Nov '13, 08:14 newcryout |
One Answer:
you probably can't, as the kernel might have dropped the packets due to a lack of buffer space. If that was the case, libpcap (the capture library of tcpdump) will never have seen those packets either, so those dropped packets are not in the capture file. There is a small chance, that the packets have been dropped due to a frame checksum error. In that case you might (or might not) see those frames in the capture file. It depends where and when the kernel drops that kind of packets. Please apply the following display filter:
To see those dropped frames you need to do this:
Regards answered 24 Nov '13, 08:28 Kurt Knochner ♦ edited 24 Nov '13, 08:34
O.K. there are no checksum errors in that file, so I guess the dropped frames are being caused by missing buffer space at some time. In that case, please follow the procedure I mentioned. (24 Nov '13, 08:32) Kurt Knochner ♦ Hi Kurt, Thanks for the quick response. And you have give me a great idea of the mirror the port. before I do that, I have little more question for this drop package thing. As you have mentioned that, when package drop because of lack of buffer and checksum. these package will never seen by tcpdump. so if there is any other possibility that some package dropped by other reason can be seen by tcpdump (libpcap)? or I can say, all the package dropped by the kernel will never be captured by tcpdump (libpacap)? as I know all the tools used to capture package in linux are using the libpcap. I don't know if this libpcap can do some capture operation before linux kernel drop packages. because this eth1 is a slave NIC for the bond0. the traffic in the eth1, should be very low. this can be confirm in the pcap file I have attached. so I think the kernel will not drop the package because of the out of buffer reason. (24 Nov '13, 09:08) newcryout
I can't tell you. I have seen both cases. Packtes being dropped by the kernel were seen by libpcap and some were not depends on the reason for the drop.
see above.
Who knows. Maybe there was a microburst with lots of traffic to a multicast IP/MAC address and at some time your kernel buffer was filled for a short period of time. (24 Nov '13, 10:43) Kurt Knochner ♦ |
here is the uploaded tcpdump pcap file.
drop_link.pcap