本申請涉及通信技術領域,特別涉及一種AP的升級方法和裝置。
背景技術:
AC(Wireless Access Point,無線訪問接入點)是一種網(wǎng)絡設備,用來集中化控制無線AP(Wireless Access Point,無線訪問接入點),是一個無線網(wǎng)絡的核心,負責管理無線網(wǎng)絡中的所有無線AP,對AP管理包括:下發(fā)配置、修改相關配置參數(shù)、射頻只能管理、接入安全控制等。CAPWAP(Control And Provision of Wireless Access Points Protocol Specification,無線接入點的控制和配置協(xié)議)規(guī)定了AP如何從AC獲取軟件版本。具體來說,當AC發(fā)現(xiàn)AP映像版本不匹配時會下發(fā)升級命令。隨后,AP會陸續(xù)收到映像文件片段并組裝成完整的升級文件,最后完成升級。由于AC的帶寬和處理能力有限,同一時間只能支持一定數(shù)量的AP升級。剩下的AP只能加入等待隊列,直到前面的AP升級完畢才可以進行升級,這種升級流程所花費的時間是線性增長的。當AP的數(shù)量很多時,會導致升級時間過長。
技術實現(xiàn)要素:
有鑒于此,本申請?zhí)峁┮环NAP的升級方法和裝置,用以解決當AP的數(shù)量很多時,升級時間過長的問題。
具體地,本申請是通過如下技術方案實現(xiàn)的:
一種AP的升級方法,應用于待升級AP,包括:
接收AC下發(fā)的與升級文件對應的數(shù)據(jù)塊索引表;所述升級文件由所述AC拆分成若干數(shù)據(jù)塊,并分布存儲于不同的已升級AP;所述數(shù)據(jù)塊索引表包括所述若干數(shù)據(jù)塊與存儲了所述若干數(shù)據(jù)塊的已升級AP的IP之間的映射關系;
基于所述數(shù)據(jù)塊索引表,從各已升級AP下載數(shù)據(jù)塊;
將下載得到的數(shù)據(jù)塊拼接為所述升級文件,并基于拼接得到的所述升級文件進行升級。
在所述AP的升級方法中,還包括:
接收所述AC下發(fā)的所述升級文件的大小和基于所述升級文件計算得到的hash值;
所述基于拼接得到的所述升級文件進行升級,包括:
基于所述升級文件的大小和所述升級文件的hash值針對拼接得到的所述升級文件進行完整性校驗;
當完整性校驗通過時,基于拼接得到的所述升級文件進行升級,并在升級成功后,向所述AC發(fā)送升級成功的回應報文。
在所述AP的升級方法中,還包括:
當任一已升級AP上的數(shù)據(jù)塊下載失敗時,從所述AC下載該數(shù)據(jù)塊。
一種AP的升級方法,應用于AC,包括:
拆分升級文件成若干數(shù)據(jù)塊,并將所述若干數(shù)據(jù)塊存儲于不同的已升級AP;
生成與所述升級文件對應的數(shù)據(jù)塊索引表;所述數(shù)據(jù)塊索引表包括所述若干數(shù)據(jù)塊與存儲了所述若干數(shù)據(jù)塊的已升級AP的IP之間的映射關系;
下發(fā)所述數(shù)據(jù)塊索引表至待升級AP。
在所述AP的升級方法中,還包括:
接收到待升級AP發(fā)送的升級成功的回應報文后,重新將所述升級文件分拆若干成數(shù)據(jù)塊分配到各個已升級AP上,更新所述數(shù)據(jù)塊索引表。
一種AP的升級裝置,應用于待升級AP,包括:
接收單元,用于接收AC下發(fā)的與升級文件對應的數(shù)據(jù)塊索引表;所述升級文件由所述AC拆分成若干數(shù)據(jù)塊,并分布存儲于不同的已升級AP;所述數(shù)據(jù)塊索引表包括所述若干數(shù)據(jù)塊與存儲了所述若干數(shù)據(jù)塊的已升級AP的IP之間的映射關系;
下載單元,用于基于所述數(shù)據(jù)塊索引表,從各已升級AP下載數(shù)據(jù)塊;
升級單元,用于將下載得到的數(shù)據(jù)塊拼接為所述升級文件,并基于拼接得到的所述升級文件進行升級。
在所述AP的升級裝置中,還包括:
所述接收單元,進一步用于接收所述AC下發(fā)的所述升級文件的大小和基于所述升級文件計算得到的hash值;
所述升級單元,進一步用于基于所述升級文件的大小和所述升級文件的hash值針對拼接得到的所述升級文件進行完整性校驗;當完整性校驗通過時,基于拼接得到的所述升級文件進行升級,并在升級成功后,向所述AC發(fā)送升級成功的回應報文。
在所述AP的升級裝置中,所述下載單元,進一步用于:
當任一已升級AP上的數(shù)據(jù)塊下載失敗時,從所述AC下載該數(shù)據(jù)塊。
一種AP的升級裝置,應用于AC,包括:
拆分單元,用于拆分升級文件成若干數(shù)據(jù)塊,并將所述若干數(shù)據(jù)塊存儲于不同的已升級AP;
生成單元,用于生成與所述升級文件對應的數(shù)據(jù)塊索引表;所述數(shù)據(jù)塊索引表包括所述若干數(shù)據(jù)塊與存儲了所述若干數(shù)據(jù)塊的已升級AP的IP之間的映射關系;
下發(fā)單元,用于下發(fā)所述數(shù)據(jù)塊索引表至待升級AP。
在所述AP的升級裝置中,所述拆分單元,進一步用于:
接收到待升級AP發(fā)送的升級成功的回應報文后,重新將所述升級文件分拆若干成數(shù)據(jù)塊分配到各個已升級AP上,更新所述數(shù)據(jù)塊索引表。
由以上本申請的實施例提供的技術方案可見,待升級AP接收AC下發(fā)的數(shù)據(jù)塊索引表,根據(jù)所述數(shù)據(jù)塊索引表,向已升級AP下載數(shù)據(jù)塊。待升級AP根據(jù)接收的數(shù)據(jù)塊,拼接成升級文件,并根據(jù)所述升級文件完成升級。隨著待升級AP數(shù)量的增加,該技術方案的優(yōu)勢會更加明顯,傳送數(shù)據(jù)塊的工作由數(shù)量不斷增加的已升級AP來完成,有效地解決了當AP的數(shù)量很多時,升級時間過長的問題。
附圖說明
圖1A是本申請示出的一種AP的升級方法的流程圖;
圖1B是本申請示出的另一種AP的升級方法的流程圖;
圖2是本申請示出的一種AP的升級裝置的邏輯框圖;
圖3是本申請示出的一種AP的升級裝置的硬件結(jié)構(gòu)圖;
圖4是本申請示出的另一種AP的升級裝置的邏輯框圖;
圖5是本申請示出的另一種AP的升級裝置的硬件結(jié)構(gòu)圖。
具體實施方式
為了使本領域的人員更好地理解本發(fā)明實施例中的技術方案,并使本發(fā)明實施例的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖對本發(fā)明實施例中的技術方案作進一步詳細的說明。
CAPWAP協(xié)議規(guī)定了AP升級的方式。一是在AP關聯(lián)AC階段,AC發(fā)送Join Response報文至AP。由Join Response報文中的文件版本觸發(fā)AP向AC回應下載升級文件的請求,并根據(jù)升級文件進行升級。二是在AP關聯(lián)AC以后,當用戶認為有必要對某個AP進行升級,則在AC上確定升級該AP,以使AC發(fā)送升級命令(Configuration Update Request報文)給該AP,觸發(fā)該AP向AC回應下載升級文件的請求,并根據(jù)升級文件進行升級。兩種方式中,AP都是直接向AC下載升級文件。由于AC的帶寬和處理能力有限,同一時間只能支持一定數(shù)量的AP升級。剩下的AP加入到等待隊列,直到前面的AP升級完畢才可以進行升級。這種升級流程所花費的時間是線性增長的,當AP數(shù)量很多時,升級時間會過長。
為解決上述問題,在本申請實施例的技術方案中,AC將升級文件劃分成若干數(shù)據(jù)塊,并將上述數(shù)據(jù)塊分配到已升級AP。待升級AP不再直接從AC獲取升級文件,而是從已升級AP下載數(shù)據(jù)塊拼接成升級文件,再根據(jù)該升級文件進行升級。由此,大規(guī)模AP升級不再受限于AC的帶寬和處理能力。
參見圖1A,為本申請示出的一種AP的升級方法的流程圖,該流程圖從待升級AP側(cè)進行描述;所述方法包括以下步驟:
步驟101:接收AC下發(fā)的與升級文件對應的數(shù)據(jù)塊索引表;所述升級文件由所述AC拆分成若干數(shù)據(jù)塊,并分布存儲于不同的已升級AP;所述數(shù)據(jù)塊索引表包括所述若干數(shù)據(jù)塊與存儲了所述若干數(shù)據(jù)塊的已升級AP的IP之間的映射關系;
步驟102:基于所述數(shù)據(jù)塊索引表,從各已升級AP下載數(shù)據(jù)塊;
步驟103:將下載得到的數(shù)據(jù)塊拼接為所述升級文件,并基于拼接得到的所述升級文件進行升級。
與上述從待升級AP側(cè)描述的AP的升級方法的流程圖對應,參見圖1B,本申請示出的另一種AP的升級方法的流程圖,該流程圖從AC側(cè)進行描述;所述方法包括以下步驟:
步驟111:拆分升級文件成若干數(shù)據(jù)塊,并將所述若干數(shù)據(jù)塊存儲于不同的已升級AP;
步驟112:生成與所述升級文件對應的數(shù)據(jù)塊索引表;所述數(shù)據(jù)塊索引表包括所述若干數(shù)據(jù)塊與存儲了所述若干數(shù)據(jù)塊的已升級AP的IP之間的映射關系;
步驟113:下發(fā)所述數(shù)據(jù)塊索引表至待升級AP。
在本實施例中,AC把升級文件拆分成若干數(shù)據(jù)塊,并對各數(shù)據(jù)塊的存儲位置進行規(guī)劃,將各數(shù)據(jù)塊分別存儲于不同的已升級AP上,待升級AP將不直接從AC下載升級文件,而是從已升級AP下載升級文件。這樣一來,隨著AP數(shù)量的增加,待升級AP從數(shù)量逐漸增加的已升級AP上獲得升級文件的速度會顯著提升。
具體而言,AC可以基于預設的策略將升級文件拆分成若干數(shù)據(jù)塊,并分別存儲于不同的已升級AP。
其中,上述預設的策略可以依據(jù)應用環(huán)境,設定最有助于AP升級效率的策略。例如:在示出的一種實施方式中,上述預設的策略可以是:AC將升級文件拆分成若干數(shù)據(jù)塊,并對拆分出的若干數(shù)據(jù)塊進行平均分配,分別存儲在不同的已升級AP上,使得每一個已升級AP上存儲的數(shù)據(jù)塊的數(shù)量保持一致,以此使待升級AP在并發(fā)地向已升級AP分別下載升級文件時,每條下載路徑上效率均衡。
升級文件拆分完成后,AC將上述若干數(shù)據(jù)塊存儲到不同的已升級AP中,并創(chuàng)建上述若干數(shù)據(jù)塊與存儲上述若干數(shù)據(jù)塊的已升級AP的IP之間的映射關系。為便于記錄上述映射關系,AC可以給拆分出的若干數(shù)據(jù)塊添加標識或序號,因此上述映射關系可以是數(shù)據(jù)塊的標識或序號對應存儲該數(shù)據(jù)塊的已升級AP的IP。AC通過創(chuàng)建上述映射關系,從而將原來限定于本地的接收AP下載升級文件的工作分配到各已升級AP上。AC生成與升級文件對應的數(shù)據(jù)塊索引表,將上述映射關系包含在內(nèi)。
在上述配置工作完成后,待升級AP會在兩種情況下向AC發(fā)送升級請求:一是在待升級AP關聯(lián)AC階段,AC發(fā)送Join Response報文至待升級AP。由Join Response報文中的文件版本觸發(fā)待升級AP向AC回應升級請求;二是在待升級AP關聯(lián)AC以后,當用戶認為有必要升級待升級AP,則在AC上確定升級待升級AP,以使AC發(fā)送升級命令給待升級AP,觸發(fā)待升級AP向AC回應升級請求。
在本例中,AC接收待升級AP發(fā)送的升級請求后,下發(fā)與升級文件對應的上述數(shù)據(jù)塊索引表至待升級AP,以由待升級AP根據(jù)上述數(shù)據(jù)塊索引表從各已升級AP下載數(shù)據(jù)塊。待升級AP通過數(shù)據(jù)塊索引表并發(fā)地向已升級AP請求升級文件的數(shù)據(jù),極大地提高了效率。
具體而言,待升級AP從已升級AP下載數(shù)據(jù)塊的過程可以如下所述:待升級AP遍歷數(shù)據(jù)塊索引表中的各已升級AP的IP和數(shù)據(jù)塊的標識或序號,統(tǒng)計每個IP對應的所有數(shù)據(jù)塊的標識或序號。完成統(tǒng)計后,待升級AP向每個IP發(fā)送其對應的所有數(shù)據(jù)塊的標識或序號,以由各已升級AP利用對應的所有數(shù)據(jù)塊的標識或序號返回數(shù)據(jù)塊。
或者,待升級AP從已升級AP下載數(shù)據(jù)塊的過程也可以如下所述:待升級AP遍歷數(shù)據(jù)塊索引表的每個表項,向表項中已升級AP的IP發(fā)送對應的數(shù)據(jù)塊的標識或序號,以由各已升級AP利用數(shù)據(jù)塊的標識或序號返回數(shù)據(jù)塊。
在實際應用中,可根據(jù)應用環(huán)境和應用設備選擇上述兩種方式中應用較優(yōu)的一種。
在本例中,在出現(xiàn)以下兩種情況時,待升級AP無法從已升級AP下載到數(shù)據(jù)塊:一是AC將數(shù)據(jù)塊存儲到規(guī)劃好的已升級AP的過程中,發(fā)生了丟包。在這種情況下,已升級AP沒有存儲數(shù)據(jù)塊索引表項中本地IP對應的數(shù)據(jù)塊,待升級AP發(fā)送數(shù)據(jù)塊的標識或序號至已升級AP,接收的回應報文里數(shù)據(jù)塊的值為空。二是已升級AP存儲有數(shù)據(jù)塊索引表項中本地IP對應的數(shù)據(jù)塊,然而該已升級AP工作異常,接收到待升級AP發(fā)送的下載請求后無法響應。
為進一步保障待升級AP獲得升級文件的成功性,當待升級AP從已升級AP上無法獲得對應的數(shù)據(jù)塊時,待升級AP可以根據(jù)數(shù)據(jù)塊的標識或序號直接從AC下載該數(shù)據(jù)塊。
在本例中,由于待升級AP是從至少一個已升級AP上下載獲得升級文件的數(shù)據(jù)塊,因此在數(shù)據(jù)塊的下載過程中,下載得到的數(shù)據(jù)塊有可能與AC基于上述升級文件實際拆分出的數(shù)據(jù)塊,存在差異;或者,在數(shù)據(jù)塊的下載過程中,可能發(fā)生數(shù)據(jù)塊的丟失。
為規(guī)避這種情況,AC接收待升級AP發(fā)送的升級請求后,還可以下發(fā)用于針對升級文件進行完整性驗證的驗證信息。
在示出的一種實施方式中,AC可以下發(fā)上述升級文件的大小和基于上述升級文件計算得到的hash值至待升級AP。
在本實施例中,待升級AP將下載的數(shù)據(jù)塊拼接得到升級文件,可以針對AC下發(fā)的上述驗證信息,對拼接得到的升級文件進行完整性校驗。
例如:待升級AP可以先根據(jù)升級文件的大小,驗證拼接得到的升級文件,與原始的升級文件,在大小上是否一致,以確認接收的數(shù)據(jù)塊是否有缺失;如果接收收到升級文件大小和拼接出的升級文件大小一致,可以進一步計算拼接處的升級文件的hash值,將該hash值與AC下發(fā)的該升級文件的hash值是否一致;如果一致,表明拼接處的該升級文件通過完整性校驗,可以正常地利用拼接得到的該升級文件進行升級操作。
在針對完整性的校驗通過后,待升級AP可以基于拼接得到的升級文件進行升級。
在本實施例中,待升級AP在完成升級后,成為已升級AP,并向AC發(fā)送升級成功的回應報文。AC接收到回應報文后,將該已升級AP加入到已升級AP的隊列中。AC基于預設的策略把升級文件拆分為若干數(shù)據(jù)塊,重新對各數(shù)據(jù)塊的存儲位置進行規(guī)劃,將各數(shù)據(jù)塊存儲于不同的已升級AP上。所以此前完成升級的該已升級AP也會為后續(xù)的待升級AP提供上述升級文件的數(shù)據(jù)塊。
由此可見,本申請實施例中,隨著已升級AP的數(shù)量的增加,待升級AP能夠從越來越多的已升級AP上并發(fā)地獲取升級文件的數(shù)據(jù),相比現(xiàn)有技術,升級效率顯著提升。
為更直觀地對比本申請實施例中AP升級效率和現(xiàn)有技術中AP升級效率,以下示出一個具體的升級效率計算實例:
假設每個AP的傳輸速率的上限是a比特/秒,AC的傳輸速率的上限也是a比特/秒,升級文件的大小是K比特,AP的總數(shù)是N。
現(xiàn)有技術的AP升級時間是所有數(shù)據(jù)量除以AC的實際傳輸速率b,即:
Time1=K/b*N秒
本申請實施例的升級時間:
由于第一次升級文件只存在AC,故升級AP1的時間是K/a秒。
第二次升級時,AP2會向AP1請求所有的數(shù)據(jù)塊,因此第二次升級的時間是K/a秒。
第三次升級時,AP3會向AP1請求一半的數(shù)據(jù)塊,向AP2也請求一半的數(shù)據(jù)塊,又因為AP3向AP1和AP2的請求是并發(fā)進行的,所以第三次升級的時間是K/2a秒。
以此類推,第i次升級的時間是K/(i-1)a秒。所以總的升級時間為:
Time2=K/a+K/a+K/2a+K/3a+,...,+K/(N-1)a
=K/a+K/a*(1+1/2+1/3+,…,+1/(N-1))
=K/a+K/a*(ln(N)+r)
=K/a*(ln(N)+r+1)秒,r是歐拉常數(shù),約等于0.5772156649。
現(xiàn)有技術的AP升級時間是線性增加的,而本發(fā)明實施例的升級時間是對數(shù)增長,隨著N的增加,本發(fā)明實施例的升級時間相比現(xiàn)有技術的升級時間會小很多,且差距越來越大。
與本申請AP的升級方法的實施例相對應,本申請還提供了用于執(zhí)行上述方法實施例的裝置的實施例。
參見圖2,為本申請示出的一種AP的升級裝置的邏輯框圖,該裝置應用于待升級AP。
如圖2所示,該AP的升級裝置20包括:
接收單元210,用于接收AC下發(fā)的與升級文件對應的數(shù)據(jù)塊索引表;所述升級文件由所述AC拆分成若干數(shù)據(jù)塊,并分布存儲于不同的已升級AP;所述數(shù)據(jù)塊索引表包括所述若干數(shù)據(jù)塊與存儲了所述若干數(shù)據(jù)塊的已升級AP的IP之間的映射關系。
下載單元220,用于基于所述數(shù)據(jù)塊索引表,從各已升級AP下載數(shù)據(jù)塊。
升級單元230,用于將下載得到的數(shù)據(jù)塊拼接為所述升級文件,并基于拼接得到的所述升級文件進行升級。
在本例中:
所述接收單元210,進一步用于接收所述AC下發(fā)的所述升級文件的大小和基于所述升級文件計算得到的hash值。
所述升級單元230,進一步用于基于所述升級文件的大小和所述升級文件的hash值針對拼接得到的所述升級文件進行完整性校驗;當完整性校驗通過時,基于拼接得到的所述升級文件進行升級,并在升級成功后,向所述AC發(fā)送升級成功的回應報文。
在本例中,所述下載單元220,進一步用于當任一已升級AP上的數(shù)據(jù)塊下載失敗時,從所述AC下載該數(shù)據(jù)塊。
本申請AP的升級裝置的實施例可以應用在AP上。裝置實施例可以通過軟件實現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實現(xiàn)。以軟件實現(xiàn)為例,作為一個邏輯意義上的裝置,是通過其所在AP的處理器將非易失性存儲器中對應的計算機程序指令讀取到內(nèi)存中運行形成的。從硬件層面而言,如圖3所示,為本申請AP的升級裝置所在AP的一種硬件結(jié)構(gòu)圖,除了圖3所示的處理器、內(nèi)存、網(wǎng)絡接口、以及非易失性存儲器之外,實施例中裝置所在的AP通常根據(jù)該AP的升級裝置的實際功能,還可以包括其他硬件,對此不再贅述。
參見圖4,為本申請示出的一種AP的升級裝置的邏輯框圖,該裝置應用于AC。
如圖4所示,該AP的升級裝置40包括:
拆分單元410,用于拆分升級文件成若干數(shù)據(jù)塊,并將所述若干數(shù)據(jù)塊存儲于不同的已升級AP。
生成單元420,用于生成與所述升級文件對應的數(shù)據(jù)塊索引表;所述數(shù)據(jù)塊索引表包括所述若干數(shù)據(jù)塊與存儲了所述若干數(shù)據(jù)塊的已升級AP的IP之間的映射關系。
下發(fā)單元430,用于下發(fā)所述數(shù)據(jù)塊索引表至待升級AP。
在本例中,所述拆分單元410,進一步用于接收到待升級AP發(fā)送的升級成功的回應報文后,重新將所述升級文件分拆若干成數(shù)據(jù)塊分配到各個已升級AP上,更新所述數(shù)據(jù)塊索引表。
本申請AP的升級裝置的實施例可以應用在AC上。裝置實施例可以通過軟件實現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實現(xiàn)。以軟件實現(xiàn)為例,作為一個邏輯意義上的裝置,是通過其所在AC的處理器將非易失性存儲器中對應的計算機程序指令讀取到內(nèi)存中運行形成的。從硬件層面而言,如圖5所示,為本申請AP的升級裝置所在AC的一種硬件結(jié)構(gòu)圖,除了圖5所示的處理器、內(nèi)存、網(wǎng)絡接口、以及非易失性存儲器之外,實施例中裝置所在的AC通常根據(jù)該AP的升級裝置的實際功能,還可以包括其他硬件,對此不再贅述。
上述裝置中各個單元的功能和作用的實現(xiàn)過程具體詳見上述方法中對應步驟的實現(xiàn)過程,在此不再贅述。
對于裝置實施例而言,由于其基本對應于方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本申請方案的目的。本領域普通技術人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
以上所述僅為本申請的較佳實施例而已,并不用以限制本申請,凡在本申請的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本申請保護的范圍之內(nèi)。