第十三章:運輸層簡介

1:進程通信

1:運輸層提供進程到進程的通信,進程通過Ip+端口號標識自己,端口號16位,取值0~65535之間

2:0~1023爲熟知端口號,1024~49151爲註冊端口號,49152~65535爲動態端口號

3:源點運輸層執行複用,將不同進程數據放入運輸層,終點運輸層執行分用,將運輸層數據交付到不同進程

4:數據的推送和拉取:

(1):推送是生產者數據一生產就發送出去,不需要消費者請求,推送需要反向流量控制,讓消費者告訴生產者放慢發送速度

(2):拉取是消費者主動請求生產者發送數據,拉取不需要流量控制

 

2:流量控制

1:發送方應用層產生數據,報文被推送至運輸層,這裏需要運輸層進行反向流量控制,發送方運輸層分組被推送到接收方運輸層,這裏接收方運輸層同樣要進行流量控制,最後,接收方應用層從接收方運輸層拉取數據

2:在發送方運輸層和接收方運輸層都設置一個緩存,當發送方緩存滿時,通知應用層停止發送數據,當接收方運輸層緩存滿時,通知發送方運輸層停止發送數據

 

3:差錯控制

1:同流量控制一樣,接收方反向進行差錯控制

2:採用給分組加序號方式實現差錯控制,接收方通過確認號(ACK)通知發送方正確收到了一個分組,發送方通過使用計時器設置發送分組後的倒計時,如果超時還沒有收到ACK則重發分組

 

4:流量控制和差錯控制的組合

流量控制需要設置緩存,差錯控制需要設置序號和確認號,一種巧妙的實現方法是將緩存分成小格子並編號,編號便成爲序號和確認號的基礎,滑動窗口便由此實現,書上的圖很詳細

 

5:擁塞控制

1:擁塞的原因是路由器和交換機上的隊列溢出

2:擁塞控制分爲擁塞發生之前的預防措施:開環擁塞控制,擁塞發生後的消除措施:閉環擁塞控制

3:開環擁塞控制:可由源點也可有終點來處理

(1):重傳策略:重傳是不可避免的,一般來講重傳會加重擁塞,但好的重傳策略能夠預防擁塞

(2):窗口策略:

(3):確認策略:

4:閉環擁塞控制:運輸層發送窗口會在產生擁塞時減小,在擁塞消除時變大,這種動態調節有利於消除擁塞

 

6:無連接和麪向連接的服務

1:網絡層的無連接和麪向連接

網絡層的無連接是指多個數據報經過不同的路由到達目的主機,面向連接指先建立一條確定的鏈路,然後傳輸數據

2:傳輸層的無連接和麪向連接

1:傳輸層是端到端,它不關心網絡層是無連接還是面向連接

2:傳輸層無連接時沒有流量控制,差錯控制,擁塞控制,有連接時有這些控制

3:傳輸層無連接數據可能會失序,錯誤,丟失

 

7:基本概念:帶寬,時延,時延帶寬積

1:帶寬

1: 帶寬是數據率不規範的叫法

2:帶寬的單位是b/s,kb/s,Mb/s,Gb/s,Tb/s;相同的寫法是bps,mps;b是二進制的意思,計算機數據的B是8個二進制位,和這裏不同,並且進位是1000而不是1024

3:帶寬表示每秒發送多少個二進制位,如果只發送一個二進制位,1b/s和1m/s帶寬此位會同時到達目的主機,帶寬是表示數字信號在時間軸上的寬度,帶寬越大,寬度越窄,能容納的數據也就越多

4;帶寬也就是吞吐量

2:時延

1:時延包括髮送時延,傳播時延,處理時延,其中傳播時延基本相同

2:發送時延=數據塊長度(二進制位)/帶寬

3:提高帶寬只是提高了發送時延,很難提高傳播時延(也就是光速)

3:時延帶寬積

1:時延帶寬積=傳播時延*帶寬

2:時延帶寬積表示整條管道能容納多少數據,可用於計算管道利用率

 

8:停止等待協議

1:此協議面向連接,能提供流量控制和差錯控制,差錯控制要求發送方在沒有收到ACK時應該保存發送出去的副本

2:此協議使用大小爲1的滑動窗口

3:發送方使用序號表示當前發送出去的分組,接收方用確認號表示想要收到的下一個分組,對於停止等待協議,由於滑動窗口大小爲1,則序號和確認號爲1,0,1,0,1,0...

4:對於發送方:發送方發送一個分組,加上檢驗和和序號A,並啓動一個計時器:

(1):收到確認ACK,檢驗和錯誤,丟棄

(2):收到ACK,確認號!=A+1,丟棄

(3):收到ACK,確認號==A+1,發送序號爲A+1的分組

(4);超時,重發序號A的分組

5:對於接收方:

(1):收到分組校驗和錯誤,丟棄

(2):序號不是自己想要的分組,分組丟棄,發送ACK=A

(2):收到A,發送確認號爲A+1的ACK

6:停止等待協議管道利用率很低

7:以下兩種採用流水線方式進行傳輸,效率更高,流水線方式就是前一個任務還沒完成就開始下一個任務

 

9:返回N協議

1:該協議序號必須是2的m次方,發送窗口大小2的m次方-1,接收窗口1

2:發送方發送窗口大小個分組並等待確認,並設置一個計時器,也就是第一個發送出去的分組的計時,因爲它會最先超時,如果超時,發送方重發所有未被確認的分組,每收到一個確認,滑動窗口會滑動到確認處

3:此協議ACK的確認號是累計的,表示確認號之前的分組已經完全收到

5:此協議的特點是如果超時,發送方之前發送的所有分組都會重傳,這也是"返回N"的由來

6:此協議詳情參見書上,對於發送窗口的大小設置有詳細的解釋

 

10:選擇重傳協議

1:發送窗口和接受窗口一樣大,最大2的(m-1)次方

2:確認號A只表示接收方正確收到序號爲A的分組

3:發送方只使用一個計時器,當計時器超時,重傳所有未收到確認號的分組

4:具體流程圖參見書上,由於此協議是實際TCP實現,下面簡單介紹下,一些我已經知道的就不說明了

5:發送方:

(1):應用層給運輸層傳遞來的數據,如果滑動窗口還有空位,則放到滑動窗口中,發送此數據,如果計時器沒計時,則啓動計時器

(2):收到正確的ACK,則標記,並檢查窗口是否能向前滑動,如果還有等待ACK的分組,則重置計時器,沒有則關閉計時器

(3):計時器超時,重發所有等待ACK的分組,重置計時器

6:接收方:

(1):收到一個在滑動窗口的分組,發送ACK,並檢查窗口能否滑動,如果能滑動則提交數據給應用層(這裏我的理解和書上有點出入,我認爲應該是應用層主動拉取數據,導致滑動窗口滑動),

(2):收到一個在滑動窗口之前的分組,發送此分組的ACK,這種特殊做法的目的是幫助發送方滑動它的窗口

 

11:雙向協議:捎帶

前面討論的情況都是單向的,但實際情況是雙向通信,這就能夠使用捎帶,A向B發送數據的同時捎帶A想發送給B的確認號

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章