UDP 通訊協定 - 翻轉工作室
文章推薦指數: 80 %
Internet 網路除了提供可靠性服務的 TCP 連接外,也提供非連接方式傳輸稱之為『使用者電報傳輸協定』(User Datagram Protocol, UDP)。
UDP 傳輸協定比 TCP簡單,沒有連線 ...
TCP/IP協定與Internet網路:第七章傳輸層協定 上一頁 下一頁
翻轉工作室:粘添壽
7-5UDP通訊協定
Internet網路除了提供可靠性服務的TCP連接外,也提供非連接方式傳輸稱之為『使用者電報傳輸協定』(UserDatagramProtocol,UDP)。
UDP傳輸協定比TCP簡單,沒有連線要求、連線終止、以及流量控制的管理程序。
它的優點是傳輸速率較快,主要應用於較少量、即時性傳輸,而對資料正確性的要求較不高(如語音或視訊)的環境下使用。
而其缺點則是無法提供正確性較高的資料傳輸。
採用UDP傳輸可能會有資料重覆、資料未依序到達、資料遺失等等問題,必須由使用者自行解決。
但從一方面來思考,Internet網路上有許多應用系統,它們之間的傳輸量很低,而且需要即時反映訊息,如果採用TCP連線反而會浪費許多連結時間,而影響傳輸效率,在這種情況之下使用UDP的效率相對應較高,譬如DNS伺服系統或SNMP協定。
因此,可以做一個簡單的結論,再傳輸量比較少或需要及時反映的環境下,使用UDP協定傳輸會優於TCP協定。
但在許多情況下,使用者很難去決定到底應該使用何種協定來傳輸目前的資料,因此,在許多系統在同一傳輸埠口上,提供有TCP和UDP兩種協定讓使用使者連接,如果使用者的資料不需要分割,也就是說,一個UDP封包可以承載的話,那就使用UDP協定傳輸,如果需要多筆封包傳輸,則使用TCP協定傳輸。
至於一個傳輸層封包可以承載多少訊息,如果以圖7-2IP封包格式計算,一個IP封包最大的長度為65536Bytes,扣除IP封包標頭長度(20Bytes),再扣除UDP封包標頭長度(20Bytes),則UDP所能承載的資料長度為65496Bytes,但這是很難達成的網路傳輸環境。
一般我們為了IP封包在傳輸中避免有再被分段的情形,網路通訊之前都會協議出『最大傳輸單位』(MaximumTransmissionUnit,MTU),如果以連結的子網路都是Ethernet網路為例MTU=1518Bytes,而IP封包最大為1500Bytes,則UDP封包最大為1480Bytes,也表示所傳輸的資料少於1460Bytes,則可使用UDP協定傳輸,否則必需用TCP協定傳輸。
也可說是,到底傳輸量少於多少位元組可以用UDP協定傳輸,這必需看使用者連結網路的環境,並沒有一個固定的標準。
UDP封包與IP封包之包裝方式如圖7-2所示,圖7-20為UDP封包格式,因其為非連接方式,所以沒有順序號碼、確認號碼和其它控制欄位,而各欄位功能如下:
●來源埠口(SourcePort):發送端之傳輸埠口。
●目的埠口(DestinationPort):接收端之傳輸埠口。
●長度(Length):該封包所承載資料(Data)的長度。
●檢查集(Checksum):該封包之錯誤檢查的檢查集。
圖7-20UDP之封包格式
至於『檢查集』欄位的產生就較為複雜,因此,有些應用環境為了提高效率,而將此欄位填入0,而不使用錯誤檢查的功能。
檢查集所檢查的範圍除了UDP標頭和所承載的資料外,還包含一些IP標頭的欄位,我們將所檢查的欄位組成一個稱之為『虛擬標頭』(PseudoHeader),其內容如下:
●IPSourceAddress:(4Bytes)IP標頭之來源IP位址。
●IPDestinationAddress:(4Bytes)IP標頭之目的IP位址。
●Protocol:(1Byte)IP標頭之協定號碼欄位。
●Length:(2Bytes)UDP標頭之長度欄位。
●Padding:(1Bytes)補滿虛擬標頭成為偶數位元組長度,以方便計算Checksum。
虛擬標頭的檢查方法是傳送端欲發送資料之前,首先建構虛擬標頭,再計算出檢查集的檢查碼,將其填入UDP的檢查集欄位,並捨棄虛擬標頭而不將其傳送過去。
接收端收到UDP封包後,也再建立虛擬標頭來計算檢查碼,如果所計算出來的檢查碼和檢查集欄位的值相同,便判斷該UDP封包沒有發生錯誤。
使用虛擬標頭檢查可視為UDP封包的雙重保全機制,如果封包在傳遞中發生錯誤,而下層通訊沒有檢查出來,虛擬標頭可以做第二道防線的檢查。
延伸文章資訊
- 1網路教學-TCP 與UDP
在前面討論網際網路層的時候﹐我們知道﹕網際網路層協定只提供路由資訊的 ... 在低層的通訊裡﹐封包可能在傳送過程中發生錯誤﹐諸如網路硬體的損壞﹑ ...
- 2[知識篇] 網際網路協議- TCP/IP - iT 邦幫忙
網際網路協議,為網際網路的基礎通訊架構,也就是我們所熟知的TCP/IP,其核心就是TCP(傳輸控制協定Transmission Control Protocol)與IP(網際網路 ...
- 3TCP/IP - 網際網路名詞介紹
而今天在Internet上應用的最為廣泛的,正是今天要講的TCP/IP。 較詳細的講,TCP/IP架構中,本身就分為好幾個協定,如IP、UDP、ICMP ...
- 4TCP 和UDP 是什麼:簡單的說明
TCP(通訊控制協定)和UDP(用戶資料包協定)都是網際網路中常見的協定,它們負責在網際網路將資料從設備傳輸到伺服器。當您使用Skype 聊天、發送電子郵件 ...
- 5網路結構
UDP (User Datagram Protocol) 提供一個無連接(connectionless),不可靠(unreliable)的傳輸服務。因為即時性資料有延遲上的限制,所以利用TCP協...