滑動視窗演算法在應用軟體系統中的應用

來源:互聯網
上載者:User

今天在看USSD相關的資料,對網路傳輸部分的資訊進行了回顧,忍不住又看了一遍通訊中用的非常多的滑動視窗演算法。滑動視窗演算法主要是用來解決系統間通訊的時候的流量擁塞及控制問題,一個好的實現既可以提高網路通訊的資料流量,同時又能提高通訊品質和解決擁塞控制問題。

簡要描述一下該演算法:

1、將需要傳遞的資訊編碼為一個有序的幀序列;

2、發送方設定一個滑動視窗(緩衝區),該視窗大小為最大發送幀數(N)。該緩衝區採用先進先出隊列機制,首先發送N幀資訊,每幀都有一個定時器,當逾時還沒有收到接收方的應答幀時,則重發該幀;

3、接收方設定一接收隊列,對接收到的每幀入隊列。如果該幀是編號最小的幀,則發送該幀收到的應答幀給發送方;

4、發送方如果收到接收方的某幀的應答訊息,則判斷,如果是隊列的第一個幀,則該幀出列。隊列空出一位,再發送一幀,否則記錄其為可出列標記。

利用滑動視窗演算法原理,可以保證一堆資料在有序發送的情況下,順利的達到接收方。

通過對滑動視窗演算法原理的分析,可以將該演算法應用在如下情境:

A系統需要給B系統發送大量的資料,這些資料需要拆分為M次才能發送完成,考慮到網路流量問題,不能一次性的就全部把M個資料區塊發送給B系統。較好的處理方式是設定符合網路流量大小的值N,做為A系統一次發送的資料區塊個數。N作為滑動視窗的長度。採用滑動視窗演算法來完成A、B系統的資料發送,考慮到發送的資料可以是無序(既資料沒有先後之分)的情況。需要對該演算法略加修改,即發送隊列中的任何一個資料區塊如果收到應答資訊,隊列都向前滑動一格,並允許立即發送一個新的資料區塊。就可以很好的解決這個問題。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.