3.3.3流量控制
流量控制涉及鏈路上字符或幀的發(fā)送速率的控制,以使接收方在接收前有足夠的緩沖存儲空間來接受每一個字符或幀。例如,在面向字符的終端一一計算機鏈路中,若遠程計算機為許多臺終端服務,它就有可能因不能在高峰時按預定速率傳輸全部字符而暫時過載。同樣,在面向幀的自動重發(fā)請求系統(tǒng)中,當待確認幀數(shù)量增加時,有可能超出緩沖器存儲空間,也會造成過載。下面介紹兩種最常用的流量控制方案:XON/XOFF方案和窗口機制。
1.XON/XOW方案
增加緩沖存儲空間在某種程度上可以緩解收、發(fā)雙方在傳輸速率上的差異,但這是一種被動、消極的方法。因為,一方面系統(tǒng)不允許開設過大的緩沖空間,另一方面對于速率顯著失配并且又傳送大量數(shù)據(jù)的場合,仍會出現(xiàn)緩沖存儲空間不夠的現(xiàn)象。XONA〈OFF方案則是一種相比之下更主動、更積極的流量控制方法。
XON/XOFF方案中使用一對控制字符來實現(xiàn)流量控制,其中XON采用ASCII字符集中的控制字符DC1,XOFF采用ASCII字符集中的控制字符DC3。當通信鏈路上的接收方發(fā)生過載時,便向發(fā)送方發(fā)送一個XOFF字符,發(fā)送方接收到XOFF字符后便暫停發(fā)送數(shù)據(jù);等接收方處理完緩沖存儲器中的數(shù)據(jù),過載恢復后,再向發(fā)送方發(fā)送一個XON字符,以通知發(fā)送方恢復數(shù)據(jù)發(fā)送。在一次數(shù)據(jù)傳輸過程中,XOFRXON的周期可重復多次,但這些操作對用戶來說是透明的。
許多異步數(shù)據(jù)通信軟件包均支持XON/XOFF協(xié)議。這種方案也可用于計算機向打印機或其它終端設備發(fā)送字符,在這種情況下,打印機或終端設備中的控制部件用以控制字符流量。
2.窗口機制
為了提高信道的有效利用率,如前所述采用了發(fā)送方不等待確認幀返回就連續(xù)發(fā)送若干幀的方案。由于允許連續(xù)發(fā)送多個未被確認的幀,幀號就需采用多位二進制數(shù)才能加以區(qū)分。因為凡被發(fā)送出去但尚未被確認的幀都可能出錯或丟失而要求重發(fā),因而這些幀都要保留下來。這就要求發(fā)送方有較大的發(fā)送緩沖區(qū)保留可能要求重發(fā)的未被確認的幀。
但是緩沖區(qū)容量總是有限的,如果接收方不能以發(fā)送方的發(fā)送速率處理接收到的幀,則還是可能用完緩沖容量而暫時過載。為此,可引人類似于空閑RQ控制方案的調(diào)整措施,其本質(zhì)是在收到一確定幀之前,對發(fā)送方可發(fā)送的幀的數(shù)目加以限制。這是由發(fā)送方調(diào)整保留在重發(fā)表中的待確認幀的數(shù)目來實現(xiàn)的。如果接收方來不及對收到的幀進行處理,則接收方便停發(fā)確認信息,此時發(fā)送方的重發(fā)表就會增長,當達到重發(fā)表限度時,發(fā)送方就不再發(fā)送新幀,直至再次收到確認信息為止。
為了實現(xiàn)此方案,發(fā)送方存放待確認幀的重發(fā)表中,應設置待確認幀數(shù)目的限度,這一限度被稱為鏈路的發(fā)送窗口。顯然,如果窗口設置為1,即發(fā)送方緩沖能力僅為一個幀,則傳輸控制方案就回到了空閑RQ方案,此時傳輸效率很低。故窗口限度應選為使接收方盡量能處理或接受收到的所有幀。當然選擇時還必須考慮諸如幀的長度、可使用的緩沖存儲空間以及傳輸速率等因素。
重發(fā)表是一個連續(xù)序號的列表,對應發(fā)送方已發(fā)送但尚未確認的那些幀。這些幀的序號有一個值,這個值即發(fā)送窗口的限度。所謂發(fā)送窗口就是指示發(fā)送方已發(fā)送但尚未確認的幀序號隊列的界,其上、下界分別稱為發(fā)送窗口的上、下沿,上、下沿的間距稱為窗口尺寸。接收方類似地也有接收窗口,它指示允許接收的幀的序號。
發(fā)送方每次發(fā)送一幀后,待確認幀的數(shù)目便增1,每收到一個確認信息后,待確認幀的數(shù)目便減1。當重發(fā)表長度計數(shù)值,即待確認幀的數(shù)目等于發(fā)送窗口尺寸時,便停止發(fā)送新的幀。
一般幀號只取有限位二進制數(shù),到一定時間后就又反復循環(huán)。若幀號配3位二進制數(shù),則幀號在O~7間循環(huán)。如果發(fā)送窗口尺寸取值為2,則發(fā)送過程如圖3.15所示。圖中發(fā)送方陰影部分表示打開的發(fā)送窗口,接收方陰影部分則表示打開的接收窗口。當傳送過程進行時,打開的窗口位置一直在滑動,所以也稱為滑動窗口(Slidding Window),或簡稱為滑窗。
流量控制涉及鏈路上字符或幀的發(fā)送速率的控制,以使接收方在接收前有足夠的緩沖存儲空間來接受每一個字符或幀。例如,在面向字符的終端一一計算機鏈路中,若遠程計算機為許多臺終端服務,它就有可能因不能在高峰時按預定速率傳輸全部字符而暫時過載。同樣,在面向幀的自動重發(fā)請求系統(tǒng)中,當待確認幀數(shù)量增加時,有可能超出緩沖器存儲空間,也會造成過載。下面介紹兩種最常用的流量控制方案:XON/XOFF方案和窗口機制。
1.XON/XOW方案
增加緩沖存儲空間在某種程度上可以緩解收、發(fā)雙方在傳輸速率上的差異,但這是一種被動、消極的方法。因為,一方面系統(tǒng)不允許開設過大的緩沖空間,另一方面對于速率顯著失配并且又傳送大量數(shù)據(jù)的場合,仍會出現(xiàn)緩沖存儲空間不夠的現(xiàn)象。XONA〈OFF方案則是一種相比之下更主動、更積極的流量控制方法。
XON/XOFF方案中使用一對控制字符來實現(xiàn)流量控制,其中XON采用ASCII字符集中的控制字符DC1,XOFF采用ASCII字符集中的控制字符DC3。當通信鏈路上的接收方發(fā)生過載時,便向發(fā)送方發(fā)送一個XOFF字符,發(fā)送方接收到XOFF字符后便暫停發(fā)送數(shù)據(jù);等接收方處理完緩沖存儲器中的數(shù)據(jù),過載恢復后,再向發(fā)送方發(fā)送一個XON字符,以通知發(fā)送方恢復數(shù)據(jù)發(fā)送。在一次數(shù)據(jù)傳輸過程中,XOFRXON的周期可重復多次,但這些操作對用戶來說是透明的。
許多異步數(shù)據(jù)通信軟件包均支持XON/XOFF協(xié)議。這種方案也可用于計算機向打印機或其它終端設備發(fā)送字符,在這種情況下,打印機或終端設備中的控制部件用以控制字符流量。
2.窗口機制
為了提高信道的有效利用率,如前所述采用了發(fā)送方不等待確認幀返回就連續(xù)發(fā)送若干幀的方案。由于允許連續(xù)發(fā)送多個未被確認的幀,幀號就需采用多位二進制數(shù)才能加以區(qū)分。因為凡被發(fā)送出去但尚未被確認的幀都可能出錯或丟失而要求重發(fā),因而這些幀都要保留下來。這就要求發(fā)送方有較大的發(fā)送緩沖區(qū)保留可能要求重發(fā)的未被確認的幀。
但是緩沖區(qū)容量總是有限的,如果接收方不能以發(fā)送方的發(fā)送速率處理接收到的幀,則還是可能用完緩沖容量而暫時過載。為此,可引人類似于空閑RQ控制方案的調(diào)整措施,其本質(zhì)是在收到一確定幀之前,對發(fā)送方可發(fā)送的幀的數(shù)目加以限制。這是由發(fā)送方調(diào)整保留在重發(fā)表中的待確認幀的數(shù)目來實現(xiàn)的。如果接收方來不及對收到的幀進行處理,則接收方便停發(fā)確認信息,此時發(fā)送方的重發(fā)表就會增長,當達到重發(fā)表限度時,發(fā)送方就不再發(fā)送新幀,直至再次收到確認信息為止。
為了實現(xiàn)此方案,發(fā)送方存放待確認幀的重發(fā)表中,應設置待確認幀數(shù)目的限度,這一限度被稱為鏈路的發(fā)送窗口。顯然,如果窗口設置為1,即發(fā)送方緩沖能力僅為一個幀,則傳輸控制方案就回到了空閑RQ方案,此時傳輸效率很低。故窗口限度應選為使接收方盡量能處理或接受收到的所有幀。當然選擇時還必須考慮諸如幀的長度、可使用的緩沖存儲空間以及傳輸速率等因素。
重發(fā)表是一個連續(xù)序號的列表,對應發(fā)送方已發(fā)送但尚未確認的那些幀。這些幀的序號有一個值,這個值即發(fā)送窗口的限度。所謂發(fā)送窗口就是指示發(fā)送方已發(fā)送但尚未確認的幀序號隊列的界,其上、下界分別稱為發(fā)送窗口的上、下沿,上、下沿的間距稱為窗口尺寸。接收方類似地也有接收窗口,它指示允許接收的幀的序號。
發(fā)送方每次發(fā)送一幀后,待確認幀的數(shù)目便增1,每收到一個確認信息后,待確認幀的數(shù)目便減1。當重發(fā)表長度計數(shù)值,即待確認幀的數(shù)目等于發(fā)送窗口尺寸時,便停止發(fā)送新的幀。
一般幀號只取有限位二進制數(shù),到一定時間后就又反復循環(huán)。若幀號配3位二進制數(shù),則幀號在O~7間循環(huán)。如果發(fā)送窗口尺寸取值為2,則發(fā)送過程如圖3.15所示。圖中發(fā)送方陰影部分表示打開的發(fā)送窗口,接收方陰影部分則表示打開的接收窗口。當傳送過程進行時,打開的窗口位置一直在滑動,所以也稱為滑動窗口(Slidding Window),或簡稱為滑窗。