CN103841139B - 传输数据的方法、装置和系统 - Google Patents
传输数据的方法、装置和系统 Download PDFInfo
- Publication number
- CN103841139B CN103841139B CN201210479168.6A CN201210479168A CN103841139B CN 103841139 B CN103841139 B CN 103841139B CN 201210479168 A CN201210479168 A CN 201210479168A CN 103841139 B CN103841139 B CN 103841139B
- Authority
- CN
- China
- Prior art keywords
- data
- client
- request
- access server
- server
- 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.)
- Active
Links
Abstract
本发明公开了一种传输数据的方法、装置和系统,属于互联网技术领域。所述方法包括:接入服务器接收客户端的数据请求,所述数据请求中携带第一序列号;所述接入服务器将所述数据请求中的第一序列号修改为第二序列号;所述接入服务器将所述修改后的数据请求转发给指定的后台服务器。本发明中接入服务器在接收到数据包后只需修改序列号就可转发数据,无需交由用户态进程处理,提高了系统的处理效率,从而提高海量数据服务的质量。
Description
技术领域
本发明涉及互联网技术领域,特别涉及一种传输数据的方法、装置和系统。
背景技术
随着互联网中各种应用的不断发展,产生了海量的传输数据。例如,随着微博用户的不断增加,催生出海量的微博数据,仅仅靠一台服务器很难满足现有海量数据的服务,所以需要在后台设置多个服务器,但是怎样实现大量的客户端和后台多个服务器的数据传输,是需要解决的问题。
现有技术中,在后端服务器和客户端之间部署代理服务器,通过代理服务器实现客户端和后台服务器之间的数据传输。其中,代理服务器自身具有公网IP,因而对客户端可见。客户端向代理服务器发起数据请求,代理服务器接收到数据请求后,将数据发送到用户态进程处理,用户态进程将处理后的数据再返回给代理服务器,代理服务器再发起对后端服务器的请求,最后将后台服务端返回的数据转发给客户端。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
1)客户端对后端服务器不透明。后端服务器看到请求都来自代理服务器。
2)并发度不高。对于同一个后端服务来说,现有技术的方案可同时可处理的请求取决于代理服务器可用端口,根据TCP/IP协议,可用端口总是低于65535,所以该方案的数据并发度不高。
3)实现复杂,效率低下。代理服务器接收到客户端的数据后需要将该数据发送到用户态进程进行处理,其中的处理过程实现复杂,效率低下,接入服务器需要与客户端及后台服务器分别建立连接,需要多次内存复制,需要大量的CPU、内存资源。
发明内容
为了解决现有技术中的问题,本发明实施例提供了一种传输数据的方法、装置和系统。所述技术方案如下:
一方面,提供了一种传输数据的方法,所述方法包括:
接入服务器接收客户端的数据请求,所述数据请求中携带第一序列号;
所述接入服务器将所述数据请求中的第一序列号修改为第二序列号;
所述接入服务器将所述修改后的数据请求转发给指定的后台服务器。
所述接入服务器接收客户端的数据请求之前,还包括:
接入服务器接收客户端的握手请求,与所述客户端建立连接。
所述接入服务器接收客户端的握手请求,与所述客户端建立连接,包括:
接入服务器接收客户端的握手请求,所述握手请求中携带所述客户端支持与使用的第一协议参数,所述第一协议参数包括所述客户端使用的端口号和数据序列号;
所述接入服务器记录所述客户端支持与使用的协议参数,并向所述客户端返回第一握手回复,以与所述客户端建立连接,其中,所述第一握手回复中携带所述接入服务器支持与使用的第二协议参数,所述第二协议参数中包括所述接入服务器随机生成的第一序列号。
所述接入服务器接收客户端的数据请求之后,还包括:
所述接入服务器根据所述数据请求选择与所述客户端进行数据传输的指定的后台服务器,并与所述指定的后台服务器建立连接。
所述接入服务器根据所述数据请求选择与所述客户端进行数据传输的指定的后台服务器,包括:
所述接入服务器解析所述数据请求中的应用层信息,根据所述应用层信息选择与所述客户端进行数据传输的指定的后台服务器。
所述接入服务器与所述指定的后台服务器建立连接,包括:
所述接入服务器根据所述记录的所述客户端支持与使用的协议参数,向所述指定的后台服务器发起所述握手请求,使所述指定的后台服务器根据所述握手请求获知所述客户端支持与使用的第一协议参数并向所述接入服务器返回第二握手回复,以与所述接入服务器建立连接,其中,所述第二握手回复中携带所述指定的后台服务器支持与使用的第三协议参数,所述第三协议参数中包括所述指定的后台服务器随机生成的第二序列号。
所述接入服务器将所述修改后的数据请求转发给指定的后台服务器之后,还包括:
所述接入服务器接收所述指定的后台服务器返回的数据接收响应,所述数据接收响应中携带所述第二序列号和所述后台服务器已发送的数据的长度;
所述接入服务器将所述数据接收响应中的第二序列号修改为所述第一序列号,并将所述修改后的数据接收响应转发给所述客户端。
另一方面,提供了一种接入服务器,所述服务器包括:
接收模块,用于接收客户端的数据请求,所述数据请求中携带第一序列号;
修改模块,用于将所述数据请求中的第一序列号修改为第二序列号;
转发模块,用于将所述修改后的数据请求转发给指定的后台服务器。
所述服务器还包括:
第一连接模块,用于在所述接收模块接收客户端的数据请求之前,接收客户端的握手请求,与所述客户端建立连接。
所述第一连接模块具体用于:
接收客户端的握手请求,所述握手请求中携带所述客户端支持与使用的第一协议参数,所述第一协议参数包括所述客户端使用的端口号和数据序列号;记录所述客户端支持与使用的协议参数,并向所述客户端返回第一握手回复,以与所述客户端建立连接,其中,所述第一握手回复中携带接入服务器支持与使用的第二协议参数,所述第二协议参数中包括所述接入服务器随机生成的第一序列号。
所述服务器还包括:
第二连接模块,用于在所述接收模块接收客户端的数据请求之后,根据所述数据请求选择与所述客户端进行数据传输的指定的后台服务器,并与所述指定的后台服务器建立连接。
所述第二连接模块,包括:
选择单元,用于解析所述数据请求中的应用层信息,根据所述应用层信息选择与所述客户端进行数据传输的指定的后台服务器。
所述第二连接模块,包括:
连接单元,用于根据所述记录的所述客户端支持与使用的协议参数,向所述指定的后台服务器发起所述握手请求,使所述指定的后台服务器根据所述握手请求获知所述客户端支持与使用的第一协议参数并向所述接入服务器返回第二握手回复,以与所述接入服务器建立连接,其中,所述第二握手回复中携带所述指定的后台服务器支持与使用的第三协议参数,所述第三协议参数中包括所述指定的后台服务器随机生成的第二序列号。
所述接收模块还用于在所述转发模块将所述修改后的数据请求转发给指定的后台服务器之后,接收所述指定的后台服务器返回的数据接收响应,所述数据接收响应中携带所述第二序列号和所述后台服务器已发送的数据的长度。
另一方面,还提供了一种传输数据的系统,所述系统包括:接入服务器、客户端和指定的后台服务器;
所述客户端,用于向所述接入服务器发起数据请求,所述数据请求中携带第一序列号;
所述接入服务器,用于接收所述客户端的数据请求,将所述数据请求中的第一序列号修改为第二序列号,并将所述修改后的数据请求转发给所述指定的后台服务器。
所述接入服务器,还用于在接收客户端的数据请求之前,接收客户端的握手请求,与所述客户端建立连接。
所述接入服务器接收客户端的握手请求,与所述客户端建立连接,包括:
所述接入服务器接收客户端的握手请求,所述握手请求中携带所述客户端支持与使用的第一协议参数,所述第一协议参数包括所述客户端使用的端口号和数据序列号;记录所述客户端支持与使用的协议参数,并向所述客户端返回第一握手回复,以与所述客户端建立连接,其中,所述第一握手回复中携带所述接入服务器支持与使用的第二协议参数,所述第二协议参数中包括所述接入服务器随机生成的第一序列号。
所述接入服务器,还用于在接收客户端的数据请求之后,所述接入服务器根据所述数据请求选择与所述客户端进行数据传输的指定的后台服务器,并与所述指定的后台服务器建立连接。
所述接入服务器根据所述数据请求选择与所述客户端进行数据传输的指定的后台服务器,包括:
所述接入服务器解析所述数据请求中的应用层信息,根据所述应用层信息选择与所述客户端进行数据传输的指定的后台服务器。
所述接入服务器与所述指定的后台服务器建立连接,包括:
所述接入服务器根据所述记录的所述客户端支持与使用的协议参数,向所述指定的后台服务器发起所述握手请求,使所述指定的后台服务器根据所述握手请求获知所述客户端支持与使用的第一协议参数并向所述接入服务器返回第二握手回复,以与所述接入服务器建立连接,其中,所述第二握手回复中携带所述指定的后台服务器支持与使用的第三协议参数,所述第三协议参数中包括所述指定的后台服务器随机生成的第二序列号。
所述接入服务器在将所述修改后的数据请求转发给指定的后台服务器之后,接收所述指定的后台服务器返回的数据接收响应,所述数据接收响应中携带所述第二序列号和所述后台服务器已发送的数据的长度;将所述数据接收响应中的第二序列号修改为所述第一序列号,并将所述修改后的数据接收响应转发给所述客户端。
本发明实施例提供的技术方案带来的有益效果是:接入服务器接收客户端的数据请求,所述数据请求中携带第一序列号;所述接入服务器将所述数据请求中的第一序列号修改为第二序列号;所述接入服务器将所述修改后的数据请求转发给指定的后台服务器。接入服务器在接收到数据包后只需修改序列号就可转发数据,无需交由用户态进程处理,提高了系统的处理效率,从而提高海量数据服务的质量。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一中提供的一种传输数据的系统的示意图;
图2是本发明实施例二中提供的一种传输数据的方法流程图;
图3是本发明实施例三中提供的一种传输数据的方法流程图;
图4是本发明实施例四中提供的一种接入服务器的结构示意图;
图5是本发明实施例四中提供的另一种接入服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
TCP协议规定,需要通信的设备在向另一个设备发送数据时,需要为自己发送的每一字节的数据都打上顺序的编号,将这个顺序的编号称之为序列号,在另一个设备在收到对方的数据后,通过确认序列号告诉对方自己收到了哪些数据。
实施例一
参见图1,本实施例中提供了一种传输数据的系统,包括:接入服务器101、客户端102和指定的后台服务器103;
所述客户端102,用于向所述接入服务器发起数据请求,所述数据请求中携带第一序列号;
所述接入服务器101,用于接收所述客户端的数据请求,将所述数据请求中的第一序列号修改为第二序列号,并将所述修改后的数据请求转发给所述指定的后台服务器103。
其中,所述接入服务器101,还用于在接收客户端的数据请求之前,接收客户端的握手请求,与所述客户端建立连接。
所述接入服务器接收客户端的握手请求,与所述客户端建立连接,包括:
所述接入服务器接收客户端的握手请求,所述握手请求中携带所述客户端支持与使用的第一协议参数,所述第一协议参数包括所述客户端使用的端口号和数据序列号;记录所述客户端支持与使用的协议参数,并向所述客户端返回第一握手回复,以与所述客户端建立连接,其中,所述第一握手回复中携带所述接入服务器支持与使用的第二协议参数,所述第二协议参数中包括所述接入服务器随机生成的第一序列号。
其中,所述接入服务器101接收客户端的数据请求之后,还包括:
所述接入服务器根据所述数据请求选择与所述客户端进行数据传输的指定的后台服务器,并与所述指定的后台服务器建立连接。
其中,所述接入服务器101根据所述数据请求选择与所述客户端进行数据传输的指定的后台服务器,包括:
所述接入服务器101解析所述数据请求中的应用层信息,根据所述应用层信息选择与所述客户端进行数据传输的指定的后台服务器。
本实施例中,所述接入服务器与所述指定的后台服务器建立连接,包括:
所述接入服务器101根据所述应用层信息选择指定的后台服务器;根据所述记录的所述客户端支持与使用的协议参数,向所述指定的后台服务器发起所述握手请求,使所述指定的后台服务器根据所述握手请求获知所述客户端支持与使用的第一协议参数并向所述接入服务器返回第二握手回复,以与所述接入服务器建立连接,其中,所述第二握手回复中携带所述指定的后台服务器支持与使用的第三协议参数,所述第三协议参数中包括所述指定的后台服务器随机生成的第二序列号。
进一步地,所述接入服务器101,还用于在将所述修改后的数据请求转发给指定的后台服务器之后,接收所述指定的后台服务器返回的数据接收响应,所述数据接收响应中携带所述第二序列号和所述后台服务器已发送的数据的长度;将所述数据接收响应中的第二序列号修改为所述第一序列号,并将所述修改后的数据接收响应转发给所述客户端。
本实施例的有益效果是:接入服务器接收客户端的数据请求,所述数据请求中携带第一序列号;所述接入服务器将所述数据请求中的第一序列号修改为第二序列号;所述接入服务器将所述修改后的数据请求转发给指定的后台服务器。接入服务器在接收到数据包后只需修改序列号就可转发数据,无需交由用户态进程处理,提高了系统的处理效率,从而提高海量数据服务的质量。
实施例二
本实施例基于实施例一中的传输数据的系统,提供了一种传输数据的方法,参见图2,方法流程包括:
201、接入服务器接收客户端的数据请求,所述数据请求中携带第一序列号;
202、所述接入服务器将所述数据请求中的第一序列号修改为第二序列号;
203、所述接入服务器将所述修改后的数据请求转发给指定的后台服务器。
其中,所述接入服务器接收客户端的数据请求之前,还包括:
接入服务器接收客户端的握手请求,与所述客户端建立连接。
具体的,所述接入服务器接收客户端的握手请求,与所述客户端建立连接,包括:
接入服务器接收客户端的握手请求,所述握手请求中携带所述客户端支持与使用的第一协议参数,所述第一协议参数包括所述客户端使用的端口号和数据序列号;
所述接入服务器记录所述客户端支持与使用的协议参数,并向所述客户端返回第一握手回复,以与所述客户端建立连接,其中,所述第一握手回复中携带所述接入服务器支持与使用的第二协议参数,所述第二协议参数中包括所述接入服务器随机生成的第一序列号。
其中,所述接入服务器接收客户端的数据请求之后,还包括:
所述接入服务器根据所述数据请求选择与所述客户端进行数据传输的指定的后台服务器,并与所述指定的后台服务器建立连接。
本实施例中,所述接入服务器根据所述数据请求选择与所述客户端进行数据传输的指定的后台服务器,包括:
所述接入服务器解析所述数据请求中的应用层信息,根据所述应用层信息选择与所述客户端进行数据传输的指定的后台服务器。
具体的,所述接入服务器与所述指定的后台服务器建立连接,包括:
所述接入服务器根据所述记录的所述客户端支持与使用的协议参数,向所述指定的后台服务器发起所述握手请求,使所述指定的后台服务器根据所述握手请求获知所述客户端支持与使用的第一协议参数并向所述接入服务器返回第二握手回复,以与所述接入服务器建立连接,其中,所述第二握手回复中携带所述指定的后台服务器支持与使用的第三协议参数,所述第三协议参数中包括所述指定的后台服务器随机生成的第二序列号。
进一步地,所述接入服务器将所述修改后的数据请求转发给指定的后台服务器之后,还包括:
所述接入服务器接收所述指定的后台服务器返回的数据接收响应,所述数据接收响应中携带所述第二序列号和所述后台服务器已发送的数据的长度;
所述接入服务器将所述数据接收响应中的第二序列号修改为所述第一序列号,并将所述修改后的数据接收响应转发给所述客户端。
本实施例的有益效果是:接入服务器接收客户端的数据请求,所述数据请求中携带第一序列号;所述接入服务器将所述数据请求中的第一序列号修改为第二序列号;所述接入服务器将所述修改后的数据请求转发给指定的后台服务器。接入服务器在接收到数据包后只需修改序列号就可转发数据,无需交由用户态进程处理,提高了系统的处理效率,从而提高海量数据服务的质量。
实施例三
本发明实施例基于实施例一中的传输数据的系统,提供了一种传输数据的方法,参见图3,方法流程包括:
301、客户端向接入服务器发起握手请求。
本步骤中,在客户端需要和后台服务器传输数据时,通过接入服务器的转发和后台服务器进行数据的传输,所以需要先和接入服务器建立数据传输通道。具体的,客户端向接入服务器发起握手请求,其中,握手请求中携带所述客户端支持与使用的第一协议参数,所述第一协议参数包括但不限于所述客户端使用的端口号和数据序列号等。
在本步骤中,客户端通过向接入服务器发起连接握手向对端宣告自己支持与使用的协议参数,包括使用端口、数据序列号。
302、接入服务器的握手代理接收客户端的握手请求,与所述客户端建立连接。
本实施例中,接入服务器中的握手代理接收到用户握手请求后,将协议协商内容记录起来,其中协议协商内容包括客户端支持与使用的协议参数,并向客户端发送一个握手回复。其中,所述第一握手回复中携带所述接入服务器支持与使用的第二协议参数,所述第二协议参数中包括所述接入服务器随机生成的第一序列号。
在本步骤中,接入服务器通过向客户端返回握手回复请求向客户端宣告自己支持与使用的协议参数,包括接入服务器生成的随机的第一序列号X。
值得说明的是,步骤301-302具体执行的是接入服务器接收客户端的握手请求,与所述客户端建立连接的过程。其中该步骤是在客户端未与接入服务器建立连接时需要执行的步骤,在实际执行过程中,如果客户端与接入服务器已建立了连接,则不需要再需要重复执行该步骤。
303、客户端向接入服务器发起数据请求。
本实施例中,在客户端收到接入服务器代理的握手包后,认为握手已完成,发起数据请求。其中数据请求中携带第一序列号,客户端会通过确认第一序列号告诉接入服务器自己收到了编号为X的数据。
304、接入服务器选择指定的后台服务器,并向所述指定的后台服务器发起所述握手请求。
本步骤中,接入服务器在接收到客户端的数据请求后,在多个后台服务器中,选择一台指定的服务器为客户端服务。具体的,所述接入服务器根据所述数据请求选择与所述客户端进行数据传输的指定的后台服务器,包括:所述接入服务器解析所述数据请求中的应用层信息,根据所述应用层信息选择与所述客户端进行数据传输的指定的后台服务器。其中应用层信息包括:http协议中的域名、cookie等。本实施例中,根据应用层信息选择指定的后台服务器,以对后台服务器进行调度。
本步骤中,在接入服务器选择好指定的后台服务器后,根据所述记录的所述客户端支持与使用的协议参数,向指定的后端服务发起握手请求,这个请求里携带的数据与步骤301中客户端发起的请求是完全一致的,包括客户端支持与使用的端口和数据序列号,这样就使得指定的后台服务器接收到握手请求后认为该请求是客户端发起的。
305、指定的后台服务器根据握手请求获知客户端支持与使用的第一协议参数并向接入服务器返回第二握手回复,以与所述接入服务器建立连接。
本步骤中,指定的后台服务器根据握手请求获知客户端支持与使用的第一协议参数并向接入服务器返回第二握手回复,指定的后端服务器接收到握手请求,认为是来自客户端的请求,向接入服务器回复第二握手请求。其中,所述第二握手回复中携带所述指定的后台服务器支持与使用的第三协议参数,所述第三协议参数中包括所述指定的后台服务器随机生成的第二序列号。
在本步骤中,后端服务器通过回复握手请求向接入服务器宣告自己使用的协议参数,包括指定的后端服务器生成的随机的第二序列号Y,这个序列号与接入服务器生成的X并不一致。
值得说明的是,步骤304-306具体执行的是接入服务器根据所述数据请求选择与所述客户端进行数据传输的指定的后台服务器,并与所述指定的后台服务器建立连接的过程,该步骤是在接入服务器未与指定的后台服务器建立连接时需要执行的步骤,在实际执行过程中,如果接入服务器未与指定的后台服务器已建立了连接,则不需要再需要重复执行该步骤。
306、接入服务器将所述数据请求中的X修改为Y,并将所述修改后的数据请求转发给指定的后台服务器。
本实施例中,指定的后台服务器回复的第二握手回复会回到接入服务器,触发接入服务器将之前收到的来自客户端的请求数据转发给指定的后端服务器。
其中,数据请求中携带的确认序列号是X,但指定的后端服务器并没有发出过编号为X的数据,所以需要接入服务器将确认序列号改为指定的后台服务器返回的确认序列号Y,接入服务器通过序列号Y告诉指定的后端服务器自己收到了编号为Y的数据。
307、指定的后台服务器在接收到接入服务器转发的数据请求后返回数据接收响应。
本步骤中,后台服务器收到请求后,返回回复数据,即数据接收响应。回复数据的编号从Y+1开始。
308、接入服务器接到来自指定的服务器的数据后,将数据序列号从Y+1改为X+1。
由于在之前与客户端的协商中,接入服务器已与客户端约定好数据是从X开始传输的,所以接入服务器接到来自指定的服务器的数据后,将数据序列号从Y+1改为X+1。
309、客户端接收接入服务器转发的指定的后太服务器发送的数据。
进一步地,在以后的数据转发中,接入服务器收到来自客户端的数据,数据里的确认序列号为X+N,N为客户端确认已收到的数据长度,接入服务器将X+N改成Y+N然后转发给指定的后台服务器。而在另一个方向上,接入服务器收到来自指定的后台服务器的数据,数据的数据序列号为Y+M,M为后端服务器已发送的数据长度,接入服务器将Y+N改成X+M然后转发给客户端。
本实施例中,客户端的数据通过接入服务器在客户端与后台服务器间进行交互,后台服务器与接入服务器走内网,故使得后台服务器自身可以没有公网IP地址而能对用户提供服务。
另一方面,本实施例中的连接是由客户端IP地址,客户端端口,应用服务器IP地址,应用服务器端口和协议字来唯一确定,其中客户端IP地址,客户端口均可变,所以接入服务器同时可处理的请求与接入服务器可用端口无关,可以任意扩展,进一步提高了系统的效率。
本实施例的有益效果是:接入服务器接收客户端的数据请求,所述数据请求中携带第一序列号;所述接入服务器将所述数据请求中的第一序列号修改为第二序列号;所述接入服务器将所述修改后的数据请求转发给指定的后台服务器。接入服务器在接收到数据包后只需修改序列号就可转发数据,无需交由用户态进程处理,提高了系统的处理效率,从而提高海量数据服务的质量。且,虽然经过接入服务器的转发,后端服务器还是认为请求是来自客户端的,从而前端客户端对后台服务器是透明的,便于后台服务器对客户端的安全控制和审计。且,接入服务器同时可处理的请求与接入服务器可用端口无关,可以任意扩展,进一步提高了系统的效率。
实施例四
参见图4,本实施例中提供了一种接入服务器,所述服务器包括:接收模块401,修改模块402和转发模块403。
接收模块401,用于接收客户端的数据请求,所述数据请求中携带第一序列号;
修改模块402,用于将所述数据请求中的第一序列号修改为第二序列号;
转发模块403,用于将所述修改后的数据请求转发给指定的后台服务器。
其中,参见图5,所述服务器还包括:
第一连接模块404,用于在所述接收模块401接收客户端的数据请求之前,接收客户端的握手请求,与所述客户端建立连接。
其中,所述第一连接模块404具体用于:接收客户端的握手请求,所述握手请求中携带所述客户端支持与使用的第一协议参数,所述第一协议参数包括所述客户端使用的端口号和数据序列号;记录所述客户端支持与使用的协议参数,并向所述客户端返回第一握手回复,以与所述客户端建立连接,其中,所述第一握手回复中携带接入服务器支持与使用的第二协议参数,所述第二协议参数中包括所述接入服务器随机生成的第一序列号。
其中,参见图5,所述服务器还包括:
第二连接模块405,用于在所述接收模块401接收客户端的数据请求之后,根据所述数据请求选择与所述客户端进行数据传输的指定的后台服务器,并与所述指定的后台服务器建立连接。
进一步地,所述第二连接模块405,包括:
选择单元,用于解析所述数据请求中的应用层信息,根据所述应用层信息选择与所述客户端进行数据传输的指定的后台服务器。
其中,所述第二连接模块405还包括:
连接单元,用于根据所述应用层信息选择指定的后台服务器;根据所述记录的所述客户端支持与使用的协议参数,向所述指定的后台服务器发起所述握手请求,使所述指定的后台服务器根据所述握手请求获知所述客户端支持与使用的第一协议参数并向所述接入服务器返回第二握手回复,以与所述接入服务器建立连接,其中,所述第二握手回复中携带所述指定的后台服务器支持与使用的第三协议参数,所述第三协议参数中包括所述指定的后台服务器随机生成的第二序列号。
进一步地,所述接收模块401还用于在所述转发模块将所述修改后的数据请求转发给指定的后台服务器之后,接收所述指定的后台服务器返回的数据接收响应,所述数据接收响应中携带所述第二序列号和所述后台服务器已发送的数据的长度。
本实施例的有益效果是:接入服务器接收客户端的数据请求,所述数据请求中携带第一序列号;所述接入服务器将所述数据请求中的第一序列号修改为第二序列号;所述接入服务器将所述修改后的数据请求转发给指定的后台服务器。接入服务器在接收到数据包后只需修改序列号就可转发数据,无需交由用户态进程处理,提高了系统的处理效率,从而提高海量数据服务的质量。
需要说明的是:上述实施例中提供的接入服务器和传输数据的系统,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
另外,上述实施例提供的接入服务器、传输数据的系统与传输数据的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (15)
1.一种传输数据的方法,其特征在于,所述方法包括:
接入服务器接收客户端的握手请求,所述握手请求中携带所述客户端支持与使用的第一协议参数,所述第一协议参数包括所述客户端使用的端口号和数据序列号;
所述接入服务器记录所述客户端支持与使用的协议参数,并向所述客户端返回第一握手回复,以与所述客户端建立连接,其中,所述第一握手回复中携带所述接入服务器支持与使用的第二协议参数,所述第二协议参数中包括所述接入服务器随机生成的第一序列号;
所述接入服务器接收客户端的数据请求,所述数据请求中携带第一序列号;
所述接入服务器将所述数据请求中的第一序列号修改为第二序列号;
所述接入服务器将所述修改后的数据请求转发给指定的后台服务器。
2.根据权利要求1所述的方法,其特征在于,所述接入服务器接收客户端的数据请求之后,还包括:
所述接入服务器根据所述数据请求选择与所述客户端进行数据传输的指定的后台服务器,并与所述指定的后台服务器建立连接。
3.根据权利要求2所述的方法,其特征在于,所述接入服务器根据所述数据请求选择与所述客户端进行数据传输的指定的后台服务器,包括:
所述接入服务器解析所述数据请求中的应用层信息,根据所述应用层信息选择与所述客户端进行数据传输的指定的后台服务器。
4.根据权利要求2所述的方法,其特征在于,所述接入服务器与所述指定的后台服务器建立连接,包括:
所述接入服务器根据所述记录的所述客户端支持与使用的协议参数,向所述指定的后台服务器发起所述握手请求,使所述指定的后台服务器根据所述握手请求获知所述客户端支持与使用的第一协议参数并向所述接入服务器返回第二握手回复,以与所述接入服务器建立连接,其中,所述第二握手回复中携带所述指定的后台服务器支持与使用的第三协议参数,所述第三协议参数中包括所述指定的后台服务器随机生成的第二序列号。
5.根据权利要求1所述的方法,其特征在于,所述接入服务器将所述修改后的数据请求转发给指定的后台服务器之后,还包括:
所述接入服务器接收所述指定的后台服务器返回的数据接收响应,所述数据接收响应中携带所述第二序列号和所述后台服务器已发送的数据的长度;
所述接入服务器将所述数据接收响应中的第二序列号修改为所述第一序列号,并将所述修改后的数据接收响应转发给所述客户端。
6.一种接入服务器,其特征在于,所述服务器包括:
第一连接模块,用于接收客户端的握手请求,所述握手请求中携带所述客户端支持与使用的第一协议参数,所述第一协议参数包括所述客户端使用的端口号和数据序列号;记录所述客户端支持与使用的协议参数,并向所述客户端返回第一握手回复,以与所述客户端建立连接,其中,所述第一握手回复中携带接入服务器支持与使用的第二协议参数,所述第二协议参数中包括所述接入服务器随机生成的第一序列号;
接收模块,用于接收客户端的数据请求,所述数据请求中携带第一序列号;
修改模块,用于将所述数据请求中的第一序列号修改为第二序列号;
转发模块,用于将所述修改后的数据请求转发给指定的后台服务器。
7.根据权利要求6所述的服务器,其特征在于,所述服务器还包括:
第二连接模块,用于在所述接收模块接收客户端的数据请求之后,根据所述数据请求选择与所述客户端进行数据传输的指定的后台服务器,并与所述指定的后台服务器建立连接。
8.根据权利要求7所述的服务器,其特征在于,所述第二连接模块,包括:
选择单元,用于解析所述数据请求中的应用层信息,根据所述应用层信息选择与所述客户端进行数据传输的指定的后台服务器。
9.根据权利要求7所述的服务器,其特征在于,所述第二连接模块,包括:
连接单元,用于根据所述记录的所述客户端支持与使用的协议参数,向所述指定的后台服务器发起所述握手请求,使所述指定的后台服务器根据所述握手请求获知所述客户端支持与使用的第一协议参数并向所述接入服务器返回第二握手回复,以与所述接入服务器建立连接,其中,所述第二握手回复中携带所述指定的后台服务器支持与使用的第三协议参数,所述第三协议参数中包括所述指定的后台服务器随机生成的第二序列号。
10.根据权利要求6所述的服务器,其特征在于,
所述接收模块还用于在所述转发模块将所述修改后的数据请求转发给指定的后台服务器之后,接收所述指定的后台服务器返回的数据接收响应,所述数据接收响应中携带所述第二序列号和所述后台服务器已发送的数据的长度。
11.一种传输数据的系统,其特征在于,所述系统包括:接入服务器、客户端和指定的后台服务器;
所述接入服务器,用于接收客户端的握手请求,所述握手请求中携带所述客户端支持与使用的第一协议参数,所述第一协议参数包括所述客户端使用的端口号和数据序列号;记录所述客户端支持与使用的协议参数,并向所述客户端返回第一握手回复,以与所述客户端建立连接,其中,所述第一握手回复中携带所述接入服务器支持与使用的第二协议参数,所述第二协议参数中包括所述接入服务器随机生成的第一序列号;
所述客户端,用于向所述接入服务器发起数据请求,所述数据请求中携带第一序列号;
所述接入服务器,用于接收所述客户端的数据请求,将所述数据请求中的第一序列号修改为第二序列号,并将所述修改后的数据请求转发给所述指定的后台服务器。
12.根据权利要求11所述的系统,其特征在于,所述接入服务器接收客户端的数据请求之后,还包括:
所述接入服务器根据所述数据请求选择与所述客户端进行数据传输的指定的后台服务器,并与所述指定的后台服务器建立连接。
13.根据权利要求12所述的系统,其特征在于,所述接入服务器根据所述数据请求选择与所述客户端进行数据传输的指定的后台服务器,包括:
所述接入服务器解析所述数据请求中的应用层信息,根据所述应用层信息选择与所述客户端进行数据传输的指定的后台服务器。
14.根据权利要求12所述的系统,其特征在于,所述接入服务器与所述指定的后台服务器建立连接,包括:
所述接入服务器根据所述记录的所述客户端支持与使用的协议参数,向所述指定的后台服务器发起所述握手请求,使所述指定的后台服务器根据所述握手请求获知所述客户端支持与使用的第一协议参数并向所述接入服务器返回第二握手回复,以与所述接入服务器建立连接,其中,所述第二握手回复中携带所述指定的后台服务器支持与使用的第三协议参数,所述第三协议参数中包括所述指定的后台服务器随机生成的第二序列号。
15.根据权利要求11所述的系统,其特征在于,
所述接入服务器在将所述修改后的数据请求转发给指定的后台服务器之后,接收所述指定的后台服务器返回的数据接收响应,所述数据接收响应中携带所述第二序列号和所述后台服务器已发送的数据的长度;将所述数据接收响应中的第二序列号修改为所述第一序列号,并将所述修改后的数据接收响应转发给所述客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210479168.6A CN103841139B (zh) | 2012-11-22 | 2012-11-22 | 传输数据的方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210479168.6A CN103841139B (zh) | 2012-11-22 | 2012-11-22 | 传输数据的方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103841139A CN103841139A (zh) | 2014-06-04 |
CN103841139B true CN103841139B (zh) | 2018-02-02 |
Family
ID=50804268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210479168.6A Active CN103841139B (zh) | 2012-11-22 | 2012-11-22 | 传输数据的方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103841139B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104361847B (zh) * | 2014-11-10 | 2018-08-21 | 江苏梦之音科技有限公司 | 一种通过音频进行互动的广告播放系统以及方法 |
CN106686026A (zh) * | 2015-11-06 | 2017-05-17 | 中兴通讯股份有限公司 | 一种通信方法及装置 |
CN108881140A (zh) * | 2017-10-31 | 2018-11-23 | 北京视联动力国际信息技术有限公司 | 一种基于视联网的文件下载方法及装置 |
CN115277808A (zh) * | 2022-07-29 | 2022-11-01 | 中国银行股份有限公司 | 一种设备管理方法和相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1512377A (zh) * | 2002-12-31 | 2004-07-14 | 联想(北京)有限公司 | 基于内核中套接字对接的第七层负载均衡的方法 |
CN101252591A (zh) * | 2008-04-03 | 2008-08-27 | 中国科学技术大学 | 实现上下行数据分离的方法和装置 |
CN101286978A (zh) * | 2008-05-22 | 2008-10-15 | 上海交通大学 | 语义完整的tcp连接隔离与控制方法和系统 |
CN101296238A (zh) * | 2008-06-17 | 2008-10-29 | 杭州华三通信技术有限公司 | 一种保持安全套接层会话持续性的方法及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8291258B2 (en) * | 2010-01-08 | 2012-10-16 | Juniper Networks, Inc. | High availability for network security devices |
-
2012
- 2012-11-22 CN CN201210479168.6A patent/CN103841139B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1512377A (zh) * | 2002-12-31 | 2004-07-14 | 联想(北京)有限公司 | 基于内核中套接字对接的第七层负载均衡的方法 |
CN101252591A (zh) * | 2008-04-03 | 2008-08-27 | 中国科学技术大学 | 实现上下行数据分离的方法和装置 |
CN101286978A (zh) * | 2008-05-22 | 2008-10-15 | 上海交通大学 | 语义完整的tcp连接隔离与控制方法和系统 |
CN101296238A (zh) * | 2008-06-17 | 2008-10-29 | 杭州华三通信技术有限公司 | 一种保持安全套接层会话持续性的方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103841139A (zh) | 2014-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104270379B (zh) | 基于传输控制协议的https 代理转发方法及装置 | |
CN103841139B (zh) | 传输数据的方法、装置和系统 | |
CN108200165B (zh) | 请求传输系统、方法、装置及存储介质 | |
CN106790420B (zh) | 一种多会话通道建立方法和系统 | |
CN107483609B (zh) | 一种网络访问方法、相关设备和系统 | |
CN103547342B (zh) | 消息发送方法、消息阅读通知方法、消息接收方法及装置 | |
CN102833253A (zh) | 建立客户端与服务器安全连接的方法及服务器 | |
CN101843079A (zh) | 传输对潜在配置的选择 | |
CN103547339B (zh) | 一种文件上传方法、客户端和服务端 | |
CN111786867B (zh) | 一种数据传输方法及服务器 | |
CN104518968B (zh) | 一种报文处理的方法和透明代理服务器 | |
CN108429682A (zh) | 一种网络传输链路的优化方法及系统 | |
CN110324437A (zh) | 一种原始地址传输方法、系统、存储介质和处理器 | |
CN110891079A (zh) | 文件分发方法、源服务器、节点服务器及文件分发系统 | |
CN109561010A (zh) | 一种报文处理方法、电子设备及可读存储介质 | |
CN105072212B (zh) | 对码方法与对码系统 | |
CN102427452B (zh) | 同步报文发送方法、装置和网络设备 | |
CN104184565B (zh) | 一种处理重传信息的方法及装置 | |
JP2004096726A (ja) | 点対点、点対多点のインターネット接続を行なう方法 | |
JP2014057149A (ja) | 通信装置、中継装置および通信方法 | |
CN109150844A (zh) | 确定数字证书的方法、装置和系统 | |
CN103533048A (zh) | 一种bt网络中热门种子文件获取方法 | |
CN108989486A (zh) | 一种通信方法及通信系统 | |
CN109067922A (zh) | 一种数据传输方法及装置 | |
CN104917790A (zh) | 一种基于p2p的数据传输方法、装置和系统 |
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 |