富士康宣佈 2023 年開始量產電動車,預計電動汽車業務在明年將會有顯著增長
1. 概述
使用者資料報協議(UDP,User Datagram Protocol)為應用程式提供了一種無需建立連線就可以傳送封裝的 IP 資料報的方法。UDP是一種保留訊息邊界的簡單的面向資料報的協議。UDP不提供差錯糾正、佇列管理、重複消除、流量控制和擁塞控制,但提供差錯檢測。這種協議自身提供最小功能,想要保證資料被可靠傳遞或正確排序,應用程式必須自己實現這些保護功能。
2. UDP 的主要特點
- UDP 是無連線的,即傳送資料之前不需要建立連線,因此減少了開銷和傳送資料之前的時延。
- UDP 使用盡最大努力交付,即不保證可靠交付,因此主機不需要維持複雜的連線狀態表。
- UDP 是面向報文的。傳送方的UDP對應用程式交下來的報文,在新增首部後就向下交付IP層。UDP對應用層交下來的報文,既不合並,也不拆分
- UDP 沒有擁塞控制,因此網路出現的擁塞不會使源主機的傳送速率降低。很多的實時應用(如IP電話、實時視訊會議等)要去源主機以恆定的速率傳送資料,並且允許在網路發生擁塞時丟失一些資料,但卻不允許資料有太多的時延。UDP正好符合這種要求。
- UDP 支援一對一、一對多、多對一和多對多的互動通訊。
- UDP 的首部開銷小,只有8個位元組,比TCP的20個位元組的首部要短。
3. UDP 的首部格式
UDP有兩個欄位:資料欄位和首部欄位。首部欄位很簡單,只有8個位元組,由4個欄位組成,每個欄位的長度都是兩個位元組。各欄位意義如下:
-
源埠:源埠號。在需要對方回信時選用。不需要時可用全0。
-
目的埠:目的埠號。這在終點交付報文時必須要使用到。
-
長度: UDP使用者資料報的長度,其最小值是8(僅有首部),傳送一個帶0位元組資料的UDP資料報是允許的。
-
校驗和:檢測UDP使用者資料報在傳輸中是否有錯。有錯就丟棄。
當運輸層從 IP 層收到 UDP 資料報時,根據目的埠,通過相應的埠上交給應用程序。如果接收方 UDP發現報文中的目的埠號不正確(即不存在對應於該埠號的應用程序),就丟棄該報文,並由網際控制報文協議 ICMP 傳送“埠不可達”差錯報文給傳送方。
4. UDP 校驗和
UDP 校驗和是一個端到端的傳輸層校驗和,是對包含了IP頭部中的源(Source)和目的IP地址(Destination Address)欄位的 UDP 偽首部計算得到的。它由初始的傳送方計算得到,由最終的目的方校驗。它在傳輸中不會被修改(除非它通過一個NAT)。傳輸協議(如 TCP、UDP)使用校驗和來覆蓋它們的頭部和資料。對於 UDP 來說,校驗和是可選的,而其他的則是強制的。為了給應用程式提供無差錯資料,在投遞資料到接收方應用程式之前,必須計算校驗和或者使用其他差錯監測機制。
4.1 偽首部
在UDP偽首部中,包含32位源IP地址,32位目的IP地址,8位填充0,8位協議,16位UDP長度。偽首部並非TCP和UDP資料報中實際的有效成分。偽首部是一個虛擬的資料結構,其中的資訊是從資料報所在IP分組頭的分組頭中提取的,既不向下傳送也不向上遞交,而僅僅是為計算校驗和。
偽頭部的目的是讓UDP層驗證資料是否已經到達正確的目的地(即,該IP沒有接受地址錯誤的資料報,也沒有給UDP一個本該其他傳輸協議的資料報),計算UDP校驗和時覆蓋的欄位,包含了偽頭部以及UDP頭部和負載。
4.2 UDP 校驗和計算方法
傳送方:
- 看資料報是不是偶數字節數,若不是新增一個全0的位元組填充(該位元組不傳送)。
- 將校驗和欄位置為全0
- 將偽首部以及UDP使用者資料報看成由許多16位的字串起來的。
- 進行二進位制反碼求和,結果填入校驗和欄位傳送。
接收方:
把收到的UDP使用者資料報連同偽首部(以及可能的填充全零位元組)一起,按二進位制反碼求這些16位字的和。當無差錯時其結果應全為1。否則就表明有差錯出現,接收方就丟棄此UDP使用者資料報。如果校驗和欄位值為0x0000表示傳送方沒有計算校驗和。
這裡我們假定一個15位元組的資料報
二進位制求和過程
所以和為10010110 11101101—>取反01101001 00010010就是校驗和。
5 UDP和TCP區別
角度 | TCP | UDP |
---|---|---|
連線 | 面向連線 | 無連線(發資料前不建立連線) |
可靠性 | 可靠,使用流量和擁塞控制 | 不可靠,盡最大努力到達 |
連線物件 | 只能一對一通訊 | 支援m:n四種通訊,m>=1, n>=1 |
傳輸方式 | 面向位元組流 | 面向報文 |
首部開銷 | 20<=首部位元組數<=60 | 首部開銷小,僅8位元組 |
問題1:TCP和UDP的使用場景
TCP | UDP | |
---|---|---|
使用場景 | 效率要求低,準確性或有連線要求 如遠端登陸、郵件傳輸 |
對效率要求高,準確性要求低 如實時應用, IP電話、視訊、直播等 |
應用層協議 | SMTP-電子郵件 TELNET-遠端登入 HTTP-全球資訊網 FTP-檔案傳輸 IP-Internet協議(IP) ICMP-Internet控制資訊 POP、SMTP-郵件傳輸 |
DNS-域名傳輸 TFTP-檔案傳輸 SNMP-網路管理 NFS-遠端檔案伺服器 |