冉茂琪,李 文,張 益,王建兵,馮玖江,邢 川
(1.重慶金美通信有限責(zé)任公司,重慶 400030;2.中國人民解放軍軍事科學(xué)院 系統(tǒng)工程研究院,北京 100141)
令牌在環(huán)網(wǎng)中沿著環(huán)網(wǎng)的總線,在環(huán)網(wǎng)上的各個節(jié)點間依次傳遞。令牌自身不含有業(yè)務(wù)消息,只是為了控制環(huán)網(wǎng)信道的使用,即保證在某個時刻,僅有一個節(jié)點能夠使用當(dāng)前信道。當(dāng)環(huán)網(wǎng)上節(jié)點處于空閑狀態(tài)時,令牌繼續(xù)沿著環(huán)網(wǎng)傳遞。環(huán)網(wǎng)中的節(jié)點發(fā)送數(shù)據(jù)前必須取得令牌,所以不會造成碰撞。又因令牌在環(huán)網(wǎng)上是按一定順序依次傳遞的,因此對所有環(huán)網(wǎng)中的節(jié)點而言,訪問權(quán)是公平的。
根據(jù)令牌環(huán)網(wǎng)的特性可以發(fā)現(xiàn),在某一時刻,環(huán)網(wǎng)中只有一個節(jié)點能夠使用信道,因此采用令牌無法充分使用信道資源[5],并且還需要不斷維護令牌[6],一旦令牌控制異常,整個環(huán)網(wǎng)通信將會出現(xiàn)異常。
若為提高信道利用率而取消令牌機制,則當(dāng)環(huán)網(wǎng)節(jié)點采用2 層交換通信,交換機的2 層接口收到廣播報文時,會在其廣播域內(nèi)向所有端口轉(zhuǎn)發(fā)[7],在環(huán)網(wǎng)拓撲中,數(shù)據(jù)包將會被不斷復(fù)制和轉(zhuǎn)發(fā),直至網(wǎng)絡(luò)癱瘓;若采用3 層交換通信[8],由于生存時間(Time To Live,TTL)字段緣故(IPv4 包的第9個字節(jié)的TTL 字段取值范圍為0~255,該字段表示網(wǎng)際協(xié)議(Internet Protocol,IP)數(shù)據(jù)包在計算機網(wǎng)絡(luò)中可以轉(zhuǎn)發(fā)的最大跳數(shù),即最大跳數(shù)為255跳),IP 報文每通過一個節(jié)點進行3 層轉(zhuǎn)發(fā)后,TTL 值將會減少1,直至到達目的地,若在到達目的地之前,TTL 已耗盡(值為0),則數(shù)據(jù)包將不會被繼續(xù)轉(zhuǎn)發(fā)[9],因此使得計算機網(wǎng)絡(luò)中的節(jié)點個數(shù)受到一定的限制。
綜上所述,在環(huán)網(wǎng)通信中,亟需一種實現(xiàn)方法來減少維護令牌資源的成本,并提高環(huán)網(wǎng)通信信道利用效率,同時還需要該方法能防止環(huán)網(wǎng)廣播風(fēng)暴,解決TTL 對網(wǎng)絡(luò)節(jié)點拓撲的限制等問題。
本文針對上述問題,提出一種非令牌的環(huán)網(wǎng)中一跳轉(zhuǎn)發(fā)數(shù)據(jù)的解決方法[10],并在實際應(yīng)用中得以實施和驗證。所提方法可以為有類似功能需求的讀者提供一種可參考的解決思路。
根據(jù)不同的使用場景,環(huán)網(wǎng)拓撲會有多種結(jié)構(gòu)[11-12],會出現(xiàn)單環(huán)模型與多環(huán)模型之分[13],但其中核心的環(huán)網(wǎng)拓撲可抽象為圖1。
本文旨在通過對經(jīng)權(quán)思想的歷史嬗變之梳理,對經(jīng)權(quán)思想內(nèi)涵的挖掘,冀望對翻譯理論的研究與實踐提供某種嘗試與探索。
圖1 中各節(jié)點可表示交換機節(jié)點或其他功能等同的設(shè)備,互聯(lián)鏈路為有線鏈路,節(jié)點1 的port2口與節(jié)點2 相連,節(jié)點2 與節(jié)點3 相連,以此類推,直到節(jié)點n與節(jié)點1 的port1 相連,即節(jié)點1 至節(jié)點n分別與其相鄰節(jié)點進行互聯(lián)形成環(huán)網(wǎng)[14]。
需要說明的是,互聯(lián)鏈路并非一定是如圖1 所示的單鏈路,也可以是具有冗余備份的連接鏈路,即可以是等價為單鏈路的一組連接鏈路,如聚合鏈路。
非令牌環(huán)網(wǎng)則是在環(huán)網(wǎng)架構(gòu)下,不使用令牌機制,而使用其他方法來實現(xiàn)環(huán)網(wǎng)中各節(jié)點間的通信功能。為此,設(shè)計出非令牌環(huán)網(wǎng)軟件的基本實現(xiàn)流程,如圖2 所示。
采用非令牌通信機制進行節(jié)點間通信,首先要對環(huán)網(wǎng)各節(jié)點上互聯(lián)端口進行相應(yīng)參數(shù)配置;其次在節(jié)點上使用多生成樹協(xié)議(Multiple Spanning Tree Protocol,MSTP)消除通信環(huán)路、防止廣播風(fēng)暴,同時還要采用策略控制捕獲預(yù)設(shè)類型的協(xié)議報文,進行識別處理;最后采用2 層通信與所述策略控制相結(jié)合的方法,實現(xiàn)環(huán)網(wǎng)中節(jié)點間通信數(shù)據(jù)一跳到達。
為解決IP 報文轉(zhuǎn)發(fā)受TTL 限制的問題,采用2 層轉(zhuǎn)發(fā)方法,實現(xiàn)一跳轉(zhuǎn)發(fā)。
以圖1 環(huán)網(wǎng)中節(jié)點1 為例,采用基于端口的虛擬局域網(wǎng)(Virtual Local Area Network,VLAN)配置方式來配置節(jié)點1 的port1 與port2。設(shè)置port1 與port2 為ACCESS 類型,ACCESS 類型下的端口只能屬于1 個VLAN,該VLAN 通常被稱為端口的私有VLAN(Private VLAN,PVLAN),并且配置port1與port2 的PVLAN 值相等。
環(huán)網(wǎng)中其他節(jié)點的端口配置可參照節(jié)點1,不同節(jié)點上的PVLAN 值可以不相同。
MSTP 主要用于解決以太網(wǎng)環(huán)路問題,防止形成通信環(huán)路,實現(xiàn)鏈路冗余備份。
MSTP 兼容快速生成樹協(xié)議(Rapid Spanning Tree Protocol,RSTP)和生成樹協(xié)議(Spanning Tree Protocol,STP),具有收斂快、多實例等特點,因此以圖1 中環(huán)網(wǎng)的節(jié)點1 為例,對節(jié)點1 的port1、port2 啟用MSTP 協(xié)議[1],其他節(jié)點端口配置MSTP的方法與之相同。
環(huán)網(wǎng)中節(jié)點與節(jié)點之間的通信存在協(xié)議交互,例如鄰居發(fā)現(xiàn)協(xié)議、路由協(xié)議、節(jié)點控制協(xié)議等協(xié)議報文,往往包含組播通信、廣播通信,而部分協(xié)議又只需要與相鄰節(jié)點進行通信,而不需要與遠端節(jié)點通信。由于在本方法設(shè)計中,主體通信方法采用的是2 層轉(zhuǎn)發(fā)通信,在數(shù)據(jù)包是組播、廣播的情況下,將會從一個節(jié)點轉(zhuǎn)發(fā)至環(huán)網(wǎng)中的多個節(jié)點,因此需要將這類報文識別出來,進行重定向處理,對于不符合通信業(yè)務(wù)需求的報文設(shè)置為丟棄,防止其通過二層轉(zhuǎn)發(fā)發(fā)送至下一節(jié)點。
網(wǎng)絡(luò)通信中的交換設(shè)備,通常有對數(shù)據(jù)報文進行策略控制的模塊,其主要實現(xiàn)流程為截獲數(shù)據(jù)報文,識別特定字段,執(zhí)行動作。執(zhí)行動作又主要有重定向、丟棄、修改報文數(shù)據(jù)等。策略控制主要用于對符合識別條件的數(shù)據(jù)報文進行特殊處理,以此來滿足對應(yīng)的功能需求。
策略控制處理流程如圖3 所示,對捕獲的報文進行識別匹配,若匹配成功則執(zhí)行相應(yīng)動作(重定向或丟棄或其他);若匹配失敗,則不對該報文進行特殊處理,依據(jù)其原有處理規(guī)則進行處理。
由于真實實驗環(huán)境中,不可能存在無限多個節(jié)點,因此實驗測試主要采用有限個節(jié)點組成環(huán)網(wǎng),旨在驗證本文所提出的方法的可行性。
如圖4 所示,搭建具有6 個節(jié)點的環(huán)網(wǎng),節(jié)點間采用光纖接口相連,并為各節(jié)點配置IP 地址,其中節(jié)點2 具有雙IP 地址,其目的是驗證節(jié)點之間的IP 地址即使在不同網(wǎng)段,也能實現(xiàn)通信。同時按照前文所述,配置相應(yīng)端口參數(shù)、路由協(xié)議、自定義協(xié)議、MSTP 功能、策略控制等。
圖4 實驗測試環(huán)境拓撲
完成拓撲搭建后,為保證通信環(huán)路未成環(huán),查詢各個節(jié)點中的MSTP 狀態(tài)。圖5 為節(jié)點1 至節(jié)點5 的端口狀態(tài),均為轉(zhuǎn)發(fā)狀態(tài)(forwarding,F(xiàn)WD)。圖6 為節(jié)點6 的端口狀態(tài),其中節(jié)點6 的port1 為阻塞狀態(tài)(blocking,BLK)。
圖5 節(jié)點1 至節(jié)點5 的端口狀態(tài)
圖6 節(jié)點6 的端口狀態(tài)
結(jié)合各節(jié)點中的MSTP 狀態(tài),可將環(huán)路的通信拓撲等效為圖7,節(jié)點1 至節(jié)點6 依次連接,而節(jié)點1 與節(jié)點6 之間為斷開狀態(tài)。
圖7 MSTP 狀態(tài)下的等效通信拓撲
節(jié)點間已配置相應(yīng)路由參數(shù)與策略控制,因此使得節(jié)點所需的自定義協(xié)議報文、路由報文等,可以只轉(zhuǎn)發(fā)給鄰居節(jié)點,而不轉(zhuǎn)發(fā)給遠端節(jié)點,從而減少協(xié)議報文對環(huán)網(wǎng)資源的占用。
以節(jié)點1 為例,查看節(jié)點1 路由信息如圖8 所示。對于節(jié)點1 而言,發(fā)往其他節(jié)點的業(yè)務(wù)消息,其出接口均為節(jié)點2,從物理接口上看即是以太網(wǎng)光口3,符合預(yù)期設(shè)置。
圖8 節(jié)點1 的路由表
為測試圖4 中實驗環(huán)境的通信情況,使用節(jié)點1(IP 為111.0.0.1)與節(jié)點6(IP 為116.0.0.1)進行ping 包測試,測試結(jié)果如圖9 所示,可以看出,節(jié)點1 與節(jié)點6 能實現(xiàn)正常通信。
圖9 節(jié)點1 與節(jié)點6 通信的鏡像數(shù)據(jù)
根據(jù)上述實驗與理論相結(jié)合,可得出本文所提出方法能達到預(yù)期效果,其中主要的驗證點如表1所示,可以看出,所提方法達到了全部期望。
表1 驗證點與期望結(jié)果
針對環(huán)網(wǎng)通信中存在的環(huán)路問題,所提方法使用MSTP 協(xié)議,在非令牌通信機制的環(huán)形網(wǎng)絡(luò)中,進行消除通信環(huán)路,而物理連接上仍然保持原有的環(huán)形拓撲不變。針對部分協(xié)議報文會在同VLAN 下所有接口進行轉(zhuǎn)發(fā)的問題,所提方法采用策略控制,對特定的組播報文、廣播報文進行識別、處理,使其不從環(huán)網(wǎng)中的端口轉(zhuǎn)發(fā)至下一節(jié)點,處理動作主要為丟棄或重定向至其他接口。此外,針對轉(zhuǎn)發(fā)跳數(shù)受TTL 限制的問題,所提方法采用2 層轉(zhuǎn)發(fā)而非3 層轉(zhuǎn)發(fā),可以使環(huán)形拓撲中任一節(jié)點發(fā)送IP 報文,實現(xiàn)一跳轉(zhuǎn)發(fā),進而可以增加通信節(jié)點數(shù)量。該方法目前已應(yīng)用到實際項目中,并在真實應(yīng)用環(huán)境中驗證了其有效性。