一種流量控制方法及裝置的制造方法
【技術領域】
[0001]本發明涉及到通信領域,特別涉及到一種流量控制方法及裝置。
【背景技術】
[0002]在當前的通信系統中,數據業務協議的層與層之間,同一系統之內的模塊與模塊之間、局域網或無線網絡的兩個節點之間,存在端對端的大量數據傳輸。通常,發送端和接收端的速度總是存在差異,若發送端速度大于接收端,則存在數據溢出問題,會導致數據丟失;若接收端速度大于發送端,存在數據讀空問題,會導致讀入錯誤數據;且在速度方面,需要一種機制來根據需求調節收發速度。因此,如何提供一種可靠的流量控制方法,以防止數據傳輸溢出和進行速度控制,將是我們亟待解決的問題。
【發明內容】
[0003]本發明的主要目的為提供一種流量控制方法及裝置,旨在防止數據傳輸溢出和進行速度控制。
[0004]本發明提供一種流量控制方法,該方法包括:
[0005]S10、流量控制裝置獲取發送端的寫入速度V1、接收端的讀取速度V2、用戶設置的傳輸速度V、該流量控制裝置中的緩存模塊中的數據隊列的容量大小L和所述數據隊列的已使用大小E ;
[0006]S20、所述流量控制裝置根據所述獲取發送端的寫入速度V1、接收端的讀取速度V2、用戶設置的傳輸速度V、該流量控制裝置中的緩存模塊中的數據隊列的容量大小L和所述數據隊列的已使用大小E,控制發送端向所述緩存模塊中的數據隊列寫入數據的開始時機和停止時機,及/或控制接收端從所述緩存模塊中的數據隊列讀取數據的開始時機和停止時機。
[0007]優選地,所述流量控制裝置根據所述獲取發送端的寫入速度V1、接收端的讀取速度V2、用戶設置的傳輸速度V、該流量控制裝置中的緩存模塊中的數據隊列的容量大小L和所述數據隊列的已使用大小E,控制發送端向所述緩存模塊中的數據隊列寫入數據的開始時機和停止時機,及/或控制接收端從所述緩存模塊中的數據隊列讀取數據的開始時機和停止時機的步驟包括:
[0008]S21、所述流量控制裝置根據所述獲取發送端的寫入速度V1、接收端的讀取速度V2、用戶設置的傳輸速度V和該流量控制裝置中的緩存模塊中的數據隊列的容量大小L計算延時時間t:
[0009]t= (V1*L* (V2-V)) / ((Vl-V) *V2);
[0010]S22、判斷所述寫入速度Vl是否大于讀取速度V2 ;
[0011]S23、在所述寫入速度Vl大于讀取速度V2,且在所述流量控制裝置獲取的緩存模塊中的數據隊列的已使用大小E為O時,向所述發送端發送寫入指令,以使得所述發送端向所述數據隊列寫入數據;及向所述接收端發送停止讀取指令并開始計時得到第一計時時間tl,以使得所述接收端停止從所述數據隊列讀取數據;
[0012]S24、在所述第一計時時間tl等于延時時間t時,所述流量控制裝置向所述接收端發送讀取指令,以使得所述接收端從所述數據隊列讀取數據;及所述流量控制裝置監測所述數據隊列的已使用大小E ;
[0013]S25、在所述數據隊列的已使用大小E等于L時,所述流量控制裝置向所述發送端發送停止寫入指令,以使得所述發送端停止向所述數據隊列寫入數據;及所述流量控制裝置繼續監測所述數據隊列的已使用大小E ;
[0014]S26、在所述數據隊列的已使用大小E為零時,返回步驟S10。
[0015]優選地,在所述S22、判斷所述寫入速度Vl是否大于讀取速度V2之后,該方法還包括:
[0016]S31、在所述寫入速度Vl小于讀取速度V2,且在所述流量控制裝置獲取的緩存模塊中的數據隊列的已使用大小E為O時,向所述發送端發送寫入指令,以使得所述發送端向所述數據隊列寫入數據;及向所述接收端發送停止讀取指令,以使得所述接收端停止從所述數據隊列讀取數據;及所述流量控制裝置監測所述數據隊列的已使用大小E ;
[0017]S32、在所述數據隊列的已使用大小E等于L時,所述流量控制裝置向所述接收端發送讀取指令,以使得所述接收端從所述數據隊列中讀取數據;及向所述發送端發送停止寫入指令并開始計時得到第二計時時間t2,以使得所述發送端停止向所述數據隊列寫入數據;
[0018]S33、在所述第二計時時間t2等于延時時間t時,所述流量控制裝置向所述發送端發送寫入指令,以使得所述發送端向所述數據隊列寫入數據;及所述流量控制裝置繼續檢測所述數據隊列的已使用大小E ;
[0019]S34、在所述數據隊列的已使用大小E為零時,返回步驟S10。
[0020]優選地,所述用戶設置的傳輸速度V大于零且小于寫入速度Vl與讀取速度V2中較小的一個。
[0021]優選地,所述控制發送端向所述緩存模塊中的數據隊列寫入數據的步驟為:控制發送端向所述緩存模塊中的數據隊列的隊列尾寫入數據;
[0022]所述控制接收端從所述緩存模塊中的數據隊列讀取數據的步驟為:控制接收端從所述緩存模塊中的數據隊列的隊列頭讀取數據。
[0023]本發明還提供一種流量控制裝置,該流量控制裝置分別與發送端、接收端連接,所述流量控制裝置包括:緩存模塊,與所述緩存模塊連接的獲取模塊,與所述獲取模塊連接控制模塊,其中:
[0024]所述獲取模塊,用于獲取發送端的寫入速度V1、接收端的讀取速度V2、用戶設置的傳輸速度V、該緩存模塊中的數據隊列的容量大小L和所述數據隊列的已使用大小E ;
[0025]所述控制模塊,用于根據所述獲取發送端的寫入速度V1、接收端的讀取速度V2、用戶設置的傳輸速度V、緩存模塊中的數據隊列的容量大小L和所述數據隊列的已使用大小E,控制發送端向所述緩存模塊中的數據隊列寫入數據的開始時機和停止時機,及/或控制接收端從所述緩存模塊中的數據隊列讀取數據的開始時機和停止時機。
[0026]優選地,所述控制模塊包括:
[0027]計算單元,用于根據獲取的發送端的寫入速度V1、接收端的讀取速度V2、用戶設置的傳輸速度V和緩存模塊中的數據隊列的大小L計算延時時間t:
[0028]t= (V1*L* (V2-V)) / ((Vl-V) *V2);
[0029]判斷單元,用于判斷所述寫入速度Vl是否大于讀取速度V2 ;
[0030]第一控制單元,用于在所述寫入速度Vl大于讀取速度V2,且所述數據隊列的已使用大小E為O時,向所述發送端發送寫入指令,以使得所述發送端向所述數據隊列寫入數據,及向所述接收端發送停止讀取指令,以使得所述接收端停止從所述數據隊列讀取數據并開始計時得到第一計時時間tl ;及用于所述第一計時時間tl等于延時時間t時,向所述接收端發送讀取指令,以使得所述接收端從所述數據隊列讀取數據,及監測所述數據隊列的已使用大小E ;及用于在所述數據隊列的已使用大小E等于L時,向所述發送端發送停止寫入指令,以使得所述發送端停止向所述數據隊列寫入數據,直到所述數據隊列的已使用大小E為零。
[0031 ] 優選地,控制模塊還包括:
[0032]第二控制單元,用于在所述寫入速度Vl小于讀取速度V2,且在所述數據隊列的已使用大小E為O時,向所述發送端發送寫入指令,以使得所述發送端向所述數據隊列寫入數據,及向所述接收端發送停止讀取指令,以使得所述接收端停止從所述數據隊列讀取數據,及監測所述數據隊列的已使用大小E ;及用于在所述數據隊列的已使用大小E為L時,向所述接收端發送讀取指令,以使得所述接收端從所述數據隊列讀取數據,及向所述發送端發送停止寫入指令并開始計時得到第二計時時間t2,以使得所述發送端停止向所述數據隊列寫入數據;及用于在第二計時時間t2等于延時時間t時,向所述發送端發送寫入指令,以使得所述發送端向所述數據隊列寫入數據,直到所述緩存中數據隊列的已使用大小E為零。
[0033]優選地,所述用戶設置的傳輸速度V大于零且小于寫入速度Vl與讀取速度V2中較小的一個。
[0034]優選地,所述控制模塊控制發送端向所述緩存模塊中的數據隊列寫入數據為:控制發送端向所述緩存模塊中的數據隊列的隊列尾寫入數據;
[0035]所述控制模塊控制接收端從所述緩存模塊中的數據隊列讀取數據為:控制接收端從所述緩存模塊中的數據隊列的隊列頭讀取數據。
[0036]實施本發明,流量控制裝置獲取發送端的寫入速度V1、接收端的讀取速度V2、用戶設置的傳輸速度V、該流量控制裝置中的緩存模塊中的數據隊列的容量大小L和所述數據隊列的已使用大小E ;然后所述流量控制裝置根據所述獲取發送端的寫入速度V1、接收端的讀取速度V2、用戶設置的傳輸速度V、該流量控制裝置中的緩存模塊中的數據隊列的容量大小L和所述數據隊列的已使用大小E,控制發送端向所述緩存模塊中的數據隊列寫入數據的開始時機和停止時機,及/或控制接收端從所述緩存模塊中的數據隊列讀取數據的開始時機和停止時機;可防止數據傳輸溢出和進行速度控制。
【附圖說明】
[0037]圖1為本發明流量控制方法的優選實施例流程示意圖;
[0038]圖2為步驟S20的第一實施例流程示意圖;
[0039]圖3為步驟S20的第二實施例流程示意圖;
[0040]圖4為本發明流量控制裝置的優選實施例結構示意圖;
[0041]圖5為圖4中控制模塊的結構示意圖