CN105933464A - 一种基于网络连接池化的网络通信方法及系统 - Google Patents
一种基于网络连接池化的网络通信方法及系统 Download PDFInfo
- Publication number
- CN105933464A CN105933464A CN201610228328.8A CN201610228328A CN105933464A CN 105933464 A CN105933464 A CN 105933464A CN 201610228328 A CN201610228328 A CN 201610228328A CN 105933464 A CN105933464 A CN 105933464A
- Authority
- CN
- China
- Prior art keywords
- network
- connection
- client
- network connection
- server end
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5061—Pools of addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Abstract
本发明公开了一种基于网络连接池化的网络通信方法及系统,所述的方法包括:创建一Hash表,并根据预定需求初始化N个网络连接;采用Hash运算对每一个网络连接创建对应的key值,并根据key值将每一个网络连接一一对应存储于Hash表中;当客户端访问服务器端时,根据客户端标识作Hash运算后得到对应的key值;根据对应的key值从Hash表中获取对应的网络连接,客户端通过该网络连接与服务器端进行网络通信。通过本发明的方法,将网络连接进行池化形成网络连接资源池,实现网络连接资源的可控性,按需将资源池中的网络连接分配给客户端,提高整个系统的吞吐量,资源池中的网络连接可以复用,不会出现网络连接资源耗尽的问题。
Description
技术领域
本发明涉及网络通信技术领域,具体涉及一种基于网络连接池化的网络通信方法及系统。
背景技术
基于TCP/IP协议的阻塞式I/O网络应用程序,采用网络套接字进行通信,如果服务器端处理速度缓慢,在高并发的情况下会出现客户端网络套接字资源耗尽的情况。例如:在1秒内有100个用户通过客户端程序访问服务器端,服务器端程序处理请求并做出响应需要3秒钟,客户端在3秒内就会产生300个客户端套接字与服务器端建立连接,如果客户端没有设置快速回收套接字策略,客户端就会存在很多处于TIME_WAIT状态的连接,在这种场景下,客户端的套接字资源就会耗尽,最终导致程序运行错误。
网络套接字属于系统资源,网络套接字耗尽后会影响整个系统的负载量,导致大量处于等待的客户端产生,使得整个系统的性能下降。
发明内容
本发明所要解决的技术问题是提供一种基于网络连接池化的网络通信方法及系统,能够解决现有技术的不足。
本发明解决上述技术问题的技术方案如下:
一方面,本发明提供了一种基于网络连接池化的网络通信方法,包括:
S1、创建一Hash表,并根据预定需求初始化N个网络连接,其中,N为正整数;
S2、采用Hash运算每一个网络连接创建对应的key值,根据创建的key值将每一个网络连接一一对应存储于Hash表中,形成网络连接资源池;
S3、当客户端访问服务器端时,根据客户端标识作Hash运算后得到对应的key值;
S4、根据对应的key值从Hash表中获取与客户端对应的网络连接,客户端通过该网络连接与服务器端进行网络通信。
另一方面,本发明提供了一种基于网络连接池化的网络通信系统,包括:
Hash表创建单元,用于创建一Hash表;
初始化单元,用于根据预定需求初始化N个网络连接,其中,N为正整数;
存储单元,用于采用Hash运算为每一个网络连接创建对应的key值,并根据创建的key值将每一个网络连接一一对应存储于Hash表中,形成网络连接资源池;
key值获取单元,用于当客户端访问服务器端时,根据客户端标识作Hash运算后得到对应的key值;
网络连接获取单元,用于根据对应的key值从Hash表中获取与客户端对应的网络连接;
网络连接单元,用于通过获取的所述网络连接与服务器端进行网络通信。
本发明提供的一种基于网络连接池化的网络通信方法及系统,将网络连接进行池化形成网络连接资源池,实现网络连接资源的可控性,按需将资源池中的网络连接分配给客户端,用以通过网络连接与服务器端建立网络通信连接,提高整个系统的吞吐量,资源池中的网络连接可以复用,不会出现网络连接资源耗尽的问题。
附图说明
图1为本发明实施例一的一种基于网络连接池化的网络通信方法流程图;
图2为建立的网络连接资源池示意图;
图3为本发明实施例二的一种基于网络连接池化的网络通信系统示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
实施例一、一种基于网络连接池化的网络通信方法。下面结合图1和图2对本实施例提供的方法进行说明。
参见图1,本实施例提供的方法包括:S1、创建一Hash表,并根据预定需求初始化N个网络连接。
S2、采用Hash运算为每一个网络连接创建对应的key值,根据创建的key值将每一个网络连接一一对应存储于Hash表中,形成网络连接资源池。
具体的,首先创建一张Hash表,然后根据预定需求初始化N个网络套接字,其中,N为正整数。创建的Hash表用来存放初始化后的网络连接,初始化的网络连接的个数N的取值可由客户端的数量来配置,其中,一个客户端对应一个网络连接,客户端上的一个网络套接字与服务器端上的一个网络套接字共同构成一个网络连接,即客户端通过一条网络连接与服务器端建立网络通信连接。其中,网络连接与服务器端的主机之间具有对应关系,可以为一对一的对应关系,也可以为多对一的对应关系。
初始化N个网络套接字后,采用Hash运算为每一个网络连接创建对应的key值,由于网络连接与服务器端的主机之间具有对应关系,因此,本实施例根据网络连接对应的主机标识,并做Hash运算,得到该网络连接对应的key值。将创建的key值作为网络连接在Hash表中的存放地址,将每一个网络连接对应的存储于Hash表中,形成网络连接资源池。其中,网络连接属于系统资源,因此一个网络连接资源池中的最大网络连接数量是有限的。当客户端的数量增加时,可以动态在网络连接资源池中增加网络连接的数量。
S3、当客户端访问服务器端时,根据客户端标识作Hash运算后得到对应的key值。
S4、根据对应的key值从Hash表中获取与客户端对应的网络连接与服务器端建立网络连接。
具体的,当客户端需要访问服务器端时,根据客户端标识作Hash运算后得到对应的key值,比如,当多个手机需要访问服务器端时,可根据手机号码做Hash运算得到各个手机号码对应的key值,并根据客户端对应的key值从Hah表中获取与客户端对应的网络连接,根据对应的网络连接,客户端通过该网络连接与服务器端建立网络通信连接,可参见图2。
在将网络连接存储于Hash表中后,按照预定时间间隔对Hash表中所有的网络连接的连接状态进行检测,当检测到网络连接的连接状态处于未连接状态时,激活该网络连接使其处于连接状态。另外,对从Hash表中获取的与客户端对应的网络连接进行连接状态的检测,当客户端通过该网络连接与对应的服务器端建立连接失败时,客户端继续通过该网络连接与对应的服务器端重新建立连接。其中,当客户端通过对应的网络连接与服务器端建立连接失败时,客户端使用其继续通过该网络连接与服务器端重新建立连接预定次数。
需要说明的是,多个手机号码做Hash运算后得到的key值可能相同,比如,手机号A和手机号B作Hash运算后得到同一个key值,该key值对应同一个网络连接,因此,在不同时间,手机号A对应的手机和手机号B对应的手机均可以通过同一个网络连接与服务器端建立网络通信连接,实现网络连接资源池中的网络连接的复用,避免出现网络连接资源耗尽的问题。
另外,服务器端很多时候会包含多个主机,比如,一个服务器端包括主机M、主机L和主机W,网络连接a和网络连接b均可连接至主机A,客户端G可通过网络连接a与主机A建立网络连接,客户端H可通过网络连接b与主机A建立网络连接,也就是说,在同一时间,客户端G和客户端H均能与主机A建立网络连接,实现并行数据传输的功能,相比现有技术的串行数据传输,提高了数据传输的速度。
实施例二、一种基于网络连接池化的网络通信系统。下面结合图3对本实施例提供的系统进行描述。
参见图3,本实施例提供的系统包括Hash表创建单元31、初始化单元32、存储单元33、key值获取单元34、连接状态检测单元35、激活单元36、网络连接获取单元37和网络连接单元38。
其中,Hash表创建单元31,用于创建一Hash表。
初始化单元32,用于根据预定需求初始化N个网络连接,其中,根据客户端的数量确定N的取值。
存储单元33,用于采用Hash运算为每一个网络连接创建对应的key值,并根据创建的key值将每一个网络连接对应存储于Hash表中,形成网络连接资源池。
key获取单元34,用于当客户端访问服务器端时,根据客户端标识作Hash运算后得到对应的key值。
网络连接获取单元35,用于根据对应的key值从Hash表中获取与客户端对应的网络连接。
网络连接单元38,用于通过获取的所述网络连接与服务器端建立网络通信连接。
本实施例提供的系统还包括连接状态检测单元35和激活单元36,所述连接状态检测单元35,用于按照预定时间间隔对Hash表中所有的网络连接的连接状态进行检测。所述激活单元36,用于当连接状态检测单元35检测到网络连接的连接状态处于未连接状态时,激活该网络连接使其处于连接状态。
所述连接状态检测单元35还用于:
对从Hash表中获取的与客户端对应的网络连接进行连接状态的检测;
当客户端通过该网络连接与对应的服务器端建立连接失败时,客户端继续通过该网络连接与对应的服务器端重新建立连接。
所述网络连接单元38还用于:
当客户端通过对应的网络连接与服务器端建立连接失败时,以供客户端使用其继续通过该网络连接与服务器端重新建立连接预定次数。本发明提供的一种基于网络连接池化的网络通信方法及系统,根据客户端数量创建N个网络连接,将网络连接存储于Hash表中进行池化形成网络连接资源池,实现网络连接资源的可控性,对网络连接的数量进行控制,且将网络连接资源池中的网络连接按需分配给客户端,以供客户端通过网络连接与服务器端建立网络通信连接,提高整个系统的吞吐量;多个客户端可通过同一个网络连接与服务器端建立网络通信,实现网络连接资源池中的网络连接的复用,避免出现网络连接资源耗尽的问题;多个客户端能同时与服务器端建立通信连接,实现并行数据传输的功能,相比现有技术的串行数据传输,提高了数据传输的速度。
在本说明书的描述中,参考术语“实施例一”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体方法、装置或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、方法、装置或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于网络连接池化的网络通信方法,其特征在于,包括:
S1、创建一Hash表,并根据预定需求初始化N个网络连接,其中,N为正整数;
S2、采用Hash运算为每一个网络连接创建对应的key值,根据创建的key值将每一个网络连接一一对应存储于Hash表中,形成网络连接资源池;
S3、当客户端访问服务器端时,根据客户端标识作Hash运算后得到对应的key值;
S4、根据对应的key值从Hash表中获取与客户端对应的网络连接,客户端通过该网络连接与服务器端进行网络通信。
2.如权利要求1所述的基于网络连接池化的网络通信方法,其特征在于,根据客户端的数量确定N的取值。
3.如权利要求1所述的基于网络连接池化的网络通信方法,其特征在于,还包括:
按照预定时间间隔对Hash表中所有的网络连接的连接状态进行检测,当检测到网络连接的连接状态处于未连接状态时,激活该网络连接使其处于连接状态。
4.如权利要求3所述的基于网络连接池化的网络通信方法,其特征在于,所述步骤S4还包括:
对从Hash表中获取的与客户端对应的网络连接的连接状态进行检测,当客户端通过该网络连接与对应的服务器端建立连接失败时,客户端继续通过该网络连接与对应的服务器端重新建立连接。
5.如权利要求4所述的基于网络连接池化的网络通信方法,其特征在于,当客户端通过对应的网络连接与服务器端建立连接失败时,客户端继续通过该网络连接与服务器端重新建立网络连接预定次数。
6.一种基于网络连接池化的网络通信系统,其特征在于,包括:
Hash表创建单元,用于创建一Hash表;
初始化单元,用于根据预定需求初始化N个网络连接,其中,N为正整数;
存储单元,用于采用Hash运算为每一个网络连接创建对应的key值,并根据创建的key值将每一个网络连接一一对应存储于Hash表中,形成网络连接资源池;
key值获取单元,用于当客户端访问服务器端时,根据客户端标识作Hash运算后得到对应的key值;
网络连接获取单元,用于根据对应的key值从Hash表中获取与客户端对应的网络连接;
网络连接单元,用于通过获取的所述网络连接与服务器端进行网络通信。
7.如权利要求6所述的基于网络连接池化的网络通信系统,其特征在于,根据客户端的数量确定N的取值。
8.如权利要求6所述的基于网络连接池化的网络通信系统,其特征在于,还包括:
连接状态检测单元,用于按照预定时间间隔对Hash表中所有的网络连接的连接状态进行检测;
激活单元,用于当检测到网络连接的连接状态处于未连接状态时,激活该网络连接使其处于连接状态。
9.如权利要求8所述的基于网络连接池化的网络通信系统,其特征在于,所述连接状态检测单元还用于:
对从Hash表中获取的与客户端对应的网络连接的连接状态进行检测;
当客户端通过该网络连接与对应的服务器端建立连接失败时,客户端继续通过该网络连接与对应的服务器端重新建立连接。
10.如权利要求9所述的基于网络连接池化的网络通信系统,其特征在于,所述网络连接单元还用于:
当客户端通过对应的网络连接与服务器端建立连接失败时,以供客户端使用其继续通过该网络连接与服务器端重新建立连接预定次数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610228328.8A CN105933464B (zh) | 2016-04-13 | 2016-04-13 | 一种基于网络连接池化的网络通信方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610228328.8A CN105933464B (zh) | 2016-04-13 | 2016-04-13 | 一种基于网络连接池化的网络通信方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105933464A true CN105933464A (zh) | 2016-09-07 |
CN105933464B CN105933464B (zh) | 2019-05-31 |
Family
ID=56837992
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610228328.8A Active CN105933464B (zh) | 2016-04-13 | 2016-04-13 | 一种基于网络连接池化的网络通信方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105933464B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108259370A (zh) * | 2016-12-28 | 2018-07-06 | 航天信息股份有限公司 | 数据传输的方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1972276A (zh) * | 2006-11-26 | 2007-05-30 | 华为技术有限公司 | 一种协议访问管理方法和系统 |
CN102355496A (zh) * | 2011-09-27 | 2012-02-15 | 中国铁道科学研究院电子计算技术研究所 | 列车车地间数据通信方法 |
CN102546808A (zh) * | 2012-01-17 | 2012-07-04 | 深圳天源迪科信息技术股份有限公司 | 服务端基于tcp的交互处理方法 |
CN103365929A (zh) * | 2012-04-10 | 2013-10-23 | 阿里巴巴集团控股有限公司 | 一种数据库连接的管理方法及系统 |
CN103795569A (zh) * | 2014-01-22 | 2014-05-14 | 亿赞普(北京)科技有限公司 | 一种基于连接池的服务器连接方法和装置 |
CN104184729A (zh) * | 2014-08-20 | 2014-12-03 | 杭州华三通信技术有限公司 | 一种报文处理方法和装置 |
US9294433B1 (en) * | 2012-11-02 | 2016-03-22 | 8X8, Inc. | Multiple-master DNS system |
-
2016
- 2016-04-13 CN CN201610228328.8A patent/CN105933464B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1972276A (zh) * | 2006-11-26 | 2007-05-30 | 华为技术有限公司 | 一种协议访问管理方法和系统 |
CN102355496A (zh) * | 2011-09-27 | 2012-02-15 | 中国铁道科学研究院电子计算技术研究所 | 列车车地间数据通信方法 |
CN102546808A (zh) * | 2012-01-17 | 2012-07-04 | 深圳天源迪科信息技术股份有限公司 | 服务端基于tcp的交互处理方法 |
CN103365929A (zh) * | 2012-04-10 | 2013-10-23 | 阿里巴巴集团控股有限公司 | 一种数据库连接的管理方法及系统 |
US9294433B1 (en) * | 2012-11-02 | 2016-03-22 | 8X8, Inc. | Multiple-master DNS system |
CN103795569A (zh) * | 2014-01-22 | 2014-05-14 | 亿赞普(北京)科技有限公司 | 一种基于连接池的服务器连接方法和装置 |
CN104184729A (zh) * | 2014-08-20 | 2014-12-03 | 杭州华三通信技术有限公司 | 一种报文处理方法和装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108259370A (zh) * | 2016-12-28 | 2018-07-06 | 航天信息股份有限公司 | 数据传输的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105933464B (zh) | 2019-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102209076B (zh) | 服务端与客户端之间的交互方法和交互系统 | |
CN102595208B (zh) | 云端控制网络化视频图像处理流媒体服务系统及方法 | |
CN106254377B (zh) | 支持海量长连接的软负载均衡方法及系统 | |
CN104780054B (zh) | 一种用以控制局域网络唤醒或休眠的网关 | |
CN107770269B (zh) | 一种服务响应方法及其终端 | |
CN104202365B (zh) | 一种集群式智能网关平台部署扩展业务应用的方法 | |
CN103188245A (zh) | 一种对战类游戏服务端系统 | |
CN103051716A (zh) | 一种面向网络的串口设备重定向的方法及系统 | |
CN101136929A (zh) | 因特网小型计算机系统接口数据传输方法及设备 | |
CN103841157B (zh) | 文件分享装置及方法 | |
CN104539752B (zh) | 多级域平台间的访问方法及系统 | |
CN112702362B (zh) | Tcp/ip协议栈的增强方法、装置、电子设备及存储介质 | |
CN104506630B (zh) | 基于用户角色的权限数据生成方法、服务器及系统 | |
CN106878320A (zh) | 一种防止ip地址欺骗的方法和装置 | |
CN105933464A (zh) | 一种基于网络连接池化的网络通信方法及系统 | |
CN104506405B (zh) | 跨域访问的方法及装置 | |
CN106357654A (zh) | 远程过程调用方法、装置及通信系统 | |
WO2012000455A1 (zh) | 一种客户端及负载均衡的方法 | |
CN110049484A (zh) | 一种系统间移动的注册方法和装置 | |
CN109308210B (zh) | 一种在多核服务器上优化nfv转发服务链性能的方法 | |
CN103997422B (zh) | 一种ip接口板的故障处理方法和装置 | |
CN105049288A (zh) | 基于PPPoE网络接入的高集成度网络采集系统及方法 | |
CN105791146B (zh) | 用户侧设备与配置服务器交互的方法、设备和系统 | |
CN104426878B (zh) | 服务器连接方法和装置 | |
CN106488494A (zh) | 一种监控网络连接状态的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |