---
# System prepended metadata

title: 網際網路期末考

---

# 網際網路期末考

## TCP（Transmission Control Protocol）

### 功能
* Segmentation：資料區段分割
* Connection：連接導向的服務
* Reliability：可靠性的服務
    * Flow control：使送端與收端的傳輸速度㇐致
    * Congestion control：利用cwnd控制封包送到網路上的數量以達到最好效能（機制不同直接影響TCP傳輸效能）

### TCP Tahoe

#### Congestion control 機制
* SS：cwnd指數增長, if cwnd(t) < ssthresh
* CA：cwnd線性增長, if cwnd(t) >= ssthresh
* FR：
    * 收到3個重複ACK將重傳，不等timeout
    * ssthresh = cwnd / 2, cwnd = 1

#### 問題：FR將cwnd設為1導致傳輸效率下降

### TCP Reno

#### Congestion control 機制
* SS與CA機制與Tahoe相同
* FR'：
    * ssthresh = cwnd / 2, 不修改cwnd
    * 結束後進入FC
* FC：
    * cwnd = ssthresh + 3
    * 每收到一個重複ACK，cwnd += 1
    * 當收到一個重送封包的ACK，離開FC，進入CA，cwnd = ssthresh

#### 問題：FC接收到一個重送封包即進入CA，無法重送多個封包，導致後續的遺失封包需要等到timeout才能重送

### TCP NewReno

#### Congestion control 機制
* SS, CA, FR'機制與Reno相同
* FC'：
    * 只有收到所有重送封包的ACK後，才會離開FC，進入CA
    * 確保所有遺失封包都被重送完成，避免不必要的timeout等待

#### 問題：FC在一個RTT(Round Trip Time)內只能重送一個封包

### TCP SACK

#### Congestion control 機制
* SS, CA, FR'機制與NewReno相同
* FC''：
    * 新增SACK選項可在一個RTT內重送多個封包
    * 接收端可以告知發送端哪些封包已經收到
    * 發送端可以更精確地知道哪些封包需要重送

#### 問題：上述都是基於cwnd探測可用頻寬，無法及時反應流量變化，且使得網路遭遇週期性的擁塞

### TCP Vegas

#### Congestion control 機制

* 基於Round Trip Time(RTT)機制來預測和避免擁塞發生
    * 透過測量實際傳送率與預期傳送率的差異來調整行為
    * 使用BaseRTT（所有測量RTT中的最小值）作為基準
    * 計算Diff值：預期傳送率和實際傳送率的差異
        * Diff = Expected - Actual
        * Expected = (windowsize/BaseRTT)
        * Actual = (bytes_transmitted/measured_RTT)
* SS：
    *  為避免封包送得太快而遺失，每2個RTT才將cwnd加倍
    *  根據預期傳送率和實際傳送率的差異來調整ssthresh
    *  Queue產生時，從SS進入CA
* CA： 根據Diff值的大小來調整cwnd：
    * 當Diff < α：表示傳輸太慢，增加cwnd
    * 當Diff > β：表示傳輸太快，降低cwnd
    * 當α < Diff < β：保持cwnd不變
    * 可以在擁塞發生前就進行預防
* FR：根據RTT調整

### TCP 同步化問題

#### 定義

* 多個TCP Connection同時進行中，會共享（競爭）頻寬
* 這些TCP Connection在一段時間後，cwnd會逐漸地趨於一致

#### 問題

* 頻寬利用率低
* 高佇列延遲
* 不公平頻寬

### 影響TCP效能的因素

* RTT
    * packet send到ACK的時間
    * 較短的連線效能較好，因為等待ACK開啟cwnd的時間較短
    * 對TCP效能有直接影響
* Time Granularity
    * TCP不會即時監測封包timeout
    * 較小時可以更及時發現timeout並進行重送
    * 對於使用Reno等依賴timeout機制的TCP版本特別重要
* ssthresh
    * 決定何時從SS進入CA
    * 太大容易導致多封包丟失
    * 太小則會過早進入CA，降低頻寬利用效率

## 資料流整形器（TRAFFIC SHAPER）

### 功能

* 調整傳輸資料的平均速度，讓封包依照規定速率傳送
* 主要用於避免資料流量因突發特性造成網路壅塞

### 演算法

#### 漏桶演算法(Leaky Bucket Algorithm)

* 類似有漏洞的水桶，無論輸入速度多快，輸出速度固定
* 當buffer滿時新進封包會被丟棄
* 缺點是輸出總是固定速率
* 實作在資料傳送端或是路由器

#### 令牌桶演算法(Token Bucket Algorithm)

* 以固定速率產生令牌到令牌桶中
* 封包傳送需消耗令牌
* 當令牌桶滿時丟棄的是令牌而非封包
* 可以處理突發流量

## 差異式服務網路

### 服務模型種類

* 整合服務網路模型（Integrated Service）
* 差異式服務網路模型（Differentiated Service）：簡化核心路由器複雜度，擴充性高

### 差異式服務網路模型-服務型態

* EF（Expedited Forwarding）服務：提供低延遲、低延遲抖動、低封包遺失率
* AF（Assured Forwarding）服務：主要針對吞吐量要求，對延遲沒有嚴格要求

### AF服務運作機制

#### 主要功能

* 量測速率：邊境路由器根據服務協議(SLA)量測客戶資料流速率
* 標記封包：超過規範標記較高丟棄機率，符合規範標記較低值
* 丟棄封包：擁塞時優先丟棄高丟棄機率值的封包

#### 測量演算法分類

* 量測資料流平均速率：TSWTCM
* 令牌桶演算法：
    * SRTCM
    * TRTCM

#### TSWTCM（Time Sliding Windows-Three Color Marker）

* 基於量測資料流平均速率的演算法
* 參數：
    * CIR（Committed Information Rate） - 承諾資訊速率
    * PIR（Peak Information Rate） - 尖峰資訊速率
* 標記機制：
    * 綠色：流量低於CIR
    * 黃色：流量介於CIR與PIR之間
    * 紅色：流量超過PIR

#### SRTCM（Singal Rate-Three Color Marker）

* 基於單一速率和兩個突發大小
* 參數：
    * CIR：承諾資訊速率
    * CBS（Committed Burst Size）：承諾突發大小
    * EBS（Excess Burst Size）：超額突發大小
* 運作方式：
    * 使用單一令牌產生速率
    * 當令牌不足時，封包會被標記為較高的丟棄優先權
* 維護兩個令牌桶：
    * 第一個桶控制CBS
    * 第二個桶控制EBS

#### TRTCM（Two Rate-Three Color Marker）

* 基於兩個速率和兩個突發大小
* 參數：
    * CIR：承諾資訊速率
    * PIR：尖峰資訊速率
    * CBS：承諾突發大小
    * PBS（Peak Burst Size）：尖峰突發大小
* 運作方式：
    * 使用兩個獨立的令牌產生速率
    * 適合需要考慮尖峰速率的情況
    * 可以更精確地控制網路資源使用

## 無線網路封包傳送遺失模型

### 封包遺失

* 有線網路：主要是擁塞造成的遺失（Congestion loss），很少發生錯誤遺失（Error loss）
* 無線網路：同時存在Congestion loss和Error loss，且難以區分

### 遺失模型：

* Distributed loss：使用Random uniform model，每個封包都有固定機率P會遺失
* Burst loss：使用GE（Gilbert-Elliott）model，有GOOD和BAD兩種狀態，各有不同的遺失機率


### 傳送模式對遺失的影響：

* Multicast：應用層的封包遺失率等於實體層的封包遺失率
* Unicast：因為有重傳機制，應用層的封包遺失率會比實體層低