專利名稱:一種網(wǎng)絡中轉(zhuǎn)的方法、網(wǎng)絡中轉(zhuǎn)服務器和內(nèi)核管理模塊的制作方法
技術領域:
本發(fā)明涉及互聯(lián)網(wǎng)技術領域,尤其涉及一種網(wǎng)絡中轉(zhuǎn)的方法、網(wǎng)絡中轉(zhuǎn) 服務器和內(nèi)核管理模塊。
背景技術:
隨著互聯(lián)網(wǎng)應用的快速發(fā)展,基于國際協(xié)議版本4 (IPV4: Internet Protocol version 4 )的互聯(lián)網(wǎng)公網(wǎng)地址緊缺問題非常突出,因此誕生了網(wǎng)絡地址轉(zhuǎn)換 (NAT: Network Address Translators )技術,它可以使多臺局域網(wǎng)計算機共享 同一公網(wǎng)地址(IP: Internet Protocol)來接入互聯(lián)網(wǎng)。但由此帶來的問題是, NAT隱藏了局域網(wǎng)內(nèi)的真實節(jié)點信息,^f吏互Jf關網(wǎng)的其它節(jié)點與該局域網(wǎng)內(nèi)的真 實節(jié)點無法互相通訊,乂人而大大限制了諸如即時通信(IM: Instant Messaging )、 點到點(P2P)、交互式流i某體等網(wǎng)絡應用。為了解決這個問題,通過網(wǎng)絡中轉(zhuǎn)穿越NAT ( TURN: Traversal Using Relay NAT)技術應運而生。TURN技術可以使隱藏在NAT后的節(jié)點與擁有7>網(wǎng)IP 的中轉(zhuǎn)服務器通訊,進而由中轉(zhuǎn)服務器轉(zhuǎn)發(fā)網(wǎng)絡數(shù)據(jù),達到穿越NAT的目的。 目前,基于應用層轉(zhuǎn)發(fā)的TURN技術已經(jīng)比較成熟。參見圖1,圖1為現(xiàn) 有技術中實現(xiàn)網(wǎng)絡中轉(zhuǎn)的流程示意圖。其中,在該實施例中,以傳輸控制協(xié)議 (TCP: Transmission Control Protocol) 為例,并且,發(fā)送端設定為NAT后的 節(jié)點x (End Point x),以下簡稱EPx,目標端i殳定為應用月良務y,其具體結(jié)構(gòu) 示意圖如圖2所示。如圖1所示,該流程包括以下步驟 步驟IOI,建立lt據(jù)通道x。其中,數(shù)據(jù)通道x為EPx與網(wǎng)絡中轉(zhuǎn)(Relay)服務器的TCP連接對應的 數(shù)據(jù)通道。此外,在建立數(shù)據(jù)通道x時,Relay服務器可以對EPx做必要的接入認證。當EPx需要向應用服務y中轉(zhuǎn)數(shù)據(jù)時,執(zhí)行步驟102。 步驟102, EPx直接向數(shù)據(jù)通道x發(fā)送報文。步驟103, Relay服務器在應用層接收到報文后,對該報文頭進行解析。其中,Relay服務器對該報文頭進行解析,可以解析出要轉(zhuǎn)發(fā)的應用服務y 的IP地址和應用服務y接收該才艮文的端口信息。步驟104, Relay服務器根據(jù)應用服務y的IP地址和應用服務y接收該報 文的端口信息,建立與應用服務y進行TCP連接對應的數(shù)據(jù)通道y。其中,在數(shù)據(jù)通道y后,還需要進一步建立數(shù)據(jù)通道y和數(shù)據(jù)通道x的映 射關系,然后執(zhí)行步驟105。步驟105,將上述報文從數(shù)據(jù)通道y轉(zhuǎn)發(fā)。此外,當應用服務y需要響應該報文時,應用服務y直接向數(shù)據(jù)通道y發(fā) 送響應報文。Relay服務器在應用層接收到該響應報文后,根據(jù)數(shù)據(jù)通道y和數(shù) 據(jù)通道x的映射關系,將上述響應報文直接從數(shù)據(jù)通道x轉(zhuǎn)發(fā)。此外,當EPx想中止報文的中轉(zhuǎn)時,直接將數(shù)據(jù)通道x關閉,這樣,本次 數(shù)據(jù)中轉(zhuǎn)結(jié)束??梢?,現(xiàn)有技術中通過Relay服務器在應用層轉(zhuǎn)發(fā)報文,能夠?qū)崿F(xiàn)EPx與 應用服務y之間進行信息交互。但是,如圖2所示,在現(xiàn)有技術中,通過Relay 服務器在應用層轉(zhuǎn)發(fā)報文,不可避免的需要從內(nèi)核空間復制該報文到用戶空間, 并且也需要執(zhí)行用戶態(tài)和內(nèi)核態(tài)之間的切換操作,這樣,就會造成計算資源的 大量浪費,從而降低Relay服務器中轉(zhuǎn)報文的效率。發(fā)明內(nèi)容本發(fā)明實施例提供了 一種網(wǎng)絡中轉(zhuǎn)的方法、網(wǎng)絡中轉(zhuǎn)服務器和內(nèi)核管理 模塊,以便提高Relay服務器中轉(zhuǎn)報文的效率。本發(fā)明實施例所提供的一種網(wǎng)絡中轉(zhuǎn)的方法,包括步驟A、網(wǎng)絡中轉(zhuǎn)Relay服務器中的內(nèi)核管理模塊在接收到報文時,判斷6當前是否已建立第一數(shù)據(jù)通道與第二數(shù)據(jù)通道的映射關系,如果是,執(zhí)行步驟B;步驟B、內(nèi)核管理模塊在內(nèi)核空間中轉(zhuǎn)發(fā)所述報文;其中,所述第一數(shù)據(jù)通道為發(fā)送端與Relay服務器對應的數(shù)據(jù)通道;所述 第二數(shù)據(jù)通道為Relay服務器與接收端對應的數(shù)據(jù)通道。本發(fā)明實施例所提供的一種網(wǎng)絡中轉(zhuǎn)服務器,包括應用管理模塊和內(nèi)核 管理模塊,其中,所述應用管理模塊,用于管理發(fā)送端與網(wǎng)絡中轉(zhuǎn)Relay服務器對應的第一 數(shù)據(jù)通道;以及Relay服務器與接收端對應的第二數(shù)據(jù)通道,并用于觸發(fā)所述 內(nèi)核管理模塊建立第 一數(shù)據(jù)通道與第二數(shù)據(jù)通道的映射關系;所述內(nèi)核管理模塊,用于在所述應用管理模塊的觸發(fā)下建立第一數(shù)據(jù)通道 與第二數(shù)據(jù)通道的映射關系,還用于在接收到報文時,判斷當前是否已建立第 一數(shù)據(jù)通道與第二數(shù)據(jù)通道的映射關系,如果是,在內(nèi)核空間中轉(zhuǎn)發(fā)所述報文。本發(fā)明實施例所提供的一種內(nèi)核管理模塊,包括映射建立單元、判斷單 元和發(fā)送單元;其中,所述映射建立單元,用于建立第 一數(shù)據(jù)通道與第二數(shù)據(jù)通道的映射關系, 所述第一數(shù)據(jù)通道為發(fā)送端與網(wǎng)絡中轉(zhuǎn)Relay服務器對應的數(shù)據(jù)通道,所述第 二數(shù)據(jù)通道為Relay服務器與接收端對應的數(shù)據(jù)通道;所述判斷單元,用于在接收到報文時,判斷所述映射建立單元當前是否已 建立所述第一數(shù)據(jù)通道與所述第二數(shù)據(jù)通道的映射關系,如果是,發(fā)送轉(zhuǎn)發(fā)通 知給所述發(fā)送單元;所述發(fā)送單元,用于在接收到所述轉(zhuǎn)發(fā)通知后,在內(nèi)核空間中將所述報文 轉(zhuǎn)發(fā)。從上述方案可以看出,本發(fā)明實施例在內(nèi)核管理模塊接收到報文時,如 果判斷出當前已建立第 一數(shù)據(jù)通道與第二數(shù)據(jù)通道的映射關系,則直接在內(nèi) 核空間中轉(zhuǎn)發(fā)所述報文,這樣能夠避免現(xiàn)有技術中從內(nèi)核空間復制該報文到 用戶空間,以及執(zhí)行用戶態(tài)和內(nèi)核態(tài)之間的切換所對應的操作,進而節(jié)省大量計算資源,實現(xiàn)了直接在內(nèi)核空間中轉(zhuǎn)發(fā)所述報文,進而提高Relay服務 器中轉(zhuǎn)報文的效率。
圖1為現(xiàn)有技術中實現(xiàn)網(wǎng)絡中轉(zhuǎn)的流程示意圖;圖2為現(xiàn)有技術中實現(xiàn)網(wǎng)絡中轉(zhuǎn)的結(jié)構(gòu)示意圖;圖3為本發(fā)明實施例中網(wǎng)絡中轉(zhuǎn)方法的示例性流程圖;圖4為本發(fā)明實施例中的網(wǎng)絡中轉(zhuǎn)服務器的結(jié)構(gòu)示意圖;圖5為本發(fā)明實施例中內(nèi)核管理模塊的一種結(jié)構(gòu)示意圖。
具體實施方式
考慮到現(xiàn)有技術中Relay服務器在應用層轉(zhuǎn)發(fā)報文會導致用戶態(tài)和內(nèi)核態(tài) 之間的切換,進而也不可避免從內(nèi)核空間復制報文到用戶空間。因此,本發(fā)明 實施例提出了一種能夠解決現(xiàn)有技術諸多問題的網(wǎng)絡中轉(zhuǎn)方法。具體實現(xiàn)時, 包括Relay服務器中的內(nèi)核管理模塊在接收到報文時,該內(nèi)核管理模塊判斷當 前是否已建立第一數(shù)據(jù)通道與第二數(shù)據(jù)通道的映射關系,如果是,則在內(nèi)核空 間中轉(zhuǎn)發(fā)所述報文。這樣,實現(xiàn)了直接在內(nèi)核空間中轉(zhuǎn)發(fā)報文,進而提高Relay 服務器中轉(zhuǎn)報文的效率。其中,上述第一數(shù)據(jù)通道為發(fā)送端與Relay服務器對應的數(shù)據(jù)通道;第二 數(shù)據(jù)通道為Relay服務器與接收端對應的數(shù)據(jù)通道。另外,通過內(nèi)核管理模塊在內(nèi)核空間中轉(zhuǎn)發(fā)所述報文,能夠保證Relay服 務器僅在應用層對該數(shù)據(jù)通道進行控制管理,省略現(xiàn)有技術在應用層所進行的 諸如執(zhí)行從內(nèi)核空間復制該報文到用戶空間,以及執(zhí)行用戶態(tài)和內(nèi)核態(tài)之間切 換的操作,大大釋放Relay服務器在應用層的資源,實現(xiàn)了直接在內(nèi)核空間中 轉(zhuǎn)發(fā)報文的目的,進而提高Relay服務器中轉(zhuǎn)報文的效率。為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,下面結(jié)合實施例和附 圖,對本發(fā)明進一步詳細說明。圖3為本發(fā)明實施例中網(wǎng)絡中轉(zhuǎn)方法的示例性流程圖。本實施例中, 以發(fā)送端與Relay服務器、接收端與Relay服務器進行TCP連接為例,如圖 3所示,當內(nèi)核管理模塊接收到報文時,該流程可包括如下步驟步驟301,內(nèi)核管理模塊判斷當前是否已建立第 一數(shù)據(jù)通道與第二數(shù)據(jù) 通道的映射關系,如果是,執(zhí)行步驟302,否則,執(zhí)行步驟303。 本實施例中,在執(zhí)行步驟301之前,通??砂ㄒ韵虏襟E Al 、建立發(fā)送端與Relay服務器進行TCP連接對應的數(shù)據(jù)通道。 這里,上述第一數(shù)據(jù)通道為發(fā)送端與Relay服務器之間進行TCP連接對應 的數(shù)據(jù)通道。此外,本實施例中,在建立第一數(shù)據(jù)通道時,Relay月良務器可對 發(fā)送端作一些必要的接入認證,具體實施方法與現(xiàn)有技術類似,這里不再—— 贅述。A2、建立Relay服務器與接收端進行TCP連接對應的數(shù)據(jù)通道。 這里,上述第二數(shù)據(jù)通道為Relay服務器與接收端之間進行TCP連接 對應的數(shù)據(jù)通道。此外,上述第一數(shù)據(jù)通道與第二數(shù)據(jù)通道的映射關系是內(nèi)核管理模塊在 Relay服務器通過應用層發(fā)送的內(nèi)核控制原語通知的觸發(fā)下建立的。優(yōu)選地,內(nèi) 核管理模塊在建立第一數(shù)據(jù)通道與第二數(shù)據(jù)通道的映射關系時,還會同時維護 發(fā)送端和4^收端分別對應的IP地址信息。本實施例中,上述發(fā)送端可以為NAT后的節(jié)點,相應地,接收端為應用服 務端。這樣,實際應用中,在執(zhí)行上述步驟Al之前,還可包括建立發(fā)送端 與Relay服務器進行TCP連接對應的第一信令通道。此外,在建立第一信令通 道時,本實施例的Relay服務器可對發(fā)送端作一些必要的接入認證,具體實施 方法與現(xiàn)有技術類似,這里不再——贅述。之后,執(zhí)行上述步驟A1,并在建立 第一數(shù)據(jù)通道后,優(yōu)選地,將該第一數(shù)據(jù)通道對應的第一通道標識X、要轉(zhuǎn)發(fā) 報文對應的接收端的IP地址信息以及該接收端接收報文的端口通過所述第一 信令通道發(fā)送給Relay服務器;Relay服務器可根據(jù)所述第一通道標識X,建立 所述第一數(shù)據(jù)通道與第一信令通道的映射關系,以便于第一數(shù)據(jù)通道根據(jù)第一信令通道傳輸?shù)目刂菩帕顚崿F(xiàn)報文的傳輸。這樣,上述步驟A2中,可根據(jù)接收端的IP地址信息和接收端接收才艮文的端口 ,建立Relay服務器與接收端進行TCP連接對應的第二數(shù)據(jù)通道。此外,本實施例中,發(fā)送端和接收端也可都為NAT后的節(jié)點。這樣,實際 應用中,上述步驟A1建立第一數(shù)據(jù)通道之前,通常包括All、建立發(fā)送端與Relay服務器進行TCP連接對應的第一信令通道。 其中,在建立第一信令通道時,本實施例Relay服務器可對發(fā)送端作一些 必要的接入認證,具體實施方法與現(xiàn)有技術類似,這里不再——贅述。 A12、建立接收端與Relay服務器進行TCP連接對應的第二信令通道。 其中,在建立第二信令通道時,本實施例Relay服務器可對發(fā)送端作一些 必要的接入認證,具體實施方法與現(xiàn)有技術類似,這里不再一-""贅述。之后,執(zhí)行上述步驟A1,并在建立第一數(shù)據(jù)通道后,將所述第一通道標識 X、接收端的標識信息通過第一信令通道發(fā)送給Relay服務器;Relay服務器根 據(jù)所述第一通道標識X,建立其與第一信令通道的映射關系;并根據(jù)接收端的 標識信息查找到該接收端對應的第二信令通道,通過該第二信令通道通知該接 收端有通訊請求;這樣,上述步驟A2中,在接收端明確所述通訊請求后,建 立接收端與Relay進行TCP連接對應的第二數(shù)據(jù)通道。此外,為使本發(fā)明有具體的實際應用,本發(fā)明實施例中在上述步驟A2后, 還將所述第二數(shù)據(jù)通道對應的第二通道標識Y反饋給接收端。之后,為便于后 續(xù)的建立第二數(shù)據(jù)通道與第二信令通道的映射關系,接收端還需將所述第二數(shù) 據(jù)通道對應的第二通道標識Y發(fā)送給Relay服務器;Relay服務器根據(jù)第二數(shù) 據(jù)通道標識y,建立第二數(shù)據(jù)通道與第二信令通道的映射關系,以便執(zhí)行后續(xù) 的操作。步驟302,內(nèi)核管理模塊在內(nèi)核空間中轉(zhuǎn)發(fā)報文。本實施例中,在上述報文為來自發(fā)送端通過所述第一數(shù)據(jù)通道發(fā)送的報文 時,上述步驟302中內(nèi)核管理模塊在內(nèi)核空間中轉(zhuǎn)發(fā)報文可包括Bl 、內(nèi)核管理模塊將當前Relay服務器的網(wǎng)絡IP地址信息修改為所述報文對應的源地址信息。因為報文為來自發(fā)送端通過所述第一數(shù)據(jù)通道發(fā)送的"^艮文,明顯地,該報 文對應的源地址信息為發(fā)送端的IP地址信息,本實施例通過執(zhí)行步驟Bl,能夠保證使接收端確定所述報文為來自Relay服務器的報文。因為報文為來自發(fā) 送端通過所述第一數(shù)據(jù)通道發(fā)送的需要Relay服務器轉(zhuǎn)發(fā)的報文,明顯地,該 報文的目標地址信息為Relay服務器的IP地址信息,因此,還需"^丸行步驟B2。 B2、內(nèi)核管理模塊將接收端的IP地址信息修改為所述報文對應的目標IP 地址信息。其中,內(nèi)核管理模塊根據(jù)其維護的接收端的IP地址信息,直接將該接收端 的IP地址信息修改為所述報文對應的目標IP地址信息。B3、內(nèi)核管理模塊在內(nèi)核空間中通過所述第二數(shù)據(jù)通道將修改后的報文轉(zhuǎn) 發(fā)給接收端??梢?,通過上述方法,可以實現(xiàn)在內(nèi)核空間中轉(zhuǎn)發(fā)報文,省略現(xiàn)有技術中需要在用戶空間和內(nèi)核空間復制報文的操作,進而避免用戶態(tài)和內(nèi)核態(tài)之間的切換,節(jié)省了計算資源,從而提高Relay服務器中轉(zhuǎn)報文的效率。 步驟303,按照現(xiàn)有技術的方法執(zhí)行轉(zhuǎn)發(fā)所述報文的操作。 此外,本實施例中,當接收端響應上述Relay服務器轉(zhuǎn)發(fā)的報文時,或者,當接收端發(fā)送要轉(zhuǎn)發(fā)的報文時,也能通過上述類似的轉(zhuǎn)發(fā)操作將報文在內(nèi)核空間中轉(zhuǎn)發(fā),這里不再——贅述。此外,本實施例中,當發(fā)送端需要中止報文的中轉(zhuǎn)時,還可執(zhí)行步驟304。 步驟304,發(fā)送端通過第一信令通道發(fā)送會話結(jié)束請求給Relay服務器。 步驟305, Relay服務器在接收到所述會話結(jié)束請求后,通知內(nèi)核管理模塊拆除已建立的第一數(shù)據(jù)通道與第二數(shù)據(jù)通道的映射關系;并分別關閉所述第一數(shù)據(jù)通道和所述第二數(shù)據(jù)通道。具體地,Relay服務器在接收到所述會話結(jié)束請求后,通過內(nèi)核控制原語通知內(nèi)核管理模塊拆除已建立的第 一數(shù)據(jù)通道與第二數(shù)據(jù)通道的映射關系。至此,可以完成中止發(fā)送端需要中轉(zhuǎn)報文的操作。對應本實施例中網(wǎng)絡中轉(zhuǎn)的方法,本實施例提供了 一種網(wǎng)絡中轉(zhuǎn)服務器,具體可以參加圖4。圖4為本發(fā)明實施例中的網(wǎng)絡中轉(zhuǎn)服務器的結(jié)構(gòu)示意圖。 如圖4所示,該服務器包括應用管理模塊401和內(nèi)核管理模塊402。其中,應用管理模塊401用于管理發(fā)送端與Relay服務器對應的第一數(shù)據(jù) 通道;以及Relay服務器與接收端對應的第二數(shù)據(jù)通道,并用于觸發(fā)內(nèi)核管理 模塊402建立第一數(shù)據(jù)通道與第二數(shù)據(jù)通道的映射關系。內(nèi)核管理模塊402用于在應用管理模塊401的觸發(fā)下建立第一數(shù)據(jù)通道與 第二數(shù)據(jù)通道的映射關系,還用于在接收到報文時,判斷當前是否已建立第一 數(shù)據(jù)通道與第二數(shù)據(jù)通道的映射關系,如果是,在內(nèi)核空間中轉(zhuǎn)發(fā)所述^^文。此外,該服務器還包括接收請求模塊403。其中,接收請求模塊403用于在發(fā)送端需要中止報文的中轉(zhuǎn)時,接收發(fā)送 端發(fā)送的會話結(jié)束請求,并發(fā)送中止通知給內(nèi)核管理模塊402。內(nèi)核管理模塊402用于在接收到所述中止通知后,拆除已建立的第一數(shù)據(jù) 通道與第二數(shù)據(jù)通道的映射關系;并分別關閉所述第一數(shù)據(jù)通道和所述第二數(shù)據(jù)通道。具體實現(xiàn)時,內(nèi)核管理模塊可有多種結(jié)構(gòu)形式,圖5示出了內(nèi)核管理模塊 的一種結(jié)構(gòu)示意圖。如圖5中所示,該模塊包括映射建立單元501、判斷單 元502和發(fā)送單元503。其中,映射建立單元501用于建立第一數(shù)據(jù)通道與第二數(shù)據(jù)通道的映射關 系,所述第一數(shù)據(jù)通道為發(fā)送端與網(wǎng)絡中轉(zhuǎn)Relay服務器對應的數(shù)據(jù)通道,所 述第二數(shù)據(jù)通道為Relay服務器與接收端對應的數(shù)據(jù)通道。判斷單元502用于在接收到報文時,判斷所述映射建立單元當前是否建立 所述第一數(shù)據(jù)通道與所述第二數(shù)據(jù)通道的映射關系,如果是,發(fā)送轉(zhuǎn)發(fā)通知給 發(fā)送單元503。發(fā)送單元503用于在接收到所述轉(zhuǎn)發(fā)通知后,在內(nèi)核空間中將所述^^文轉(zhuǎn)發(fā)。此外,發(fā)送單元503可包括修改子單元5031和發(fā)送子單元5032。其中,修改子單元5031用于在所述報文為來自發(fā)送端通過所述第一數(shù)據(jù)通 道發(fā)送的報文時,將當前Relay服務器的網(wǎng)絡IP地址信息修改為所述報文對應 的源地址信息;將接收端的IP地址信息修改為所述才艮文對應的目標IP地址信 息。發(fā)送子單元5032用于在內(nèi)核空間中通過所述第二數(shù)據(jù)通道將修改后的報 文轉(zhuǎn)發(fā)給接收端。此外,該模塊還包括拆除單元504。其中,拆除單元504用于在發(fā)送端需要中止報文的轉(zhuǎn)發(fā)時,拆除所述映射 建立單元已建立的第 一數(shù)據(jù)通道與第二數(shù)據(jù)通道的映射關系;并分別關閉所述 第 一數(shù)據(jù)通道和所述第二數(shù)據(jù)通道。本發(fā)明實施例中,內(nèi)核管理模塊內(nèi)部各個單元的具體操作過程可與圖3所 示方法流程中描述的操作一致,并且各個單元可以是物理功能單元,也可以是 軟件功能單元,并且各個單元還可進行細分或進行合并,具體實現(xiàn)時,本領域 普通技術人員可根據(jù)實際情況進行處理,此處不再——列舉??梢?,本發(fā)明實施例中在內(nèi)核管理模塊接收到報文時,如果該內(nèi)核管理模 塊判斷出當前已建立第 一數(shù)據(jù)通道與第二數(shù)據(jù)通道的映射關系,則在內(nèi)核空間 中轉(zhuǎn)發(fā)所述報文,實現(xiàn)了在內(nèi)核空間中轉(zhuǎn)發(fā)所述報文,避免了現(xiàn)有技術中從內(nèi) 核空間復制該報文到用戶空間,以及執(zhí)行用戶態(tài)和內(nèi)核態(tài)之間的切換所對應的 才喿作,節(jié)省了大量計算資源,進而提高Relay服務器中轉(zhuǎn)報文的效率。以上所述的具體實施例,對本發(fā)明的目的、技術方案和有益效果進行了 進一步詳細說明,所應理解的是,以上所述僅為本發(fā)明的較佳實施例而已, 并非用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內(nèi),所作的任 何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權利要求
1. 一種網(wǎng)絡中轉(zhuǎn)的方法,其特征在于,該方法包括步驟A、網(wǎng)絡中轉(zhuǎn)Relay服務器中的內(nèi)核管理模塊在接收到報文時,判斷當前是否已建立第一數(shù)據(jù)通道與第二數(shù)據(jù)通道的映射關系,如果是,執(zhí)行步驟B;步驟B、內(nèi)核管理模塊在內(nèi)核空間中轉(zhuǎn)發(fā)所述報文;其中,所述第一數(shù)據(jù)通道為發(fā)送端與Relay服務器對應的數(shù)據(jù)通道;所述第二數(shù)據(jù)通道為Relay服務器與接收端對應的數(shù)據(jù)通道。
2、 根據(jù)權利要求1所述的方法,其特征在于,所述報文為來自發(fā)送端通過 所述第一數(shù)據(jù)通道發(fā)送的報文,則步驟B中所述內(nèi)核管理模塊在內(nèi)核空間中轉(zhuǎn) 發(fā)報文包括內(nèi)核管理模塊將當前Relay服務器的網(wǎng)絡IP地址信息修改為所述報文對應 的源地址信息;將接收端的IP地址信息修改為所述報文對應的目標IP地址信 自、.內(nèi)核管理模塊在內(nèi)核空間t通過所述第二數(shù)據(jù)通道將修改后的報文轉(zhuǎn)發(fā)給 接收端。
3、 根據(jù)權利要求1或2所述的方法,其特征在于,所述發(fā)送端為網(wǎng)絡地址 轉(zhuǎn)換NAT后的節(jié)點或者為應用服務端。
4、 根據(jù)權利要求1或2所述的方法,其特征在于,所述接收端為NAT后 的節(jié)點或者為應用^^務端。
5、 根據(jù)權利要求1所述的方法,其特征在于,當發(fā)送端需要中止報文的轉(zhuǎn) 發(fā)時,該方法進一步包括發(fā)送端發(fā)送會話結(jié)束請求給Relay服務器;Relay服務器在接收到所述會話結(jié)束請求后,通知內(nèi)核管理模塊拆除已建立的第一數(shù)據(jù)通道與第二數(shù)據(jù)通道的映射關系;分別關閉所述第一數(shù)據(jù)通道和所 述第二數(shù)據(jù)通道。
6、 一種網(wǎng)絡中轉(zhuǎn)服務器,其特征在于,該服務器包括應用管理模塊和內(nèi) 核管理模塊,其中,所述應用管理模塊,用于管理發(fā)送端與網(wǎng)絡中轉(zhuǎn)Relay服務器對應的第一 數(shù)據(jù)通道;以及Relay服務器與接收端對應的第二數(shù)據(jù)通道,并用于觸發(fā)所述 內(nèi)核管理模塊建立第 一數(shù)據(jù)通道與第二數(shù)據(jù)通道的映射關系;所述內(nèi)核管理模塊,用于在所述應用管理模塊的觸發(fā)下建立第一數(shù)據(jù)通道 與第二數(shù)據(jù)通道的映射關系,還用于在接收到報文時,判斷當前是否已建立第 一數(shù)據(jù)通道與第二數(shù)據(jù)通道的映射關系,如果是,在內(nèi)核空間中轉(zhuǎn)發(fā)所述報文。
7、 根據(jù)權利要求6所述的服務器,其特征在于,該服務器還包括 接收請求模塊,用于在發(fā)送端需要中止報文的中轉(zhuǎn)時,接收發(fā)送端發(fā)送的會話結(jié)束請求,并發(fā)送中止通知給所述內(nèi)核管理模塊;所述內(nèi)核管理模塊,用于在接收到所述中止通知后,拆除已建立的第一數(shù) 據(jù)通道與第二數(shù)據(jù)通道的映射關系;并分別關閉所述第一數(shù)據(jù)通道和所述第二 數(shù)據(jù)通道。
8、 一種內(nèi)核管理模塊,其特征在于,該模塊包括映射建立單元、判斷單 元和發(fā)送單元;其中,所述映射建立單元,用于建立第一數(shù)據(jù)通道與第二凄t據(jù)通道的映射關系, 所述第一數(shù)據(jù)通道為發(fā)送端與網(wǎng)絡中轉(zhuǎn)Relay服務器對應的數(shù)據(jù)通道,所述第 二數(shù)據(jù)通道為Relay服務器與接收端對應的數(shù)據(jù)通道;所述判斷單元,用于在接收到報文時,判斷所述映射建立單元當前是否已 建立所述第一數(shù)據(jù)通道與所述第二數(shù)據(jù)通道的映射關系,如果是,發(fā)送轉(zhuǎn)發(fā)通 知給所述發(fā)送單元;所述發(fā)送單元,用于在接收到所述轉(zhuǎn)發(fā)通知后,在內(nèi)核空間中將所述報文 轉(zhuǎn)發(fā)。
9、 根據(jù)權利要求8所述的模塊,其特征在于,所述發(fā)送單元包括修改子 單元和發(fā)送子單元;其中,所述修改子單元,用于在所述報文為來自發(fā)送端通過所述第一數(shù)據(jù)通道發(fā)送的報文時,將當前Relay服務器的網(wǎng)絡IP地址信息修改為所述報文對應的源地址信息;將接收端的IP地址信息修改為所述報文對應的目標IP地址信息; 所述發(fā)送子單元,用于在內(nèi)核空間中通過所述第二數(shù)據(jù)通道將修改后的報文轉(zhuǎn)發(fā)給接收端。
10、根據(jù)權利要求8所述的模塊,其特征在于,該模塊還包括 拆除單元,用于在發(fā)送端需要中止報文的轉(zhuǎn)發(fā)時,拆除所述映射建立單元已建立的第 一數(shù)據(jù)通道與第二數(shù)據(jù)通道的映射關系;并分別關閉所述第 一數(shù)據(jù)通道和所述第二數(shù)據(jù)通道。
全文摘要
本發(fā)明公開了一種網(wǎng)絡中轉(zhuǎn)的方法、網(wǎng)絡中轉(zhuǎn)服務器和內(nèi)核管理模塊,其中,網(wǎng)絡中轉(zhuǎn)的方法包括步驟A、網(wǎng)絡中轉(zhuǎn)Relay服務器中的內(nèi)核管理模塊在接收到報文時,判斷當前是否已建立第一數(shù)據(jù)通道與第二數(shù)據(jù)通道的映射關系,如果是,執(zhí)行步驟B;步驟B、內(nèi)核管理模塊在內(nèi)核空間中轉(zhuǎn)發(fā)所述報文;其中,所述第一數(shù)據(jù)通道為發(fā)送端與Relay服務器對應的數(shù)據(jù)通道;所述第二數(shù)據(jù)通道為Relay服務器與接收端對應的數(shù)據(jù)通道。采用本發(fā)明,能夠?qū)崿F(xiàn)在內(nèi)核空間中轉(zhuǎn)發(fā)所述報文,避免現(xiàn)有技術中從內(nèi)核空間復制該報文到用戶空間,以及執(zhí)行用戶態(tài)和內(nèi)核態(tài)之間的切換所對應的操作,進而提高Relay服務器中轉(zhuǎn)報文的效率。
文檔編號H04L29/06GK101252527SQ20081008993
公開日2008年8月27日 申請日期2008年4月9日 優(yōu)先權日2008年4月9日
發(fā)明者樊華恒 申請人:騰訊科技(深圳)有限公司