2011計(jì)算機(jī)考研備考筆記之傳輸層_跨考網(wǎng)
(二) UDP協(xié)議 UDP數(shù)據(jù)報(bào),校驗(yàn),主要特點(diǎn)為,發(fā)送數(shù)據(jù)之前不需要建立連接,UDP 的主機(jī)不需要維持復(fù)雜的連接狀態(tài)表,UDP 用戶數(shù)據(jù)報(bào)只有8個(gè)字節(jié)的首部開(kāi)銷,網(wǎng)絡(luò)出現(xiàn)的擁塞不會(huì)使源主機(jī)的發(fā)送速率降低.對(duì)實(shí)時(shí)應(yīng)用很重要.
用戶數(shù)據(jù)報(bào)協(xié)議是對(duì)IP協(xié)議組的擴(kuò)充,它增加了一種機(jī)制,發(fā)送方使用這種機(jī)制可以區(qū)分一臺(tái)計(jì)算機(jī)上的多個(gè)接收者.每個(gè)UDP報(bào)文除了包含某用戶進(jìn)程發(fā)送數(shù)據(jù)外,還有報(bào)文目的端口的編號(hào)和報(bào)文源端口的編號(hào),從而使UDP的這種擴(kuò)充,使得在兩個(gè)用戶進(jìn)程之間的遞送數(shù)據(jù)報(bào)成為可能.
UDP是依靠IP協(xié)議來(lái)傳送報(bào)文的,因而它的服務(wù)和IP一樣是不可靠的.這種服務(wù)不用確認(rèn)、不對(duì)報(bào)文排序、也不進(jìn)行流量控制,UDP報(bào)文右能會(huì)出現(xiàn)丟失、重復(fù)、失序等現(xiàn)象.
(三) TCP協(xié)議 TCP段 ,連接管理,即TCP連接建立與釋放(三次握手),可靠傳輸 ,流量控制與擁塞控制,包括可變發(fā)送窗口協(xié)議等.TCP 采用大小可變的滑動(dòng)窗口進(jìn)行流量控制.窗口大小的單位是字節(jié),在 TCP 報(bào)文段首部的窗口字段寫(xiě)入的數(shù)值就是當(dāng)前給對(duì)方設(shè)置的發(fā)送窗口數(shù)值的上限.發(fā)送窗口在連接建立時(shí)由雙方商定.但在通信的過(guò)程中,接收端可根據(jù)自己的資源情況,隨時(shí)動(dòng)態(tài)地調(diào)整對(duì)方的發(fā)送窗口上限值(可增大或減小).
TCP提供的是一種可靠的數(shù)據(jù)流服務(wù).當(dāng)傳送受差錯(cuò)干擾的數(shù)據(jù),或基礎(chǔ)網(wǎng)絡(luò)故障,或網(wǎng)絡(luò)負(fù)荷太重而使網(wǎng)際基本傳輸系統(tǒng)(無(wú)連接報(bào)文遞交系統(tǒng))不能正常工作時(shí),就需要通過(guò)其它協(xié)議來(lái)保證通信的可靠.TCP就是這樣的協(xié)議,它對(duì)應(yīng)于OSI模型的運(yùn)輸層,它在IP協(xié)議的基礎(chǔ)上,提供端到端的面向連接的可靠傳輸.
TCP采用“帶重傳的肯定確認(rèn)”技術(shù)來(lái)實(shí)現(xiàn)傳輸?shù)目煽啃?簡(jiǎn)單的“帶重傳的肯定確認(rèn)”是指與發(fā)送方通信的接收者,每接收一次數(shù)據(jù),就送回一個(gè)確認(rèn)報(bào)文,發(fā)送者對(duì)每個(gè)發(fā)出去的報(bào)留一份記錄,等到收到確認(rèn)之后再發(fā)出下一報(bào)文分組.發(fā)送者發(fā)出一個(gè)報(bào)文分組時(shí),啟動(dòng)一個(gè)計(jì)時(shí)器,若計(jì)時(shí)器計(jì)數(shù)完畢,確認(rèn)還未到達(dá),則發(fā)送者重新送該報(bào)文分組.
簡(jiǎn)單的確認(rèn)重傳嚴(yán)重浪費(fèi)帶寬,TCP還采用一種稱之為“滑動(dòng)窗口”的流量控制機(jī)制來(lái)提高網(wǎng)絡(luò)的吞吐量,窗口的范圍決定了發(fā)送方發(fā)送的但未被接收方確認(rèn)的數(shù)據(jù)報(bào)的數(shù)量.每當(dāng)接收方正確收到一則報(bào)文時(shí),窗口便向前滑動(dòng),這種機(jī)制使網(wǎng)絡(luò)中未被確認(rèn)的數(shù)據(jù)報(bào)數(shù)量增加,提高了網(wǎng)絡(luò)的吞吐量.
TCP通信建立在面向連接的基礎(chǔ)上,實(shí)現(xiàn)了一種“虛電路”的概念.雙方通信之前,先建立一條連接,然后雙方就可以在其上發(fā)送數(shù)據(jù)流.這種數(shù)據(jù)交換方式能提高效率,但事先建立連接和事后拆除連接需要開(kāi)銷.TCP連接的建立采用三次握手的過(guò)程,整個(gè)過(guò)程由發(fā)送方請(qǐng)求連接、接收方再發(fā)送一則關(guān)于確認(rèn)的確認(rèn)三個(gè)過(guò)程組成.
TCP的擁塞控制和流量控制是一個(gè)比較復(fù)雜的問(wèn)題,它包括發(fā)送端發(fā)送報(bào)文的大小和報(bào)文的時(shí)機(jī),接收端發(fā)送確認(rèn)和窗口大小的策略.同時(shí)還要兼顧不同網(wǎng)絡(luò)的具體情況,算法要具有一定的自適應(yīng)性,在保證可靠傳輸?shù)耐瑫r(shí),盡量提高傳輸效率.
這里主要對(duì)目前公認(rèn)的比較行之有效的一些擁塞控制和流量控制算法進(jìn)行介紹和驗(yàn)證.主要有:TCP的滑動(dòng)窗口機(jī)制、TCP的糊涂窗口綜合癥和Nagle算法分析、網(wǎng)絡(luò)擁塞的處理、TCP的超時(shí)與重傳、TCP的窗口探查技術(shù)、TCP的快重傳和快恢復(fù).
TCP的滑動(dòng)窗口機(jī)制
為了提高報(bào)文段的傳輸速率,TCP采用大小可變的滑動(dòng)窗口進(jìn)行流量控制.窗口大小的單位是字節(jié).發(fā)送窗口在連接建立時(shí)由雙方商定,但在通信過(guò)程中,接收端可根據(jù)自己的接收緩存的大小,隨時(shí)動(dòng)態(tài)地調(diào)整發(fā)送端的發(fā)送窗口的上限值.這就是接收端窗口rwnd(receiver window),這個(gè)值被放在接收端發(fā)送的TCP報(bào)文段首部的窗口字段中.
同時(shí),發(fā)送端根據(jù)其對(duì)當(dāng)前網(wǎng)絡(luò)擁塞程度的估計(jì)而確定的窗口值,叫做擁塞窗口cwnd(congestion window).其大小與網(wǎng)絡(luò)的帶寬和時(shí)延密切相關(guān).
發(fā)送端設(shè)置的當(dāng)前能夠發(fā)送數(shù)據(jù)量的大小叫做發(fā)送窗口,發(fā)送窗口的上限值由下面公式確定:
發(fā)送窗口的上限值=Min[cwnd,rwnd]
rwnd由接收端根據(jù)其接收緩存確定,發(fā)送端確定cwnd比較復(fù)雜,詳細(xì)情況在慢啟動(dòng)和擁塞避免一節(jié)中敘述.
發(fā)送窗口的左邊沿對(duì)應(yīng)已發(fā)送數(shù)據(jù)中被確認(rèn)的最高序號(hào)+1,其右邊沿對(duì)應(yīng)左邊沿的序號(hào)加上發(fā)送窗口的大小.在數(shù)據(jù)傳輸?shù)倪^(guò)程中,這個(gè)發(fā)送窗口不時(shí)地向右移動(dòng)構(gòu)成了滑動(dòng)窗口.窗口的兩個(gè)邊沿的相對(duì)運(yùn)動(dòng)增加或減少了窗口的大小.我們使用三個(gè)術(shù)語(yǔ)來(lái)描述窗口左右邊沿的運(yùn)動(dòng):
(1)當(dāng)窗口左邊沿向右邊沿靠近時(shí),我們稱之為窗口合攏.這種現(xiàn)象發(fā)生在數(shù)據(jù)被發(fā)送和確認(rèn)時(shí).如果窗口的左邊沿與右邊沿重合,則稱其為一個(gè)零窗口,此時(shí)發(fā)送方不能發(fā)送任何數(shù)據(jù).
(2)當(dāng)窗口右邊沿向右移動(dòng)時(shí)將允許發(fā)送更多的數(shù)據(jù),我們稱之為窗口張開(kāi).這種現(xiàn)象發(fā)生在另一端的接收進(jìn)程讀取已經(jīng)確認(rèn)的數(shù)據(jù)并釋放了TCP的接收緩存時(shí).
(3)當(dāng)右邊沿向左移動(dòng)時(shí),我們稱之為窗口收縮.這種情況一般不會(huì)發(fā)生,但是TCP必須能夠在某一端產(chǎn)生這種情況時(shí)進(jìn)行處理.
TCP的糊涂窗口綜合癥和Nagle算法
TCP的流量控制方案是基于窗口的,有可能會(huì)出現(xiàn)一種被稱為“糊涂窗口綜合癥”的狀況.其中一種情況是,如果接受方處理較慢,并且每次從其接收緩存取走很少量數(shù)據(jù)就通告這個(gè)很小的窗口,而不是等到有較大的窗口時(shí)才通告;發(fā)送方得到這個(gè)很小的接收窗口后,立即按照這個(gè)窗口大小組成一個(gè)TCP報(bào)文段發(fā)送出去,而不是等待其它的數(shù)據(jù)以便發(fā)送一個(gè)大的報(bào)文段.如此往復(fù),會(huì)導(dǎo)致網(wǎng)絡(luò)的傳輸效率降低.
對(duì)于糊涂窗口綜合癥的現(xiàn)象,發(fā)送和接收雙方均可以采取措施加以避免.
發(fā)送端比較有效的方法是采用Nagle算法.該算法主要是:在連接建立開(kāi)始發(fā)送數(shù)據(jù)時(shí),立即按序發(fā)送緩存中的數(shù)據(jù)(必須小于或等于MSS),在已經(jīng)傳輸?shù)臄?shù)據(jù)還未被確認(rèn)的情況下,后續(xù)數(shù)據(jù)的發(fā)送由數(shù)據(jù)是否足以填滿發(fā)送緩存的一半或一個(gè)最大報(bào)文段長(zhǎng)度決定.
接收端采用推遲確認(rèn)技術(shù),對(duì)收到的報(bào)文段進(jìn)行確認(rèn)和通告窗口的前提條件是:接收緩存的可用空間至少得到總空間的一半或者達(dá)到最大報(bào)文長(zhǎng)度之后.如果條件不滿足,則推遲發(fā)送確認(rèn)和窗口通告.
總之,避免糊涂窗口綜合癥的總的原則是:接收端避免通告小窗口,發(fā)送端盡量將數(shù)據(jù)組成較大的報(bào)文段發(fā)送出去
2022考研初復(fù)試已經(jīng)接近尾聲,考研學(xué)子全面進(jìn)入2023屆備考,跨考為23考研的考生準(zhǔn)備了10大課包全程準(zhǔn)備、全年復(fù)習(xí)備考計(jì)劃、目標(biāo)院校專業(yè)輔導(dǎo)、全真復(fù)試模擬練習(xí)和全程針對(duì)性指導(dǎo);2023考研的小伙伴針也已經(jīng)開(kāi)始擇校和復(fù)習(xí)了,跨考考研暢學(xué)5.0版本全新升級(jí),無(wú)論你在校在家都可以更自如的完成你的考研復(fù)習(xí),暑假集訓(xùn)營(yíng)帶來(lái)了院校專業(yè)初步選擇,明確方向;考研備考全年規(guī)劃,核心知識(shí)點(diǎn)入門(mén);個(gè)性化制定備考方案,助你贏在起跑線,早出發(fā)一點(diǎn)離成功就更近一點(diǎn)!
考研院校專業(yè)選擇和考研復(fù)習(xí)計(jì)劃 | |||
2023備考學(xué)習(xí) | 2023線上線下隨時(shí)學(xué)習(xí) | 34所自劃線院??佳袕?fù)試分?jǐn)?shù)線匯總 | |
2022考研復(fù)試最全信息整理 | 全國(guó)各招生院??佳袕?fù)試分?jǐn)?shù)線匯總 | ||
2023全日制封閉訓(xùn)練 | 全國(guó)各招生院??佳姓{(diào)劑信息匯總 | ||
2023考研先知 | 考研考試科目有哪些? | 如何正確看待考研分?jǐn)?shù)線? | |
不同院校相同專業(yè)如何選擇更適合自己的 | 從就業(yè)說(shuō)考研如何擇專業(yè)? | ||
手把手教你如何選專業(yè)? | 高校研究生教育各學(xué)科門(mén)類排行榜 |
相關(guān)推薦
跨考考研課程
班型 | 定向班型 | 開(kāi)班時(shí)間 | 高定班 | 標(biāo)準(zhǔn)班 | 課程介紹 | 咨詢 |
秋季集訓(xùn) | 沖刺班 | 9.10-12.20 | 168000 | 24800起 | 小班面授+專業(yè)課1對(duì)1+專業(yè)課定向輔導(dǎo)+協(xié)議加強(qiáng)課程(高定班)+專屬規(guī)劃答疑(高定班)+精細(xì)化答疑+復(fù)試資源(高定班)+復(fù)試課包(高定班)+復(fù)試指導(dǎo)(高定班)+復(fù)試班主任1v1服務(wù)(高定班)+復(fù)試面授密訓(xùn)(高定班)+復(fù)試1v1(高定班) | |
2023集訓(xùn)暢學(xué) | 非定向(政英班/數(shù)政英班) | 每月20日 | 22800起(協(xié)議班) | 13800起 | 先行階在線課程+基礎(chǔ)階在線課程+強(qiáng)化階在線課程+真題階在線課程+沖刺階在線課程+專業(yè)課針對(duì)性一對(duì)一課程+班主任全程督學(xué)服務(wù)+全程規(guī)劃體系+全程測(cè)試體系+全程精細(xì)化答疑+擇校擇專業(yè)能力定位體系+全年關(guān)鍵環(huán)節(jié)指導(dǎo)體系+初試加強(qiáng)課+初試專屬服務(wù)+復(fù)試全科標(biāo)準(zhǔn)班服務(wù) |