流控制機制,流控制機制原理是什么?
流控制機制,流控制機制原理是什么?
可以將網絡服務分為最優(yōu)的無連接服務或可靠的面向連接的服務。在Internet協(xié)議集中,IP屬于最優(yōu)服務,而TCP屬于可靠的服務。IP僅提供簡單的數(shù)據(jù)分組轉發(fā),而TCP執(zhí)行流控制、確認以及重新發(fā)送丟失或損壞的數(shù)據(jù)分組。它將服務“分散”在網絡上并將發(fā)送的可靠性責任交給終端系統(tǒng)。TCP是終端對終端的傳輸協(xié)議,即它運行在終端系統(tǒng),而不是在網絡中。IP是網絡協(xié)議。TCP提供的服務包括以下內容:
?流控制機制 用以控制數(shù)據(jù)分組流,這樣發(fā)送者不會發(fā)送超過接收者所能處理的數(shù)據(jù)分組?! ?
?可靠的發(fā)送機制 為接收系統(tǒng)提供了確認它已收到數(shù)據(jù)分組的方法,同時也提供了使發(fā)送者知道它必須重新發(fā)送丟失或損壞的數(shù)據(jù)分組的方法。即TCP協(xié)議每發(fā)送一個數(shù)據(jù)包將會收到一個確認信息。這種發(fā)送/應答模式是提供可靠的協(xié)議的唯一方法:你必須讓對方知道你否收到了數(shù)據(jù)。當然,這也會造成一些性能損失,而人們需要改善系統(tǒng)效率不高的狀況。所以引入了“捎帶確認(piggybacking ACKs)”的方法。TCP協(xié)議之所以是全雙工的就是因為這個“捎帶確認”信息,因為它允許雙方同時發(fā)送數(shù)據(jù)。這是通過在當前的數(shù)據(jù)包中攜帶以前收到的數(shù)據(jù)的確認信息方式實現(xiàn)的。從提高網絡利用率的角度看,這比單純發(fā)送一個通知對方“信息已收到”的數(shù)據(jù)包要好得多。最后,還有一個批量確認的概念:也即一次確認一個以上的數(shù)據(jù)包,表示“我收到了包括這個數(shù)據(jù)包在內的全部數(shù)據(jù)包”。
?擁塞控制機制 允許網絡系統(tǒng)檢測網絡擁塞(網絡上的通信量超過了網絡或網絡設備的處理能力)并迫使這些傳輸返回以減輕擁塞。擁塞發(fā)生在繁忙的網絡上。發(fā)生擁塞時,終端系統(tǒng)和網絡不得不協(xié)同工作以最大程度地減輕擁塞。作為比較,流控制用在終端系統(tǒng)之間。接收者使用流控制向發(fā)送者表明它已超負荷。然后發(fā)送者迫使它的傳輸停止。
Internet成功的一個關鍵因素就是TCP協(xié)議的避免擁塞機制。當前TCP協(xié)議在Internet中仍然是占主導地位的傳輸協(xié)議,但它不是適用于任何地方,有越來越多的應用由于某種原因而沒有選擇使用TCP協(xié)議。通信不僅包括多點傳送通信,而且包括單點傳送通信,諸如不需要可靠性的流化的多媒體,以及包括象DNS(Domain Name Server域名服務器)或路由信息的通信,它們帶有被認為對網絡運行至關重要的短信息。許多通信并不使用任何形式的預留帶寬或端到端擁塞控制。為了保持最優(yōu)傳輸量,端到端的擁塞控制的繼續(xù)使用對保持Internet的穩(wěn)定至關重要。
流控制是必要的,因為發(fā)送者和接收者通常在容量和處理能力上并不般配。接收者可能無法用與發(fā)送者相同的速度處理數(shù)據(jù)分組。如果緩存區(qū)已滿,會丟棄數(shù)據(jù)分組。流控制機制的目標在于阻止丟棄數(shù)據(jù)分組從而避免重新傳送。
流控制用于在數(shù)據(jù)鏈路層中控制直連設備間的流。作為比較,TCP控制跨多步跳路由網絡設備間的流。數(shù)據(jù)鏈路層協(xié)議包括SDLC(同步數(shù)據(jù)鏈路控制)、HDLC(高層數(shù)據(jù)鏈路控制)、LAP-B(鏈路訪問過程平衡)、SLIP (串行線路Internet協(xié)議)以及PPP(點對點協(xié)議)。傳輸層協(xié)議包括TCP(傳輸控制協(xié)議)和Novell SPX (順序數(shù)據(jù)分組交換)。
當討論數(shù)據(jù)鏈路層協(xié)議時,傳輸單元為幀。在傳輸層中,TCP的傳輸單元為段。段被封裝在IP數(shù)據(jù)報中,而IP數(shù)據(jù)報又封裝在數(shù)據(jù)鏈路層的幀中。
流控制的類型
以下將介紹幾種流控制方案。每種機制都有助于發(fā)送者和接收者同步它們之間的傳輸和接收速率,從而防止丟棄數(shù)據(jù)分組。數(shù)據(jù)分組被丟棄后,必須重新發(fā)送,這會浪費網絡帶寬。
物理層流控制
物理層連接包含用于在計算機上連接輔助設備或連接兩個通信設備(比如從計算機的串行端口到調制解調器或終端連接)的串行接口(如V.24 (RS-232))。流控制可用于發(fā)出接收者已準備好傳輸?shù)?a target="_blank">信號,在接收者超負荷時,可發(fā)出必須停止傳輸?shù)男盘枴?
有兩種類型的物理層流控制:
?硬件(波段外)流控制 在這種方案中,使用物理接口上的特殊引線來發(fā)出可以開始或可以結束傳輸?shù)男盘?。當發(fā)送站準備好發(fā)送數(shù)據(jù)時,它會激活RTS(Request To Send)。當接收站準備好接收數(shù)據(jù)時,它會激活CTS ( Clear To Send )引線。如果接收者變成超負荷,它將使CTS處于非激活狀態(tài)。
?軟件(波段內)流控制 在這種方案中,使用被稱做XON和XOFF的特殊控制字符來控制流?!‘斀邮照邷蕚浜媒邮軘?shù)據(jù)時,它發(fā)送XON字符。當它超負荷時,它發(fā)送XOFF字符。當它準備好接收更多數(shù)據(jù)時,它會發(fā)送另一個XON字符。
“停止并等待”流控制
在物理層上最簡單的流控制是“停止并等待”機制。首先,發(fā)送者向目的地發(fā)送數(shù)據(jù)分組。一旦收到,目的地即向發(fā)送者返回確認數(shù)據(jù)分組以表明它已準備好接收另外的數(shù)據(jù)分組。源在發(fā)送另外的數(shù)據(jù)分組之前會始終等待確認數(shù)據(jù)分組。該技術自然避免了目的地的溢出。如果目的地需要時間來處理數(shù)據(jù)分組,它會暫緩發(fā)送確認。
在僅用少量數(shù)據(jù)分組就可發(fā)送信息時該技術顯得非常有用。但是,在需要大量數(shù)據(jù)分組的長時間傳輸時其效率將十分低下。為每一個數(shù)據(jù)分組發(fā)送確認也是過重的負擔。另外,部分網絡使用小型數(shù)據(jù)分組,這意味著會有更多的數(shù)據(jù)分組,因此將有更多確認?! ?/P>
源抑制消息
該方案中,發(fā)送者開始向接收者發(fā)送數(shù)據(jù)分組并持續(xù)發(fā)送直到它收到來自接收者的源抑制消息。該源抑制消息可通知發(fā)送者降低其數(shù)據(jù)傳輸速率。 源抑制發(fā)生在至少有一個數(shù)據(jù)分組已遭丟棄之時。當接收者的緩沖區(qū)已滿時,數(shù)據(jù)分組會被丟棄。此后,接收者將向發(fā)送者發(fā)送源抑制消息,但在發(fā)送者減慢速度之前,可能會丟棄其余的數(shù)據(jù)分組。對每一個丟棄的消息,都會發(fā)送一個源抑制消息。發(fā)送者開始減慢速度并持續(xù)減速直到接收者不再發(fā)送源抑制消息。此后,發(fā)送者開始加大傳輸速率, 但如果又收到源抑制消息,則速率又會慢下來。該方案的惟一缺點在于,在發(fā)送者開始減慢消息發(fā)送速率之前,數(shù)據(jù)分組會被丟棄。
“滑動窗口”流控制
“滑動窗口”流控制旨在以更加有效的方式來提供可靠的服務。它對確認僅使用較小的網絡帶寬?;瑒哟翱诩夹g主要是允許發(fā)送者一次發(fā)送多個數(shù)據(jù)分組,并盡量有效地使用傳輸信道。同時,它的流控制技術允許接收者向發(fā)送者通知其緩沖區(qū)的狀態(tài)。在以下討論中,“數(shù)據(jù)分組”一詞指數(shù)據(jù)塊,可以是幀或TCP段。
您可以將滑動窗口技術理解為發(fā)送者和接收者之間的對話。發(fā)送者在開始會說“我將向你發(fā)送x個數(shù)據(jù)分組,然后你要給我發(fā)送確認”。如果接收者開始溢出,它將說“我的緩沖區(qū)已溢出,請按比例減小正在發(fā)送的數(shù)據(jù)分組數(shù)”。該過程是動態(tài)的,并可自動調整一次發(fā)送的數(shù)據(jù)分組數(shù)。一個自適應的滑動窗口會設法確定最佳的窗口大小,這樣它就可以在不使接收者溢出的情況下發(fā)送盡可能多的數(shù)據(jù)分組。如果窗口太大,則將在接收者處發(fā)生數(shù)據(jù)分組丟棄,而發(fā)送者會按比例減小該窗口的大小。
TCP的窗口機制為自適應流控制。它會逐漸增大數(shù)據(jù)速率直至收到減速信號。該信號表明有數(shù)據(jù)分組遭丟棄。當接收者丟棄數(shù)據(jù)分組(或因為網絡擁塞未收到數(shù)據(jù)分組)時,它不會確認該數(shù)據(jù)分組。發(fā)送者通過這種信號來減慢或者停止傳輸。該方法的缺點在于,只有發(fā)生數(shù)據(jù)分組丟棄后,它才有效,因此它是不可預測的。流可能隨著網絡上通信方式的改變而迅速增大和減小。如果終端系統(tǒng)有足夠大的緩沖區(qū),則發(fā)送者可能將流增加到使網絡達到飽和的程度。在快速網絡上,發(fā)送者可能在它收到減慢消息之前已完成了整個傳輸。
網絡流控
前面描述了在終端系統(tǒng)中執(zhí)行的流控制。因為僅希望網絡提供基本的數(shù)據(jù)分組轉發(fā),因此開始并未從網絡執(zhí)行這些流控制。這提高了性能并保持了網絡的簡潔。最近以來,網絡設計者開始對網絡中的通信和流控制變得感興趣。其中一項技術是,先通過“速率評估程序”評估某個通信流的傳輸速率,然后按照數(shù)據(jù)分組的速率與CTR(確認的目標速率)和PTR(最大的目標速率)的對比結果來標記數(shù)據(jù)分組。在標記時將使用某種顏色,該顏色指定了與DiffServ(區(qū)分服務)兼容的丟棄優(yōu)先級。小于或等于CTR的數(shù)據(jù)分組被標為“綠色”,在CTR和PTR之間的分組被標為“黃色”,而在PTR之上的數(shù)據(jù)分組則被標記為“紅色”。
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
相關閱讀:
( 發(fā)表人:admin )