欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于tcp連接的多路復(fù)用的方法

文檔序號:7866791閱讀:603來源:國知局
專利名稱:一種基于tcp連接的多路復(fù)用的方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種基于TCP連接的多路復(fù)用的方法。
背景技術(shù)
隨著防火墻的普及,政府、企業(yè)等部門對內(nèi)網(wǎng)的安全越來越重視,采取的措施也越來越嚴格。為了加強內(nèi)網(wǎng)的安全性,防火墻往往對外只開放個別端口,僅允許個別網(wǎng)絡(luò)連接與內(nèi)網(wǎng)通信。在這種情況下,如果試圖連接內(nèi)網(wǎng)的服務(wù)器,會被防火墻拒絕。因此需要尋求一種既能夠滿足與內(nèi)網(wǎng)服務(wù)器之間的通信,又能夠保證內(nèi)網(wǎng)的安全性的方法。
申請?zhí)枮镃N201210197788. O的發(fā)明專利申請公開了可以將至少一個有效數(shù)據(jù)連接分配給至少一個多路復(fù)用連接的方法。此方法涉及到兩個網(wǎng)元之間的多路復(fù)用,其中由第一網(wǎng)元產(chǎn)生第一信令消息并傳輸?shù)降诙W(wǎng)元,第一網(wǎng)元的信令消息是為了向第二網(wǎng)元表明第一網(wǎng)元正在準備經(jīng)由多路復(fù)用連接傳輸至少一個有效數(shù)據(jù)連接。接下來,根據(jù)第二網(wǎng)元是否支持利用多路復(fù)用連接,如果支持,第二網(wǎng)元將至少一個有效數(shù)據(jù)連接分配給第一網(wǎng)元和第二網(wǎng)元之間的多路復(fù)用連接,如果不支持,第二網(wǎng)元會選擇該多路復(fù)用之外的其他連接。
該方法不能對TCP連接進行多路復(fù)用。其多路復(fù)用單位為網(wǎng)元之間,不具備廣泛可用性。網(wǎng)元之間是否支持多路復(fù)用連接不受人為控制,不能對多路復(fù)用進行管理,因此, 可操作性和靈活性都不高。
專利號為CN200310112006. X的發(fā)明專利公開了一種可以實現(xiàn)對VPN隧道的多路復(fù)用連接方法,復(fù)用是通 過在兩點之間建立可復(fù)用帶寬和線路備份來實現(xiàn)的。在需要進行線路復(fù)用的節(jié)點通過多條物理線路連接公網(wǎng),然后在各節(jié)點自動或者手動在每條線路上都建立到對端節(jié)點的VPN隧道,將需要送到對端的數(shù)據(jù)包,按照一定的調(diào)度算法,送入到對端節(jié)點對應(yīng)的所有VPN隧道,從而實現(xiàn)線路復(fù)用。依據(jù)VPN協(xié)議對對端節(jié)點接收VPN隧道的數(shù)據(jù)進行處理,當VPN隧道建立后,各節(jié)點檢查物理線路的連接狀態(tài),如果發(fā)生中斷,其數(shù)據(jù)全部切換到剩余的到對端的有效線路上,待線路恢復(fù)后重新和對端節(jié)點在恢復(fù)的線路上建立VPN隧道,并將部分數(shù)據(jù)按照調(diào)度算法倒換回來。
目前本技術(shù)只適用于VPN系統(tǒng)、專家系統(tǒng)等點到點網(wǎng)絡(luò)互聯(lián)系統(tǒng)中,不具備廣泛使用性。構(gòu)建該線路復(fù)用的VPN隧道,要求在需要線路復(fù)用的節(jié)點必須通過多條物理線路連接公網(wǎng);而且在各個節(jié)點需自動或者手動地在每條線路上都建立到對端節(jié)點的VPN隧道。此外,該技術(shù)方案的管理難度比較大,不能直接在應(yīng)用層進行管理。發(fā)明內(nèi)容
本發(fā)明的目的是為了克服現(xiàn)有技術(shù)的缺陷,提供一種基于TCP連接的多路復(fù)用的方法,通過該方法節(jié)約服務(wù)器資源,實現(xiàn)多路復(fù)用。
本發(fā)明的目的是通過在應(yīng)用層對TCP連接進行管理,達到TCP連接多路復(fù)用的方法的實現(xiàn)。該方法是通過在代理服務(wù)器和服務(wù)器之間建立一條虛擬通道使得多個客戶端復(fù)用進行雙向通信來實現(xiàn)的,具體為第一步,Client試圖與服務(wù)器通信,需先和代理服務(wù)器(Proxy Server)建立 SOCKET連接請求;
第二步,代理服務(wù)器接到Client發(fā)來的連接請求后,根據(jù)規(guī)則判斷該Client的請求是否合法;如果合法,代理服務(wù)器從TCP連接池中取出一個TCP連接分配給該Client,并為其分配一個唯一的ID,然后將連接該TCP的SOCKET值和ID作為鍵值對存入轉(zhuǎn)發(fā)表;
第三步,回復(fù)該Client的通信請求,如果合法回復(fù)YES,并把為其分配的ID附帶發(fā)回,否則回復(fù)NO ;
第四步,若Client的連接請求得到允許,則相當于Client與Server之間建立了一條虛擬通道,進行雙向通信。
Client與Server之間的多路復(fù)用通信過程為
SUClient與Server進行通信時,把代理服務(wù)器為其分配的ID附帶在消息中,明文形式為“…,ID=XXXX,…”;
S2、代理服務(wù)器收到形式為“…,ID=XXXX,…”的報文,查詢轉(zhuǎn)發(fā)表驗證ID和 SOCKET是否一致,如果一致則把消息轉(zhuǎn)發(fā)給服務(wù)器;
S3、服務(wù)器對收到的消息進行處理,回復(fù)時同樣將ID寫入報文中;
S4、代理服務(wù)器對收到的服務(wù)器發(fā)送的報文進行預(yù)處理,解析出ID字段,然后對轉(zhuǎn)發(fā)表進行查詢,找出相應(yīng)Client的SOCKET ;
S5、代理服務(wù)器將消息最終發(fā)送給Client,至此,Client與Server之間的雙向通信結(jié)束。
本發(fā)明技術(shù)方案帶來的有益效果本發(fā)明技術(shù)方案能夠有效的減輕服務(wù)器的負載,減少服務(wù)器上SOCKET創(chuàng)建和銷毀的次數(shù),節(jié)約了服務(wù)器資源。在實際應(yīng)用中,通過建立虛擬通道,能夠達到繞過防火墻的目的,將代理服務(wù)器置于防火墻合法端口的位置,維護與受保護服務(wù)器的TCP通道,通過代理服務(wù)器對客戶端的合法性進行鑒定,建立服務(wù)器與眾多客戶端之間虛擬通道,實現(xiàn)多路復(fù)用。


為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1是本發(fā)明的基于TCP連接的多路復(fù)用示意圖2是本發(fā)明的多路復(fù)用建立連接的過程示意圖3是本發(fā)明的代理服務(wù)器接受連接的工作流程圖4是本發(fā)明的多路復(fù)用通信示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
基于TCP連接的多路復(fù)用的示意圖如圖1所示。代理服務(wù)器與服務(wù)器之間的通道被多個客戶端復(fù)用,代理服務(wù)器端安裝TCP連接池管理程序。它提供了對TCP連接的快速建立和刪除操作,能夠減少TCP創(chuàng)建和釋放的資源和時間消耗,提高代理服務(wù)器的性能。下面從這兩方面進行說明。
1、建立連接
代理服務(wù)器運行時,TCP連接池內(nèi)已批量創(chuàng)建有若干TCP連接,當代理服務(wù)器需要建立TCP連接時,從TCP連接池中取出一個即可,而不需要重新建立與客戶端之間的TCP連接。連接池管理機制對池內(nèi)的TCP連接進行管理,當可用的TCP連接不多時,連接池管理機制會申請更多TCP連接供給調(diào)用,這樣可以有效節(jié)省TCP的物理連接時間和邏輯上的鑒權(quán)處理過程,能夠有效節(jié)省系統(tǒng)資源的消耗。
2、刪除連接
當需要斷開某個TCP連接時,利用連接池對TCP連接有管理機制,將TCP連接重新放入連接池,節(jié)省了釋放和清理連接的時間,如果確實需要刪除對應(yīng)的TCP連接時,再利用連接池的管理機制,對連接進行釋放和清理。這樣的兩種做法,可以盡量減少資源消耗,進一步提聞性能。
代理服務(wù)器利用AVL樹的特點,提供了對轉(zhuǎn)發(fā)表高效的插入、查詢、刪除等操作, 優(yōu)化后的算法效率更高,時間復(fù)雜度可以達到log(n)以下。
轉(zhuǎn)發(fā)表數(shù)據(jù)結(jié)構(gòu)類似C++容器map,對ID和SOCKET鍵值對進行存儲,ID值遞增, 為鍵,SOCKET為值,·時間復(fù)雜度比map更低,轉(zhuǎn)發(fā)表提供的操作有插入、查詢和刪除。
如圖2所示是多路復(fù)用建立連接的過程示意圖。
(I)Client試圖與服務(wù)器通信,需先和代理服務(wù)器(Proxy Server)建立SOCKET連接請求;
(2)代理服務(wù)器接到Client發(fā)來的連接請求后,根據(jù)規(guī)則判斷該Client的請求是否合法。如果合法,代理服務(wù)器從TCP連接池中取出一個TCP連接分配給該Client,并為其分配一個唯一的ID。然后將連接該TCP的SOCKET值和ID作為鍵值對存入轉(zhuǎn)發(fā)表。
(3)回復(fù)該Client的通信請求,如果合法回復(fù)YES,并把為其分配的ID附帶發(fā)回, 否則回復(fù)NO。
(4)若Client的連接請求得到允許,則相當于Client與Server之間建立了一條虛擬通道,可以進行雙向通信。
其中,步驟(3 )和(4 )為代理服務(wù)器接受連接的工作流程圖,如圖3所示。
Client與Server之間建立虛擬通道后,進行雙向通信,代理服務(wù)器作為他們之間通信的代理。其多路復(fù)用通信過程如下圖4所示。
1、Client與Server進行通信時,把代理服務(wù)器為其分配的ID附帶在消息中,明文形式為“…,,ID=XXXX,…”。
2、代理服務(wù)器收到形式為“…,ID=XXXX,…”的報文,查詢轉(zhuǎn)發(fā)表驗證ID和SOCKET 是否一致,如果一致則把消息轉(zhuǎn)發(fā)給服務(wù)器。
3、服務(wù)器對收到的消息進行處理,回復(fù)時同樣將ID寫入報文中。
4、代理服務(wù)器對收到的服務(wù)器發(fā)送的報文進行預(yù)處理,解析出ID字段,然后對轉(zhuǎn)發(fā)表進行查詢,找出相應(yīng)Client的SOCKET。
5、代理服務(wù)器將消息最終發(fā)送給Client,至此,Client與Server之間的雙向通信結(jié)束。
本發(fā)明技術(shù)方案中,針對多路復(fù)用的建立過程,代理服務(wù)器可以為每個客戶端發(fā)起的TCP連接請求創(chuàng)建一個TCP連接,通信結(jié)束后斷開該連接。但是這樣使代理服務(wù)器不停的創(chuàng)建和消耗TCP連接,消耗資源。
針對多路復(fù)用通信的過程,由客戶端將ID字段信息添加到報文中,代理服務(wù)器轉(zhuǎn)發(fā)即可,而在服務(wù)器向客戶端發(fā)送消息時,代理服務(wù)器執(zhí)行查找動作,利用ID的值查找轉(zhuǎn)發(fā)表中對應(yīng)的SOCKET,再轉(zhuǎn)發(fā)給相應(yīng)的客戶端。代理服務(wù)器也可以接受客戶端原始報文,利用SOCKET查找轉(zhuǎn)發(fā)表中對應(yīng)的ID,把ID字段添加到報文,然后轉(zhuǎn)發(fā)給服務(wù)器。這樣在接收到服務(wù)器消息時,需要再執(zhí)行一次查找算法,效率會降低。
本發(fā)明技術(shù)方案能夠有效的減輕服務(wù)器的負載,減少服務(wù)器上SOCKET創(chuàng)建和銷毀的次數(shù),節(jié)約了服務(wù)器資源。在實際應(yīng)用中,通過建立虛擬通道,能夠達到繞過防火墻的目的,將代理服務(wù)器置于防火墻合法端口的位置,維護與受保護服務(wù)器的TCP通道,通過代理服務(wù)器對客戶端的合法性進行鑒定,建立服務(wù)器與眾多客戶端之間虛擬通道,實現(xiàn)多路復(fù)用。
以上對本發(fā)明實施例所提供的一種基于TCP連接的多路復(fù)用的方法進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1.一種基于TCP連接的多路復(fù)用的方法,其特征在于,該方法是通過在代理服務(wù)器和服務(wù)器之間建立虛擬通道被多個客戶端復(fù)用來實現(xiàn)的,具體為第一步,Cl ient試圖與服務(wù)器通信,需先和代理服務(wù)器(Proxy Server )建立SOCKET連接請求;第二步,代理服務(wù)器接到Client發(fā)來的連接請求后,根據(jù)規(guī)則判斷該Client的請求是否合法;如果合法,代理服務(wù)器從TCP連接池中取出一個TCP連接分配給該Client,并為其分配一個唯一的ID,然后將連接該TCP的SOCKET值和ID作為鍵值對存入轉(zhuǎn)發(fā)表;第三步,回復(fù)該Client的通信請求,如果合法回復(fù)YES,并把為其分配的ID附帶發(fā)回, 否則回復(fù)NO ;第四步,若Client的連接請求得到允許,則相當于Client與Server之間建立了一條虛擬通道,進行雙向通信。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,代理服務(wù)器端安裝TCP連接池管理程序, 提供了對TCP連接的快速建立和刪除操作,能夠減少TCP創(chuàng)建和釋放的資源和時間消耗,提高代理服務(wù)器的性能。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,轉(zhuǎn)發(fā)表提供的操作有插入、查詢和刪除。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,轉(zhuǎn)發(fā)表對ID和SOCKET鍵值對進行存儲, ID值遞增,為鍵,SOCKET為值,時間復(fù)雜度比map更低。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,Client與Server之間的多路復(fù)用通信過程為SUClient與Server進行通信時,把代理服務(wù)器為其分配的ID附帶在消息中,明文形式為 “···,ID=XXXX,…”;52、代理服務(wù)器收到形式為“…,ID=XXXX,…”的報文,查詢轉(zhuǎn)發(fā)表驗證ID和SOCKET 是否一致,如果一致則把消息轉(zhuǎn)發(fā)給服務(wù)器;53、服務(wù)器對收到的消息進行處理,回復(fù)時同樣將ID寫入報文中;54、代理服務(wù)器對收到的服務(wù)器發(fā)送的報文進行預(yù)處理,解析出ID字段,然后對轉(zhuǎn)發(fā)表進行查詢,找出相應(yīng)Client的SOCKET ;55、代理服務(wù)器將消息最終發(fā)送給Client,至此,Client與Server之間的雙向通信結(jié)束。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,多路復(fù)用通信的過程,還能由客戶端將ID 字段信息添加到報文中,代理服務(wù)器轉(zhuǎn)發(fā)即可,而在服務(wù)器向客戶端發(fā)送消息時,代理服務(wù)器執(zhí)行查找動作,利用ID的值查找轉(zhuǎn)發(fā)表中對應(yīng)的SOCKET,再轉(zhuǎn)發(fā)給相應(yīng)的客戶端。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,多路復(fù)用通信的過程中,代理服務(wù)器還可接受客戶端原始報文,利用SOCKET查找轉(zhuǎn)發(fā)表中對應(yīng)的ID,把ID字段添加到報文,然后轉(zhuǎn)發(fā)給服務(wù)器。
全文摘要
本發(fā)明公開了一種基于TCP連接的多路復(fù)用的方法。該方法是通過代理服務(wù)器和服務(wù)器之間的通道被多個客戶端復(fù)用來實現(xiàn)的。Client試圖與服務(wù)器通信,需先和代理服務(wù)器建立SOCKET連接請求,代理服務(wù)器端安裝TCP連接池管理程序,連接請求合法后給Client分配一個唯一的ID,并和SOCKET一起作為鍵值對存入轉(zhuǎn)發(fā)表,同意Client的通信請求并把分配的ID附帶發(fā)回,則相當于Client和Server之間建立了一條虛擬通道,可以進行雙向通信。通過該方法減少服務(wù)器上SOCKET創(chuàng)建和銷毀的次數(shù),節(jié)約服務(wù)器資源。同時通過建立虛擬通道建立服務(wù)器與眾多客戶端之間虛擬通道,實現(xiàn)多路復(fù)用。
文檔編號H04L29/08GK103023987SQ201210491389
公開日2013年4月3日 申請日期2012年11月27日 優(yōu)先權(quán)日2012年11月27日
發(fā)明者柯宗貴, 柯宗慶, 楊育斌, 梁大海, 汪志軍 申請人:藍盾信息安全技術(shù)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
武清区| 浮梁县| 砀山县| 德清县| 夏津县| 板桥市| 额敏县| 鹿邑县| 宝鸡市| 平安县| 漳州市| 邹平县| 新津县| 永川市| 钦州市| 辰溪县| 宣汉县| 武鸣县| 法库县| 甘洛县| 新安县| 昌图县| 广汉市| 南京市| 武功县| 深州市| 河池市| 静海县| 聂荣县| 抚宁县| 乌审旗| 新绛县| 武威市| 西盟| 天峻县| 宝应县| 昌图县| 辽中县| 获嘉县| 昌邑市| 潮州市|