維護(hù)組播成員的方法及設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,特別涉及一種維護(hù)組播成員的方法及設(shè)備。
【背景技術(shù)】
[0002] SDN(Software Defined Network,軟件定義網(wǎng)絡(luò))網(wǎng)絡(luò)中包括控制器、交換機(jī)和主 機(jī)。多個(gè)主機(jī)可以同時(shí)加入一個(gè)組播組,且一個(gè)主機(jī)也可以同時(shí)加入多個(gè)組播組,加入組播 組的主機(jī)可以被稱為組播成員。當(dāng)實(shí)現(xiàn)組播通信時(shí),交換機(jī)負(fù)責(zé)控制器與組播成員之間的 數(shù)據(jù)流轉(zhuǎn)發(fā),控制器對(duì)加入該組播組的組播成員和離開(kāi)該組播組的組播成員進(jìn)行維護(hù),以 控制數(shù)據(jù)流的轉(zhuǎn)發(fā)路徑。
[0003] 目前維護(hù)組播成員的過(guò)程為:控制器向交換機(jī)發(fā)送通用查詢消息,交換機(jī)接收該 通用查詢消息,并將該通用查詢消息發(fā)送給該組播組包括的組播成員。當(dāng)組播成員接收到 該通用查詢消息,對(duì)自身已加入的所有組播組都產(chǎn)生一條查詢響應(yīng)消息,并將產(chǎn)生的查詢 響應(yīng)消息發(fā)送給交換機(jī),由交換機(jī)將該查詢響應(yīng)消息發(fā)送給控制器。當(dāng)控制器接收到該查 詢響應(yīng)消息時(shí),對(duì)該查詢響應(yīng)消息進(jìn)行處理,以確定組播成員是否發(fā)生變化,進(jìn)而實(shí)現(xiàn)對(duì)該 組播組中的組播成員進(jìn)行維護(hù)。
[0004] 由于控制器周期性地向組播組包括的組播成員發(fā)送通用查詢消息,且當(dāng)組播組包 括的組播成員數(shù)量較多時(shí),控制器會(huì)周期性地接收到較多的查詢響應(yīng)消息,增加了控制器 的負(fù)載,進(jìn)而降低了控制器的處理效率。
【發(fā)明內(nèi)容】
[0005] 為了解決現(xiàn)有技術(shù)的問(wèn)題,本發(fā)明實(shí)施例提供了一種維護(hù)組播成員的方法及設(shè) 備。所述技術(shù)方案如下:
[0006] 第一方面,提供了一種維護(hù)組播成員的方法,所述方法包括:
[0007] 每隔預(yù)設(shè)周期,向交換機(jī)發(fā)送查詢消息,使所述交換機(jī)將所述查詢消息發(fā)送給組 播組包括的所有組播成員;
[0008] 獲取所述交換機(jī)在當(dāng)前周期內(nèi)接收到的本周期查詢響應(yīng)計(jì)數(shù)值;
[0009] 根據(jù)所述本周期查詢響應(yīng)計(jì)數(shù)值和上一周期查詢響應(yīng)計(jì)數(shù)值,對(duì)所述組播組包括 的組播成員進(jìn)行維護(hù)。
[0010] 結(jié)合第一方面,在上述第一方面的第一種可能的實(shí)現(xiàn)方式中,所述獲取所述交換 機(jī)在當(dāng)前周期內(nèi)接收到的本周期查詢響應(yīng)計(jì)數(shù)值,包括:
[0011] 向所述交換機(jī)發(fā)送流表項(xiàng)查詢消息,所述流表項(xiàng)查詢消息攜帶目標(biāo)流表標(biāo)識(shí)和目 標(biāo)流表項(xiàng)標(biāo)識(shí),使所述交換機(jī)查詢所述目標(biāo)流表標(biāo)識(shí)和所述目標(biāo)流表項(xiàng)標(biāo)識(shí)對(duì)應(yīng)的查詢響 應(yīng)計(jì)數(shù)值;
[0012] 接收所述交換機(jī)發(fā)送的查詢響應(yīng)計(jì)數(shù)值,將接收到查詢響應(yīng)計(jì)數(shù)值確定為本周期 查詢響應(yīng)計(jì)數(shù)值。
[0013] 結(jié)合第一方面或第一方面第一種可能的實(shí)現(xiàn)方式,在上述第一方面的第二種可能 的實(shí)現(xiàn)方式中,所述根據(jù)所述本周期查詢響應(yīng)計(jì)數(shù)值和上一周期查詢響應(yīng)計(jì)數(shù)值,對(duì)所述 組播組包括的組播成員進(jìn)行維護(hù),包括:
[0014] 獲取所述組播組對(duì)應(yīng)的預(yù)設(shè)查詢響應(yīng)計(jì)數(shù)增值;
[0015] 計(jì)算所述本周期查詢響應(yīng)計(jì)數(shù)值與所述上一周期查詢響應(yīng)計(jì)數(shù)值之間的差值;
[0016] 根據(jù)所述差值和所述預(yù)設(shè)查詢響應(yīng)計(jì)數(shù)增值,對(duì)所述組播組包括的組播成員進(jìn)行 維護(hù)。
[0017] 結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,在上述第一方面的第三種可能的實(shí)現(xiàn)方 式中,所述根據(jù)所述差值和所述預(yù)設(shè)查詢響應(yīng)計(jì)數(shù)增值,對(duì)所述組播組包括的組播成員進(jìn) 行維護(hù),包括:
[0018] 如果所述差值小于所述預(yù)設(shè)查詢響應(yīng)計(jì)數(shù)增值,則確定所述組播組中存在異常離 開(kāi)的組播成員;
[0019] 獲取所述異常離開(kāi)的組播成員對(duì)應(yīng)的端口號(hào),并從組播路徑中刪除所述獲取的端 口號(hào)。
[0020] 結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式,在上述第一方面的第四種可能的實(shí)現(xiàn)方 式中,所述獲取所述異常離開(kāi)的組播成員對(duì)應(yīng)的端口號(hào),包括:
[0021] 向所述交換機(jī)發(fā)送刪除消息,所述刪除消息攜帶組播組地址,使所述交換機(jī)刪除 所述組播組地址對(duì)應(yīng)的流表項(xiàng);
[0022] 向所述交換機(jī)發(fā)送查詢消息,所述查詢消息攜帶所述組播組的組播組地址,使所 述交換機(jī)將所述查詢消息發(fā)送給所述組播組包括的所有組播成員;
[0023] 接收所述交換機(jī)上報(bào)的至少一個(gè)第二查詢響應(yīng),所述至少一個(gè)第二查詢響應(yīng)是對(duì) 至少一個(gè)第一查詢響應(yīng)分別進(jìn)行封裝得到,所述至少一個(gè)第一查詢響應(yīng)由所述組播組包括 的組播成員根據(jù)所述查詢消息發(fā)送,且所述至少一個(gè)第二查詢響應(yīng)均攜帶組播組地址和端 口號(hào);
[0024] 根據(jù)所述組播組地址,從已存儲(chǔ)的組播組地址與端口號(hào)之間的對(duì)應(yīng)關(guān)系中獲取對(duì) 應(yīng)的端口號(hào);
[0025] 比較獲取的端口號(hào)與所述至少一個(gè)第二查詢響應(yīng)攜帶的端口號(hào),以確定所述異常 離開(kāi)的組播成員對(duì)應(yīng)的端口號(hào)。
[0026] 結(jié)合第一方面、第一方面的第一種可能的實(shí)現(xiàn)方式、第一方面的第二種可能的實(shí) 現(xiàn)方式、第一方面的第三種可能的實(shí)現(xiàn)方式或第一方面的第四種可能的實(shí)現(xiàn)方式,在上述 第一方面的第五種可能的實(shí)現(xiàn)方式中,所述方法還包括:
[0027] 接收組播成員發(fā)送的第一加入組播消息,所述第一加入組播消息攜帶組播組地 址;
[0028] 根據(jù)所述組播組地址和所述組播成員對(duì)應(yīng)的端口號(hào),為所述組播成員創(chuàng)建流表 項(xiàng);
[0029] 將所述流表項(xiàng)發(fā)送給所述交換機(jī),使所述交換機(jī)將所述流表項(xiàng)存儲(chǔ)在對(duì)應(yīng)的流表 中。
[0030] 第二方面,提供了一種維護(hù)組播成員的方法,所述方法包括:
[0031] 每隔預(yù)設(shè)周期,接收控制器發(fā)送的查詢消息,并將所述查詢消息發(fā)送給組播組包 括的所有組播成員;
[0032] 接收所述組播成員發(fā)送的第一查詢響應(yīng),所述第一查詢響應(yīng)攜帶組播組地址;
[0033] 如果已存儲(chǔ)的流表中包括所述組播組地址和所述組播成員對(duì)應(yīng)的端口號(hào)所在的 流表項(xiàng),則丟棄所述第一查詢響應(yīng),并根據(jù)所述第一查詢響應(yīng)的數(shù)量獲取本周期查詢響應(yīng) 計(jì)數(shù)值;
[0034] 將所述本周期查詢響應(yīng)計(jì)數(shù)值發(fā)送給所述控制器,使所述控制器根據(jù)所述本周期 查詢響應(yīng)計(jì)數(shù)值和上一周期查詢響應(yīng)計(jì)數(shù)值對(duì)所述組播組包括的組播成員進(jìn)行維護(hù)。
[0035] 結(jié)合第二方面,在上述第二方面的第一種可能的實(shí)現(xiàn)方式中,所述將所述本周期 查詢響應(yīng)計(jì)數(shù)值發(fā)送給所述控制器,包括:
[0036] 接收所述控制器發(fā)送的流表項(xiàng)查詢消息,所述流表項(xiàng)查詢消息攜帶目標(biāo)流表標(biāo)識(shí) 和目標(biāo)流表項(xiàng)標(biāo)識(shí);
[0037] 根據(jù)所述目標(biāo)流表標(biāo)識(shí)和所述目標(biāo)流表項(xiàng)標(biāo)識(shí),從已存儲(chǔ)的流表中獲取對(duì)應(yīng)的查 詢響應(yīng)計(jì)數(shù)值;
[0038] 將獲取的查詢響應(yīng)計(jì)數(shù)值作為本周期查詢響應(yīng)計(jì)數(shù)值并發(fā)送給所述控制器。
[0039] 結(jié)合第二方面或第二方面第一種可能的實(shí)現(xiàn)方式,在上述第二方面的第二種可能 的實(shí)現(xiàn)方式中,所述將所述本周期查詢響應(yīng)計(jì)數(shù)值發(fā)送給所述控制器之后,還包括:
[0040] 當(dāng)所述控制器確定所述組播組中存在異常離開(kāi)的組播成員時(shí),接收所述控制器發(fā) 送的刪除消息,所述刪除消息攜帶組播組地址,并根據(jù)所述組播組地址,刪除流表中對(duì)應(yīng)的 流表項(xiàng);
[0041] 當(dāng)接收到所述控制器發(fā)送的查詢消息時(shí),將所述查詢消息發(fā)送給所述組播組包括 的所有組播成員,所述查詢消息攜帶所述組播組的組播組地址;
[0042] 接收所述組播組包括的組播成員發(fā)送的至少一個(gè)第一查詢響應(yīng),所述至少一個(gè)第 一查詢響應(yīng)均攜帶組播組地址;
[0043] 將所述至少一個(gè)第一查詢響應(yīng)分別進(jìn)行封裝,得到至少一個(gè)第二查詢響應(yīng),所述 至少一個(gè)第二查詢響應(yīng)均攜帶所述組播組地址和所述組播成員對(duì)應(yīng)的端口號(hào);
[0044] 將所述至少一個(gè)第二查詢響應(yīng)發(fā)送給所述控制器,使所述控制器獲取所述異常離 開(kāi)的組播成員對(duì)應(yīng)的端口號(hào),并從組播路徑中刪除所述獲取的端口號(hào)。
[0045] 結(jié)合第二方面、第二方面的第一種可能的實(shí)現(xiàn)方式或第二方面的第二種可能的實(shí) 現(xiàn)方式,在上述第二方面的第三種可能的實(shí)現(xiàn)方式中,所述接收所述組播成員發(fā)送的第一 查詢響應(yīng)之前,還包括:
[0046] 接收所述組播成員發(fā)送的第一加入組播消息,所述第一加入組播消息攜帶組播組 地址;
[0047] 對(duì)所述第一加入組播消息進(jìn)行封裝,得到第二加入組播消息,所述第二加入組播 消息攜帶所述組播組地址和端口號(hào);
[0048] 向控制器發(fā)送所述第二加入組播消息,使所述控制器根據(jù)所述第二加入組播消息 為所述組播成員創(chuàng)建流表項(xiàng);
[0049] 接收所述控制器發(fā)送的流表項(xiàng),并將所述流表項(xiàng)存儲(chǔ)在流表中。
[0050] 結(jié)合第二方面、第二方面的第一種可能的實(shí)現(xiàn)方式、第二方面的第二種可能的實(shí) 現(xiàn)方式或第二方面的第三種可能的實(shí)現(xiàn)方式,在上述第二方面的第四種可能的實(shí)現(xiàn)方式 中,所述方法還包括:
[0051] 接收組播成員發(fā)送的第一離開(kāi)組播消息,所述第一離開(kāi)組播消息攜帶組播組地 址;
[0052] 根據(jù)所述組播組地址和所述組播成員對(duì)應(yīng)的端口號(hào),刪除流表中對(duì)應(yīng)的流表項(xiàng);
[0053] 對(duì)所述第一離開(kāi)組播消息進(jìn)行封裝,得到第二離開(kāi)組播消息,所述第二離開(kāi)組播 消息攜帶所述組播組地址和所述端口號(hào);
[0054] 向所述控制器發(fā)送所述第二離開(kāi)組播消息,使所述控制器從組播路徑中刪除所述 端口號(hào)。
[0055] 第三方面,提供了一種維護(hù)組播成員的設(shè)備,所述設(shè)備包括:
[0056] 第一發(fā)送模塊,用于每隔預(yù)設(shè)周期,向交換機(jī)發(fā)送查詢消息,使所述交換機(jī)將所述 查詢消息發(fā)送給組播組包括的所有組播成員;
[0057] 獲取模塊,用于獲取所述交換機(jī)在當(dāng)前周期內(nèi)接收到的本周期查詢響應(yīng)計(jì)數(shù)值;
[0058] 維護(hù)模塊,用于根據(jù)所述本周期查詢響應(yīng)計(jì)數(shù)值和上一周期查詢響應(yīng)計(jì)數(shù)值,對(duì) 所述組播組包括的組播成員進(jìn)行維護(hù)。
[0059] 結(jié)合第三方面,在上述第三方面的第一種可能的實(shí)現(xiàn)方式中,所述獲取模塊包 括:
[0060] 第一發(fā)送單元,用于向所述交換機(jī)發(fā)送流表項(xiàng)查詢消息,所述流表項(xiàng)查詢消息攜 帶目標(biāo)流表標(biāo)識(shí)和目標(biāo)流表項(xiàng)標(biāo)識(shí),使所述交換機(jī)查詢所述目標(biāo)流表標(biāo)識(shí)和所述目標(biāo)流表 項(xiàng)標(biāo)識(shí)對(duì)應(yīng)的查詢響應(yīng)計(jì)數(shù)值;
[0061] 第一接收單元,用于接收所述交換機(jī)發(fā)送的查詢響應(yīng)計(jì)數(shù)值,將接收到查詢響應(yīng) 計(jì)數(shù)值確定為本周期查詢響應(yīng)計(jì)數(shù)值。
[0062] 結(jié)合第三方面或第三方面的第一種可能的實(shí)現(xiàn)方式,在上述第三方面的第二種可 能的實(shí)現(xiàn)方式中,所述維護(hù)模塊包括:
[0063] 第一獲取單元,用于獲取所述組播組對(duì)應(yīng)的預(yù)設(shè)查詢響應(yīng)計(jì)數(shù)增值;
[0064] 計(jì)算單元,用于計(jì)算所述本周期查詢響應(yīng)計(jì)數(shù)值與所述上一周期查詢響應(yīng)計(jì)數(shù)值 之間的差值;
[0065] 維護(hù)單元,用于根據(jù)所述差值和所述預(yù)設(shè)查詢響應(yīng)計(jì)數(shù)增值,對(duì)所述組播組包括 的組播成員進(jìn)行維護(hù)。
[0066] 結(jié)合第三方面的第二種可能的實(shí)現(xiàn)方式,在上述第三方面的第三種可能的實(shí)現(xiàn)方 式中,所述維護(hù)單元包括:
[0067] 確定子單元,用于如果所述差值小于所述預(yù)設(shè)查詢響應(yīng)計(jì)數(shù)增值,則確定所述組 播組中存在異常離開(kāi)的組播成員;
[0068] 刪除子單元,用于獲取所述異常離開(kāi)的組播成員對(duì)應(yīng)的端口號(hào),并從組播路徑中 刪除所述獲取的端口號(hào)。
[0069] 結(jié)合第三方面的第三種可能的實(shí)現(xiàn)方式,在上述第三方面的第四種可能的實(shí)現(xiàn)方 式中,
[0070] 所述刪除子單元,具體用于:
[0071] 向所述交換機(jī)發(fā)送刪除消息,所述刪除消息攜帶組播組地址,使所述交換機(jī)刪除 所述組播組地址對(duì)應(yīng)的流表項(xiàng);
[0072] 向所述交換機(jī)發(fā)送查詢消息,所述查詢消息攜帶所述組播組的組播組地址,使所 述交換機(jī)將所述查詢消息發(fā)送給所述組播組包括的所有組播成員;
[0073] 接收所述交換機(jī)上報(bào)的至少一個(gè)第二查詢響應(yīng),所述至少一個(gè)第二查詢響應(yīng)是對(duì) 至少一個(gè)第一查詢響應(yīng)分別進(jìn)行封裝得到,所述至少一個(gè)第一查詢響應(yīng)由所述組播組包括 的組播成員根據(jù)所述查詢消息發(fā)送,且所述至少一個(gè)第二查詢響應(yīng)均攜帶組播組地址和端 口號(hào);
[0074] 根據(jù)所述組播組地址,從已存儲(chǔ)的組播組地址與端口號(hào)之間的對(duì)應(yīng)關(guān)系中獲取對(duì) 應(yīng)的端口號(hào);
[0075] 比較獲取的端口號(hào)與所述至少一個(gè)第二查詢響應(yīng)攜帶的端口號(hào),以確定所述異常 離開(kāi)的組播成員對(duì)應(yīng)的端口號(hào)。
[0076] 結(jié)合第三方面、第三方面的第一種可能的實(shí)現(xiàn)方式、第三方面的第二種可能的實(shí) 現(xiàn)方式、第三方面的第三種可能的實(shí)現(xiàn)方式或第三方面的第四種可能的實(shí)現(xiàn)方式,在上述 第三方面的第五種可能的實(shí)現(xiàn)方式中,所述設(shè)備還包括:
[0077] 第一接收模塊,用于接收組播成員發(fā)送的第一加入組播消息,所述第一加入組播 消息攜帶組播組地址;
[0078] 創(chuàng)建模塊,用于根據(jù)所述組播組地址和所述組播成員對(duì)應(yīng)的端口號(hào),為所述組播 成員創(chuàng)建流表項(xiàng);
[0079] 第二發(fā)送模塊,用于將所述流表項(xiàng)發(fā)送給所述交換機(jī),使所述交換機(jī)將所述流表 項(xiàng)存儲(chǔ)在對(duì)應(yīng)的流表中。
[0080] 第四方面,提供了一種維護(hù)組播成員的設(shè)備,所述設(shè)備包括:
[0081] 第二接收模塊,用于每隔預(yù)設(shè)周期,接收控