一種訪問防火牆後節點上服務的方法
2023-06-03 11:00:31
專利名稱:一種訪問防火牆後節點上服務的方法
技術領域:
本發明屬於網絡通訊技術,特別是P2P技術。
背景技術:
典型的計算機網絡服務由一個TCP或UDP埠負責和客戶端進行連接,客戶端和伺服器通過這個埠和伺服器進行信息交換,接受伺服器的服務。
傳統的服務要求伺服器必須客戶端直接訪問到,一般要求伺服器處於公網中或伺服器和客戶端處於一個區域網中。當伺服器處於私有網絡中(通過防火牆和公共網絡連接時),外面的客戶端不能直接訪問到伺服器,也不能獲得伺服器的服務。
訪問防火牆後服務現有技術有反向代理服務方法,這種方法需要Internet上設立不間斷的伺服器,所有伺服器的流量都需要經過代理伺服器轉發,代理伺服器的負載、帶寬都要求比較高;另外一種方法是動態DNS,如果服務在防火牆(一般是NAT)後,需要防火牆的虛擬伺服器(埠映射)支持。
發明內容
本發明的目的是使客戶端可以訪問防火牆後的服務節點提供的服務。
提供服務的節點稱為服務節點,要訪問此服務的客戶端稱為客戶節點。在服務節點運行服務節點代理,客戶節點上運行客戶節點代理,客戶節點代理和服務節點代理建立P2P連接,則客戶端軟體通過兩個代理服務實現對服務節點上服務的訪問。
客戶端軟體經過客戶節點代理和服務節點代理,通過以下步驟,與服務節點上服務連接1.服務節點啟動某個服務進程2.服務節點啟動服務節點代理;服務節點代理接入至少一個P2P網絡;3.客戶節點代理得到服務節點代理的P2P連接特徵和服務特徵;4.客戶節點代理加入和服務節點代理相同的P2P網絡,根據服務節點代理的連接特徵與服務節點代理建立P2P連接;5.客戶節點代理根據服務節點的服務特徵模擬此服務,接受客戶端軟體的連接;客戶節點代理通過和服務節點代理的P2P連接通知服務節點代理;6.服務節點代理收到客戶節點代理的連接要求後,模擬一客戶端連接到服務節點的服務;7.服務節點代理和客戶節點代理封裝傳送到對方的信息,通過P2P連接通道傳送封裝的信息;8.實際的客戶端軟體通過客戶節點代理、服務節點代理與服務節點的服務建立邏輯連接與服務軟體互相通訊服務節點上的啟動某個服務。此服務無需為穿越防火牆做特殊設置,其所在的區域網內的客戶端可以直接訪問。典型的服務進程如Apache Web Server。
服務節點代理接入P2P網絡,成為P2P網絡上的一個節點。服務節點代理將其所在P2P網絡中的節點名和連接特徵通過某種方法傳送給客戶節點代理。客戶節點代理使用服務節點代理的P2P的連接特徵,加入相同的P2P網絡,並且和服務節點代理建立連接(P2P連接不能保證一定可以實現,此處我們假定已經實現)。當服務節點代理和客戶節點代理不能建立P2P連接的時候,可以同時連接到一個中轉伺服器,由中轉伺服器為雙方建立一個邏輯連接。
服務節點代理模擬一個客戶端連接服務節點上的服務,客戶節點代理模擬一個服務端接受客戶端的連接。服務節點代理和客戶節點代理通過其間的P2P連接通知對方連接的狀態。
客戶節點代理對服務的模擬有兩種方法實現1.http或Socket代理方法;2.在本機建立模擬服務接入埠,作為真正的服務埠的映射這個兩種方法中,第二種方法更容易實現,因為服務節點沒有實際的域名或者IP,代理進程對服務節點的識別增加難度。對應的客戶端軟體的連接方法是為客戶端軟體設置代理或者訪問模擬的服務埠;客戶節點代理模擬的服務埠收到客戶端軟體的連接請求後,發送連接請求到服務節點代理。服務節點代理收到此連接請求後,服務節點代理模擬的客戶端與實際客戶端軟體建立連接。
信息交換的過程如下連接建立以後,客戶節點代理將客戶端發送給服務端的信息封裝,通過客戶節點代理與服務節點代理的P2P連接傳送給服務節點代理。服務節點代理解析封裝的信息,通過模擬的客戶端到服務端連接,將信息發送給服務端。
服務端傳送給(服務節點代理模擬的)客戶端的信息,被服務節點代理封裝,通過服務節點代理與客戶節點代理的P2P連接傳送給客戶節點代理,客戶節點代理解析此封裝的信息,傳送給客戶端。服務端主動斷開與服務節點模擬的客戶端的連接,或客戶端主動斷開與客戶節點代理模擬的服務端的連接,兩個節點代理通知對方斷開對應的連接。當網絡異常中斷的時候,服務節點代理和客戶端代理安裝預先指定的策略處理,一般為自動斷開模擬的客戶端到伺服器的連接。
為了更容易的將服務節點的連接特徵和服務特徵傳遞給客戶節點代理,設立一索引伺服器提供服務的登記、狀態和搜索。
索引伺服器和服務節點代理執行以下步驟,完成服務節點服務的註冊1.服務節點代理建立與索引伺服器的連接2.服務節點代理將服務節點代理的連接特徵和其上的服務特徵傳送給索引伺服器3.索引伺服器將服務節點的各個信息保存在其存儲器中4.客戶節點查詢索引伺服器,索引伺服器向客戶節點代理查詢結果,結果中包含了服務節點代理的P2P連接特徵和服務特徵為了獲得的服務節點狀態信息,服務節點代理定時向索引伺服器傳送信息,索引伺服器記錄的服務節點信息中包括至少一個欄位記錄該服務節點上次報告狀態的時間。
索引伺服器通過接口(web方式或者特定格式)讓客戶端(代理)查詢正在提供服務的節點的特徵信息。客戶節點代理可以根據索引伺服器返回的結果,找到其關注的服務節點,並和該服務節點進行連接。為了使用服務節點有一個固定的名稱,可以定義一個名字空間,服務節點在此名字空間中有唯一的標識符。服務節點和這個空間名稱+(此空間內的)標識符綁定,作為服務節點的標識名稱,用於服務節點的查詢、收藏時候的標識。
索引伺服器向服務節點分發唯一的標識名稱,名字空間及名字空間內的唯一標識符。當服務節點代理向索引伺服器登錄,註冊服務,將其標識名稱、連接特徵和服務特徵傳送給索引伺服器。
客戶端節點代理向索引伺服器查詢,根據索引伺服器的返回結果。特別是使用服務節點的標識名稱(名字空間名稱+空間內標識符)進行查詢。客戶端節點根據索引伺服器的返回結果(服務節點的連接特徵),客戶節點代理建立與服務節點的連接。
具體實施例方式
將服務節點代理和客戶節點代理集成在IM的客戶端軟體中,IM的伺服器增加索引伺服器。IM的使用者可以在自己的計算機上運行各種服務,其他IM用戶可以使用原有的客戶端軟體和簡單設置(設置代理或訪問本地模擬的服務埠)就訪問到該服務。
權利要求
一種訪問防火牆後節點上服務的方法1一種訪問防火牆後節點上服務的方法,由運行在服務節點的服務節點代理和客戶節點上的客戶節點代理組成,其特徵在於客戶端軟體經過客戶節點代理和服務節點代理,通過以下步驟,與服務節點上服務連接1)服務節點啟動某個服務進程2)服務節點啟動服務節點代理;服務節點代理接入至少一個P2P網絡;3)客戶節點代理得到服務節點代理的P2P連接特徵和服務特徵;4)客戶節點代理加入和服務節點代理相同的P2P網絡,根據服務節點代理的連接特徵與服務節點代理建立P2P連接;5)客戶節點代理根據服務節點的服務特徵模擬此服務,接受客戶端軟體的連接;客戶節點代理通過和服務節點代理的P2P連接通知服務節點代理;6)服務節點代理收到客戶節點代理的連接要求後,模擬客戶端連接到服務節點的服務;7)服務節點代理和客戶節點代理封裝傳送到對方的信息,通過P2P連接通道傳送封裝的信息;8)實際的客戶端軟體通過客戶節點代理、服務節點代理與服務節點的服務建立邏輯連接與服務軟體互相通訊,
2由權利要求1的「客戶節點代理得到服務節點代理的P2P連接特徵和服務特徵」,增加一個索引伺服器,其特徵在於執行以下步驟,完成客戶節點代理得到服務節點代理的P2P連接特徵和服務特徵1)服務節點代理建立與索引伺服器的連接2)服務節點代理將服務節點代理的連接特徵和其上的服務特徵傳送給索引伺服器3)索引伺服器將服務節點的各個信息保存在其存儲器中4)客戶節點查詢索引伺服器,索引伺服器向客戶節點代理查詢結果,結果中包含了服務節點代理的P2P連接特徵和服務特徵。
3由權利要求1的「客戶節點代理根據服務節點的服務特徵模擬此服務,接受客戶端軟體的連接」,其特徵在於客戶節點代理對服務的模擬有兩種方法實現1) http或Socket代理方法;2)在本機建立模擬服務接入埠,作為真正的服務埠的映射。
4由權利要求1的「客戶節點代理與服務節點代理建立P2P連接」,其特徵在於增加一中轉伺服器,當客戶節點代理與服務節點代理不能建立直接的P2P連接時候,客戶節點代理與服務節點代理連接到中轉伺服器,通過中轉伺服器建立邏輯連接。
全文摘要
服務節點處於防火牆後,其上運行某一服務。服務節點代理和客戶節點代理建立了P2P連接;客戶端軟體連接客戶節點代理模擬的服務端,服務節點代理模擬客戶端連接服務,客戶節點代理和服務節點代理將數據封裝後通過P2P連接相互傳送,使客戶端軟體和服務建立連接並相互通訊。
文檔編號H04L29/06GK101087224SQ20061008734
公開日2007年12月12日 申請日期2006年6月8日 優先權日2006年6月8日
發明者劉勁彤 申請人:劉勁彤