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