




已閱讀5頁,還剩65頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第7章 傳輸控制協(xié)議TCP,要求: 1. 掌握TCP的可靠性機(jī)制:確認(rèn)、重傳、序號; 2. 掌握TCP的流控和提高傳輸效率策略:滑動(dòng)窗口機(jī)制; 3. 掌握TCP連接的建立與關(guān)閉協(xié)議:三次握手; 4. 掌握TCP的報(bào)文段格式; 5. 掌握TCP的擁塞控制技術(shù); 6. 掌握TCP避免糊涂窗口綜合癥的技術(shù); 7. 了解緊急數(shù)據(jù)發(fā)送和強(qiáng)迫數(shù)據(jù)發(fā)送。,問題?,IP協(xié)議的特點(diǎn)是什么? 無連接 不保證可靠性 盡最大努力傳輸 應(yīng)用程序如果要得到高可靠性服務(wù),有哪些途徑? 在IP層上增加一層功能模塊 由應(yīng)用程序自身完成可靠性功能 UDP能否滿足應(yīng)用程序的需求?,7.1 概述,1.可靠性: 防丟失:確認(rèn)與重傳; 防重復(fù):報(bào)文段序號; 2.傳輸效率、流量控制:滑動(dòng)窗口機(jī)制; 3.擁塞控制:加速遞減與慢啟動(dòng)技術(shù); 4.建立連接:三次握手協(xié)議; 5.關(guān)閉連接:改進(jìn)的三次握手協(xié)議。,要實(shí)現(xiàn)可靠的數(shù)據(jù)流傳輸服務(wù), 必須解決哪幾個(gè)問題?, 面向數(shù)據(jù)流; 虛電路連接; 有緩沖的傳輸; 無結(jié)構(gòu)的數(shù)據(jù)流; 全雙工連接。,可靠傳輸服務(wù)有哪些特點(diǎn)?,7.2 TCP的特點(diǎn),7.3 TCP連接 1.建立連接 :三次握手,功能: 1. 同意連接協(xié)商,做好傳輸數(shù)據(jù)的準(zhǔn)備; 2.協(xié)商各自報(bào)文段ISN(初始序列號,不能為1); 3. 協(xié)商MSS(只有SYN報(bào)文段能協(xié)商MSS)。 說明: SYN報(bào)文段占用初始序號,發(fā)送數(shù)據(jù)的第一字節(jié)序號為ISN+1。,接收ACK,關(guān)于ISN和MSS,ISN 不能取1,為什么? ISN的設(shè)置方法是有一定規(guī)律的。 MSS 為什么要選擇MSS? 如果連接的兩端在同一個(gè)物理網(wǎng)絡(luò)中,TCP協(xié)議軟件能計(jì)算出合適的MSS; 如果連接的兩端不在同一個(gè)物理網(wǎng)絡(luò)中,則把路徑上最小的MTU除去首部后的數(shù)據(jù)大小作為MSS. 選擇合適的MSS非常困難:太小,網(wǎng)絡(luò)利用率低;太大,會降低網(wǎng)絡(luò)性能。,2.關(guān)閉連接:改進(jìn)的三次握手,說明: FIN報(bào)文段占用一個(gè)序號;單純的ACK報(bào)文段不占用序號。 TCP提供了半關(guān)閉能力:連接的一端在結(jié)束它的發(fā)送后還能接收來自另一端數(shù)據(jù)。 有些編程接口提供close來關(guān)閉TCP連接,提供shutdown加特殊參數(shù)來實(shí)現(xiàn)半關(guān)閉。,接收ACK,接收ACK,3. TCP連接異常關(guān)閉 異常關(guān)閉:出現(xiàn)異常情況使得應(yīng)用程序或網(wǎng)絡(luò)軟件 中斷連接。 連接復(fù)位 RST:發(fā)起端發(fā)RST報(bào)文段,雙方立即停 止傳輸,并退出連接。,4. 端口、端點(diǎn)和連接 (1) 端口(21、23、25、53、79、80、88、139、161) (2) 端點(diǎn) 一對整數(shù):(host IP,port)標(biāo)識通信一方的一個(gè)應(yīng)用程序。 (3) 連接 一對端點(diǎn):表示通信雙方應(yīng)用程序間的一條虛電路。 主動(dòng)打開 去請求 被動(dòng)打開 等待來 (4)說明 一臺機(jī)器上的一個(gè)TCP端口可被多個(gè)連接共享; TCP、UDP可用相同的端口號,但不會沖突。,一個(gè)DOS命令:Netstat Active Connections Proto Local Address Foreign Address State TCP koukou:1056 40:https ESTABLISHED Netstat o:列出與每個(gè)端口相關(guān)的進(jìn)程 Netstat r: 顯示路由表,7.4 提供可靠性 1. 防丟失 帶重傳的肯定確認(rèn)技術(shù), 接收方收到數(shù)據(jù)后向源站發(fā)確認(rèn)(ACK); 設(shè)置定時(shí)器,源站在限定時(shí)間內(nèi)未收到ACK,則重發(fā)。,接收確認(rèn),兩個(gè)問題,如何識別和處理重復(fù)的數(shù)據(jù)? 序號 拋棄 定時(shí)器時(shí)限設(shè)置多長?,2. 防重復(fù)和亂序,報(bào)文段重復(fù)產(chǎn)生的原因? “假“丟失:確認(rèn)丟失或確認(rèn)延遲(超時(shí))到達(dá),致使發(fā)送方重傳造成的。 解決方法: 為每一分組賦予一個(gè)序號,用以檢測重復(fù)。 序號同時(shí)保證了分組間的正確順序。 確認(rèn)時(shí)通過確認(rèn)號指明哪些分組已經(jīng)收到。(累計(jì)確認(rèn)),序號與確認(rèn)號,序號 (seq) seq1=ISN seqn+1= seqn+第n個(gè)報(bào)文段的長度(以字節(jié)計(jì)) 確認(rèn)號(ACK) 確認(rèn)號 = 期望接收的下一個(gè)報(bào)文段的序號,可提高效率的捎帶累計(jì)確認(rèn)技術(shù),什么是累計(jì)確認(rèn)? 只確認(rèn)前面連續(xù)收到的報(bào)文 什么是捎帶確認(rèn)? 把對上一個(gè)報(bào)文的確認(rèn)信息放到發(fā)給發(fā)送方的數(shù)據(jù)報(bào)文中捎帶回去。,3. RTT與重傳定時(shí)器,對于超時(shí)重傳的情況,如何設(shè)置重傳定時(shí)器的時(shí)限? 時(shí)限設(shè)置的過大過小會出現(xiàn)什么問題? 網(wǎng)絡(luò)性能不斷變化,定時(shí)時(shí)限應(yīng)動(dòng)態(tài)調(diào)整 兩個(gè)概念: RTT:往返時(shí)間,報(bào)文段發(fā)出到收到確認(rèn)信息間的時(shí)間段。 自適應(yīng)重傳算法:監(jiān)視每個(gè)連接的性能,由此推算出合適的定時(shí)時(shí)限。當(dāng)連接的性能變化時(shí),隨時(shí)修改定時(shí)時(shí)限。,重傳定時(shí)時(shí)限的計(jì)算方法,重傳定時(shí)時(shí)限的計(jì)算方法: 早期的方法 改進(jìn)的方法 Karn算法和定時(shí)器補(bǔ)償,(1) 早期的方法 R:RTT的估計(jì)值 (之前RTT的加權(quán)平均值) M:本次測量的RTT值 RTO:定時(shí)時(shí)限 修改估計(jì)值: R R + (1-)M (01,通常取=0.9) 計(jì)算時(shí)限: RTO = R (早期取2,后改為4) 缺陷:在RTT變化較大的場合,說明網(wǎng)絡(luò)某處處于擁塞狀態(tài),但上述方法對此反映不敏感,從而造成不必要的重傳,進(jìn)一步加重網(wǎng)絡(luò)負(fù)擔(dān)。,(2) 改進(jìn)的方法 R:RTT的估計(jì)值 M:本次測量的RTT值 RTO:定時(shí)時(shí)限 Diff:本次測量結(jié)果與上次RTT估計(jì)值的偏差 Dev :平均偏差的估計(jì)值 Diff M - R R R + *Diff Dev Dev +*(|Diff| - Dev) (Dev的估計(jì)值) RTO R +*Dev 、在01之間,通常?。?= 1/8, = 1/4,= 8,(3) Karn算法和定時(shí)器補(bǔ)償 確認(rèn)二義性:對于重傳的報(bào)文段,收到確認(rèn)后是對哪一次傳輸?shù)拇_認(rèn)無法確定。 結(jié)果:RTT樣本值無法使用 ; Karn算法: 思想:當(dāng)超時(shí)重傳發(fā)生時(shí),不再更新RTT估計(jì)值,忽略重傳樣本。 定時(shí)器補(bǔ)償: 超時(shí)重傳發(fā)生,加大定時(shí)時(shí)限: RTO *RTO (通常取2,即指數(shù)避退)。 對重傳分組的后續(xù)分組,定時(shí)時(shí)限不變,直到獲得一個(gè)新的有效樣本時(shí)再更改時(shí)限值。,7.5 傳輸效率和流量控制 - 滑動(dòng)窗口機(jī)制 停-等機(jī)制:等前一個(gè)報(bào)文的確認(rèn)到來后才能發(fā)送下一個(gè)報(bào)文,效率太低。 1.一般的滑動(dòng)窗口機(jī)制 思想:允許發(fā)送方不必等確認(rèn)到來就可繼續(xù)發(fā)送下面的分組,但規(guī)定一個(gè)上限。若多個(gè)分組的確認(rèn)未到時(shí),則暫停發(fā)送。,TCP的滑動(dòng)窗口按字節(jié)操作而不是按報(bào)文段或 分組操作。 TCP窗口大小為字節(jié)數(shù)。最大為65535字節(jié)。 發(fā)送方為每個(gè)連接設(shè)置3個(gè)指針,定義了滑動(dòng)窗口三要素: (1) 左邊界指針:區(qū)分已發(fā)送字節(jié)流中已確認(rèn)部分與未確認(rèn)部分。 (2) 右邊界指針:序列中未得到確認(rèn)情況下可以發(fā)送的最高字節(jié)的序號。 (3) 已發(fā)與未發(fā)邊界指針:窗口中已發(fā)送和未發(fā)送字節(jié)的界限。,2. TCP的滑動(dòng)窗口技術(shù),1 2 100 101 102 4100 4101 4102,分組流,WindowSize=4000,右邊界指針,左邊界指針,已發(fā)與未發(fā) 邊界指針,通信雙方都設(shè)有發(fā)送和接收緩沖區(qū)(相當(dāng)于發(fā)送窗口和接收窗口)。默認(rèn)大小各系統(tǒng)有差異,如4096、8192、16384等。發(fā)送緩沖區(qū)大小為默認(rèn)窗口大小。 TCP連接兩端各有兩個(gè)窗口(發(fā)送窗口和接收窗口),3. TCP端到端流量控制 - 窗口大小可變技術(shù) 時(shí)機(jī):目的主機(jī)緩沖區(qū)變小而不能接收源主機(jī)更多的數(shù)據(jù)時(shí),就要進(jìn)行流量控制。 TCP技術(shù):可隨時(shí)改變窗口大小。目的主機(jī)在確認(rèn)時(shí),向源主機(jī)告知目的主機(jī)接收緩沖區(qū)的大小。,說明:接收方使用0窗口通告來停止所有的傳輸。此時(shí),除了緊急數(shù)據(jù)和窗口試探報(bào)文外,不發(fā)其它數(shù)據(jù) 。,101 200 201 320 321399,如何防止死鎖?,當(dāng)接收方緩存有了空間時(shí),如何讓對方繼續(xù)發(fā)送數(shù)據(jù)給自己? 如果窗口變?yōu)榉?時(shí),則接收方會向發(fā)送方發(fā)非0窗口的通告; 但是,若該確認(rèn)丟失,則會造成死鎖。如何防止死鎖? 堅(jiān)持定時(shí)器:發(fā)送方接收到0窗口通告時(shí)進(jìn)行設(shè)置。用于周期性地向?qū)Ψ皆儐柎翱诖笮 ?窗口試探報(bào)文:在堅(jiān)持定時(shí)器時(shí)間到、但仍沒收到接收方非0窗口的通知時(shí)發(fā)送。防止非0窗口通告丟失造成死鎖。,發(fā)送端要發(fā)送 900 字節(jié)長的數(shù)據(jù),劃分為 9 個(gè) 100 字節(jié)長的報(bào)文段,而發(fā)送窗口確定為 500 字節(jié)。 發(fā)送端只要收到了對方的確認(rèn),發(fā)送窗口就可前移。 發(fā)送 TCP 要維護(hù)一個(gè)指針。每發(fā)送一個(gè)報(bào)文段,指針就向前移動(dòng)一個(gè)報(bào)文段的距離。,舉例,發(fā)送端已發(fā)送了 400 字節(jié)的數(shù)據(jù),但只收到對前 200 字節(jié)數(shù)據(jù)的確認(rèn),同時(shí)窗口大小不變。 現(xiàn)在發(fā)送端還可發(fā)送 300 字節(jié)。,發(fā)送端收到了對方對前 400 字節(jié)數(shù)據(jù)的確認(rèn),但對方通知發(fā)送端必須把窗口減小到 400 字節(jié)。 現(xiàn)在發(fā)送端最多還可發(fā)送 400 字節(jié)的數(shù)據(jù)。,主機(jī) A,主機(jī) B,允許 A 再發(fā)送 300 字節(jié),A 還能發(fā)送 200 字節(jié),A 還能發(fā)送 200 字節(jié),A 還能發(fā)送 300 字節(jié),A 還能發(fā)送 100 字節(jié),A 超時(shí)重發(fā),但不能發(fā)送序號 500 以后的數(shù)據(jù),允許 A 再發(fā)送 200 字節(jié)(序號 501 至 700),A 還能發(fā)送 100 字節(jié)(序號 601 至 700),不允許 A 再發(fā)送(到序號 600 的數(shù)據(jù)都已收到),利用可變窗口大小進(jìn)行流量控制 雙方確定的窗口值是 400,1.什么是SWS? 接收方的小窗口通告造成發(fā)送方發(fā)送一系列小的報(bào)文段,嚴(yán)重浪費(fèi)網(wǎng)絡(luò)帶寬。 2.啟發(fā)式的避免策略: 接收方: (1)避免小窗口通告 ,在零窗口通告之后,只在可用緩沖區(qū)顯著增加(緩沖區(qū)空間的一半或一個(gè)MSS)后才發(fā)送新的窗口通告 (2)推遲確認(rèn)(最多500ms),窗口大小不到避免SWS策略所需的尺寸時(shí),不確認(rèn)。 為了使發(fā)送方正確估計(jì)RTT,至少每隔一個(gè)報(bào)文段要進(jìn)行正常的確認(rèn)。,4. 糊涂窗口綜合癥SWS,發(fā)送方:避免小報(bào)文段發(fā)送 Nagle算法:自適應(yīng)推遲傳輸以便將數(shù)據(jù)組塊 (1)連接建立后,最初的數(shù)據(jù)會立即發(fā)送。 (2)當(dāng)緩沖區(qū)中數(shù)據(jù)不足一個(gè)報(bào)文段,則推遲發(fā)送。等到一個(gè)確認(rèn)來到(確認(rèn)觸發(fā))時(shí),發(fā)送緩沖區(qū)中的小報(bào)文段。 3.說明 Nagle算法的兩個(gè)優(yōu)點(diǎn): 自適應(yīng):確認(rèn)到達(dá)得越快,數(shù)據(jù)也就發(fā)送得越快 ; 計(jì)算簡單:不需要定時(shí)器。 可關(guān)閉Nagle算法,應(yīng)用程序接口一般提供選項(xiàng)TCP-NODELAY來關(guān)閉Nagle算法。,擁塞:交換節(jié)點(diǎn)(如路由器)數(shù)據(jù)報(bào)負(fù)載過重的現(xiàn)象 。 回顧:IP層的擁塞控制技術(shù): (ICMP源站抑制報(bào)文),是一種被動(dòng)機(jī)制。 TCP擁塞控制的必要性:在TCP層,擁塞造成時(shí)延增加,這又會造成超時(shí)重傳,控制不當(dāng)會進(jìn)一步加重?fù)砣?7.6 TCP擁塞控制技術(shù),TCP控制擁塞的兩個(gè)變量,每一個(gè)TCP連接需要有以下兩個(gè)狀態(tài)變量: 接收端窗口 (receiver window) ,又稱為通知窗口(advertised window)。 接收端根據(jù)其目前的接收緩存大小向發(fā)送方所許諾的最新的窗口值 來自接收端的流量控制 擁塞窗口 (congestion window)。 發(fā)送端根據(jù)自己估計(jì)的網(wǎng)絡(luò)擁塞程度而設(shè)置的窗口值 它對一個(gè)發(fā)送方能向網(wǎng)絡(luò)中發(fā)送流量的速率進(jìn)行限制 來自發(fā)送端的流量控制。,發(fā)送窗口的上限值,發(fā)送窗口的上限值取決于接收端窗口rwnd和擁塞窗口cwnd這兩個(gè)變量中較小的一個(gè),即應(yīng)按以下公式確定: 發(fā)送窗口的上限值 min rwnd, cwnd,慢啟動(dòng)門限,慢啟動(dòng)門限(ssthresh)用于確定是采用慢啟動(dòng)還是擁塞避免算法來控制數(shù)據(jù)傳送: 當(dāng)cwndssthresh時(shí),使用擁塞避免算法; 當(dāng)cwnd=ssthresh時(shí),既可以使用慢啟動(dòng)算法,也可以使用擁塞避免算法。, 擁塞窗口cwnd 每個(gè)連接都有一個(gè)擁塞窗口,該窗口大小以字節(jié)為單位,但是增加和減少以MSS為單位; 初始大?。?個(gè)MSS; 慢啟動(dòng)算法 思想:新連接開始或擁塞解除后,都僅以一個(gè)最大報(bào)文段長度作為擁塞窗口cwnd的初始值。此后,每收到一個(gè)確認(rèn),cwnd增加一個(gè)MSS。 擁塞 避免算法 當(dāng)cwnd增加到ssthresh的一半時(shí),進(jìn)入“擁塞避免”狀態(tài)。 思想:窗口中的所有報(bào)文段都被確認(rèn)后,才將cnwd增加一個(gè)MSS。 加速遞減技術(shù) 指數(shù)級遞減:出現(xiàn)超時(shí)重傳時(shí),將ssthresh值設(shè)為當(dāng)前擁塞窗口的1/2,擁塞窗口恢復(fù)為1個(gè)MSS大??; 指數(shù)退避:對保留在發(fā)送窗口中的報(bào)文段,將重傳時(shí)限加倍 。,TCP擁塞控制技術(shù),慢開始和擁塞避免算法的實(shí)現(xiàn)舉例-1,當(dāng) TCP 連接進(jìn)行初始化時(shí),將擁塞窗口置為 1。圖中的窗口單位不使用字節(jié)而使用報(bào)文段。,慢開始門限的初始值設(shè)置為 16 個(gè)報(bào)文段,即 ssthresh = 16。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,傳輸次數(shù),擁塞窗口,ssthresh = 16,慢開始,慢開始,擁塞避免,擁塞避免,更新后的 ssthresh = 12,發(fā)送端的發(fā)送窗口不能超過擁塞窗口和接收端窗口中的最小值。我們假定接收端窗口足夠大,因此現(xiàn)在發(fā)送窗口的數(shù)值等于擁塞窗口的數(shù)值。,慢開始和擁塞避免算法的實(shí)現(xiàn)舉例-2,在執(zhí)行慢開始算法時(shí),擁塞窗口的初始值為 1,發(fā)送第一個(gè)報(bào)文段 M0。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,傳輸次數(shù),擁塞窗口,ssthresh = 16,慢開始,慢開始,擁塞避免,擁塞避免,更新后的 ssthresh = 12,慢開始和擁塞避免算法的實(shí)現(xiàn)舉例-3,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,傳輸次數(shù),擁塞窗口,ssthresh = 16,慢開始,慢開始,擁塞避免,擁塞避免,更新后的 ssthresh = 12,發(fā)送端收到 ACK1 (確認(rèn) M0,期望收到 M1)后,將擁塞窗口從 1 增大到 2,于是發(fā)送端可以接著發(fā)送 M1 和 M2 兩個(gè)報(bào)文段。,慢開始和擁塞避免算法的實(shí)現(xiàn)舉例-4,接收端發(fā)回 ACK2 和 ACK3。發(fā)送端每收到一個(gè)對新報(bào)文段的確認(rèn) ACK,就把發(fā)送端的擁塞窗口加 1?,F(xiàn)在發(fā)送端的擁塞窗口從 2 增大到 4,并可發(fā)送 M4 M6共 4個(gè)報(bào)文段。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,傳輸次數(shù),擁塞窗口,ssthresh = 16,慢開始,慢開始,擁塞避免,擁塞避免,更新后的 ssthresh = 12,慢開始和擁塞避免算法的實(shí)現(xiàn)舉例-5,發(fā)送端每收到一個(gè)對新報(bào)文段的確認(rèn) ACK,就把發(fā)送端的擁塞窗口加 1,因此擁塞窗口 隨著傳輸次數(shù)按指數(shù)規(guī)律增長。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,傳輸次數(shù),擁塞窗口,ssthresh = 16,慢開始,慢開始,擁塞避免,擁塞避免,更新后的 ssthresh = 12,慢開始和擁塞避免算法的實(shí)現(xiàn)舉例-6,當(dāng)擁塞窗口增長到慢開始門限值 ssthresh 時(shí)(即當(dāng) CongWin = 16 時(shí)),就改為執(zhí)行擁塞避免算法,擁塞窗口按線性規(guī)律增長。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,傳輸次數(shù),擁塞窗口,ssthresh = 16,慢開始,慢開始,擁塞避免,更新后的 ssthresh = 12,慢開始和擁塞避免算法的實(shí)現(xiàn)舉例-7,假定擁塞窗口的數(shù)值增長到 24 時(shí),網(wǎng)絡(luò)出現(xiàn)超時(shí)(表明網(wǎng)絡(luò)擁塞了)。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,傳輸次數(shù),擁塞窗口,ssthresh = 16,慢開始,慢開始,擁塞避免,擁塞避免,更新后的 ssthresh = 12,慢開始和擁塞避免算法的實(shí)現(xiàn)舉例-8,更新后的 ssthresh 值變?yōu)?12(即發(fā)送窗口數(shù)值 24 的一半),擁塞窗口再重新設(shè)置為 1,并執(zhí)行慢開始算法。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,傳輸次數(shù),擁塞窗口,ssthresh = 16,慢開始,慢開始,擁塞避免,擁塞避免,更新后的 ssthresh = 12,慢開始和擁塞避免算法的實(shí)現(xiàn)舉例-9,當(dāng) CongWin = 12 時(shí)改為執(zhí)行擁塞避免算法,擁塞窗口按線性規(guī)律增長,每經(jīng)過一個(gè)往返時(shí)延就增加一個(gè) MSS 的大小。,2,4,6,8,10,12,14,16,18,20,22,0,0,4,8,12,16,20,24,傳輸次數(shù),擁塞窗口,ssthresh = 16,慢開始,慢開始,擁塞避免,擁塞避免,更新后的 ssthresh = 12,7.7 TCP報(bào)文,1. 報(bào)文段和序號:報(bào)文段是TCP軟件間傳輸數(shù)據(jù)的基本單元,每個(gè)報(bào)文段都有一個(gè)序號。 (1)選取初始序號 (2)第n+1段的序號 = 第n段序號 + 第n段數(shù)據(jù)區(qū)字節(jié)數(shù)(相當(dāng)于每個(gè)字節(jié)都有一個(gè)序號),首部長度:4字節(jié)計(jì)數(shù),最大15,TCP首部長度20-60 序號:當(dāng)前報(bào)文的序號 確認(rèn)號:希望接收的對方下一報(bào)文段序號(已成功接收到的數(shù)據(jù)字節(jié)序+1) 說明: (1)序號和確認(rèn)序號在一起使得確認(rèn)可捎帶進(jìn)行。 (2)TCP采用累計(jì)確認(rèn)策略。 (3) TCP采用經(jīng)受時(shí)延的確認(rèn)(時(shí)延一般為200ms)。 缺點(diǎn):發(fā)送方無法收到所有成功傳輸?shù)膱?bào)文段的確認(rèn)信息,對往返時(shí)間樣本的精確測量帶來影響。,窗口:通告對等端緩沖區(qū)大小,使發(fā)送方修改窗口的大小,以便進(jìn)行收發(fā)雙方的流量控制。 問題:初始窗口大小如何確定? 默認(rèn)值,在建立連接時(shí)互相通告,校驗(yàn)和計(jì)算:加入偽首部,必須(UDP可選),碼元比特(標(biāo)識報(bào)文段的目的與內(nèi)容):,選項(xiàng): 第一版TCP:定義了選項(xiàng)表結(jié)束、無操作、MSS(最大報(bào)文段長度。,MSS過?。盒实?MSS過大:考慮分片,丟失可能性增大 MSS接近路徑MTU時(shí)為最佳(由于路徑改變,很難)。 說明:只有SYN報(bào)文能協(xié)商MSS,默認(rèn)536字節(jié),選項(xiàng): 第二版TCP(rfc1323):增加了窗口擴(kuò)大因子和時(shí)間戳。,功能:將TCP窗口定義從16bit擴(kuò)大到32bit。 移位數(shù) = R:窗口大小 = 65535 2R 說明: 只能出現(xiàn)在一個(gè)SYN報(bào)文段中; 主動(dòng)建立連接的一方發(fā)送這個(gè)選項(xiàng),被動(dòng)方收到該選項(xiàng)后才能發(fā)此選項(xiàng); 每個(gè)方向上的擴(kuò)大因子可以不同;,時(shí)間戳選項(xiàng):,時(shí)間戳:發(fā)送方填 時(shí)間戳回顯應(yīng)答:接收方確認(rèn)復(fù)制發(fā)回 功能:更好地估算RTT 防止回繞的序號 問題:如果接收方發(fā)送了一個(gè)對兩個(gè)報(bào)文段的確認(rèn),那么應(yīng)該復(fù)制哪一個(gè)報(bào)文的時(shí)間戳字段呢?,解決:TCP為每個(gè)連接保留一個(gè)時(shí)間戳數(shù)值。 1. TCP設(shè)置兩個(gè)變量: (1)tsrecent:每個(gè)連接的時(shí)間戳數(shù)值; (2)lastack: 最后發(fā)送的ACK的確認(rèn)序號; 2. 當(dāng)包含lastack的報(bào)文段到達(dá)時(shí),其中的時(shí)間戳被保存至tsrecent; 3. 無論何時(shí)發(fā)送確認(rèn),tsrecent將被寫入時(shí)間戳回顯應(yīng)答字段,確認(rèn)序號則被保存到lastack。,分析: 1. 若ACK被接收方延遲,則回顯的是第一個(gè)報(bào)文段。 例:若包含11024和10252048字節(jié)的兩個(gè)報(bào)文段到達(dá),則: lastack為1025,回顯時(shí)間戳為11024的時(shí)戳。 原因:發(fā)送方在進(jìn)行重傳超時(shí)時(shí)間的計(jì)算時(shí),必須將延遲的ACK也考慮在內(nèi)。 2. 若收到的報(bào)文失序,則丟失的報(bào)文段到達(dá)時(shí),它的時(shí)間戳被回顯。 例:收到報(bào)文的順序?yàn)?1024-20494072-10252048,則處理情況如下: (1)確認(rèn)號為1025,回顯時(shí)間戳為11024的時(shí)戳; (2)確認(rèn)號為1025,回顯時(shí)間戳為11024的時(shí)戳; (3)確認(rèn)號為4073,回顯時(shí)間戳為10252048的時(shí)戳;,結(jié)果:造成RTT估計(jì)過高,比過低好,7.8 緊急數(shù)據(jù)和強(qiáng)迫數(shù)據(jù)發(fā)送,1. 緊急數(shù)據(jù)發(fā)送和帶外數(shù)據(jù) 帶外數(shù)據(jù):源站不能按字節(jié)流的順序而需要立即發(fā)給接收方并及時(shí)處理的數(shù)據(jù)(普通數(shù)據(jù)流中的緊急數(shù)據(jù))。,接收方收到URG報(bào)文段,立即把緊急數(shù)據(jù)交應(yīng)用程序處理,然后再處理普通數(shù)據(jù)流。 通常,緊急數(shù)據(jù)從數(shù)據(jù)區(qū)最前端開始。但有些系統(tǒng)只傳送1字節(jié)緊急數(shù)據(jù),可位于數(shù)據(jù)區(qū)任意地方。,2. 強(qiáng)迫數(shù)據(jù)發(fā)送 應(yīng)用背景: 通常,TCP為提高網(wǎng)絡(luò)利用率,在緩沖區(qū)中積累夠一個(gè)最大報(bào)文段容量的數(shù)據(jù)后才發(fā)送。 在交互環(huán)境或?qū)崟r(shí)性要求高的場合,每條命令(甚至每個(gè)字符)希望及時(shí)傳送。TCP提供推(PUSH)操作,以強(qiáng)迫發(fā)送當(dāng)前數(shù)據(jù)流中的數(shù)據(jù)而不必等待緩沖區(qū)滿。 應(yīng)用方式: 發(fā)送方將PSH置“1”,以通知接收方盡快把該報(bào)文段數(shù)據(jù)交應(yīng)用程序。,1. 重傳定時(shí)器: 設(shè)定丟失重傳的時(shí)間間隔 。 2. 堅(jiān)持定時(shí)器 在接收方發(fā)出0窗口通告后,發(fā)送方為了防止死鎖發(fā)生,用一個(gè)堅(jiān)持定時(shí)器周期性地向接收方發(fā)送窗口探察報(bào)文, 防止“0”窗口通告后窗口恢復(fù)通告丟失后造成死鎖。 3. ?;疃〞r(shí)器(間隔:2小時(shí)) 在服務(wù)器端檢測半開放的連接。 如果一個(gè)給定的連接在兩個(gè)小時(shí)內(nèi)沒有任何動(dòng)作,則服務(wù)器會向客戶端發(fā)送一個(gè)探察報(bào)文段,根據(jù)響應(yīng)情況進(jìn)行處理。,7.9 TCP的定時(shí)器,客戶機(jī)可能的四種狀態(tài): 客戶機(jī)正常工作,并從服務(wù)器可達(dá):2小時(shí)后保活定時(shí)器復(fù)位;若期間有通信,通信后2小時(shí)再復(fù)位; 客戶機(jī)崩潰:服務(wù)器連續(xù)發(fā)10個(gè)探察報(bào)文,回應(yīng)超時(shí)時(shí)間間隔設(shè)置為75秒,若始終沒有回應(yīng),則終止連接; 客戶機(jī)崩潰后重新啟動(dòng):服務(wù)器收到RST回應(yīng)報(bào)文,終止連接; 客戶機(jī)正常工作,但從服務(wù)器不可達(dá):同狀態(tài)2。,1. IP欺騙:核心:ISN估計(jì),7.11 TCP攻擊實(shí)例,H冒充B
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 西藥批發(fā)中的電子商務(wù)平臺建設(shè)考核試卷
- 草原馬術(shù)運(yùn)動(dòng)考核試卷
- 聚噻吩纖維在智能紡織品的應(yīng)用考核試卷
- 融資租賃行業(yè)服務(wù)創(chuàng)新與客戶體驗(yàn)考核試卷
- 谷物儲存的溫濕度調(diào)控考核試卷
- 拼多多平臺店鋪內(nèi)容營銷流量引入與品牌曝光合同
- 數(shù)字音樂平臺影視插曲版權(quán)合作分成合同
- 獨(dú)家授權(quán)網(wǎng)紅奶茶區(qū)域代理銷售服務(wù)合同
- 農(nóng)業(yè)園區(qū)氣象傳感器租賃及數(shù)據(jù)分析服務(wù)合同
- 工業(yè)廢水回用與清潔生產(chǎn)合作協(xié)議
- 山東省煙臺市、德州市、東營市三市東營2025年高考適應(yīng)性考試煙臺德州東營二模英語試卷+答案
- 2025年共青團(tuán)入團(tuán)考試測試題庫及答案
- 2025年上海市16區(qū)初三語文一模試題匯編之古詩文閱讀(學(xué)生版)
- 人工挖孔樁計(jì)算書及相關(guān)圖紙
- GB 5585.1-1985電工用銅、鋁及其合金母線第1部分:一般規(guī)定
- 等級保護(hù)定級指南(第十二期)講解課件
- 銅綠假單胞菌下呼吸道感染專家共識課件
- 故都的秋公開一等獎(jiǎng)?wù)n件
- 土石壩填筑的施工方法
- 【高中化學(xué)會考】山西省普通高中畢業(yè)會考化學(xué)試題樣題
- 2023高考地理高三一輪復(fù)習(xí)教學(xué)計(jì)劃和備考策略
評論
0/150
提交評論