TCP VS UDP

  • UDP為應用程序提供面向無連接的服務。傳輸數據之前源端和目的端不需要建立連接。
  • 不需要維持連接狀態,收發狀態等,因此服務器可同時向多個客戶端傳輸相同的消息。
  • UDP適用於對傳輸效率要求高的運用。

一、UDP概述

首部格式

UDP協議概述/TCP VS UDP

圖1

UDP和TCP一樣都使用IP作為網絡層協議,TCP數據報被封裝在一個IP數據包內。由於UDP不象TCP一樣提供可靠的傳輸,因此UDP的報文格式相對而言較簡單。

整個UDP首部有如下標識:

  • 16位源端口號:為源端應用程序分配的一個源端口號。
  • 16位目的端口號:目的應用程序的端口號
  • 16位UDP長度:是指UDP首部和UDP數據的字節長度。該字段的最小值為8。
  • 16位UDP檢驗和:該字段提供與TCP檢驗和同樣的功能,只不過在UDP協議中該字段是可選的。

二、TCP VS UDP

UDP協議概述/TCP VS UDP

圖2

IP packet

UDP協議概述/TCP VS UDP

網絡層收到傳輸層的TCP數據段後會再加上網絡層IP頭部信息。普通的IP頭部固定長度為20個字節(不包含IP選項字段)。

IP報文頭主要由以下字段組成:報文長度是指頭部佔32比特字的個數,包括任何選項。由於它是一個4比特字段,24=16,除掉全0項共有15個有效值比特字段,其中最大值也為15,表示頭部佔15個32比特。因此32*15/8=60字節,頭部最長為60字節。

版本號(Version)字段標明瞭IP協議的版本號,目前的協議版本號為4。下一代IP協議的版本號為6。8比特的服務類型(TOS,Type of Service)字段包括一個3比特的優先權字段(COS,Class of Service),4比特TOS字段和1比特未用位。4比特TOS分別代表最小時延、最大吞吐量、最高可靠性和最小費用。總長度(Total length)是整個IP數據報長度,包括數據部分。由於該字段長16比特,所以IP數據報最長可達65535字節。儘管可以傳送一個長達65535字節的IP數據報,但是大多數的鏈路層都會對它進行分片。而且,主機也要求不能接收超過576字節的數據報。UDP限制用戶數據報長度為512字節,小於576字節。而事實上現在大多數的實現(特別是那些支持網絡文件系統NFS的實現)允許超過8192字節的IP數據報。標識符(Identification)字段唯一地標識主機發送的每一份數據包。通常每發送一份報文它的值就會加1。生存時間(TTL,Time to Live)字段設置了數據包可以經過的路由器數目。一旦經過一個路由器,TTL值就會減1,當該字段值為0時,數據包將被丟棄。協議字段確定在數據包內傳送的上層協議,和端口號類似,IP協議用協議號區分上層協議。TCP協議的協議號為6,UDP協議的協議號為17。報頭校驗和(Head checksum)字段計算IP頭部的校驗和,檢查報文頭部的完整性。源IP地址和目的IP地址字段標識數據包的源端設備和目的端設備IP地址信息。


分享到:


相關文章: