# 網際網路期末考 ## 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:因為有重傳機制,應用層的封包遺失率會比實體層低
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up