一种数据报文传输方法及相关设备、系统的制作方法

文档序号:7985037阅读:107来源:国知局
一种数据报文传输方法及相关设备、系统的制作方法
【专利摘要】本申请实施例涉及计算机网络领域,公开了一种数据报文传输方法及相关设备、系统,该方法通过对传统通信协议(如TCP)的握手过程进行优化,使得在握手过程中即可实现数据报文传输,数据报文传输不依赖于握手的完成,从而可以有效降低因为握手过程中存在RTT延时而导致的数据报文传输延时。
【专利说明】一种数据报文传输方法及相关设备、系统
【技术领域】
[0001]本申请涉及计算机网络领域,具体涉及一种数据报文传输方法及相关设备、系统。【背景技术】
[0002]如今,计算机网络日益得到越来越深入和广泛的应用,人们之间的沟通不再受到地域和距离的限制,但在跨越较长的距离后,网络的延时会明显加大,这种延时主要包括网络传输数据报文的延时、数据报文在传输设备(如路由器)上的排队等待及处理的延时等。其中,广域网(Wide Area Network,WAN)传输数据报文的延迟可能达到数十甚至上百毫秒。
[0003]在实际应用中,数据报文通常需要经过传输控制协议(Transport ControlProtocol, TCP)握手过程后才能开始传输。该TCP握手过程如图1所示,包括以下步骤:步骤I)、客户端发送携带有需要协商的传输参数的握手请求报文到服务器,其中,客户端发送的握手请求报文携带的需要协商的参数包括客户端发送报文的初始序列号(InitialSequence Number, ISN),最大报文大小(Maximum Segment Size,MSS)和客户端接收窗口大小等参数;步骤2)、服务器收到客户端的握手请求报文后,发送携带协商好的参数的握手响应报文给客户端,其中,服务器发送的握手响应报文携带的协商的参数包括服务器发送报文的ISN、最大报文大小MSS和服务器接收窗口大小等参数,其中,服务器发送的握手响应报文携带的协商好的参数SYN和ACK均设置为I,表示客户端发送的握手报文已被服务器接收到);步骤3)、客户端收到服务器的握手响应报文后发送确认响应报文(携带的ACK设置为1,表示客户端已收到服务器的握手响应报文)给服务器,从而完成TCP握手过程,客户端和服务器之间可以开始数据报文传输。
[0004]由以上描述可知,数据报文需要在TCP握手过程完成之后才能传输,而TCP握手过程中又存在一个报文在网络上往返一次所需时间(Round-Trip Time, RTT)的延时,RTT延时的存在会加剧数据报文传输延时。

【发明内容】

[0005]本申请实施例提供一种数据报文传输方法及相关设备、系统,能够有效降低数据报文传输延时。
[0006]本申请第一方面提供一种数据报文传输方法,包括:
[0007]第一终端接收第二终端发送的携带有所述第二终端地址和会话标识以及需要协商的参数的握手请求报文;
[0008]第一终端存储所述握手请求报文携带的所述第二终端地址和会话标识一并映射到第一终端某一会话标识的映射关系;其中,所述握手请求报文携带的所述第二终端会话标识与所述第一终端某一会话标识用于表征由经所述第二终端与所述第一终端的一条会话连接;
[0009]所述第一终端发送携带有所述第一终端某一会话标识以及协商好的参数的握手响应报文给所述第二终端,以使所述第二终端依据所述协商好的参数并通过所述第二终端会话标识与所述第一终端某一会话标识表征的会话连接传输数据报文给所述第一终端。
[0010]在本申请第一方面的第一种可能的实现方式中,所述方法还包括:
[0011]所述第一终端接收所述第二终端传输过来的数据报文,并查询是否已存储所述数据报文携带的所述第二终端地址和会话标识一并映射到所述第一终端某一会话标识的映身寸关系;
[0012]如果已存储,则所述第一终端将所述数据报文通过所述第二终端会话标识与所述第一终端某一会话标识表征的会话连接传输至上层设备进行处理。
[0013]结合本申请第一方面的第一种可能的实现方式,在本申请第一方面的第二种可能的实现方式中,所述方法还包括:
[0014]若查询未存储所述数据报文携带的所述第二终端地址和会话标识一并映射到所述第一终端某一会话标识的映射关系,则所述第一终端缓存所述第二终端传输过来的数据报文。
[0015]结合本申请第一方面,或本申请第一方面的第一种可能的实现方式,或本申请第一方面的第二种可能的实现方式,在本申请第一方面的第三种可能的实现方式中,所述方法还包括:
[0016]所述第一终端检测所述握手请求报文携带的所述第二终端地址和会话标识一并映射到第一终端某一会话标识的映射关系的存储时间是否超过预设的最长握手时间,如果超过,则删除存储时间超过预设的最长握手时间的所述握手请求报文携带的所述第二终端地址和会话标识一并映射到第一终端某一会话标识的映射关系。
[0017]本申请第二方面提供一种终端,包括:
[0018]第一接收单元,用于接收第二终端发送的携带有所述第二终端地址和会话标识以及需要协商的参数的握手请求报文;
[0019]存储单元,用于存储所述握手请求报文携带的所述第二终端地址和会话标识一并映射到本终端某一会话标识的映射关系;其中,所述握手请求报文携带的所述第二终端会话标识与本终端某一会话标识用于表征由经所述第二终端与本终端的一条会话连接;
[0020]发送单元,用于发送携带所述本终端某一会话标识以及协商好的参数的握手响应报文给所述第二终端,以使所述第二终端依据所述协商好的参数并通过所述第二终端会话标识与所述本终端某一会话标识表征的会话连接传输数据报文给本终端。
[0021]在本申请第二方面的第一种可能的实现方式中,所述终端还包括:
[0022]第二接收单元,用于接收所述第二终端传输过来的数据报文;
[0023]查询单元,用于查询所述存储单元是否已存储所述数据报文携带的所述第二终端地址和会话标识一并映射到所述本终端某一会话标识的映射关系;
[0024]所述发送单元,还用于在所述查询单元的查询结果为是时,将所述数据报文通过所述第二终端会话标识与所述第一终端某一会话标识表征的会话连接传输至上层设备进行处理。
[0025]结合本申请第二方面的第一种可能的实现方式,在本申请第二方面的第二种可能的实现方式中,所述存储单元,还用于在所述查询单元的查询结果为否时,缓存所述第二终端传输过来的数据报文。
[0026]结合本申请第二方面,或本申请第二方面的第一种可能的实现方式,或本申请第二方面的第二种可能的实现方式,在本申请第二方面的第三种可能的实现方式中,所述终端还包括:
[0027]检测单元,用于检测所述存储单元存储的所述握手请求报文携带的所述第二终端地址和会话标识一并映射到本终端某一会话标识的映射关系的存储时间是否超过预设的最长握手时间,如果超过,则删除存储时间超过预设的最长握手时间的所述握手请求报文携带的所述第二终端地址和会话标识一并映射到本终端某一会话标识的映射关系。
[0028]本申请第三方面提供一种终端,包括发射机、接收机、存储器以及分别与所述发射机、所述接收机和所述存储器连接的处理器;其中,所述存储器中存储一组程序代码,且所述处理器用于调用所述存储器中存储的程序代码,用于执行以下操作:
[0029]接收第二终端发送的携带有所述第二终端地址和会话标识以及需要协商的参数的握手请求报文;
[0030]存储所述握手请求报文携带的所述第二终端地址和会话标识一并映射到本终端某一会话标识的映射关系;其中,所述握手请求报文携带的所述第二终端会话标识与本终端某一会话标识用于表征由经所述第二终端与本终端的一条会话连接;
[0031]发送携带有所述本终端某一会话标识以及协商好的参数的握手响应报文给所述第二终端,以使所述第二终端依据所述协商好的参数并通过所述第二终端会话标识与所述本终端某一会话标识表征的会话连接传输数据报文给本终端。
[0032]在本申请第三方面的第一种可能的实现方式中,所述处理器还执行以下操作:
[0033]接收所述第二终端传输过来的数据报文,并查询是否已存储所述数据报文携带的所述第二终端地址和会话标识一并映射到所述本终端某一会话标识的映射关系;
[0034]如果已存储,则将所述数据报文通过所述第二终端会话标识与所述第一终端某一会话标识表征的会话连接传输至上层设备进行处理。
[0035]结合本申请第三方面的第一种可能的实现方式,在本申请第三方面的第二种可能的实现方式中,所述处理器还执行以下操作:
[0036]若查询未存储所述数据报文携带的所述第二终端地址和会话标识一并映射到所述本终端某一会话标识的映射关系,则缓存所述第二终端传输过来的数据报文。
[0037]结合本申请第三方面,或本申请第三方面的第一种可能的实现方式,或本申请第三方面的第二种可能的实现方式,在本申请第三方面的第三种可能的实现方式中,所述处理器还执行以下操作:
[0038]检测所述握手请求报文携带的所述第二终端地址和会话标识一并映射到本终端某一会话标识的映射关系的存储时间是否超过预设的最长握手时间,如果超过,则删除存储时间超过预设的最长握手时间的所述握手请求报文携带的所述第二终端地址和会话标识一并映射到本终端某一会话标识的映射关系。
[0039]本申请第四方面提供一种数据报文传输系统,包括第一终端和第二终端,其中:
[0040]所述第一终端,用于接收所述第二终端发送的携带有所述第二终端地址和会话标识以及需要协商的参数的握手请求报文,存储所述握手请求报文携带的所述第二终端地址和会话标识一并映射到第一终端某一会话标识的映射关系;其中,所述握手请求报文携带的所述第二终端会话标识与所述第一终端某一会话标识用于表征由经所述第二终端与所述第一终端的一条会话连接;以及发送携带有所述第一终端某一会话标识以及协商好的参数的握手响应报文给所述第二终端;以及接收所述第二终端通过所述第二终端会话标识与所述第一终端某一会话标识表征的会话连接传输过来的数据报文;
[0041]所述第二终端,用于发送携带有所述第二终端地址和会话标识以及需要协商的参数的握手请求报文给所述第一终端,以及接收所述第一终端发送的携带有所述第一终端某一会话标识以及协商好的参数的握手响应报文,以及依据所述协商好的参数并通过所述第二终端会话标识与所述第一终端某一会话标识表征的会话连接传输数据报文给所述第一终端。
[0042]在本申请第四方面的第一种可能的实现方式中,所述第二终端,还用于发送携带有所述第二终端地址和会话标识的数据报文给所述第一终端;
[0043]所述第一终端,还用于接收所述第二终端传输过来的数据报文,并查询是否存储有所述数据报文携带的所述第二终端地址和会话标识一并映射到的所述第一终端某一会话标识;如果存储有,则将所述数据报文通过所述第二终端会话标识与所述第一终端某一会话标识表征的会话连接传输至上层设备进行处理。
[0044]结合本申请第四方面的第一种可能的实现方式,在本申请第四方面的第二种可能的实现方式中,
[0045]所述第一终端还用于在查询未存储所述数据报文携带的所述第二终端地址和会话标识一并映射到所述第一终端某一会话标识时,缓存所述第二终端传输过来的数据报文。
[0046]结合本申请第四方面,或本申请第四方面的第一种可能的实现方式,或本申请第四方面的第二种可能的实现方式,在本申请第四方面的第三种可能的实现方式中,所述第一终端还用于检测所述握手请求报文携带的所述第二终端地址和会话标识一并映射到第一终端某一会话标识的映射关系的存储时间是否超过预设的最长握手时间,如果超过,则删除存储时间超过预设的最长握手时间的所述握手请求报文携带的所述第二终端地址和会话标识一并映射到第一终端某一会话标识的映射关系。
[0047]本申请实施例中,第一终端接收第二终端发送的携带有第二终端地址和会话标识以及需要协商的参数的握手请求报文时,存储该握手请求报文携带的第二终端地址和会话标识一并映射到第一终端某一会话标识的映射关系,由于该握手请求报文携带的第二终端会话标识与第一终端某一会话标识用于表征由经第二终端与第一终端的一条会话连接,这样第二终端在发送握手请求报文之后就可以开始通过该会话连接发送数据报文至第一终端,而无需在握手完成之后再开始传输数据报文。可见,本发明实施例通过对传统通信协议(如TCP)的握手过程进行优化,使得在握手过程中即可实现数据报文传输,数据报文传输不依赖于握手的完成,从而可以有效降低由于握手过程中存在RTT延时而导致的数据报文传输延时。
【专利附图】

【附图说明】
[0048]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。[0049]图1为现有TCP握手过程的示意图;
[0050]图2为本申请实施例提供的一种数据报文传输方法的流程图;
[0051]图3为本申请实施例提供的一种客户端访问数据中心的网络模型示意图;
[0052]图4为图3所示的网络模型的握手过程的示意图;
[0053]图5为采用无连接的UDP来实现Proxy I和Proxy 2间的握手优化过程中Proxy
I和Proxy 2间基于UDP的会话连接模型的示意图;
[0054]图6为采用无连接的UDP来实现Proxy I和Proxy 2间的握手优化过程中的报文乱序的不意图;
[0055]图7为本申请实施例提供的一种TCP握手优化过程示意图;
[0056]图8为本申请实施例提供的数据报文传输方法适用的一种组网场景;
[0057]图9为本申请实施例提供的数据报文传输方法适用的另一种组网场景;
[0058]图10为本申请实施例提供的一种终端的结构示意图;
[0059]图11为本申请实施例提供的另一种终端的结构示意图;
[0060]图12为本申请实施例提供的一种数据报文传输系统的结构示意图。
【具体实施方式】
[0061]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0062]本申请实施例提供一种数据报文传输方法及相关设备、系统,可以有效降低由于握手过程中存在RTT延时而导致的数据报文传输延时。以下分别进行详细说明。
[0063]请参阅图2,图2为本申请实施例提供的一种数据报文传输方法的流程图。如图2所示,该数据报文传输方法可以包括以下步骤。
[0064]201、第一终端接收第二终端发送的携带有第二终端地址和会话标识以及需要协商的参数的握手请求报文。
[0065]其中,第二终端发送的握手请求报文携带的需要协商的参数可以包括第二终端发送报文的ISN、MSS和接收窗口大小等参数。
[0066]202、第一终端存储握手请求报文携带的第二终端地址和会话标识一并映射到第一终端某一会话标识的映射关系;其中,握手请求报文携带的第二终端会话标识与第一终端某一会话标识用于表征由经第二终端与第一终端的一条会话连接。
[0067]其中,第一终端在接收到第二终端发送的携带有第二终端地址和会话标识以及需要协商的参数的握手请求报文后,可以新建一个由经第二终端与第一终端的会话连接,并且在第一终端上针对该会话分配第一终端某一会话标识,该第一终端某一会话标识与第二终端发送的握手请求报文携带的第二终端会话标识用于表征由经第二终端与第一终端的新建立的一条会话连接。
[0068]其中,第一终端新建一个由经第二终端与第一终端的会话连接的具体实现过程是领域技术人员所公知的常识,本申请实施例不作赘述。
[0069]203、第一终端发送携带第一终端某一会话标识以及协商好的参数的握手响应报文给第二终端,以使第二终端依据协商好的参数并通过第二终端会话标识与第一终端某一会话标识表征的会话连接传输数据报文给第一终端。
[0070]本申请实施例中,第一终端在执行步骤201之后(如在步骤201之后至步骤203之前),第一终端可以接收第二终端传输过来的数据报文,并查询是否已存储该数据报文携带的第二终端地址和会话标识一并映射到第一终端某一会话标识的映射关系,如果已存储,则第一终端可以将该数据报文通过第二终端会话标识与第一终端某一会话标识表征的会话连接传输至上层设备进行处理。
[0071]一个实施例中,如果第一终端查询未存储数据报文携带的第二终端地址和会话标识一并映射到第一终端某一会话标识的映射关系,那么第一终端可以先缓存第二终端传输过来的数据报文。
[0072]一个实施例中,第一终端可以检测握手请求报文携带的第二终端地址和会话标识一并映射到第一终端某一会话标识的映射关系的存储时间是否超过预设的最长握手时间,如果超过,则删除存储时间超过预设的最长握手时间的握手请求报文携带的第二终端地址和会话标识一并映射到第一终端某一会话标识的映射关系。
[0073]一个实施例中,第二终端收到第一终端的握手响应报文后可以发送确认响应报文(携带的ACK设置为1,表示第二终端已收到第一终端的握手响应报文)给第一终端,从而完成握手过程。
[0074]在图2所描述的数据报文传输方法中,通过对传统通信协议(如TCP)的握手过程进行优化,使得在握手过程中即可实现数据报文传输,数据报文传输不依赖于握手的完成,从而可以有效降低由于握手过程中存在RTT延时而导致的数据报文传输延时。
[0075]本申请提供的数据报文传输方法适用于网络延时较大,并且用户对实时性有一定要求的交互场景,例如,常见的跨越WAN、卫星链路等远距离交互场景,这种交互场景可以是服务器和服务器之间的交互,也可以是服务器和客户端之间的交互,也可以是客户端和客户端之间的交互。如图3所示,以客户端跨越WAN访问服务器为例,本申请适用于WAN的两端各部署一个代理(即图3中Proxy I和Proxy 2)的场景。在通常情况下,客户端(即Client rciient N)—侧可以部署代理(即Proxy 1),用于共享网络和进行安全以及权限控制等,而服务器(Server I?Server N) 一侧也可以部署代理(Proxy 2), Proxy 2也叫反向代理,用于服务器间的负载均衡以及安全控制等。其中,Proxy I和客户端(即ClientI?Client N) 一般处于同一个局域网(LAN I)中,而Proxy 2和服务器(Server I?ServerN) 一般处在同一个局域网(LAN 2)中。
[0076]其中,图3所示的网络模型的握手过程如图4所示,客户端和Proxy LProxy 2和服务器使用普通的TCP握手过程,而Proxy I和Proxy 2使用本申请的优化握手过程。即原来客户端到服务器的TCP握手过程分成三段:即客户端和Proxyl的TCP握手,Proxy I和Proxy 2的优化握手,Proxy 2和服务器的TCP握手。由于Proxy I和Proxy 2通过WAN连接,延时最大,因此通过对Proxy I和Proxy 2间的握手进行优化,使得Proxy I在发送握手请求报文给Proxy 2后,即可开始传输数据报文至Proxy 2,从而可以有效降低握手过程中因为RTT延时而导致数据报文传输延时,同时客户端和服务器仍使用标准TCP握手,保证了兼容性。Proxy I和Proxy 2间的优化握手可以采用无连接的用户数据报协议(UserDatagram Protocol, UDP)来实现,也可以采用面向连接的TCP来实现。[0077]在采用无连接的UDP来实现Proxy I和Proxy 2间的握手优化过程中,Proxyl和Proxy 2间基于UDP的会话连接模型如图5所示。其中,Proxy I上打开一个UDP端口(例如1991),Proxy 2上也打开一个UDP端口(例如1992,端口的选择可根据需要调整,也可以采用多对端口),由于UDP本身是无连接的,需要由应用层软件实现面向连接的功能。应用层软件在这一对UDP端口上可以建立多个会话连接,每个会话连接在Proxy I和Proxy 2上分别有一个会话标识(ID)用来表征该会话连接。如图5所示,对于Proxy I到Proxy 2的会话连接“连接3”,那么,可以采用Proxyl的会话ID “103”和Proxy 2的会话ID为“203”来表征“连接3”。如果Proxy I要通过“连接3”发送报文到Proxy 2,报文需要指示源端口号为1991 (即Proxy I的地址),目的端口号为1992,目的会话ID为203,这样Proxy 2就能在“连接3”上收到Proxy I的报文,从而可以将报文传输至上层设备(Server I^ServerN中的一个)进行处理。
[0078]基于以上描述,在采用无连接的UDP来实现Proxy I和Proxy 2间的握手优化过程中,数据报文传输过程包括如下步骤:
[0079]KProxy I 发起到 Proxy 2 的握手请求 Handshake Request 报文,携带 Proxyl 的地址(即1991端口)和会话ID (假设为IDl)以及ISN、MSS和接收窗口大小等需要协商的参数;其中,握手请求报文发送到Proxy 2的1992端口上。
[0080]2、Proxy I发送数据报文到Proxy 2,由于此时Proxy 2的会话还没有建立(或者已经建立但还没有通知到Proxy I),Proxy I把Proxy 2的会话ID填成无效值(如-1)。其中,数据报文携带的ISN,MSS均使用步骤I中的值,在连接还没有建立完成前,Proxy I发出报文大小累计不应超过自己默认接收窗口大小,以防止对端缓冲区溢出(此处认为Proxy
2的接收窗口和Proxy I的接口窗口大小相同)。
[0081]3>Proxy 2收到握手·请求报文后新建一个由经Proxy 2和Proxy I的会话连接,在Proxy 2为该会话分配一个会话ID为ID2,同时存储一个Proxy I的地址和会话ID (IDl)一并映射到Proxy 2的会话ID (ID2)的映射关系。
[0082]4、Proxy 2 发送握手响应 Handshake Response 报文给 Proxy I,携带有 Proxy 2的会话ID (ID2),协商好的MSS、Proxy 2的ISN以及接收窗口大小等参数。
[0083]5,Proxy 2收到Proxy I的数据报文后,发现数据报文携带的目的会话ID为无效值,则根据数据报文携带的Proxy I的地址和会话ID (IDl)查询是否存储有数据报文的Proxy I的地址和会话ID (IDl) 一并映射到的Proxy2的会话ID (ID2)的映射关系,如果存储有,则将该数据报文通过Proxy I的会话ID (IDl)和Proxy 2的会话ID (ID2)表征的会话连接传输至Proxy 2的服务器进行处理。
[0084]6,Proxy I收到握手响应报文后得到Proxy 2的会话ID (ID2)和Proxy2的ISN、MSS以及接收窗口大小等参数,握手过程完成。
[0085]7、Proxy I使用协商好的MSS、接收窗口大小等参数发送数据报文给Proxy 2,该数据报文的目的会话ID为ID2。
[0086]8、Proxy 2定期删除步骤3中存储时间超过最长握手时间的映射关系,以腾出更多空间来存储新的映射关系。
[0087]本申请实施例中,报文在网络中的不同路由会导致报文乱序,可能会出现数据报文先于握手请求报文到达Proxy 2的情况,如图6所示。本申请实施例中,对报文乱序的处理方法如下:
[0088]I)、如果Proxy 2先收到数据报文,此时Proxy 2上还没有会话,Proxy 2查询未存储数据报文携带的Proxy I的地址和会话ID (ID2) 一并映射到的Proxy 2的某一会话ID (IDl)的映射关系,Pr0Xy2可以先缓存数据报文,按照数据报文携带的Proxy I的地址和会话ID (ID2)进行缓存,同时按照缓存时间进行排序。
[0089]2)、Proxy 2在收到握手请求报文后新建一个会话,Proxy2查询该会话是否有缓存的数据报文,如果有,从缓存中取出处理。
[0090]3)、缓存的数据报文需要设定一个生存时间,超时没有被提取的数据报文需要及时释放,防止占用过多资源。
[0091]4)、如果Proxy I先收到Proxy 2传输的数据报文,虽然会话已经建立,但是没有Proxy 2上对应会话的信息,如ISN等,Proxy I也无法对数据报文进行正常处理,也需要进行缓存,处理机制同Proxy 2。
[0092]在采用TCP来实现Proxy I和Proxy 2间的握手优化过程中,需要对TCP握手过程进行以下几处修改,以实现在TCP握手过程中开始数据报文传输,其中,修改后的握手优化过程如图7所示,即:
[0093]I)、客户端发送完握手请求报文后,不用等到整个握手过程结束。就使用这个会话连接发送数据报文了。此时,客户端还没有收到服务器的握手响应报文,没有服务器发送报文的ISN等信息,客户端不能接收来自服务器的数据报文。(事实上,此时服务器上会话连接还没有建立起来,服务器不会发送数据报文到客户端)。
[0094]2)、服务器收到握手请求报文后新建一个会话连接,并发送携带服务器的会话ID的握手响应报文(ISN, ACK)`给客户端,然后服务器就可以接收和发送数据报文了。
[0095]3)、客户端收到服务器的握手响应报文后,获得服务器发送报文的ISN等信息,可以正确处理来自服务器的数据报文了。
[0096]本申请实施例中,客户端发送报文时,其连接状态可能还是ISN_SENT,需要修改TCP的处理,使得TCP连接在ISN_SENT状态下也可以收发数据报文。而服务器接收、发送报文时,其连接状态可能还是ISN_RECV,需要修改TCP的处理,使得TCP连接在ISN_RECV状态下服务器也可以收发数据报文。
[0097]本申请实施例中,在采用TCP来实现Proxy I和Proxy 2间的握手优化过程中,也可能出现报文乱序,其处理方法与采用UDP来实现Proxy I和Proxy 2间的握手优化过程中出现的报文乱序的处理方法相同,本申请实施例不作赘述。
[0098]本申请提供的数据报文传输方法也适用于图8所示的组网场景。在图8所示的组网场景中,根据用户的业务流量和成本的考虑,Proxy I可以不是物理服务器,可以作为组件的方式安装在客户端(Client I^Client N)上,当然Proxy 2也可以不是物理服务器,也可以作为组件的方式安装在服务器(ServerfServerN)上。如图8所示,Proxy I以组件方式安装在终端用户的计算机上(例如作为一个浏览器插件,或者单独运行的进程),此时不再需要专门的物理服务器运行Proxy I。
[0099]本申请提供的数据报文传输方法也适用于图9所示的组网场景。在图9所示的组网场景中,Proxy I可以作为虚拟机的方式和客户端(Client ClientN)运行在相同的物理主机(包括硬件Hardware和OS)上,此时不再需要专门的物理服务器运行Proxyl。当然,Proxy 2也可以作为虚拟机的方式和服务器(Server 1^Server N)运行在相同的物理主机上,此时不再需要专门的物理服务器运行Proxy2。
[0100]可见,本申请实施例提供的数据报文传输方法通过对传统通信协议(如TCP)的握手过程进行优化,使得在握手过程中即可实现数据报文传输,数据报文传输不依赖于握手的完成,从而可以有效降低由于握手过程中存在RTT延时而导致的数据报文传输延时。实践表明,当数据报文的传送量较小时,相比TCP,可以减少50%的延时。在网络延时大的场景中使用本申请实施例提供的数据报文传输方法时,其效果更加明显。
[0101]请参阅图10,图10为本申请实施例提供的一种终端的结构示意图。如图10所示,该终端包括:
[0102]第一接收单元101,用于接收第二终端发送的携带有第二终端地址和会话ID以及需要协商的参数的握手请求报文;
[0103]存储单元102,用于存储握手请求报文携带的第二终端地址和会话ID —并映射到本终端某一会话ID的映射关系;其中,该握手请求报文携带的第二终端的会话ID与本终端某一会话ID用于表征由经第二终端与本终端的一条会话连接;
[0104]发送单元103,用于发送携带有本终端某一会话ID以及协商好的参数的握手响应报文给第二终端,以使第二终端依据协商好的参数并通过第二终端会话ID与本终端某一会话ID表征的会话连接传输数据报文给本终端。
[0105]一个实施例中,图10所示的终端还包括:
[0106]第二接收单元104,用于接收第二终端传输过来的数据报文;
[0107]查询单元105,用于查询存储单元102是否存储有该数据报文携带的第二终端的地址和会话ID —并映射到的本终端某一会话ID的映射关系;
[0108]上述发送单元103还用于在查询单元105的查询结果为是时,将该数据报文通过第二终端会话标识与本终端某一会话标识表征的会话连接传输至上层设备进行处理。
[0109]一种实施例中,存储单元102还用于在查询单元105的查询结果为否时,缓存第二终端传输过来的数据报文。
[0110]—种实施例中,图10所示的终端还包括:
[0111]检测单元106,用于检测存储单元102存储的握手请求报文携带的第二终端地址和会话ID—并映射到本终端某一会话ID的映射关系的存储时间是否超过预设的最长握手时间,如果超过,则删除存储时间超过预设的最长握手时间的握手请求报文携带的第二终端地址和会话ID —并映射到本终端某一会话ID的映射关系。
[0112]可见,图10提供的终端通过对传统通信协议(如TCP)的握手过程进行优化,使得在握手过程中即可实现数据报文传输,数据报文传输不依赖于握手的完成,从而可以有效降低由于握手过程中存在RTT延时而导致的数据报文传输延时。
[0113]请参阅图11,图11为本申请实施例提供的另一种终端的结构示意图。如图11所示,该终端包括发射机111、接收机112、存储器113以及分别与发射机111、接收机112和存储器113连接(如通过总线连接)的处理器114 ;其中,存储器113中存储一组程序代码,且处理器114用于调用存储器113中存储的程序代码,用于执行以下操作:
[0114]接收第二终端发送的携带有第二终端地址和会话ID以及需要协商的参数的握手请求报文;[0115]存储该握手请求报文携带的第二终端地址和会话ID —并映射到本终端某一会话ID的映射关系;其中,该握手请求报文携带的第二终端的会话ID与本终端某一会话ID用于表征由经第二终端与本终端的一条会话连接;
[0116]发送携带有本终端某一会话ID以及协商好的参数的握手响应报文给第二终端,以使第二终端依据协商好的参数并通过第二终端会话ID与本终端某一会话ID表征的会话连接传输数据报文给本终端。
[0117]一个实施例中,处理器114还执行以下操作:
[0118]接收第二终端传输过来的数据报文,并查询是否存储有该数据报文携带的第二终端地址和会话ID —并映射到本终端某一会话ID的映射关系;
[0119]如果已存储,则将该数据报文通过第二终端会话标识与所述本终端某一会话标识表征的会话连接传输至上层设备进行处理。
[0120]一个实施例中,处理器114还执行以下操作:
[0121]若查询未存储数据报文携带的第二终端地址和会话ID —并映射到本终端某一会话标识的映射关系,则缓存所述第二终端传输过来的数据报文。
[0122]一个实施例中,处理器114还执行以下操作:
[0123]检测握手请求报文携带的第二终端地址和会话ID —并映射到本终端某一会话标识的映射关系的存储时间是否超过预设的最长握手时间,如果超过,则删除存储时间超过预设的最长握手时间的握手请求报文携带的第二终端地址和会话ID —并映射到本终端某一会话ID的映射关系。
[0124]可见,图11提供的终端通过对传统通信协议(如TCP)的握手过程进行优化,使得在握手过程中即可实现数据报文传输,数据报文传输不依赖于握手的完成,从而可以有效降低由于握手过程中存在RTT延时而导致的数据报文传输延时。
[0125]请参阅图12,图12为本申请实施例提供的一种数据报文传输系统的结构示意图。如图12所示,该系统包括第一终端121和第二终端122,其中,虚线表示无线连接,其中:
[0126]第一终端121,用于接收第二终端122发送的携带有第二终端122地址和会话ID以及需要协商的参数的握手请求报文,存储该握手请求报文携带的第二终端122地址和会话ID—并映射到第一终端121某一会话ID的映射关系;其中,该握手请求报文携带的第二终端122会话ID与第一终端121某一会话ID用于表征由经第二终端122与第一终端121的一条会话连接;以及发送携带有第一终端121某一会话ID以及协商好的参数的握手响应报文给第二终端122 ;以及接收第二终端122通过第二终端122会话ID与第一终端121某一会话ID表征的会话连接传输过来的数据报文。
[0127]第二终端122,用于发送携带有第二终端122地址和会话ID以及需要协商的参数的握手请求报文给第一终端121,以及接收第一终端121发送的携带有第一终端121某一会话ID以及协商好的参数的握手响应报文,以及依据协商好的参数并通过第二终端121会话ID与第一终端121某一会话ID表征的会话连接传输数据报文给第一终端121。
[0128]一个实施例中,第二终端还用于发送携带有第二终端122地址和会话ID的数据报文给第一终端121 ;第一终端121还用于接收第二终端122传输过来的数据报文,并查询是否存储有该数据报文携带的第二终端122地址和会话ID —并映射到第一终端121某一会话ID的映射关系;如果存储有,则将该数据报文通过第二终端122会话ID与第一终端121某一会话ID表征的会话连接传输至上层设备进行处理。
[0129]一个实施例中,第一终端121还用于在查询未存储数据报文携带的第二终端122地址和会话ID —并映射到第一终端121某一会话ID的映射关系时,缓存第二终端122传输过来的数据报文。
[0130]一个实施例中,第一终端121还用于检测握手请求报文携带的第二终端122地址和会话ID —并映射到第一终端121某一会话ID的映射关系的存储时间是否超过预设的最长握手时间,如果超过,则删除存储时间超过预设的最长握手时间的握手请求报文携带的第二终端122地址和会话ID —并映射到第一终端121某一会话ID的映射关系。
[0131]可见,图12提供的数据报文传输系统通过对传统通信协议(如TCP)的握手过程进行优化,使得在握手过程中即可实现数据报文传输,数据报文传输不依赖于握手的完成,从而可以有效降低由于握手过程中存在RTT延时而导致的数据报文传输延时。
[0132]本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random AccessMemory, RAM)、磁盘或光盘等。
[0133]以上,对本申请实施例所提供的数据报文传输方法及相关设备、系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
【权利要求】
1.一种数据报文传输方法,其特征在于,包括: 第一终端接收第二终端发送的携带有所述第二终端地址和会话标识以及需要协商的参数的握手请求报文; 第一终端存储所述握手请求报文携带的所述第二终端地址和会话标识一并映射到第一终端某一会话标识的映射关系;其中,所述握手请求报文携带的所述第二终端会话标识与所述第一终端某一会话标识用于表征由经所述第二终端与所述第一终端的一条会话连接; 所述第一终端发送携带有所述第一终端某一会话标识以及协商好的参数的握手响应报文给所述第二终端,以使所述第二终端依据所述协商好的参数并通过所述第二终端会话标识与所述第一终端某一会话标识表征的会话连接传输数据报文给所述第一终端。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 所述第一终端接收所述第二终端传输过来的数据报文,并查询是否已存储所述数据报文携带的所述第二终端地址和会话标识一并映射到所述第一终端某一会话标识的映射关系; 如果已存储,则所述第一终端将所述数据报文通过所述第二终端会话标识与所述第一终端某一会话标识表征的会话连接传输至上层设备进行处理。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括: 若查询未存储所述数据报文携带的所述第二终端地址和会话标识一并映射到所述第一终端某一会话标识的映射关系,则所述第一终端缓存所述第二终端传输过来的数据报文。`
4.根据权利要求1、2或3所述的方法,其特征在于,所述方法还包括: 所述第一终端检测所述握手请求报文携带的所述第二终端地址和会话标识一并映射到第一终端某一会话标识的映射关系的存储时间是否超过预设的最长握手时间,如果超过,则删除存储时间超过预设的最长握手时间的所述握手请求报文携带的所述第二终端地址和会话标识一并映射到第一终端某一会话标识的映射关系。
5.一种终端,其特征在于,包括: 第一接收单元,用于接收第二终端发送的携带有所述第二终端地址和会话标识以及需要协商的参数的握手请求报文; 存储单元,用于存储所述握手请求报文携带的所述第二终端地址和会话标识一并映射到本终端某一会话标识的映射关系;其中,所述握手请求报文携带的所述第二终端会话标识与本终端某一会话标识用于表征由经所述第二终端与本终端的一条会话连接; 发送单元,用于发送携带所述本终端某一会话标识以及协商好的参数的握手响应报文给所述第二终端,以使所述第二终端依据所述协商好的参数并通过所述第二终端会话标识与所述本终端某一会话标识表征的会话连接传输数据报文给本终端。
6.根据权利要求5所述的终端,其特征在于,还包括: 第二接收单元,用于接收所述第二终端传输过来的数据报文; 查询单元,用于查询所述存储单元是否已存储所述数据报文携带的所述第二终端地址和会话标识一并映射到所述本终端某一会话标识的映射关系; 所述发送单元,还用于在所述查询单元的查询结果为是时,将所述数据报文通过所述第二终端会话标识与所述本终端某一会话标识表征的会话连接传输至上层设备进行处理。
7.根据权利要求6所述的终端,其特征在于, 所述存储单元,还用于在所述查询单元的查询结果为否时,缓存所述第二终端传输过来的数据报文。
8.根据权利要求5、6或7所述的终端,其特征在于,还包括: 检测单元,用于检测所述存储单元存储的所述握手请求报文携带的所述第二终端地址和会话标识一并映射到本终端某一会话标识的映射关系的存储时间是否超过预设的最长握手时间,如果超过,则删除存储时间超过预设的最长握手时间的所述握手请求报文携带的所述第二终端地址和会话标识一并映射到本终端某一会话标识的映射关系。
9.一种终端,其特征在于,包括发射机、接收机、存储器以及分别与所述发射机、所述接收机和所述存储器连接的处理器;其中,所述存储器中存储一组程序代码,且所述处理器用于调用所述存储器中存储的程序代码,用于执行以下操作: 接收第二终端发送的携带有所述第二终端地址和会话标识以及需要协商的参数的握手请求报文; 存储所述握手请求报文携带的所述第二终端地址和会话标识一并映射到本终端某一会话标识的映射关系;其中,所述握手请求报文携带的所述第二终端会话标识与本终端某一会话标识用于表征由经所述第二终端与本终端的一条会话连接; 发送携带有所述本终端某一会话标识以及协商好的参数的握手响应报文给所述第二终端,以使所述第二终端依据所述协商好的参数并通过所述第二终端会话标识与所述本终端某一会话标识表征的会话连接传输数据报文给本终端。
10.根据权利要求9所述的终端,其特征在于,所述处理器还执行以下操作: 接收所述第二终端传输过来的数据报文,并查询是否已存储所述数据报文携带的所述第二终端地址和会话标识一并映射到所述本终端某一会话标识的映射关系; 如果已存储,则将所述数据报文通过所述第二终端会话标识与所述本终端某一会话标识表征的会话连接传输至上层设备进行处理。
11.根据权利要求10所述的终端,其特征在于,所述处理器还执行以下操作:若查询未存储所述数据报文携带的所述第二终端地址和会话标识一并映射到所述本终端某一会话标识的映射关系,则缓存所述第二终端传输过来的数据报文。
12.根据权利要求9、10或11所述的终端,其特征在于,所述处理器还执行以下操作: 检测所述握手请求报文携带的所述第二终端地址和会话标识一并映射到本终端某一会话标识的映射关系的存储时间是否超过预设的最长握手时间,如果超过,则删除存储时间超过预设的最长握手时间的所述握手请求报文携带的所述第二终端地址和会话标识一并映射到本终端某一会话标识的映射关系。
13.一种数据报文传输系统,其特征在于,包括第一终端和第二终端,其中: 所述第一终端,用于接收所述第二终端发送的携带有所述第二终端地址和会话标识以及需要协商的参数的握手请求报文,存储所述握手请求报文携带的所述第二终端地址和会话标识一并映射到第一终端某一会话标识的映射关系;其中,所述握手请求报文携带的所述第二终端会话标识与所述第一终端某一会话标识用于表征由经所述第二终端与所述第一终端的一条会话连接;以及发送携带有所述第一终端某一会话标识以及协商好的参数的握手响应报文给所述第二终端;以及接收所述第二终端通过所述第二终端会话标识与所述第一终端某一会话标识表征的会话连接传输过来的数据报文; 所述第二终端,用于发送携带有所述第二终端地址和会话标识以及需要协商的参数的握手请求报文给所述第一终端,以及接收所述第一终端发送的携带有所述第一终端某一会话标识以及协商好的参数的握手响应报文,以及依据所述协商好的参数并通过所述第二终端会话标识与所述第一终端某一会话标识表征的会话连接传输数据报文给所述第一终端。
14.根据权利要求13所述的系统,其特征在于, 所述第二终端,还用于发送携带有所述第二终端地址和会话标识的数据报文给所述第一终端; 所述第一终端,还用于接收所述第二终端传输过来的数据报文,并查询是否存储有所述数据报文携带的所述第二终端地址和会话标识一并映射到的所述第一终端某一会话标识;如果存储有,则将所述数据报文通过所述第二终端会话标识与所述第一终端某一会话标识表征的会话连接传输至上层设备进行处理。
15.根据权利要求14所述的系统,其特征在于, 所述第一终端还用于在查询未存储所述数据报文携带的所述第二终端地址和会话标识一并映射到所述第一终端某一会话标识时,缓存所述第二终端传输过来的数据报文。
16.根据权利要求13、14或15所述的系统,其特征在于, 所述第一终端还用于检测所述握手请求报文携带的所述第二终端地址和会话标识一并映射到第一终端某一会话标识的映射关系的存储时间是否超过预设的最长握手时间,如果超过,则删除存储时间超过预设的最长握手时间的所述握手请求报文携带的所述第二终端地址和会话标识一并映射到第一终端某一会话标识的映射关系。
【文档编号】H04L12/741GK103795632SQ201210427670
【公开日】2014年5月14日 申请日期:2012年10月31日 优先权日:2012年10月31日
【发明者】段可博, 肖文曙, 王姝 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1