CN103731291A - 一种网络服务器池系统数据传输结构及其程序开发方法 - Google Patents
一种网络服务器池系统数据传输结构及其程序开发方法 Download PDFInfo
- Publication number
- CN103731291A CN103731291A CN201210393632.XA CN201210393632A CN103731291A CN 103731291 A CN103731291 A CN 103731291A CN 201210393632 A CN201210393632 A CN 201210393632A CN 103731291 A CN103731291 A CN 103731291A
- Authority
- CN
- China
- Prior art keywords
- server
- client
- socket descriptor
- pond
- carry out
- 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.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明提供一种网络服务器池系统数据传输结构及其程序开发方法,其中该网络服务器池系统包括:服务器池、池化器、以及客户端;所述数据传输结构包括:数据链路层/物理层、网络层、传输层、套接字接口以及应用层程序;其特征在于:在应用层程序与套接字接口之间设置有可靠套接字接口,其中所述可靠套接字接口包括构建服务器池登记、服务器故障识别、服务器接管服务器选择、服务器故障恢复这些故障容错处理过程。
Description
【技术领域】
本发明是关于计算机网络服务器领域,特别是关于网络服务器故障容错的技术领域。
【背景技术】
在典型的服务器-客户机模式下,服务器是由DNS域名确定其位置的,客户端应用系统在访问服务器之前必须通过使用DNS服务对其域名进行解析,从而得到该服务器的IP地址。在客户机和服务器建立连接后,就可以进行信息交换;假如这一服务器发生故障,客户机应用系统有两种可能的选择:1.中断通信;2.选择另一个服务器继续。
在这种模式下,客户端应用系统必须通过以下方式检测出服务器是否中断:
(1)服务器没有响应(time out);
(2)服务器回应错误信息;
(3)收到传输层错误信息;
为了让客户应用程序能够在检测出服务器发生故障后,有选择其它服务器的可能,必须在其应用程序中明确提供一个服务器列表,指明:第一服务器、第二服务器、第三......等。当第一个服务器中断,则尝试和第二个服务器建立连接,再则第三,依此类推。
也就是说,这一故障切换过程是由用户程序的干涉而实现的,有较大局限性:
其一、服务器列表是静态的,必须有用户特别指明;
其二、替代服务器的选择有着较大的盲目性,无法保证所选服务器是否正常及有效,也不能因服务器的负载情况而灵活选择;
其三、接管是通过应用程序而实现,缺乏透明性;
其四、被动的中断识别方式;
其五、为满足可靠性的保证,应用程序开发量较大。
特别是在开发容错处理程序时,不同的应用程序都需要耗费大量时间和精力在具体容错处理上。或者大部分程序在开放的时候根本就不考虑容错方面的问题,而是在应用实施的时候采用第三方的容错产品(比如:双机热备、集群产品等)加强应用的容错能力。之所以要在系统实施的时候采用第三方的容错产品,其本质的问题是:应用程序本身不具备容错的能力。
【发明内容】
本发明的目的在于提供一种应用于网络服务器池系统的数据传输结构,采用该结构可极为方便地开发出具有故障容错能力的网络服务程序。
本发明的另一目的在于提供一种应用于网络服务器池系统的网络程序开发方法。
为达成前述目的,本发明一种应用于网络服务器池系统的数据传输结构,其中所述网络服务器池系统包括:
服务器池:服务器池是由一组具有相同功能的,并被统一管理起来的服务器组成,每个服务器池均使用唯一的池名作为标识;
池化器:是服务器池的管理设备,负责将多台服务器组成一个虚拟的服务器池,并对各台服务器的运行状态进行实时监控和采集;同时提供池名解析功能,以便能让用户方便地访问服务器;
客户端:访问服务器池的客户机;
所述数据传输结构包括:数据链路层/物理层、网络层、传输层、套接字接口以及应用层程序;其特征在于:在应用层程序与套接字接口之间设置有可靠套接字接口,其中所述可靠套接字接口包括构建服务器池登记、服务器故障识别、服务器接管服务器选择、服务器故障恢复这些故障容错处理过程。
根据本发明的一个实施例,所述可靠套接字接口在客户/服务器模式下,根据传输控制协议(TCP)使用该可靠套接字接口的工作流程如下:
服务器端程序工作流程:
创建服务器端通信套接字描述符;
将创建的套接字描述符与服务器地址和端口绑定;
使套接字描述符做好接收连接请求的准备;
给套接字描述符定义池名;
接收来自客户端的连接请求;
建立好连接后,接收客户端发来的数据,或向客户端发送数据;
如果接收到客户端发来的Cookie,说明是进行服务器故障恢复,将本服务器的实时状态按照Cookie里的内容进行恢复;
在服务器处理客户但请求,并与客户端进行交互的过程中,记录服务器实时运行状态
如果客户端关闭,关闭套接字描述符;
客户端程序工作流程:
创建客户端套接字描述符;
进行池名解析,获得服务器IP;
发送连接服务器请求;
连接建立后,向服务器发送数据,或从服务器接收数据;
关闭连接。
根据本发明的一个实施例,在客户/服务器模式下,根据用户数据报协议(UDP)使用该可靠套接字接口的工作流程如下:
服务器端程序工作流程:
创建服务器端通信套接字描述符;
将创建的套接字描述符与服务器地址和端口绑定;
使服务器套接字描述符做好接收连接请求的准备;
给套接字描述符定义池名;
接收客户端发来的数据,或向客户端发送数据;
在服务器处理客户但请求,并与客户端进行交互的过程中,记录服务器实时运行状态到Cookie中;
如果客户端关闭,关闭套接字描述符;
客户端程序工作流程:
创建客户端套接字描述符
进行池名解析,而从获得服务器IP地址
连接建立后,向服务器发送数据,或从服务器接收数据
关闭连接。
为达成本发明另一目的,本发明一种应用于网络服务器池系统的网络程序开发方法,其包括:
构建网络服务器池系统,其中所述网络服务器池系统包括:服务器池:服务器池是由一组具有相同功能的,并被统一管理起来的服务器组成,每个服务器池均使用唯一的池名作为标识;
池化器:是服务器池的管理设备,负责将多台服务器组成一个虚拟的服务器池,并对各台服务器的运行状态进行实时监控和采集;同时提供池名解析功能,以便能让用户方便地访问服务器;
客户端:访问服务器池的客户机;
构建网络数据传输结构,其中该数据传输结构包括:数据链路层/物理层、网络层、传输层、套接字接口、可靠套接字接口以及应用层程序;其中所述可靠套接字接口包括构建服务器池登记、服务器故障识别、服务器接管服务器选择、服务器故障恢复这些故障容错处理过程。
根据本发明的一个实施例,所述可靠套接字接口在客户/服务器模式下,根据传输控制协议(TCP)使用该可靠套接字接口的工作流程如下:
服务器端程序工作流程:
创建服务器端通信套接字描述符;
将创建的套接字描述符与服务器地址和端口绑定;
使套接字描述符做好接收连接请求的准备;
给套接字描述符定义池名;
接收来自客户端的连接请求;
建立好连接后,接收客户端发来的数据,或向客户端发送数据;
如果接收到客户端发来的Cookie,说明是进行服务器故障恢复,将本服务器的实时状态按照Cookie里的内容进行恢复;
在服务器处理客户但请求,并与客户端进行交互的过程中,记录服务器实时运行状态
如果客户端关闭,关闭套接字描述符;
客户端程序工作流程:
创建客户端套接字描述符;
进行池名解析,获得服务器IP;
发送连接服务器请求;
连接建立后,向服务器发送数据,或从服务器接收数据;
关闭连接。
根据本发明的一个实施例,在客户/服务器模式下,根据用户数据报协议(UDP)使用该可靠套接字接口的工作流程如下:
服务器端程序工作流程:
创建服务器端通信套接字描述符;
将创建的套接字描述符与服务器地址和端口绑定;
使服务器套接字描述符做好接收连接请求的准备;
给套接字描述符定义池名;
接收客户端发来的数据,或向客户端发送数据;
在服务器处理客户但请求,并与客户端进行交互的过程中,记录服务器实时运行状态到Cookie中;
如果客户端关闭,关闭套接字描述符;
客户端程序工作流程:
创建客户端套接字描述符
进行池名解析,而从获得服务器IP地址
连接建立后,向服务器发送数据,或从服务器接收数据
关闭连接。
本发明针对传统的服务器故障接管模式的不足,提出在服务器池框架下实现全透明的故障接管模式,用户无需任何干预,只需要在服务器故障发生后进行一个池名解析就可以获得新的接管服务器,并且可以很大程度上保证获得的接管服务器是正常有效的,从而提高服务器故障容错处理的效率。
能极大地简化应用程序在容错方面的开发难度和工作量,能够在应用程序的开发过程中就能轻而易举的实现故障处理的能力,使得应用程序本身具有容错能力,从而无需在实施过程中使用其他辅助性的容错产品。
【附图说明】
图1是本发明的服务器池系统的结构示意图。
图2为本发明的服务器池系统的工作流程图。
图3是本发明的可靠套接字接口的协议堆栈图。
图4是本发明在C/S模式下,根据TCP协议,使用本发明的可靠套接字接口的工作流程图。
图5是本发明C/S模式下,根据UDP协议使用本发明的可靠套接字接口的工作流程图。
【具体实施方式】
此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。
本发明的简化具有故障容错能力的网络服务器程序开发的方法,须建立在服务器池框架下方能发挥其功能。服务器池的核心思想是让某项服务由多个冗余服务器同时来提供,所有这些服务器的集合被称为一个服务器池。也就是说:一项服务是由一个服务器池的整体来提供的,服务器是分布式的,均拥有各自的IP地址。当其中一个服务器因故障而不能继续提供服务的时候,可以由存在于服务器池中另一个正常运行的服务器继续提供。其系统示意图图1所示,本发明的服务器池系统由以下三个部分组成:
服务器池:服务器池是由一组具有相同功能的,并被统一管理起来的服务器组成,每个服务器池均使用唯一的池名作为标识;
池化器:是服务器池的管理设备,负责将多台服务器组成一个虚拟的服务器池,并对各台服务器的运行状态进行实时监控和采集;同时提供池名解析功能,以便能让用户方便地访问服务器;
客户端:访问服务器池的客户机。
服务器池运行机制大致如下:
服务器池的登记机制:要求服务器在启动时需主动在池化器处进行登记,登记时需提供服务器的相关系统信息,包括:服务器IP地址、服务端口号、服务协议等信息;
池化器的故障检测机制:在服务器池系统内,池化器服务器的登记信息负责对服务器进行周期性的健康状况检查,一旦发现服务器故障,池化器立刻将该服务器从服务器池中删除掉,池化器的这种机制可以保证服务器池中所有服务器都是有效的、可用的。
池化器信息同步机制:池化器发现某服务器发生故障,会立刻在自己所保存的服务器列表中将该服务器删除,同时通过服务器更新消息(Server_Update)通知其他所有池化器该服务器发生故障,其他池化器收到通知后,也立刻将该服务器从其保存的服务器列表中删除掉。这样保证了服务器列表中都是运行正常的服务器,并且所有池化器信息的一致性。
池化器的池名解析机制:客户端访问服务器池,先在池化器处做池名解析,池化器根据客户端提交的解析请求,在自己的服务器列表中进行查询,通常每个池名都对应着多个服务器,池化器安装实现确定好的选择策略,为该用户选择一个最佳的服务器IP,并将该结果以解析回应消息的形式反馈给客户端。
基于这种服务器池的特性,当服务器发生故障时,只需简单地通过一次池名解析就可以快速获得新的接管服务器,为客户端应用程序实现快速透明的故障切换功能提供一种行之有效的接管服务器的选择方法,其具体步骤如下:
某用户通过池名访问服务器池,需首先在池化器处进行池名解析,池化器收到用户(客户端)发来的池名解析请求后,会在自身保存的服务器列表中进行查找,并根据预先确定的策略选择一个有效的正常运行的服务器,然后将该服务器的IP地址发送给发出解析请求的用户。由于所有池化器之间的信息是实时同步的,所以用户无论在哪台池化器上做解析,都可以得到同样的解析结果。
客户端完成池名解析后,然后根据解析得到的服务器IP地址,直接访问服务器,并进行数据交互。
如果在数据交换中该服务器发生故障,客户端从传输层(Transport Layer)得到一个错误信息,并且连接随即中断,客户端由此可以获知服务器端发生故障,这时,客户端将进行选择新的接管服务器模式,客户端要选择下一台正常的接管服务器,只需重新在池化器处做一次池名解析,就可以获得下一台正常运行的接管服务器IP地址,如果新的接管服务器也发生故障,客户端可以继续在池化器处做解析,得到下一个接管服务器,以依此类推。
要实现客户端透明自动的选择接管服务器,无需在客户端维护一个静态的服务器列表,只需在需要选择的时候,向池化器做一次池名解析就可完成接管服务器的选择过程,从而提高整个服务器故障容错的效率。
下面对本发明的服务器池系统的工作流程做详细说明,请参阅图2所示,本发明的服务器池系统的构建步骤如下:
步骤S1:首先建立服务器池,并为提供相同服务的服务器组成的服务器池命名,即池名,池名是服务器池唯一的标识名,是由若干个从a到z的26个拉丁字母及0到9的10个阿拉伯数字及“-”以及“.”符号构成的并按一定的层次和逻辑排列,命名方法与域名(Domain Name)是一致的。池名不能重复,具有相同服务的多台服务器拥有同一个池名。
步骤S2:在服务启动时,服务器需在池化器处进行登记,登记时要提供相关的系统信息,包括:池名,唯一的服务识别号、服务器IP地址、服务端口、服务协议、服务检测、均衡策略等。服务登记的过程是通过向池化器发送登记(registration)消息,到服务器收到池化器发回来的registration_response消息而完成,registration消息中包含了服务相关的池名信息和服务信息。请参阅图3至图5所示,其分别显示了本发明的登记消息格式示意图、本发明的登记消息格式中池名参数格式示意图、本发明的登记消息格式中服务器参数格式示意图。以及请参阅图6所示,其显示了本发明的登记回应消息格式示意图。
步骤S3:池化器收到登记消息后,将对其按照池名进行归类,保存在其内部的服务器列表(Server List)之中,同时发布服务器更新消息(Server_Update)给其他池化器,将该服务登记信息同步到其他服务器里,从而保证所有池化器中的Server List都是一致的。
步骤S4:池化器每隔一个时间段会对其主管服务器进行监控检查,一旦发现有服务器发生故障,立刻从其保持的服务器列表(Server List)中删除该服务器,同时发送服务器更新消息给其他池化器,其他池化器接到该消息后,也同时从自己的服务器列表中删除该服务器。
步骤S5:池名解析:用户访问服务器池之前,必须向池化器发送池名解析请求,池化器根据自身保持的服务器列表,并按照服务器池的均衡策略为用户选择一台被认为最佳的服务器IP,将结果返回给用户;
步骤S6:用户访问服务器:根据池名解析的结果,用户直接与服务器建立连接,按照均衡策略,不同的用户通过池名解析,会获得不同的服务器IP,这样用户的访问量就被分配到不同的服务器上。
要简化网络应用程序的开发,使应用程序开发可以抽象于故障容错处理的具体过程,由于网络应用程序的开发是基于标准的套接字应用程序接口(SocketAPI)的调用组合来实现的,参见图2所示可靠套接字接口的协议堆栈图,本发明对标准的套接字应用程序接口做一个封装,将故障容错处理的过程包含在封装层内,即在Socket API与应用层之间增加一层所谓的“可靠的套接字接口(Reliable Socket API)”,并且保持新的“可靠的套接字接口”在形式上和调用方式上和标准套接字应用程序接口(Socket API)的一致性,这样开发者可以轻松过渡到新的套接字接口上开发开发出具有容错功能的网络应用程序,就如同开发一个普通的网络应用程序一样,同时旧有的网络应用程序也可以极为方便地移植到新的可靠套接字接口之上。在服务器池的框架下,用户应用程序通过使用新的可靠套接字接口而轻松开发出具有故障容错功能的网络应用程序。
可靠套接字应用程序接口,包含了构建服务器池登记、服务器故障识别、服务器接管服务器选择、服务器故障恢复等全部功能,开发者可以完全将精力集中在应用层面的开发,而无需额外地考虑复杂的容错处理部分的开发,这就极大的节省了开发工作量。
在客户/服务器模式(C/S)下,根据传输控制协议(Transmission ControlProtocol,TCP)使用该可靠套接字接口的工作流程如下:
服务器端程序工作流程:
使用r_socket()创建服务器端通信套接字描述符;
使用r_bind()将创建的套接字描述符与服务器地址和端口绑定;
使用r_listen()使套接字描述符做好接收连接请求的准备;
使用r_setpool()给套接字描述符定义池名;
使用r_accept()接收来自客户端的连接请求;
建立好连接后,使用r_recv()接收客户端发来的数据,或使用r_send()向客户端发送数据;
如果接收到客户端发来的Cookie,说明是进行服务器故障恢复,使用r_updateState()将本服务器的实时状态按照Cookie里的内容进行恢复;
在服务器处理客户但请求,并与客户端进行交互的过程中,使用r_setcookie()记录服务器实时运行状态
如果客户端关闭,使用r_close()关闭套接字描述符。
客户端程序工作流程:
使用r_socket()创建客户端套接字描述符;
使用r_gethostbyname()进行池名解析,获得服务器IP;
使用r_connect()发送连接服务器请求;
连接建立后,使用r_send()向服务器发送数据,或使用r_recv()从服务器接收数据;
使用r_close()关闭连接。
在客户/服务器模式(C/S)下,根据用户数据报协议(User Data Protocol,简称UDP)使用该可靠套接字接口的工作流程如下:
服务器端程序工作流程:
使用r_socket()创建服务器端通信套接字描述符;
使用r_bind()将创建的套接字描述符与服务器地址和端口绑定;
使用r_listen()使服务器套接字描述符做好接收连接请求的准备;
使用r_setpool()给套接字描述符定义池名;
使用r_recvfrom()接收客户端发来的数据,或使用r_sendto()向客户端发送数据;
在服务器处理客户但请求,并与客户端进行交互的过程中,使用r_setcookie()记录服务器实时运行状态
如果客户端关闭,使用r_close()关闭套接字描述符。
客户端程序工作流程:
使用r_socket()创建客户端套接字描述符
使用r_gethostbyname()进行池名解析,而从获得服务器IP地址
连接建立后,使用r_sendto()向服务器发送数据,或使用r_recvfrom()从服务器接收数据
使用r_close()关闭连接。
在服务器端使用可靠套接字接口的流程上,正常情况下,在完成监听服务器地址和端口后,需要调用r_setpool()给该服务器定义池名,这一步十分重要,因为服务器池里,每个池名都可以对应多个服务器IP,客户端只通过池名解析才能简单有效的获得服务器地址;另外在服务器运行过程中,需要周期性的调用r_setCookie(),将自身的实时运行状态记录在cookie中,然后由可靠套接字层全透明地发送到客户端程序。
客户端程序在使用可靠套接字接口基本上和使用标准套接字接口一样,服务器端会通过可靠套接字层周期性发送Cookie到客户端,在客户端的可靠套接字层收到Cookie后,会自动保存在可靠套接字层里,并不会将此Cookie传递给应用层,因此该cookie对应用来说也是透明的。
当服务器发生故障后,可靠套接字层将从标准套接字层获得错误消息,但并不把该错误消息传递给应用层,而是立刻使用r_gethostbyname()进行池名解析,从而获得新的接管服务器,然后调用r_connect()连接接管服务器,连接成功后,首先把最后保存的Cookie发送给新的接管服务器,接管服务器收到这个cookie,立刻使用该Cookie的内容对自己的状态进行重置,由于Cookie保存的是故障服务器发生故障前的状态,因此接管服务器就将自己恢复到故障服务器的中断前的状态,这样故障恢复过程就完成了,而且这一过程是在可靠套接字层实现的,完全是透明于应用程序。
本发明方法的优点在:通过对网络应用程序开发标准接口“套接字接口(Socket API)”进行封装和扩展,在保持原有套接字接口的同时,将容错功能封装起来,实现一种被称为“可靠套接字接口(reliable socket API)”的方法和思想,使得网络应用程序的开发可以专注于应用领域的开发工作,而无需对故障容错做过多的考虑,使得所有基于“可靠套接字接口reliable socketAPI”开放的网络应用程序天生具备良好的容错能力,并且在应用实施的时候,也无需增加第三方辅助性质的容错方案;
可靠应用程序的开发变得简单明了,使故障容错网络机制化;
在后期实施、部署及运行过程中,也极大降低维护量,服务器系统结构调整均无需对程序进行重新调整,也无需做相关的设置。
上述说明已经充分揭露了本发明的具体实施方式。需要指出的是,熟悉该领域的技术人员对本发明的具体实施方式所做的任何改动均不脱离本发明的权利要求书的范围。相应地,本发明的权利要求的范围也并不仅仅局限于前述具体实施方式。
Claims (6)
1.一种应用于网络服务器池系统的数据传输结构,其中所述网络服务器池系统包括:
服务器池:服务器池是由一组具有相同功能的,并被统一管理起来的服务器组成,每个服务器池均使用唯一的池名作为标识;
池化器:是服务器池的管理设备,负责将多台服务器组成一个虚拟的服务器池,并对各台服务器的运行状态进行实时监控和采集;同时提供池名解析功能,以便能让用户方便地访问服务器;
客户端:访问服务器池的客户机;
所述数据传输结构包括:数据链路层/物理层、网络层、传输层、套接字接口以及应用层程序;其特征在于:在应用层程序与套接字接口之间设置有可靠套接字接口,其中所述可靠套接字接口包括构建服务器池登记、服务器故障识别、服务器接管服务器选择、服务器故障恢复这些故障容错处理过程。
2.如权利要求1所述的数据传输结构,其特征在于:所述可靠套接字接口在客户/服务器模式下,根据传输控制协议(TCP)使用该可靠套接字接口的工作流程如下:
服务器端程序工作流程:
创建服务器端通信套接字描述符;
将创建的套接字描述符与服务器地址和端口绑定;
使套接字描述符做好接收连接请求的准备;
给套接字描述符定义池名;
接收来自客户端的连接请求;
建立好连接后,接收客户端发来的数据,或向客户端发送数据;
如果接收到客户端发来的Cookie,说明是进行服务器故障恢复,将本服务器的实时状态按照Cookie里的内容进行恢复;
在服务器处理客户但请求,并与客户端进行交互的过程中,记录服务器实时运行状态
如果客户端关闭,关闭套接字描述符;
客户端程序工作流程:
创建客户端套接字描述符;
进行池名解析,获得服务器IP;
发送连接服务器请求;
连接建立后,向服务器发送数据,或从服务器接收数据;
关闭连接。
3.如权利要求1所述的数据传输结构,其特征在于:在客户/服务器模式下,根据用户数据报协议(UDP)使用该可靠套接字接口的工作流程如下:
服务器端程序工作流程:
创建服务器端通信套接字描述符;
将创建的套接字描述符与服务器地址和端口绑定;
使服务器套接字描述符做好接收连接请求的准备;
给套接字描述符定义池名;
接收客户端发来的数据,或向客户端发送数据;
在服务器处理客户但请求,并与客户端进行交互的过程中,记录服务器实时运行状态到Cookie中;
如果客户端关闭,关闭套接字描述符;
客户端程序工作流程:
创建客户端套接字描述符
进行池名解析,而从获得服务器IP地址
连接建立后,向服务器发送数据,或从服务器接收数据
关闭连接。
4.一种应用于网络服务器池系统的网络程序开发方法,其包括:
构建网络服务器池系统,其中所述网络服务器池系统包括:服务器池:服务器池是由一组具有相同功能的,并被统一管理起来的服务器组成,每个服务器池均使用唯一的池名作为标识;
池化器:是服务器池的管理设备,负责将多台服务器组成一个虚拟的服务器池,并对各台服务器的运行状态进行实时监控和采集;同时提供池名解析功能,以便能让用户方便地访问服务器;
客户端:访问服务器池的客户机;
构建网络数据传输结构,其中该数据传输结构包括:数据链路层/物理层、网络层、传输层、套接字接口、可靠套接字接口以及应用层程序;其中所述可靠套接字接口包括构建服务器池登记、服务器故障识别、服务器接管服务器选择、服务器故障恢复这些故障容错处理过程。
5.如权利要求4所述的数据传输结构,其特征在于:所述可靠套接字接口在客户/服务器模式下,根据传输控制协议(TCP)使用该可靠套接字接口的工作流程如下:
服务器端程序工作流程:
创建服务器端通信套接字描述符;
将创建的套接字描述符与服务器地址和端口绑定;
使套接字描述符做好接收连接请求的准备;
给套接字描述符定义池名;
接收来自客户端的连接请求;
建立好连接后,接收客户端发来的数据,或向客户端发送数据;
如果接收到客户端发来的Cookie,说明是进行服务器故障恢复,将本服务器的实时状态按照Cookie里的内容进行恢复;
在服务器处理客户但请求,并与客户端进行交互的过程中,记录服务器实时运行状态
如果客户端关闭,关闭套接字描述符;
客户端程序工作流程:
创建客户端套接字描述符;
进行池名解析,获得服务器IP;
发送连接服务器请求;
连接建立后,向服务器发送数据,或从服务器接收数据;
关闭连接。
6.如权利要求4所述的数据传输结构,其特征在于:在客户/服务器模式下,根据用户数据报协议(UDP)使用该可靠套接字接口的工作流程如下:
服务器端程序工作流程:
创建服务器端通信套接字描述符;
将创建的套接字描述符与服务器地址和端口绑定;
使服务器套接字描述符做好接收连接请求的准备;
给套接字描述符定义池名;
接收客户端发来的数据,或向客户端发送数据;
在服务器处理客户但请求,并与客户端进行交互的过程中,记录服务器实时运行状态到Cookie中;
如果客户端关闭,关闭套接字描述符;
客户端程序工作流程:
创建客户端套接字描述符
进行池名解析,而从获得服务器IP地址
连接建立后,向服务器发送数据,或从服务器接收数据
关闭连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210393632.XA CN103731291A (zh) | 2012-10-16 | 2012-10-16 | 一种网络服务器池系统数据传输结构及其程序开发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210393632.XA CN103731291A (zh) | 2012-10-16 | 2012-10-16 | 一种网络服务器池系统数据传输结构及其程序开发方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103731291A true CN103731291A (zh) | 2014-04-16 |
Family
ID=50455226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210393632.XA Pending CN103731291A (zh) | 2012-10-16 | 2012-10-16 | 一种网络服务器池系统数据传输结构及其程序开发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103731291A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015131762A1 (zh) * | 2014-09-28 | 2015-09-11 | 中兴通讯股份有限公司 | 一种数据传输方法和装置 |
CN107197005A (zh) * | 2017-05-12 | 2017-09-22 | 广州视源电子科技股份有限公司 | 数据传输的方法及装置、客户端、服务器及数据传输系统 |
CN107302588A (zh) * | 2017-07-25 | 2017-10-27 | 贵州眯果创意科技有限公司 | 一种基于Web的智能网络化电能监测控制系统 |
CN110022332A (zh) * | 2018-01-09 | 2019-07-16 | 武汉斗鱼网络科技有限公司 | 一种超文本传输安全协议代理方法、装置、设备及介质 |
CN110958238A (zh) * | 2019-11-26 | 2020-04-03 | 苏州贝捷环保设备有限公司 | 一种用于高效冷冻站的云平台处理系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070016221A (ko) * | 2005-08-02 | 2007-02-08 | (주)애니소프트 | 어플리케이션 레이어에서의 트래픽 스캐닝 |
KR20070073361A (ko) * | 2006-01-05 | 2007-07-10 | 주식회사 코드젠 | 듀얼엔진에서의 악성트래픽 스캐닝 |
US20100185725A1 (en) * | 2007-07-04 | 2010-07-22 | Gonzalo Camarillo | IP Link Establishment Across A Data Network |
CN102339234A (zh) * | 2011-07-12 | 2012-02-01 | 迈普通信技术股份有限公司 | 一种协议栈运行装置和方法 |
CN102437933A (zh) * | 2012-01-04 | 2012-05-02 | 无锡云捷科技有限公司 | 一种服务器故障容错系统及方法 |
-
2012
- 2012-10-16 CN CN201210393632.XA patent/CN103731291A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070016221A (ko) * | 2005-08-02 | 2007-02-08 | (주)애니소프트 | 어플리케이션 레이어에서의 트래픽 스캐닝 |
KR20070073361A (ko) * | 2006-01-05 | 2007-07-10 | 주식회사 코드젠 | 듀얼엔진에서의 악성트래픽 스캐닝 |
US20100185725A1 (en) * | 2007-07-04 | 2010-07-22 | Gonzalo Camarillo | IP Link Establishment Across A Data Network |
CN102339234A (zh) * | 2011-07-12 | 2012-02-01 | 迈普通信技术股份有限公司 | 一种协议栈运行装置和方法 |
CN102437933A (zh) * | 2012-01-04 | 2012-05-02 | 无锡云捷科技有限公司 | 一种服务器故障容错系统及方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015131762A1 (zh) * | 2014-09-28 | 2015-09-11 | 中兴通讯股份有限公司 | 一种数据传输方法和装置 |
CN105530713A (zh) * | 2014-09-28 | 2016-04-27 | 中兴通讯股份有限公司 | 一种基于多无线连接的数据传输方法和装置 |
CN105530713B (zh) * | 2014-09-28 | 2020-12-11 | 中兴通讯股份有限公司 | 一种基于多无线连接的数据传输方法和装置 |
CN107197005A (zh) * | 2017-05-12 | 2017-09-22 | 广州视源电子科技股份有限公司 | 数据传输的方法及装置、客户端、服务器及数据传输系统 |
CN107197005B (zh) * | 2017-05-12 | 2020-12-29 | 广州视源电子科技股份有限公司 | 数据传输的方法及装置、客户端、服务器及数据传输系统 |
CN107302588A (zh) * | 2017-07-25 | 2017-10-27 | 贵州眯果创意科技有限公司 | 一种基于Web的智能网络化电能监测控制系统 |
CN110022332A (zh) * | 2018-01-09 | 2019-07-16 | 武汉斗鱼网络科技有限公司 | 一种超文本传输安全协议代理方法、装置、设备及介质 |
CN110022332B (zh) * | 2018-01-09 | 2022-06-21 | 武汉斗鱼网络科技有限公司 | 一种超文本传输安全协议代理方法、装置、设备及介质 |
CN110958238A (zh) * | 2019-11-26 | 2020-04-03 | 苏州贝捷环保设备有限公司 | 一种用于高效冷冻站的云平台处理系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109451065B (zh) | 一种软负载均衡分流自动化系统及其运行方法 | |
CN105511805B (zh) | 集群文件系统的数据处理方法和装置 | |
US8909758B2 (en) | Physical server discovery and correlation | |
TWI383616B (zh) | 指派複數個媒體存取控制給複數個處理器的方法及系統 | |
CN204859222U (zh) | 同城数据中心双活高可用系统 | |
US20060271812A1 (en) | Systems and methods for providing redundant application servers | |
CN1921369B (zh) | 一种网络连接的接管方法 | |
CN104811476B (zh) | 一种面向应用服务的高可用部署实现方法 | |
CN104468151B (zh) | 一种集群切换时保持tcp会话的系统和方法 | |
CN103731291A (zh) | 一种网络服务器池系统数据传输结构及其程序开发方法 | |
CN105357266A (zh) | 适合多种场景的socket通信与进程管理通用平台及方法 | |
CN102255974A (zh) | 一种云计算服务器的云存储方法 | |
CN105897827A (zh) | 服务器节点、局域网服务器集群及其实现方法 | |
CN101605092A (zh) | 一种基于内容的负载均衡系统 | |
CN108429629A (zh) | 设备故障恢复方法和装置 | |
JP2014501424A (ja) | ブレードの物理的な位置に基づく自動化されたプロビジョニングおよび設定を可能にする統合型ソフトウェアおよびハードウェアシステム | |
CN101483540A (zh) | 一种高端数据通信设备中的主备倒换方法 | |
CN106911648B (zh) | 一种环境隔离方法及设备 | |
CN111949444A (zh) | 一种基于分布式服务集群的数据备份与恢复系统及方法 | |
CN103731290A (zh) | 一种服务器故障切换方法 | |
CN101777020A (zh) | 一种用于分布式程序的容错方法和系统 | |
CN104717077B (zh) | 一种管理数据中心的方法、装置及系统 | |
CN114301972A (zh) | 一种基于云边协同的区块链节点分级部署方法和系统 | |
CN103731287A (zh) | 一种故障接管服务器选择方法 | |
CN112256498A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140416 |