用戶數據報協定/網際網路協定

用戶數據報協定/網際網路協定

用戶數據報協定/網際網路協定是計算機網路中兩個不同的網路協定。用戶數據報協定 (User Datagram Protocol, UDP)是一個簡單的面向無連線的,不可靠的數據報的傳輸層(transport layer)協定。網際網路協定(Internet Protocol,縮寫為 IP),是用於分組交換網路的一種面向數據的協定。用戶數據報協定只在網際網路協定的數據報服務之上增加了很少一點功能,即復用和分用以及差錯檢查功能。

基本介紹

  • 中文名:用戶數據報協定/網際網路協定
  • 外文名:User Datagram Protocol/Internet Protocol
  • 學科:計算機
  • 關係:UDP以IP為基礎
  • 作用:進行數據傳輸
  • 領域:計算機網路
用戶數據報協定,簡介,報文格式,特點,網際網路協定,簡介,IP封裝,IP提供的服務,可靠性,IPv4/ IPv6相互轉換協定,

用戶數據報協定

簡介

用戶數據報協定(UDP) 在互連的計算機網路環境中規定了分組交換計算機通信的數據報模式。它為應用程式提供一個過程,使之能夠在一個最小的協定機制內向其它應用程式傳送訊息。UDP提供的協定連線埠能夠區分在一台機器上運行的多個程式。也就是說,每個UDP報文不僅傳送用戶數據,而且包括傳送方和接收方的連線埠號,這使得接收方的可UDP以把報文送到正確的接收進程,而接收進程也可以回送應答報文。UDP使用底層的互連網路協定來傳送報文,提供和 IP一樣的不可靠的無連線數據報傳輸服務。它不使用確認信息對報文的到達進行確認,對收到的報文進行排序,也不提供反饋信息來控制機器之間傳輸的信息流量。所以使用UDP的應用程式要承擔全部可靠性和流量控制方面的工作。

報文格式

每個UDP報文分UDP報頭和UDP數據區兩部分。報頭由四個16位長(8位元組)欄位組成,分別說明該報文的源連線埠、目的連線埠、報文長度以及校驗和。用戶數據報其中包含了8位元組固定長度的UDP數據報頭和可變長的數據區。其中,數據報頭中個欄位定義如下:
源連線埠和目的連線埠,分別用於標識數據報的源端進程和目的端進程所使用的連線埠。欄位長度為16比特,最大支持64 k個連線埠號。源端進程不需要目的端返回數據報,源連線埠欄位可設為0
報文長度。該欄位指定UDP報頭和數據總共占用的長度。可能的最小長度是8位元組,因為UDP報頭已經占用了8位元組。由於這個欄位的存在,UDP報文總長不可能超過65535位元組(包括8位元組的報頭,和65527位元組的數據)。實際上通過IPv4協定傳輸時,由於IPv4的頭部信息要占用20位元組,因此數據長度不可能超過65507位元組(65,535 − 8位元組UDP報頭 − 20位元組IP頭部)。在IPv6的jumbogram中,是有可能傳輸超過65535位元組的UDP數據包的。依據RFC 2675,如果這種情況發生,報文長度應被填寫為0。
校驗和。校驗和欄位可以用於發現頭部信息和數據中的傳輸錯誤。該欄位在IPv4中是可選的,在IPv6中則是強制的。如果不使用校驗和,該欄位應被填充為全0。

特點

UDP有以下特點:
UDP是無連線的,即傳送數據之前不需要建立連線(當然,傳送數據結束時也沒有連線可釋放),因此減少了開銷和傳送數據之前的時延。
UDP是面向報文的,傳送方的UDP對應用程式交下來的報文,在添加首部後就向下交付IP層。UDP對應用程式交下來的報文,既不合併,也不拆分,而是保留這些報文的邊界,這就是說,套用層交給UDP多長的報文,UDP照樣傳送,即一次傳送一個報文,因此,應用程式必須選擇合適大小的報文。若報文太長,UDP把它交給IP層後,IP層在傳送時可能要進行分片,這會降低IP層的效率。反之,若太短,UDP把它交給IP層後,會使IP數據報的首部的相對長度太大,也降低了IP層的效率。
UDP沒有擁塞控制,因此網路出現的擁塞不會使源主機的傳送速率降低,這對某些實時套用是很重要的,在很多的實時套用(如IP電話、實時視頻會議等)要求源主機以恆定的速率傳送數據,並且允許在網路發生擁塞時丟失一些數據,但不允許數據有太大的時延。UDP正好適合這種要求。
UDP支持一對一、一對多、多對一和多對多的互動通信。
UDP的首部開銷小,只有8個位元組。

網際網路協定

簡介

IP是英文Internet Protocol的縮寫,意思是“網路之間互連的協定”,也就是為計算機網路相互連線進行通信而設計的協定。在網際網路中,它是能使連線到網上的所有計算機網路實現相互通信的一套規則,規定了計算機在網際網路上進行通信時應當遵守的規則。網際網路協定(Internet Protocol,縮寫為 IP),是用於分組交換網路的一種面向數據的協定。IP是在TCP/IP協定中網路層的主要協定,任務是僅僅根據源主機和目的主機的地址傳送數據。為此目的,IP定義了定址方法和數據報的封裝結構。第一個架構的主要版本,現在稱為IPv4,仍然是最主要的網際網路協定,儘管世界各地正在積極部署IPv6。

IP封裝

數據在IP網際網路中傳送時會被封裝為數據報文。IP協定的獨特之處在於:在報文交換網路中主機在傳輸數據之前,無須與先前未曾通信過的目的主機預先創建好一條特定的“通路”。網際網路協定提供了一種“不可靠的”數據包傳輸機制(也被稱作“盡力而為”);也就是說,它不保證數據能準確的傳輸。數據包在到達的時候可能已經損壞,順序錯亂(與其它一起傳送的報文相比),產生冗餘包,或者全部丟失。如果套用需要保證可靠性,一般需要採取其他的方法,例如利用IP的上層協定控制。

IP提供的服務

由於封裝帶來的抽象機制,IP能夠在各種各樣的網路上工作,例如乙太網,ATM,FDDI,Wi-Fi,令牌環等等。每個鏈路層的實現可能有自己的方法(也有可能是完全沒有它自己的方法),把IP位址解析成相應的數據鏈路地址。IPv4使用地址解析協定(ARP),而IPv6採用鄰居發現協定(NDP)。

可靠性

網際網路協定的設計原則,假定網路基礎設施本身就是不可靠的單一網路元素或傳輸介質,並且它使用的是動態的節點和連線。不存在中央監測和性能衡量機制來跟蹤和維護網路的狀態。為了減少網路的複雜性,大部分網路智慧型故意地分布在每個數據傳輸的終端節點。傳輸路徑中的路由器只是簡單地將數據報文傳送到下一個匹配目的地址的路由前綴的本地網關。
由於這種設計的結果,網際網路協定只提供盡力傳送,其服務也被視為是不可靠的。在網路專業語言中是一種無連線的協定,相對於所謂的面向連線的模式。在缺乏可靠性的條件下允許下列任何故障發生:
數據損壞
丟失數據包
重複到來
數據包傳遞亂序;意思是,如果包'A'是在包'B'之前傳送的,但B可能在A到達前到達。
網際網路協定提供的唯一幫助是,IPv4規定通過在路由節點計算校驗和來確保IP數據報頭是正確的。這個帶來的副作用是當場丟棄報頭錯誤的數據報文。在這種情況下不需要傳送通知給任一個終端節點,但是網際網路控制訊息協定(ICMP)中存在一個機制來做到這一點。
但是,IPv6為了快速傳輸已經放棄了計算校驗和的使用。
對這些可靠性問題的更正是一個上層協定的責任。例如,一個上層協定為了確保按順序傳送可能要快取數據,直到數據可以傳遞給應用程式。
除了可靠性問題,網際網路及其組成部分的動態性和多樣性不能確保任何路徑是有能力地或合適地完成所要求的數據傳輸,即使路徑是有效並且可靠的。技術限制之一是在給定的鏈路上允許的數據包的大小。應用程式必須確保它使用適當的傳輸特性。這種責任還在於一些在套用層協定和IP之間的上層協定。存在審查的本地連線尺寸最大傳輸單位(MTU),以及整個預計到目標路徑時使用IPv6。IPv4的網路層有自動分片成更小的單位進行傳輸原始數據報的能力。在這種情況下,IP確實能夠為亂序的分片進行順序排序。

IPv4/ IPv6相互轉換協定

雙協定棧
雙協定棧(dual stack )是指在單個節點同時支持 IPv4 和IPv6兩種協定棧。由於IPv6和IPv4是功能相近的網路層協定,兩者都基於相同的物理平台,而且載入於其上的傳輸層協定TCP (傳輸控制協定 )和 UDP(用戶數據報文協定)也沒有區別,所以可以在一台主機上同時支持 IPv4和IPv6。雙協定棧技術的工作原理是:一台主機同時支持 IPv6 和 IPv4 兩種協定, 該主機既能與支持 IPv4 協定的主機通信,又能與支持 IPv6 的主機通信。雙協定棧是其他 IPv4/ IPv6 互通技術的基礎,它有 3 種工作模式 :只運行 IPv6,此時表現為 IPv6 節點; 只運行 IPv4,此時表現為 IPv4節點;同時打開IPv6和 IPv4。
隧道技術
隧道機制就是用 IPv4 封裝 IPv6 數據包並且把這些封裝了的數據包通過 IPv4 網路送往一個 IPv4 目的節點,目的節點拆封數據包並剝離出 IPv6 數據包。
ISATAP隧道
ISATAP(站點間自動隧道定址協定 )由 RFC 4212 定義,它是一種地址分配技術,是一主機到主機、 主機到路由器以及路由器到路由器的自動隧道技術, 它可以在 IPv4 網路上創建一個虛擬 IPv6 網路。IPv6 數據包在IPv4 中的隧道封裝在ISATAP 主機之間或者ISATAP 主機和 ISATAP路由器之間執行。隧道封裝是自動的,意味著當啟用了ISATAP 時沒必要在主機上套用手動配置。對於ISATAP 主機到ISATAP 路由器的隧道,ISATAP 主機必須首先從可用的路由器列表中找出一個 ISATAP 路由器的IPv4 地址。分配給ISATAP主機和路由器的地址由專用的可聚合全球單播 IPv6 地址和特殊格式的接口標識組合而成。一個 ISATAP 主機上啟用的ISATAP 地址使用本地鏈路前綴 (FE80: : / 10 )。必須給站點內的 ISATAP 操作分配一個可聚合或者本地站點的 / 64 前綴。ISATAP 主機通過在 IPv4 上建立起來的 ISATA 隧道從ISATAP 路由器傳送的廣播訊息中接收 / 64 前綴。ISATAP 在ISATAP?IPv6 地址中嵌入 IPv4 地址。接口標識在IANA(網際網路號碼分配部門)保留給 ISATAP 的高階32位 0000: 5EFE後追加 32 位 IPv4 地址 IPv4 兼容隧道。
6 to4 (IPv6 to IPv4) 隧道
在兩個 IPv6 域間建立、操作、管理和支持配置隧道至少需要兩個實體的同步,對於某些組織來說有些麻煩。IETF(網際網路工程任務組 ) 定義了另一種稱為 6t o4 的機制來簡化通過隧道在IPv4網路上配置IPv6。 這種機制在由 IPv6節點組成的站點之間採用動態隧道方法,不需要手動地事先調整隧道的源和目的IPv4地址。 IP數據包的隧道封裝是根據 6 to 4站點上產生的數據包的目的地址自動完成的。這種機制在站點邊緣的邊界路由器上啟用,6 to 4 路由器必須通過IPv4 路由器基礎設施到達其他的6 to 4 站點和6 to 4 路由器。6 to 4 前綴都基於IANA 分配的2002: : / 16地址空間。每個6 to 4站點至少使用一個分配給6 to 4路由器的全球單播 IPv4 地址,IPv4 的 32 位地址被轉換為16進制格式後附加在 2002: : / 16 前綴後面。最終表現形式是 2002:IPv4-address: : / 48。6 to 4前綴基於全球唯一的 IPv4地址, 所以沒必要在6 to 4站點之間傳播/ 48前綴的 IPv6路由。

相關詞條

熱門詞條

聯絡我們