專利名稱:一種設備內部多播流量轉發(fā)的方法、網絡設備及線卡的制作方法
技術領域:
本發(fā)明涉及網絡通信技術領域,尤其涉及一種設備內部多播流量轉發(fā)的方法和網絡設備及線卡。
背景技術:
隨著多方視頻語音會議、交互式網絡電視(IPTV =Interactive PersonalityTelevision)等大流量視頻點播的推廣,路由器和交換機等網絡設備的交換網卡很多都采用多平面的交換矩陣形式來滿足傳送帶寬的需求,即采用多個交換平面來形成流量分擔,來有效降低系統(tǒng)的設計難度。交換平面是交換矩陣的最小單位,交換矩陣由多個交換平面構成。交換矩陣所有的輸入聯接接至所有的輸出,形成全連接形式,線卡之間的通信流量通過交換網卡來完成轉發(fā)。多播技術是一種一個發(fā)送者向一組接收者傳送數據的有效傳輸方式。多播轉發(fā)是路由器或交換機等網絡設備將多播流量轉發(fā)到其他多播設備正在偵聽的網絡上。在現有技術中,路由器和交換機等網絡設備內部進行多播流量轉發(fā)采用的技術方案為多播流量由報文組成,各路多播流量的報文按照時間順序進入設備內部的源線卡,源線卡對來自于同一路流量的各報文進行隨機分發(fā),將來自于同一路流量的各報文分發(fā)到交換網卡中不同的交換平面模塊上,通過交換網卡的多個交換平面模塊根據報文所要到達的目的線卡對報文進行轉發(fā),將各報文轉發(fā)到目的線卡上,目的線卡對接收到的各報文進行重排序,進行下一步的發(fā)送。例如,如圖1所示,兩路流量Ll和L2進入線卡1,線卡1將來自于Ll路流量的第一個報文Lla發(fā)送到交換平面模塊I,接著將來自于Ll路流量的第二個報文Llb發(fā)送到交換平面模塊II,將Ll路流量的第三個報文Llc發(fā)送到交換平面模塊 III,最終目的線卡2接收到來自于交換平面模塊I、交換平面模塊II和交換平面模塊III 的Ll路流量各報文,由于目的線卡2上接收Ll路流量的各報文來自于不同的交換平面模塊,且可能各交換平面模塊存在著的性能差異,使目的線卡2接收的各報文Lla、Llb和Llc 是亂序的,需要對接收到的報文Lla、Llb和Llc在緩存區(qū)重排序之后再進行下一步的發(fā)送。 同理,L2路流量的各報文L2a、L2b和L2c被隨機發(fā)送到各交換平面模塊后轉發(fā)至目的線卡 3,目的線卡3需要對各報文L2a、L2b和L2c進行重排序后進行下一步地的發(fā)送。本發(fā)明人在實現上述設備內部多播流量轉發(fā)的過程中,發(fā)現現有技術中存在如下缺點同一路流量的各報文經過不同的交換平面后再轉發(fā)至目的線卡,當目的線卡接收同一路流量的報文時,所述同一路流量的報文是亂序的,目的線卡需要對接收到的來自不同交換平面模塊的同一路流量的報文進行重排序,重排序所需的時間會使報文轉發(fā)的時延增加,降低多播流量轉發(fā)的及時性,影響多播流量轉發(fā)的效率。視頻業(yè)務對數據時延的要求比較苛刻,現有技術中按報文進行多播流量轉發(fā)的方式不能滿足業(yè)務轉發(fā)需求。
發(fā)明內容
本發(fā)明的實施例提供一種設備內部多播流量轉發(fā)的方法,能夠減少多播流量在設
4備內部轉發(fā)的時延,提升多播流量轉發(fā)的效率。本發(fā)明實施例提供的設備內部多播流量轉發(fā)的方法,采用的技術方案為對多播流量進行歸類,形成至少一個分類流量,其中,一個所述分類流量包括所述多播流量中的至少一路流量;發(fā)送所述至少一個分類流量至交換平面,其中,同一分類流量的各路流量發(fā)送至同一交換平面;將所述同一分類流量中的各路流量通過該同一分類流量中的各路流量發(fā)送至的所述交換平面進行轉發(fā)。本發(fā)明實施例提供的設備內部多播流量轉發(fā)的方法,在設備內部對各路多播流量進行歸類,形成至少一個分類流量,使多播流量在轉發(fā)過程中按類別轉發(fā),對于同一分類流量轉發(fā)至同一個交換平面上,該類別中的各路流量均通過該交換平面進行轉發(fā),交換平面根據同一分類流量中的各路流量的內部接收端進行轉發(fā),設備內部接收端接收到的同一路流量的所有報文均按照時間順序來自于同一個交換平面,不需要在設備內部對來自于同一路流量的各報文進行重排序,從而減少了因重排序產生的轉發(fā)時延,進而提升設備內部多播流量轉發(fā)的效率。本發(fā)明實施例還提供了一種網絡設備,能夠減少多播流量在設備內部轉發(fā)的時延,提升多播流量轉發(fā)的效率。本發(fā)明實施例提供的網絡設備,采用的技術方案包括源線卡陣列、交換網卡和目的線卡陣列,其中源線卡陣列,用于對多播流量進行歸類,形成至少一個分類流量,其中一個所述分類流量包括所述多播流量中的至少一路流量;發(fā)送所述至少一個分類流量至交換平面,其中,同一分類流量的各路流量發(fā)送至同一交換平面模塊;交換網卡,包括多個交換平面模塊,用于接收源線卡陣列發(fā)送的所述至少一個分類流量,并將所述至少一個分類流量發(fā)送給目的線卡陣列;目的線卡陣列,用于接收來自各交換平面模塊轉發(fā)的所述至少一個分類流量。本發(fā)明實施例提供的網絡設備,在源線卡陣列中對各路多播流量進行分類,形成至少一個分類流量,使多播流量在設備內部轉發(fā)的過程中按類別進行轉發(fā),對于同一個分類流量中的各路流量轉發(fā)至交換網卡的同一個交換平面模塊上,該類別中的各路流量均通過該交換平面模塊進行轉發(fā),即交換平面根據同一分類流量中的各路流量的目的線卡向目的線卡陣列進行轉發(fā),目的線卡陣列接收的同一路流量的所有報文均按照時間順序來自于同一個交換平面模塊,目的線卡陣列對于來自同一路流量的各報文不需要進行重排序,從而減少了因重排序產生的轉發(fā)時延,進而提升設備內部多播路流量轉發(fā)的效率。本發(fā)明實施例還提供了一種線卡,能夠使同一路多播流量的各報文在同一交換平面模塊轉發(fā)。本發(fā)明實施例提供的線卡,采用的技術方案包括網絡處理模塊,用于對多播流量進行歸類,形成至少一個分類流量;其中一個所述分類流量包括所述多播流量中的至少一路流量;流量管理模塊,用于發(fā)送所述至少一個分類流量至交換平面模塊,其中,同一分類流量的各路流量發(fā)送至同一交換平面模塊;本發(fā)明實施例提供的線卡,對進入線卡的各路多播流量進行歸類,并按照分類確定各分類流量所要轉發(fā)到交換網卡中的交換平面模塊,對于同類的分類流量中的各路流量總是轉發(fā)至同一個交換平面模塊,各路流量中的各報文按照時間順序均通過該交換平面模塊轉發(fā)。
圖1為現有技術設備內部多播轉發(fā)的示意圖;圖2為本發(fā)明實施例一設備內部多播流量轉發(fā)的方法流程圖;圖3為本發(fā)明實施例三的網絡設備框圖;圖4為本發(fā)明實施例三的網絡設備內部多播流量轉發(fā)的示意圖;圖5為本發(fā)明實施例四的線卡框圖。
具體實施例方式本發(fā)明旨在提供一種設備內部多播流量轉發(fā)的方法、系統(tǒng)和線卡,減少現有技術中多播流量設備內部重排序的步驟,能夠減少多播流量在設備內部轉發(fā)的時延,提升多播轉發(fā)的效率。為了使本領域的技術人員更好地理解本發(fā)明實施例的技術方案,下面結合附圖和實施方式對本發(fā)明實施例作進一步的詳細說明。實施例一參見圖2,本發(fā)明實施例提供的設備內部多播流量轉發(fā)的方法,包括如下步驟S101、對多播流量進行歸類,形成至少一個分類流量,其中,一個所述分類流量包括所述多播流量中的至少一路流量。。依據特定的歸類策略,將多播流量中的各路流量進行歸類,形成至少一個分類流量。S102、發(fā)送所述至少一個分類流量至交換平面,其中,同一分類流量的各路流量發(fā)送至同一交換平面。在對多播流量進行歸類后,將同一分類流量發(fā)送至同一交換平面,使同一交換平面接收到的同一分類流量均來自于同一個設備內部發(fā)送端。S103、將同一分類流量中的各路流量通過該同一分類流量中的各路流量發(fā)送至的所述交換平面進行轉發(fā)。基于現有技術,所述至少一個分類流量通過交換平面進行轉發(fā),從而交換平面建立起多播流量設備內部發(fā)送與接收之間的鏈接通路關系。在本發(fā)明實施例中,對于同一分類流量中的各路流量,該路流量的鏈接通路是不變的,該路流量按照報文進入設備的時間順序進行轉發(fā)。各路流量需要到達的設備內部接收端是固定的,該路流量的接收端基于現有技術,由設備的輸入端決定。交換平面基于輸入端的決定將接收到的流量報文轉發(fā)至該路流量的設備內部接收端。本發(fā)明實施例提供的設備內部多播流量轉發(fā)的方法,在設備內部對多播流量進行分類,形成至少一個分類流量,使多播流量在轉發(fā)過程中按類別轉發(fā),對于同一分類流量轉發(fā)至同一個交換平面上,該類別中的各路流量均通過該交換平面進行轉發(fā),即交換平面根據同一分類流量中的各路流量的內部接收端進行轉發(fā),設備內部接收端接收到的同一路流量的所有報文均按照時間順序來自于同一個交換平面,不需要在設備內部對來自于同一路的流量報文進行重排序,從而減少了因重排序產生的轉發(fā)時延,進而提升多播轉發(fā)的效率。實施例二本發(fā)明實施例提供的設備內部多播流量轉發(fā)的方法,包括如下步驟S201、對各路多播流量進行信息標識識別,采用分類算法對各路多播流量的信息標識進行歸類,形成至少一個分類流量。其中,信息標識包括多播流量的硬件位址,S卩MAC(Media Access Control)地址、因特網協議地址,即IPdnternet Protocol)地址、協議端口號、虛擬局域網號,即 VLAN (Virtual Local Area Network)號和協議號中的至少一種。本發(fā)明實施例所采用的分類算法可以基于現有算法,該算法能夠使各路多播流量進行歸類,該歸類是收斂的,也就是多播流量的種類數目遠少于流量的路數,例如可以采用異或算法對多播流量的信息標識進行歸類,或者還可以采用循環(huán)冗余校驗(CRC,Cyclical Redundancy Check)算法對多播流量的信息標識進行歸類,形成分類流量。需要說明的是, 本發(fā)明實施例的分類算法并不限于所列舉的分類算法,同樣可以采用其他使多播流量每類流量的路數趨于平均的現有算法。S202、將所述至少一個分類流量按照類別數目均衡地分擔到各交換平面,其中所述同一分類流量的各路流量發(fā)送至同一個交換平面。將所述至少一個分類流量按照類別數目均衡地分擔到各交換平面,即各交換平面所負擔的分類流量種類數目相當,可以使各交換平面處理的數據數量趨于均衡,各交換平面所負載的流量相當,保證各交換平面能夠進行快速公平高效的轉發(fā)。S203、將同一分類流量中的各路流量通過該同一分類流量中的各路流量發(fā)送至的交換平面進行轉發(fā)?;诂F有技術,交換平面根據同一分類流量中的各路流量的內部接收端進行轉發(fā),設備內部接收端接收到的同一路流量的所有報文按照報文進入設備的順序均來自于同一個交換平面,則不需要對各報文進行重排序,從而減少了報文重排序所需要的時延,進而減少多播流量轉發(fā)的時延,提高了多播轉發(fā)的效率。本發(fā)明實施例的多播流量轉發(fā)方法可以應用于框式路由器,還可以是框式交換機等設備,特別適用于實時視頻或大流量視頻點播等應用場合。實施例三參見圖3,本發(fā)明實施例提供了一種網絡設備1,包括源線卡陣列2、交換網卡3和目的線卡陣列4,其中源線卡陣列2,用于對多播流量進行歸類,形成至少一個分類流量,其中一個所述分類流量包括所述多播流量中的至少一路流量;發(fā)送所述至少一個分類流量至交換平面,其中同一分類流量的各路流量發(fā)送至同一交換平面模塊;交換網卡3,包括多個交換平面模塊(η個,η為大于等于1的自然數),用于接收源線卡陣列發(fā)送所述至少一個分類流量,并將所述至少一個分類流量發(fā)送給目的線卡陣列;目的線卡陣列4,用于接收來自各交換平面模塊轉發(fā)的所述至少一個分類流量。交換平面之間是并行的,沒有依賴關系。交換平面是邏輯實體,交換網卡是交換平面的物理實現。本發(fā)明實施例的網絡設備,源線卡陣列和目的線卡陣列分別包括多個源線卡(η個)和目的線卡(η個)。源線卡對進入設備的各路多播流量進行分類,形成至少一個分類流量,并將同一分類流量向同一交換平面模塊進行發(fā)送,多播流量按照分類進入交換網卡,源線卡與目的線卡通過交換網卡的各交換平面模塊建立多播流量轉發(fā)的鏈接通路,對于同一分類流量中的各路流量,該路流量的鏈接通路只有一個,該路流量的報文進入設備有時間順序,該路流量的鏈接通路是不變的,即該路流量的各報文按照時間順序總是通過同一個交換平面模塊進行轉發(fā),進入目的線卡的各路多播流量的各報文與進入源線卡順序相同,不需要進行重排序,從而減少了報文重排序所需要的時延,進而減少多播流量轉發(fā)的時延,提高了設備內部多播流量轉發(fā)的效率。本發(fā)明實施例的網絡設備可以是框式路由器,還可以是框式交換機,特別適用于實時視頻或大流量視頻點播等應用場合。進一步地,本發(fā)明實施例的網絡設備,源線卡包括信息識別模塊,用于對各路多播流量進行信息標識識別,采用分類算法對各路多播流量的信息標識進行歸類,形成至少一個分類流量;流量管理模塊,用于將同一分類流量中的各路流量發(fā)送至同一個交換平面模塊。多播流量進入源線卡時本身攜帶各自的信息標識,信息識別模塊對進入到源線卡的多播流量進行信息標志識別,本實施例中信息識別模塊為線卡中的網絡處理器(ΝΡ, Network Processor)。多播流量的信息標識包括多播流量的MAC地址、IP地址、TCP端口號、VLAN號和/或協議號,信息識別模塊采用基于現有技術的分類算法對多播流量進行歸類,該歸類是收斂的,也就是多播流量的種類數目遠少于流量的路數,例如本實施例的信息識別模塊采用異或算法對多播流量的信息標識進行歸類。同樣地,本發(fā)明實施例的信息識別模塊還可以采用循環(huán)冗余校驗(CRC)算法對多播流量的信息標識進行歸類或者可以采用其他可以使多播流量每類流量的路數趨于平均的現有算法。源線卡中的流量管理模塊, 本實施例中為線卡中的流量管理(TM,Traffic Management)芯片確定所述至少一個分類流量所分發(fā)到達交換網卡中的交換平面模塊,同一分類流量的各路報文向同一個交換平面模塊發(fā)送。進一步地,本發(fā)明實施例流量管理模塊包括,流量分配模塊,用于將所述至少一個分類流量按照類別數目均衡地分擔到交換網卡中的各交換平面模塊。各交換平面模塊所負擔的分類流量種類數目相當,可以使各交換平面模塊處理的流量數量趨于均衡,使交換網卡能夠進行快速公平高效的轉發(fā)。參見圖4,本發(fā)明實施例在網絡設備內部進行多播轉發(fā)的流程如下多播流量A, 進入源線卡1,多播流量A包括來自各路的流量L1-L6,源線卡1的信息識別模塊將流量A 進行歸類,形成分類流量,分類流量分別為a類,b類和c類,各類流量路數平均,每類流量包括兩路流量。源線卡1的流量管理模塊將a類流量轉發(fā)至交換平面模塊I,交換平面I將a 類流量的Ll和L2路流量轉發(fā)至各路流量的目的線卡,Ll路流量進入目的線卡2,L2路流量進入目的線卡3,目的線卡2和目的線卡3分別接收來自L2路和L 3路流量的所有報文, 其接收順序是按照各路流量報文進入源線卡1的時間順序,目的線卡2和目的線卡3不需要對來自于L2路和L3路流量的各報文進行重排序;同理,流量管理模塊將b類流量的L3 路和L4路流量轉發(fā)至交換平面模塊II,然后分別轉發(fā)至L3路流量和L4路流量的目的線卡 3和目的線卡4 ;流量管理模塊將c類流量轉發(fā)至交換平面模塊III,然后將c類流量的L5
8路和L6路流量按照各路流量報文的時間順序分別轉發(fā)至目的線卡2和目的線卡4,各目的線卡不需要對各路流量的報文進行重排序,從而提高了設備內部多播流量轉發(fā)的效率。實施例四本發(fā)明實施例還提供了一種線卡,能夠使同一路多播流量的各報文在同一交換平面模塊轉發(fā)。本發(fā)明實施例的線卡5,包括網絡處理模塊6,用于對多播流量進行歸類,形成至少一個分類流量,其中一個所述分類流量包括所述多播流量中的至少一路流量;;流量管理模塊7,用于發(fā)送所述至少一個分類流量至交換平面模塊,其中,同一分類流量的各路流量發(fā)送至同一交換平面模塊。本發(fā)明實施例提供的線卡,對進入線卡的各路多播流量進行歸類,并按照分類確定各分類流量所要轉發(fā)到交換網卡中的交換平面模塊,對于同類的分類流量中的各路流量總是轉發(fā)至同一個交換平面模塊,各路流量中的各報文按照時間順序均通過該交換平面模塊轉發(fā)。進一步地,本發(fā)明實施例網絡處理模塊6包括信息識別模塊601,用于對各路多播流量進行信息標識識別,采用分類算法對各路多播流量的信息標識進行歸類,形成至少一個分類流量。多播流量進入源線卡時本身攜帶各自的信息標識,信息識別模塊對進入到源線卡的多播流量進行信息標志識別。多播流量的信息標識包括多播流量的MAC地址、IP地址、 TCP端口號、VLAN號和/或協議號,信息識別模塊采用基于現有技術的分類算法對多播流量進行歸類,例如本實施例的信息識別模塊采用異或算法對多播流量的信息標識進行歸類。 同樣地,本發(fā)明實施例的信息識別模塊還可以采用循環(huán)冗余校驗(CRC)算法對多播流量的信息標識進行歸類或者可以采用其他可以使多播流量每類流量的路數趨于平均的現有算法。進一步地,本發(fā)明實施例流量管理模塊7包括流量分配模塊701,用于將所述至少一個分類流量按照類別數目均衡地分擔到交換網卡中的各交換平面模塊。這樣可以使與線卡連接的各交換平面模塊所負擔的分類流量種類數目相當,可以使各交換平面模塊處理的數據數量趨于均衡,使交換網卡能夠進行快速公平高效的轉發(fā)。本發(fā)明實施例中信息識別模塊對進入線卡的各路多播流量進行分類,流量分配模塊將分類流量按照類別數目均衡地分擔到交換網卡中的各交換平面模塊,對于同一分類流量中的各路流量轉發(fā)至同一個交換平面模塊上,使該類別中的各路流量均通過該交換平面模塊進行轉發(fā),使下行接收模塊收到的該路流量的所有報文按照時間順序來自于同一個交換平面模塊。以上所述,僅為本發(fā)明的具體實施方式
,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應以所述權利要求的保護范圍為準。
9
權利要求
1.一種設備內部多播流量轉發(fā)的方法,其特征在于,該方法包括對多播流量進行歸類,形成至少一個分類流量,其中,一個所述分類流量包括所述多播流量中的至少一路流量;發(fā)送所述至少一個分類流量至交換平面,其中,同一分類流量的各路流量發(fā)送至同一交換平面;將所述同一分類流量中的各路流量通過該同一分類流量中的各路流量發(fā)送至的所述交換平面進行轉發(fā)。
2.按照權利要求1所述的設備內部多播流量轉發(fā)的方法,其特征在于,所述對多播流量進行歸類,形成至少一個分類流量,具體為對各路多播流量進行信息標識識別,采用分類算法對所述各路多播流量的所述信息標識進行歸類,形成至少一個分類流量;其中所述信息標識包括所述多播流量的硬件位址、因特網協議地址、協議端口號、虛擬局域網號和協議號中的至少一種。
3.按照權利要求1所述的設備內部多播流量轉發(fā)的方法,其特征在于,所述發(fā)送所述至少一個分類流量至交換平面,其中,同一分類流量的各路流量發(fā)送至同一交換平面,具體為將所述至少一個分類流量按照類別數目均衡地分擔到各交換平面,其中所述同一分類流量的各路流量發(fā)送至同一個交換平面。
4.一種網絡設備,其特征在于,包括源線卡陣列、交換網卡和目的線卡陣列,其中源線卡陣列,用于對多播流量進行歸類,形成至少一個分類流量,其中,一個所述分類流量包括所述多播流量中的至少一路流量;發(fā)送所述至少一個分類流量至交換平面,其中,同一分類流量的各路流量發(fā)送至同一交換平面模塊;交換網卡,包括多個交換平面模塊,用于接收所述源線卡陣列發(fā)送的所述至少一個分類流量,并將所述至少一個分類流量發(fā)送給所述目的線卡陣列;目的線卡陣列,用于接收來自各所述交換平面模塊轉發(fā)的所述至少一個分類流量。
5.按照權利要求4所述的網絡設備,其特征在于,所述源線卡陣列,包括多個源線卡; 其中各所述源線卡包括信息識別模塊,用于對所述各路多播流量進行信息標識識別,采用分類算法對所述各路多播流量的所述信息標識進行歸類,形成至少一個分類流量;流量管理模塊,用于將同一分類流量的各路流量發(fā)送至同一交換平面模塊。
6.按照權利要求5所述的網絡設備,其特征在于,所述流量管理模塊包括流量分配模塊,用于將所述至少一個分類流量按照類別數目均衡地分擔到所述交換網卡中的各所述交換平面模塊。
7.按照權利要求5所述的網絡設備,其特征在于,所述信息標識包括所述多播流量的硬件位址、因特網協議地址、協議端口號、虛擬局域網號和協議號中的至少一種。
8.一種線卡,其特征在于,包括網絡處理模塊,用于對多播流量進行歸類,形成至少一個分類流量;其中,一個所述分類流量包括所述多播流量中的至少一路流量;流量管理模塊,用于發(fā)送所述至少一個分類流量至交換平面模塊,其中,同一分類流量的各路流量發(fā)送至同一交換平面模塊。
9.按照權利要求8所述的線卡,其特征在于,所述網絡處理模塊包括信息識別模塊,用于對所述各路多播流量進行信息標識識別,采用分類算法對所述各路多播流量的所述信息標識進行歸類,形成至少一個分類流量。
10.按照權利要求8所述的線卡,其特征在于,所述流量管理模塊包括流量分配模塊,用于將所述至少一個分類流量按照類別數目均衡地分擔到所述交換網卡中的各所述交換平面模塊。
全文摘要
本發(fā)明公開一種設備內部多播流量轉發(fā)的方法和網絡設備,涉及網絡通信技術領域,為減少多播流量在設備內部轉發(fā)時延進而提升多播轉發(fā)效率而設計。該方法包括對多播流量進行歸類,形成至少一個分類流量,其中,一個所述分類流量包括多播流量中的至少一路流量;發(fā)送所述至少一個分類流量至交換平面,其中,同一分類流量的各路流量發(fā)送至同一交換平面;將同一分類流量中的各路流量通過該同一分類流量中的各路流量發(fā)送至的所述交換平面進行轉發(fā)。本發(fā)明提供的網絡設備包括源線卡陣列、交換網卡和目的線卡陣列。本發(fā)明用于網絡數據傳輸。本發(fā)明還提供一種線卡,包括網絡處理模塊和流量管理模塊,能夠使同一路多播流量的各報文在同一交換平面模塊轉發(fā)。
文檔編號H04L12/56GK102195931SQ20101011769
公開日2011年9月21日 申請日期2010年3月4日 優(yōu)先權日2010年3月4日
發(fā)明者彭曉澎, 楊雄 申請人:華為技術有限公司