專利名稱:以太網接口工作在半雙工模式下時自環(huán)的檢測辦法的制作方法
技術領域:
本發(fā)明涉及通信領域,尤其涉及一種以太網接口工作在半雙工模式下時自環(huán)的檢測辦法。
背景技術:
以太網為目前廣泛應用的一種網絡媒介,當前的計算機幾乎全部具備以太網接口卡(簡稱網卡),并且該以太網卡在局域網、電信接入網中得到大量的運用,在通信時,各設備通過以太網卡接入局域網、電信接入網,而實現(xiàn)網絡通信。目前以太網卡的默認通信方式主要為半雙工模式。半雙工模式主要是指兩個通信設備之間的通信鏈路,在任一時刻僅允許一端向另外一端發(fā)送數(shù)據(jù)的工作模式。當設備的通信鏈路工作于半雙工模式時如果通信鏈路某一端的設備通過鏈路發(fā)送數(shù)據(jù)的同時通信鏈路另一端的通信設備也向通信鏈路發(fā)送數(shù)據(jù),此時,會在通信鏈路上發(fā)生沖突(這種情況被稱為沖突)。當半雙工鏈路發(fā)生沖突時,通信設備收到的數(shù)據(jù)會出現(xiàn)錯誤假設某設備A向通信鏈路發(fā)出的信號“1”,而通信鏈路另一端的設備B向通信鏈路發(fā)出的信號“0”,由于通信鏈路發(fā)生沖突, 此時在設備B端測試,設備B接收到的信號為“0”,而不為設備A實際發(fā)出的信號“1”,出現(xiàn)數(shù)據(jù)傳輸錯誤的問題。具有偵測沖突的載波感測多重存取(Carrier Sense Multiple Access withCollision Detection,簡稱CSMA/CD)算法為半雙工通信設備發(fā)送數(shù)據(jù)時使用的常用算法。其應用CSMA/⑶算法進行數(shù)據(jù)發(fā)送的具體如下對于任一設備,在設備向鏈路發(fā)送數(shù)據(jù)前,首先檢查鏈路是否空閑,如果空閑則發(fā)送數(shù)據(jù);否則則一直等待,直到鏈路空閑再發(fā)送數(shù)據(jù);對于以太網鏈路,如果有多個設備需要向鏈路發(fā)送數(shù)據(jù),則就可能出現(xiàn)多個設備發(fā)現(xiàn)鏈路空閑而同時向鏈路發(fā)送數(shù)據(jù),產生沖突;當沖突產生后,這些發(fā)送數(shù)據(jù)的設備都停止數(shù)據(jù)發(fā)送,并隨機等待一端時間后再次進行鏈路檢測,重新發(fā)送數(shù)據(jù)。在以太網中,容易由于網絡接口的接線錯誤而產生自環(huán)(即以太網接口發(fā)送電路與接收電路導通而形成的環(huán)路)。比如可能由于以下的接線錯誤而導致自環(huán)以太網接口的發(fā)送端口(TX)與接收端口(RX)短路而形成自環(huán);或者,以太網接口連接到一個以太網集線器(一種將計算機連接起來用于組建計算機網絡的網絡設備,俗稱HUB設備),網線的兩端分別于該HUB設備的輸入接口、輸出接口連接也會導致自環(huán)。當以太網接口工作于半雙工模式時,網絡設備將會使能CSMA/⑶算法,從而根據(jù) CSMA/CD算法發(fā)送數(shù)據(jù),而如果當前的以太網接口處于自環(huán)狀態(tài)時,該網絡接口發(fā)出的信號將會立即從接收電路傳送回來,從而觸發(fā)沖突(即在發(fā)送數(shù)據(jù)的同時,接收到了數(shù)據(jù))。 于是太網接口判斷當前鏈路為忙,以太網接口停止接收數(shù)據(jù),并將發(fā)送的數(shù)據(jù)包保存在以太網接口的存儲器中,并隨機等待一段時間后嘗試再次進行發(fā)送,直到達到最大嘗試次數(shù)。
3然而由于以太網自環(huán),因此無論該接口如何嘗試,都會檢測到沖突,接口發(fā)送數(shù)據(jù)失敗。自環(huán)狀態(tài)下的以太網接口在達到最大嘗試次數(shù)前,都將該數(shù)據(jù)包保存于以太網接口的存儲器中。當前的以太網交換機使用了多個以太網接口,并且以太網交換機芯片內的存儲器非常有限,一般都在IM字節(jié)左右,而一個最大長度的以太網數(shù)據(jù)幀長度為1518字節(jié),即 1. 48K,因此系統(tǒng)總共能夠存儲的包數(shù)量為10MK/1. 48K = 691個包。而1個接口速度為 100M的接口,每秒可以發(fā)送的最大包長的包數(shù)量為8100個,也就是說瞬間就可以將芯片的存儲器充滿,這樣的話,芯片將沒有存儲空間進行數(shù)據(jù)存儲,將會導致整個系統(tǒng)的轉發(fā)性能接近于零。因此,半雙工自環(huán)對于類似于以太網交換機這樣的系統(tǒng)的影響非常巨大,并且引起自環(huán)現(xiàn)象也是比較容易與常見的,比如以太網交換機的接口連接到了一個HUB設備,然后再使用一根以太網線將HUB的兩個接口連接起來就可以形成自環(huán)。所以,在實際的使用過程中,如果有用戶要對網絡進行攻擊,可以很方便的使用上面的辦法,因此對于網絡運營商而言,就需要找出辦法來抵御這種攻擊?,F(xiàn)有技術中通常采用以下的技術方案解決半雙工自環(huán)帶來的問題第一 (1)生成樹協(xié)議;生成樹協(xié)議是IEEE在IEEE802. ID里面設計的環(huán)路檢測算法,應用于網橋設備 (也即以太網交換機),當發(fā)現(xiàn)環(huán)路之后,將導致環(huán)路的接口設置為阻塞狀態(tài),禁止其收發(fā)數(shù)據(jù),從而來避免網絡出現(xiàn)數(shù)據(jù)環(huán)路。其工作原理為首先,在網絡中的以太網交換設備中選擇一個根網橋;根網橋周期的向自己的所有接口發(fā)送BPDU配置報文;如果一個網橋從多個接口接收到了 BPDU配置報文,那么說明網絡中存在了環(huán)路, 因此只保留一個接收到BPDU報文的接口用于數(shù)據(jù)轉發(fā),將其它收到BPDU配置報文的接口都設置為阻塞狀態(tài),從而避免網絡業(yè)務的崩潰。從上面其基本工作原理可以看出,生成樹協(xié)議是通過BPDU (BridgeProtocol Data Unit,橋協(xié)議數(shù)據(jù)單元)配置報文來實現(xiàn)環(huán)路的檢測的,但是對于工作在半雙工模式下、并且出現(xiàn)自環(huán)的接口來說,任何報文都發(fā)送不出去(參見前面的描述),并且也接收不回來任何報文。所以生成樹協(xié)議會認為網絡沒有環(huán)路,也不會把這個接口設置為阻塞狀態(tài)。因此,生成樹協(xié)議不能發(fā)現(xiàn)半雙工自環(huán)狀態(tài),也就無法進行進一步的處理。(2)環(huán)路檢測協(xié)議由于交換網絡出現(xiàn)環(huán)路,對網絡將會產生致命的影響,因此很多以太網交換機廠商都自己開發(fā)了一些環(huán)路檢測協(xié)議,比如Realtek(臺灣的一家以太網交換芯片生產商)公司就開發(fā)了一個環(huán)路檢測協(xié)議,烽火網絡(位于武漢的一家生產交換機、路由器的設備制造商)也開發(fā)了自己的環(huán)路檢測協(xié)議。這些協(xié)議都是這些廠商私有的協(xié)議,并不是由國際性的通信組織制訂的,其工作原理都比較簡單設備通過以太網接口向外發(fā)送廣播數(shù)據(jù)報文;如果網絡中存在環(huán)路,那么自己發(fā)出廣播數(shù)據(jù)報文將會被自己接收到;如果接收到了自己發(fā)出的廣播數(shù)據(jù),那么說明網絡中存在的了環(huán)路,就將收到自己發(fā)出的廣播數(shù)據(jù)報文的接口阻塞掉。從其工作原理可以看出,仍然是通過發(fā)送報文、然后接收報文來進行的環(huán)路檢測, 因此也無法檢測到半雙工環(huán)路下時存在的自環(huán)。
發(fā)明內容
本發(fā)明第一目的在于提供一種以太網接口自環(huán)的檢測辦法,其對工作于半雙工模式下的以太網接口的自環(huán)檢測、處理更加準確、及時,且易于實現(xiàn)。本發(fā)明實施例提供的第一種以太網接口自環(huán)的檢測辦法,包括定時檢測所述以太網接口的成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)、接口沖突幀數(shù)量;如果在預定時間內所述以太網接口的成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)均無變化并且所述接口沖突幀數(shù)量提高,則判定所述以太網接口當前處于自環(huán)狀態(tài),阻塞所述接口 ; 否則判定所述以太網接口當前處于正常收發(fā)數(shù)據(jù)狀態(tài)。本發(fā)明實施例提供的第二以太網接口自環(huán)的檢測辦法,包括步驟Sl 記錄以太網接口當前成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)、接口沖突幀數(shù)量,分別記為變量a0、b0、c0,將所述以太網接口設置為阻塞狀態(tài),啟動定時器;步驟S2 在所述定時器超時時刻記錄所述以太網成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)、接口沖突幀數(shù)量,記為al、bl、cl ;如果所述al Φ aO,或者bl Φ bO,則將al、bl、cl分別賦值給變量a0、b0、c0,將所述以太網接口設置為正常收發(fā)數(shù)據(jù)狀態(tài),重啟定時器,跳轉至步驟S4 ;否則執(zhí)行步驟S3 ;步驟S3 判斷cl是否等于cO,如果cl Φ cO,則重啟所述定時器,返回步驟S2 ;否則,使所述以太網接口向外發(fā)送數(shù)據(jù),則將al、bl、cl分別賦值給變量a0、b0、c0,重啟所述定時器,返回步驟S2;步驟S4 在定時器超時時刻記錄以太網當前成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)、 接口沖突幀數(shù)量,記為a2、b2、c2 ;如果所述a2 Φ aO,或者Φ bO,則將a2、b2、c2分別賦值給變量a0、b0、c0,重啟所述定時器,返回本步驟S4 ;否則,執(zhí)行步驟S5 ;步驟S5 判斷c2是否等于cO 如果c2 Φ c0,則將a2、b2、c2分別賦值給變量a0、b0、c0,將所述以太網接口設置為阻塞狀態(tài),重啟所述定時器,返回執(zhí)行步驟S2 ;否則,使所述以太網接口向外發(fā)送數(shù)據(jù),將a2、b2、c2分別賦值給變量aO、bO、c0, 重啟所述定時器,返回步驟S4。由上可見,應用本發(fā)明實施例的技術方案,
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,并不構成對本發(fā)明的不當限定,在附圖中
5
圖1為本發(fā)明實施例1提供的一種以太網接口自環(huán)的檢測辦法流程示意圖;圖2為本發(fā)明實施例2提供的一種以太網接口自環(huán)的檢測辦法流程示意具體實施例方式下面將結合附圖以及具體實施例來詳細說明本發(fā)明,在此本發(fā)明的示意性實施例以及說明用來解釋本發(fā)明,但并不作為對本發(fā)明的限定。實施例1 參見圖1所示,本實施例提供的一種以大網接口自環(huán)的檢測辦法,主要包括以下步驟步驟101 定時檢測以太網接口的成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)、接口沖突幀
數(shù)量的變化。在本實施例中可以根據(jù)實際的需要設定定時時間,比如設定定時器,在定時器的啟動時刻記錄當前以太網接口的成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)、接口沖突幀數(shù)量;然后在定時器超時時刻,記錄當前以太網接口的成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)、接口沖突幀數(shù)量。通過比較定時器啟動時刻、超時時刻的成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)、接口沖突幀數(shù)量變化量來檢測該以太網接口的成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)、接口沖突幀數(shù)量的變化。步驟102 如果在預定時間內以太網接口的成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)均無變化并且接口沖突幀數(shù)量提高,則執(zhí)行步驟103 ;否則執(zhí)行步驟104。步驟103 判定當前以太網接口當前處于自環(huán)狀態(tài),阻塞該以太網接口,返回步驟 101。如果在預定時間內以太網接口的成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)均無變化并且接口沖突幀數(shù)量提高,則認定該以太網接口當前發(fā)生了自環(huán),阻塞該以太網接口,并且返回步驟101,繼續(xù)進行定時檢測。步驟104 判定以太網接口當前處于正常收發(fā)數(shù)據(jù)狀態(tài),返回執(zhí)行步驟101。如果在預定時間內以太網接口的成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)其中之一有變化,則認定該以太網接口當前狀態(tài)處于正常收發(fā)數(shù)據(jù)狀態(tài),未發(fā)生自環(huán),并且返回步驟101, 繼續(xù)進行定時檢測。由上可見,應用本實施例方法,由于可以對以太網接口進行定時循環(huán)檢測,通過對以太網接口的成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)、接口沖突幀數(shù)量的變化情況而監(jiān)視該接口處于自環(huán)狀態(tài)還是處于正常收發(fā)數(shù)據(jù)狀態(tài);當該以太網接口發(fā)生阻塞時阻塞該以太網接口。其相對于現(xiàn)有技術,本發(fā)明方法對自環(huán)狀態(tài)的檢測更加準確、有效,并通過循環(huán)檢測、處理能夠保證對自環(huán)情況的計時發(fā)現(xiàn)處理,避免自環(huán)而導致的惡性循環(huán)。實施例2:參見圖2所示,本實施例提供的一種以太網接口自環(huán)的檢測辦法,主要包括步驟200 初始化狀態(tài)。步驟201 記錄以太網接口當前成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)、接口沖突幀數(shù)量,分別記為a0、b0、cO,將以太網接口設置為阻塞狀態(tài),啟動定時器。阻塞狀態(tài)(Blocking State)是指一個生成樹協(xié)議端口狀態(tài),當以太網接口處于阻塞狀態(tài)時,網絡或轉換器不處理任何在這個界面除生成樹(Sparmingl^ree Protocol,簡稱 STP)消息外的輸入幀或輸出幀。步驟202 定時器計時,如果收到定時器超時事件,則執(zhí)行步驟203 ;否則等待。步驟203 判定該以太網接口是否與所述以太網連接,如果是,則跳轉執(zhí)行步驟 205 ;否則執(zhí)行步驟204。判定該以太網接口是否處于Link up狀態(tài),如果是,則跳轉執(zhí)行步驟205 ;否則該以太網接口是否處于Link down狀態(tài),執(zhí)行步驟204.步驟204 重啟定時器,返回步驟202。步驟205 在定時器超時時刻記錄以太網成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)、接口沖突幀數(shù)量,記為al、bl、cl。步驟206 判斷以太網接口成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)的變化,如果 al興aO,或者bl興b0,則執(zhí)行步驟207,否則執(zhí)行步驟208。步驟207 將定時器超時時刻的數(shù)值al、bl、cl分別賦值給a0、b0、c0,將所述以太網接口設置為正常收發(fā)數(shù)據(jù)狀態(tài),跳轉執(zhí)行步驟212。步驟208 判斷cl是否等于c0,如果是,則執(zhí)行步驟209 ;否則執(zhí)行步驟210。步驟209 重啟定時器,返回步驟202.步驟210 使所述以太網接口向外發(fā)送數(shù)據(jù)。步驟211 將定時器超時時刻的數(shù)值al、bl、cl分別賦值給a0、b0、c0,重啟定時器,返回步驟202。步驟212 定時器計時,當收到定時器超時時間時,執(zhí)行步驟213 ;否則等待繼續(xù)。步驟213 判斷當前的以太網接口是否與以太網連接,如果是,則跳轉至步驟207 ; 否則執(zhí)行步驟214。步驟214:在定時器超時時刻記錄以太網當前成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)、接口沖突幀數(shù)量,記為a2、b2、c2。步驟215 判斷以太網接口成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)的變化,如果 a2 Φ a0,或者Φ b0,則執(zhí)行步驟216,否則執(zhí)行步驟217。步驟216 :將當前的32』2、(2賦值給于£10、130、(30,重啟定時器,返回步驟212 ;步驟217 判斷接口幀沖突數(shù)量的變化,如果c2 Φ c0,則執(zhí)行步驟218 ;否則跳轉至步驟219。步驟218:將當前的a2、b2、c2賦值給于a0、b0、c0,將以太網接口設置為阻塞狀態(tài),重啟定時器,返回步驟202。步驟219 使以太網接口對外發(fā)送數(shù)據(jù)。步驟220 將當前的a2、b2、c2賦值給于a0、b0、c0,重啟定時器,返回步驟202。由上可見,為應用本實施例方法,通過定時器定時對以太網接口進行定時循環(huán)檢測,通過對以太網接口的成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)、接口沖突幀數(shù)量的變化情況而監(jiān)視該接口處于自環(huán)狀態(tài)還是處于正常收發(fā)數(shù)據(jù)狀態(tài);當該以太網接口發(fā)生阻塞時阻塞該以太網接口。其相對于現(xiàn)有技術,本發(fā)明方法對自環(huán)狀態(tài)的檢測更加準確、有效,且實現(xiàn)更加簡單;并且通過循環(huán)檢測、處理能夠保證對自環(huán)情況的計時發(fā)現(xiàn)處理,避免自環(huán)而導致的惡性循環(huán)。
以上對本發(fā)明實施例所提供的技術方案進行了詳細介紹,本文中應用了具體個例對本發(fā)明實施例的原理以及實施方式進行了闡述,以上實施例的說明只適用于幫助理解本發(fā)明實施例的原理;同時,對于本領域的一般技術人員,依據(jù)本發(fā)明實施例,在具體實施方式
以及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發(fā)明的限制。
權利要求
1.一種以太網接口工作在半雙工模式下時自環(huán)的檢測辦法,其特征是,包括定時檢測所述以太網接口的成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)、接口沖突幀數(shù)量; 如果在預定時間內所述以太網接口的成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)均無變化并且所述接口沖突幀數(shù)量提高,則判定所述以太網接口當前處于自環(huán)狀態(tài),阻塞所述接口 ;否則判定所述以太網接口當前處于正常收發(fā)數(shù)據(jù)狀態(tài)。
2.一種以太網接口工作在半雙工模式下時自環(huán)的檢測辦法,其特征是,包括步驟S 1 記錄以太網接口當前成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)、接口沖突幀數(shù)量, 分別記為變量a0、b0、c0,將所述以太網接口設置為阻塞狀態(tài),啟動定時器;步驟S2 在所述定時器超時時刻記錄所述以太網成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)、 接口沖突幀數(shù)量,記為al、bl、cl ;如果所述al乒aO,或者b 1乒b0,則將al、b 1、c 1分別賦值給變量a0.b0.c0,將所述以太網接口設置為正常收發(fā)數(shù)據(jù)狀態(tài),重啟定時器,跳轉至步驟S4 ;否則執(zhí)行步驟S3 ; 步驟S3:判斷cl是否等于cO, 如果cl Φ cO,則重啟所述定時器,返回步驟S2 ;否則,使所述以太網接口向外發(fā)送數(shù)據(jù),則將al、bl、cl分別賦值給變量a0、b0、c0,重啟所述定時器,返回步驟S2 ;步驟S4 在定時器超時時刻記錄以太網當前成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)、接口沖突幀數(shù)量,記為a2、b2、c2 ;如果所述a2 Φ a0,或者Φ b0,則將a2、b2、c2分別賦值給變量a0、b0、c0,重啟所述定時器,返回本步驟S4 ;否則,執(zhí)行步驟S5 ; 步驟S5 判斷c2是否等于cO 如果c2 Φ c0,則將a2、b2、c2分別賦值給變量a0、b0、c0,將所述以太網接口設置為阻塞狀態(tài),重啟所述定時器,返回執(zhí)行步驟S2 ;否則,使所述以太網接口向外發(fā)送數(shù)據(jù),將a2、b2、c2分別賦值給變量a0、b0、c0,重啟所述定時器,返回步驟S4。
全文摘要
本發(fā)明涉及通信領域,公開了一種以太網接口工作在半雙工模式下時自環(huán)的檢測辦法。其包括定時檢測所述以太網接口的成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)、接口沖突幀數(shù)量;如果在預定時間內所述以太網接口的成功發(fā)送字節(jié)數(shù)、成功接收字節(jié)數(shù)均無變化并且所述接口沖突幀數(shù)量提高,則判定所述以太網接口當前處于自環(huán)狀態(tài),阻塞所述接口;否則判定所述以太網接口當前處于正常收發(fā)數(shù)據(jù)狀態(tài)。
文檔編號H04L12/26GK102201944SQ201010136120
公開日2011年9月28日 申請日期2010年3月26日 優(yōu)先權日2010年3月26日
發(fā)明者張文, 徐應江, 沈伊, 游松 申請人:上海傲藍通信技術有限公司