[問題] UDP 封包接收延遲問題

作者: mine1988 (三民)   2014-10-13 17:50:49
各位先進您好,
最近小魯我在撰寫一個網路相關的程式,
其中需要計算One-Way Delay(封包發送時間 - 封包接收時間)的程式,
程式架構為
Sender 每 1ms 發送一個UDP封包
Receiver 進行接收
目前碰到的問題是
Sender 發送多個封包至 Receiver 時,
用Wireshark監控網路時,發現UDP封包已經收到了,
但是C# 撰寫的 Receiver 不會立刻收到封包,
時常會出現「多個封包同時收到」的現像
例如:
在時間點 a、b、c、d、e 時 WireShark 監看收到五個封包,
但時間點 e 時,C#撰寫的Receiver才會接收到這五個封包。
Sender透過Wireshark監探的結果,應該不是Sender的問題。
重點是!!
有時候才會出現!有時候又非常正常(封包一到馬上就接收)。
起初認為是太多程式執行,導致該程式分到的CPU時間過少,
但是關掉其餘程式後,仍無法解決問題。
Receiver 程式執行的電腦硬體為
Notebook
CPU: i5-3230M
Ram: 4G*2
目前有用過 udpclient 及 socket(採UDP protocol)兩種class來撰寫,
都是採用非同步的接收,但仍都無法解決此問題。
請問有前輩開發過相關case有接觸到此問題嗎?
謝謝大家。
作者: johnpage (johnpage)   2014-10-13 21:27:00
周期改500ms試看看500ms時,程式正常嗎?
作者: mine1988 (三民)   2014-10-14 12:15:00
!懂John大的意思了,未測試過長週期 晚上測試一下 :D
作者: cspy (Perfect Stranger)   2014-10-17 21:58:00
分散到其它的port 測試看看

Links booklink

Contact Us: admin [ a t ] ucptt.com