tcp協議及網絡編程技術-第8章udp_第1頁
tcp協議及網絡編程技術-第8章udp_第2頁
tcp協議及網絡編程技術-第8章udp_第3頁
tcp協議及網絡編程技術-第8章udp_第4頁
tcp協議及網絡編程技術-第8章udp_第5頁
免費預覽已結束,剩余19頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第8章UDP協議8.1

多路復用與多路分解8.2

UDP

數據包格式8.3

UDP校驗和的計算8.3.1

UDP

校驗和的計算8.3.2

為什么使用偽頭部8.4

UDP

數據包的封裝8.5

標準UDP

端口2014/3/25TCP/IP協議及網絡編程-28.1

多路復用與多路分解層協議:為運行在不同主機上的應用進程提供邏輯通信功能(主機好像是直接相連的)。進程之間使用邏輯通信功能彼此發送報文,無需考慮具體物理鏈路。應用層層網絡層

數據鏈路層物理層層層數物應用層層網絡層數據鏈路層物理層網絡層數據鏈路層物理層網絡層

數據鏈路層物理層網絡層

數據鏈路層物理層絡層路層2014/3/25TCP/IP協議及網絡編程-38.1

多路復用與多路分解因特網

層協議:UDP(用戶數據報協議):為應用程序提供不可靠、無連接的服務。TCP(傳輸控制協議):為應用程序提供可靠的、面向連接的服務。術語:報文段(segment):

層分組。數據報(datagram):網絡層分組。2014/3/25TCP/IP協議及網絡編程-48.1

多路復用與多路分解層將網絡層所提供的主機到主機交付服務,擴展到在主機上運行的應用程序到應用程序的交付服務。通常,主機上可以有多個應用程序進程運行(如一個HTTP、一個FTP、兩個

net)。當

層從底層網絡接收數據時,應能正確地定向到相應的一個進程(套接字)。HTTPnetFTPnet層數據報2014/3/25TCP/IP協議及網絡編程-58.1

多路復用與多路分解——套接字套接字是從網絡向進程傳遞數據,或從進程向網絡傳遞數據的門戶。層和應用進程通過套接字來傳遞數據。主機上的套接字可以有多個,每個套接字都有惟一的標識符(格式取決于

UDP或TCP)。P1

應用層

P2層網絡層鏈路層物理層=套接字=進程2014/3/25TCP/IP協議及網絡編程-68.1

多路復用與多路分解多路復用(發送主機):從不同套接字收集數據塊,并為每個數據塊封裝上首部信息,生成報文段,傳遞到網絡層。多路分解(接收主機):

將報文段中的數據交付到正確的套接字。即接收方運輸層從報文段的多個字段中,識別出套接字,并將報文段定向到該套接字。例圖,進程P3向進程P1發送。2014/3/25TCP/IP協議及網絡編程-78.1

多路復用與多路分解網絡層鏈路層物理層應用層層網絡層鏈路層物理層network鏈路層物理層P2P4應用層

P3

P1

應用層層

層主機1主機2主機3主機1上的 層收集套接字輸出的數據,形成

層報文段,將其傳遞給下面的網絡層(多路復用);主機2的 層將從其網絡層收到的報文段多路分解后通過相應的套接字交給其上的P1進程。2014/3/25TCP/IP協議及網絡編程-88.1

多路復用與多路分解當報文段到達主機時,層檢查報文段中的目的端,將其定向到相應的套接字。報文段中的數據通過套接字進入其所連接的進程。端

:主機上的每個套接字分配一個端

。16位(0~65535)。0~1023為

,保留給固定的應用程序。開發一個新應用時,需選擇一個端

。2014/3/25TCP/IP協議及網絡編程-98.2

UDP

數據包格式UDP段可能:丟包對應用程序交付失序無連接:在UDP發送方和接收方之間無握手每個UDP段的處理獨立于其他段使用UDP協議的原因無連接創建(減少時延)簡單:無連接段首部小無擁塞控制:UDP能夠盡可能快地傳輸應用常用于流式多DNSSNMP經UDP的可靠傳輸:在應用層增加可靠性,實現特定的差錯恢復!2014/3/25TCP/IP協議及網絡編程-108.2

UDP

數據包格式0

16

31UDP源端口UDP目標端口UDP包長UDP校驗和數據UDP數據包格式源端口和目標端口字段:

指定了兩個16

位長的端

。源端口字段可選,若指定了該字段的值,表示了響應數據包應發往的。若不使用,應設為0。端長度字段:整個UDP

數據包的字節個數,含UDP

頭部和數據部分。最小為8

,即該UDP數據包不包含數據段。UDP

校驗和字段:可用來保證UDP

數據包的完整性,可選。2014/3/25TCP/IP協議及網絡編程-118.3

UDP

校驗和的計算8.3.1

UDP

偽頭部格式8.3.2

為什么使用偽頭部2014/3/25TCP/IP協議及網絡編程-128.3.1

UDP

偽頭部格式UDP

校驗和的計算不僅包含了UDP數據包中的所有數據,還包括一個稱為偽頭部的結構和長度補足部分(將UDP

數據包補足16

位的整數倍的一個全為0

的8

位字)。計算校驗和時:UDP

協議先構造該數據包的一個偽頭部結構。然后將UDP

數據包的校驗和字段設置為0,并將其連接在偽頭部后面。將UDP

數據包的長度補足為16

位的整數倍。最后按照IP

協議校驗和的計算方法,對這個新的結構計算校驗和,并將結果填入校驗和字段。UDP

偽頭部和長度補足部分不會進行傳輸,其長度也不包含在UDP

數據包長度字段內。2014/3/25TCP/IP協議及網絡編程-138.3.1

UDP

偽頭部格式源IP

地址和目的IP

地址字段包含了發送該數據包的源主機和接收它的目的主機的IP

地址。協議代碼字段為UDP

協議的代碼。UDP

數據包長度字段就是UDP

數據包的UDP

包長字段的值。0

816

31源IP地址目的IP地址0協議代碼(17)UDP數據包長度UDP偽頭部格式2014/3/25TCP/IP協議及網絡編程-148.3.2

為什么使用偽頭部使用UDP

偽頭部的目的,為校驗和而存在。偽頭部并非UDP數據報中實際的有效成分。偽頭部是一個虛擬的數據結構,其中的信息是從數據報所在IP分組的報頭中提取的,既不向下傳送也不向上遞交,而僅僅是為了計算校驗和。這樣的校驗和,既校驗了UDP用戶數據的源端

和目的端,以及UDP用戶數據報的數據部分,又檢驗了IP數據報的源IP地址和目的地址。從而,偽報頭可保證UDP數據單元到達正確的目的地址。偽報頭中包含IP地址并且作為計算校驗和需要考慮的一部分。最終目的端根據偽報頭和數據單元計算校驗和,來驗證通信數據在傳輸過程中沒有改變而且到達了正確的目的地址。2014/3/25TCP/IP協議及網絡編程-158.4

UDP

數據包的封裝應用程序UDPIP網絡層UDP協議的層次圖UDP數據區UDP頭部IP報文數據區幀數據區IP報頭幀頭UDP數據包封裝關系UDP

數據包是封裝在IP

數據包中進行傳輸,即整個UDP

數據包是作為IP

數據包的數據部分被封裝在IP

數據包中的。封裝關系

。IP

數據包的頭部有一個協議字段,該字段表明IP

數據包封裝的是上層哪一種協議的數據包。對于UDP

數據包,該字段的值為17

。2014/3/25TCP/IP協議及網絡編程-16178.4

UDP

數據包的封裝1、接受方應用程序A首先申請一個端 ,如5555使用UDP協議的應用程序如何將數據傳輸到目標主機A

的特定應用程序的?2、發送方的應用程序準備好數據后,將其交給UDP

協議,讓其將該數據發送給主機A

的端口5555應用層應用程序A應用程序I…層……套接字UDPTCP套接字應用層應用程序A應用程序I…層……套接字端口5555UDPTCP套接字3、UDP

協議將應用程序的數據作為UDP

數據包的數據部分封裝在一個UDP

數據包中,并將數據包的目標端口字段設置為55554、

UDP

協議發現端

為5555,就將UDP

數據包的數據區放置在

端口5555的隊列中發送方接收方8.4

UDP

數據包的封裝上述過程的詳細文字描述:首先接收數據的應用程序要申請一個UDP

端,設為P

。發送方的應用程序準備好數據后,將其交給UDP

協議,讓其將該數據發送給主機A

的端口P

。UDP

協議將應用程序的數據,作為UDP

數據包的數據部分封裝在一個UDP

數據包中,并將數據包的目標端口字段設置為P

。UDP

協議再將UDP

數據包交給IP

協議處理,讓其將該數據包發送到主機A

。2014/3/25TCP/IP協議及網絡編程-188.4

UDP

數據包的封裝IP協議將UDP數據包作為IP數據包的數據封裝在一個IP數據包中,并將目的地址設置為A,將協議字段設置為17,然后將其交給網絡層處理并發送出去。該IP

數據包可能會經過若干個路由器,并最終到達主機A

的IP

協議層。主機A

的IP

協議發現協議字段為17

,就將IP

數據包的數據區交給UDP

協議處理。UDP

協議發現端

為P

,就將UDP

數據包的數據區放置在端口P

的隊列中。A

的應用程序從該隊列中將數據取出,并進行處理。2014/3/25TCP/IP協議及網絡編程-198.5

標準UDP

端口UDP數據包的源端口字段是可選的,但是目標端 必須指定。,才能確定將數據放在目標主機的UDP協議必須知道端哪個隊列中。應用程序如何才能知道要將數據發往目標主機的哪個端口?發送方在發送UDP數據包時指定源端口字段。數據包的接受者在響應該數據包時,可以將目標端設置為該數據包的源端。第一個數據包的發送者如何知道數據包的目標端口呢?一些標準服務指定了

的UDP端口。2014/3/25TCP/IP協議及網絡編程-208.5

標準UDP

端口UDP標準端口表端描述0保留7回顯9丟棄11活動用戶13日期時間15netstat17qotd19字符產生服務37時間2014/3/25TCP/IP協議及網絡編程-218.5

標準UDP

端口UDP(標準端口表續端描述42主機名服務43whois53服務67Bootstrap協議服務器68Bootstrap協議客戶端69TFTP123網絡時間協議161snmp162)2014/3/25TCP/IP協議及網絡編程-228.5

標準UDP

端口應用程序申請UDP

端可以采用兩種方式:第一種就是指定需要分配哪個端口;第二種方法不指定需要的端口,操作系統可以隨意分配一個可用的端給該應用程序。通常,如果應用程序需要接收其他主機的應用程序發出的第一個數據包,它就需要采用第式申請一個固定的端,且這個端必須是其他主機的應用程序知道的。否則應用程序可以采用第二種方法申請端,并在發出的第一個數據包中指定源端。2014/3/25TCP/IP協議及網絡編程-23小結

層協議:為運行在不同主

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論