九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
OSI參考模型傳輸層

博文目錄

一、傳輸層與傳輸層協(xié)議 二、用戶數(shù)據(jù)報(bào)協(xié)議(UDP)
三、傳輸控制協(xié)議TCP
四、TCP協(xié)議滑動(dòng)窗口

一、傳輸層與傳輸層協(xié)議

1. 傳輸層的基本功能

  1. 傳輸層的本質(zhì)就是為分布在不同地理位置的計(jì)算機(jī)的進(jìn)程通信提供可靠的端-端連接和數(shù)據(jù)傳輸服務(wù),作用是實(shí)現(xiàn)分布式進(jìn)程通信,它的傳輸單位是報(bào)文
  2. 屏蔽了傳輸網(wǎng)實(shí)現(xiàn)技術(shù)的差異性,使得應(yīng)用層在設(shè)計(jì)各種網(wǎng)絡(luò)應(yīng)用系統(tǒng)時(shí),只需要考慮什么樣的傳輸層協(xié)議,而不需要考慮數(shù)據(jù)傳輸?shù)募?xì)節(jié)
  3. 傳輸層把點(diǎn)-點(diǎn)通信轉(zhuǎn)化到端-端通信(端-端通信的實(shí)現(xiàn)使用套接字)

2. 傳輸層的傳輸單元——傳輸協(xié)議數(shù)據(jù)單元(TPDU)

傳輸層中實(shí)現(xiàn)傳輸層協(xié)議的軟件稱為”傳輸實(shí)體“,傳輸層之間出傳輸?shù)膱?bào)文稱為”傳輸協(xié)議數(shù)據(jù)單元(TPDU)“

數(shù)據(jù)的傳輸過程

  1. 傳輸層在TPDU前加上TPDU頭,傳輸?shù)骄W(wǎng)絡(luò)層加上IP分組頭形成IP分組;
  2. IP分組傳輸?shù)綌?shù)據(jù)鏈路層加上幀頭和幀尾形成幀;
  3. 幀經(jīng)過物理層目的主機(jī)后,經(jīng)過數(shù)據(jù)鏈路層,網(wǎng)絡(luò)層處理,傳輸層接收到TPDU頭,對(duì)TPDU數(shù)據(jù)完成相應(yīng)的動(dòng)作。

3. 套接字

傳輸層實(shí)現(xiàn)分布式進(jìn)程通信,首先就要解決進(jìn)程標(biāo)識(shí)的問題,在計(jì)算機(jī)網(wǎng)絡(luò)中,只有知道IP地址和端口號(hào),才能唯一找到通信的進(jìn)程,即:
傳輸層端口號(hào) + 網(wǎng)絡(luò)層IP地址 = IP:端口

用一個(gè)例子來類比:
要找XX學(xué)校教學(xué)樓的601教室,所以必須知道學(xué)校地址和課室號(hào),學(xué)校相當(dāng)于IP地址,601教室相當(dāng)于端口號(hào)

4. 分布式進(jìn)程標(biāo)識(shí)方法

TCP/IP傳輸層的尋址是通過TCP與UDP端口號(hào)來實(shí)現(xiàn)的,TCP與UDP規(guī)定用不同的端口號(hào)來表示不同的應(yīng)用程序
在TCP/IP協(xié)議中,端口號(hào)的數(shù)值取0-65535,且端口號(hào)分為三種類型:熟知端口號(hào),注冊(cè)端口號(hào)和臨時(shí)端口號(hào)

熟知端口號(hào)

TCP/UDP給每種標(biāo)準(zhǔn)的Internet服務(wù)器進(jìn)程分配一個(gè)確定的全局端口號(hào),由IANA同一分配


注冊(cè)端口號(hào)

當(dāng)用戶開發(fā)新的網(wǎng)絡(luò)應(yīng)用程序時(shí),可以為這種新的網(wǎng)絡(luò)應(yīng)用程序的服務(wù)器程序在IANA登記一個(gè)注冊(cè)端口號(hào)

臨時(shí)端口號(hào)

由運(yùn)行在客戶上的TCP/UDP軟件隨機(jī)選取的,只對(duì)一次進(jìn)程通信有效

網(wǎng)絡(luò)中的兩臺(tái)主機(jī)要實(shí)現(xiàn)進(jìn)程通信,它們必須事先約定好傳輸層協(xié)議,如果一臺(tái)用TCP,另一臺(tái)用UDP,由于兩種協(xié)議的報(bào)文格式,端口號(hào)分配的問題,會(huì)使得兩臺(tái)主機(jī)無法正常通信。
如果考慮到進(jìn)程標(biāo)識(shí)和多重協(xié)議識(shí)別,網(wǎng)絡(luò)中一個(gè)進(jìn)程的全網(wǎng)唯一的標(biāo)識(shí)應(yīng)該用三元組來表示:協(xié)議+IP地址+端口號(hào);當(dāng)兩臺(tái)主機(jī)通信時(shí),一個(gè)完整的通信標(biāo)識(shí)需要五元組協(xié)議+本地IP地址+本地端口號(hào)+遠(yuǎn)程地址+遠(yuǎn)程端口號(hào)

5. 傳輸層的多路復(fù)用和多路分解工作流程

一臺(tái)運(yùn)行TCP/IP協(xié)議的主機(jī)可能同時(shí)運(yùn)行不同的應(yīng)用程序,這些應(yīng)用程序有的使用TCP,有的使用UDP,而TCP/IP協(xié)議允許多個(gè)不同應(yīng)用程序的數(shù)據(jù),同時(shí)使用IP地址和一個(gè)物理連接來發(fā)送和接受數(shù)據(jù)

多路復(fù)用和多路分解工作流程:
1. IP協(xié)議把TCP和UDP的TPDU都封裝在一個(gè)IP分組上,發(fā)送到接收端
2. 接收端從IP分組中拆出TPDU傳送到傳輸層
3. 傳輸層更具不同TPDU的端口號(hào),區(qū)分出不同的TPDU屬性,分別傳送到不同的應(yīng)用程序

6. TCP、UDP協(xié)議和應(yīng)用層協(xié)議的關(guān)系

應(yīng)用層協(xié)議和傳輸層協(xié)議有三種類型:依賴TCP協(xié)議的應(yīng)用層協(xié)議,依賴UDP協(xié)議的應(yīng)用層協(xié)議,同時(shí)依賴TCP、UDP協(xié)議的應(yīng)用層協(xié)議

依賴TCP協(xié)議的應(yīng)用層協(xié)議:TELNET(虛擬終端協(xié)議)、SMTP(電子郵件協(xié)議)、FTP(文件傳輸協(xié)議)、HTTP(超文本傳輸協(xié)議)
依賴UDP協(xié)議的應(yīng)用層協(xié)議:SNMP(簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議)
同時(shí)依賴TCP、UDP協(xié)議的應(yīng)用層協(xié)議:DNS(域名服務(wù)協(xié)議)

二、用戶數(shù)據(jù)報(bào)協(xié)議(UDP)

1. UDP協(xié)議的特點(diǎn)

  1. 是一種無連接不可靠的協(xié)議
    1) 不需要通信雙方建立連接
    2)除了一種可選的校檢和之外,幾乎沒有提供其他的保證數(shù)據(jù)傳輸可靠性的措施
    3)如果檢測(cè)出收到的分組出錯(cuò),就丟棄,不確認(rèn)也不通知發(fā)送端要求重傳
  2. 是一種面向報(bào)文的協(xié)議
    對(duì)應(yīng)用程序提交的報(bào)文,添加UDP頭,構(gòu)成一個(gè)TPDU就發(fā)送給網(wǎng)絡(luò)層

2. UDP協(xié)議報(bào)文格式

端口號(hào)

源端口號(hào)和目的端口號(hào)

長(zhǎng)度

指包括報(bào)頭在內(nèi)的用戶數(shù)據(jù)報(bào)的總長(zhǎng)度,UDP的報(bào)頭規(guī)定為8字節(jié),而UDP長(zhǎng)度字段為16位,因此數(shù)據(jù)最大值為 2 ^ 16 - 8 = 65527

校檢和

可選部分,用來檢測(cè)用戶數(shù)據(jù)報(bào)、UDP報(bào)頭和偽報(bào)頭傳輸過程中是否出錯(cuò)

3. 偽報(bào)頭

偽報(bào)頭的作用

  1. 偽報(bào)頭不是用戶數(shù)據(jù)報(bào)的真正頭部(是UDP頭),是臨時(shí)加上去的
  2. 只在計(jì)算時(shí)起作用,不向上傳輸,也不向下傳輸
  3. 如果沒有偽報(bào)頭,檢驗(yàn)的對(duì)象只是UDP報(bào)文,也能判斷UDP報(bào)文傳輸是否出錯(cuò);但是考慮到IP分組出錯(cuò),那么分組很可能會(huì)傳送到錯(cuò)誤的主機(jī),因此設(shè)置偽報(bào)頭

4. UDP協(xié)議適用場(chǎng)景

UDP協(xié)議簡(jiǎn)潔,效率高,處理速度快,在P2P會(huì)話類中很突出,適用于實(shí)時(shí)語音與視頻傳輸
1. 視頻播放應(yīng)用
2. 簡(jiǎn)短的交互式應(yīng)用
3. 多播與廣播應(yīng)用

三、傳輸控制協(xié)議TCP

1. TCP協(xié)議的特點(diǎn)

1. 面向連接的傳輸服務(wù)

TCP傳輸數(shù)據(jù)前,源進(jìn)程端口和目標(biāo)進(jìn)程端口必須建立了TCP傳輸連接

2. 支持字節(jié)流的傳輸


字節(jié)流中每一個(gè)字節(jié)都會(huì)有編號(hào),雖然是面向字節(jié)的,但是不是每字節(jié)傳輸,而是把字節(jié)流分段,一個(gè)端的多個(gè)字節(jié)打包成一個(gè)TCP報(bào)文段發(fā)送

3. 支持全雙工通信

  1. 雙方進(jìn)程任何時(shí)候都可以發(fā)送數(shù)據(jù)
  2. 由于通信雙方都設(shè)有發(fā)送和接受緩沖區(qū),應(yīng)用程序把將發(fā)送的數(shù)據(jù)字節(jié)提交到發(fā)送緩沖區(qū),TCP協(xié)議控制發(fā)送過程
  3. 接受到數(shù)據(jù)后,存放到接受緩沖區(qū),由高層應(yīng)用程序從緩沖區(qū)讀取數(shù)據(jù)

4. 支持同時(shí)建立多個(gè)并發(fā)的TCP連接

支持一個(gè)服務(wù)器與多個(gè)客戶端,也支持一個(gè)客戶端與多個(gè)服務(wù)端

5. 支持可靠的傳輸服務(wù)

提供確認(rèn)重傳,擁塞控制功能

2.TCP協(xié)議報(bào)文格式

TCP報(bào)頭長(zhǎng)度為20~60字節(jié),其中基本長(zhǎng)度為20字節(jié),選項(xiàng)部分長(zhǎng)度可變?yōu)?0字節(jié)

端口號(hào)

包括源端口號(hào)和目的端口號(hào)

序號(hào)

TCP是面向字節(jié)流的,它要為字節(jié)流中的每一個(gè)字節(jié)按順序編號(hào)當(dāng)TCP連接建立時(shí),雙方需要各自產(chǎn)生初始序號(hào),然后為字節(jié)順序編號(hào)。
例如一個(gè)TCP連接需要發(fā)送4500個(gè)字節(jié),初始序號(hào)為10000,分為5個(gè)報(bào)文段發(fā)送,則:
第一個(gè)報(bào)文段的字節(jié)序號(hào)范圍:10000~10999
第一個(gè)報(bào)文段的字節(jié)序號(hào)范圍:11000~11999
第一個(gè)報(bào)文段的字節(jié)序號(hào)范圍:12000~12999
第一個(gè)報(bào)文段的字節(jié)序號(hào)范圍:13000~13999
第一個(gè)報(bào)文段的字節(jié)序號(hào)范圍:14000~14499

確認(rèn)號(hào)

表示一個(gè)進(jìn)程已經(jīng)正確接受序號(hào)為N的字節(jié),要求發(fā)送端發(fā)送序號(hào)為N+1的字節(jié)

報(bào)頭長(zhǎng)度

報(bào)頭長(zhǎng)度在20~60字節(jié)

保留

字段長(zhǎng)度為6位

控制

控制字段定義了6種不同的控制位,同一時(shí)間可以設(shè)置1位或多位,控制字段用于TCP的建立連接和終止、流量控制,以及數(shù)據(jù)傳送過程
1. URG(緊急位)
表示該報(bào)文段優(yōu)先級(jí)高,盡快發(fā)送
2. ACK(確認(rèn)位)
TCP連接確定后的所有報(bào)文的ACK都要為1
3. PSH(推送位)
當(dāng)兩個(gè)進(jìn)程交互式通信時(shí),一端應(yīng)用進(jìn)程希望輸入一個(gè)命令后,能夠立即得到對(duì)方的響應(yīng),則PSH置為1
4. RST(復(fù)位位)
復(fù)位位為1,有兩種含義:一是因主機(jī)崩潰等原因造成TCP連接出錯(cuò),需要立即釋放連接,然后重建連接;二是拒絕一個(gè)非法TCP報(bào)文或拒絕釋放一個(gè)連接
5. SYN(同步位)
用于在建立連接時(shí)同步序號(hào)。例如,當(dāng)SYN=1,ACK=0,表示這是一個(gè)連接建立請(qǐng)求報(bào)文,同一建立連接的響應(yīng)報(bào)文為SYN=1,ACK=1
6. FIN(終止位)
FIN=1表示請(qǐng)求釋放TCP連接

窗口大小

窗口大小用于接收端通知發(fā)送端,下次最多可以發(fā)送多少字節(jié)數(shù)的報(bào)文

校檢和

計(jì)算校檢和和UDP相同,只是UDP校檢和是可選的,TCP是必須的

最大段長(zhǎng)度(MSS)

表示TCP報(bào)文數(shù)據(jù)部分的最大長(zhǎng)度,默認(rèn)為536字節(jié),它的大小可以直接影響發(fā)送和接受緩沖區(qū)設(shè)置的大小和使用效率

3. TCP連接的建立(三次握手)和釋放(四次握手)

TCP協(xié)議的工作分為三個(gè)階段:連接建立,報(bào)文傳輸,連接釋放

1. TCP連接建立

TCP連接建立需要經(jīng)過三次握手

關(guān)于為什么要三次握手,這涉及到一個(gè)著名的兩軍問題


第一次:A軍派人穿過紅軍告訴B軍要發(fā)動(dòng)總攻
第二次:B軍派此人再次穿過紅軍A軍,告知A軍,B軍已收到(此時(shí)A確定了B已經(jīng)收到,但是B不確定送信的人回去時(shí)有沒有被紅軍俘獲,所以需要第三次)
第三次:A再次派該人穿過紅軍,告知B軍,我已經(jīng)收到了你的確認(rèn)

(seq為隨機(jī)生成的序號(hào),ack為確認(rèn)號(hào))
記住不要弄混ACK和ack,ACK是標(biāo)志位,ack是確認(rèn)序號(hào)

SYN=1:連接建立請(qǐng)求報(bào)文
SYN=1+ACK=1:連接建立請(qǐng)求確認(rèn)報(bào)文
ACK=1:連接建立請(qǐng)求確認(rèn)報(bào)文

三次握手:
1. 客戶端開始為CLOSE狀態(tài),發(fā)送SYN=1,報(bào)文序號(hào)seq=x至服務(wù)端,此時(shí)客戶端進(jìn)入SYN-SEND狀態(tài)
2. 服務(wù)端開始為L(zhǎng)ISTEN狀態(tài),表示正在監(jiān)聽連接,服務(wù)端接受到SYN,于是發(fā)送SYN+ACK的報(bào)文,報(bào)文序號(hào)seq=y,ack為x+1,表示我已經(jīng)接受到客戶端的序號(hào)x的報(bào)文了,下次客戶端要給我發(fā)送序號(hào)x+1的報(bào)文,此時(shí)進(jìn)入SYN-RCVD狀態(tài)
3. 客戶端接收到SYN+ACK后,發(fā)送ACK,seq=x+1(因?yàn)榈?步中服務(wù)端ack=x+1,表示要客戶端下次要發(fā)送x+1的報(bào)文給我),ack=y+1,此時(shí)雙方進(jìn)入到ESTABLISHED狀態(tài),連接成功

2.TCP連接釋放

FIN-WAIT-1:表示等待對(duì)方的FIN報(bào)文
FIN-WAIT-2:也是表示等待對(duì)方的FIN報(bào)文,此時(shí)是進(jìn)入到了半關(guān)閉狀態(tài)
TIME-WAIT:表示收到了對(duì)方的FIN報(bào)文,并發(fā)送出了ACK報(bào)文,就等2MSL后即可回到CLOSED可用狀態(tài)了,如果FIN_WAIT_1狀態(tài)下,收到了對(duì)方同時(shí)帶 FIN標(biāo)志和ACK標(biāo)志的報(bào)文時(shí),可以直接進(jìn)入到TIME_WAIT狀態(tài),而無須經(jīng)過FIN_WAIT_2狀態(tài)。

CLOSING: 這種狀態(tài)比較特殊,實(shí)際情況中應(yīng)該是很少見,屬于一種比較罕見的例外狀態(tài)。正常情況下,當(dāng)你發(fā)送FIN報(bào)文后,按理來說是應(yīng)該先收到(或同時(shí)收到)對(duì)方的 ACK報(bào)文,再收到對(duì)方的FIN報(bào)文。但是CLOSING狀態(tài)表示你發(fā)送FIN報(bào)文后,并沒有收到對(duì)方的ACK報(bào)文,反而卻也收到了對(duì)方的FIN報(bào)文。什 么情況下會(huì)出現(xiàn)此種情況呢?其實(shí)細(xì)想一下,也不難得出結(jié)論:那就是如果雙方幾乎在同時(shí)close一個(gè)SOCKET的話,那么就出現(xiàn)了雙方同時(shí)發(fā)送FIN報(bào) 文的情況,也即會(huì)出現(xiàn)CLOSING狀態(tài),表示雙方都正在關(guān)閉SOCKET連接。
CLOSE_WAIT: 這種狀態(tài)的含義其實(shí)是表示在等待關(guān)閉。怎么理解呢?當(dāng)對(duì)方close一個(gè)SOCKET后發(fā)送FIN報(bào)文給自己,你系統(tǒng)毫無疑問地會(huì)回應(yīng)一個(gè)ACK報(bào)文給對(duì) 方,此時(shí)則進(jìn)入到CLOSE_WAIT狀態(tài)。接下來呢,實(shí)際上你真正需要考慮的事情是察看你是否還有數(shù)據(jù)發(fā)送給對(duì)方,如果沒有的話,那么你也就可以 close這個(gè)SOCKET,發(fā)送FIN報(bào)文給對(duì)方,也即關(guān)閉連接。所以你在CLOSE_WAIT狀態(tài)下,需要完成的事情是等待你去關(guān)閉連接。
LAST_ACK: 這個(gè)狀態(tài)還是比較容易好理解的,它是被動(dòng)關(guān)閉一方在發(fā)送FIN報(bào)文后,最后等待對(duì)方的ACK報(bào)文。當(dāng)收到ACK報(bào)文后,也即可以進(jìn)入到CLOSED可用狀態(tài)了。
CLOSE:表示已關(guān)閉連接

TCP連接釋放需要四次握手
1. 客戶機(jī)發(fā)送”連接釋放請(qǐng)求報(bào)文“,提出連接釋放請(qǐng)求
2. 服務(wù)器收到”連接釋放請(qǐng)求報(bào)文“后,發(fā)送”連接釋放請(qǐng)求確認(rèn)報(bào)文“,服務(wù)器進(jìn)程向高層應(yīng)用進(jìn)程通知客戶請(qǐng)求釋放TCP連接,此時(shí)客戶機(jī)到服務(wù)器的TCP連接釋放,但是服務(wù)器到客戶機(jī)的TCP連接未斷開,此時(shí)如果服務(wù)器還有數(shù)據(jù)需要發(fā)送時(shí)可以繼續(xù)發(fā)送。這種狀態(tài)為”半關(guān)閉“狀態(tài)
3. 服務(wù)器沒有數(shù)據(jù)要發(fā)送后,服務(wù)器向客戶發(fā)送”連接釋放請(qǐng)求報(bào)文“。提出連接釋放請(qǐng)求
4. 客戶機(jī)收到”連接釋放請(qǐng)求報(bào)文“后,發(fā)送”連接釋放請(qǐng)求確認(rèn)報(bào)文“,此時(shí)TCP連接完全釋放

3. TCP中的計(jì)時(shí)器

1. 保持計(jì)時(shí)器

  • 用于防止TCP連接處于長(zhǎng)時(shí)間空閑,如果發(fā)送10個(gè)探測(cè)報(bào)文(每一個(gè)間隔75s)還沒有響應(yīng),則假設(shè)客戶端故障,終止連接

2. 時(shí)間等待計(jì)時(shí)器

  • 用于保證TCP連接釋放過程正常進(jìn)行
    跟為什么要等待2MSL時(shí)間,再進(jìn)入CLOSE狀態(tài)有關(guān)

3. 重傳計(jì)時(shí)器

  • 用于控制報(bào)文確認(rèn)和等待重傳的時(shí)間。
  • 當(dāng)發(fā)送端TCP發(fā)送一個(gè)報(bào)文時(shí),首先將一個(gè)報(bào)文的副本放入重傳隊(duì)列,然后啟動(dòng)重傳計(jì)時(shí)器,重傳計(jì)時(shí)器設(shè)定一個(gè)值,例如400ms,然后開始倒計(jì)時(shí);如果倒計(jì)時(shí)結(jié)束,還沒有收到ACK,發(fā)送端重傳該報(bào)文
  • 重傳也有次數(shù),默認(rèn)5次

4. 堅(jiān)持計(jì)時(shí)器

  • 為什么出現(xiàn)這個(gè)計(jì)時(shí)器?
    執(zhí)行滑動(dòng)窗口控制過程中,要求發(fā)送端接受到“零窗口通知”就停止發(fā)送,會(huì)持續(xù)到 接受端發(fā)送 “非零窗口通知”。如果這個(gè)”非零窗口通知“丟失了,這樣發(fā)送端就會(huì)永遠(yuǎn)的等待接收端的”非零窗口通知”,會(huì)進(jìn)入死鎖狀態(tài)。
  • 用于解決什么問題?
    用于防止非零窗口通知丟失,造成死鎖現(xiàn)象。
  • 工作流程?
    當(dāng)發(fā)送端的TCP接受到一個(gè)零窗口通知時(shí),啟動(dòng)堅(jiān)持計(jì)時(shí)器;當(dāng)堅(jiān)持計(jì)時(shí)器時(shí)間到,發(fā)送端的TCP發(fā)送一個(gè)零窗口探測(cè)報(bào)文給接收端,作用是提示接收端”非零窗口通知”丟失,必須要重傳

四、TCP協(xié)議滑動(dòng)窗口

2. 滑動(dòng)窗口和確認(rèn)、重傳機(jī)制

差錯(cuò)控制

TCP協(xié)議通過滑動(dòng)窗口機(jī)制來跟蹤和記錄發(fā)送字節(jié)的狀態(tài),實(shí)現(xiàn)差錯(cuò)控制功能
滑動(dòng)窗口大?。航邮斩送ㄖl(fā)送端,下次最多可以發(fā)送多少字節(jié)數(shù)的報(bào)文

TCP使用兩個(gè)緩存和兩個(gè)個(gè)窗口來控制字節(jié)流的傳輸

  1. 發(fā)送端TCP有一個(gè)緩存,用來存儲(chǔ)應(yīng)用進(jìn)程準(zhǔn)備發(fā)送的數(shù)據(jù),發(fā)送端對(duì)這個(gè)緩存設(shè)置一個(gè)發(fā)送窗口,只要窗口值不為0就可以發(fā)送報(bào)文段
  2. 接受端TCP有一個(gè)緩存,用于接受字節(jié)流,等待應(yīng)用進(jìn)程讀取,接收端設(shè)置一個(gè)接受窗口,窗口只大小等于接受緩存可以接受多少字節(jié)流的大小

注意:
1. 發(fā)送窗口 不能大于 接受窗口,也就是說,發(fā)送窗口的值是根據(jù)接受窗口的值來確定的
2. 當(dāng)接受緩沖區(qū)滿了時(shí),接受窗口為0,此時(shí)會(huì)發(fā)送一個(gè)“零窗口通知”給發(fā)送端,這是發(fā)送端會(huì)停止發(fā)送(跟堅(jiān)持計(jì)時(shí)器有關(guān))

窗口滑動(dòng)流程:
1. 差錯(cuò)控制和傳輸?shù)淖止?jié)流狀態(tài)分類

對(duì)字節(jié)流狀態(tài)的跟蹤,可以對(duì)正確傳輸?shù)淖止?jié)流進(jìn)行確認(rèn),從而達(dá)到利用滑動(dòng)窗口協(xié)議控制差錯(cuò)的目的

2. 發(fā)送窗口和可用窗口


發(fā)送窗口:發(fā)送端每一次發(fā)送過程中能夠連續(xù)發(fā)送的字節(jié)數(shù)取決于發(fā)送窗口的大小,長(zhǎng)度等于第2、3類字節(jié)數(shù)之和
可用窗口:表示發(fā)送端隨時(shí)可以發(fā)送的字節(jié)數(shù),長(zhǎng)度為第3類字節(jié)數(shù)

3. 發(fā)送完畢后的窗口變化

4. 處理確認(rèn)并滑動(dòng)窗口


處理完上面的報(bào)文后,窗口向左滑動(dòng),準(zhǔn)備發(fā)送下一報(bào)文段

選擇重傳

選擇重傳和數(shù)據(jù)鏈路層的相同,有拉回方式和選擇重傳方式

2. 滑動(dòng)窗口和流量控制、擁塞控制

流量控制

作用:流量控制的目的是為了控制發(fā)送端的發(fā)送速率,使之不超過接收端的接受速率,防止接收端來不及處理而導(dǎo)致報(bào)文段丟失

流量控制是點(diǎn)-點(diǎn)鏈路的通信量的局部控制

流量控制流程:


(tips:通知窗口值=0表示接收緩沖區(qū)已滿,發(fā)送端暫停發(fā)送;理解此圖要記住發(fā)送端發(fā)送的數(shù)據(jù),首先發(fā)送到接收端緩沖區(qū),再由應(yīng)用程序讀?。?/p>

擁塞控制

作用:擁塞控制用于防止過多的報(bào)文進(jìn)入網(wǎng)絡(luò),而造成路由器與鏈路過載。

擁塞控制是網(wǎng)絡(luò)報(bào)文總量的全局控制

當(dāng)擁塞發(fā)生時(shí)的條件:
對(duì)網(wǎng)絡(luò)資源需求 > 網(wǎng)絡(luò)可用資源

擁塞窗口
擁塞窗口:發(fā)送端根據(jù)擁塞情況確定的窗口值,是TCP實(shí)現(xiàn)擁塞控制最基本的手段,發(fā)送端在確定擁塞窗口大小時(shí),可以采用慢開始算法(從小到達(dá)逐步增加擁塞窗口)擁塞避免算法

發(fā)送窗口,通知窗口(接收端的窗口),擁塞窗口
發(fā)送窗口的確定,應(yīng)該是通知窗口和擁塞窗口的較小值

慢開始算法和擁塞避免算法的思想

只要發(fā)現(xiàn)網(wǎng)絡(luò)上沒有出現(xiàn)擁塞,就增大擁塞窗口;當(dāng)出現(xiàn)擁塞,就減小窗口值,問題是如何確定擁塞?

怎么樣為擁塞

什么是一次往返:發(fā)送端發(fā)送報(bào)文給接收端,接收端在規(guī)定時(shí)間內(nèi)返回了確認(rèn)報(bào)文。

如果一次往返異常(沒有接受到接收端的確認(rèn)報(bào)文),說明出現(xiàn)擁塞

慢開始算法

以二進(jìn)制指數(shù)增長(zhǎng)

第一次往返:擁塞窗口設(shè)為2,然后發(fā)送2個(gè)最大報(bào)文段
第二個(gè)往返:擁塞窗口設(shè)為4
第三次往返:擁塞窗口設(shè)為8
第四次往返:擁塞窗口設(shè)為16
………….

擁塞避免算法

一次往返,擁塞窗口+1

TCP如何擁塞控制?

設(shè)置一個(gè)閥值(慢開始閥值)k,當(dāng)前擁塞窗口為cwnd
- 當(dāng)cwnd < k時(shí),使用慢開始算法
- 當(dāng)swnd > k時(shí),使用擁塞避免算法
- 當(dāng)cwnd = k時(shí),都可以使用

假設(shè)出現(xiàn)異常時(shí),會(huì)出現(xiàn)什么樣的變化?
- 擁塞窗口置為1
- 閥值置為原來的1/2,即k/2

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
「計(jì)算機(jī)網(wǎng)絡(luò)」第五章:傳輸層
TCP/IP(五)傳輸層之細(xì)說TCP的三次握手和四次揮手
計(jì)算機(jī)網(wǎng)絡(luò)學(xué)習(xí)筆記
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服