




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
《計算機網(wǎng)絡(luò)技術(shù)》第五章傳輸層電子科技大學(xué)計算機學(xué)院、軟件學(xué)院1h《計算機網(wǎng)絡(luò)技術(shù)》第五章傳輸層1h目錄5.1傳輸層功能5.2傳輸層服務(wù)5.3傳輸層尋址5.4用戶數(shù)據(jù)報協(xié)議UDP5.5傳輸控制協(xié)議TCP5.6工程實例計算機網(wǎng)絡(luò)技術(shù)2h目錄5.1傳輸層功能計算機網(wǎng)絡(luò)技術(shù)2h5.1傳輸層功能傳輸層提供了不同主機上應(yīng)用程序進程之間的端到端的邏輯通信所謂“端到端”(endtoend)通信,即發(fā)送端和接收端之間的通信
計算機網(wǎng)絡(luò)技術(shù)3h5.1傳輸層功能傳輸層提供了不同主機上應(yīng)用程序進程之間的端5.1傳輸層功能傳輸層的主要功能有:(1)分割與重組數(shù)據(jù):將應(yīng)用層的消息分割成若干子消息并封裝為報文段。(2)按端口號尋址:標識不同的應(yīng)用進程,實現(xiàn)多個應(yīng)用進程對同一個IP地址的復(fù)用。(3)連接管理:完成端到端通信鏈路的建立、維護和管理。(4)差錯控制和流量控制總之,傳輸層要向應(yīng)用層提供通信服務(wù)的可靠性,避免報文的出錯、丟失、延遲時間紊亂、重復(fù)、亂序等現(xiàn)象。計算機網(wǎng)絡(luò)技術(shù)4h5.1傳輸層功能傳輸層的主要功能有:計算機網(wǎng)絡(luò)技術(shù)4h5.2傳輸層服務(wù)傳輸層主要提供兩種服務(wù)一種是面向連接的服務(wù),由TCP協(xié)議實現(xiàn),它是一種可靠的服務(wù);一種是無連接的服務(wù),由UDP協(xié)議實現(xiàn),是一種的不可靠服務(wù)。計算機網(wǎng)絡(luò)技術(shù)5h5.2傳輸層服務(wù)傳輸層主要提供兩種服務(wù)計算機網(wǎng)絡(luò)技術(shù)5h面向連接的服務(wù)過程分為三步:(1)建立連接;(2)數(shù)據(jù)傳輸;(3)釋放連接。計算機網(wǎng)絡(luò)技術(shù)6h面向連接的服務(wù)過程分為三步:(1)建立連接;(2)數(shù)據(jù)傳輸;面向連接的服務(wù)面向連接服務(wù)的特點(1)在服務(wù)進行之前必須建立一條邏輯鏈路后再進行數(shù)據(jù)傳輸,傳輸完畢后,再釋放連接。在數(shù)據(jù)傳輸過程,好象一直占用了一條這樣的邏輯鏈路。(2)由于所有的報文都在這個管道內(nèi)傳送,因此報文是按序到達目的地的,即先發(fā)送的報文先到達。(3)通過可靠傳輸機制保證報文傳輸?shù)目煽啃?,報文不易丟失。(4)由于需要管理和維護連接,因此協(xié)議復(fù)雜,通信效率不高。適合于對數(shù)據(jù)的傳輸可靠性非常高的場合,如文件傳輸、網(wǎng)頁瀏覽、電子郵件等
計算機網(wǎng)絡(luò)技術(shù)7h面向連接的服務(wù)面向連接服務(wù)的特點計算機網(wǎng)絡(luò)技術(shù)7h無連接的服務(wù)無連接的服務(wù)就是通信雙方不需要事先建立一條通信線路把每個帶有目的地址的報文分組送到網(wǎng)絡(luò)上,由網(wǎng)絡(luò)(如路由器)根據(jù)目的地址為分組選擇一條恰當?shù)穆窂絺魉偷侥康牡赜嬎銠C網(wǎng)絡(luò)技術(shù)8h無連接的服務(wù)無連接的服務(wù)就是通信雙方不需要事先建立一條通信線無連接服務(wù)無連接服務(wù)的特點(1)數(shù)據(jù)傳輸之前不需要建立連接;(2)每個分組都攜帶完整的目的節(jié)點地址,各分組在網(wǎng)絡(luò)中是獨立傳送的;(3)分組的傳遞是失序的,即后發(fā)送的分組有可能先到達目的地;(4)可靠性差,容易出現(xiàn)報文丟失的現(xiàn)象,但是協(xié)議相對簡單,通信效率較高。無連接的UDP是網(wǎng)絡(luò)層“盡最大努力投遞”服務(wù)在傳輸層的進一步擴展,無法保證報文能否正確到達目的地適用于局域網(wǎng)或光纖通信;連續(xù)的大數(shù)據(jù)量的傳輸并能容忍一定程度的數(shù)據(jù)丟失的應(yīng)用;多播應(yīng)用計算機網(wǎng)絡(luò)技術(shù)9h無連接服務(wù)無連接服務(wù)的特點計算機網(wǎng)絡(luò)技術(shù)9h5.3傳輸層端口端口就是應(yīng)用進程的地址,16bit正整數(shù)給應(yīng)用進程分配一個傳輸層的地址目的是為了實現(xiàn)在傳輸層對同一個IP地址的多路復(fù)用與多路分解。
計算機網(wǎng)絡(luò)技術(shù)10h5.3傳輸層端口端口就是應(yīng)用進程的地址,16bit正整數(shù)5.3傳輸層端口現(xiàn)實例子:一棟寫字樓中,有多個公司,每個公司都和外界有信函聯(lián)系,每個公司占據(jù)一層樓(或房間號)每個公司相當于應(yīng)用層的進程樓層號(或房間號)是傳輸層的端口地址寫字樓的地址則相當于網(wǎng)絡(luò)層的IP地址公司都使用寫字樓的地址和外界通信外界的信件到達寫字樓后,再由相關(guān)人員按照樓層號或房間號投遞到相應(yīng)的公司計算機網(wǎng)絡(luò)技術(shù)11h5.3傳輸層端口現(xiàn)實例子:計算機網(wǎng)絡(luò)技術(shù)11h5.3傳輸層端口端口只具有本地意義,即端口號是為了標志本主機應(yīng)用層中的各個進程,因此兩個不同主機的應(yīng)用進程可以使用相同的端口端口分為兩類:熟知端口(0-1023)和一般端口常用的熟知端口有:計算機網(wǎng)絡(luò)技術(shù)12h5.3傳輸層端口端口只具有本地意義,即端口號是為了標志本主5.4用戶數(shù)據(jù)報協(xié)議UDPUDP概述UDP的數(shù)據(jù)報格式UDP的應(yīng)用計算機網(wǎng)絡(luò)技術(shù)13h5.4用戶數(shù)據(jù)報協(xié)議UDPUDP概述計算機網(wǎng)絡(luò)技術(shù)13hUDP概述UDP協(xié)議由RFC768定義,是無連接的,即通信雙方并不需要建立連接,這種通信顯然是不可靠的。但是由于UDP簡單,數(shù)據(jù)傳輸速度快、開銷小。UDP的優(yōu)勢(1)無需建立連接和釋放連接,從而減少了連接管理開銷。而無需建立連接也減少了發(fā)送數(shù)據(jù)之前的時延。(2)UDP數(shù)據(jù)報只有8個字節(jié)的首部開銷,比TCP的20個字節(jié)的首部要短得多。(3)由于UDP沒有擁塞控制,因此UDP的傳輸速度很快,即使網(wǎng)絡(luò)出現(xiàn)擁塞也不會降低發(fā)送速率。這對實時應(yīng)用如IP電話,視頻點播等是非常重要的。計算機網(wǎng)絡(luò)技術(shù)14hUDP概述UDP協(xié)議由RFC768定義,是無連接的,即通信雙UDP應(yīng)用實例下圖是一個典型的UDP應(yīng)用例子DNSDNS是將域名地址轉(zhuǎn)換為IP地址的常見UDP應(yīng)用,DNS使用UDP傳送報文,但DNS服務(wù)器和DNS客戶所使用的端口是不一樣的。DNS服務(wù)器進程是一直在運行著,其熟知端口是53,在此端口上等待DNS請求的到來。計算機網(wǎng)絡(luò)技術(shù)15hUDP應(yīng)用實例下圖是一個典型的UDP應(yīng)用例子DNS計算機網(wǎng)UDP的數(shù)據(jù)報格式
用戶數(shù)據(jù)報UDP的報文格式由兩部分構(gòu)成:首部和數(shù)據(jù)各字段意義如下: (1)源端口:即本主機應(yīng)用進程的端口號; (2)目的端口:目的主機應(yīng)用進程的端口號; (3)長度:UDP用戶數(shù)據(jù)報的長度; (4)檢驗和:用于檢驗UDP用戶數(shù)據(jù)報在傳輸中是否出錯計算機網(wǎng)絡(luò)技術(shù)16hUDP的數(shù)據(jù)報格式用戶數(shù)據(jù)報UDP的報文格式由兩部分構(gòu)成:UDP校驗和計算在計算檢驗和時,要在UDP用戶數(shù)據(jù)報之前增加12個字節(jié)的偽首部。偽首部并不是UDP用戶數(shù)據(jù)報真正的首部,僅用于計算檢驗和,既不向下傳送也不向上遞交。UDP計算機檢驗和的方法和計算IP數(shù)據(jù)報首部檢驗和的方法相似。但網(wǎng)絡(luò)層只校驗IP分組首部,不對數(shù)據(jù)進行校驗。而UDP則是首部和數(shù)據(jù)一起檢驗計算機網(wǎng)絡(luò)技術(shù)17hUDP校驗和計算在計算檢驗和時,要在UDP用戶數(shù)據(jù)報之前增加UDP的應(yīng)用
由于UDP無需建立、簡單高效且開銷小的的特點,因此得到了廣泛的應(yīng)用流式多媒體這類數(shù)據(jù)流量大而連續(xù),且能容忍數(shù)據(jù)丟失的應(yīng)用多播應(yīng)用如果既想利用UDP簡單高效的特性,又想提供一定程度上的傳輸保障,則可以通過在應(yīng)用層增加相應(yīng)的可靠傳輸機制來完成。應(yīng)用應(yīng)用層協(xié)議傳輸層協(xié)議域名服務(wù)DNSUDP簡單文件傳輸TFTPUDP路由信息協(xié)議RIPUDP動態(tài)主機配置DHCPUDP簡單網(wǎng)管SNMPUDPIP電話專用協(xié)議UDP流媒體通信專用協(xié)議UDP多播組管理IGMPUDP電子郵件發(fā)送SMTPTCP遠程登錄TELNETTCPWeb瀏覽HTTPTCP文件傳輸FTPTCP計算機網(wǎng)絡(luò)技術(shù)18hUDP的應(yīng)用由于UDP無需建立、簡單高效且開銷小的的特點,5.5傳輸控制協(xié)議TCPTCP概述可靠傳輸原理TCP報文段格式TCP連接管理TCP的可靠傳輸TCP流量控制TCP擁塞控制計算機網(wǎng)絡(luò)技術(shù)19h5.5傳輸控制協(xié)議TCPTCP概述計算機網(wǎng)絡(luò)技術(shù)19hTCP概述TCP協(xié)議由RFC793定義,它是面向連接的,需要經(jīng)歷建立連接、數(shù)據(jù)通信和斷開連接三個階段。這里的“連接”并不是電路交換中的物理連接,也不是像虛電路那樣的邏輯連接它的連接狀態(tài)信息完全保存在兩個端系統(tǒng)中,即網(wǎng)絡(luò)上的路由器并不知道哪兩個端系統(tǒng)建立了TCP連接。TCP連接是全雙工的,即通信雙方可以同時發(fā)送和接收數(shù)據(jù)。例如主機H1和H2通信,建立TCP連接后,H1向H2發(fā)送數(shù)據(jù)時,也能接收來自H2的數(shù)據(jù)。TCP的數(shù)據(jù)傳輸是可靠的,它具有重傳、確認等可靠機制,一旦數(shù)據(jù)丟失或出錯,那么發(fā)送方將重新發(fā)送數(shù)據(jù),確保數(shù)據(jù)的可靠到達。相比于UDP,TCP還提供流量控制、擁塞控制機制,用于控制發(fā)送方的發(fā)送速率。計算機網(wǎng)絡(luò)技術(shù)20hTCP概述TCP協(xié)議由RFC793定義,它是面向連接的,需要可靠傳輸原理傳輸不可靠的根源在于底層物理信道的誤碼率,其不可靠程度取決于誤碼率的大小。這種底層物理信道的不可靠性就需要上層的可靠傳輸協(xié)議來彌補??煽總鬏?shù)幕緟f(xié)議 (1)理想的傳輸協(xié)議 (2)基本停等協(xié)議 (3)增加序號機制的停等協(xié)議 (4)增加超時機制的停等協(xié)議計算機網(wǎng)絡(luò)技術(shù)21h可靠傳輸原理傳輸不可靠的根源在于底層物理信道的誤碼率,其不可理想的傳輸協(xié)議基本假設(shè):物理信道不會出錯;網(wǎng)絡(luò)層總是準備好發(fā)送數(shù)據(jù);數(shù)據(jù)鏈路層處理速度無限快顯然,這是一種理想的數(shù)據(jù)傳輸,因為物理信道不會出錯意味著本協(xié)議無需進行校驗、糾錯;而網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層的假設(shè)意味著無需進行流量控制和保序等操作。
計算機網(wǎng)絡(luò)技術(shù)22h理想的傳輸協(xié)議基本假設(shè):物理信道不會出錯;網(wǎng)絡(luò)層總是準備好發(fā)基本停等協(xié)議基本假設(shè)如下:物理信道會出錯;網(wǎng)絡(luò)層總是準備好發(fā)送數(shù)據(jù);數(shù)據(jù)鏈路層處理速度有限物理信道此時會出錯,需要有校驗功能,數(shù)據(jù)鏈路層處理速度有限,意味著發(fā)送方不能無限度的發(fā)送數(shù)據(jù),必須要等到接收方確認(ACK)才能繼續(xù)發(fā)送。一旦收到錯誤的確認,就要重新發(fā)送數(shù)據(jù)。
計算機網(wǎng)絡(luò)技術(shù)23h基本停等協(xié)議基本假設(shè)如下:物理信道會出錯;網(wǎng)絡(luò)層總是準備增加序號機制基本假設(shè)和第2個協(xié)議相同在具有確認機制的可靠傳輸協(xié)議中,僅僅一個模糊的確認是不夠的,因為有重發(fā)數(shù)據(jù)的存在接收方無法分辨收到的數(shù)據(jù)是新發(fā)的數(shù)據(jù)還是重新發(fā)送的數(shù)據(jù)需要給發(fā)送的數(shù)據(jù)編號,稱為序號。有了序號后,就能夠有目的的確認。接收方也就不會混淆新發(fā)幀和重發(fā)幀了。計算機網(wǎng)絡(luò)技術(shù)24h增加序號機制基本假設(shè)和第2個協(xié)議相同計算機網(wǎng)絡(luò)技術(shù)24h增加超時機制物理信道除了會出錯外,還有可能發(fā)送數(shù)據(jù)丟失的現(xiàn)象。數(shù)據(jù)一旦丟失,就必須要進行重傳。要引入一個超時(Timeout)機制,當在定時器到期之前收到了來自接收方的確認,就取消定時器發(fā)送下一個數(shù)據(jù)。若定時器超時后仍未收到確認,則認為數(shù)據(jù)傳輸丟失(當然也有可能是確認信息丟失),發(fā)送方將重新發(fā)送數(shù)據(jù)。
計算機網(wǎng)絡(luò)技術(shù)25h增加超時機制物理信道除了會出錯外,還有可能發(fā)送數(shù)據(jù)丟失的現(xiàn)象帶確認、序號和超時機制的停等協(xié)議具有確認、序號和超時機制的停等協(xié)議已經(jīng)可以比較好的進行數(shù)據(jù)的可靠傳輸了
計算機網(wǎng)絡(luò)技術(shù)26h帶確認、序號和超時機制的停等協(xié)議具有確認、序號和超時機制的帶確認、序號和超時機制的停等協(xié)議計算機網(wǎng)絡(luò)技術(shù)27h帶確認、序號和超時機制的停等協(xié)議計算機網(wǎng)絡(luò)技術(shù)27h滑動窗口協(xié)議——提高數(shù)據(jù)傳輸率停等協(xié)議能夠正確的工作,但是它的效率非常低下滑動窗口協(xié)議為接收方定義了一個接收窗口,用以容納允許接收的幀序號;發(fā)送方定義了一個發(fā)送窗口,用以容納已經(jīng)發(fā)送但尚未收到確認的幀序號假設(shè)整個圓周所容納幀的序號總數(shù)為N接收窗口外的幀表示已經(jīng)接收過的幀或者對方尚未發(fā)出的幀;接收窗口內(nèi)的下界幀是是接收方期望收到的下一幀。當接收方收到接收窗口以外的幀時,丟棄此幀,但要發(fā)送重復(fù)的確認幀。計算機網(wǎng)絡(luò)技術(shù)28h滑動窗口協(xié)議——提高數(shù)據(jù)傳輸率停等協(xié)議能夠正確的工作,但是它滑動窗口協(xié)議——提高數(shù)據(jù)傳輸率在正常情況下,接收方總是收到接收窗口下界幀,去掉幀頭幀尾提取出分組交給網(wǎng)絡(luò)層,然后將接收窗口向前滾動一格(即上下界幀加1并對N求模),同時發(fā)送確認幀。在不正常的情況下,接收窗口下界幀因為丟失、出錯或延遲等原因而導(dǎo)致“尚未收到下界幀(序號i),就收到了窗口內(nèi)非下界幀(序號j)”的情況出現(xiàn)。為了能按序提交數(shù)據(jù)給網(wǎng)絡(luò)層,必須把這些幀緩存起來,并發(fā)送確認幀。當下界幀(序號i)到達時,收方將從i到m序號的幀對應(yīng)的分組按序交網(wǎng)絡(luò)層,并釋放相應(yīng)緩沖區(qū),接收窗口向前滾動(m-i+1)modN格,并發(fā)送確認幀,其中m是緩沖區(qū)中與i相鄰幀序號集合中的最晚序號。計算機網(wǎng)絡(luò)技術(shù)29h滑動窗口協(xié)議——提高數(shù)據(jù)傳輸率在正常情況下,接收方總是收到接接收窗口例子幀序號空間N=8,接收窗口大小w=6計算機網(wǎng)絡(luò)技術(shù)30h接收窗口例子幀序號空間N=8,接收窗口大小w=6計算機網(wǎng)絡(luò)發(fā)送窗口例子序號空間N=8,發(fā)送窗口最大為w=4,并假設(shè)發(fā)送方連續(xù)發(fā)送0,1,2,3號幀計算機網(wǎng)絡(luò)技術(shù)31h發(fā)送窗口例子序號空間N=8,發(fā)送窗口最大為w=4,并假設(shè)發(fā)送回退N步法——GBN協(xié)議在GBN協(xié)議中,接收窗口大小為1,而發(fā)送窗口大于1。因此接收方的下界幀只有一個,相當于接收方只能按序接收數(shù)據(jù)發(fā)送窗口為4,接收方收到0,1號幀后返回ACK0和ACK1確認幀。發(fā)送方收到ACK0和ACK1后可以繼續(xù)發(fā)送4,5號幀。假設(shè)2號幀在傳輸過程中丟失,因此接收方無法收到2號幀。若此時3號幀到達,接收方認為這是個非窗口內(nèi)的幀,因此丟棄此幀,并再次發(fā)送ACK1,表明已經(jīng)收到1號幀以前的數(shù)據(jù),下面需要2號幀。當3,4,5號幀到達時,接收方都將返回ACK1。發(fā)送方收到重復(fù)的ACK1時,知道接收方還未收到2號幀,因此發(fā)送方重新從2號幀開始,發(fā)送2,3,4,5號幀,即回退了N步發(fā)送數(shù)據(jù)計算機網(wǎng)絡(luò)技術(shù)32h回退N步法——GBN協(xié)議在GBN協(xié)議中,接收窗口大小為1,而選擇性重傳協(xié)議——SR協(xié)議GBN協(xié)議的效率較低,尤其是當發(fā)送窗口很大的時候。而選擇性重傳則可以提高傳輸效率。在SR協(xié)議中,發(fā)送窗口和接收窗口都大于1。接收窗口在收到非下界幀的時候,不會將數(shù)據(jù)丟棄,而是緩存起來,并發(fā)送它對期望幀的確認。計算機網(wǎng)絡(luò)技術(shù)33h選擇性重傳協(xié)議——SR協(xié)議GBN協(xié)議的效率較低,尤其是當發(fā)送SR協(xié)議SR的接收窗口尺寸應(yīng)滿足≤N/2,其中N為序號空間的大小若接收窗口尺寸>N/2,那么在非下界幀均先到,下界幀最后到時,接收窗口將一次性向前滾動>N/2個號,則滾動前后將有一部分窗口是重疊的計算機網(wǎng)絡(luò)技術(shù)34hSR協(xié)議SR的接收窗口尺寸應(yīng)滿足≤N/2,其中N為序號空間的TCP報文段格式TCP報文段為首部和數(shù)據(jù)計算機網(wǎng)絡(luò)技術(shù)35hTCP報文段格式TCP報文段為首部和數(shù)據(jù)計算機網(wǎng)絡(luò)技術(shù)35源端口和目的端口各占2個字節(jié),用于應(yīng)用進程的尋址序號
占4個字節(jié),不是給每個TCP報文編號,而是給每個字節(jié)編號序號字段的值指的是本報文段所發(fā)送的數(shù)據(jù)的第一個字節(jié)的序號確認號
占4個字節(jié),期望收到對方的下一個報文段數(shù)據(jù)中第一個字節(jié)的序號首部長度
占4bit,就是TCP報文段首部的長度,以4字節(jié)為單位計算機網(wǎng)絡(luò)技術(shù)36h源端口和目的端口計算機網(wǎng)絡(luò)技術(shù)36h保留
占6bit,保留為今后使用,但目前應(yīng)置為0緊急比特U(Urgent,URG)
URG為1緊急指針有效,它表示從本報文段的起始字符開始,到緊急指針指出的序號之間的部分為緊急數(shù)據(jù)確認比特A(Acknowledgement,ACK)
只有ACK=1時確認號字段才有效。當ACK=0時,確認號無效推送比特P(PuSH,PSH)
為1表示帶有PUSH標志的數(shù)據(jù)重置比特R(ReSeT,RST)
為1表示出現(xiàn)主機崩潰等嚴重錯誤,當TCP軟件收到此報文段時,必須立即釋放連接計算機網(wǎng)絡(luò)技術(shù)37h保留計算機網(wǎng)絡(luò)技術(shù)37h同步比特S(SYNchronization,SYN)在連接建立時用來同步序號。當SYN=1而ACK=0時,表明這是一個連接請求報文段終止比特F(FINa1,F(xiàn)IN)
用來釋放一個連接。當FIN=1時,表明此報文段的發(fā)送端的數(shù)據(jù)已發(fā)送完畢,并要求釋放傳輸連接窗口大小
占2字節(jié),窗口字段用來控制對方發(fā)送的數(shù)據(jù)量,用于流量控制校驗和
占2個字節(jié)。檢驗和字段檢驗的范圍包括首部和數(shù)據(jù)這兩部分,需要偽首部選項
長度可變。TCP只規(guī)定了一種選項,即最大報文段長度MSS,默認536字節(jié)計算機網(wǎng)絡(luò)技術(shù)38h同步比特S(SYNchronization,SYN)計算機網(wǎng)TCP連接管理TCP的連接管理有三個階段,即連接建立、數(shù)據(jù)傳送和連接釋放。TCP采用三次握手(three-wayhandshake)建立連接,即發(fā)送方和接收方之間要經(jīng)歷3次交互。防止已失效的連接請求報文段突然又傳送到了主機H2,因而產(chǎn)生錯誤
計算機網(wǎng)絡(luò)技術(shù)39hTCP連接管理TCP的連接管理有三個階段,即連接建立、數(shù)據(jù)傳TCP連接管理TCP釋放連接的過程與連接建立的過程類似,釋放連接需要經(jīng)歷四次握手。雙方都必須給對方發(fā)出一個斷開連接的請求報文并對之確認計算機網(wǎng)絡(luò)技術(shù)40hTCP連接管理TCP釋放連接的過程與連接建立的過程類似,釋放TCP的可靠傳輸TCP則提供可靠的數(shù)據(jù)傳輸服務(wù),確保收發(fā)雙方的數(shù)據(jù)傳輸按序、可靠、正確的傳輸。校驗和、確認、滑動窗口協(xié)議、序號以及超時機制是確保數(shù)據(jù)可靠傳輸?shù)幕炯夹g(shù)在TCP首部中,校驗和字段用于檢查TCP報文段是否在傳遞的過程中出錯序號字段用于對字節(jié)流中的每一個字節(jié)編號,使接收方能分辨收到的報文是新報文還是重復(fù)的報文通過確認號字段,發(fā)送方知道接收方目前已經(jīng)接收了哪個序號之前的數(shù)據(jù),并根據(jù)此信息決定發(fā)送的下一個報文段中第一個字節(jié)的序號對某個序號的重復(fù)確認還用于報文的快速重傳計算機網(wǎng)絡(luò)技術(shù)41hTCP的可靠傳輸TCP則提供可靠的數(shù)據(jù)傳輸服務(wù),確保收發(fā)雙方TCP的確認機制TCP的確認機制涉及到首部中的確認號字段。該字段是接收方希望收到發(fā)送方的下一個報文段中第一個字節(jié)的序號。發(fā)送方看到這個確認的序號,它就知道接收方已經(jīng)正確接收了該序號之前的數(shù)據(jù)。為了提高效率,降低網(wǎng)絡(luò)開銷,可以采取捎帶確認,如下圖(b)所示。
計算機網(wǎng)絡(luò)技術(shù)42hTCP的確認機制TCP的確認機制涉及到首部中的確認號字段。該TCP的確認機制累積確認:接收方不必每個報文都要發(fā)送ACK報文。推遲確認:TCP規(guī)定,一個ACK報文可以推遲500ms發(fā)出。若500ms內(nèi)有其他的報文到達,那么只需發(fā)送一個累積確認;若沒有報文到達,必須立刻發(fā)送一個ACK報文。
計算機網(wǎng)絡(luò)技術(shù)43hTCP的確認機制累積確認:接收方不必每個報文都要發(fā)送ACKTCP的確認機制重復(fù)的確認(或冗余確認)重復(fù)的確認發(fā)生在網(wǎng)絡(luò)傳輸出現(xiàn)異常的情況網(wǎng)絡(luò)延遲很大時和接收方收到失序的報文時計算機網(wǎng)絡(luò)技術(shù)44hTCP的確認機制重復(fù)的確認(或冗余確認)計算機網(wǎng)絡(luò)技術(shù)44hTCP的超時機制發(fā)送方每發(fā)送一個TCP報文,將為該報文設(shè)置一個定時器,同時將報文緩存。在定時器到期之前若收到接收方的確認信息,則將取消定時器,并將緩存的報文刪除。超時機制的關(guān)鍵是定時器的超時時長定時器時間若太長,發(fā)送方必須要等待很長時間接收對方的ACK報文,耗費主機資源,同時也降低了通信雙方的交互性和傳輸效率。定時器時間若設(shè)置太短,又容易導(dǎo)致過早超時的現(xiàn)象。計算機網(wǎng)絡(luò)技術(shù)45hTCP的超時機制發(fā)送方每發(fā)送一個TCP報文,將為該報文設(shè)置一TCP的超時機制定時器的時間間隔和網(wǎng)絡(luò)的往返時延(RoundTripTime,RTT)有關(guān)往返時延表示從發(fā)送端發(fā)送數(shù)據(jù)開始,到發(fā)送端收到來自接收端的確認(接收端收到數(shù)據(jù)后便立即發(fā)送確認)總共經(jīng)歷的時延TCP采用Jacobson提出的算法來估算往返時間RTT,RTT的計算公式如下:RTT=α?(old_RTT)+(1-α)?SAMPLE其中α稱為修正因子,表示RTT與歷史值的相關(guān)程度。對于TCP而言,α一般取為0.875較為合適。計算機網(wǎng)絡(luò)技術(shù)46hTCP的超時機制定時器的時間間隔和網(wǎng)絡(luò)的往返時延(RoundTCP的快速重傳機制超時重傳機制存在的一個問題是超時時間間隔(Timeout)往往太長當一個報文丟失時,發(fā)送方需要等待很長的超時時間才重發(fā)丟失的分組,這增加了端到端延時。TCP采取了一種快速重傳的機制即發(fā)送方一旦收到三個重復(fù)的ACK報文,就立刻重發(fā)報文,而不必等到定時器到期。計算機網(wǎng)絡(luò)技術(shù)47hTCP的快速重傳機制超時重傳機制存在的一個問題是超時時間間隔流量控制流量控制就是控制發(fā)送方的發(fā)送速率不會超過接收方從緩沖區(qū)中處理數(shù)據(jù)的速率。TCP使用滑動窗口機制來實現(xiàn)流量控制,滑動窗口接收方根據(jù)自己接收數(shù)據(jù)的能力來限制發(fā)送方數(shù)據(jù)的傳輸。TCP對每個通信方都有一個接收窗口(ReceiveWindow)參數(shù),當發(fā)送方收到TCP報文段時,從窗口字段中它可以獲知接收方目前可以接收的數(shù)據(jù)量,根據(jù)這個值來調(diào)整發(fā)送方的發(fā)送速率。計算機網(wǎng)絡(luò)技術(shù)48h流量控制流量控制就是控制發(fā)送方的發(fā)送速率不會超過接收方從緩沖流量控制糊涂窗口綜合癥是指接收方向發(fā)送方通告只有少量的接收緩沖區(qū)可用空間,導(dǎo)致發(fā)送方傳送多個短報文段的情況。例如接收方接收緩沖區(qū)已用完,如果應(yīng)用程序從緩沖區(qū)讀走一個字符(例如在Telnet運用時,就有這種情況),接收緩沖區(qū)可用空間為1字節(jié)接收方就通過報文段向發(fā)送方通告一個字節(jié)的接收窗口,于是發(fā)送方就發(fā)送一個字節(jié)數(shù)據(jù)的報文段接收方又發(fā)送一個確認報文段。由于報文段是封裝在IP分組中的,發(fā)送一個報文段至少需要40字節(jié)的TCP首部和IP首部。因此,為了傳送一個字節(jié),需要三個報文段。糊涂窗口綜合癥的危害是:(1)浪費網(wǎng)絡(luò)通信容量(2)帶來不必要的計算負擔避免糊涂窗口綜合癥可以采用推遲通知和組塊技術(shù)計算機網(wǎng)絡(luò)技術(shù)49h流量控制糊涂窗口綜合癥是指接收方向發(fā)送方通告只有少量的接收緩TCP擁塞控制擁塞:到達網(wǎng)絡(luò)中某些路由器的分組數(shù)量過多過快,使得路由器來不及處理,從而導(dǎo)致分組丟失、分組延遲增大乃至整個網(wǎng)絡(luò)性能下降的現(xiàn)象,嚴重時網(wǎng)絡(luò)甚至完全崩潰癱瘓。造成擁塞的原因路由器和主機的輸入部分的處理速度慢網(wǎng)絡(luò)的局部或整體帶寬容量小會加快擁塞的發(fā)生計算機網(wǎng)絡(luò)技術(shù)50hTCP擁塞控制擁塞:到達網(wǎng)絡(luò)中某些路由器的分組數(shù)量過多過快,TCP擁塞控制擁塞控制的目的是為了減緩網(wǎng)絡(luò)中的擁塞現(xiàn)象,本質(zhì)是控制發(fā)送方減少發(fā)送到網(wǎng)絡(luò)上的分組數(shù)量,即降低發(fā)送方的發(fā)送速率擁塞控制vs.流量控制擁塞控制是網(wǎng)絡(luò)全局性的問題,它涉及到網(wǎng)絡(luò)中所有主機的收發(fā)行為流量控制只與某對特定的發(fā)送方和接收方之間的通信有關(guān),是一個局部性的問題常用的擁塞控制方法有兩種:網(wǎng)絡(luò)輔助的擁塞控制和端到端的擁塞控制。TCP就是采用的是端到端的擁塞控制方法慢啟動(SlowStart)階段擁塞避免(CongestionAvoidance)階段計算機網(wǎng)絡(luò)技術(shù)51hTCP擁塞控制擁塞控制的目的是為了減緩網(wǎng)絡(luò)中的擁塞現(xiàn)象,本質(zhì)TCP擁塞控制——慢啟動階段發(fā)送方以一個低速率發(fā)送數(shù)據(jù)(通常設(shè)置為一個MSS)如果發(fā)送方發(fā)出的報文得到了對方的確認,那么發(fā)送方認為網(wǎng)絡(luò)能夠承受這樣的發(fā)送速率,因此它將發(fā)送速率加倍若此報文又收到確認,則再次將發(fā)送速率加倍,如此反復(fù)一旦擁塞窗口(當前發(fā)送速率)超過了臨界窗口,那么擁塞窗口值被設(shè)置為臨界窗口的大小,然后進入擁塞避免階段。計算機網(wǎng)絡(luò)技術(shù)52hTCP擁塞控制——慢啟動階段發(fā)送方以一個低速率發(fā)送數(shù)據(jù)(通TCP擁塞控制——擁塞避免階段執(zhí)行AIMD算法在擁塞避免階段,發(fā)送方發(fā)出報文得到確認后,發(fā)送速率線性遞增,即擁塞窗口大小增加一個MSS增大到一定程度時(數(shù)據(jù)丟失),擁塞窗口需減半(乘性遞減),快速降低發(fā)送速率若下一個報文收到了確認,則擁塞窗口又線性遞增,增加一個MSS如此反復(fù),使得擁塞窗口的變化呈現(xiàn)出鋸齒形的形狀
計算機網(wǎng)絡(luò)技術(shù)53hTCP擁塞控制——擁塞避免階段執(zhí)行AIMD算法計算機網(wǎng)絡(luò)技TCP擁塞控制擁塞控制機制總結(jié):(1)TCP連接建立時,擁塞窗口設(shè)置為1個MSS大?。–W=1),并進入慢啟動階段,每收到接收方的確認,擁塞窗口加倍。(2)在擁塞避免階段,每收到一個報文的確認,擁塞窗口線性增加,直到出現(xiàn)報文丟失。報文一旦丟失,臨界窗口變?yōu)楫斍皳砣翱诘囊话耄═W=CW/2),并如(3)一樣調(diào)整擁塞窗口大小。(3)出現(xiàn)報文丟失后,若是由于超時事件而判斷報文丟失,則擁塞窗口降為1個MSS,重新開始慢啟動階段;若是由于收到三個重復(fù)的ACK的事件而判斷的報文丟失,則擁塞窗口將為當前擁塞窗口的一半(CW=CW/2),然后執(zhí)行AIMD算法。計算機網(wǎng)絡(luò)技術(shù)54hTCP擁塞控制擁塞控制機制總結(jié):計算機網(wǎng)絡(luò)技術(shù)54h5.6工程實例傳輸層報文實例網(wǎng)絡(luò)編程及實例計算機網(wǎng)絡(luò)技術(shù)55h5.6工程實例傳輸層報文實例計算機網(wǎng)絡(luò)技術(shù)55h傳輸層報文實例UDP報文計算機網(wǎng)絡(luò)技術(shù)56h傳輸層報文實例UDP報文計算機網(wǎng)絡(luò)技術(shù)56h傳輸層報文實例TCP報文計算機網(wǎng)絡(luò)技術(shù)57h傳輸層報文實例TCP報文計算機網(wǎng)絡(luò)技術(shù)57h網(wǎng)絡(luò)編程模型套接字便于網(wǎng)絡(luò)應(yīng)用程序使用TCP/IP的網(wǎng)絡(luò)服務(wù),大部分系統(tǒng)都提供了一組基于TCP或者UDP的應(yīng)用程序編程接口(API)常用套接字APISocket():創(chuàng)建套接字Bind():為套接字綁定IP地址和端口Listen():服務(wù)器端偵聽客戶端的連接請求Connect():客戶端連接服務(wù)器Accept():服務(wù)器端接受客戶端的請求Send()和recv():收發(fā)數(shù)據(jù),主用用于TCP套接字Sendto()和recvfrom():收發(fā)數(shù)據(jù),主要用于UDP套接字Close():關(guān)閉套接字,釋放資源計算機網(wǎng)絡(luò)技術(shù)58h網(wǎng)絡(luò)編程模型套接字計算機網(wǎng)絡(luò)技術(shù)58h網(wǎng)絡(luò)編程模型UDP編程模型計算機網(wǎng)絡(luò)技術(shù)59h網(wǎng)絡(luò)編程模型UDP編程模型計算機網(wǎng)絡(luò)技術(shù)59hTCP編程模型計算機網(wǎng)絡(luò)技術(shù)60hTCP編程模型計算機網(wǎng)絡(luò)技術(shù)60h《計算機網(wǎng)絡(luò)技術(shù)》第五章傳輸層電子科技大學(xué)計算機學(xué)院、軟件學(xué)院61h《計算機網(wǎng)絡(luò)技術(shù)》第五章傳輸層1h目錄5.1傳輸層功能5.2傳輸層服務(wù)5.3傳輸層尋址5.4用戶數(shù)據(jù)報協(xié)議UDP5.5傳輸控制協(xié)議TCP5.6工程實例計算機網(wǎng)絡(luò)技術(shù)62h目錄5.1傳輸層功能計算機網(wǎng)絡(luò)技術(shù)2h5.1傳輸層功能傳輸層提供了不同主機上應(yīng)用程序進程之間的端到端的邏輯通信所謂“端到端”(endtoend)通信,即發(fā)送端和接收端之間的通信
計算機網(wǎng)絡(luò)技術(shù)63h5.1傳輸層功能傳輸層提供了不同主機上應(yīng)用程序進程之間的端5.1傳輸層功能傳輸層的主要功能有:(1)分割與重組數(shù)據(jù):將應(yīng)用層的消息分割成若干子消息并封裝為報文段。(2)按端口號尋址:標識不同的應(yīng)用進程,實現(xiàn)多個應(yīng)用進程對同一個IP地址的復(fù)用。(3)連接管理:完成端到端通信鏈路的建立、維護和管理。(4)差錯控制和流量控制總之,傳輸層要向應(yīng)用層提供通信服務(wù)的可靠性,避免報文的出錯、丟失、延遲時間紊亂、重復(fù)、亂序等現(xiàn)象。計算機網(wǎng)絡(luò)技術(shù)64h5.1傳輸層功能傳輸層的主要功能有:計算機網(wǎng)絡(luò)技術(shù)4h5.2傳輸層服務(wù)傳輸層主要提供兩種服務(wù)一種是面向連接的服務(wù),由TCP協(xié)議實現(xiàn),它是一種可靠的服務(wù);一種是無連接的服務(wù),由UDP協(xié)議實現(xiàn),是一種的不可靠服務(wù)。計算機網(wǎng)絡(luò)技術(shù)65h5.2傳輸層服務(wù)傳輸層主要提供兩種服務(wù)計算機網(wǎng)絡(luò)技術(shù)5h面向連接的服務(wù)過程分為三步:(1)建立連接;(2)數(shù)據(jù)傳輸;(3)釋放連接。計算機網(wǎng)絡(luò)技術(shù)66h面向連接的服務(wù)過程分為三步:(1)建立連接;(2)數(shù)據(jù)傳輸;面向連接的服務(wù)面向連接服務(wù)的特點(1)在服務(wù)進行之前必須建立一條邏輯鏈路后再進行數(shù)據(jù)傳輸,傳輸完畢后,再釋放連接。在數(shù)據(jù)傳輸過程,好象一直占用了一條這樣的邏輯鏈路。(2)由于所有的報文都在這個管道內(nèi)傳送,因此報文是按序到達目的地的,即先發(fā)送的報文先到達。(3)通過可靠傳輸機制保證報文傳輸?shù)目煽啃裕瑘笪牟灰讈G失。(4)由于需要管理和維護連接,因此協(xié)議復(fù)雜,通信效率不高。適合于對數(shù)據(jù)的傳輸可靠性非常高的場合,如文件傳輸、網(wǎng)頁瀏覽、電子郵件等
計算機網(wǎng)絡(luò)技術(shù)67h面向連接的服務(wù)面向連接服務(wù)的特點計算機網(wǎng)絡(luò)技術(shù)7h無連接的服務(wù)無連接的服務(wù)就是通信雙方不需要事先建立一條通信線路把每個帶有目的地址的報文分組送到網(wǎng)絡(luò)上,由網(wǎng)絡(luò)(如路由器)根據(jù)目的地址為分組選擇一條恰當?shù)穆窂絺魉偷侥康牡赜嬎銠C網(wǎng)絡(luò)技術(shù)68h無連接的服務(wù)無連接的服務(wù)就是通信雙方不需要事先建立一條通信線無連接服務(wù)無連接服務(wù)的特點(1)數(shù)據(jù)傳輸之前不需要建立連接;(2)每個分組都攜帶完整的目的節(jié)點地址,各分組在網(wǎng)絡(luò)中是獨立傳送的;(3)分組的傳遞是失序的,即后發(fā)送的分組有可能先到達目的地;(4)可靠性差,容易出現(xiàn)報文丟失的現(xiàn)象,但是協(xié)議相對簡單,通信效率較高。無連接的UDP是網(wǎng)絡(luò)層“盡最大努力投遞”服務(wù)在傳輸層的進一步擴展,無法保證報文能否正確到達目的地適用于局域網(wǎng)或光纖通信;連續(xù)的大數(shù)據(jù)量的傳輸并能容忍一定程度的數(shù)據(jù)丟失的應(yīng)用;多播應(yīng)用計算機網(wǎng)絡(luò)技術(shù)69h無連接服務(wù)無連接服務(wù)的特點計算機網(wǎng)絡(luò)技術(shù)9h5.3傳輸層端口端口就是應(yīng)用進程的地址,16bit正整數(shù)給應(yīng)用進程分配一個傳輸層的地址目的是為了實現(xiàn)在傳輸層對同一個IP地址的多路復(fù)用與多路分解。
計算機網(wǎng)絡(luò)技術(shù)70h5.3傳輸層端口端口就是應(yīng)用進程的地址,16bit正整數(shù)5.3傳輸層端口現(xiàn)實例子:一棟寫字樓中,有多個公司,每個公司都和外界有信函聯(lián)系,每個公司占據(jù)一層樓(或房間號)每個公司相當于應(yīng)用層的進程樓層號(或房間號)是傳輸層的端口地址寫字樓的地址則相當于網(wǎng)絡(luò)層的IP地址公司都使用寫字樓的地址和外界通信外界的信件到達寫字樓后,再由相關(guān)人員按照樓層號或房間號投遞到相應(yīng)的公司計算機網(wǎng)絡(luò)技術(shù)71h5.3傳輸層端口現(xiàn)實例子:計算機網(wǎng)絡(luò)技術(shù)11h5.3傳輸層端口端口只具有本地意義,即端口號是為了標志本主機應(yīng)用層中的各個進程,因此兩個不同主機的應(yīng)用進程可以使用相同的端口端口分為兩類:熟知端口(0-1023)和一般端口常用的熟知端口有:計算機網(wǎng)絡(luò)技術(shù)72h5.3傳輸層端口端口只具有本地意義,即端口號是為了標志本主5.4用戶數(shù)據(jù)報協(xié)議UDPUDP概述UDP的數(shù)據(jù)報格式UDP的應(yīng)用計算機網(wǎng)絡(luò)技術(shù)73h5.4用戶數(shù)據(jù)報協(xié)議UDPUDP概述計算機網(wǎng)絡(luò)技術(shù)13hUDP概述UDP協(xié)議由RFC768定義,是無連接的,即通信雙方并不需要建立連接,這種通信顯然是不可靠的。但是由于UDP簡單,數(shù)據(jù)傳輸速度快、開銷小。UDP的優(yōu)勢(1)無需建立連接和釋放連接,從而減少了連接管理開銷。而無需建立連接也減少了發(fā)送數(shù)據(jù)之前的時延。(2)UDP數(shù)據(jù)報只有8個字節(jié)的首部開銷,比TCP的20個字節(jié)的首部要短得多。(3)由于UDP沒有擁塞控制,因此UDP的傳輸速度很快,即使網(wǎng)絡(luò)出現(xiàn)擁塞也不會降低發(fā)送速率。這對實時應(yīng)用如IP電話,視頻點播等是非常重要的。計算機網(wǎng)絡(luò)技術(shù)74hUDP概述UDP協(xié)議由RFC768定義,是無連接的,即通信雙UDP應(yīng)用實例下圖是一個典型的UDP應(yīng)用例子DNSDNS是將域名地址轉(zhuǎn)換為IP地址的常見UDP應(yīng)用,DNS使用UDP傳送報文,但DNS服務(wù)器和DNS客戶所使用的端口是不一樣的。DNS服務(wù)器進程是一直在運行著,其熟知端口是53,在此端口上等待DNS請求的到來。計算機網(wǎng)絡(luò)技術(shù)75hUDP應(yīng)用實例下圖是一個典型的UDP應(yīng)用例子DNS計算機網(wǎng)UDP的數(shù)據(jù)報格式
用戶數(shù)據(jù)報UDP的報文格式由兩部分構(gòu)成:首部和數(shù)據(jù)各字段意義如下: (1)源端口:即本主機應(yīng)用進程的端口號; (2)目的端口:目的主機應(yīng)用進程的端口號; (3)長度:UDP用戶數(shù)據(jù)報的長度; (4)檢驗和:用于檢驗UDP用戶數(shù)據(jù)報在傳輸中是否出錯計算機網(wǎng)絡(luò)技術(shù)76hUDP的數(shù)據(jù)報格式用戶數(shù)據(jù)報UDP的報文格式由兩部分構(gòu)成:UDP校驗和計算在計算檢驗和時,要在UDP用戶數(shù)據(jù)報之前增加12個字節(jié)的偽首部。偽首部并不是UDP用戶數(shù)據(jù)報真正的首部,僅用于計算檢驗和,既不向下傳送也不向上遞交。UDP計算機檢驗和的方法和計算IP數(shù)據(jù)報首部檢驗和的方法相似。但網(wǎng)絡(luò)層只校驗IP分組首部,不對數(shù)據(jù)進行校驗。而UDP則是首部和數(shù)據(jù)一起檢驗計算機網(wǎng)絡(luò)技術(shù)77hUDP校驗和計算在計算檢驗和時,要在UDP用戶數(shù)據(jù)報之前增加UDP的應(yīng)用
由于UDP無需建立、簡單高效且開銷小的的特點,因此得到了廣泛的應(yīng)用流式多媒體這類數(shù)據(jù)流量大而連續(xù),且能容忍數(shù)據(jù)丟失的應(yīng)用多播應(yīng)用如果既想利用UDP簡單高效的特性,又想提供一定程度上的傳輸保障,則可以通過在應(yīng)用層增加相應(yīng)的可靠傳輸機制來完成。應(yīng)用應(yīng)用層協(xié)議傳輸層協(xié)議域名服務(wù)DNSUDP簡單文件傳輸TFTPUDP路由信息協(xié)議RIPUDP動態(tài)主機配置DHCPUDP簡單網(wǎng)管SNMPUDPIP電話專用協(xié)議UDP流媒體通信專用協(xié)議UDP多播組管理IGMPUDP電子郵件發(fā)送SMTPTCP遠程登錄TELNETTCPWeb瀏覽HTTPTCP文件傳輸FTPTCP計算機網(wǎng)絡(luò)技術(shù)78hUDP的應(yīng)用由于UDP無需建立、簡單高效且開銷小的的特點,5.5傳輸控制協(xié)議TCPTCP概述可靠傳輸原理TCP報文段格式TCP連接管理TCP的可靠傳輸TCP流量控制TCP擁塞控制計算機網(wǎng)絡(luò)技術(shù)79h5.5傳輸控制協(xié)議TCPTCP概述計算機網(wǎng)絡(luò)技術(shù)19hTCP概述TCP協(xié)議由RFC793定義,它是面向連接的,需要經(jīng)歷建立連接、數(shù)據(jù)通信和斷開連接三個階段。這里的“連接”并不是電路交換中的物理連接,也不是像虛電路那樣的邏輯連接它的連接狀態(tài)信息完全保存在兩個端系統(tǒng)中,即網(wǎng)絡(luò)上的路由器并不知道哪兩個端系統(tǒng)建立了TCP連接。TCP連接是全雙工的,即通信雙方可以同時發(fā)送和接收數(shù)據(jù)。例如主機H1和H2通信,建立TCP連接后,H1向H2發(fā)送數(shù)據(jù)時,也能接收來自H2的數(shù)據(jù)。TCP的數(shù)據(jù)傳輸是可靠的,它具有重傳、確認等可靠機制,一旦數(shù)據(jù)丟失或出錯,那么發(fā)送方將重新發(fā)送數(shù)據(jù),確保數(shù)據(jù)的可靠到達。相比于UDP,TCP還提供流量控制、擁塞控制機制,用于控制發(fā)送方的發(fā)送速率。計算機網(wǎng)絡(luò)技術(shù)80hTCP概述TCP協(xié)議由RFC793定義,它是面向連接的,需要可靠傳輸原理傳輸不可靠的根源在于底層物理信道的誤碼率,其不可靠程度取決于誤碼率的大小。這種底層物理信道的不可靠性就需要上層的可靠傳輸協(xié)議來彌補。可靠傳輸?shù)幕緟f(xié)議 (1)理想的傳輸協(xié)議 (2)基本停等協(xié)議 (3)增加序號機制的停等協(xié)議 (4)增加超時機制的停等協(xié)議計算機網(wǎng)絡(luò)技術(shù)81h可靠傳輸原理傳輸不可靠的根源在于底層物理信道的誤碼率,其不可理想的傳輸協(xié)議基本假設(shè):物理信道不會出錯;網(wǎng)絡(luò)層總是準備好發(fā)送數(shù)據(jù);數(shù)據(jù)鏈路層處理速度無限快顯然,這是一種理想的數(shù)據(jù)傳輸,因為物理信道不會出錯意味著本協(xié)議無需進行校驗、糾錯;而網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層的假設(shè)意味著無需進行流量控制和保序等操作。
計算機網(wǎng)絡(luò)技術(shù)82h理想的傳輸協(xié)議基本假設(shè):物理信道不會出錯;網(wǎng)絡(luò)層總是準備好發(fā)基本停等協(xié)議基本假設(shè)如下:物理信道會出錯;網(wǎng)絡(luò)層總是準備好發(fā)送數(shù)據(jù);數(shù)據(jù)鏈路層處理速度有限物理信道此時會出錯,需要有校驗功能,數(shù)據(jù)鏈路層處理速度有限,意味著發(fā)送方不能無限度的發(fā)送數(shù)據(jù),必須要等到接收方確認(ACK)才能繼續(xù)發(fā)送。一旦收到錯誤的確認,就要重新發(fā)送數(shù)據(jù)。
計算機網(wǎng)絡(luò)技術(shù)83h基本停等協(xié)議基本假設(shè)如下:物理信道會出錯;網(wǎng)絡(luò)層總是準備增加序號機制基本假設(shè)和第2個協(xié)議相同在具有確認機制的可靠傳輸協(xié)議中,僅僅一個模糊的確認是不夠的,因為有重發(fā)數(shù)據(jù)的存在接收方無法分辨收到的數(shù)據(jù)是新發(fā)的數(shù)據(jù)還是重新發(fā)送的數(shù)據(jù)需要給發(fā)送的數(shù)據(jù)編號,稱為序號。有了序號后,就能夠有目的的確認。接收方也就不會混淆新發(fā)幀和重發(fā)幀了。計算機網(wǎng)絡(luò)技術(shù)84h增加序號機制基本假設(shè)和第2個協(xié)議相同計算機網(wǎng)絡(luò)技術(shù)24h增加超時機制物理信道除了會出錯外,還有可能發(fā)送數(shù)據(jù)丟失的現(xiàn)象。數(shù)據(jù)一旦丟失,就必須要進行重傳。要引入一個超時(Timeout)機制,當在定時器到期之前收到了來自接收方的確認,就取消定時器發(fā)送下一個數(shù)據(jù)。若定時器超時后仍未收到確認,則認為數(shù)據(jù)傳輸丟失(當然也有可能是確認信息丟失),發(fā)送方將重新發(fā)送數(shù)據(jù)。
計算機網(wǎng)絡(luò)技術(shù)85h增加超時機制物理信道除了會出錯外,還有可能發(fā)送數(shù)據(jù)丟失的現(xiàn)象帶確認、序號和超時機制的停等協(xié)議具有確認、序號和超時機制的停等協(xié)議已經(jīng)可以比較好的進行數(shù)據(jù)的可靠傳輸了
計算機網(wǎng)絡(luò)技術(shù)86h帶確認、序號和超時機制的停等協(xié)議具有確認、序號和超時機制的帶確認、序號和超時機制的停等協(xié)議計算機網(wǎng)絡(luò)技術(shù)87h帶確認、序號和超時機制的停等協(xié)議計算機網(wǎng)絡(luò)技術(shù)27h滑動窗口協(xié)議——提高數(shù)據(jù)傳輸率停等協(xié)議能夠正確的工作,但是它的效率非常低下滑動窗口協(xié)議為接收方定義了一個接收窗口,用以容納允許接收的幀序號;發(fā)送方定義了一個發(fā)送窗口,用以容納已經(jīng)發(fā)送但尚未收到確認的幀序號假設(shè)整個圓周所容納幀的序號總數(shù)為N接收窗口外的幀表示已經(jīng)接收過的幀或者對方尚未發(fā)出的幀;接收窗口內(nèi)的下界幀是是接收方期望收到的下一幀。當接收方收到接收窗口以外的幀時,丟棄此幀,但要發(fā)送重復(fù)的確認幀。計算機網(wǎng)絡(luò)技術(shù)88h滑動窗口協(xié)議——提高數(shù)據(jù)傳輸率停等協(xié)議能夠正確的工作,但是它滑動窗口協(xié)議——提高數(shù)據(jù)傳輸率在正常情況下,接收方總是收到接收窗口下界幀,去掉幀頭幀尾提取出分組交給網(wǎng)絡(luò)層,然后將接收窗口向前滾動一格(即上下界幀加1并對N求模),同時發(fā)送確認幀。在不正常的情況下,接收窗口下界幀因為丟失、出錯或延遲等原因而導(dǎo)致“尚未收到下界幀(序號i),就收到了窗口內(nèi)非下界幀(序號j)”的情況出現(xiàn)。為了能按序提交數(shù)據(jù)給網(wǎng)絡(luò)層,必須把這些幀緩存起來,并發(fā)送確認幀。當下界幀(序號i)到達時,收方將從i到m序號的幀對應(yīng)的分組按序交網(wǎng)絡(luò)層,并釋放相應(yīng)緩沖區(qū),接收窗口向前滾動(m-i+1)modN格,并發(fā)送確認幀,其中m是緩沖區(qū)中與i相鄰幀序號集合中的最晚序號。計算機網(wǎng)絡(luò)技術(shù)89h滑動窗口協(xié)議——提高數(shù)據(jù)傳輸率在正常情況下,接收方總是收到接接收窗口例子幀序號空間N=8,接收窗口大小w=6計算機網(wǎng)絡(luò)技術(shù)90h接收窗口例子幀序號空間N=8,接收窗口大小w=6計算機網(wǎng)絡(luò)發(fā)送窗口例子序號空間N=8,發(fā)送窗口最大為w=4,并假設(shè)發(fā)送方連續(xù)發(fā)送0,1,2,3號幀計算機網(wǎng)絡(luò)技術(shù)91h發(fā)送窗口例子序號空間N=8,發(fā)送窗口最大為w=4,并假設(shè)發(fā)送回退N步法——GBN協(xié)議在GBN協(xié)議中,接收窗口大小為1,而發(fā)送窗口大于1。因此接收方的下界幀只有一個,相當于接收方只能按序接收數(shù)據(jù)發(fā)送窗口為4,接收方收到0,1號幀后返回ACK0和ACK1確認幀。發(fā)送方收到ACK0和ACK1后可以繼續(xù)發(fā)送4,5號幀。假設(shè)2號幀在傳輸過程中丟失,因此接收方無法收到2號幀。若此時3號幀到達,接收方認為這是個非窗口內(nèi)的幀,因此丟棄此幀,并再次發(fā)送ACK1,表明已經(jīng)收到1號幀以前的數(shù)據(jù),下面需要2號幀。當3,4,5號幀到達時,接收方都將返回ACK1。發(fā)送方收到重復(fù)的ACK1時,知道接收方還未收到2號幀,因此發(fā)送方重新從2號幀開始,發(fā)送2,3,4,5號幀,即回退了N步發(fā)送數(shù)據(jù)計算機網(wǎng)絡(luò)技術(shù)92h回退N步法——GBN協(xié)議在GBN協(xié)議中,接收窗口大小為1,而選擇性重傳協(xié)議——SR協(xié)議GBN協(xié)議的效率較低,尤其是當發(fā)送窗口很大的時候。而選擇性重傳則可以提高傳輸效率。在SR協(xié)議中,發(fā)送窗口和接收窗口都大于1。接收窗口在收到非下界幀的時候,不會將數(shù)據(jù)丟棄,而是緩存起來,并發(fā)送它對期望幀的確認。計算機網(wǎng)絡(luò)技術(shù)93h選擇性重傳協(xié)議——SR協(xié)議GBN協(xié)議的效率較低,尤其是當發(fā)送SR協(xié)議SR的接收窗口尺寸應(yīng)滿足≤N/2,其中N為序號空間的大小若接收窗口尺寸>N/2,那么在非下界幀均先到,下界幀最后到時,接收窗口將一次性向前滾動>N/2個號,則滾動前后將有一部分窗口是重疊的計算機網(wǎng)絡(luò)技術(shù)94hSR協(xié)議SR的接收窗口尺寸應(yīng)滿足≤N/2,其中N為序號空間的TCP報文段格式TCP報文段為首部和數(shù)據(jù)計算機網(wǎng)絡(luò)技術(shù)95hTCP報文段格式TCP報文段為首部和數(shù)據(jù)計算機網(wǎng)絡(luò)技術(shù)35源端口和目的端口各占2個字節(jié),用于應(yīng)用進程的尋址序號
占4個字節(jié),不是給每個TCP報文編號,而是給每個字節(jié)編號序號字段的值指的是本報文段所發(fā)送的數(shù)據(jù)的第一個字節(jié)的序號確認號
占4個字節(jié),期望收到對方的下一個報文段數(shù)據(jù)中第一個字節(jié)的序號首部長度
占4bit,就是TCP報文段首部的長度,以4字節(jié)為單位計算機網(wǎng)絡(luò)技術(shù)96h源端口和目的端口計算機網(wǎng)絡(luò)技術(shù)36h保留
占6bit,保留為今后使用,但目前應(yīng)置為0緊急比特U(Urgent,URG)
URG為1緊急指針有效,它表示從本報文段的起始字符開始,到緊急指針指出的序號之間的部分為緊急數(shù)據(jù)確認比特A(Acknowledgement,ACK)
只有ACK=1時確認號字段才有效。當ACK=0時,確認號無效推送比特P(PuSH,PSH)
為1表示帶有PUSH標志的數(shù)據(jù)重置比特R(ReSeT,RST)
為1表示出現(xiàn)主機崩潰等嚴重錯誤,當TCP軟件收到此報文段時,必須立即釋放連接計算機網(wǎng)絡(luò)技術(shù)97h保留計算機網(wǎng)絡(luò)技術(shù)37h同步比特S(SYNchronization,SYN)在連接建立時用來同步序號。當SYN=1而ACK=0時,表明這是一個連接請求報文段終止比特F(FINa1,F(xiàn)IN)
用來釋放一個連接。當FIN=1時,表明此報文段的發(fā)送端的數(shù)據(jù)已發(fā)送完畢,并要求釋放傳輸連接窗口大小
占2字節(jié),窗口字段用來控制對方發(fā)送的數(shù)據(jù)量,用于流量控制校驗和
占2個字節(jié)。檢驗和字段檢驗的范圍包括首部和數(shù)據(jù)這兩部分,需要偽首部選項
長度可變。TCP只規(guī)定了一種選項,即最大報文段長度MSS,默認536字節(jié)計算機網(wǎng)絡(luò)技術(shù)98h同步比特S(SYNchronization,SYN)計算機網(wǎng)TCP連接管理TCP的連接管理有三個階段,即連接建立、數(shù)據(jù)傳送和連接釋放。TCP采用三次握手(three-wayhandshake)建立連接,即發(fā)送方和接收方之間要經(jīng)歷3次交互。防止已失效的連接請求報文段突然又傳送到了主機H2,因而產(chǎn)生錯誤
計算機網(wǎng)絡(luò)技術(shù)99hTCP連接管理TCP的連接管理有三個階段,即連接建立、數(shù)據(jù)傳TCP連接管理TCP釋放連接的過程與連接建立的過程類似,釋放連接需要經(jīng)歷四次握手。雙方都必須給對方發(fā)出一個斷開連接的請求報文并對之確認計算機網(wǎng)絡(luò)技術(shù)100hTCP連接管理TCP釋放連接的過程與連接建立的過程類似,釋放TCP的可靠傳輸TCP則提供可靠的數(shù)據(jù)傳輸服務(wù),確保收發(fā)雙方的數(shù)據(jù)傳輸按序、可靠、正確的傳輸。校驗和、確認、滑動窗口協(xié)議、序號以及超時機制是確保數(shù)據(jù)可靠傳輸?shù)幕炯夹g(shù)在TCP首部中,校驗和字段用于檢查TCP報文段是否在傳遞的過程中出錯序號字段用于對字節(jié)流中的每一個字節(jié)編號,使接收方能分辨收到的報文是新報文還是重復(fù)的報文通過確認號字段,發(fā)送方知道接收方目前已經(jīng)接收了哪個序號之前的數(shù)據(jù),并根據(jù)此信息決定發(fā)送的下一個報文段中第一個字節(jié)的序號對某個序號的重復(fù)確認還用于報文的快速重傳計算機網(wǎng)絡(luò)技術(shù)101hTCP的可靠傳輸TCP則提供可靠的數(shù)據(jù)傳輸服務(wù),確保收發(fā)雙方TCP的確認機制TCP的確認機制涉及到首部中的確認號字段。該字段是接收方希望收到發(fā)送方的下一個報文段中第一個字節(jié)的序號。發(fā)送方看到這個確認的序號,它就知道接收方已經(jīng)正確接收了該序號之前的數(shù)據(jù)。為了提高效率,降低網(wǎng)絡(luò)開銷,可以采取捎帶確認,如下圖(b)所示。
計算機網(wǎng)絡(luò)技術(shù)102hTCP的確認機制TCP的確認機制涉及到首部中的確認號字段。該TCP的確認機制累積確認:接收方不必每個報文都要發(fā)送ACK報文。推遲確認:TCP規(guī)定,一個ACK報文可以推遲500ms發(fā)出。若500ms內(nèi)有其他的報文到達,那么只需發(fā)送一個累積確認;若沒有報文到達,必須立刻發(fā)送一個ACK報文。
計算機網(wǎng)絡(luò)技術(shù)103hTCP的確認機制累積確認:接收方不必每個報文都要發(fā)送ACKTCP的確認機制重復(fù)的確認(或冗余確認)重復(fù)的確認發(fā)生在網(wǎng)絡(luò)傳輸出現(xiàn)異常的情況網(wǎng)絡(luò)延遲很大時和接收方收到失序的報文時計算機網(wǎng)絡(luò)技術(shù)104hTCP的確認機制重復(fù)的確認(或冗余確認)計算機網(wǎng)絡(luò)技術(shù)44hTCP的超時機制發(fā)送方每發(fā)送一個TCP報文,將為該報文設(shè)置一個定時器,同時將報文緩存。在定時器到期之前若收到接收方的確認信息,則將取消定時器,并將緩存的報文刪除。超時機制的關(guān)鍵是定時器的超時時長定時器時間若太長,發(fā)送方必須要等待很長時間接收對方的ACK報文,耗費主機資源,同時也降低了通信雙方的交互性和傳輸效率。定時器時間若設(shè)置太短,又容易導(dǎo)致過早超時的現(xiàn)象。計算機網(wǎng)絡(luò)技術(shù)105hTCP的超時機制發(fā)送方每發(fā)送一個TCP報文,將為該報文設(shè)置一TCP的超時機制定時器的時間間隔和網(wǎng)絡(luò)的往返時延(RoundTripTime,RTT)有關(guān)往返時延表示從發(fā)送端發(fā)送數(shù)據(jù)開始,到發(fā)送端收到來自接收端的確認(接收端收到數(shù)據(jù)后便立即發(fā)送確認)總共經(jīng)歷的時延TCP采用Jacobson提出的算法來估算往返時間RTT,RTT的計算公式如下:RTT=α?(old_RTT)+(1-α)?SAMPLE其中α稱為修正因子,表示RTT與歷史值的相關(guān)程度。對于TCP而言,α一般取為0.875較為合適。計算機網(wǎng)絡(luò)技術(shù)106hTCP的超時機制定時器的時間間隔和網(wǎng)絡(luò)的往返時延(RoundTCP的快速重傳機制超時重傳機制存在的一個問題是超時時間間隔(Timeout)往往太長當一個報文丟失時,發(fā)送方需要等待很長的超時時間才重發(fā)丟失的分組,這增加了端到端延時。TCP采取了一種快速重傳的機制即發(fā)送方一旦收到三個重復(fù)的ACK報文,就立刻重發(fā)報文,而不必等到定時器到期。計算機網(wǎng)絡(luò)技術(shù)107hTCP的快速重傳機制超時重傳機制存在的一個問題是超時時間間隔流量控制流量控制就是控制發(fā)送方的發(fā)送速率不會超過接收方從緩沖區(qū)中處理數(shù)據(jù)的速率。TCP使用滑動窗口機制來實現(xiàn)流量控制,滑動窗口接收方根據(jù)自己接收數(shù)據(jù)的能力來限制發(fā)送方數(shù)據(jù)的傳輸。TCP對每個通信方都有一個接收窗口(ReceiveWindow)參數(shù),當發(fā)送方收到TCP報文段時,從窗口字段中它可以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國串聯(lián)恒功率電伴熱帶數(shù)據(jù)監(jiān)測研究報告
- 統(tǒng)編版二年級語文下冊期中達標測試卷(提升版)(含答案)
- 2025年《義務(wù)教育小學(xué)道德與法治課程標準測試卷2022版》測試題庫及答案
- 2022-2023學(xué)年廣東省廣州市天河區(qū)匯景實驗學(xué)校七年級(下)期中數(shù)學(xué)試卷(含答案)
- 遺產(chǎn)繼承遺囑效力確認合同(2篇)
- 采購與施工分包合同(2篇)
- 物流配送路徑優(yōu)化對比表
- 開幕致辭與企業(yè)愿景演講實錄
- 蘇武牧羊的紅色故事征文
- 抵押房產(chǎn)借款合同
- 2024年04月北京中信銀行總行社會招考(420)筆試歷年參考題庫附帶答案詳解
- 2025年中遠海運集團招聘筆試參考題庫含答案解析
- 【含答案、詳細解析】2024年山東省青島市中考數(shù)學(xué)試題
- 小學(xué)安全教育四年級
- 開題報告:實現(xiàn)綜合育人價值的中學(xué)勞動教育課程體系研究
- 《人工智能:AIGC基礎(chǔ)與應(yīng)用》題庫 填空題
- 文本數(shù)據(jù)質(zhì)量評估標準-洞察分析
- 血透護士進修匯報
- Python程序設(shè)計 課件 第4章 字符串、列表、元組和文件
- “學(xué)-訓(xùn)-評”一體化師范生實踐能力培養(yǎng)模式的探索與實踐
- 錢三強完整版本
評論
0/150
提交評論