1. 程式人生 > 資訊 >富士康宣佈 2023 年開始量產電動車,預計電動汽車業務在明年將會有顯著增長

富士康宣佈 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 校驗和計算方法

傳送方:

  1. 看資料報是不是偶數字節數,若不是新增一個全0的位元組填充(該位元組不傳送)。
  2. 將校驗和欄位置為全0
  3. 將偽首部以及UDP使用者資料報看成由許多16位的字串起來的。
  4. 進行二進位制反碼求和,結果填入校驗和欄位傳送。

接收方:

把收到的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-遠端檔案伺服器