一种头域还原系统、方法及相关设备技术方案

技术编号:32650693 阅读:15 留言:0更新日期:2022-03-17 10:56
本申请实施例公开了一种头域还原系统、方法及相关设备,其中,一种头域还原方法可以应用于解析节点,该方法包括:接收客户端或者服务端发送的第一动态索引表以及所述第一动态索引表对应的关联信息;所述第一动态索引表指示多个头域和多个索引值的映射关系;所述关联信息用于指示与所述第一动态索引表对应的流,或者,所述关联信息用于指示与所述第一动态索引表对应的第一时间;根据所述关联信息获取对应于第一消息的P个索引值;所述第一消息承载于所述第一动态索引表对应的流的N1个消息,所述第一动态索引表对应的流传输于所述客户端与所述服务端之间;根据所述第一动态索引表,得到所述P个索引值各自对应的头域。得到所述P个索引值各自对应的头域。得到所述P个索引值各自对应的头域。

【技术实现步骤摘要】
一种头域还原系统、方法及相关设备


[0001]本申请涉及头域还原
,尤其涉及一种头域还原系统、方法及相关设备。

技术介绍

[0002]超文本传输协议(HyperText Transfer Protocol,HTTP)基于传输控制协议(Transmission Control Protocol,TCP)连接传输,例如当一个客户端与服务端建立了TCP连接后,该客户端可能会在短时间内发送多个HTTP请求到服务端。在以往的HTTP/1.1中(请参阅RFC7230),HTTP请求内的头域字段未被压缩,随着网页数量增长到需要数十到数百个请求,这些请求的头域字段中存在的大量重复信息将会不必要地占用客户端与服务端的通信带宽,同时增加延迟。因此在HTTP/2.0中(请参阅RFC7540),定义了HTTP/2.0传输过程中使用HPACK机制以压缩重复的头域字段。该机制通过索引表在发送端将各个头部信息映射为索引值后进行传输。发送端(比如客户端)和接收端(比如服务端)维护一致的索引表,接收端基于该索引表将收到的头域索引值还原为对应的头域,最终可以达到减少传输数据量,减少网络传输的带宽以及减少时延的效果。
[0003]其中,头域映射用的索引表分为静态索引表和动态索引表。静态索引表在RFC7541中已经明确定义,固定的索引值对应固定的头域字符串。而动态索引表则是从客户端与服务端建立TCP连接至连接终止的过程中,通过双方新消息的发送同步指定新的头域字符串和新的索引值相关联。显然,动态索引表在客户端与服务端的TCP连接过程中处于时刻变化的状态,并且只有客户端和服务端才存在全量的动态索引表。因此,网络中间节点在仅获取客户端与服务端之间传输的部分消息的情况下,无法得知当前动态索引表内的索引值与头域的映射关系,从而难以还原被压缩的头域。例如,在采用微服务化(Service Based Architecture,SBA)架构的第五代移动通信技术(5th Generation wireless systems,5G)核心网中,所有上层的信令传输均基于HTTP/2.0长连接传输,并且在该场景下的网络运维过程中对于获取HTTP/2.0消息的头域有一定的需求。然而,在实际网络运维过程中,某个时间点只能获取到HTTP/2.0长连接的中间段数据,从而无法准确还原头域,则无法进一步准确还原传输的HTTP/2.0消息,导致网络运维存在极大风险。
[0004]因此,如何在基于HPACK机制压缩头域的情况下,将压缩后的头域进行准确、高效的还原,从而得到完整的HTTP/2.0消息是亟待解决的问题。

技术实现思路

[0005]本申请实施例提供一种头域还原系统、方法及相关设备,可以实现头域的准确、高效还原。
[0006]第一方面,本申请实施例提供了一种头域还原系统,包括解析节点、客户端和服务端;
[0007]所述客户端或者所述服务端,用于向所述解析节点发送第一动态索引表以及所述第一动态索引表对应的关联信息;所述第一动态索引表指示多个头域和多个索引值的映射
关系;所述关联信息用于指示与所述第一动态索引表对应的流,或者,所述关联信息用于指示与所述第一动态索引表对应的第一时间;
[0008]所述解析节点,用于根据所述关联信息获取对应于第一消息的P个索引值;所述第一消息承载于所述第一动态索引表对应的流的N1个数据包,所述第一动态索引表对应的流传输于所述客户端与所述服务端之间;P为大于或者等于1的整数,N1为大于或者等于1的整数;
[0009]所述解析节点,还用于根据所述第一动态索引表,得到所述P个索引值各自对应的头域。
[0010]应理解,数据包是TCP/IP协议通信传输中的数据单位。数据包位于开放式通信系统互联参考模型(Open System Interconnection,OSI)的第三层(网络层)。而消息则处于上层,例如为应用层,发送方在发送消息时可以根据消息的长度将消息拆分成多个数据包来进行传输,该多个数据包相当于是消息的载荷。本申请涉及的客户端或者服务端发送的每一个HTTP/2.0请求消息或者响应消息均可以承载于一个或多个数据包,也即客户端或者服务端之间传输的一些控制指令等也可以视为数据,包含在数据包中。
[0011]在一种可能的实现方式中,所述关联信息包括第一流标识ID以及指示信息,所述指示信息指示所述第一流ID为与所述第一动态索引表对应的流的ID,或者所述指示信息指示第二流ID为与所述第一动态索引表对应的流的ID,所述第二流ID指示所述客户端与所述服务器之间,在所述第一流ID指示的流之后,传输的下一个流。
[0012]在一种可能的实现方式中,所述关联信息用于指示与所述第一动态索引表对应的第一时间;所述第一时间为所述第一动态索引表的生成时间;所述解析节点,具体用于:
[0013]获取属于所述第一消息的N1个数据包;所述N1个数据包中的至少一个数据包被所述解析节点获取的时间与所述第一时间的差值小于第一阈值;N1为大于或者等于1的整数;
[0014]获取所述N1个数据包携带的所述P个索引值。
[0015]所述第一消息还包括Q个头域,Q为大于或者等于1的整数;所述解析节点、所述客户端或所述服务端,还用于:
[0016]根据获取的所述Q个头域,更新所述第一动态索引表,以得到第二动态索引表;所述第二动态索引表包括更新的至少一个头域和至少一个索引值的映射关系。
[0017]其中,上述第一方面中的实施细节以及有益效果可参见下述第二方面中的描述,此处不再进行赘述。
[0018]第二方面,本申请实施例提供了一种头域还原方法,应用于解析节点,包括:接收客户端或者服务端发送的第一动态索引表以及所述第一动态索引表对应的关联信息;所述第一动态索引表指示多个头域和多个索引值的映射关系;所述关联信息用于指示与所述第一动态索引表对应的流,或者,所述关联信息用于指示与所述第一动态索引表对应的第一时间;根据所述关联信息获取对应于第一消息的P个索引值;所述第一消息承载于所述第一动态索引表对应的流的N1个数据包,所述第一动态索引表对应的流传输于所述客户端与所述服务端之间;P为大于或者等于1的整数,N1为大于或者等于1的整数;根据所述第一动态索引表,得到所述P个索引值各自对应的头域。
[0019]通过第二方面提供的方法,当解析节点想要解析两个设备(例如为客户端和服务端)连接过程中传输的消息(例如为HTTP/2.0消息)时,往往需要还原每个消息中包括的被
压缩成索引值的完整头域或者部分头域。现有技术中,解析节点只能通过从这两个设备建立连接一开始便持续抓取连接过程中传输的全部消息的数据包来与这两个设备同步建立并更新动态索引表,以还原连接过程中不断传输的消息中的头域。然而,一旦漏抓包,解析节点便无法知晓漏抓的消息中是否有新的头域,动态索引表是否已更新,也即无法得知当前动态索引表内的索引值与头域的映射关系,从而无法进行头域还原,导致还原效率低,准确率低。本申请中,解析节点可以在连接传输数据的过程本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种头域还原系统,其特征在于,包括解析节点、客户端和服务端;所述客户端或者所述服务端,用于向所述解析节点发送第一动态索引表以及所述第一动态索引表对应的关联信息;所述第一动态索引表指示多个头域和多个索引值的映射关系;所述关联信息用于指示与所述第一动态索引表对应的流,或者,所述关联信息用于指示与所述第一动态索引表对应的第一时间;所述解析节点,用于根据所述关联信息获取对应于第一消息的P个索引值;所述第一消息承载于所述第一动态索引表对应的流的N1个数据包,所述第一动态索引表对应的流传输于所述客户端与所述服务端之间;P为大于或者等于1的整数,N1为大于或者等于1的整数;所述解析节点,还用于根据所述第一动态索引表,得到所述P个索引值各自对应的头域。2.根据权利要求1所述的系统,其特征在于,所述关联信息包括第一流标识ID以及指示信息,所述指示信息指示所述第一流ID为与所述第一动态索引表对应的流的ID,或者所述指示信息指示第二流ID为与所述第一动态索引表对应的流的ID,所述第二流ID指示所述客户端与所述服务器之间,在所述第一流ID指示的流之后,传输的下一个流。3.根据权利要求1所述的系统,其特征在于,所述关联信息用于指示与所述第一动态索引表对应的第一时间;所述第一时间为所述第一动态索引表的生成时间;所述解析节点,具体用于:获取所述第一消息承载于的所述N1个数据包;所述N1个数据包中的至少一个数据包被所述解析节点获取的时间与所述第一时间的差值小于第一阈值;获取对应于所述N1个数据包的所述P个索引值。4.根据权利要求1-3任意一项所述的系统,其特征在于,所述第一消息还包括Q个头域,Q为大于或者等于1的整数;所述解析节点、所述客户端或所述服务端,还用于:根据获取的所述Q个头域,更新所述第一动态索引表,以得到第二动态索引表;所述第二动态索引表包括更新的至少一个头域和至少一个索引值的映射关系。5.一种头域还原方法,应用于解析节点,其特征在于,包括:接收客户端或者服务端发送的第一动态索引表以及所述第一动态索引表对应的关联信息;所述第一动态索引表指示多个头域和多个索引值的映射关系;所述关联信息用于指示与所述第一动态索引表对应的流,或者,所述关联信息用于指示与所述第一动态索引表对应的第一时间;根据所述关联信息获取对应于第一消息的P个索引值;所述第一消息承载于所述第一动态索引表对应的流的N1个数据包,所述第一动态索引表对应的流传输于所述客户端与所述服务端之间;P为大于或者等于1的整数,N1为大于或者等于1的整数;根据所述第一动态索引表,得到所述P个索引值各自对应的头域。6.根据权利要求5所述的方法,其特征在于,所述关联信息包括第一流标识ID以及指示信息,所述指示信息指示所述第一流ID为与所述第一动态索引表对应的流的ID,所述第一消息中携带所述第一流ID。7.根据权利要求5所述的方法,其特征在于,所述关联信息包括第一流标识ID以及指示信息,所述指示信息指示第二流ID为与所述第一动态索引表对应的流的ID,所述第二流ID指示所述客户端与所述服务器之间,在所述第一流ID指示的流之后,传输的下一个流,所述
第一消息中携带所述第二流ID。8.根据权利要求5所述的方法,其特征在于,所述关联信息用于指示与所述第一动态索引表对应的所述第一时间;所述第一时间为所述第一动态表的生成时间;所述根据所述关联信息获取第一消息的P个索引值,包括:获取所述第一消息承载于的所述N1个数据包;所述N1个数据包中的至少一个数据包被所述解析节点获取的时间与所述第一时间的差值小于第一阈值;获取对应于所述N1个数据包的所述P个索引值。9.根据权利要求5-8任意一项所述的方法,其特征在于,所述第一消息还包括Q个头域,Q为大于或者等于1的整数;所述方法还包括:根据获取的所述Q个头域,更新所述第一动态索引表,以得到第二动态索引表;所述第二动态索引表包括更新的至少一个头域和至少一个索引值的映射关系。10.根据权利要求5-9任意一项所述的方法,其特征在于,所述第一消息为请求消息,所述第一动态索引表用于指示所述客户端与所述服务端之间传输的请求消息的头域与索引值的映射关系;所述第一消息为响应消息,所述第一动态索引表用于指示所述客户端与所述服务端之间传输的响应消息的头域与索引值的映射关系。11.一种头域还原方法,应用于客户端或者服务端,其特征在于,包括:向解析节点发送第一动态索引表以及所述第一动态索引表对应的关联信息;所述第一动态索引表指示多个头域和多个索引值的映射关系;所述关联信息用于指示与所述第一动态索引表对应的流,或者,所述关联信息用于指示与所述第一动态索引表对应的第一时间;所述第一动态索引表用于所述客户端或者所述服务端根据所述第一动态索引表对所述第一消息进行头域压缩,以得到所述第一消息的头域对应的P个索引值;所述第一消息承载于所述第一动态索引表对应的流的N1个数据包,所述第一动态索引表对应的流传输于所述客户端与所述服务端之间;P为大于或者等于1的整数,N1为大于或者等于1的整数。12.根据权利要求11所述的方法,其特征在于,所述关联信息包括第一流标识ID以及指示信息,所述指示信息指示所述第一流ID为与所述第一动态索引表对应的流的ID,或者所述指示信息指示第二流ID为与所述第一动态索引表对应的流的ID,所述第二流ID指示所...

【专利技术属性】
技术研发人员:郑锦焕许俊蔡安宁
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1