用于開(kāi)放流網(wǎng)絡(luò)中建立帶內(nèi)連接的方法和交換機(jī)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通信領(lǐng)域,并且更具體地,涉及一種用于開(kāi)放流網(wǎng)絡(luò)中建立帶內(nèi)連接 的方法和交換機(jī)。
【背景技術(shù)】
[0002] 在開(kāi)放流(OpenFlow)網(wǎng)絡(luò)中,交換機(jī)和控制器之間有兩種不同的連接模式,即帶 內(nèi)連接模式和帶外連接模式。
[0003] 在帶內(nèi)連接模式下,控制器與交換機(jī)之間建立帶內(nèi)連接可以通過(guò)以下方式進(jìn)行。 艮P,控制器和交換機(jī)建立帶內(nèi)連接,需要擴(kuò)展現(xiàn)有協(xié)議,由交換機(jī)通過(guò)特定的消息將網(wǎng)絡(luò)的 拓?fù)浣Y(jié)構(gòu)通知給控制器,控制器在獲取了網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)之后,控制器才能與交換機(jī)建立 帶內(nèi)連接,并將用于實(shí)現(xiàn)控制器與交換機(jī)之間的報(bào)文轉(zhuǎn)發(fā)的路徑信息下發(fā)到中間交換機(jī) 上,然而,在該種方式下,需要擴(kuò)展現(xiàn)有開(kāi)放流協(xié)議,且不同廠(chǎng)商之間的控制器和交換機(jī)難 以兼容。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明實(shí)施例提供了一種用于開(kāi)放流網(wǎng)絡(luò)中建立帶內(nèi)連接的方法和交換機(jī),能夠 使得更多廠(chǎng)商的控制器和交換機(jī)兼容。
[0005] 第一方面,提供了一種用于開(kāi)放流網(wǎng)絡(luò)中建立帶內(nèi)連接的方法,包括:從第一端口 接收經(jīng)過(guò)第一路徑的同步序列編號(hào)SYN報(bào)文,其中,該SYN報(bào)文是由源交換機(jī)發(fā)往目標(biāo)控制 器;根據(jù)經(jīng)過(guò)該第一路徑的該SYN報(bào)文,將該第一端口作為該目標(biāo)控制器與該源交換機(jī)之 間的第一傳輸端口記錄在帶內(nèi)連接列表中,并轉(zhuǎn)發(fā)經(jīng)過(guò)該第一路徑的該SYN報(bào)文;從第二 端口接收該目標(biāo)控制器針對(duì)該SYN報(bào)文向該源交換機(jī)發(fā)送的SYN響應(yīng)報(bào)文;從該帶內(nèi)連接 列表中記錄的該目標(biāo)控制器與該源交換機(jī)之間的第一傳輸端口轉(zhuǎn)發(fā)該SYN響應(yīng)報(bào)文。
[0006] 結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,該方法還包括:記錄第一 流表項(xiàng),其中,在該第一流表項(xiàng)中,目的地址為該源交換機(jī)的地址,出端口為記錄在所述帶 內(nèi)連接列表中的該目標(biāo)控制器與該源交換機(jī)之間的第一傳輸端口。
[0007] 結(jié)合第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第二種可能的 實(shí)現(xiàn)方式中,該方法還包括:將該第二端口作為該目標(biāo)控制器與該源交換機(jī)之間的第二傳 輸端口記錄在該帶內(nèi)連接列表中。
[0008] 結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,在第一方面的第三種可能的實(shí)現(xiàn)方式 中,該方法還包括:在確定未記錄有目的地址為該目標(biāo)控制器的地址,出端口為該第二端口 的流表項(xiàng)時(shí),記錄第二流表項(xiàng);其中,在該第二流表項(xiàng)中,目的地址為該目標(biāo)控制器的地址, 出端口為記錄在所述帶內(nèi)連接列表中的該目標(biāo)控制器與該源交換機(jī)之間的第二傳輸端口。
[0009] 結(jié)合第一方面,或第一方面的第一種或第二種中任一種可能的實(shí)現(xiàn)方式,在第一 方面的第四種可能的實(shí)現(xiàn)方式中,該轉(zhuǎn)發(fā)經(jīng)過(guò)該第一路徑的該SYN報(bào)文,包括:在確定記錄 有目的地址為該目標(biāo)控制器的地址,出端口為該第二端口的流表項(xiàng)時(shí),從該第二端口轉(zhuǎn)發(fā) 經(jīng)過(guò)該第一路徑的該SYN報(bào)文。
[0010] 結(jié)合第一方面,或第一方面的第一種至第三種中任一種可能的實(shí)現(xiàn)方式,在第一 方面的第五種可能的實(shí)現(xiàn)方式中,該轉(zhuǎn)發(fā)經(jīng)過(guò)該第一路徑的該SYN報(bào)文,包括:在確定未記 錄有目的地址為該目標(biāo)控制器的地址的流表項(xiàng)時(shí),從該第一端口外的其他所有連接態(tài)端口 轉(zhuǎn)發(fā)經(jīng)過(guò)該第一路徑的該SYN報(bào)文。
[0011] 結(jié)合第一方面,或第一方面的第一種至第五種中任一種可能的實(shí)現(xiàn)方式,在第一 方面的第六種可能的實(shí)現(xiàn)方式中,在該從第一端口接收經(jīng)過(guò)第一路徑的SYN報(bào)文之后,該 方法還包括:確定轉(zhuǎn)發(fā)端口中的一個(gè)或多個(gè)端口處于斷開(kāi)態(tài),記錄處于斷開(kāi)態(tài)的該一個(gè)或 多個(gè)端口的信息,以及經(jīng)過(guò)該第一路徑的該SYN報(bào)文的信息;該轉(zhuǎn)發(fā)經(jīng)過(guò)該第一路徑的該 SYN報(bào)文,包括:
[0012] 在該一個(gè)或多個(gè)端口中的端口從斷開(kāi)態(tài)變?yōu)檫B接態(tài)時(shí),從變?yōu)檫B接態(tài)的端口轉(zhuǎn)發(fā) 經(jīng)過(guò)該第一路徑的該SYN報(bào)文。
[0013] 結(jié)合第一方面,或第一方面的第一種至第六種中任一種可能的實(shí)現(xiàn)方式,在第一 方面的第七種可能的實(shí)現(xiàn)方式中,該方法還包括:將經(jīng)過(guò)該第一路徑的該SYN報(bào)文的生存 時(shí)間TTL值作為該目標(biāo)控制器與該源交換機(jī)之間的第一傳輸端口對(duì)應(yīng)的TTL值記錄在該帶 內(nèi)連接列表中;以及在該根據(jù)經(jīng)過(guò)該第一路徑的該SYN報(bào)文,將該第一端口作為該目標(biāo)控 制器與該源交換機(jī)之間的第一傳輸端口記錄在帶內(nèi)連接列表中,并轉(zhuǎn)發(fā)經(jīng)過(guò)該第一路徑的 該SYN報(bào)文之后,該方法還包括:從第三端口接收經(jīng)過(guò)第二路徑的該SYN報(bào)文,在經(jīng)過(guò)該第 二路徑的該SYN報(bào)文的TTL值大于該帶內(nèi)連接列表中記錄的該目標(biāo)控制器與該源交換機(jī)之 間的第一傳輸端口對(duì)應(yīng)的TTL值時(shí),將該目標(biāo)控制器與該源交換機(jī)之間的第一傳輸端口從 該第一端口更新為該第三端口,將該帶內(nèi)連接列表中記錄的該目標(biāo)控制器與該源交換機(jī)之 間的第一傳輸端口對(duì)應(yīng)的TTL值更新為經(jīng)過(guò)該第二路徑的該SYN報(bào)文的TTL值;以及丟棄 經(jīng)過(guò)該第二路徑的該SYN報(bào)文,在經(jīng)過(guò)該第二路徑的該SYN報(bào)文的TTL值不大于該帶內(nèi)連 接列表中記錄的該目標(biāo)控制器與該源交換機(jī)之間的第一傳輸端口對(duì)應(yīng)的TTL值時(shí),丟棄經(jīng) 過(guò)該第二路徑的該SYN報(bào)文。
[0014] 結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第八種可能的實(shí)現(xiàn)方式 中,該方法還包括:確定該目標(biāo)控制器與該源交換機(jī)之間的第一傳輸端口斷開(kāi)時(shí),刪除該第 一流表項(xiàng);或者,該方法還包括:接收第一結(jié)束FIN報(bào)文,該第一 FIN報(bào)文的源地址為該目 標(biāo)控制器的地址以及目的地址為該源交換機(jī)的地址,以及根據(jù)該第一 FIN報(bào)文,在確定不 需要根據(jù)該第一流表項(xiàng),轉(zhuǎn)發(fā)其他目標(biāo)控制器與該源交換機(jī)之間的報(bào)文時(shí),刪除該第一流 表項(xiàng)。
[0015] 結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式,在第一方面的第九種可能的實(shí)現(xiàn)方式 中,該方法還包括:確定該目標(biāo)控制器與該源交換機(jī)之間的第二傳輸端口斷開(kāi)時(shí),刪除該第 二流表項(xiàng);或者,該方法還包括:接收第一 FIN報(bào)文,該第一 FIN報(bào)文的源地址為該目標(biāo)控 制器的地址以及目的地址為該源交換機(jī)的地址,以及根據(jù)該第一 FIN報(bào)文,在確定不需要 根據(jù)該第二流表項(xiàng),轉(zhuǎn)發(fā)該目標(biāo)控制器與其他源交換機(jī)之間的報(bào)文時(shí),刪除該第二流表項(xiàng)。
[0016] 結(jié)合第一方面的第八種或第九種可能的實(shí)現(xiàn)方式,在第一方面的第十種可能的實(shí) 現(xiàn)方式中,該方法還包括:廣播第二FIN報(bào)文,該第二FIN報(bào)文的源地址為該目標(biāo)控制器的 地址以及目的地址為該源交換機(jī)的地址。
[0017] 第二方面,提供了一種用于開(kāi)放流網(wǎng)絡(luò)中建立帶內(nèi)連接的方法,包括:
[0018] 交換機(jī)廣播發(fā)往目標(biāo)控制器的SYN報(bào)文,該SYN報(bào)文攜帶有該交換機(jī)的地址信息 和該目標(biāo)控制器的地址信息;
[0019] 從目標(biāo)端口接收該目標(biāo)控制器發(fā)送的針對(duì)該SYN報(bào)文的SYN響應(yīng)報(bào)文;
[0020] 記錄流表項(xiàng),在該流表項(xiàng)中,出端口為該目標(biāo)端口,目的地址為該目標(biāo)控制器的地 址。
[0021] 結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,該方法還包括:
[0022] 確定該目標(biāo)端口從連接態(tài)變?yōu)閿嚅_(kāi)態(tài);
[0023] 刪除該流表項(xiàng)。
[0024] 結(jié)合第二方面,在第二方面的第二種可能的實(shí)現(xiàn)方式中,該方法還包括:
[0025] 接收FIN報(bào)文,該FIN報(bào)文的源地址為該目標(biāo)控制器的地址以及目的地址為該交 換機(jī)的地址;
[0026] 在確定不需要根據(jù)該流表項(xiàng)轉(zhuǎn)發(fā)其他交換機(jī)與該目標(biāo)控制器之間的報(bào)文時(shí),刪除 該流表項(xiàng)。
[0027] 結(jié)合第二方面的第一種或第二種可能的實(shí)現(xiàn)方式,在第二方面的第三種可能的實(shí) 現(xiàn)方式中,該方法還包括:
[0028] 重新廣播該SYN報(bào)文。
[0029] 第三方面,提供了一種交換機(jī),包括收發(fā)單元、記錄單元和確定單元;其中,該收發(fā) 單元用于:從第一端口接收經(jīng)過(guò)第一路徑的同步序列編號(hào)SYN報(bào)文,其中,該SYN報(bào)文是由 源交換機(jī)發(fā)往目標(biāo)控制器的報(bào)文;轉(zhuǎn)發(fā)經(jīng)過(guò)該第一路徑的該SYN報(bào)文;從第二端口接收該 目標(biāo)控制器針對(duì)該SYN報(bào)文向該源交換機(jī)發(fā)送的SYN響應(yīng)報(bào)文;從該確定單元確定的該目 標(biāo)控制器與該源交換機(jī)之間的第一傳輸端口轉(zhuǎn)發(fā)該SYN響應(yīng)報(bào)文;
[0030] 該記錄單元用于:根據(jù)經(jīng)過(guò)該第一路徑的該SYN報(bào)文,將該第一端口作為該目標(biāo) 控制器與該源交換機(jī)之間的第一傳輸端口記錄在帶內(nèi)連接列表中;
[0031] 該確定單元用于:根據(jù)該帶內(nèi)連接列表,確定該目標(biāo)控制器與該源交換機(jī)之間的 第一傳輸端口。
[0032] 結(jié)合第三方面,在第三方面的第一種可能的實(shí)現(xiàn)方式中,該記錄單元還用于:記錄 第一流表項(xiàng),其中,在該第一流表項(xiàng)中,目的地址為該源交換機(jī)的地址,出端口為記錄在所 述帶內(nèi)連接列表中的該目標(biāo)控制器與該源交換機(jī)之間的第一傳輸端口。
[0033] 結(jié)合第三方面或第三方面的第一種可能的實(shí)現(xiàn)方式,在第三方面的第二種可能的 實(shí)現(xiàn)方式中,該記錄單元還用于:將該第二端口作為該目標(biāo)控制器與該源交換機(jī)之間的第 二傳輸端口記錄在該帶內(nèi)連接列表中。
[0034] 結(jié)合第三方面或第三方面的第一種或第二種可能的實(shí)現(xiàn)方式,在第三方面的第三 種可能的實(shí)現(xiàn)方式中,該確定單元還用于:確定是否記錄有目的地址為該目標(biāo)控制器的地 址,出端口為該第二端口的流表項(xiàng);該記錄單元還用于:在該確定單元確定未記錄有目的 地址為該目標(biāo)控制器的地址,出端口為該第二端口的流表項(xiàng)時(shí),記錄第二流表項(xiàng),其中,在 該第二流表項(xiàng)中,目的地址為該目標(biāo)控制器的地址,出端口為記錄在所述帶內(nèi)連接列表中 的該目標(biāo)控制器與該源交換機(jī)之間的第二傳輸端口。
[0035] 結(jié)合第三方面,或第三方面的第一種或第二種中任一種可能的實(shí)現(xiàn)方式,在第三 方面的第四種可能的實(shí)現(xiàn)方式中,該確定單元還用于:確定是否記錄有目的地址為該目標(biāo) 控制器的地址的流表項(xiàng);該收發(fā)單元還用于:在該確定單元確定記錄有目的地址為該目標(biāo) 控制器的地址的流表項(xiàng)時(shí),從該第二端口轉(zhuǎn)發(fā)經(jīng)過(guò)該第一路徑的該SYN報(bào)文,其中,該目的 地址為該目標(biāo)控制器的地址的流表項(xiàng)的出端口為該第二端口。
[0036] 結(jié)合第三方面,或第三方面的第一種至第三種中任一種可能的實(shí)現(xiàn)方式,在第三 方面的第五種可能的實(shí)現(xiàn)方式中,該確定單元還用于:確定是否記錄有目的地址為該目標(biāo) 控制器的地址的流表項(xiàng);該收發(fā)單元還用于:在該確定單元確定未記錄有目的地址為該目 標(biāo)控制器的地址的流表項(xiàng)時(shí),從該第一端口外的其他所有連接態(tài)端口轉(zhuǎn)發(fā)經(jīng)過(guò)該第一路徑 的該SYN報(bào)文。
[0037] 結(jié)合第三方面,或第三方面的第一種至第五種中任一種可能的實(shí)現(xiàn)方式,在第三 方面的第六種可能的實(shí)現(xiàn)方式中,該確定單元還用于:在該收發(fā)單元從第一端口接收經(jīng)過(guò) 第一路徑的SYN報(bào)文之后,確定轉(zhuǎn)發(fā)端口中的端口是否處于斷開(kāi)態(tài);該記錄單元還用于:在 該確定單元確定轉(zhuǎn)發(fā)端口中的一個(gè)或多個(gè)端口處于斷開(kāi)態(tài)時(shí),記錄處于斷開(kāi)態(tài)的該一個(gè)或 多個(gè)端口的信息,以及經(jīng)過(guò)該第一路徑的該SYN報(bào)文的信息;該收發(fā)單元還用于:在該一個(gè) 或多個(gè)端口中的端口從斷開(kāi)態(tài)變?yōu)檫B接態(tài)時(shí),從變?yōu)檫B接態(tài)的端口轉(zhuǎn)發(fā)經(jīng)過(guò)該第一路徑的 該SYN報(bào)文。
[0038] 結(jié)合第三方面,或第三方面的第一種至第六種中任一種可能的實(shí)現(xiàn)方式,在第三 方面的第七種可能的實(shí)現(xiàn)方式中,該記錄單元還用于:將經(jīng)過(guò)該第一路徑的該SYN報(bào)文的 生存時(shí)間TTL值作為該目標(biāo)控制器與該源交換機(jī)的之間的第一傳輸端口對(duì)應(yīng)的TTL值記 錄在該帶內(nèi)連接列表中;在該確定單元確定經(jīng)過(guò)該第二路徑的該SYN報(bào)文的生存時(shí)間TTL 值大于該帶內(nèi)連接列表中記錄的該目標(biāo)控制器與該源交換機(jī)之間的第一傳輸端口對(duì)應(yīng)的