1. 程式人生 > >網路協議:使用者資料報協議(UDP)

網路協議:使用者資料報協議(UDP)

本文將討論:

UDP的基本概念;

UDP報文

偽首部

UDP的基本概念;

TCP/IP協議族中,使用者資料包協議UDP提供應用間傳輸資料報的基本機制。UDP使用底層的協議傳輸報文,提供與IP一樣的不可靠、無連線資料報交付服務,他沒有使用確認來確保報文到達,也沒有對傳入的報文排序,也不提供反饋資訊來控制機器之間資訊流動的速度。所以,UDP報文可能會出現丟失,重複或者亂序到達的現象。而且,分組到達的速率可能會大於接收程序能夠處理的速率(見網路協議:可靠的資料流傳輸服務TCP)。

UDP的報文

每一個UDP報文稱為一個使用者資料報,首部被分為416bit的欄位,說明了報文的來源、目的地、校驗和報文長度。

如圖


在讀了前一篇文章後,對這些概念應該比較熟悉,所以在這裡不再贅述。只是提一點。如果校驗和的值為0,那麼就說明不進行校驗。這麼實現的原因就是在高可靠性的區域網中使用UDP的時候減小開銷。那麼,計算出校驗和為0的時候,會使用全1來表現這種情況。

偽首部

TCPUDP都存在一個叫偽首部的東西。這個東西在TCPIP卷一上被簡略的提到,但並沒有詳細解釋。個人理解是,由於UDPTCP報文都只有源埠和目的埠,作為承上啟下的運輸層,在獲得報文的時候,從下層結構獲得了源地址的IP和目標地址的IP並不是難事,獲得以後通過UDP的協議軟體對整個報文進行檢驗,如果檢驗和匹配正確,就說明這個UDP資料報來到了正確主機,

UDP就向上層結構交付即可。