推免複習之計算機網絡 (5) 第五章 運輸層

1.運輸層協議和網絡層協議之間的主要區別

  • IP協議提供主機之間的邏輯通信
  • TCP協議和UDP協議提供進程之間的邏輯通信

2.運輸層的主要功能

  • 運輸層爲應用進程之間提供端到端的邏輯通信
  • 運輸層還要對收到的報文進行差錯檢測

3.運輸層的兩個協議

  • TCP協議(Transmission Control Protocol)又稱傳輸控制協議,面向連接,相當於全雙工的可靠信道,HTML採用TCP協議傳輸
  • UDP協議(User Datagram Protocol)又稱用戶數字報協議,無連接,是不可靠信道,音視頻傳輸採用UDP協議

4. 端口

  • 端口用一個 16 位端口號進行標誌
  • 端口號只具有本地意義,即端口號只是爲了標誌本計算機應用層中的各進程。在因特網中不同計算機的相同端口號是沒有聯繫的。

5.三類端口

  • 熟知端口,數值一般爲 0~1023
  • 登記端口號,數值爲1024~49151,爲沒有熟知端口號的應用程序使用的。使用這個範圍的端口號必須在 IANA 登記,以防止重複。
  • 客戶端口號或短暫端口號,數值爲49152~65535,留給客戶進程選擇暫時使用。當服務器進程收到客戶進程的報文時,就知道了客戶進程所使用的動態端口號。通信結束後,這個端口號可供其他客戶進程以後使用。

應用程序

FTP

TELNET

SMTP

DNS

TFTP

HTTP

SNMP

SNMP

(trap)

熟知端口

21

23

25

53

69

80

161

162

6.UDP協議(user datagram protocol) 主要特點

  • UDP 是無連接的,即發送數據之前不需要建立連接
  • UDP 使用盡最大努力交付,即不保證可靠交付,同時也不使用擁塞控制
  • UDP 沒有擁塞控制,很適合實時應用的要求
  • UDP 支持一對一、一對多、多對一和多對多的交互通信
  • UDP 的首部開銷小,只有 8 個字節
  • UDP 是面向報文的,即保留這些報文的邊界

7.面向報文的UDP協議

  • 發送方 UDP 對應用程序交下來的報文,在添加首部後就向下交付 IP 層。UDP 對應用層交下來的報文,既不合並,也不拆分,而是保留這些報文的邊界。
  • 應用層交給 UDP 多長的報文,UDP 就照樣發送,即一次發送一個報文。
  • 接收方 UDP 對 IP 層交上來的 UDP 用戶數據報,在去除首部後就原封不動地交付上層的應用進程,一次交付一個完整的報文。
  • 應用程序必須選擇合適大小的報文 

 

8.UDP的首部格式

  • 首部有8個字節,共有四個字段,每個字段分別兩個字節,分別是源端口,目的端口,長度,檢驗和。
  • UDP的檢驗和只計算僞首部部分和UDP首部部分,按二進制反碼運算求和。

9. TCP協議的主要特點

  • TCP 是面向連接的運輸層協議。
  • 每一條 TCP 連接只能有兩個端點(endpoint),每一條 TCP 連接只能是點對點的(一對一)。
  • TCP 提供可靠交付的服務。
  • TCP 提供全雙工通信。
  • 面向字節流。 

10. TCP連接

  • TCP 把連接作爲最基本的抽象。
  • 每一條 TCP 連接有兩個端點。
  • TCP 連接的端點不是主機,不是主機的IP 地址,不是應用進程,也不是運輸層的協議端口。TCP 連接的端點叫做套接字(socket)。
  • 端口號拼接到(contatenated with) IP 地址即構成了套接字。  

11.套接字(socket)

  • 套接字 socket = (IP地址: 端口號)
  • TCP 連接 ::= {socket1, socket2}  = {(IP1: port1), (IP2: port2)}    

12.可靠傳輸之停止等待協議 (ARQ自動重傳請求)

  • 在發送完一個分組後,必須暫時保留已發送的分組的副本。
  • 分組和確認分組都必須進行編號。
  • 超時計時器的重傳時間應當比數據在分組傳輸的平均往返時間更長一些。
  • 缺點:信道利用率較低

13.連續ARQ協議(流水線傳輸)

14.回退N(Go back N)

  • 當某次傳輸中間的某個分組丟失時,會導致這個分組後面的分組也無法得到確認,因此這個分組到最後的所有分組都需要重新傳輸
  • 當通信線路質量不好時,容易造成負面影響

15.滑動窗口概念

  • 發送窗口
  • 接收窗口

16.發送窗口

  • 發送窗口的大小 WT 代表在還沒有收到對方確認信息的情況下發送端最多可以發送多少個數據幀
  • WT=尚未收到確認的幀+可以立即發送的幀

17. 接收窗口

  • 接收窗口代表了期望收到的數據幀的範圍 。
  • 若接收到的數據幀落在接收窗口之外,則一律將其丟棄。
  • 在連續 ARQ 協議中,接收窗口的大小 WR = 1。
  • 只有當收到的幀的序號與接收窗口一致時才能接收該幀。否則,就丟棄它。
  • 每收到一個序號正確的幀,接收窗口就向前(即向右方)滑動一個幀的位置。同時發送對該幀的確認。    

18. 滑動窗口的重要特性

  • 只有在接收窗口向前滑動時(與此同時也發送了確認),發送窗口才有可能向前滑動。
  • 收發兩端的窗口按照以上規律不斷地向前滑動,因此這種協議又稱爲滑動窗口協議。
  • 當發送窗口和接收窗口的大小都等於 1時,就是停止等待協議。 
  • 使用累計確認,即不必對收到的分組逐個發送確認,而是對按序到達的最後一個分組發送確認,這樣就表示:到這個分組爲止的所有分組都已正確收到了。

19. TCP報文的首部格式

20.發送緩存

  • 暫時存放發送應用程序傳送給發送方 TCP 準備發送的數據
  • 暫時存放TCP 已發送出但尚未收到確認的數據

21.接收緩存

  • 暫時存放按序到達的、但尚未被接收應用程序讀取的數據
  • 暫時存放不按序到達的數據 

22.加權平均往返時間

23.超時重傳時間RTO

24.選擇確認SACK(Selective ack)

  • 接收方收到了和前面的字節流不連續的兩個字節塊。
  • 如果這些字節的序號都在接收窗口之內,那麼接收方就先收下這些數據,但要把這些信息準確地告訴發送方,使發送方不要再重複發送這些已收到的數據。

25.持續計時器(目的:爲了及時開始重新傳輸)

  • TCP 爲每一個連接設有一個持續計時器。
  • 只要 TCP 連接的一方收到對方的零窗口通知,就啓動持續計時器。
  • 若持續計時器設置的時間到期,就發送一個零窗口探測報文段(僅攜帶 1 字節的數據),而對方就在確認這個探測報文段時給出了現在的窗口值。
  • 若窗口仍然是零,則收到這個報文段的一方就重新設置持續計時器。
  • 若窗口不是零,則死鎖的僵局就可以打破了。

26.幾種擁塞控制方法

  • 慢開始和擁塞避免
  • 快重傳和快恢復

27.慢開始算法原理

  • 在主機剛剛開始發送報文段時可先設置擁塞窗口 cwnd = 1,即設置爲一個最大報文段 MSS 的數值。
  • 在每收到一個對新的報文段的確認後,將擁塞窗口加 1,即增加一個 MSS 的數值。
  • 用這樣的方法逐步增大發送端的擁塞窗口 cwnd,可以使分組注入到網絡的速率更加合理。
  • 使用慢開始算法後,每經過一個傳輸輪次,擁塞窗口 cwnd 就加倍。
  • 一個傳輸輪次所經歷的時間其實就是往返時間 RTT。
  • “傳輸輪次”更加強調:把擁塞窗口 cwnd 所允許發送的報文段都連續發送出去,並收到了對已發送的最後一個字節的確認。

28. 設置慢開始門限狀態變量ssthresh

  • 慢開始門限 ssthresh 的用法如下:
  • 當 cwnd < ssthresh 時,使用慢開始算法。
  • 當 cwnd > ssthresh 時,停止使用慢開始算法而改用擁塞避免算法。
  • 當 cwnd = ssthresh 時,既可使用慢開始算法,也可使用擁塞避免算法。
  • 擁塞避免算法的思路是讓擁塞窗口 cwnd 緩慢地增大,即每經過一個往返時間 RTT 就把發送方的擁塞窗口 cwnd 加 1,而不是加倍,使擁塞窗口 cwnd 按線性規律緩慢增長。

29. 當網絡出現擁塞時

  • 無論在慢開始階段還是在擁塞避免階段,只要發送方判斷網絡出現擁塞(其根據就是沒有按時收到確認),就要把慢開始門限 ssthresh 設置爲出現擁塞時的發送方窗口值的一半(但不能小於2)。
  • 然後把擁塞窗口 cwnd 重新設置爲 1,執行慢開始算法。
  • 這樣做的目的就是要迅速減少主機發送到網絡中的分組數,使得發生擁塞的路由器有足夠時間把隊列中積壓的分組處理完畢。

 

30.快重傳算法

  • 快重傳算法首先要求接收方每收到一個失序的報文段後就立即發出重複確認。這樣做可以讓發送方及早知道有報文段沒有到達接收方。
  • 發送方只要一連收到三個重複確認就應當立即重傳對方尚未收到的報文段。
  • 不難看出,快重傳並非取消重傳計時器,而是在某些情況下可更早地重傳丟失的報文段。

 

31. 快恢復算法

  • 當發送端收到連續三個重複的確認時,就執行“乘法減小”算法,把慢開始門限 ssthresh 減半。但接下去不執行慢開始算法。
  • 由於發送方現在認爲網絡很可能沒有發生擁塞,因此現在不執行慢開始算法,即擁塞窗口 cwnd 現在不設置爲 1,而是設置爲慢開始門限 ssthresh 減半後的數值,然後開始執行擁塞避免算法(“加法增大”),使擁塞窗口緩慢地線性增大。

 

32.發送窗口的上限值

  • 發送方的發送窗口的上限值應當取爲接收方窗口 rwnd 和擁塞窗口 cwnd 這兩個變量中較小的一個
  • 當 rwnd < cwnd 時,是接收方的接收能力限制發送窗口的最大值
  • 當 cwnd < rwnd 時,則是網絡的擁塞限制發送窗口的最大值

33.隨機早期檢測RED(Random Early Detection)

  • RED將路由器的到達隊列分成三個部分

34. 運輸連接的三個階段

  • 連接建立
  • 數據傳送
  • 連接釋放

 35.客戶服務器方式

  • TCP 連接的建立都是採用客戶服務器方式。
  • 主動發起連接建立的應用進程叫做客戶(client)。
  • 被動等待連接建立的應用進程叫做服務器(server)。

36.三次握手建立連接

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