用戶數據報協議(User Datagram Protocol,UDP)是Internet傳輸層協議,提供無連接、不可靠、數據報盡力傳輸服務。UDP 是一個非常簡單的協議,開銷最小。如果一個進程想發送很短的報文,而且不在意可靠性,就可以使用 UDP。使用 UDP 發送一個很短的報文,在發送方和接收方之間的交互要比使用 TCP 時少得多。
UDP協議
UDP協議特點
無連接服務:UDP提供無連接服務。這就是表示 UDP發送出去的每一個用戶數據報都是一個獨立的數據報。不同的用戶數據報之間沒有關系,即使它們都是來自相同的源進程并發送到相同的目的程序。用戶數據報不進行編号。此外,也沒有像TCP協議那樣的連接建立和連接終止,這就表示每一個用戶數據報可以沿着不同的路徑傳遞。
UDP協議的結構
UDP協議的結構
如圖,其中源端口号、目的端口号、UDP長度、校驗和屬于UDP數據報的首部;數據部分屬于UDP數據報數據字段。UDP首部四個字段每個字段長度都是2個字節,共8個字節。他們各自的作用:
UDP校驗和主要提供差錯檢測功能,就是用于檢測UDP報文段從源主機到目的主機的傳送過程中,其中的數據是否發生了改變。該字段不是必須的,當源主機不想計算校驗和,則直接令該字段全為0,當傳輸層從IP層收到UDP數據報時,就根據首部中的目的端口,把UDP數據報通過相應的端口,上交給應用進程。如果接收方UDP發現收到的報文中的目的端口号不正确(不存在對應端口号的應用進程0),就丢棄該報文,并由ICMP發送“端口不可達”差錯報文給對方。
源主機到目的主機
UDP的校驗和由三部分内容求和得到,分别是僞首部、首部以及數據報文
UDP的校驗和的組成
UDP的僞首部:僞首部占12個字節,僞首部并不是UDP真正的首部,隻是在計算校驗和,臨時添加在UDP數據報的前面,得到一個臨時的UDP數據報。UDP僞頭部目的是為了讓數據包接受者确定發送和接受的UDP數據包是來自正确的源且是發給自己的。由于UDP結構中隻包含了源和目的的UDP端口号,而且沒有IP地址信息,所以使用僞頭部結構來計算校驗和以确定數據包的正确性。僞首部既不向下傳送也不向上遞交,而僅僅是為了計算校驗和。
UDP校驗和的計算方法:
對齊求和
溢出回卷
取反碼
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!