本發明涉及互聯網技術領域,尤其涉及一種數據傳輸方法及系統。
背景技術:
虛擬路由冗余協議(virtualrouterredundancyprotocol,vrrp)是一種選擇協議,廣泛應用在邊緣網絡中。vrrp將局域網內的一組路由器(包括一個主路由器和若干個備份路由器)組織成一個虛擬路由器,稱之為備份組。備份組內的路由器開啟vrrp功能后,根據優先級確定自己的主備份角色,優先級高的為主路由器,并在主路由器發生故障之前,保持主路由器工作,其他路由器不工作。
然而,在一個備份組中僅保持一臺主路由器工作容易造成帶寬浪費。
技術實現要素:
本發明旨在至少在一定程度上解決相關技術中的技術問題之一。
為此,本發明的第一個目的在于提出一種數據傳輸方法,以使vrrp路由器均以主路由器的身份同時工作,達到增加帶寬的目的,解決現有技術中帶寬浪費的技術問題。
本發明的第二個目的在于提出一種數據傳輸系統。
為達上述目的,本發明第一方面實施例提出了一種數據傳輸方法,包括:
第一路由設備與第二路由設備進行虛擬路由冗余協議協商;
在所述第一路由設備與所述第二路由設備協商失敗時,所述第一路由設備和所述第二路由設備均設置成主設備狀態;
所述第一路由設備和所述第二路由設備在所述主設備狀態下同時工作。
本發明實施例的數據傳輸方法,通過第一路由設備和第二路由設備進行虛擬路由冗余協議協商,在協商失敗時,第一路由設備和第二路由設備均設置成主設備狀態,第一路由設備和第二路由設備在主設備狀態下同時工作。通過將路由設備均設置為主設備狀態同時工作,能夠增加帶寬,同時實現設備備份功能,提高網絡可靠性。
為達上述目的,本發明第二方面實施例提出了一種數據傳輸系統,包括:
第一路由設備和第二路由設備;
所述第一路由設備,用于與第二路由設備進行虛擬路由冗余協議協商,在協商失敗時將自身設置成主設備狀態,并與所述第二路由設備在所述主設備狀態下同時工作;所述第二路由設備,用于與所述第一路由設備進行虛擬路由冗余協議協商,在協商失敗時將自身設置成主設備狀態,并與所述第一路由設備在所述主設備狀態下同時工作。
本發明實施例的數據傳輸系統,通過設置第一路由設備和第二路由設備,第一路由設備和第二路由設備進行虛擬路由冗余協議協商,在協商失敗時,第一路由設備和第二路由設備均將自身設置成主設備狀態,第一路由設備和第二路由設備在主設備狀態下同時工作。通過將路由設備均設置為主設備狀態同時工作,能夠增加帶寬,同時實現設備備份功能,提高網絡可靠性。
本發明附加的方面和優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發明的實踐了解到。
附圖說明
本發明上述的和/或附加的方面和優點從下面結合附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1為傳統vrrp協議的工作拓撲圖;
圖2為本發明一實施例提出的數據傳輸方法的流程示意圖;
圖3為根據本發明實施例的vrrp協議工作拓撲圖;
圖4為本發明另一實施例提出的數據傳輸方法的流程示意圖;
圖5為本發明再一實施例提出的數據傳輸方法的流程示意圖;
圖6為本發明又一實施例提出的數據傳輸方法的流程示意圖;
圖7為本發明一實施例提出的數據傳輸系統的結構示意圖;
圖8為本發明另一實施例提出的數據傳輸系統的結構示意圖。
具體實施方式
下面詳細描述本發明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,旨在用于解釋本發明,而不能理解為對本發明的限制。
下面參考附圖描述本發明實施例的數據傳輸方法及系統。
vrrp協議作為一種選擇協議,能夠避免ip數據流量失敗轉移引起混亂,允許主機使用單路由設備,并在第一跳路由器發生故障的情況下仍能保持路由器間的連通性。
圖1為傳統vrrp協議的工作拓撲圖,僅以備份組中包含兩個路由器為例進行說明。如圖1所示,vrrp協議的工作過程具體描述如下:
(1)啟動vrrp協議:路由器1和路由器2開啟vrrp功能后,首先根據優先級確定自己的主備角色。
(2)選舉主備角色:優先級高的路由器成為主用路由器,優先級低的路由器成為備用路由器。
(3)定期通告:主用路由器定期向備用路由器發送vrrp通告報文,以通知備份組內的備用路由器自己處于正常工作狀態;備用路由器開啟定時器功能,以判斷在定時時限內是否接收到通告報文。
(4)故障處理:若超過備用路由器的定時范圍后仍未接收到主用路由器發送的vrrp通告報文,則認為主用路由器出現故障,此時備用路由器選舉自己為主用路由器,并對外發送vrrp通告報文。
現有vrrp協議工作時,只能由處于主用狀態的路由器1工作,而處于備用狀態的路由器2不工作,在如圖1所示的示例中,工作流程只能是:路由器3<—>路由器1<—>服務器,而路由器3<—>路由器2<—>服務器這條路徑不轉發報文,導致設備帶寬浪費。若要增加帶寬,必須擴容設備,需要再增加兩臺路由器,增加了設備成本。
針對上述問題,本發明實施例提出一種數據傳輸方法,能夠使備份組內的路由器均作為主設備同時工作,在不增加設備的條件下增加帶寬。
需要說明的是,以下描述的實施例均可以用于vrrp的備份組中至少包含兩個路由器的情形,為便于描述和理解,下面僅以備份組中僅包含兩個路由器為例進行說明,但不能作為對本發明的限制。
圖2為本發明一實施例提出的數據傳輸方法的流程示意圖。
如圖2所示,該數據傳輸方法包括以下步驟:
s11,第一路由設備與第二路由設備進行虛擬路由冗余協議協商。
vrrp的備份組中,至少包括兩個路由器,本發明實施例僅以備份組中包含兩個路由器進行說明,分別稱為第一路由設備和第二路由設備。在vrrp協議啟動之后,第一路由設備和第二路由設備需要進行協商。
s12,在第一路由設備與第二路由設備協商失敗時,第一路由設備和第二路由設備均設置成主設備狀態。
本實施例中,當第一路由設備與第二路由設備協商失敗時,第一路由設備和第二路由設備均設置為主設備狀態。
s13,第一路由設備和第二路由設備在主設備狀態下同時工作。
在vrrp備份組中,處于主設備狀態下的第一路由設備和第二路由設備同時工作。
舉例而言,圖3為根據本發明實施例的vrrp協議工作拓撲圖。如圖3所示,路由器1和路由器2均處于主設備狀態,路由器3<—>路由器1<—>服務器和路由器3<—>路由器2<—>服務器這兩條鏈路同時工作。當其中一條鏈路故障時,另一條鏈路仍保持正常工作狀態,而無需重新選擇主用路由設備。能夠在不增加設備的條件下增加帶寬,同時起到設備備份的作用。
本實施例的數據傳輸方法,通過第一路由設備和第二路由設備進行虛擬路由冗余協議協商,在協商失敗時,第一路由設備和第二路由設備均設置成主設備狀態,第一路由設備和第二路由設備在主設備狀態下同時工作。通過將路由設備均設置為主設備狀態同時工作,能夠增加帶寬,同時實現設備備份功能,提高網絡可靠性。
為了能夠在第一路由設備和第二路由設備協商失敗時將第一路由設備和第二路由設備設置為主設備狀態,本發明實施例提出了兩種使第一路由設備和第二路由設備協商失敗的方式。
作為其中一種可能的實現方式,如圖4所示,在如圖1所示實施例的基礎上,步驟s11之后還包括:
s21,為第一路由設備和第二路由設備分別配置不同的協商密碼。
其中,第一路由設備的協商密碼為第一密碼,第二路由設備的協商密碼為第二密碼,第一密碼與第二密碼不同。
由于vrrp協議中,只有當兩端的路由器的協商密碼配置一致時才認為兩端的路由器可以配對,才能協商成功;當協商密碼不一致時,兩端的路由器協商失敗。因此,本實施例中,可以通過為第一路由設備和第二路由設備分別配置不同的協商密碼,為第一路由設備配置第一密碼,為第二路由設備配置第二密碼,且第一密碼與第二密碼不同,來使第一路由設備和第二路由設備協商失敗。
s22,第一路由設備接收第二路由設備發送的第一協商報文,第二路由設備接收第一路由設備發送的第二協商報文。
其中,第一協商報文由第二路由設備利用第二密碼加密,第二協商報文由第一路由設備利用第一密碼加密。
本實施例中,可以為vrrp協議兩端的第一路由設備和第二路由設備設置協商報文,并利用配置的協商密碼對協商報文進行加密。
具體地,可以設置第二路由設備的協商報文由第二路由設備利用第二密碼加密,加密后的協商報文稱為第一協商報文,由第二路由設備發送至第一路由設備進行協商,第一路由設備接收第二路由設備發送的第一協商報文。第一路由設備的協商報文由第一路由設備利用第一密碼加密,加密后的協商報文稱為第二協商報文,由第一路由設備發送至第二路由設備進行協商,第二路由設備接收第一路由設備發送的第二協商報文。
s23,第一路由設備采用第一密碼解密第一協商報文,第二路由設備采用第二密碼解密第二協商報文。
第一路由設備和第二路由設備分別收到對方發送的第一協商報文和第二協商報文之后,采用各自的協商密碼對協商報文進行解密,即第一路由設備采用第一密碼對接收到的第一協商報文進行解密,第二路由設備采用第二密碼對接收到的第二協商報文進行解密。當第一路由設備和第二路由設備均解密成功時,則表明第一路由設備和第二路由設備協商成功。
s24,當解密協商報文失敗時,則確定第一路由設備與第二路由設備協商失敗。
能夠理解的是,對于一份加密文件,只有使用與加密密碼相同的密碼進行解密才能打開。而本實施例中,由于第一密碼和第二密碼不同,因此第一路由設備采用第一密碼解密由第二密碼進行加密的第一協商報文時,會解密失敗;第二路由設備采用第二密碼解密由第一密碼進行加密的第二協商報文時,同樣會失敗。當第一路由設備和第二路由設備解密協商報文均失敗時,可以確定第一路由設備與第二路由設備協商失敗。
本實施例的數據傳輸方法,通過為第一路由設備和第二路由設備分別配置不同的協商密碼,第一路由設備接收第二路由設備發送的第一協商報文,第二路由設備接收第一路由設備發送的第二協商報文,第一路由設備采用第一密碼解密第一協商報文,第二路由設備采用第二密碼解密第二協商報文,當解密協商報文失敗時,則確定第一路由設備與第二路由設備協商失敗,能夠為設置第一路由設備和第二路由設備處于主設備狀態奠定技術基礎。
作為另一種可能的實現方式,如圖5所示,在如圖1所示實施例的基礎上,步驟s11之后還可以包括以下步驟:
s31,第一路由設備接收到第二路由設備發送的協商報文,以及第二路由設備接收第一路由設備發送的協商報文。
vrrp備份組內的路由器一般使用協商報文進行任務協商,本實施例中,可以設置第一路由設備接收第二路由設備發送的協商報文,第二路由設備接收第一路由設備發送的協商報文。
s32,第一路由設備和第二路由設備在接收到協商報文后,均刪除協商報文。
s33,在協商報文刪除后,確定第一路由設備與第二路由設備協商失敗。
本實施例中,第一路由設備和第二路由設備分別接收到對方發送的vrrp協商報文之后,可以通過軟件方式實現對vrrp協商報文的刪除,即將vrrp協商報文刪除。刪除協商報文相當于協商報文丟棄,無法進行協商,則可確定第一路由設備與第二路由設備協商失敗。
本實施例的數據傳輸方法,通過第一路由設備接收到第二路由設備發送的協商報文,第二路由設備接收到第一路由設備發送的協商報文之后,均刪除協商報文,之后確定第一路由設備與第二路由設備協商失敗,能夠為設置第一路由設備和第二路由設備處于主設備狀態奠定技術基礎。
圖6為本發明又一實施例提出的數據傳輸方法的流程示意圖。
如圖6所示,該數據傳輸方法可以包括以下步驟:
s41,第一路由設備與第二路由設備進行虛擬路由冗余協議協商。
s42,在第一路由設備與第二路由設備協商失敗時,第一路由設備和第二路由設備均設置成主設備狀態。
需要說明的是,本發明對步驟s41-s42的描述,可以參見前述實施例中對步驟s11-s12的描述,其實現原理類似,此處不再贅述。
s43,第一路由設備和第二路由設備在主設備狀態下同時工作。
具體地,第一路由設備和第二路由設備在主設備狀態下同時工作,可以包括:第一路由設備和第二路由設備分別接收第三路由設備發送的第一數據,并且經過各自與服務器之間的鏈路將第一數據發送給服務器。
也就是說,均處于主設備狀態的第一路由設備和第二路由設備具有平等的地位,二者同時接收第三路由設備發送的數據,并經由各自的通信鏈路將接收到的數據轉發給服務器。當其中一條鏈路故障時,另一條鏈路仍能保持正常工作。
第一路由設備和第二路由設備同時工作的拓撲圖可參見前述圖3所示,此處不再過多描述。
通過兩條鏈路同時發送數據,能夠起到設備備份的作用,同時增加帶寬,保證數據傳輸的可靠性。
s44,服務器從第一路由設備和第二路由設備與服務器之間的兩條鏈路中選擇一條鏈路作為目標鏈路。
當服務器通過第一路由設備和/或第二路由設備發送數據時,可以從第一路由設備和第二路由設備與服務器之間的兩條鏈路中選擇一條鏈路作為目標鏈路。
具體地,服務器可以通過hash算法計算兩條鏈路的hash值,基于hash值從兩條鏈路中選擇目標鏈路。
為了滿足服務器在網絡方面的需求,服務器中通常至少設置兩個網卡。以服務器中設置有兩個網卡為例,服務器連接第一路由設備和第二路由設備時,服務器中的兩個網卡均配置為綁定(bond)方式,并設置成動態鏈接聚合模式(即mode4模式)。在該配置下,服務器基于hash算法選擇目標鏈路,先由hash算法根據報文的五元組(即源ip地址、源端口號、協議類型、目的ip地址和目的端口號)計算出兩條鏈路的hash值,進而由服務器根據hash值從兩條鏈路中選擇目標鏈路。由于服務器通過hash算法僅選擇一條傳輸鏈路,從而,服務器中的兩個網卡分別選擇不同的鏈路發送數據,能夠達到帶寬加倍的目的。
s45,服務器通過目標鏈路向第三路由設備發送第二數據。
本實施例中,服務器通過計算鏈路的hash值確定了目標鏈路之后,即可通過目標鏈路向第三路由設備發送第二數據。
本實施例的數據傳輸方法,通過第一路由設備與第二路由設備進行虛擬路由冗余協議協商,在第一路由設備與第二路由設備協商失敗時,第一路由設備和第二路由設備均設置成主設備狀態,第一路由設備和第二路由設備在主設備狀態下同時工作,服務器從第一路由設備和第二路由設備與服務器之間的兩條鏈路中選擇一條鏈路作為目標鏈路,服務器通過目標鏈路向第三路由設備發送第二數據。由此,能夠增加帶寬,同時實現設備備份功能,提高網絡可靠性。
為了實現上述實施例,本發明還提出一種數據傳輸系統。
圖7為本發明一實施例提出的數據傳輸系統的結構示意圖。
如圖7所示,該數據傳輸系統70包括:第一路由設備710和第二路由設備720。其中,
第一路由設備710,用于與第二路由設備720進行虛擬路由冗余協議協商,在協商失敗時將自身設置成主設備狀態,并與第二路由設備720在主設備狀態下同時工作。
第二路由設備720,用于與第一路由設備710進行虛擬路由冗余協議協商,在協商失敗時將自身設置成主設備狀態,并與第一路由設備710在主設備狀態下同時工作。
當第一路由設備710和第二路由設備720協商失敗時,才各自將自身設置為主動狀態并同時工作,為此,本發明實施例提出了兩種使第一路由設備710和第二路由設備720協商失敗的方法。
在其中一種可能的實現方式中,為第一路由設備710與第二路由設備720配置不同的協商密碼,其中,第一路由設備710的協商密碼為第一密碼,第二路由設備720的協商密碼為第二密碼。此時,
第一路由設備710用于接收第二路由設備720發送的第一協商報文,并采用第一密碼解密第一協商報文,以及在解密第一協商報文失敗時,確定與第二路由設備720協商失敗,其中,,第一協商報文由第二路由設備720利用第二密碼加密。
第二路由設備720用于接收第一路由設備710發送的第二協商報文,并采用第二密碼解密第二協商報文,以及在解密第一協商報文失敗時,確定與第一路由設備710協商失敗,其中,第二協商報文由第一路由設備710利用第一密碼加密。
在另一種可能的實現方式中,第一路由設備710還用于接收第二路由設備720發送的協商報文,在接收到協商報文后,刪除協商報文,在協商報文刪除后,確定與第二路由設備720協商失敗。
第二路由設備720還用于接收第一路由設備710發送的協商報文,在接收到協商報文后,刪除協商報文,在協商報文刪除后,確定與第一路由設備710協商失敗。
可選地,在本發明實施例一種可能的實現方式中,如圖8所示,在如圖7所示實施例的基礎上,該數據傳輸系統70還可以包括:第三路由設備730和服務器740。其中,
第三路由設備730,用于同時向第一路由設備710和第二路由設備720發送第一數據。
服務器740,用于接收第一路由設備710和第二路由設備720發送的第一數據。
在該實施例中,第一路由設備710還用于接收第一數據,并且經過與服務器740之間的鏈路將第一數據發送給服務器740。第二路由設備720還用于接收第一數據,并且經過與服務器740之間的鏈路將第一數據發送給服務器740。
本實施例中,當第一路由設備710與第二路由設備720協商失敗后,第一路由設備710和第二路由設備720均將自身設置為主設備狀態,并在主設備狀態下同時工作。第三路由設備730可以將需要傳輸的第一數據同時發送給第一路由設備710和第二路由設備720,經第一路由設備710與服務器740之間以及第二路由設備720與服務器740之間的兩條鏈路同時傳輸至服務器740,達到設備備份以及增加帶寬的目的。
可選地,在本發明實施例一種可能的實現方式中,當服務器740需要發送數據時,可以從第一路由設備710和第二路由設備720與服務器740之間的兩條鏈路中選擇一條鏈路作為目標鏈路,通過目標鏈路向第三路由設備730發送第二數據。其中,服務器740在選擇目標鏈路時,具體通過計算兩條鏈路的hash值,基于hash值從兩條鏈路中選擇目標鏈路。
需要說明的是,前述對數據傳輸方法實施例的解釋說明也適用于本實施例的數據傳輸系統,其實現原理類似,此處不再贅述。
本實施例的數據傳輸系統,通過設置第一路由設備和第二路由設備,第一路由設備和第二路由設備進行虛擬路由冗余協議協商,在協商失敗時,第一路由設備和第二路由設備均將自身設置成主設備狀態,第一路由設備和第二路由設備在主設備狀態下同時工作。通過將路由設備均設置為主設備狀態同時工作,能夠增加帶寬,同時實現設備備份功能,提高網絡可靠性。
在本說明書的描述中,參考術語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體特征、結構、材料或者特點包含于本發明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不必須針對的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任一個或多個實施例或示例中以合適的方式結合。此外,在不相互矛盾的情況下,本領域的技術人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特征進行結合和組合。
此外,術語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術特征的數量。由此,限定有“第一”、“第二”的特征可以明示或者隱含地包括至少一個該特征。在本發明的描述中,“多個”的含義是至少兩個,例如兩個,三個等,除非另有明確具體的限定。
流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現定制邏輯功能或過程的步驟的可執行指令的代碼的模塊、片段或部分,并且本發明的優選實施方式的范圍包括另外的實現,其中可以不按所示出或討論的順序,包括根據所涉及的功能按基本同時的方式或按相反的順序,來執行功能,這應被本發明的實施例所屬技術領域的技術人員所理解。
在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認為是用于實現邏輯功能的可執行指令的定序列表,可以具體實現在任何計算機可讀介質中,以供指令執行系統、裝置或設備(如基于計算機的系統、包括處理器的系統或其他可以從指令執行系統、裝置或設備取指令并執行指令的系統)使用,或結合這些指令執行系統、裝置或設備而使用。就本說明書而言,"計算機可讀介質"可以是任何可以包含、存儲、通信、傳播或傳輸程序以供指令執行系統、裝置或設備或結合這些指令執行系統、裝置或設備而使用的裝置。計算機可讀介質的更具體的示例(非窮盡性列表)包括以下:具有一個或多個布線的電連接部(電子裝置),便攜式計算機盤盒(磁裝置),隨機存取存儲器(ram),只讀存儲器(rom),可擦除可編輯只讀存儲器(eprom或閃速存儲器),光纖裝置,以及便攜式光盤只讀存儲器(cdrom)。另外,計算機可讀介質甚至可以是可在其上打印所述程序的紙或其他合適的介質,因為可以例如通過對紙或其他介質進行光學掃描,接著進行編輯、解譯或必要時以其他合適方式進行處理來以電子方式獲得所述程序,然后將其存儲在計算機存儲器中。
應當理解,本發明的各部分可以用硬件、軟件、固件或它們的組合來實現。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執行系統執行的軟件或固件來實現。如,如果用硬件來實現和在另一實施方式中一樣,可用本領域公知的下列技術中的任一項或他們的組合來實現:具有用于對數據信號實現邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(pga),現場可編程門陣列(fpga)等。
本技術領域的普通技術人員可以理解實現上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,該程序在執行時,包括方法實施例的步驟之一或其組合。
此外,在本發明各個實施例中的各功能單元可以集成在一個處理模塊中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現,也可以采用軟件功能模塊的形式實現。所述集成的模塊如果以軟件功能模塊的形式實現并作為獨立的產品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質中。
上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。盡管上面已經示出和描述了本發明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發明的限制,本領域的普通技術人員在本發明的范圍內可以對上述實施例進行變化、修改、替換和變型。