計算機網路 擁塞控制(1)

2021-10-01 15:12:47 字數 4337 閱讀 2996

當過多的包在網路緩衝區中競爭某個相同鏈路時,佇列會溢位丟包,當這種丟包成為普通事件時,則稱網路發生擁塞。

簡單概述就是對聚合頻寬的需求超過了鏈路的可用容量。

巨集觀原因:網路資源分布不均勻,流量分布不均勻,

微觀原因:報文聚合到達率大於路由器輸出鏈路的頻寬

多個包丟失,鏈路利用率低下

全網同步振盪,吞吐量下降

高排隊延遲,擁塞崩潰

資源分配就是盡量合理的滿足使用者對網路資源的需求,但是總會有滿足不了的情況

擁塞控制就是網路主機和路由器防止網路過載的情況採取的措施。這種措施可以是阻止幾個使用者使用網路,更好的方式是讓全網都來減少流量,所以擁塞控制經常包含資源分配方法。

流是在源目主機對之間,通過相同路由而傳送的一系列包,在路由器中的資源分配中這是乙個重要的抽象。

流過同一路由器,且具有若干相同頭部特徵的一系列資料報。這些特徵是:源位址、目位址、源埠號、目埠號、協議型別、服務型別tos、輸入端邏輯介面等。

「通道」是端-端連通的一種抽象,「流」對網路路由器是可見的。

擁塞控制(congestion control)與全網有關,涉及多個端到端、主機、路由器等很多網路元素;目的是確保通訊子網能夠承載使用者提交的通訊

量,是乙個全域性問題,

流量控制(flow control)只與一對端到端的通訊量有關,只涉及快速傳送方與慢速接收方的問題,是區域性問題,一般都是基於反饋進行控制的

要防止這兩者的混淆,但它們有些機制是相同的

解決擁塞本質上是更合理的資源分配:

 1. 以路由器為中心與以主機為中心

 2. 基於預留與基於反饋

 3. 基於視窗與基於速率

以r為中心,鏈路演算法(link algorithm). 在網路裝置中(如路由器和交換機) 執行,作用是檢測網路擁塞的發生,產生擁塞反饋資訊,r決定何時**包,決定丟掉哪個包,通知正產生網路流量的那些主機允許它們傳送包的數目

以h為中心,源演算法(source algorithm).源演算法在主機和網路邊緣裝置中執行,作用是根據反饋資訊調整傳送速率端主機觀察網路狀態(多少個包成功通過了網路)並因而調整其行為

二者並不互斥,r中心的擁塞管理仍需要h執行r傳送的建議訊息,h中心的擁塞管理業需要r丟棄r溢位時那些包

2.3.1.1. 源擁塞控制演算法-tcp層

源演算法中使用最廣泛的是tcp協議中的擁塞控制演算法。tcp是目前在internet中使用最廣泛的傳輸協議.

 下表給出擁塞控制源演算法的簡單描述

擁塞控制源演算法

描述tahoe-tcp

慢啟動、擁塞避免、快速重傳-早期較為普遍採用版本

reno-tcp

多乙個:快速恢復

newreno-tcp

引入了部分確認和全部確認的概念.

sack-tcp

規範了tcp中帶選擇的確認訊息

vegas-tcp

採用頻寬估計,縮短了慢啟動階段的時間

2.3.1.2. 源演算法測量網路是否擁塞的引數

緩衝區缺乏造成的丟包率;

平均佇列長度;

超時重傳包數目;

平均包延遲(rtt是重要指標);

包延遲變化(jitter)。

2.3.1.3. 路由器向源反饋方法

向負載發生源傳送乙個告警包;

包結構中保留乙個位或域用來表示發生擁塞,一旦發生擁塞,路由器將所有的輸出包置位,向鄰居告警;

主機或路由器主動地、周期性地傳送探測(probe),查詢是否發生擁塞。

基於預留

建立流時,端主機請求網路給予一定的容量,每個r分配足夠的資源(緩衝區或鏈路頻寬的比例)來滿足這一請求。問題:利用率?

如果由於資源的過量則r不能滿足該請求而拒絕該流。這同打**時碰到忙音一樣?

基於反饋

端主機首先沒有預留任何容量,而按照它們接收到的反饋來調整其傳送。 調整或者是顯式的,如擁塞r傳送乙個「請慢下來」訊息到主機或

隱式的:如端主機根據外部可觀察的網路行為,如包丟失率,來調整其傳送率

2.3.2.1. 兩種機制的比較

基於預留的系統總是意味著

以路由器為中心的資源分配機制:因每個r負責保持跟蹤現在有多少容量被預留,並保障在其所做的預留內每個主機是活著的。

如果在作了預留後某主機傳送資料快於它曾經所要求的,則該主機的包將是準備丟棄。r也將會擁塞

基於反饋的系統

可以既是以r為中心也可是以h為中心的機制。一般如果反饋是顯式的,則r至少某種程度就被包括在資源分配模式裡; 如果反饋是隱式的,則幾乎所有的重擔都落在端主機上,當r變成擁塞後就默默地丟包。

怎樣評價資源分配機制的好壞

有效性公平性

2個主要測量指標:

網路吞吐量(實際傳輸bps)延遲

如果有方法,增加吞吐量,提高鏈路利用率,但是增加了r內佇列長度,包平均延遲也變長了,並不是個很好的方法。

2.4.1.1. 網路能力

用吞吐率和延遲之比來描述資源分配模式的有效性,該比稱為網路能力

power = 吞吐率/延遲

power是加速度量綱 bit/s^2

一般公平原則(若沒有明確要求)

當某條鏈路中存在幾個流時,對接收每個流都應該有相等的頻寬(平均主義)

排隊規則

不管其它資源分配機制是多麼簡單或複雜每個路由器都必須實現某些排隊或排程規則,以便管理等待傳送包的緩衝區(分配緩衝區資源)

排隊演算法

是頻寬(包得到傳送)和緩衝區的分配方法(包被丟棄),它還直接影響包經歷的延遲

3個排隊演算法:fifo、公平排隊、加權公平排隊

首先到達的包首先傳送

當r的緩衝空間滿時,尾部的包就丟棄(tail drop),不考慮包是否重要

fifo和tail drop是不同的概念,前者是傳送排程策略,後者是丟棄策略,但二者常**在一起叫做fifo

給每個包打上可攜帶的優先權標記,如ip服務型別tos(diffserv)。 r先傳送其優先權高的包

這一方式離best-effort delivery並不遠

在ipv4報文頭部有個tos域(8bit),ipv6有個class域(8bit)

rfc791,rfc1122,rfc1349都定義過每個bit的含義; rfc1349廢除了之前兩個rfc的定義

rfc 2474又重新定義了tos的前6個bit,稱為diffserv code point(dscp)後兩個bit留給explicit congestion notification (ecn)

不能區別不同的流,即不能按報文所屬的流來區分。問題:

對在源端實現的擁塞控制演算法沒有幫助

由於存在非tcp應用,fifo可能把端-端擁塞機制旁路掉

例如ip**,這類應用能把自己的包洪氾到網上路由器,引起丟棄其他應用的包

大多數基於udp對多**應用也會產生同樣問題

fq主要思想:

為每個正在被路由器處理的流分別維護乙個佇列,路由器以輪循方式服務每個佇列。

當乙個流傳送包太快,則其佇列填滿;當乙個佇列到達乙個特定的長度,屬於該佇列的後繼包就被丟掉,這樣,任何源就不可能多占用其他流的網路容

量fq並不告訴源端任何有關路由器的狀態,或並不限制源端傳送怎樣快

加權公平佇列(weighted fair queueing)

給排隊流加權,r服務每個佇列時每次傳送多少位元,它直接控制每個流將得到多少鏈路頻寬

簡單fq給每個佇列權重是1,即每輪每個佇列邏輯上僅1位元被傳輸->1/n

wfq:可讓3個佇列分別權重2:1:3則導致頻寬分別是2/6:1/6:3/6

wfq中的流在使用中可能是「流量型別」,由tos或diffserv.來定義

造成擁塞的主要原因是網路流量通常是突發性的

強迫包以一種可**的速率傳送;

在atm網中廣泛使用。

平均速率:100bps比6000bps的源約束要嚴格多,希望限制某個流的長期平均速率

峰值速率:網路可允許平均速率6000bps,希望限制其峰值速率<15000bps

突發長度:希望限制極短時間間隔內所能傳送到網路的最大包數

將使用者發出的不平滑的資料報流轉變成網路中平滑的資料報流;

可用於固定包長的協議,如atm;也可用於可變包長的協議,如ip,使用位元組計數;

無論負載突發性如何,漏桶演算法強迫輸出按平均速率進行,不靈活,溢位時要丟包。

漏桶演算法不夠靈活,因此加入令牌機制;

基本思想:漏桶存放令牌,每t秒產生乙個令牌,令牌累積到超過漏桶上界時就不再增加。包傳輸之前必須獲得乙個令牌,傳輸之後刪除該令牌;

3.4.4.1. 漏桶演算法與令牌桶演算法的區別

流量整形策略不同:漏桶演算法不允許空閒主機積累傳送權,以便以後傳送大的突發資料;令牌桶演算法允許,最大為桶的大小。

漏桶中存放的是資料報,桶滿了丟棄資料報;令牌桶中存放的是令牌,桶滿了丟棄令牌,不丟棄資料報沒有令牌才丟棄資料報。

計算機網路 擁塞控制

引言 tcp與udp各有各的優缺點,相比於udp,tcp具有擁塞控制與滑動視窗機制等功能,這裡先給自己整理一哈擁塞 se 控制。為什麼要用擁塞控制 因為由於一些原因 接收過多的報文,超過路由器的處理能力 路由器可能會丟棄一些報文,然而定時器這個時候就會處於超時狀態,傳送端就會重新傳送報文,這樣反而會...

計算機網路 擁塞控制

在流量控制中,傳送方傳送的資料是由接收方決定,而在擁塞控制中,由傳送方自己通過檢測網路狀況而決定。1.慢開始演算法 剛開始傳送tcp報文段時,先令擁塞視窗cwnd 1 1個最大報文段長度mss 逐次加倍 當到達慢開始門限時,改用擁塞避免演算法。2.擁塞避免演算法 cwnd每次加1 當網路出現擁塞時,...

計算機網路 網路層 擁塞控制

擁塞控制是網路層和傳輸層一起工作的責任,網路 現太多的資料報時,網路的效能開始急劇下降,這種情況稱為擁塞 對應書p304 流量感知路由 准入控制 流量限制 負載脫落 擁塞控制 congestion control 確保子網能夠承載所達到的流量 是乙個全域性性問題,涉及各方面的行為,包括所有的主機 所...