[發明專利]一種傳輸控制協議的通信方法及服務器有效
| 申請號: | 201010515928.5 | 申請日: | 2010-10-19 |
| 公開(公告)號: | CN102457537A | 公開(公告)日: | 2012-05-16 |
| 發明(設計)人: | 胡建強;肖陽升;唐珂;史峰;任卿;黃利;董昊;紀東方;趙明華;李廣學 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08;H04L29/06 |
| 代理公司: | 北京同達信恒知識產權代理有限公司 11291 | 代理人: | 郭潤湘 |
| 地址: | 英屬開曼群島大開曼*** | 國省代碼: | 開曼群島;KY |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 傳輸 控制 協議 通信 方法 服務器 | ||
技術領域
本申請涉及網絡通信領域,尤其涉及一種傳輸控制協議TCP的通信方法及服務器。
背景技術
通信的雙方如果需要通過傳輸控制協議(TCP,Transmission?Control?Protocol)進行通信,需要在通信雙方例如客戶端(client)應用程序與服務器(server)應用程序之間建立一個TCP連接,然后在這個連接上相互發送數據。TCP協議中,使用IP地址和端口標識一個通信方,端口標識是一個16位的無符號整數,取值在1~65535之間。
以服務器應用程序和客戶端應用程序之間建立TCP連接的流程為例,在建立連接前,服務器應用程序首先打開一個端口,并在該端口監聽(Listen);然后客戶端應用程序也打開一個端口,并在該端口上向服務器應用程序監聽的端口發起一個連接(Connect),在服務器應用程序與客戶端應用程序之間建立TCP連接的過程至少需要三次握手。
要實現兩臺服務器的應用程序(例如客戶端應用程序和服務器應用程序)之間的TCP通信,通常的做法會在兩個服務器的應用程序之間一一建立TCP連接,如圖1所示,服務器1上的每個應用程序(A~D)分別與服務器2上各應用程序(E~H)分別建立TCP連接。
只要兩個服務器的應用程序之間需要進行通信,它們之間就會建立起一個TCP連接,直到不需要這個連接為止。假設每臺服務器上各有100個應用程序,就兩臺服務器而言,它們之間的應用程序如果都需要建立彼此之間的TCP連接,就會建立100*100個TCP連接,即1萬個TCP連接,對于操作系統和協議棧來說,維護如此多的TCP連接,需要消耗大量的系統資源。為了避免同時存在大量的TCP連接占用系統資源的問題,一種解決的方案是,在應用程序用完TCP連接后,盡可能地快速關閉連接,但如果下次再次需要建立連接,那么需要重新打開端口重新建立連接。重新建立連接需要三次握手的過程,顯然也會使得應用程序受到延時的影響。
尤其對于建立大規模的集群來說,如果該集群有5000臺服務器,平均一臺服務器上有100個應用程序,那么最多需要建立50萬個TCP連接,一方面維護這么多的TCP連接狀態需要耗費大量的系統資源,另一方面即使不同時維護如此多的TCP連接,如此數量眾多的TCP連接需要頻繁地被打開或關閉,應用程序的處理也會受到頻繁延時的影響。
發明內容
本申請實施例提供一種傳輸控制協議的通信方法及服務器,用以解決現有傳輸控制協議中,通信雙方數量較多的應用程序之間需要進行網絡通信時,維護大量的TCP連接所帶來的系統資源耗費以及應用程序延時的問題。
本申請實施例提供的傳輸控制協議的通信方法之一,包括:
第一服務器的第一通信代理接收所述第一服務器的第一應用程序發送的數據包;
所述第一通信代理解析所述數據包中的目的地址,確定所述目的地址指示的接收所述數據包的第二應用程序所在的第二服務器;
所述第一通信代理將所述數據包放入到第一通信代理和所述第二服務器的第二通信代理之間、與接收所述數據包的第二應用程序對應第一隊列中,并通過第一通信代理與第二通信代理之間預先建立的數據鏈路的常連接,將所述數據包發送至所述第二通信代理。
本申請實施例提供的傳輸控制協議的通信方法之二,包括:
第一服務器的第一通信代理通過所述第一通信代理與第二服務器的第二通信代理之間預先建立的數據鏈路的常連接,接收由所述第二通信代理轉發的所述第二服務器的第二應用程序發送的數據包;
所述第一通信代理解析所述數據包中的目的地址,確定所述目的地址指示的接收所述數據包的第一服務器的第一應用程序;
所述第一通信代理將接收的所述數據包放入到第一通信代理與所述第一應用程序之間的第二隊列中,并通過第一通信代理與第一應用程序之間預先建立的進程間通信連接發送至所述第一應用程序。
本申請實施例提供的服務器之一,包括:
接收單元,用于接收所述服務器的第一應用程序發送的數據包;
地址解析單元,用于解析所述數據包中的目的地址,確定所述目的地址指示的接收所述數據包的第二應用程序所在的第二服務器;
發送單元,用于將所述數據包放入到所述服務器的第一通信代理和所述第二服務器的第二通信代理之間、與接收所述數據包的第二應用程序對應第一隊列中,并通過第一通信代理與第二通信代理之間預先建立的數據鏈路的常連接,將所述數據包發送至所述第二通信代理。
本申請實施例提供的服務器之二,包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010515928.5/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:介電絕緣介質
- 下一篇:一種基于無線傳感器網絡傳輸數據的方法、裝置及系統





