如何識別自定義Wireshark解剖器中丟失的UDP幀?Wireshark解剖器:如何識別丟失的UDP幀?
我已經寫了CQS feed(reference page)的自定義解剖。我們的服務器在收到此饋送時存在空白。根據Wireshark,一些UDP幀永遠不會被接收。我知道這些幀是因爲我們所有其他服務器都沒有間隙而發送的。
甲CQS幀由多個消息,每個具有其自己的序列號。我的自定義解剖提供了以下數據,以Wireshark的:
cqs.frame_gaps - the number of gaps within a UDP frame (always zero)
cqs.frame_first_seq - the first sequence number in a UDP frame
cqs.frame_expected_seq - the first sequence number expected in the next UDP frame
cqs.frame_msg_count - the number of messages in this UDP frame
而且我顯示每個自定義列這些值,如在此截圖:wireshark screenshot http://img692.imageshack.us/img692/9484/wiresharkcqs.jpg
我嘗試添加代碼到我的解剖,僅僅保存最後處理的序列號(作爲本地靜態),並在解剖器處理幀時標記差距,其中current_sequence != (previous_sequence + 1)
。這不起作用,因爲可以按隨機訪問順序調用解剖器,具體取決於您在GUI中單擊的位置。所以,你可以處理幀10,然後框架15,然後框架11等
有沒有辦法爲我的剝離知道,如果缺少它之前出現的幀(或後面的幀)?
解剖器是用C寫
(另見A companion post on serverfault.com)
我很久沒有碰過這個,但我懷疑這是答案。我沒有意識到包被解剖了兩次。 – 2012-10-30 11:43:18