專利名稱::一種設置流控模式的方法及裝置的制作方法
技術領域:
:本發明涉及通信領域及計算機領域,特別涉及一種設置流控模式的方法及裝置。
背景技術:
:目前,在通信系統中,交換機作為基本的通信裝置得到了越來越廣泛的應用,參閱圖l所示,交換機中包含多個端口,該端口為交換機面板上與其他設備連接的插槽。現有技術下,交換機端口根據其介質類型一般分為兩種電介質端口和光介質端口;電介質是指以電纜作為傳輸々某體,與其他設備進行通信連接的端口,而光介質端口是指以光纖作為傳輸媒介,與其他設備進行通信連接的端口。實際應用中,交換機端口的工作模式包含雙工模式、速率模式和流控模式這三種參數。雙工模式是指端口鏈路的工作方式,分為全雙工模式和半雙工模式兩種;速率模式是指端口鏈路的傳輸速率,一般分為IOOOM、IOOM、10M等;流控模式指的是端口的流量控制狀態,分為流控打開和流控關閉兩種,在全雙工模式下,交換機端口通過向對端端口發送流控幀來達到限制對端速率的目的。現有技術下,交換機通過端口與其他設備建立通信連接時,存在一種自協商機制,所謂自協商機制,即是指鏈路兩端的設備通過信息交互,自動選擇一種工作模式來運行,在釆用自協商機制的流程中(以下簡稱為自協商流程),協商的內容主要包括釆用何種雙工模式,何種速率模式,何種流控模式等內容。根據自協商工作機制中自協商標準要求的定義,鏈路兩端的設備選擇雙方均支持的且一般情況下最優的組合投入運行。一般情況下,兩交換機之間按照以下順序選擇雙工模式和速率模式100M全雙工、100M半雙工、10M全雙工和10M半雙工。以交換機A和交換沖幾B為例,若交換機A支持100M全雙工的工作模式,交換機B也支持100M全雙工的工作模式,則通過自協商流程選擇的雙工模式和速率模式就定為100M全雙工;若交換機A支持100M全雙工的工作模式,而交換機B僅支持100M半雙工的工作模式,則通過自協商流程選擇的雙工模式和速率模式就定為100M半雙工;若交換機A和交換B之間不存在相同的工作模式,則通過自協商流程得到的協商結果為自協商不通過,兩端設備不能通信。另一方面,現有技術下,交換機端口的流控模式只有兩種流控打開和流控關閉,但可以相應地配置三種執行模式,分別為強制打開、強制關閉和自動協商打開。兩臺交換機通過交換機端口在彼此間建立通信連接時,先要通過自協商流程來確定兩個交換機端口的流控模式,其原則為只有建立通信連接的兩個交換機端口的流控模式都被設置為"流控打開"(包括強制打開和自協商打開)時,這兩個交換機端口之間的流控模式的自協商結果才會被確認為"流控打開,,,只要有一端強制關閉,那么,雙方的流控^t式的自協商結果都會確認為"流控關閉",其具體操作如表l所示表1<table>tableseeoriginaldocumentpage5</column></row><table>下面以交換才幾A和交換機B為例進行介紹。參閱圖1所示,交換機A和交換機B中的交換芯片通過數據線和本端的物理層(PhysicalLayer,PHY)芯片相連接,而交換機A和交換機B中的PHY芯片再通過數據線與交換機面板上的端口相連接,這樣,交換機A和交換機B便可以通過各端口之間的電纜或光纖建立彼此間的通信連接。以交換機A為例,用戶在交換機A的端口上配置了流控模式后,交換機A中的PHY芯片將本端的流控模式配置結果(即流控打開/關閉信息)記錄在本端PHY芯片的寄存器中,并將該流控模式配置結果通知交換機B中的PHY芯片,同理,交換機B中的PHY芯片也會將本端的流控模式配置結果記錄在本端PHY芯片的寄存器中,同時將該流控模式配置結果通知交換機A中的PHY芯片,這樣,交換機A中的PHY芯片和交換機B中的PHY芯片便都可以根據本端的流控模式和對端的流控模式,結合表l中制定的規則來決定兩者之間最終的自協商狀態,從而打開或關閉兩端芯片的流控功能。流控功能是由交換機中的交換芯片和PHY共同配合完成的,PHY芯片用于和對端進行流控模式的自協商,以得到最終的自協商結果,而交換芯片用于根據PHY芯片得到的自協商結果打開或/關閉本端的流控功能。當流控功能打開時,如果一端的數據流量過大需要進行流控,那么,該端的交換芯片便會向對端端口發送流控報文,同理,如果對端的數據流量過大,那么對端的交換芯片便會發送流控報文給本端的交換芯片,那么,本端的交換芯片便會抑制本端報文的發送速率。在實際應用中,當發生某種特定事件時(如PHY芯片參凄b皮重新配置)PHY芯片都要重新執行自協商流程以獲得最新的自協商結果。每次重新執行自協商流程時,PHY芯片都會先斷開本端和對端之間的鏈路,以通知對端需重新執行自協商流程;接著,PHY芯片僅連通與對端之間的物理層鏈路來完成自協商流程,并將自協商結果保存在寄存器內;最后,再連通其他各層鏈路,以恢復與對端的通信連接。根據PHY芯片這一特性,現有技術下,在交換機運行的軟件內設置一鏈路檢測任務,該鏈路檢測任務每隔一定的時間便對兩交換機之間鏈路的連接狀態(包含連通和斷開兩種狀態)進行檢查,當檢測到鏈路的狀態從斷開變為連通時,便認定PHY芯片重新執行了自協商流程,因此,需要從PHY芯片的寄存器中獲取最新的自協商結果,并將該自協商結果通知交換芯片,使交換芯片能夠根據最新的自協商結果來打開或關閉本端的流控功能。但是,現有技術下,上述鏈路檢測任務僅適合在采用電介質作為傳輸媒介的端口(簡稱為電口)上使用,因為電口之間的鏈路連通速度較慢,鏈路檢測任務可以準確及時的檢測到電口之間鏈路連接狀態的變化,而對于采用光介質作為傳輸媒體的端口(簡稱光口)而言,上述鏈路檢測任務并不適用,因為,光口之間的鏈路的連通速度極快,超過了鏈路檢測任務的執行時間間隔,例如,鏈路檢測任務每隔500ms執行一次,而光口的連通速度達到了50ms,那么鏈路檢測任務便無法檢測到光口從斷開到連通的連接狀態轉換過程,從而無法察覺PHY芯片重新執行了自協商流程,那么當PHY芯片重新得到的自協商結果較上一次發生變化時,鏈路檢測任務便不能及時地將最新的自協商結果通知給本端的交換芯片,便得該交換芯片無法及時調整本端的流控模式,從而令交換機端口的流控狀態發生錯亂,進而在和通信對端進行通信容易出現丟包現象,影響了交換機的工作質量。
發明內容本發明實施例提供一種設置流控模式的方法及裝置,用以在交換機通過光口與通信對端進行流控模式自協商時,保持本端與通信對端的流控功能的一致性。本發明提供的具體技術方案如下一種設置流控;漠式的方法,交換機本端PHY芯片通過光口與通信對端進行流控模式自協商,包括交換機獲取本端PHY芯片當前保存的自協商結果,該自協商結果用于定義本端交換芯片執行的流控模式;交換機確定本端交換芯片當前執行的流控模式;交換機將所述自協商結果定義的流控模式與本端交換芯片當前執行的流控模式進行比較,在確定兩者不一致時,根據所述自協商結果定義的流控模式重新設置本端交換芯片執行的流控模式。一種交換機,通過光口與通信對端建立通信連接,包括PHY芯片,用于通過光口與通信對端進行流控模式自協商,并保存自協商結果,該自協商結果用于定義本端交換芯片執行的流控模式;交換芯片,用于執行設置的流控模式,對本端與通信對端之間的通信數據進行流量控制;處理模塊,用于獲取PHY芯片當前保存的自協商結果,并確定本端交換芯片當前執行的流控模式,以及將所述自協商結果定義的流控模式與本端交換芯片當前執行的流控模式進行比較,并在確定兩者不一致時,根據所述自協商結果定義的流控模式重新設置本端交換芯片執行的流控才莫式。本發明實施例中,交換機獲取本端PHY芯片當前保存的自協商結果,該自協商結果用于定義本端交換芯片執行的流控模式,以及確定本端交換芯片當前執行的流控模式;接著,交換機將所述自協商結果定義的流控模式與本端交換芯片當前執行的流控模式進行比較,并在確定兩者不一致時,根據所述自協商結果定義的流控模式重新設置本端交換芯片執行的流控模式。通過以上機制,就避免發生因光口連通過快而導致本端與通信對端的流控狀態的不一致,進而保證了本端與通信對端的流控狀態的一致性,使本端和通信對端在通信過程中不會因流控狀態的錯亂而發生丟包現象,這在很大程度上提高了交換機的工作質量,也提高了系統的穩定性。圖1為本發明現有技術下交換機之間進行通信連接示意圖2為本發明實施例中交換機功能結構示意圖3為本發明實施例中第一種根據PHY芯片的自協商結果配置交換芯片流控模式流程圖4為本發明實施例中第二種根據PHY芯片的自協商結果配置交換芯片流控模式流程圖。具體實施例方式交換機通過光口與通信對端進行流控模式自協商時,為了保持交換機與通信對端的流控功能的一致性,本發明實施例中,交換機獲取本端物理層(PhysicalLayer,PHY)芯片當前保存的自協商結果,該自協商結果用于定義本端交換芯片執行的流控模式,以及確定本端交換芯片當前執行的流控模式;接著,交換機將所述自協商結果定義的流控模式與本端交換芯片當前執行的流控模式進行比較,并在確定兩者不一致時,根據所述自協商結果定義的流控模式重新設置本端交換芯片執行的流控模式。下面結合附圖對本發明優選的實施方式進行詳細說明。參閱圖2所示,本實施例中,交換機包含PHY芯片20、交換芯片21和處理模塊22,其中,PHY芯片20,用于通過光口與通信對端進行流控模式自協商,并保存自協商結果,該自協商結果用于定義本端交換芯片21執行的流控模式;交換芯片21,用于執行設置的流控模式,對本端與通信對端之間的通信數據進行流量控制;處理模塊22,用于獲取PHY芯片當前保存的自協商結果,并確定本端交換芯片當前執行的流控模式,以及將所述自協商結果定義的流控模式與本端交換芯片當前執行的流控模式進行比較,并在確定兩者不一致時,根據所述自協商結果定義的流控模式重新設置本端交換芯片執行的流控模式。如圖2所示,交換機中還包括包括檢測模塊23,用于對本端與通信對端之間的鏈路連接狀態進行纟企測,并在確定該鏈路連接狀態未發生通斷變化時,通知處理模塊確定本端交換芯片當前執行的流控模式。基于上述交換機,可以看出,本發明實施例的技術構思在于將針對鏈路連接狀態的檢測,改為針對PHY芯片20保存的自協商結果和交換芯片21當前執行的流控模式的一致性的檢測,這樣,即使光口傳輸速率很快,交換機也能察覺PHY芯片20執行了自協商流程,從而能夠及時更新設置交換芯片2執行的流控模式。基于上述交換機,參閱圖3所示,本實施例中,交換機對本端PHY芯片20執行的自協商流程進行監測,并根據監測結果配置本端交換芯片21執行的流控模式的第一種方式的詳細流程如下步驟300:獲取本端PHY芯片20當前保存的自協商結果,并確定該自協商結果定義的流控才莫式。假設本實施例中,交換機本端PHY芯片20當前的保存的自協商結果為將流控模式設置為流控打開。步驟310:確定本端交換芯片21當前執行的流控模式。本實施例中,步驟300和步驟310并無嚴格的執行順序,也可以先執行步驟310,再執行步驟300,本實施例僅以一種情況為例進行介紹。步驟320:判斷本端PHY芯片20當前保存的自協商結果所定義的流控才莫式,與本端交換芯片21當前執行的流控模式是否一致?若是,則進行步驟340;否則,進行步驟330。本實施例中,若本端PHY芯片20當前保存的自協商結果所定義的流控才莫式,與本端交換芯片21當前執行的流控模式一致,則說明本端PHY芯片20未重新執行自協商流程,或者雖然重新執行了自協商流程,但獲得的自協商結果較上次未發生變化;顯然,無論發生上述哪一種情況,都不需要對本端交換芯片21當前執行的流控模式進行重新設置。而若本端PHY芯片20當前保存的自協商結果所定義的流控模式,與本端交換芯片21當前執行的流控模式不一致,則說明本端PHY芯片重新執行了自協商流程,并且獲得的自協商結果較上次發生了變化,顯然,在此種情況下,需要對本端交換芯片21當前執行的流控模式進行重新設置。例如,本端PHY芯片20當前保存的自協商結果為將流控模式設置為流控打開,而本端交換芯片21當前執行的流控模式為流控關閉;則表示需要重新將本端交換芯片20執行的流控模式設置為流控打開。步驟330:確定本端PHY芯片20重新執行了自協商流程,并根據其當前保存的自協商結果重新配置本端交換芯片21的流控模式;接著,進行步驟340。步驟340:間隔設定時長后,返回步驟300。上述實施例中,交換機獲取本端PHY芯片20當前保存的自協商結果,該自協商結果用于定義本端交換芯片21執行的流控模式,以及確定本端交換芯片21當前執行的流控模式;接著,交換機將自協商結果定義的流控模式與本端交換芯片21當前執行的流控模式進行比較,并在確定兩者不一致時,根據自協商結果定義的流控模式重新設置本端交換芯片21執行的流控模式。通過以上機制,就避免發生因光口連通過快而使得交換機無法檢測到鏈路通斷變化的情況,從而保證了PHY芯片20獲得的自協商結果和交換芯片21執行的流控模式的一致性,進而避免了本端和通信對端在通信過程中發生流控狀態錯亂的情況,在很大程度上提高了系統穩定性。基于上述實施例,為了進一步提高監測流程的執行效率,交換機還可以在上述流程的基礎上同時采用檢測鏈路連接狀態的方式,對本端PHY芯片20執行自協商流程的情況進行監測;參閱圖4所示,本實施例中,交換機與其他設備(可以是另一臺交換機,也可以是其他通信裝置)之間已建立通信連接,那么,交換機對本端PHY芯片20執行的自協商流程進行監測,并根據監測結果配置本端交換芯片21執行的流控模式的第二種方式的詳細流程如下步驟400:獲取本端.PHY芯片20當前保存的自協商結果,并確定該自協商結果定義的流控才莫式。步驟410:判斷本端與通信對端之間的鏈路連接狀態是否發生了通斷變化?若是,則進行步驟440;否則,進行步驟420。所述步驟410中判斷本端與通信對端之間的鏈路連接狀態是否發生了通斷變化也可以在步驟400之前執行,若是,則執行步驟400和步驟440,否則執行步驟420。本實施例中,判斷本端與通信對端之間的鏈路連接狀態是否發生了通斷變化可以采用多種方法,例如交換機本端與通信對端之間的鏈路通過發送空閑信號來保存聯通(物理聯通),那么,本端在重啟自協商流程時,不向對通信對端發送空閑信號,并設置本端PHY芯片20中的link寄存器為斷開;同時,通信對端檢測到無空閑信號,則也設置本端PHY芯片20中的link寄存器為斷開,并將鏈路連接狀態判斷為"斷開",以響應重啟自協商流程;當自協商流程執行完畢后,兩端再繼續發送空閑信號將端口聯通,并將各自的link寄存器均設置置為連接。顯然,交換機通過判斷本端PHY芯片20中link寄存器的狀態變化,便可以得知本端與通信對端之間的鏈路連接狀態的通斷變化。本實施例中,若交換機檢測到本端與通信對端通過光口建立的通信鏈路的連接狀態發生了變化,則說明本端PHY芯片20重新執行了自協商流程,因此,需要根據最新獲得的自協商結果重新配置本端交換芯片21所執行的流控模式。而若交換機未^r測到本端與通信對端通過光口建立的通信鏈路的連接狀態發生了變化,并不能說明本端PHY芯片20未重新執行自協商流程,很可能是因為光口傳輸速率過快,在極短時間內完成了自協商流程的重新執行,而未被檢測到,因此,交換機還需要將本端PHY芯片20中當前保存的自協商結果所定義的流控模式,和本端交換芯片21當前執行的流控模式進行比較,以確定是否需要對本端交換芯片21當前執行的流控模式進行重新設置;這樣,就避免發生因光口連通過快而使得交換機無法檢測到鏈路通斷變化的情況,從而保證了交換機本端PHY芯片20獲得的自協商結果和交換芯片21執行的流控模式的一致性,進而保證了本端與通信對端的流控狀態的一致性,^f吏本端和通信對端在通信過程中不會因流控狀態的錯亂而發生丟包現象,這在很大程度上提高了交換機的工作質量,也提高了系統的穩定性。步驟420:確定本端交換芯片21當前執行的流控模式。步驟430:判斷本端PHY芯片20當前保存的自協商結果所定義的流控才莫式,與本端交換芯片21當前執行的流控模式是否一致?若是,則進行步驟450;否則,進行步驟440。步驟440:確定本端PHY芯片20重新執行了自協商流程,并根據其當前保存的自協商結果重新配置本端交換芯片21的流控模式;接著,進行步驟450。步驟450:間隔i殳定時長后,返回步驟400。在上述實施例中,加入了用于檢測鏈路連接狀態的步驟410,雖然光口連通速度很快,交換機不易檢測到鏈路連接狀態的通斷變化,但是,通過執行步驟410,交換機一旦檢測到鏈路連接狀態發生通斷變化,則可以直接根據本端PHY芯片20在自協商流程中獲得的自協商結果,對本端交換芯片21執行的流控模式進行設置,而無需再對兩者的一致性進行比較判斷,這在一定程度上節省了監測流程的執行效率。不脫離本發明的精神和范圍。這樣,倘若本發明實施例中的這些修改和變型屬于本發明權利要求及其等同技術的范圍之內,則本發明中的實施例也意圖包含這些改動和變型在內。權利要求1、一種設置流控模式的方法,交換機本端PHY芯片通過光口與通信對端進行流控模式自協商,其特征在于,包括交換機獲取本端PHY芯片當前保存的自協商結果,該自協商結果用于定義本端交換芯片執行的流控模式;交換機確定本端交換芯片當前執行的流控模式;交換機將所述自協商結果定義的流控模式與本端交換芯片當前執行的流控模式進行比較,在確定兩者不一致時,根據所述自協商結果定義的流控模式重新設置本端交換芯片執行的流控模式。2、如權利要求1所述的方法,其特征在于,所述交換機獲取所述自協商結果后,先對本端與通信對端之間的鏈路連接狀態進行檢測,并在確定該鏈路連接狀態未發生通斷變化時,確定本端交換芯片當前執行的流控模式。3、如權利要求2所述的方法,其特征在于,若交換機確定本端與通信對端之間的鏈路連接狀態發生通斷變化,則直接根據所述自協商結果重新設置本端交換芯片執行的流控模式。4、如權利要求l、2或3所述的方法,其特征在于,所述交換機獲取本端PHY芯片當前保存的自協商結果具體為,交換機按照設定的周期獲取本端PHY芯片當前保存的自協商結果。5、一種交換機,通過光口與通信對端建立通信連接,其特征在于,包括PHY芯片,用于通過光口與通信對端進行流控模式自協商,并保存自協商結果,該自協商結果用于定義本端交換芯片執行的流控模式;交換芯片,用于執行設置的流控模式,對本端與通信對端之間的通信數據進行流量控制;處理模塊,用于獲^^PHY芯片當前保存的自協商結果,并確定本端交換芯片當前執行的流控模式,以及將所述自協商結果定義的流控模式與本端交換芯片當前執行的流控模式進行比較,并在確定兩者不一致時,根據所述自協商結果定義的流控模式重新設置本端交換芯片執行的流控模式。6、如權利要求5所述的交換機,其特征在于,還包括檢測模塊,用于對本端與通信對端之間的鏈路連接狀態進行檢測,并在確定該鏈路連接狀態未發生通斷變化時,通知處理^f莫塊確定本端交換芯片當前執行的流控模式。7、如權利要求6所述的交換機,其特征在于,所述檢測模塊還用于在確定本端與通信對端之間的鏈路連接狀態發生通斷變化時,通知處理模塊直接根據獲取的自協商結果重新設置本端交換芯片執行的流控模式。8、如權利要求5、6或7所述的交換機,其特征在于,所述處理才莫塊用于按照設定的周期獲取本端PHY芯片當前保存的自協商結果。全文摘要本發明公開了一種設置流控模式的方法,該方法為交換機獲取本端PHY芯片當前保存的自協商結果,該自協商結果用于定義本端交換芯片執行的流控模式,以及確定本端交換芯片當前執行的流控模式;接著,交換機將所述自協商結果定義的流控模式與本端交換芯片當前執行的流控模式進行比較,并在確定兩者不一致時,根據所述自協商結果定義的流控模式重新設置本端交換芯片執行的流控模式。這樣,便保證了本端與通信對端的流控狀態的一致性,使本端和通信對端在通信過程中不會因流控狀態的錯亂而發生丟包現象,這在很大程度上提高了交換機的工作質量,也提高了系統的穩定性。本發明同時公開了一種交換機。文檔編號H04L12/56GK101360050SQ20081014939公開日2009年2月4日申請日期2008年9月25日優先權日2008年9月25日發明者峻林申請人:福建星網銳捷網絡有限公司