




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、TCP/IP基本原理第四章 傳輸層,本章學(xué)習(xí)要求: 掌握:端口、周知端口號(hào)、TCP地址、MSS、RTT、三次握手、套接字、慢啟動(dòng)等概念; 掌握:TCP的重傳機(jī)制原理 掌握:用三次握手建立連接、關(guān)閉連接的原理 掌握:流量及擁塞控制原理 了解:TCP、UDP的校驗(yàn)和原理 了解:TCP、UDP報(bào)文格式 了解:常用網(wǎng)絡(luò)命令,4.1 Internet傳輸層的基本原理,傳輸層的功能 目的:是在互聯(lián)網(wǎng)層提供主機(jī)數(shù)據(jù)通信服務(wù)的基礎(chǔ)上,向源主機(jī)和宿主機(jī)之間提供端到端可靠進(jìn)程通信。 功能:一是加強(qiáng)或彌補(bǔ)網(wǎng)絡(luò)層或互聯(lián)網(wǎng)層提供的服務(wù);二是提供進(jìn)程通信機(jī)制。 端到端的通信:是由一段段點(diǎn)到點(diǎn)的通信構(gòu)成的,端到端的協(xié)議建立
2、在點(diǎn)到點(diǎn)的協(xié)議基礎(chǔ)之上,提供應(yīng)用進(jìn)程之間的通信,在其下層,是沒(méi)有應(yīng)用進(jìn)程整個(gè)概念的。 端口號(hào):傳輸層要區(qū)分收到的數(shù)據(jù)中的不同的應(yīng)用進(jìn)程,方法是為每個(gè)應(yīng)用進(jìn)程分配一個(gè)“端口號(hào) Port Number”.某一臺(tái)主機(jī)上的某個(gè)應(yīng)用進(jìn)程由主機(jī)IP地址、端口號(hào)唯一標(biāo)識(shí)端口號(hào)也稱為傳輸層訪問(wèn)點(diǎn)TSAP。 傳輸層要解決的問(wèn)題還有:差錯(cuò)控制、流量控制、排序和連接管理等問(wèn)題。 在TCP/IP的協(xié)議簇中的傳輸層協(xié)議有 傳輸控制協(xié)議TCP,面向連接。 用戶數(shù)據(jù)報(bào)協(xié)議UDP,面向無(wú)連接。,4.1.1 TCP服務(wù),TCP為主機(jī)提供許多服務(wù)。TCP是一個(gè)面向連接的協(xié)議,它必須提供會(huì)話管理和數(shù)據(jù)單元的可靠傳輸。IP是一個(gè)無(wú)連
3、接協(xié)議,它依靠TIP提供可靠的數(shù)據(jù)傳輸。 TCP提供兩種重要服務(wù):差錯(cuò)控制和流量控制。TCP差錯(cuò)和流量控制的一個(gè)獨(dú)特要素是它沒(méi)有否定確認(rèn)。它只發(fā)送肯定確認(rèn)。如果接收到的序列有錯(cuò)(被校驗(yàn)和檢測(cè)的),該數(shù)據(jù)單元就從緩沖區(qū)中刪去。TCP不向源主機(jī)返回任何應(yīng)答。 源主機(jī)在發(fā)送數(shù)據(jù)單元時(shí)設(shè)置一個(gè)確認(rèn)計(jì)時(shí)器。當(dāng)發(fā)生錯(cuò)誤(校驗(yàn)和錯(cuò)或其它錯(cuò))時(shí),計(jì)時(shí)器將超時(shí),源主機(jī)將重傳數(shù)據(jù)單元。同樣的機(jī)制也適用于接收數(shù)據(jù)單元的順序出錯(cuò)。計(jì)時(shí)器并非固定時(shí)長(zhǎng),它是可變的,基于往返時(shí)間,往返時(shí)間包括前向時(shí)間(即到達(dá)目的的時(shí)間)、目的處理時(shí)間和反向延遲時(shí)間(即確認(rèn)到達(dá)源主機(jī)的時(shí)間)。,發(fā)起一個(gè)會(huì)話,一臺(tái)計(jì)算機(jī)中的應(yīng)用程序如果需要向
4、其它計(jì)算機(jī)中的應(yīng)用程序發(fā)送信息,它將把數(shù)據(jù)傳遞給傳輸層。傳輸層的TCP從應(yīng)用程序那里接收到數(shù)據(jù),然后將其分割成較小的報(bào)文段。TCP 將這些報(bào)文段封裝在IP數(shù)據(jù)報(bào)中,這些數(shù)據(jù)報(bào)將在網(wǎng)絡(luò)中路由。,4.1.2 服務(wù)質(zhì)量(QoS),連接建立延遲:傳輸連接請(qǐng)求和傳輸確認(rèn)收到之間的時(shí)間延遲。 連接建立失敗的概率:在最大建立延遲時(shí)間之內(nèi),連接無(wú)法建立的概率。 吞吐率:每秒傳輸?shù)臄?shù)據(jù)量:從源主機(jī)到宿主機(jī)的吞吐率和從宿主機(jī)到源主機(jī)的吞吐率是分別衡量的。 傳輸延遲:信息從源主機(jī)傳輸至宿主機(jī)的持續(xù)時(shí)間,傳輸延遲也是雙向分別衡量的。 殘余誤碼率:一段特定時(shí)間內(nèi)丟失或混亂的數(shù)據(jù)量占總數(shù)據(jù)量的比率。 安全保護(hù):用于防止未
5、經(jīng)授權(quán)的第三方讀取或修改傳輸?shù)臄?shù)據(jù)。 優(yōu)先級(jí):確保重要應(yīng)用的數(shù)據(jù)優(yōu)先得到傳輸服務(wù)。,4.1.3 傳輸層端口,Internet傳輸層與互聯(lián)網(wǎng)層功能上的最大區(qū)別是前者提供進(jìn)程通信能力,而后者不提供進(jìn)程通信能力。 為了提供進(jìn)程通信功能,TCP/IP協(xié)議提出了端口(port)的概念,用于標(biāo)識(shí)通信的進(jìn)程。 端口實(shí)際上是一個(gè)抽象的軟件結(jié)構(gòu)(包括一些數(shù)據(jù)結(jié)構(gòu)和I/O緩沖區(qū))。應(yīng)用程序(進(jìn)程)通過(guò)系統(tǒng)調(diào)用與某端口建立關(guān)聯(lián)(binding)后,傳輸層傳給該端口的數(shù)據(jù)都被相應(yīng)的應(yīng)用進(jìn)程所接收。 端口又是應(yīng)用進(jìn)程訪問(wèn)傳輸服務(wù)的入口點(diǎn)。,套接字,套接字在要領(lǐng)上與文件句柄類似,因?yàn)槠涔δ苁亲鳛榫W(wǎng)絡(luò)通信的終結(jié)點(diǎn)。一個(gè)應(yīng)用
6、程序通過(guò)定義三部分來(lái)產(chǎn)生一個(gè)套接字:主機(jī)IP地址、服務(wù)類型(面向連接的服務(wù)是TCP,無(wú)連接服務(wù)是UDP)、應(yīng)用程序所用的端口。,端口號(hào)分配,全局分配 由一個(gè)公認(rèn)的中央機(jī)構(gòu)根據(jù)用戶需求統(tǒng)一進(jìn)行分配,并將結(jié)果公布于眾。 全局端口分配的弊端是在于不能適應(yīng)大量且迅速變化的端口使用環(huán)境。 本地分配或動(dòng)態(tài)聯(lián)編 當(dāng)某進(jìn)程需要訪問(wèn)傳輸服務(wù)時(shí),它向主機(jī)操作系統(tǒng)提出動(dòng)態(tài)申請(qǐng),操作系統(tǒng)根據(jù)主機(jī)狀態(tài)為該進(jìn)程分配一個(gè)本地唯一的端口號(hào),然后該進(jìn)程再通過(guò)系統(tǒng)調(diào)用將自己與相應(yīng)的端口號(hào)進(jìn)行關(guān)聯(lián)操作。 本地分配方式不受網(wǎng)絡(luò)規(guī)模的限制,但其它主機(jī)仍然無(wú)法獲知分配情況,進(jìn)程之間的通信依然難以建立。,Internet端口號(hào)分配,Int
7、ernet將端口分為兩部分,一部分是保留端口,一部分是自由端口。 其中保留端口只占很小的數(shù)目,它以全局方式進(jìn)行分配,對(duì)應(yīng)于前面所討論的服務(wù)器進(jìn)程。在Internet中,每一個(gè)標(biāo)準(zhǔn)的服務(wù)器進(jìn)程都擁有一個(gè)全局公認(rèn)的端口號(hào),不同機(jī)器上相同的服務(wù)器進(jìn)程,其端口號(hào)相同。TCP和UDP都規(guī)定,小于256的端口號(hào)才能作為保留端口 。 自由端口以本地方式進(jìn)行分配。當(dāng)某進(jìn)程要與遠(yuǎn)地進(jìn)程通信之前,首先申請(qǐng)一個(gè)自由端口號(hào)并與之進(jìn)行關(guān)聯(lián)操作,然后與遠(yuǎn)地進(jìn)程進(jìn)行通信。,TCP和UDP的保留端口,4.2 用戶數(shù)據(jù)報(bào)協(xié)議UDP (User Datagram Protocol ),特點(diǎn) 建立在 IP協(xié)議 之上 唯一增加的能力
8、是提供協(xié)議端口,實(shí)現(xiàn)進(jìn)程通信 UDP使用IP協(xié)議提供的不可靠的數(shù)據(jù)報(bào)服務(wù),通過(guò)端口號(hào)識(shí)別互相通信的實(shí)體。UDP提供的是無(wú)連接的、不可靠的用戶數(shù)據(jù)報(bào)服務(wù) 面向交易型應(yīng)用 機(jī)制 端系統(tǒng)使用UDP協(xié)議相互通信時(shí),UDP協(xié)議只負(fù)責(zé)將應(yīng)用程序傳給IP層的數(shù)據(jù)發(fā)送出去,但是并不保證它們能到達(dá)。如傳輸中數(shù)據(jù)出錯(cuò),UDP協(xié)議不負(fù)責(zé)重傳,而由更高層負(fù)責(zé)。當(dāng)數(shù)據(jù)正確到達(dá)后,接收端不負(fù)責(zé)確認(rèn)。也由更高層負(fù)責(zé),UDP報(bào)文格式,UDP校驗(yàn)和覆蓋了除報(bào)文頭外的一個(gè)附加頭部,包括:源IP地址、目的IP地址、協(xié)議、UDP長(zhǎng)度 目的:驗(yàn)證UDP數(shù)據(jù)報(bào)是否傳到正確的目的端,UDP頭結(jié)構(gòu)定義為: structudphdr u_in
9、t16_tsource; /發(fā)送主機(jī)的UDP端口 u_int16_tdest; /目標(biāo)主機(jī)的UDP端口 u_int16_tlen; / UDP消息的長(zhǎng)度 u_int16_tcheck; / 校驗(yàn)和;,UDP的校驗(yàn)和,UDP計(jì)算校驗(yàn)和時(shí),用到一個(gè)12字節(jié)的偽頭結(jié)構(gòu)。見下圖示: 其中源IP地址和目標(biāo)IP地址來(lái)自于IP分組頭,UDP協(xié)議號(hào)為17,長(zhǎng)度是UDP頭結(jié)構(gòu)中的長(zhǎng)度相同。偽頭結(jié)構(gòu)只用于校驗(yàn)和,使用偽頭結(jié)構(gòu)進(jìn)行校驗(yàn)的目的是 為了進(jìn)一步證實(shí)數(shù)據(jù)被送到正確的目的地。收方UDP校驗(yàn)出收到的數(shù)據(jù)有錯(cuò)后,只是簡(jiǎn)單地丟棄數(shù)據(jù),而不向源報(bào)告錯(cuò)誤。,UDP的應(yīng)用范圍,UDP不用于那些使用虛電路的面向連接的服務(wù),
10、而主要用于那些面向查詢-應(yīng)答的服務(wù),例如NFS。相對(duì)于FTP或Telnet,這些服務(wù)需要交換的信息量較小。使用UDP的服務(wù)包括NTP(網(wǎng)落時(shí)間協(xié)議)和DNS(DNS也使用TCP)。,4.3 TCP協(xié)議,特點(diǎn) 面向連接傳輸層協(xié)議,非常復(fù)雜 提供高可靠性服務(wù) 一次傳輸交換大量報(bào)文 例子 文件傳輸、遠(yuǎn)程登錄等,4.3.1 TCP報(bào)文格式,源端口和目的端口:各2個(gè)字節(jié),表示源和目的端口號(hào)。 發(fā)送序號(hào):4字節(jié),指出報(bào)文中數(shù)據(jù)在發(fā)送方的數(shù)據(jù)流中的位置(以字節(jié)編號(hào))。 確認(rèn)序號(hào):4字節(jié),指接收方希望下一次接收的字節(jié)序號(hào)。 TCP頭長(zhǎng):4比特,指出以32比特為單位的報(bào)文頭部長(zhǎng)度。該域是針對(duì)變長(zhǎng)的“選項(xiàng)”域設(shè)計(jì)
11、的。 緊急標(biāo)志位URG:當(dāng) URG=1時(shí),表明此報(bào) 文是緊急數(shù)據(jù),應(yīng)盡 快傳送出去。 確認(rèn)標(biāo)志位ACK:只 有當(dāng)ACK=1時(shí)確認(rèn)序 號(hào)字段才有意義。 當(dāng)ACK=0時(shí),確認(rèn)序 號(hào)沒(méi)有意義。,急迫標(biāo)志位PSH(PuSH):當(dāng)PSH=1時(shí),請(qǐng)求遠(yuǎn)地TCP軟件將該報(bào)文立即送給應(yīng)用程序。 重建標(biāo)志位RST(ReseT):當(dāng)RST=1時(shí),表明出現(xiàn)嚴(yán)重差錯(cuò),必須釋放連接,然后重新建立連接。 同步標(biāo)志位SYN:當(dāng)SYN=1而ACK=0時(shí),表明這是一個(gè)建立連接請(qǐng)求報(bào)文,若對(duì)方同意建立該連接,則應(yīng)在發(fā)回的報(bào)文中使將SYN和ACK標(biāo)志位同時(shí)置1。 終止標(biāo)志位FIN(Final):當(dāng)FIN1時(shí),表明數(shù)據(jù)已經(jīng)發(fā)送完畢,
12、并請(qǐng)求釋放連接。 窗口:2字節(jié)。該字段實(shí)際上是接收方告訴發(fā)送方它的接收窗口大小,其單位為字節(jié)。窗口域主要是用于流量控制和擁塞控制。 校驗(yàn)和:2字節(jié)。校驗(yàn)和也和UDP協(xié)議一樣,使用偽頭校驗(yàn),只不過(guò)協(xié)議號(hào)為6。 可選項(xiàng):長(zhǎng)度可變。TCP只規(guī)定了一種選項(xiàng),即最長(zhǎng)報(bào)文段MSS(Maximum Segment Size)。,TCP層格式中的控制信息字段,控制信息字段:在報(bào)頭中按照從左到右的順序URG、ACK、PSH、RST、SYN、FIN,總共占用了6比特,對(duì)TCP數(shù)據(jù)流的發(fā)送和接收起到控制的作用。在這些控制信息標(biāo)志中,SYN、FIN占用一個(gè)序列號(hào)。其余4個(gè)控制標(biāo)志則不占用序列號(hào)空間。 URG:緊急指針
13、有效 ACK:確認(rèn)字段有效 PSH:推送功能 RST:復(fù)位 SYN:對(duì)各幀序列號(hào)進(jìn)行同步 FIN:不再有來(lái)自發(fā)送方的數(shù)據(jù) 選項(xiàng) 選項(xiàng)列表結(jié)束:指示選項(xiàng)列表的結(jié)束 無(wú)操作:用于各個(gè)選項(xiàng)之間 段最大尺寸:指明了發(fā)送此段的TCP上可接收的段的最大尺寸,該字段只在初始連接請(qǐng)求階段被發(fā)送出去(SYN置位時(shí))。TCP必須能夠?qū)崿F(xiàn)發(fā)送和接收最大分段尺寸選項(xiàng)。如果在連接建立階段沒(méi)有收到該選項(xiàng),則TCP必須采用默認(rèn)的發(fā)送MSS536,4.3.2 TCP的超時(shí)重傳機(jī)制,背景 TCP是一個(gè)可靠的數(shù)據(jù)傳輸協(xié)議,它要求接收方收到TCP段后必須給予應(yīng)答但TCP只能用acknowledgement number域中的序號(hào)來(lái)
14、表示該序號(hào)前的所有字節(jié)都已正確接收,而沒(méi)有其他否定應(yīng)答或選擇重發(fā)的功能。也就是說(shuō),當(dāng)接收方TCP實(shí)體收到一個(gè)出錯(cuò)的TCP段后,只是將其丟棄而不作應(yīng)答,因而發(fā)送方必須采用超時(shí)重傳的機(jī)制來(lái)重發(fā)久未應(yīng)答的段。由于在一個(gè)巨大的互聯(lián)網(wǎng)絡(luò)中,TCP段可能在不同速率的物理線路上傳輸,信源和信宿間的距離可近可遠(yuǎn),而且每時(shí)每該網(wǎng)絡(luò)中的擁塞情況也不同,因此要選擇一個(gè)合適的超時(shí)時(shí)間并不太一件容易的事。,原理 TCP使用一種動(dòng)態(tài)算法隨時(shí)調(diào)整超時(shí)間隔。對(duì)于每個(gè)連接,都維持一個(gè)變量RTT。RTT (Round-trip Time )是當(dāng)前發(fā)送方到接收方來(lái)回時(shí)間的最佳估算值。每當(dāng)發(fā)送了一個(gè)段,發(fā)送方即啟動(dòng)一個(gè)計(jì)時(shí)器,一方面
15、用來(lái)測(cè)量從發(fā)送TCP段到收到應(yīng)答的來(lái)回時(shí)間,另一方面當(dāng)超過(guò)估算的超時(shí)間隔后即進(jìn)行重發(fā)。 算法 每當(dāng)收到一個(gè)應(yīng)答,TCP就從計(jì)時(shí)器中得到當(dāng)前的來(lái)回時(shí)間M,然后利用公式:RTT* RTT+(1-)M估算出新的 R T T值,是一個(gè)平滑因于,通常取為 7/8。因?yàn)閷?shí)際的來(lái)回時(shí)間同估算值總會(huì)有一個(gè)偏差,因此利用公式 Dd+(1-)|RTT-M|計(jì)算出實(shí)際來(lái)回時(shí)間同RTT的偏差范圍,這里的和估算RTT的可能不同。最后利用公式 Timeout = RTT+4D 確定出當(dāng)前的超時(shí)間隔。 評(píng)價(jià) 這種算法在網(wǎng)絡(luò)擁塞或收發(fā)雙方距離較遠(yuǎn)時(shí)能夠自動(dòng)延長(zhǎng)超時(shí)間隔,減少不必要的重發(fā),而在網(wǎng)絡(luò)較為空閑或雙方距離較近時(shí)又能迅
16、速減小超時(shí)間隔,及時(shí)重發(fā)出錯(cuò)的段,從而加快數(shù)據(jù)傳輸速度。,4.3.3 TCP連接,TCP為每個(gè)數(shù)據(jù)流初始化并維護(hù)特定的狀態(tài)信息的組合,稱為一個(gè)連接。每個(gè)連接由標(biāo)識(shí)該連接兩端的一對(duì)套接字唯一確定,套接字是由端口號(hào)和IP地址確定,在全網(wǎng)范圍內(nèi)是唯一的。當(dāng)兩個(gè)進(jìn)程希望通信時(shí),它們的TCP必須首先建立一個(gè)連接,通信完成時(shí),該連接要終止或關(guān)閉,釋放資源。 TCP連接的建立 通過(guò)“三次握手”來(lái)建立一條連接,以減少錯(cuò)誤連接的可能性。 利用TCP中的SYN 同步標(biāo)志位,啟動(dòng)一條連接的建立。 利用TCP中的RST 復(fù)位標(biāo)志位,中止異常連接的建立。 TCP連接的關(guān)閉 關(guān)閉(CLOSE)操作的意思是“ 我沒(méi)有更多的
17、數(shù)據(jù)要發(fā)送”,通過(guò)TCP中的FIN控制位啟動(dòng)關(guān)閉連接的操作。 負(fù)責(zé)關(guān)閉的用戶可以繼續(xù)接收(RECEIVED)操作,直到它被告知另一方已經(jīng)關(guān)閉 接收到關(guān)閉的用戶可以繼續(xù)發(fā)送(SEND)操作,使得發(fā)出關(guān)閉的用戶能夠聽到該連接成功的關(guān)閉了。,連接請(qǐng)求(SYN=1,seq=client_isn),同意連接(SYN=1,seq=server_isn, Ack=client_isn+1),確認(rèn)(SYN=0,seq=client_isn, ack=server_isn+1),客戶,服務(wù)器,TCP建立連接的三次握手,時(shí)間,時(shí)間,TCP連接的狀態(tài),一條TCP連接在其生命期內(nèi)會(huì)經(jīng)歷一系列的狀態(tài)。這些狀態(tài)有: LI
18、STEN:正在等待一個(gè)來(lái)自任何遠(yuǎn)程TCP和端口的連接請(qǐng)求。 SYNSENT:在已經(jīng)發(fā)出一個(gè)連接請(qǐng)求后正在等待一個(gè)匹配的連接請(qǐng)求 SYNRECEIVED:在已經(jīng)收到并發(fā)出了一個(gè)連接請(qǐng)求后等待一個(gè)證實(shí)連接請(qǐng)求的確認(rèn)。 ESTABLISHED:一個(gè)打開的連接。通過(guò)此連接接收到的數(shù)據(jù)能夠被傳遞到用戶。該狀態(tài)是此連接的數(shù)據(jù)傳輸階段的正常狀態(tài)。 FINWAIT1:或正在等待一個(gè)針對(duì)先前發(fā)送的連接終止請(qǐng)求的確認(rèn)。 FINWAIT2:正在等待一個(gè)來(lái)自遠(yuǎn)程TCP的連接終止請(qǐng)求。 CLOSEWAIT:正在等待一個(gè)來(lái)自本地用戶的連接終止請(qǐng)求 CLOSING:正在等待一個(gè)來(lái)自遠(yuǎn)程TCP的連接終止請(qǐng)求的確認(rèn)。 LAST
19、ACK:正在等待一個(gè)先前發(fā)往遠(yuǎn)程TCP的連接終止請(qǐng)求的確認(rèn)(包括對(duì)其連接終止請(qǐng)求的確認(rèn)) TIMEWAIT:等足夠的時(shí)間以確保遠(yuǎn)程TCP接收到了其連接終止請(qǐng)求的確認(rèn) CLOSED:根本不存在連接的狀態(tài)。,TCP連接端點(diǎn),TCP連接端點(diǎn) TCP把端點(diǎn)定義為一對(duì)整數(shù),即(host,port),其中host是主機(jī)的IP地址,而port則是該主機(jī)上的TCP端口號(hào)。 TCP連接 是用它的兩個(gè)端點(diǎn)來(lái)表示; 中國(guó)科大的一臺(tái)IP地址為80的主機(jī)與清華大學(xué)的一臺(tái)地址為2的主機(jī)之間建立連接的話,它可能會(huì)由端點(diǎn)定義成: (80,1234)和(202.
20、192.1.12,25),TCP連接的建立過(guò)程,客戶 TCP 服務(wù)器 TCP 1. CLOSE LISTEN 2. SYN-SENT SYN-RECEIVED 3. ESTABLISHED SYN-RECEIVED 4. ESTABLISHED ESTABLISHED 5. ESTABLISHED ESTABLSHED 說(shuō)明: TCP A、B在初始時(shí)分別是處于CLOSED和LISTEN狀態(tài)。A端首先發(fā)送一個(gè)SEQ100的初始化序列,SYN置位,占用一個(gè)序列號(hào);B端在收到該請(qǐng)求后,發(fā)送一個(gè)序列號(hào)為300,確認(rèn)號(hào)為101的段,這個(gè)段的SYN、ACK均置位,說(shuō)明B端的初始發(fā)送序列號(hào)為300,同時(shí)又確
21、認(rèn)了A的SEQ100的段,A在收到了B的應(yīng)答后,對(duì)其初始序列號(hào)確認(rèn),來(lái)響應(yīng)B的初始化序列,然后A就可以發(fā)送事件了。其中第2、3、4行,稱之為“ 三次握手”,在TCP連接的生存期中,通過(guò)多種狀態(tài)進(jìn)行傳輸。這些狀態(tài)稱為TCP狀態(tài)。一個(gè)客戶機(jī)按照下列順序經(jīng)歷一系列的TCP狀態(tài)。如下圖示:,CLOSE,FIN_WAIT_1,TIME_WAIT,FIN_WAIT_2,SYN_SENT,ESTABLISHED,接收SYN和ACK 發(fā)送ACK,發(fā)送FIN,接收ACK 不發(fā)送,接收FIN 發(fā)送ACK,等待30秒,客戶主機(jī)TCP的狀態(tài)順序,于客戶機(jī)一樣,服務(wù)器也經(jīng)歷各種TCP狀態(tài)。如下圖示:,CLOSE,EST
22、ABLISHED,LAST_ACK,CLOSED_WAIT,LISTEN,SYN_RCVD,接收SYN 發(fā)送SYN和ACK,接收CAK 不發(fā)送,接收FIN 不發(fā)送,發(fā)送FIN,接收ACK 不發(fā)送,服務(wù)器TCP的狀態(tài)順序,TCP連接的關(guān)閉過(guò)程,TCP ATCP B 1. ESTABLISHED ESTABLISHED 2. (關(guān)閉) FIN-WAIT-1 CLOSE-WAIT 3. FIN-WAIT-2 CLOSE-WAIT 4. (關(guān)閉) TIME-WAIT LAST-ACK 5. TIME-WAIT CLOSED 6. (2 MSL) 關(guān)閉 說(shuō)明: TCP A啟動(dòng)TCP關(guān)閉某連接的,TCP
23、B收到一個(gè)FIN段,進(jìn)入CLOSEWAIT狀態(tài)。在第3行中,如果TCP B還有數(shù)據(jù)要發(fā)送,在報(bào)頭之后,會(huì)有數(shù)據(jù),同時(shí)對(duì)TCP A發(fā)來(lái)的FIN確認(rèn)(FIN占用一個(gè)序列號(hào))。發(fā)送完數(shù)據(jù)后,在第4行,TCP B再發(fā)送一個(gè)FIN段,在沒(méi)有收到確認(rèn)之前是LASTACK(等待發(fā)往遠(yuǎn)程TCP的FIN的確認(rèn))狀態(tài)。第5行中,TCP B在收到了它發(fā)出的FIN的確認(rèn)后,進(jìn)入CLOSED狀態(tài),TCP A在超時(shí)時(shí)間到后,自動(dòng)關(guān)閉。,TCP關(guān)閉連接為什么采用三次握手法,正常關(guān)閉時(shí),一端用戶發(fā)出一個(gè)DR(釋放連接請(qǐng)求)TPDU,首先要求釋放連接。當(dāng)該TPDU到達(dá)對(duì)方后,收方也回送一個(gè)DR TPDU,并同時(shí)啟動(dòng)定時(shí)器以防止
24、其 DR TPDU丟失。當(dāng)應(yīng)答方的DR到達(dá)后,最初提出釋放連接的一方又回送一個(gè)ACK(確認(rèn)) TPDU,并斷開連接。最后,當(dāng) ACK TPDU抵達(dá)目的地后,接收方也釋放連接。 釋放一個(gè)連接意味著傳輸實(shí)體從其記載所有接通的連接的表中刪除該連接的有關(guān)信息并設(shè)法通知該連接的所有者(傳輸用戶)。,圖b表示,如果最后的ACK(確認(rèn))TPDU丟失,就需要用定時(shí)器來(lái)補(bǔ)救。當(dāng)定時(shí)器超過(guò)時(shí)限后,連接將被強(qiáng)行釋放。 圖c表示,當(dāng)?shù)诙€(gè)DR(響應(yīng)的DR)丟失的情形。這時(shí),首先提出釋放連接的用戶將不能收到所期待的響應(yīng),待到定時(shí)器超時(shí),再次開始要求釋放連接。從圖c中可以看到這種情況下是如何工作的,假設(shè)第二次沒(méi)有任何TP
25、DU丟失,并且所有TPDU都正確、及時(shí)地到達(dá)目的地。 最后一種情況如圖d所示。除了假設(shè)由于丟失TPDU使所有重發(fā)DR的嘗試均失敗以外,其他情況與圖c完全相同。這樣,經(jīng)過(guò)N次嘗試后,發(fā)送方(提出釋放連接的一方)只好放棄努力并斷開連接。同時(shí),接收方(被動(dòng)釋放連接的一方)因?yàn)槎〞r(shí)器超時(shí)也釋放掉連接。 可見,采用三次握手法關(guān)閉連接,能解決經(jīng)常出現(xiàn)的非正常關(guān)閉的情形。但理論上當(dāng)?shù)谝粋€(gè)DR和所有N次重發(fā)均被丟失的情況下,該協(xié)議便會(huì)失敗。因?yàn)榇藭r(shí)發(fā)送方將放棄重發(fā)并釋放連接,而另一方卻對(duì)對(duì)方的釋放連接企圖一無(wú)所知,而處于連接有效狀態(tài)。這種情況將導(dǎo)致一個(gè)半接通的連接。,消除半接通連接的可行方法,消除半接通連接的
26、一種方法是,如果在一段時(shí)間內(nèi)沒(méi)有收到任何TPDU,連接便自動(dòng)釋放。這樣,如果一方已經(jīng)釋放了連接,那么另一方將檢測(cè)不到對(duì)方的活動(dòng)因而也斷開連接。當(dāng)然,如果引進(jìn)這一規(guī)則,就需要為每個(gè)傳輸實(shí)體設(shè)置一個(gè)定時(shí)器,每當(dāng)收到一個(gè)TPDU時(shí)都要使定時(shí)器停止并重新啟動(dòng)。如果該定時(shí)器超時(shí),就發(fā)送一個(gè)偽 TPDU,目的只是不讓對(duì)方釋放連接。另一方面,如果在一個(gè)處于空閑狀態(tài)的連接上連續(xù)丟失了很多的偽TPDU,那么連接的雙方將會(huì)先后釋放連接。,最大報(bào)文段長(zhǎng)度MSS,應(yīng)用程序進(jìn)程之間建立起連接后,就將進(jìn)行真正的數(shù)據(jù)傳輸。傳輸層從應(yīng)用程序接收的數(shù)據(jù)將被分割為更小的報(bào)文段。在接收端,這些報(bào)文段被重組。由于能夠重組的數(shù)據(jù)有其最
27、大限制,所以報(bào)文段必須有大小的限制。 最大報(bào)文長(zhǎng)度(MSS):報(bào)文段大小的上限。TCP默認(rèn)MSS是536字節(jié)。因此,TCP接收到應(yīng)用程序的數(shù)據(jù)后,將其分割的報(bào)文段不能超過(guò)536字節(jié)這一上限。 在連接建立期間,TCP提供一些選項(xiàng),以指明連接可接受的MSS。這個(gè)MSS是接收方發(fā)送給發(fā)送方的,指明了服務(wù)器可能接收的最大值X。X值既可以大于也可以小于默認(rèn)的MSS值。,4.3.4 TCP可靠傳輸,TCP提供面向連接的字節(jié)流傳輸。 面向連接的傳輸協(xié)議對(duì)可靠性的保證首先是它在進(jìn)行數(shù)據(jù)傳輸前,必須在通信雙方建立一條連接。 面向連接的傳輸協(xié)議要求對(duì)每一個(gè)報(bào)文都要進(jìn)行確認(rèn),未經(jīng)確認(rèn)的報(bào)文被當(dāng)作是錯(cuò)誤報(bào)文。 流相當(dāng)
28、于一個(gè)管道,發(fā)送端從管道的一端放入什么,接收端就可以照原樣取出什么。 TCP連接是全雙工和點(diǎn)到點(diǎn)的。 全雙工意味著可以同時(shí)進(jìn)行雙向傳輸。 點(diǎn)到點(diǎn)的意思是每個(gè)連接只有兩個(gè)端點(diǎn)。 TCP不支持組播或全廣播。,TCP采用的可靠性技術(shù),可靠性傳輸包括以下四個(gè)含義: 差錯(cuò)控制 序列控制 丟失控制 重復(fù)控制,4.3.5 TCP流量控制及擁塞控制,流量控制 TCP采用信用量機(jī)制進(jìn)行流量控制。當(dāng)建立一個(gè)連接時(shí),兩端都為連接分配一塊接收緩沖區(qū)。發(fā)方數(shù)據(jù)到達(dá)時(shí)先放到緩沖區(qū)中,然后再發(fā)送;收方收到數(shù)據(jù)后,也是先放進(jìn)緩沖區(qū),然后在適當(dāng)?shù)臅r(shí)候由TCP實(shí)體交給應(yīng)用程序處理。由于每個(gè)連接的接收緩沖區(qū)大小是固定的,當(dāng)發(fā)送力發(fā)
29、送過(guò)快時(shí),會(huì)導(dǎo)致緩沖區(qū)溢出造成數(shù)據(jù)丟失,因此接收方必須隨時(shí)通報(bào)緩沖區(qū)的剩余空間,以便發(fā)送方調(diào)整流量。 接收方通過(guò)將緩沖區(qū)的剩余空間大小放入 window size域來(lái)通知發(fā)送方,發(fā)送方每次發(fā)送的數(shù)據(jù)量不能超過(guò)window size中指定的字節(jié)數(shù)。當(dāng)window size為0時(shí),發(fā)送方必須停上發(fā)送。當(dāng)接收方將數(shù)據(jù)交給應(yīng)用程序后,發(fā)送一個(gè)ACK段(稱窗口更新)來(lái)告知發(fā)送方新的接收窗口大小。,流量控制機(jī)制 TCP使用序列號(hào)(Sequence Number)、確認(rèn)號(hào)(Acknowledge Number)和窗口尺寸(Window Size)相結(jié)合的方法來(lái)保證數(shù)據(jù)傳遞的可靠性。接收機(jī)端根據(jù)可用的緩沖區(qū)空
30、間大小(流量控制)來(lái)決定窗口尺寸(以字節(jié)計(jì)算)。發(fā)送端統(tǒng)計(jì)出發(fā)送的字節(jié)數(shù),并且在接收到確認(rèn)號(hào)后只發(fā)送“與窗口相當(dāng)”的數(shù)據(jù)字節(jié)。一旦窗口中前面部分報(bào)文得到了確認(rèn),則窗口向前滑動(dòng)相應(yīng)的位置。TCP把數(shù)據(jù)當(dāng)做字節(jié)流來(lái)看待。,其中:1、2、3是已經(jīng)發(fā)送且得到確認(rèn)的,4、5為已經(jīng)發(fā)送,但至少4是未得到確認(rèn)的,如該圖中為窗口大小為4,此時(shí),如果5得到了確認(rèn),窗口不能向前滑動(dòng),在4和5都得到了確認(rèn)后,而6還未得到確認(rèn)時(shí),窗口可以一次向前滑動(dòng)兩個(gè)位置。 在接收端,窗口內(nèi)的報(bào)文為可以接受的報(bào)文,窗口前的報(bào)文為已經(jīng)收到,且已經(jīng)發(fā)回確認(rèn)的報(bào)文,不能接收;窗口后面多個(gè)報(bào)文則要等待窗口滑動(dòng)后,落入到窗口之中,才能接收。
31、,決定滑動(dòng)窗口大小的因素,決定滑動(dòng)窗口大小的因素,包括網(wǎng)絡(luò)的帶寬、可靠性以及需要傳輸?shù)臄?shù)據(jù)量。 Windows NT的TCP滑動(dòng)窗口,其默認(rèn)窗口大小為8760,每接收兩段信息就發(fā)回一個(gè)確認(rèn)。 TcpWindowSize 規(guī)定滑動(dòng)窗口的大小參數(shù),位于HKEY_LOCAL_MACHINECurrentControlSetServicesTCPIPParameters下,缺省大小為8760。 ForwardBufferMemory 位于HKEY_LOCAL_MACHINECurrentControlSetServicesTCPIPParameters下,缺省大小為74240=50*1480 Defa
32、ultTTL位于HKEY_LOCAL_MACHINECurrentControlSetServicesTCPIPParameters下,缺省大小為32 秒 重發(fā)計(jì)時(shí)器(retransmit timer):在重新發(fā)送數(shù)據(jù)包之前將等待ACK的時(shí)間??稍谧?cè)表中修改重發(fā)次數(shù),缺省為5次。缺省起始時(shí)間為1秒。 重試時(shí)間分別為1秒;第一次失敗后的2秒;第二次失敗后的4秒;第三次失敗后的8秒;第四次失敗后的16秒。 延遲ACK計(jì)時(shí)器(delayed-ACK timer): 定義:在重新發(fā)送數(shù)據(jù)包之前將等待ACK的時(shí)間 ACK定時(shí)器的延遲為硬編碼200ms,為第一次重發(fā)計(jì)時(shí)器的1/5。,擁塞控制 為了進(jìn)行擁
33、塞控制,僅有一個(gè)接收窗口是不夠的,發(fā)送方還必須維持一個(gè)擁塞窗口。發(fā)送窗口必須是接收窗口和擁塞窗日中較小的那一個(gè)。和接收窗口一樣,擁塞窗口也是動(dòng)態(tài)可變的。 連接建立時(shí),擁塞窗口被初始化成該連接支持的最大段長(zhǎng)度,然后TCIP實(shí)體發(fā)送一個(gè)最大長(zhǎng)度的段;如果這個(gè)段沒(méi)有超時(shí),則將擁塞窗口調(diào)整成兩倍最大段長(zhǎng)度,然后TCP發(fā)送兩倍最大長(zhǎng)度的段。每當(dāng)發(fā)送出去的段都及時(shí)地得到應(yīng)答,就將擁塞窗口的大小加倍,直至最終達(dá)到接收窗口大小或發(fā)生超時(shí),這種算法稱為慢啟動(dòng)。 如果發(fā)生了超時(shí),TCP實(shí)體將一個(gè)門限參數(shù)設(shè)置成當(dāng)前擁塞窗口的一半,然后將擁塞窗口重新初始化長(zhǎng)最大段段長(zhǎng)度,再一次執(zhí)行慢啟動(dòng)算法,直至擁塞窗口大小達(dá)到設(shè)定
34、的門限值;這時(shí)減慢擁塞窗口增大的速率,每當(dāng)發(fā)送出去的段得到了及時(shí)應(yīng)答,就將擁塞窗口增加一個(gè)最大段長(zhǎng)度,如此擁塞窗呈現(xiàn)線性增大直至達(dá)到接收窗口或又發(fā)生超時(shí)。當(dāng)擁塞窗口達(dá)到接收收窗口時(shí)就不再增大,此后一直保持不變,除非接收窗門改變或又發(fā)生超時(shí);如果發(fā)生超時(shí)則使用上述擁塞控制算法重新確定合適的擁塞窗口大小。,TCP與上層用戶和低層協(xié)議的接口,上層用戶和TCP的接口 詳細(xì)完整的模型在提供互操作通信軟件方面,TCP除了接收命令,還要返回信息給它服務(wù)的進(jìn)程上層用戶和TCP之間的接口命令 OPEN(打開)SEND(發(fā)送) RECEIVE(接收)CLOSE(關(guān)閉) STATUS(狀態(tài))ABORT(中止) TC
35、P和IP的接口 TCP通過(guò)調(diào)用一個(gè)低層協(xié)議模塊,在一個(gè)網(wǎng)絡(luò)中進(jìn)行實(shí)際的發(fā)送和接收信息。 如果低層協(xié)議是IP,它為一個(gè)TOS和TTL提供了自變量,TCP為這些自變量使用了自己的設(shè)置。 任何低層協(xié)議必須提供源地址、目的地址和協(xié)議字段,以及確定“ TCP長(zhǎng)度” 的一些方法,還要提供與IP功能等同的服務(wù)和在TCP校驗(yàn)和中使用的部分。,4.3.6 TCP與UDP的區(qū)別,TCP (Transmission Control Protocol):為典型的傳輸大量數(shù)據(jù)或需要接收數(shù)據(jù)許可的應(yīng)用程序提供連接定向和可靠的通信。 UDP (User Datagram Protocol):提供無(wú)連接的通信,并不保證數(shù)據(jù)包
36、被發(fā)送到。典型的即時(shí)傳輸少量數(shù)據(jù)的應(yīng)用程序使用UDP。應(yīng)該說(shuō)可靠的發(fā)送是應(yīng)用程序的責(zé)任。,4.4 r-services,設(shè)遠(yuǎn)程主機(jī)是A,A要用rlogin登錄到主機(jī)B。 當(dāng)A上的用戶啟動(dòng)了rlogin,B上的rlogind在B上的/etc/passwd中檢查是否有這個(gè)用戶名,如果沒(méi)有則拒絕這次遠(yuǎn)程訪問(wèn)。 在/etc/hosts.equiv中檢查遠(yuǎn)程主機(jī)的主機(jī)名,若有A的名字,則允許這次訪問(wèn)。 若在/etc/hosts.equiv中沒(méi)有A的名字,則在B的遠(yuǎn)程用戶的起始目錄中的.rhosts文件中是否有遠(yuǎn)程主機(jī)B的名字。 如果.rhosts文件中有遠(yuǎn)程主機(jī)B的名字的項(xiàng)并且該項(xiàng)后沒(méi)有用戶名,則允許這
37、次訪問(wèn)。 如果.rhosts文件中有遠(yuǎn)程主機(jī)B的名字的項(xiàng)、該項(xiàng)后有用戶名并且該項(xiàng)后的用戶名中有這個(gè)遠(yuǎn)程用戶,則允許這次訪問(wèn)。 如果.rhosts文件中有遠(yuǎn)程主機(jī)B的名字的項(xiàng)、該項(xiàng)后有用戶名并且該項(xiàng)后的用戶名中沒(méi)有這個(gè)遠(yuǎn)程用戶,則要求用戶輸入口令,如果口令正確則允許這次訪問(wèn),否則拒絕這次訪問(wèn)。,4.4.1 TCP/IP網(wǎng)絡(luò)系統(tǒng)命令,rwho命令:和who命令的功能很相似。它顯示網(wǎng)絡(luò)中的每個(gè)系統(tǒng)的當(dāng)前注冊(cè)的用戶。 $rwho violet robert:tty1 Sept 10 10:34 garnet chris:tty2 Sept 10 09:22 命令ruptime:可以顯示網(wǎng)絡(luò)中的每個(gè)系統(tǒng)
38、的信息。此信息能顯示出每個(gè)系統(tǒng)是如何執(zhí)行。ruptime顯示系統(tǒng)是否運(yùn)行,它運(yùn)行了多久,系統(tǒng)中的用戶數(shù)和系統(tǒng)在最后5 、10和15分鐘內(nèi)的系統(tǒng)負(fù)荷。 $ruptime violet up 11+04:10, 8 users, load 1.20 1.10 garnet up 11+04:10, 20 users, load 1.50 1.30,命令.rhosts:用.rhosts文件控制使用TCP/IP命令對(duì)您帳號(hào)的訪問(wèn)。用戶能用標(biāo)準(zhǔn)的編輯器象Vi來(lái)創(chuàng)建他們帳號(hào)中的.rhosts文件。它必須位于用戶的主目錄。下面的例子中,使用者顯示文件 . rhosts文件的內(nèi)容。 $cat.rhosts g
39、arnet chris ciolet robert .rhosts文件允許用戶不提供口令而訪問(wèn)系統(tǒng)。如果需要禁止此用戶訪問(wèn),只須簡(jiǎn)單地從文件.rhost中刪除系統(tǒng)名和用戶注冊(cè)名。如果一個(gè)用戶的注冊(cè)名和系統(tǒng)名在文件. rhost中,那么此用戶就能不提供口令直接訪問(wèn)系統(tǒng)。并不是所有的遠(yuǎn)程注冊(cè)操作都需要這種訪問(wèn)形式;但一些遠(yuǎn)程命令要求有. rhosts文件,象遠(yuǎn)程復(fù)制文件或遠(yuǎn)程執(zhí)行Linux命令。如果您想在遠(yuǎn)程系統(tǒng)的帳號(hào)中使用這些命令,此帳號(hào)的.rhosts文件中必須有您 的注冊(cè)名和系統(tǒng)名。 通過(guò).rhosts對(duì)某一系統(tǒng)進(jìn)行訪問(wèn)時(shí),也允許您使用TCP/IP命令直接訪問(wèn)系統(tǒng)中您的其他帳號(hào)。而不需要先注
40、冊(cè)到這些帳號(hào)中??梢园严到y(tǒng)中您的其他帳號(hào)做為當(dāng)前注冊(cè)帳號(hào)的擴(kuò)展。不管文件在的哪個(gè)賬號(hào)下,都可以用frcp命令從一個(gè)目錄復(fù)制到另一個(gè)目錄。,命令rlogin:要訪問(wèn)別的系統(tǒng)中別的帳號(hào),首先要注冊(cè)到您的系統(tǒng)中,接著通過(guò)網(wǎng)絡(luò)遠(yuǎn)程注冊(cè)到帳號(hào)所在的系統(tǒng)中。用命令r login可以遠(yuǎn)程注冊(cè)支別的系統(tǒng)。命令的參數(shù)應(yīng)是一個(gè)系統(tǒng)名。命令將把您連接到另一個(gè)系統(tǒng)中并開始注冊(cè)的過(guò)程. 用rlogin的注冊(cè)過(guò)程和一般的注冊(cè)過(guò)程有所不同,用rlogin時(shí)用戶不被提示輸入注冊(cè)名。rlogin假設(shè)您的本地系統(tǒng)中的注冊(cè)名和遠(yuǎn)程系統(tǒng)中的一致。所以象上面執(zhí)行r login命令時(shí),您將馬上被提示輸入口令。輸入口令后,就可進(jìn)入遠(yuǎn)程系統(tǒng)
41、各的帳號(hào)。用rlogin假設(shè)注冊(cè)名是相同的,因?yàn)榇蠖鄶?shù)的人用rlogin訪問(wèn)別的系統(tǒng)中的注冊(cè)名一般和本地的注冊(cè)名相同。然而,當(dāng)遠(yuǎn)程系統(tǒng)中的注冊(cè)名和本地系統(tǒng)的不同時(shí),選項(xiàng)1 -允許輸入遠(yuǎn)程系統(tǒng)帳戶的不同的注冊(cè)名。語(yǔ)法如下所示: $rlogin system-name -1 login-name 下面例子,用戶用注冊(cè)名robert注冊(cè)到violet的系統(tǒng)中: $rlogin violet-1 robert password $ : 一旦注冊(cè)到遠(yuǎn)程系統(tǒng)中,您能執(zhí)行任何命令??梢杂胑xit、CTRL-d或logout(TCSH或C-shell)結(jié)束連接,遠(yuǎn)程復(fù)制文件rcp:命令rcp的功能是從遠(yuǎn)程系統(tǒng)
42、復(fù)制文件到本地系統(tǒng)中。rcp執(zhí)行文件傳輸?shù)墓δ?,它的操作和cp命令很相似,但它是通過(guò)網(wǎng)絡(luò)連接到另一系統(tǒng)。執(zhí)行命令r cp時(shí)要求遠(yuǎn)程系統(tǒng)的 .rhosts文件中有您的本地系統(tǒng)名和注冊(cè)名。命令rcp參數(shù)為源文件名和復(fù)制的目標(biāo)文件名。為了指定文件在遠(yuǎn)程系統(tǒng)中,您需要在文件名前放置一個(gè)系統(tǒng)名,兩者之間用冒號(hào)分隔,如下所示: $rcp system-name:source-file slystem-name:copy-file 當(dāng)復(fù)制一個(gè)文件到遠(yuǎn)程系統(tǒng)中時(shí),復(fù)制的目標(biāo)文件是遠(yuǎn)程文件,它要求帶有系統(tǒng)名。而源文件在您的本機(jī)系統(tǒng)中,不要求系統(tǒng)名: $rcp source-file remote-system-
43、name:copy-file 在下面的例子中,用戶從自己的系統(tǒng)中復(fù)制文件weather到遠(yuǎn)程系統(tǒng)violet并重命名為monday. $rcp weather violet:Monday,小結(jié),傳輸層是網(wǎng)絡(luò)體系結(jié)構(gòu)中承上啟下的一層,它起著加強(qiáng)互聯(lián)網(wǎng)的服務(wù)質(zhì)量QoS,并提供進(jìn)程之間可靠通信的功能,TCP/IP協(xié)議是利用端口來(lái)標(biāo)識(shí)通信進(jìn)程。 TCP和UDP是Internet傳輸層的兩個(gè)協(xié)議。其中TCP是面向連接的,提供可靠的字節(jié)流服務(wù);UDP是無(wú)連接的,提供數(shù)據(jù)報(bào)服務(wù)。 TCP和UDP的共同點(diǎn)在于它們都提供進(jìn)程通信能力,為此在TCP和UDP協(xié)議中引入端口的概念。 UDP是最簡(jiǎn)單的傳輸層協(xié)議,幾乎不
44、提供任何可靠性措施。適用UDP的應(yīng)用程序須自己進(jìn)行可靠性控制。 TCP為保證可靠性做了大量的工作,它提供確認(rèn)、超時(shí)重傳以及滑動(dòng)窗口機(jī)制。TCP所面臨的所有問(wèn)題中,重復(fù)報(bào)文是最難解決的問(wèn)題,為此TCP引入三次握手以排除在建立和撤除連接過(guò)程中重復(fù)報(bào)文的干擾。另外,TCP協(xié)議還提供緊急數(shù)據(jù)傳輸?shù)炔僮鳎詽M足實(shí)時(shí)應(yīng)用需求,習(xí)題,習(xí)題4.1一臺(tái)TCP機(jī)器在1Gb/s的通道上使用65535字節(jié)的發(fā)送窗口,單程延遲時(shí)間等于10ms。問(wèn)可以取得的最大吞吐率是多少? 解:10ms*2=20ms每20ms可以發(fā)送一個(gè)窗口大小的交通量,每秒50個(gè)窗口(=1000ms/20ms)。 65535/8/50=26.214
45、Mb/s26.214Mb/s/1000Mb/s2.6% 所以,最大吞吐率是26.214Mb/s,線路效約為2.6%,習(xí)題4.2一個(gè)TCP鏈接使用256kb/s的鏈路,其端到端延時(shí)為128ms。經(jīng)測(cè)試發(fā)現(xiàn)吞吐量只有128kb/s。試問(wèn)窗口是多少?忽略PDU封裝的協(xié)議開銷以及接收方應(yīng)答分組的發(fā)射時(shí)間(假定應(yīng)答分組長(zhǎng)度很小)。 解:來(lái)回路程的時(shí)延等于256ms(=128ms *2)。設(shè)窗口值為X字節(jié),假定一次最大發(fā)送量等于窗口值,且發(fā)射時(shí)間等于256ms,那么,每發(fā)送一次都得停下來(lái)期待再次得到下一窗口的確認(rèn),以得到新的發(fā)送許可。這樣,發(fā)射時(shí)間等于停止等待應(yīng)答的時(shí)間。結(jié)果,測(cè)到的平均吞吐率就等于發(fā)送速率的一半,即128ms。8X / (256 *1000)= 256 * 0.001X = 256 * 1000 * 256 * 0.001/8 =256 *32 = 8192所以,窗口值為8192。,習(xí)題4.3 在一個(gè)網(wǎng)絡(luò)中,最大TPDU尺寸為128字節(jié),最大的TPDU存活時(shí)間為30秒,使用8位序列號(hào),問(wèn)每條連接的最大數(shù)據(jù)速率是多少? 解:具有相同編號(hào)的TPDU不應(yīng)該同時(shí)在網(wǎng)絡(luò)中傳輸,必須保證,當(dāng)序列號(hào)循環(huán)回來(lái)重復(fù)使用的時(shí)候,具有相同序列號(hào)的TPDU已經(jīng)從網(wǎng)絡(luò)中消失。現(xiàn)在存活時(shí)間是30秒,那么在30秒的時(shí)間內(nèi)發(fā)送方發(fā)送的TPDU的數(shù)目不
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024桂林理工大學(xué)輔導(dǎo)員招聘筆試真題
- 9.團(tuán)體標(biāo)準(zhǔn)《茗冠茶-綠茶加工技術(shù)規(guī)程》意見反饋表
- 2025年TFT-LCD用偏光片合作協(xié)議書
- ABC分類法在食品安全檢測(cè)中的高效管理與優(yōu)化策略
- 2025年湖南大學(xué)岳麓書院學(xué)工助理招聘考試筆試試題【答案】
- 2025年嘉興嘉睿人力招聘考試筆試試題【答案】
- 2025年事業(yè)單位招考綜合基礎(chǔ)知識(shí)全真模擬考試試題【答案】
- 2025年電火花成型機(jī)床項(xiàng)目發(fā)展計(jì)劃
- 干部教育培訓(xùn)工作調(diào)研報(bào)告
- 消費(fèi)者購(gòu)物行為對(duì)在線時(shí)尚品牌的影響
- 北師大版五年級(jí)下冊(cè)分?jǐn)?shù)加減法簡(jiǎn)便計(jì)算400道及答案
- 軟件需求分析中的語(yǔ)義理解技術(shù)-全面剖析
- 2025年麻風(fēng)病防治知識(shí)競(jìng)賽復(fù)習(xí)試題庫(kù)完整
- 食品安全員培訓(xùn)大綱
- 運(yùn)營(yíng)酒店公寓管理制度
- 物業(yè)經(jīng)理接待日制度
- 數(shù)獨(dú)教案-完整版
- 城市低空空域智能管控系統(tǒng)的構(gòu)建與實(shí)踐探索
- 易制毒、易制爆化學(xué)品安全培訓(xùn)
- 特征值提取方法優(yōu)化研究-洞察分析
- 后廚管理制度與章程內(nèi)容
評(píng)論
0/150
提交評(píng)論