CN201410257163.8
2014.06.11
CN104796395A
2015.07.22
实审
审中
实质审查的生效IPC(主分类):H04L 29/06申请日:20140611|||公开
H04L29/06
合肥星服信息科技有限责任公司
胡平
230051安徽省合肥市包河区庐州大道58号泰盛广场2幢综合楼1118室
一种解决瞬间大规模网络连接方法的优化方法,该方法的特质是:为每一个新生成的线程动态创建缓冲池,并动态回收,从而保证瞬间出现大规模连接时,每个连接都能正常通讯的方法。在连接失效时能及时清理。本方法不局限于微软操作系统,在Unix、Linux和苹果操作系统都可以使用。
1. 一种解决瞬间大规模网络连接方法的优化方法,该方法的特质是:为每一个新生成的线程动态创建缓冲池,并动态回收,从而保证瞬间出现大规模连接时,每个连接都能正常通讯的方法。2. 在连接失效时能及时清理。3. 本方法不局限于微软操作系统,在Unix、Linux和苹果操作系统都可以使用。4. 所述方法包括如下步骤:1)、在服务端建立缓冲池动态数组并初始化;2)、服务器对指定的端口进行监听,接收客户端发过来的连接请求,通过三次握手,建立TCP连接;3)、为每一个TCP连接指定一个缓冲池,并建立连接句柄和缓冲池的对应关系;4)、数据传输结束,或意外中断后,根据连接句柄和缓冲池的对应关系,回收相应的缓冲池供其他连接使用。
一种瞬间大规模网络连接的处理方法 技术领域 本发明属于信息技术领域网络技术的一个优化方案,提出一种采用独立缓冲池设计,高效可靠的解决瞬间大规模网络连接时造成的数据紊乱的网络问题。 背景技术 目前,在建立TCP网络连接时,如果有多个客户端连接同一个服务器,那么该服务器必须能够区分这些客户端,采用fork机制,在有新的作业时才fork出一个新的执行线程,然后继续监听。当有浪涌式的数据连接时,将使得大量TCP连接无法建立或数据丢失。主要原因有: 1、由于操作系统对一个端口同时处理的连接数进行了限制,超过这个限制时,将使得TCP连接无法建立。 2、新产生的线程负责从缓冲池读取客户端的数据,读取结束后,其他线程继续操作。由于缓冲池读取时间的限制,当有大量的连接请求,并发送数据时,缓冲池难以满足要求,同时还会造成连接数据的丢失。 目前的解决方法是: 修改系统配置文件:修改操作系统对一个端口同时处理的连接数,可以解决连接数不足的问题; 采用完成端口:完成端口模型是迄今为止最为复杂的—种I/O模型。完成端口模型要求我们创建一个Win32完成端口对象,通过指定数量的线程对重叠I/O请求进行管理。以便为已经完成的重叠I/O请求提供服务。当—个应用程序同时需要管理为数众多的套接字,那么采用这种模型,往往可以达到最佳的系统性能,然而不幸的是,该模型只适用于微软的操作系统。 发明内容 本发明的一个目的在于为每一个新生成的线程动态创建缓冲池,并动态回收,从而保证瞬间出现大规模连接时,每个连接都能正常通讯的方法。在连接失效时能及时清理。本方法不局限于微软操作系统,在Unix、Linux和苹果操作系统都可以使用。 所述方法包括如下步骤: 1、在服务端建立缓冲池动态数组并初始化; 2、服务器对指定的端口进行监听,接收客户端发过来的连接请求,通过三次握手,建立TCP连接; 3、为每一个TCP连接指定一个缓冲池,并建立连接句柄和缓冲池的对应关系; 4、数据传输结束,或意外中断后,根据连接句柄和缓冲池的对应关系,回收相应的缓冲池供其他连接使用。 附图说明 图1是服务器的初始化流程图 图2是服务器通讯过程中缓冲池调度逻辑和回收流程图。 具体实施方式 本发明的基于瞬间大规模网络连接的处理方法主要用于在当某个应用程序需要同时管理成百上千个套接字,并能从其读取数据时的情况。特别适用于同时处理多客户端的服务器应用,为服务器的稳定、及时响应提供了一种高效的处理方法。 为了实现该网络优化方法,首先需要初始化连接缓冲区数组,初始化数组的大小根据业务需要设定一个初始值。当服务器建立新的连接时,会从数组中按顺序找到一个空闲的缓冲区,记录下这个空闲缓冲区和连接套接字的对应关系。这样就为每一个连接建立了一个独立的缓冲区,保证了缓冲区数据传输的准确和及时被取走。大大提高了数据传输的效率。当连接超时无数据或失效时,系统自动回收缓冲区,并移除套接字和缓冲区的对应关系表。 具体流程如下: 1、在步骤101中,服务器进行初始化工作,获取主机地址和端口以及发送和接收数据的编码。 2、在步骤102中,初始化会话哈希表,用于存放以后的连接的会话内容。 3、在步骤103中,初始化缓冲区数组以及和套接字对应关系表。 4、在步骤104中,服务器绑定主机地址和端口。 5、在步骤105中,服务器开始监听端口。 6、在步骤201中,服务器接收到一个客户端的连接请求并建立连接。 7、在步骤202中,服务器保存连接会话到哈希表中。 8、在步骤203中,服务器查找空闲的缓冲区,如果没有找到,就会在缓冲区数组中扩展一个新的缓冲区,并建立缓冲区和套接字的对应关系。 9、在步骤204中,服务器利用获得的缓冲区为新建的连接存放数据。由于每个连接的缓冲区都是独立的,尽管有很多线程同时传输数据,这些传输通道之间可以并行高效处理数据,无须等待,也不会发生传输错误的情况。 10、在步骤205中,如果连接的数据传输结束后,在指定的时间内未再收到新的报文,服务器将断开连接,释放缓冲区并移除缓冲区和套接字的对应关系,在缓冲区数组上就产生了一个空闲的缓冲区位,当有新的连接时,将会使用这个缓冲区。
《一种瞬间大规模网络连接的处理方法.pdf》由会员分享,可在线阅读,更多相关《一种瞬间大规模网络连接的处理方法.pdf(5页珍藏版)》请在专利查询网上搜索。
一种解决瞬间大规模网络连接方法的优化方法,该方法的特质是:为每一个新生成的线程动态创建缓冲池,并动态回收,从而保证瞬间出现大规模连接时,每个连接都能正常通讯的方法。在连接失效时能及时清理。本方法不局限于微软操作系统,在Unix、Linux和苹果操作系统都可以使用。 。
copyright@ 2017-2020 zhuanlichaxun.net网站版权所有经营许可证编号:粤ICP备2021068784号-1