none
傳輸訊息時,packet loss的原因? RRS feed

  • 問題

  • 我們目前用C#寫一個傳訊程式,以UDP作為通訊協定,我們的環境是兩台PDA,和一台NB,使用協定為802.11b

    1.當PDA連續傳四個封包時,PDA與PDA的通訊中,發生packet loss的情況並不多,但有時還是會發生...

    也就是說某些訊息會傳不到

    2.不過當PDA與NB互相通訊時,當PDA連續傳四個封包,產生packet loss情況比PDA對PDA間還頻繁...



    我們思考是否為傳遞速度太快...導致packet loss...

    另外有人建議我們去修改MAC 層的協定,我們不知道怎麼下手及是否此為問題癥結

    另外也有修改無線網卡driver的建議,但...這似乎有些偏難...


                           不知道各位大大是否有遇過相同的問題,或是知道原因何在,方便提供packet loss的解決方法...

                           謝謝各位大大!
    2009年8月5日 下午 12:09

解答

  • 用 TCP 或許是一種方法 讓 stack 自己 handle data lost 不過就先假設你有必需要用 UDP 的理由吧

    這一類的問題 會建意應該先抓 packet 來看看到底 packet 是怎個 lost 掉法.
    假設你應該是用 ad hoc mode 在連接吧?
    同樣的 code 假如是用 infrastructure mode (AP) 是不是就幾乎不會 lost?
    ad hoc mode 因為是 點對點直接對傳 沒有 AP 可以幫你 buffering data
    這時後可能在 每個 packet 間加上一點 delay 或許有幫助
    由於 UDP 並不保證資料完整性 所以這時就需要加上自己的 hand shaking 來 handl data lost.

    此外 MAC layer 的話 很多 WLAN card 的 .11 to .3 packet fragment/defragment 大都是 H/Wor Driver 內部做掉
    除非你的 Driver 是 Native WiFi (可能性很低) 不然要直接 處理到 802.11 的 Frame 大概也不太可行


    如果你覺得我的文章以確切回答到問題, 請不吝標示為有用 and 解答.
    • 已標示為解答 便當 2009年8月10日 上午 06:19
    • 已取消標示為解答 便當 2009年8月10日 上午 10:08
    • 已提議為解答 JocoboNY 2009年8月11日 下午 02:38
    • 已標示為解答 Lolota Lee 2009年8月12日 上午 06:22
    2009年8月6日 上午 01:59

所有回覆

  • 1.UDP 有去做packet loss重傳的功能嗎?(這個我已經忘了,以前有讀過).
    2.無線傳輸本來loss就比較多.
    所以
    A.自己寫Loss偵測跟重傳的邏輯.
    B.用其他比較高階的通訊協定.
    C.去買人家寫好的通訊元件來用.
    2009年8月6日 上午 01:09
  • 用 TCP 或許是一種方法 讓 stack 自己 handle data lost 不過就先假設你有必需要用 UDP 的理由吧

    這一類的問題 會建意應該先抓 packet 來看看到底 packet 是怎個 lost 掉法.
    假設你應該是用 ad hoc mode 在連接吧?
    同樣的 code 假如是用 infrastructure mode (AP) 是不是就幾乎不會 lost?
    ad hoc mode 因為是 點對點直接對傳 沒有 AP 可以幫你 buffering data
    這時後可能在 每個 packet 間加上一點 delay 或許有幫助
    由於 UDP 並不保證資料完整性 所以這時就需要加上自己的 hand shaking 來 handl data lost.

    此外 MAC layer 的話 很多 WLAN card 的 .11 to .3 packet fragment/defragment 大都是 H/Wor Driver 內部做掉
    除非你的 Driver 是 Native WiFi (可能性很低) 不然要直接 處理到 802.11 的 Frame 大概也不太可行


    如果你覺得我的文章以確切回答到問題, 請不吝標示為有用 and 解答.
    • 已標示為解答 便當 2009年8月10日 上午 06:19
    • 已取消標示為解答 便當 2009年8月10日 上午 10:08
    • 已提議為解答 JocoboNY 2009年8月11日 下午 02:38
    • 已標示為解答 Lolota Lee 2009年8月12日 上午 06:22
    2009年8月6日 上午 01:59