版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
內容簡介本課程共分為9講,主要內容包括:第1講計算機網(wǎng)絡概論第2講數(shù)據(jù)通信和物理層第3講數(shù)據(jù)鏈路層第4講局域網(wǎng)技術第5講廣域網(wǎng)技術第6講網(wǎng)絡層第7講傳輸層第8講應用層第9講網(wǎng)絡安全1/41
北京師范大學BeijingNormalUniversity
2/41
北京師范大學BeijingNormalUniversity第7講傳輸層計算機網(wǎng)絡基礎教程第7講傳輸層本講基本要求:掌握TCP/IP傳輸層的協(xié)議組成,掌握常見的著名TCP/IP的端口分配值;理解TCP可靠傳輸服務的主要實現(xiàn)機制;理解OSI傳輸層的功能;了解套接字和端口概念。3/41
北京師范大學BeijingNormalUniversity7.1傳輸層功能概述7.2TCP/IP的傳輸層7.3TCP/IP實用程序7.4習題4/41
北京師范大學BeijingNormalUniversity第7講傳輸層7.1傳輸層功能概述傳輸層是OSI參考模型的第4層,它為上一層提供了端到端(endtoend)的可靠的信息傳遞。物理層可以使我們在各鏈路上透明地傳輸比特流。數(shù)據(jù)鏈路層則增強了物理層所提供的服務,它使得相鄰結點所構成的鏈路能夠傳輸無差錯的幀。網(wǎng)絡層又在數(shù)據(jù)鏈路層的基礎上,提供路由選擇、網(wǎng)絡互連的功能。而對于用戶進程來說,希望得到的是端到端的服務(如主機A到主機B的FTP),傳輸層就是建立應用間的端到端連接,并且為數(shù)據(jù)傳輸提供可靠或不可靠的連接服務。傳輸層是OSI模型中建立在網(wǎng)絡層和會話層之間的一個層次,它一般包括以下基本功能。①連接管理(ConnectionManagement):定義了允許兩個用戶像直接連接一樣開始交談的規(guī)則。通常把連接的定義和建立的過程稱為握手(handshake)。傳輸層要建立、維持和終止一個會話,傳輸層與其對等系統(tǒng)建立面向連接的會話。②流量控制(FlowControl):就是以網(wǎng)絡普遍接受的速度發(fā)送數(shù)據(jù),從而防止網(wǎng)絡擁塞造成數(shù)據(jù)報的丟失。傳輸層和數(shù)據(jù)鏈路層的流量控制區(qū)別在于:傳輸層定義了端到端用戶之間的流量控制,數(shù)據(jù)鏈路層定義了兩個中間的相鄰結點的流量控制。7.1傳輸層功能概述③差錯檢測(ErrorDetection):傳輸層的差錯檢測機制會檢測到源點和目的之間的傳輸完全無錯。④對用戶請求的響應(ResponsetoUser’sRequest):包括對發(fā)送和接收數(shù)據(jù)請求的響應,以及特定請求的響應,如用戶可能要求高吞吐率、低延遲或可靠的服務。⑤建立無連接或面向連接的通信:TCP/IP協(xié)議的TCP提供面向連接的傳輸層服務,UDP則提供無連接的傳輸層服務。7.1傳輸層功能概述傳輸層是OSI參考模型中非常重要的一層,起到承上啟下的不可或缺的作用,從而被看成整個分層體系的核心。但是,只有資源子網(wǎng)中的端設備才會具有傳輸層,通信子網(wǎng)中的設備一般至多只具備OSI下面3層的功能即通信功能。根據(jù)上述原因,通常又將OSI模型中的下面3層稱為面向通信子網(wǎng)的層,而將傳輸層及以上的各層稱為面向資源子網(wǎng)或主機的層。另一種劃分則是將傳輸層及以下的各層統(tǒng)稱為面向數(shù)據(jù)通信的層,而將傳輸層之上的會話層、表示層及應用層這些不包含任何數(shù)據(jù)傳輸功能的層統(tǒng)稱為面向應用的層,如圖7.1所示。7.1傳輸層功能概述應用層表示層會話層傳輸層網(wǎng)絡層數(shù)據(jù)鏈路層物理層面向主機或資源子網(wǎng)面向通信子網(wǎng)面向應用面向通信圖7.1傳輸層在OSI模型中的地位7.1傳輸層功能概述7.2TCP/IP的傳輸層TCP/IP的傳輸層提供了兩個主要的協(xié)議即傳輸控制協(xié)議(TransportControlProtocol,簡稱TCP)和用戶數(shù)據(jù)報協(xié)議(UserDatagramProtocol,簡稱UDP)。7.2.1TCP協(xié)議為了實現(xiàn)這種端到端的可靠傳輸,TCP必須規(guī)定傳輸層的連接建立與拆除的方式、數(shù)據(jù)傳輸格式、確認的方式、目標應用進程的識別以及差錯控制和流量控制機制等。與所有網(wǎng)絡協(xié)議類似,TCP將自己所要實現(xiàn)的功能集中體現(xiàn)在了TCP的協(xié)議數(shù)據(jù)單元中。7.2TCP/IP的傳輸層1.TCP分段的格式TCP的協(xié)議數(shù)據(jù)單元被稱為分段(Segment),TCP通過分段的交互來建立連接、傳輸數(shù)據(jù)、發(fā)出確認、進行差錯控制、流量控制及關閉連接。分段分為兩部分,即分段頭和數(shù)據(jù),所謂分段頭就是TCP為了實現(xiàn)端到端可靠傳輸所加上的控制信息,而數(shù)據(jù)則是指由高層即應用層來的數(shù)據(jù)。圖7.2給出了TCP分段頭的格式,其中有關字段的說明如下。比特04816192431源端口(SourcePort)目的端口(DestinationPort)序列號(SequenceNumber)確認號(AcknowledgmentNumber)報頭長度校驗和(Checksum)窗口(Windows)保留TCP數(shù)據(jù)部分首部傳送TCP數(shù)據(jù)報圖7.2TCP報文段的首部編碼位緊急指針(Urgentpointer)任選項(Options,長度可變)填充TCP首部7.2TCP/IP的傳輸層源端口:占16比特,分段的源端口號。目的端口:占16比特,分段的目的端口號。序列號:占32比特,分段的序列號,表示該分段在發(fā)送方的數(shù)據(jù)流中的位置,用來保證到達數(shù)據(jù)順序的編號。確認號:占32比特,下一個期望接收的TCP分段號,相當于是對對方所發(fā)送的并已被本方所正確接收的分段的確認。順序號和確認號共同用于TCP服務中的確認、差錯控制。報頭長度:TCP頭長,以32位字長為單位。實際上相當于給出數(shù)據(jù)在數(shù)據(jù)段中的開始位置。7.2TCP/IP的傳輸層
保留:占6比特,為將來的應用而保留,目前置為“0”。編碼位:占6比特,TCP分段有多種應用,如建立或關閉連接、傳輸數(shù)據(jù)、攜帶確認等.窗口:占32比特,窗口的大小表示發(fā)送方可以接收的數(shù)據(jù)量,單位為字節(jié)。使用可變大小的滑動窗口協(xié)議來進行流量控制。校驗和:占32比特,用于對分段首部和數(shù)據(jù)進行校驗。通過將所有16位字以補碼形式相加,然后再對相加和取補,正常情況下應為“0”。7.2TCP/IP的傳輸層
緊急指針:占16比特,給出從當前順序號到緊急數(shù)據(jù)位置的偏移量。任選項:長度可變。TCP只規(guī)定了一種選項,即最大報文段長度(MSS)。填充:當任選項字段長度不足32位字長時,需要加以填充。數(shù)據(jù):來自高層即應用層的協(xié)議數(shù)據(jù)。
7.2TCP/IP的傳輸層2.端口和套接字上面TCP分段格式中出現(xiàn)了“源端口”和“目的端口”字段,“端口”是英文port的意譯,作為計算機術語“端口”被認為是計算機與外界通信交流的出入口。由網(wǎng)絡OSI參考模型可知,傳輸層與網(wǎng)絡層最大的區(qū)別是傳輸層提供進程通信能力,網(wǎng)絡通信的最終地址不僅包括主機地址,還包括可描述網(wǎng)絡進程的某種標識。所以TCP/IP協(xié)議所涉及的端口是指用于實現(xiàn)面向連接或無連接服務的通信協(xié)議端口,是對網(wǎng)絡通信進程的一種標識,其屬于一種抽象的軟件結構,包括一些數(shù)據(jù)結構和I/O(輸入輸出)緩沖區(qū),故屬于軟件端口范疇。7.2TCP/IP的傳輸層每個端口都擁有一個叫端口號的整數(shù)描述符,用來標識不同的端口或進程。在TCP/IP傳輸層,定義一個16比特長度的整數(shù)作為端口標識,也就是說可定義216個端口,其端口號從0到2161。由于TCP/IP傳輸層的TCP和UDP兩個協(xié)議是兩個完全獨立的軟件模塊,因此各自的端口號也相互獨立,即各自可獨立擁有216個端口。正如圖7.3所示,每種應用層協(xié)議或應用程序都具有與傳輸層惟一連接的端口,并且使用惟一的端口號將這些端口區(qū)分開來。當數(shù)據(jù)流從某一個應用發(fā)送到遠程網(wǎng)絡設備的某一個應用時,傳輸層根據(jù)這些端口號,就能夠判斷出數(shù)據(jù)是來自于哪一個應用,想要訪問另一臺網(wǎng)絡設備的哪一個應用,從而將數(shù)據(jù)傳輸?shù)较鄳膽脤訁f(xié)議或應用程序。7.2TCP/IP的傳輸層TelnetTCPFTPSMTPDNSTFTPSNMPHTTPRIPUDP2125536980161520端口號傳輸層應用層圖7.3應用層與傳輸層之間的接口237.2TCP/IP的傳輸層端口根據(jù)其對應的協(xié)議或應用不同,被分配了不同的端口號。負責分配端口號的機構是Internet編號管理局(IANA)。目前,端口的分配有3種情況,這3種不同的端口可以根據(jù)端口號加以區(qū)別。(1)保留端口這種端口號一般都小于1024。它們基本上都被分配給了已知的應用協(xié)議(如圖7.3中的部分端口)。目前,這一類端口的端口號分配已經(jīng)被廣大網(wǎng)絡應用者接受,形成了標準,在各種網(wǎng)絡的應用中調用這些端口號就意味著使用它們所代表的應用協(xié)議。這些端口由于已經(jīng)有了固定的使用者,所以不能被動態(tài)地分配給其他應用程序。7.2TCP/IP的傳輸層(2)動態(tài)分配的端口這種端口的端口號一般都大于1024。這一類的端口沒有固定的使用者,它們可以被動態(tài)地分配給應用程序使用。也就是說,在使用應用軟件訪問網(wǎng)絡的時候,應用軟件可以向系統(tǒng)申請一個大于1024的端口號臨時代表這個軟件與傳輸層交換數(shù)據(jù),并且使用這個臨時的端口與網(wǎng)絡上的其他主機通信。圖7.4顯示了使用動態(tài)分配的端口訪問網(wǎng)絡資源的情況。在DOS窗口中使用netstat命令查看端口使用情況的圖示。
7.2TCP/IP的傳輸層(3)注冊端口注冊端口比較特殊,它也是固定為某個應用服務的端口,但是它所代表的不是已經(jīng)形成標準的應用層協(xié)議,而是某個軟件廠商開發(fā)的應用程序。大多數(shù)注冊端口的端口號大于1024。TCP和UDP都允許16位的端口值,分別能夠提供65536個端口。不論端口號大于還是小于1024,以上3種端口都分別屬于TCP和UDP。當然,也有些協(xié)議的端口既屬于TCP也屬于UDP。
7.2TCP/IP的傳輸層當網(wǎng)絡中的兩臺主機進行通信的時候,為了表明數(shù)據(jù)是由源端的哪一種應用發(fā)出的,以及數(shù)據(jù)所要訪問的是目的端的哪一種服務,TCP/IP協(xié)議會在傳輸層封裝數(shù)據(jù)段時,把發(fā)出數(shù)據(jù)的應用程序的端口作為源端口,把接收數(shù)據(jù)的應用程序的端口作為目的端口,添加到數(shù)據(jù)段的頭中,從而使主機能夠同時維持多個會話的連接,使不同應用程序的數(shù)據(jù)不發(fā)生混淆。一臺主機上的多個應用程序可同時與其他多臺主機上的多個對等進程進行通信,所以需要對不同的虛電路進行標識。對TCP虛電路連接采用發(fā)送端和接收端的套接字(Socket)組合來識別,如(Socket1,Socket2)。所謂套接字實際上是一個通信端點,每個套接字都有一個套接字序號,包括主機的IP地址與一個16位的主機端口號,如(主機IP地址,端口號)。如圖8.5所示表現(xiàn)了源端口與目的端口的作用。
7.2TCP/IP的傳輸層圖7.95路由具體過程端口的概念示意圖端口1端口2端口3端口4主機A主機B連接1連接2()()()()端口1端口2
()()主機C端口3端口4
()()連接3連接47.2TCP/IP的傳輸層3.TCP的連接建立和拆除TCP連接包括建立與拆除兩個過程。TCP使用三次握手協(xié)議來建立連接。連接可以由任何一方發(fā)起,也可以由雙方同時發(fā)起。一旦一臺主機上的TCP軟件已經(jīng)主動發(fā)起連接請求,運行在另一臺主機上的TCP軟件就被動地等待握手。圖8.6給出了三次握手建立TCP連接的簡單示意。7.2TCP/IP的傳輸層SYN=1,ACK=x+1主機A主機B網(wǎng)絡報文發(fā)送SYN序號=X的分段接收SYN分段,并同意建立連接,發(fā)送序號為y的分段,發(fā)送ACK=x+1接收ACK分段,再次確定建立連接,發(fā)送序號為x+1的分段,發(fā)送確認ACK=y+1接收ACK段圖8.6三次握手建立TCP連接SYN=1,ACK=0SYN=1,ACK=y+17.2TCP/IP的傳輸層主機1首先發(fā)起TCP連接請求,并在所發(fā)送的分段中將編碼位字段中的SYN位置為“1”、ACK位置為“0”。主機2收到該分段,若同意建立連接,則發(fā)送一個連接接受的應答分段,其中編碼位字段的SYN和ACK位均被置“1”,指示對第一個SYN報文段的確認,以繼續(xù)握手操作;否則,主機2要發(fā)送一個將RST位置為“1”的應答分段,表示拒絕建立連接。主機1收到主機2發(fā)來的同意建立連接分段后,還有再次進行選擇的機會,若其確認要建立這個連接,則向主機2發(fā)送確認分段,用來通知主機2雙方已完成建立連接;若其不想建立這個連接,則可以發(fā)送一個將RST位置為“1”的應答分段來告之主機2拒絕建立連接。7.2TCP/IP的傳輸層不管是哪一方先發(fā)起連接請求,一旦連接建立,就可以實現(xiàn)全雙向的數(shù)據(jù)傳輸,而不存在主從關系。TCP將數(shù)據(jù)流看做字節(jié)的序列,將從用戶進程接收的任意長的數(shù)據(jù),分成不超過64KB(包括TCP頭在內)的分段,以適合IP數(shù)據(jù)報的載荷能力。所以對于一次傳輸要交換大量報文的應用(如文件傳輸、遠程登錄等),往往需要以多個分段進行傳輸。數(shù)據(jù)傳輸完成后,還要進行TCP連接的拆除或關閉。TCP協(xié)議使用修改的三次握手協(xié)議來關閉連接,以結束會話。7.2TCP/IP的傳輸層4.TCP可靠數(shù)據(jù)傳輸技術TCP采用序列號、確認、滑動窗口協(xié)議等。只不過TCP的目的是為了實現(xiàn)端到端結點之間的可靠數(shù)據(jù)傳輸,而數(shù)據(jù)鏈路層協(xié)議則為了實現(xiàn)相鄰結點之間的可靠數(shù)據(jù)傳輸。首先,TCP要為所發(fā)送的每一個分段加上序列號,保證每一個分段能被接收方接收,并只被正確地接收一次。其次,TCP采用具有重傳功能的積極確認技術作為可靠數(shù)據(jù)流傳輸服務的基礎。為了避免由于網(wǎng)絡延遲引起遲到的確認和重復的確認,TCP規(guī)定在確認信息中捎帶一個分段的序號,使接收方能正確地將分段與確認聯(lián)系起來。7.2TCP/IP的傳輸層第三,采用可變長的滑動窗口協(xié)議進行流量控制,以防止由于發(fā)送端與接收端之間的不匹配而引起數(shù)據(jù)丟失?;瑒哟翱趨f(xié)議用于傳輸層是為了在端到端結點之間實現(xiàn)流量控制。TCP采用可變長的滑動窗口,使得發(fā)送端與接收端可根據(jù)自己的CPU和數(shù)據(jù)緩存資源對數(shù)據(jù)發(fā)送和接收能力作出動態(tài)調整,從而靈活性更強,也更合理。例如,假設主機1有一個大小為4096字節(jié)長的緩沖區(qū),向主機2發(fā)送2048字節(jié)長度的數(shù)據(jù)分段,則在未收到主機2的關于該2048字節(jié)長度分段的確認之前,主機1向其他主機只能聲明自己有一個2048字節(jié)長度的發(fā)送緩沖區(qū)。過了一段時間后,假定主機1收到了來自主機2的確認,但其中聲明的窗口大小為0,這表明主機2雖然已經(jīng)正確收到主機1前面所發(fā)送的分段,但目前主機2已不能接受任何來自主機1的新的分段了,除非以后主機2給出窗口大于0的新信息。7.2TCP/IP的傳輸層5.TCP流量控制TCP采用大小可變的滑動窗口機制實現(xiàn)流量控制功能。窗口的大小是字節(jié)。在TCP報文段首部的窗口字段寫入的數(shù)值就是當前給對方設置發(fā)送窗口的數(shù)據(jù)的上限。在數(shù)據(jù)傳輸過程中,TCP提供了一種基于滑動窗口協(xié)議的流量控制機制,用接收端接收能力(緩沖區(qū)的容量)的大小來控制發(fā)送端發(fā)送的數(shù)據(jù)量。在建立連接時,通信雙方使用SYN報文段或ACK報文段中的窗口字段捎帶著各自的接收窗口尺寸,即通知對方從而確定對方發(fā)送窗口的上限。7.2TCP/IP的傳輸層在數(shù)據(jù)傳輸過程中,發(fā)送方按接收方通知的窗口尺寸和序號發(fā)送一定量的數(shù)據(jù),接收方根據(jù)接收緩沖區(qū)的使用情況動態(tài)調整接收窗口尺寸,并在發(fā)送TCP報文段或確認段時捎帶新的窗口尺寸和確認號通知發(fā)送方。如圖8.8所示。設主機A向主機B發(fā)送數(shù)據(jù)。雙方確定的窗口值是400。設一個報文段為100字節(jié)長,序號的初始值為1(即SEQ1=1)。在圖8.8中,主機B進行了三次流量控制。第一次將窗口減小為300字節(jié),第二次將窗口又減為200字節(jié),最后一次減至零,即不允許對方再發(fā)送數(shù)據(jù)了。這種暫停狀態(tài)將持續(xù)到主機B重新發(fā)出一個新的窗口值為止。7.2TCP/IP的傳輸層主機A主機B主機A還能發(fā)送300字節(jié)主機A還能發(fā)送200字節(jié)圖8.9利用可變滑動窗口進行流量控制SEQ=1SEQ=101SEQ=201ACK=201,WIN=300丟失!SEQ=301SEQ=401SEQ=201ACK=501,WIN=200ACK=601,WIN=0SEQ=501允許A再發(fā)送300字節(jié)(序號201至500)A還能發(fā)送200字節(jié)(序號301至500)A還能發(fā)送100字節(jié)(序號401至500)A超時重發(fā),但不能發(fā)送序號500以后的數(shù)據(jù)允許A再發(fā)送200字節(jié)(序號501至700)A還能發(fā)送100字節(jié)(序號601至700)不允許A再發(fā)送,(到序號600的數(shù)據(jù)都收到了)7.2TCP/IP的傳輸層7.2.2用戶數(shù)據(jù)報協(xié)議(UDP)
1.UDP概述
UDP只在IP的數(shù)據(jù)報服務之上增加了很少的功能,這就是端口的功能(有了端口,運輸層就能進行復用和分用)和差錯檢測的功能。UDP在某些方面有其特殊的優(yōu)點:①發(fā)送數(shù)據(jù)之前不需要建立連接,減少了開銷和發(fā)送數(shù)據(jù)之前的時延。②UDP不使用擁塞控制,也不保證可靠交付,因此主機不需要維持具有許多參數(shù)的、復雜的連接狀態(tài)表。③UDP用戶數(shù)據(jù)報只有8個字節(jié)的首部開銷。
7.2TCP/IP的傳輸層④由于UDP沒有擁塞控制,因此網(wǎng)絡出現(xiàn)的擁塞不會使源主機的發(fā)送效率降低,這對某些實時應用是很重要的。很多的實時應用(如IP電話、實時視頻會議等)要求源主機以恒定的速率發(fā)送數(shù)據(jù),并且允許在網(wǎng)絡發(fā)生擁塞時丟失一些數(shù)據(jù),但卻不允許數(shù)據(jù)有太大的時延,UDP正好適合這種要求。2.UDP數(shù)據(jù)報的首部格式UDP有兩個字段:數(shù)據(jù)字段和首部字段。首部字段只有8字節(jié),由4個字段組成,每個字段都是2字節(jié),如圖8.9所示,各字段意義如下。7.2TCP/IP的傳輸層7.2TCP/IP的傳輸層比特04816192431源端口(SourcePort)目的端口(DestinationPort)UDP報文長度UDP數(shù)據(jù)部分首部傳送UDP數(shù)據(jù)報圖8.9UDP數(shù)據(jù)報的首部校驗和(Checksum)緊急指針(Urgentpointer)首部7.2TCP/IP的傳輸層
源端口:占16比特,源端口號。目的端口:占16比特,目的端口號。
UDP報文長度:占16比特,UDP用戶數(shù)據(jù)報的長度。校驗和:占16比特,防止UDP用戶數(shù)據(jù)報在傳輸中出錯。在UDP中也采用與TCP中類似的端
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高空考古挖掘服務合同
- 聯(lián)排別墅酒店租賃合同范本
- 高速公路土方施工合同范本
- 花卉市場租賃合同水電費
- 電力工程改造合同范本
- 小學節(jié)能改造施工合同
- 冶金工程中標合作協(xié)議
- 礦山設備廠房施工合同
- 演出票務租賃合同
- 古城墻遺址修復工程合同
- 高速公路路牌廣告合同范文(3篇)
- 上海市浦東惠南學區(qū)2024-2025學年九年級12月月考語文試題及答案
- 湖北省黃岡市2023-2024學年高二上學期期末調研考試 地理 含解析
- 抵制心理暴力與騷擾管理規(guī)定
- 銀行業(yè)專業(yè)人員職業(yè)資格初級(公司信貸)模擬試卷68
- 《全科醫(yī)學概論》課件-以家庭為單位的健康照顧
- 2024商場承包合同
- 月光德彪西原版五線譜鋼琴譜正譜樂譜
- 圖書館管理系統(tǒng)答辯
- 先天性心臟病封堵術護理
- 三級安全教育試題(公司級、部門級、班組級)
評論
0/150
提交評論