:::

[圖資] 網際網路概論94第二學期期末考 第八章 流量控制重點整理

6月 10, 2006 1 Comments Edit Post

考試範圍:

  • 第八章:8.1、8.2(X-ON / X-OFF)、8.3、8.4(GO-BACK-n: SLIDING WINDOW)、8.5(8.4、8.5都很重要喔)
  • 第九章:9.1、9.2(很重要喔)、9.3、9.4(到100BaseTX)
  • 第十章:10.1(後半部,講Layer 1 2 3)、10.2、10.3(到透明式橋接器)、10.7(階層式繞送到路徑資訊協定)
  • 第十一章:11.1、11.2(到DNS)

第八章 流量控制

在電腦網路的世界裡面,傳送訊息必須要有「開始」、「停止」等控制用的訊號,才知道電腦何時可以傳輸檔案、何時要停止傳輸檔案。本章8.2介紹字元導向(僅以bit傳送控制訊號)的簡單控制訊號X-ON/X-OFF,僅用於簡單的小範圍資料控制;8.3的頁框導向更適合應用於網路環境,無限制協定(Unrestricted Protocol)與停止並等待協定(Stop-and-Wait Protocol)是一切應用的基本;而8.4的Go-Back-n(回到n協定)與8.5的Selective Repeat(選擇性重複)傳輸則是更進階的兩種應用。在學習Go-Back-n或是Selective Repeat時,除了他們傳送方式需要記住之外,要特別注意錯誤的處理方式。

8.2 控制訊號 Singaling

用訊號來控制傳輸的方式有分成軟體與硬體:

1. 硬體:DTE(電腦)-DCE(數據機)流量控制

在EIA-232介面當中,用來告知電腦傳送或是接收準備就緒的狀態。這是使用特定的兩條線DTR與DSR來操作的。

2. 軟體:X-ON/X-OFF

軟體的操作則是將控制訊號夾雜在傳送的資料裡面,稱為in-band signaling。

ASCII中定義了兩個特殊的控制字元作為流量控制:DC3→X-OFF、DC1→X-ON

「接收端必須提早傳送X-OFF」:因為網路傳輸之間有時間差,接收端如果等到緩衝區(儲存資料的地方)已經達到極限才送出X-OFF,這麼等X-OFF到達發送端的這段時間內,接收端收到的資料會遺失。接收端在緩衝區達到「臨界點」時傳送X-OFF。

用途:(因為作業有寫過,老師應該不會考)

  1. 程式凍結:包含X-OFF的程式,會導致螢幕被鎖住
  2. 螢幕凍結:用X-ON與X-OFF控制超出螢幕大小的資料,以方便瀏覽。

8.3 頁框導向控制

網路中的協定是以頁框傳送的,因此所謂的頁框導向,就是將控制訊號包含在頁框當中傳送。相對於頁框導向,字元導向就是以字元(byte)表示的控制訊號。

無限制協定 Unrestricted Protocol

假定接收者可以不斷地接收資料,這可能是因為

  • 緩衝區(Buffer)無限大
  • Buffer的資料很快就能處理掉,不會累積

無限制協定的優缺點:

  • 優點:簡單=快速
  • 缺點:無法檢查錯誤

通常用於等速傳輸,也就是影音資料即時傳送。

停止並等待協定 Stop-and-Wait Protocol

步驟:

  1. 送方:送出封包
  2. 收方:檢查收到的封包
  3. 收方:回送確認訊號(acknowledgment)
  4. 送方:收到確認訊號
  5. 送方:送出下一個訊號

優點:能檢查錯誤

缺點:

  • 如果回送的確認訊號遺失或損壞,導致送方收不到確認訊號,就不會送下一個資料
  • 等待的時間效益差

兩種協定的效率計算

簡單來說,無限制協定比較快,停止並等待協定比較慢

8.4、8.5 滑動窗戶協定:Go-Back-n、Selective Repeat(選擇性重複)

滑動窗戶協定是現今網路傳輸的主流模式,特色是在於他的「窗戶(window)」。滑動窗戶協定將送方的資料分成三種類型:

  • 窗戶之上:已經傳送、且收到確認訊號
  • 窗戶之中:已經傳送、未收到確認訊號。在特定條件下,窗戶中的資料會重送
  • 窗戶之下:未傳送的資料

滑動(Sliding):當窗戶中的頁框收到確認之後,便將該頁框移到窗戶之上,再將窗戶之下的頁框移入窗戶之中。因此感覺就像是窗戶不斷地向下移動。

窗戶的大小:

  • 窗戶大小無限制→Unrestricted Protocol:全部資料都一口氣傳送
  • 窗戶大小為1個頁框→Stop-and-Wait Protocol:傳送一個、確認一個,再傳送下一個頁框
  • 居於以上兩種之間的,便是接下來要討論的Go-Back-n與Selective Repeat

頁框格式:

  1. 來源位址
  2. 目的位置
  3. 頁框編號:從0開始,Go-Back-n的上限為2k-1,Selective Repeat為2k-1
    • k的意思是頁框編號的長度,k=3 → _ _ _
    • 在滑動窗戶協定之下,頁框編號是用循環的方式處理,例如編號假如為0~7,那麼頁框依順序編號則為0 1 2 3...6 7 0 1 2...
    • 超過上限的頁框編號方式,在頁框傳送發生錯誤的情況下會造成誤判。
  4. ACK (acknowledged縮寫):piggybacking(肩負式)確認訊號
    • 肩負式:收方將確認訊號夾雜在給送方的頁框當中以節省空間
  5. 頁框類型:「資料(data)」、「確認訊號(ACK)」或是「錯誤確認訊號(NAK, negative acknowledgment,老師翻成"反確認")」
    • 錯誤確認訊號:當某一頁框毀損或遺失時,便送出該頁框編號的NAK
  6. 資料
  7. CRC:循環檢查碼,偵錯技術

Go-Back-n特色

  1. 頁框編號在於0~2k-1之間:在滑動窗戶協定之下,頁框編號是用循環的方式處理,例如編號假如為0~7,那麼頁框依順序編號則為0 1 2 3...6 7 0 1 2...。
    • 為什麼最多為2k-1?請參考課本365頁的圖,因為在2k的情況下發生錯誤,會造成誤判。Selective Repeat也可以用同樣的方法,得知上限為2k-1
  2. 接收方必須按照順序接收資料,如果跳脫順序(收到非預期的頁框編號),則捨棄該收到的頁框,並針對預期的頁框發出NAK,表示頁框接收順序錯誤,必須從預期頁框開始重送。
  3. 同上,頁框損毀的情況也是
  4. 跳躍式的發送確認訊號:收方確定(使用CRC)一群頁框是完整之後,則只要傳送收到的最後一個頁框的ACK即可。因為Go-Back-n的處理是照順序,所以最後一個頁框沒問題的話,就表示前面的也是沒問題的。
  5. 採用肩負式確認
  6. 未決頁框(outstanding frame)會在緩衝區內
  7. 倒數計時器:送方的頁框中會夾帶倒數計時器,過期的頁框則需要重送,以避免無止盡的等待。
    • Go-Back-n因為是照順序的,所以窗戶內第一個過時的頁框必定是最上面的頁框,如果第一個頁框錯誤,則以下的頁框便得全部重送
  8. 總結以上,所謂的Go-Back-n,是指「發生錯誤,則回到第n個頁框,重新送出」
  9. Go-Back-n適合在不容易發生傳輸錯誤的網路中使用,如果傳輸錯誤比例提高,則效率會大打折扣

Selective Repeat:

  1. 與Go-Back-n最大差別的地方,在於Selective Repeat可以不按照順序接收資料。因此他與Go-Back-n的相異處都是以此為出發點的。
  2. 收方窗戶(緩衝區):收方的窗戶,將接收到的頁框分成三種:
    已確認可處理
    窗戶:預期收到的頁框 (可以不用按照順序)
    尚未準備接收的頁框 (未出世的)
    1. 窗戶內的頁框可不按照順序接收
    2. 窗戶滑動條件:確認完一個頁框,且該頁框之前的頁框都已經確認完畢的話,則連該頁框之前的所有頁框都移到窗戶之上,而窗戶整個向下移動
  3. 等待之前的頁框湊齊才將整批頁框確認成可處理。處理是指該頁框已經離開緩衝區,可讓使用者進行操作。
  4. 保持順序:每當收到不照順序的頁框,則針對預期的頁框送出NAK,盡可能讓收到的頁框能夠保持順序
  5. 倒數計時器:只重送單一逾時頁框,與Go-Back逾時就要整批重送的方式不同
  6. 確認訊號只送出確認可處理的整批開頭的頁框:
    • 因為Selective Repeat不按照順序,如果只是對最近收到的頁框作ACK,則在該頁框之前的未收到頁框便會造成混亂。
    • 這種方法比收到一個頁框就ACK一個更有效率
  7. 窗戶大小限制:2k-1,是Go-Back-n的一半
    • 窗戶限制的推導方法前面有敘述

隨意地寫,隨意地看吧。

總共1 則留言, (我要發問)

留言工具: