報(bào)文處理方法、裝置及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及交換技術(shù)領(lǐng)域,特別涉及一種報(bào)文處理方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002] 虛擬可擴(kuò)展局域網(wǎng)(英文:Virtual extensible Local Area Network,簡(jiǎn)稱: VXLAN)是建立在物理互聯(lián)網(wǎng)協(xié)議(英文:Internet Protocol,簡(jiǎn)稱:IP)網(wǎng)絡(luò)上的虛擬以太 網(wǎng)。在VXLAN網(wǎng)絡(luò)中,為了提高鏈路帶寬,采用了等價(jià)多路徑(英文:Equal Cost Multiple path,簡(jiǎn)稱:ECMP)技術(shù)。ECMP技術(shù)使最短路徑橋模式(英文:Shortest Path Bridging MAC Mode,簡(jiǎn)稱:SPBM)網(wǎng)絡(luò)中的單一業(yè)務(wù)的數(shù)據(jù)幀能夠選擇多個(gè)可能的下一跳(即選擇多條可 能的路徑)。為了實(shí)現(xiàn)路徑的負(fù)載均衡,有兩種使用ECMP技術(shù)的選路方法,逐包哈希(hash) 和逐流hash。在逐包hash中,每條路徑的負(fù)載會(huì)均衡,但是會(huì)導(dǎo)致一個(gè)流內(nèi)的報(bào)文亂序,所 以逐包hash應(yīng)用較少;在逐流hash中,發(fā)送端根據(jù)報(bào)文中的五元組計(jì)算報(bào)文的hash值,將 hash值相等的報(bào)文通過同一條路徑發(fā)送,保證一個(gè)流內(nèi)的報(bào)文不會(huì)亂序,所以逐流hash應(yīng) 用較多。
[0003] 對(duì)于大象流、老鼠流等持續(xù)時(shí)間較長(zhǎng)的數(shù)據(jù)流,采用逐流hash容易導(dǎo)致某些路徑 負(fù)載較重,而其他的路徑負(fù)載較輕,從而降低路徑負(fù)載的均衡性。為此,現(xiàn)有技術(shù)提供了一 種流簇交換(Flowlet Switch)方案,包括:發(fā)送端將持續(xù)時(shí)間較長(zhǎng)的數(shù)據(jù)流分成多個(gè)子數(shù) 據(jù)流,每個(gè)子數(shù)據(jù)流中包括至少一個(gè)報(bào)文,在發(fā)送端探測(cè)到當(dāng)前子數(shù)據(jù)流所在的路徑擁塞 時(shí),發(fā)送端在當(dāng)前子數(shù)據(jù)流發(fā)送完成之后,將該子數(shù)據(jù)流的下一個(gè)子數(shù)據(jù)流通過所述路徑 的等價(jià)路徑發(fā)送。當(dāng)一個(gè)數(shù)據(jù)流中兩個(gè)報(bào)文的發(fā)送時(shí)間間隔大于預(yù)設(shè)的時(shí)間間隔(gap) 時(shí),可以對(duì)所述數(shù)據(jù)流采用上述流簇交換方案進(jìn)行負(fù)載均衡。通常,預(yù)設(shè)的時(shí)間間隔的大小 是根據(jù)經(jīng)驗(yàn)確定的。
[0004] 在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:
[0005] 現(xiàn)有技術(shù)是根據(jù)經(jīng)驗(yàn)確定預(yù)設(shè)的時(shí)間間隔的大小的,為了盡可能保證一個(gè)數(shù)據(jù)流 中的報(bào)文不出現(xiàn)亂序,通常將該預(yù)設(shè)的時(shí)間間隔設(shè)置的較大,比如,將該預(yù)設(shè)的時(shí)間間隔設(shè) 置為100微秒(US),而實(shí)際需要的子數(shù)據(jù)流之間的發(fā)送時(shí)間間隔的大小通常與路徑狀態(tài)有 關(guān),即,當(dāng)路徑較為暢通時(shí),實(shí)際需要的發(fā)送時(shí)間間隔通常較小,此時(shí),如果預(yù)設(shè)的時(shí)間間隔 較大,則會(huì)降低系統(tǒng)性能;當(dāng)路徑較為擁堵時(shí),實(shí)際需要的發(fā)送時(shí)間間隔通常較大,此時(shí),如 果預(yù)設(shè)的時(shí)間間隔較小,則會(huì)引起報(bào)文亂序。因此,現(xiàn)有技術(shù)中采用固定的預(yù)設(shè)時(shí)間間隔的 方案會(huì)降低系統(tǒng)性能,嚴(yán)重的時(shí)候還會(huì)導(dǎo)致報(bào)文亂序。
【發(fā)明內(nèi)容】
[0006] 為了解決現(xiàn)有技術(shù)中采用預(yù)設(shè)時(shí)間間隔發(fā)送子數(shù)據(jù)流導(dǎo)致的系統(tǒng)性能降低或者 報(bào)文亂序的問題,本發(fā)明提供了一種報(bào)文處理方法、裝置及系統(tǒng)。所述技術(shù)方案如下:
[0007] 第一方面,提供了一種報(bào)文處理方法,應(yīng)用于虛擬可擴(kuò)展局域網(wǎng)VXLAN中的第一 交換機(jī),所述第一交換機(jī)與第二交換機(jī)之間存在至少兩條等價(jià)路徑,所述方法包括:
[0008] 通過所述至少兩條等價(jià)路徑中的第一路徑向所述第二交換機(jī)發(fā)送第一 VXLAN報(bào) 文;
[0009] 接收所述第二交換機(jī)根據(jù)所述第一 VXLAN報(bào)文發(fā)送的第二VXLAN報(bào)文,所述第二 VXLAN報(bào)文用于通知所述第一交換機(jī)所述第二交換機(jī)收到所述第一 VXLAN報(bào)文;
[0010] 根據(jù)所述第二VXLAN報(bào)文判斷所述第一路徑是否滿足路徑切換條件;
[0011] 如果所述第一路徑滿足路徑切換條件,則在接收到與所述第一 VXLAN報(bào)文屬于同 一數(shù)據(jù)流的后續(xù)VXLAN報(bào)文時(shí),通過所述至少兩條等價(jià)路徑中的第二路徑向所述第二交換 機(jī)發(fā)送所述后續(xù)VXLAN報(bào)文。
[0012] 結(jié)合第一方面,在第一方面的第一種可能的實(shí)施方式中,所述第一 VXLAN報(bào)文包 括:原始報(bào)文和標(biāo)識(shí)信息,所述標(biāo)識(shí)信息用于識(shí)別所述第一 VXLAN報(bào)文,所述第二VXLAN報(bào) 文包括:類型標(biāo)志位和所述標(biāo)識(shí)信息,所述類型標(biāo)志位的值為第一預(yù)設(shè)值,所述第一預(yù)設(shè)值 用于指示所述第二VXLAN報(bào)文的報(bào)文類型為響應(yīng)類型,
[0013] 在接收所述第二交換機(jī)根據(jù)所述第一 VXLAN報(bào)文發(fā)送的第二VXLAN報(bào)文之前,所 述方法還包括:
[0014] 在發(fā)送表中記錄所述第一 VXLAN報(bào)文的標(biāo)識(shí)信息;
[0015] 所述判斷所述第一路徑是否滿足路徑切換條件包括:
[0016] 在所述第二VXLAN報(bào)文中的類型標(biāo)志位的值指示的報(bào)文類型為響應(yīng)類型時(shí),判斷 所述第二VXLAN報(bào)文中的標(biāo)識(shí)信息與所述發(fā)送表中的所述第一 VXLAN報(bào)文的標(biāo)識(shí)信息是否 相同;
[0017] 如果所述第二VXLAN報(bào)文中的標(biāo)識(shí)信息與所述發(fā)送表中的所述第一 VXLAN報(bào)文的 標(biāo)識(shí)信息相同,則確定所述第一路徑滿足路徑切換條件。
[0018] 結(jié)合第一方面的第一種可能的實(shí)施方式,在第一方面的第二種可能的實(shí)施方式 中,在所述接收所述第二交換機(jī)根據(jù)所述第一 VXLAN報(bào)文發(fā)送的第二VXLAN報(bào)文之后,所述 方法還包括:
[0019] 在所述第二VXLAN報(bào)文中的標(biāo)識(shí)信息與記錄的所述第一 VXLAN報(bào)文的標(biāo)識(shí)信息相 同時(shí),從所述發(fā)送表中刪除包括所述第一 VXLAN報(bào)文的標(biāo)識(shí)信息的表項(xiàng);或,
[0020] 在所述發(fā)送表中記錄的所述第一 VXLAN報(bào)文的標(biāo)識(shí)信息表明所述第一 VXLAN報(bào) 文所屬的數(shù)據(jù)流的已發(fā)送報(bào)文的個(gè)數(shù)超過預(yù)設(shè)值時(shí),清空所述發(fā)送表中記錄的所述第一 VXLAN報(bào)文的標(biāo)識(shí)信息。
[0021] 結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,或第一方面的第二種可能的實(shí)現(xiàn)方式, 在第一方面的第三種可能的實(shí)施方式中,
[0022] 所述第一 VXLAN報(bào)文是通過為所述原始報(bào)文封裝VXLAN隧道頭得到的,所述第一 VXLAN報(bào)文的標(biāo)識(shí)信息攜帶在所述第一 VXLAN報(bào)文的VXLAN隧道頭的保留字段中;
[0023] 所述第二VXLAN報(bào)文的VXLAN隧道頭的保留字段包括所述第一 VXLAN報(bào)文的標(biāo)識(shí) 信息,所述類型標(biāo)志位攜帶在所述第二VXLAN報(bào)文的VXLAN隧道頭的標(biāo)志字段中。
[0024] 結(jié)合第一方面的第三種可能的實(shí)施方式,在第一方面的第四種可能的實(shí)施方式 中,
[0025] 所述第二VXLAN報(bào)文是由所述第二交換機(jī)根據(jù)所述第一 VXLAN報(bào)文生成的;或,
[0026] 所述第二VXLAN報(bào)文為所述第二交換機(jī)在檢測(cè)到所述第二交換機(jī)的發(fā)送隊(duì)列中 存在反向報(bào)文時(shí),在所述反向報(bào)文的VXLAN隧道頭中添加所述第一 VXLAN報(bào)文的標(biāo)識(shí)信息 以及所述類型標(biāo)志位得到的,所述反向報(bào)文為所述第二交換機(jī)的發(fā)送隊(duì)列中外層目的互聯(lián) 網(wǎng)協(xié)議IP地址為所述第一交換機(jī)的IP地址的報(bào)文。
[0027] 結(jié)合第一方面的第三種可能的實(shí)施方式,在第一方面的第五種可能的實(shí)施方式 中,所述第一 VXLAN報(bào)文還包括:類型標(biāo)志位,所述類型標(biāo)志位位于所述第一 VXLAN報(bào)文的 VXLAN隧道頭的標(biāo)志字段中,所述類型標(biāo)志位的值為第二預(yù)設(shè)值,所述第二預(yù)設(shè)值用于指示 報(bào)文類型為請(qǐng)求類型。
[0028] 第二方面,提供了一種報(bào)文處理方法,應(yīng)用于虛擬可擴(kuò)展局域網(wǎng)VXLAN中的第二 交換機(jī),所述第二交換機(jī)與第一交換機(jī)之間存在至少兩條等價(jià)路徑,所述方法包括:
[0029] 通過所述至少兩條等價(jià)路徑中的第一路徑接收所述第一交換機(jī)發(fā)送的第一 VXLAN 報(bào)文;
[0030] 根據(jù)所述第一 VXLAN報(bào)文獲取第二VXLAN報(bào)文,所述第二VXLAN報(bào)文用于通知所 述第一交換機(jī)所述第二交換機(jī)收到所述第一 VXLAN報(bào)文;
[0031] 向所述第一交換機(jī)發(fā)送所述第二VXLAN報(bào)文,以便于所述第一交換機(jī)根據(jù)所述第 二VXLAN報(bào)文判斷所述第一路徑是否滿足路徑切換條件;
[0032] 在所述第一路徑滿足路徑切換條件時(shí),通過所述至少兩條等價(jià)路徑的第二路徑接 收所述第一交換機(jī)發(fā)送的與所述第一 VXLAN報(bào)文屬于同一數(shù)據(jù)流的后續(xù)VXLAN報(bào)文。
[0033] 結(jié)合第二方面,在第二方面的第一種可能的實(shí)施方式中,所述第一 VXLAN報(bào)文包 括:原始報(bào)文和標(biāo)識(shí)信息,所述標(biāo)識(shí)信息用于識(shí)別所述第一 VXLAN報(bào)文,所述第二VXLAN報(bào) 文包括:類型標(biāo)志位和所述標(biāo)識(shí)信息,所述類型標(biāo)志位的值為第一預(yù)設(shè)值,所述第一預(yù)設(shè)值 用于指示所述第二VXLAN報(bào)文的報(bào)文類型為響應(yīng)類型。
[0034] 結(jié)合第二方面的第一種可能的實(shí)施方式,在第二方面的第二種可能的實(shí)施方式 中,
[0035] 所述第一 VXLAN報(bào)文是通過為所述原始報(bào)文封裝VXLAN隧道頭得到的,所述第一 VXLAN報(bào)文的標(biāo)識(shí)信息攜帶在所述第一 VXLAN報(bào)文的VXLAN隧道頭的保留字段中;
[0036] 所述第二VXLAN報(bào)文的VXLAN隧道頭的保留字段包括所述第一 VXLAN報(bào)文的標(biāo)識(shí) 信息,所述類型標(biāo)志位攜帶在所述第二VXLAN報(bào)文的VXLAN隧道頭的標(biāo)志字段中。
[0037] 結(jié)合第二方面的第二種可能的實(shí)施方式,在第二方面的第三種可能的實(shí)施方式 中,所述根據(jù)所述第一 VXLAN報(bào)文獲取第二VXLAN報(bào)文,包括:
[0038] 根據(jù)所述第一 VXLAN報(bào)文生成所述第二VXLAN報(bào)文;或,
[0039] 檢測(cè)所述第二交換機(jī)的發(fā)送隊(duì)列中是否存在反向報(bào)文,所述反向報(bào)文為所述第二 交換機(jī)的發(fā)送隊(duì)列中外層目的互聯(lián)網(wǎng)協(xié)議IP地址為所述第一交換機(jī)的IP地址的報(bào)文,在 所述發(fā)送隊(duì)列中存在所述反向報(bào)文時(shí),在所述反向報(bào)文的VXLAN隧道頭中添加所述第一 VXLAN報(bào)文的標(biāo)識(shí)信息以及所述類型標(biāo)志位得到所述第二VXLAN報(bào)文。
[0040] 結(jié)合第二方面的第二種可能的實(shí)施方式,或第二方面的第三種可能的實(shí)施方式, 在第二方面的第四種可能的實(shí)施方式中,所述第一 VXLAN報(bào)文還包括:類型標(biāo)志位,所述類 型標(biāo)志位位于所述第一 VXLAN報(bào)文的VXLAN隧道頭的標(biāo)志字段中,所述類型標(biāo)志位的值為 第二預(yù)設(shè)值,所述第二預(yù)設(shè)值用于指示報(bào)文類型為請(qǐng)求類型,所述根據(jù)所述第一 VXLAN報(bào) 文獲取第二VXLAN報(bào)文之前,所述方法還包括:
[0041] 判斷所述第一 VXLAN報(bào)文中的類型標(biāo)志位的值指示的報(bào)文類型是否為請(qǐng)求類型;
[0042] 如果所述第一 VXLAN報(bào)文中的類型標(biāo)志位的值指示的報(bào)文類型為請(qǐng)求類型,則執(zhí) 行所述根據(jù)所述第一 VXLAN報(bào)文獲取第二VXLAN報(bào)文的步驟。
[0043] 第三方面,提供了一種報(bào)文處理裝置,所述裝置為虛擬可擴(kuò)展局域網(wǎng)VXLAN中的 第一交換機(jī),所述第一交換機(jī)與第二交換機(jī)之間存在至少兩條等價(jià)路徑,所述裝置包括:
[0044] 第一發(fā)送模塊,用于通過所述至少兩條等價(jià)路徑中的第一路徑向所述第二交換機(jī) 發(fā)送第一 VXLAN報(bào)文;
[0045] 接收模塊,用于接收所述第二交換機(jī)根據(jù)所述第一 VXLAN報(bào)文發(fā)送的第二VXLAN 報(bào)文,所述第二VXLAN報(bào)文用于通知所述第一交換機(jī)所述第二交換機(jī)收到所述第一 VXLAN 報(bào)文;
[0046] 判斷模塊,用于根據(jù)所述第二VXLAN報(bào)文判斷所述第一路徑是否滿足路徑切換條 件;
[0047] 第二發(fā)送模塊,用于在所述第一路徑滿足路徑切換條件且接收到與所述第一 VXLAN報(bào)文屬于同一數(shù)據(jù)流的后續(xù)VXLAN報(bào)文時(shí),通過所述至少兩條等價(jià)路徑中的第二路 徑向所述第二交換機(jī)發(fā)送所述后續(xù)VXLAN報(bào)文。
[0048] 結(jié)合第三方面,在第三方面的第一種可能的實(shí)施方式中,所述第一 VXLAN報(bào)文包 括:原始報(bào)文和標(biāo)識(shí)信息,所述標(biāo)識(shí)信息用于識(shí)別所述第一 VXLAN報(bào)文,所述第二VXLAN報(bào) 文包括:類型標(biāo)志位和所述標(biāo)識(shí)信息,所述類型標(biāo)志位的值為第一預(yù)設(shè)值,所述第一預(yù)設(shè)值 用于指示所述第二VXLAN報(bào)文的報(bào)文類型為響應(yīng)類型,所述裝置還包括:
[0049] 記錄模塊,用于在發(fā)送表中記錄所述第一 VXLAN報(bào)文的標(biāo)識(shí)信息;
[0050] 所述判斷模塊,包括:
[0051] 判斷單元,用于在所述第二VXLAN報(bào)文中的類型標(biāo)志位的值指示的報(bào)文類型為響 應(yīng)類型時(shí),判斷所述第二VXLAN報(bào)文中的標(biāo)識(shí)信息與所述發(fā)送表中的所述第一 VXLAN報(bào)文 的標(biāo)識(shí)信息是否相同;
[0052] 確定單元,用于在所述第二VXLAN報(bào)文中的標(biāo)識(shí)信息與所述發(fā)送表中的所述第一 VXLAN報(bào)文的標(biāo)識(shí)信息相同時(shí),確定所述第一路徑滿足路徑切換條件。
[0053] 結(jié)合第三方面的第一種可能的實(shí)施方式,在第三方面的第二種可能的實(shí)施方式 中,所述裝置還包括:
[0054] 刪除模塊,用于在所述第二VXLAN報(bào)文中的標(biāo)識(shí)信息與記錄的所述第一 VXLAN報(bào) 文的標(biāo)識(shí)信息相同時(shí),從所述發(fā)送表中刪除包括所述第一 VXLAN報(bào)文的標(biāo)識(shí)信息的表項(xiàng); 或,
[0055] 清空模塊,用于在所述發(fā)送表中記錄的所述第一 VXLAN報(bào)文的標(biāo)識(shí)信息表明所述 第一 VXLAN報(bào)文所屬的數(shù)據(jù)流的已發(fā)送報(bào)文的個(gè)數(shù)超過預(yù)設(shè)值時(shí),清空所述發(fā)送表中記錄 的所述第一 VXLAN報(bào)文的標(biāo)識(shí)信息。
[0056] 結(jié)合第三方面的第一種可能的實(shí)現(xiàn)方式,或第三方面的第二種可能的實(shí)現(xiàn)方式, 在第三方面的第三種可能的實(shí)施方式中,
[0057] 所述第一 VXLAN報(bào)文是通過為所述原始報(bào)文封裝VXLAN隧道頭得到的,所述第一 VXLAN報(bào)文的標(biāo)識(shí)信息攜帶在所述第一 VXLAN報(bào)文的VXLAN隧道頭的保留字段中;
[0058] 所述第二VXLAN報(bào)文的VXLAN隧道頭的保留字段包括所述第一 VXLAN報(bào)文的標(biāo)識(shí) 信息,所述類型標(biāo)志位攜帶在所述第二VXLAN報(bào)文的VXLAN隧道頭的標(biāo)志字段中。
[0059] 結(jié)合第三方面的第三種可能的實(shí)施方式,在第三方面的第四種可能的實(shí)施方式 中,
[0060] 所述第二VXLAN報(bào)文是由所述第二交換機(jī)根據(jù)所述第一 VXLAN報(bào)文生成的;或,
[0061] 所述第二VXLAN報(bào)文為所述第二交換機(jī)在檢測(cè)到所述第二交換機(jī)的發(fā)送隊(duì)列中 存在反向報(bào)文時(shí),在所述反向報(bào)文的VXLAN隧道頭中添加所述第一 VXLAN報(bào)文的標(biāo)識(shí)信息 以及所述類型標(biāo)志位得到的,所述反向報(bào)文為所述第二交換機(jī)的發(fā)送隊(duì)列中外層目的互聯(lián) 網(wǎng)協(xié)議IP地址為所述第一交換機(jī)的IP地址的報(bào)文。
[0062] 結(jié)合第三方面的第三種可能的實(shí)施方式,在第三方面的第五種可能的實(shí)施方式 中,所述第一 VXLAN報(bào)文還包括:類型標(biāo)志位,所述類型標(biāo)志位位于所述第一 VXLAN報(bào)文的 VXLAN隧道頭的標(biāo)志字段中,所述類型標(biāo)志位的值為第二預(yù)設(shè)值,所述第二預(yù)設(shè)值用于指示 報(bào)文類型為請(qǐng)求類型。
[0063] 第四方面,提供了一種報(bào)文處理裝置,所述裝置為虛擬可擴(kuò)展局域網(wǎng)VXLAN中的 第二交換機(jī),所述第二交換機(jī)與第一交換機(jī)之間存在至少兩條等價(jià)路徑,所述裝置包括: [0064] 第一接收模塊,用于通過所述至少兩條等價(jià)路徑中的第一路徑接收所述第一交換 機(jī)發(fā)送的第一 VXLAN報(bào)文;
[0065] 獲取模塊,用于根據(jù)所述第一 VXLAN報(bào)文獲取第二VXLAN報(bào)文,所述第二VXLAN報(bào) 文用于通知所述第一交換機(jī)所述第二交換機(jī)收到所述第一 VXLAN報(bào)文;
[0066] 發(fā)送模塊,用于向所述第一交換機(jī)發(fā)送所述第二VXLAN報(bào)文,以便于所述第一交 換機(jī)根據(jù)所述第二VXLAN報(bào)文判斷所述第一路徑是否滿足路徑切換條件;
[0067] 第二接收模塊,用于在所述第一路徑滿足路徑切換條件時(shí),