CN111865884A - 一种报文处理方法、装置及设备 - Google Patents

一种报文处理方法、装置及设备 Download PDF

Info

Publication number
CN111865884A
CN111865884A CN201910362838.8A CN201910362838A CN111865884A CN 111865884 A CN111865884 A CN 111865884A CN 201910362838 A CN201910362838 A CN 201910362838A CN 111865884 A CN111865884 A CN 111865884A
Authority
CN
China
Prior art keywords
node
target data
packet
message
value
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.)
Granted
Application number
CN201910362838.8A
Other languages
English (en)
Other versions
CN111865884B (zh
Inventor
刘硕
林钦亮
王巧灵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201910362838.8A priority Critical patent/CN111865884B/zh
Priority to PCT/CN2020/084591 priority patent/WO2020220986A1/zh
Publication of CN111865884A publication Critical patent/CN111865884A/zh
Application granted granted Critical
Publication of CN111865884B publication Critical patent/CN111865884B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供了一种报文处理方法,第一节点将携带有目标数据、目标数据的标识和第一转发指令的第一报文发送给第二节点,第二节点接收到第一报文之后,第二节点根据第一转发指令将第一报文转发给第三节点,并存储目标数据和目标数据的标识与目标数据之间的映射关系。当第一节点将目标数据发送给第四节点时,不必要再将目标数据发送给第二节点,而是将携带有目标数据标识和第二转发指令的第二报文发送给第二节点。第二节点接收到第二报文之后,根据第二转发指令和目标数据的标识在第二报文中携带与目标数据的标识对应的目标数据,并将携带有目标数据的第二报文发送给第四节点。从而有效的减少第一节点和第二节点之间传输数据所需要的带宽。

Description

一种报文处理方法、装置及设备
技术领域
本申请涉及通信领域,尤其涉及一种报文处理方法、装置及设备。
背景技术
在一些应用场景中,某一节点需要将相同的数据例如目标数据发送给多个其它节点,例如,第一节点需要将目标数据发送给第三节点和第四节点。具体地,第一节点将目标数据发送给第三节点时,第一节点首先可以将目标数据发送给第二节点,由第二节点将所述目标数据转发给第三节点。类似地,第一节点将目标数据发送给第四节点时,第一节点首先可以将目标数据发送给第二节点,由第二节点将所述目标数据转发给第四节点。
可以理解的是,第一节点向每个其它节点发送目标数据时,均需要首先将目标数据发送给第二节点。也就是说,第一节点需要向第二节点重复发送多次相同的目标数据,导致当第一节点需要将目标数据发送给多个其它节点时,第一节点和第二节点之间传输的数据所需要的带宽比较大。
发明内容
本申请实施例提供了一种报文处理方法、装置及设备,用于解决传统技术中第一节点通过第二节点将目标数据发送给多个其它节点例如第三节点和第四节点时,第一节点和第二节点之间传输的数据所需要的带宽比较大的问题。
第一方面,本申请实施例提供了一种报文处理方法,第一节点可以将携带有目标数据、目标数据的标识和第一转发指令的第一报文发送给第二节点,第二节点接收到第一报文之后,一方面,第二节点根据该第一转发指令将第一报文转发给第三节点,从而实现了将目标数据发送给第三节点的目的;另一方面,第二节点根据该第一转发指令,存储目标数据和目标数据的标识与目标数据之间的映射关系。当第一节点需要将目标数据发送给第四节点时,不再将整个目标数据发送给第二节点,而是将携带有目标数据标识和第二转发指令的第二报文发送给第二节点。第二节点接收到第二报文之后,可以根据第二转发指令和目标数据的标识在第二报文中携带与目标数据的标识对应的目标数据,并将携带有目标数据的第二报文发送给第四节点。与传统技术相比,第一节点将目标数据发送给第三节点和第四节点时,不必要每次均将目标数据发送给第二节点,而是可以将目标数据的标识发送给第二节点,虽然向第二节点发送了传统技术可以不必发送的目标数据的标识,但是目标数据的标识的数据量远远小于目标数据的数据量。因此,采用本申请实施例的方法,当第一节点需要将目标数据发送给第三节点和第四节点时,可以有效减少第一节点和第二节点之间传输数据所需要的带宽。
在一种可能的实现方式中,第一节点可以在接收到第三节点发送的数获取据请求和第四节点发送的数据获取请求之后,通过第二节点将目标数据发送给第三节点和第四节点。第三节点发送的数据获取请求和第四节点发送的数据获取请求,均用于请求获取目标数据。第三节点可以通过第二节点向第一节点发送数据获取请求,同样的,第四节点也可以通过第二节点向第一节点发送数据获取请求。换言之,第一节点可以通过第二节点接收第三节点的数据获取请求和第四节点的数据获取请求。第一节点接收到第三节点的数据获取请求和第四节点的数据获取请求之后,由于第三节点的数据获取请求和第四节点的数据获取请求均用于请求获取目标数据,因此,第一节点可以根据第三节点的数据获取请求和/或第四节点的数据获取请求,获取目标数据和目标数据的标识,从而将目标数据通过第二节点发送给第三节点和第四节点。
在一种可能的实现方式中,当第一节点需要将目标数据发送给多个节点时,如何确定是在发送给第三节点的报文中携带目标数据,还是在发送给第四节点的报文中携带目标数据,是一个比较重要的问题。在一种实现方式中,可以由第一节点确定是在发送给第三节点的报文中携带目标数据,还是在发送给第四节点的报文中携带目标数据。具体地,第一节点可以根据接收数据获取请求的时间,确定在发送给第三节点的报文中携带目标数据,还是在发送给第四节点的报文中携带目标数据。例如,将发送给数据获取请求接收时间比较早对应的节点的报文中携带目标数据。也就是说,若第一节点接收第三节点的数据获取请求的时间,早于第一节点接收第四节点的数据获取请求的时间,则在向第三节点发送的第一报文中携带目标数据。
在一种可能的实现方式中,可以由第二节点确定是在发送给第三节点的报文中携带目标数据,还是在发送给第四节点的报文中携带目标数据,第二节点确定出是在发送给第三节点的报文中携带目标数据,还是在发送给第四节点的报文中携带目标数据之后,可以修改对应携带目标数据的节点的数据获取请求,例如第二节点确定出是在发送给第三节点的报文中携带目标数据之后,可以在第三节点的数据获取请求中增加预设标识,并将携带有预设标识的数据获取请求发送给第一节点。
在一种可能的实现方式中,考虑到第一节点将第二报文通过第二节点发送给第四节点时,往往需要按照相关通信协议的格式要求,对第二报文进行封装,并将封装后的第二报文通过第二节点发送给第四节点,而封装后的第二报文中包含指示各层协议长度的字段,各层协议长度字段的值等于前述第二报文的长度值加上其它字段例如封装的报文头的长度值。故而第二报文还可以包括报文长度字段,该报文长度字段中的值可以根据目标数据的标识的长度以及第二转发指令的长度进行确定,例如,报文长度字段中的值,等于目标数据的标识的长度以及第二转发指令的长度之和,以便于当第二节点在第二报文中携带目标数据之后,第二节点还可以根据目标数据的长度、目标数据的标识的长度以及第二转发指令的长度确定第二报文中的报文长度字段中的值,并更新第二报文中报文字段的值,从而修改封装后的第二报文中的各层协议长度字段的值。该报文长度字段的值还可以根据目标数据的长度确定,例如等于目标数据的长度。当第二节点在第二报文中携带目标数据之后,第二节点可以根据报文长度字段中的值(即目标数据的长度),修改封装后的第二报文中的各层协议长度字段的值,例如加上目标数据的长度,并更新第二报文中报文字段的值,从而修改封装后的第二报文中的各层协议长度字段的值。
在一种可能的实现方式中,考虑到对于第三节点和第四节点而言,其接收到的报文的格式一般而言是一致的,因此,当前述第二报文中包括报文长度字段时,第一报文也可以包括报文长度字段,该报文长度字段中的值,可以根据目标数据的长度、目标数据的标识的长度以及第一转发指令的长度进行确定,例如,报文长度字段中的值,等于目标数据的长度、目标数据的标识的长度以及第一转发指令的长度之和。
在一种可能的实现方式中,第三节点还可以将第三节点在上一轮训练机器学习模型得到的模型参数,即第三节点的模型通过第二节点发送给第一节点。相应的,当第四节点还可以将第四节点在上一轮训练机器学习模型得到的模型参数,即第四节点的模型参数通过第二节点发送给第一节点。即第一节点还可以获取所述第三节点的模型参数和所述第四节点的模型参数。第一节点接收到第三节点的模型参数和第四节点的模型参数之后,可以对第三节点的模型参数和第四节点的模型参数进行参数聚合得到新的模型参数,并将该新的模型参数发送给第三节点和第四节点,以使得第三节点和第四节点基于新的模型参数进行下一轮训练,从而提升机器学习模型的训练速度。
第二方面,本申请实施例提供了一种报文处理方法,第二节点接收来自第一节点的携带有目标数据、目标数据的标识和第一转发指令的第一报文,第一转发指令指示第二节点存储目标数据和目标数据与目标数据的标识之间的映射关系,并向第三节点转发第一报文;第二节点根据第一转发指令存储目标数据以及目标数据与目标数据的标识之间的映射关系,并向第三节点转发第一报文;第二节点接收来自第一节点的第二报文,第二报文中携带有目标数据的标识和第二转发指令,第二转发指令指示第二节点在第二报文中携带目标数据,并向第四节点转发携带有目标数据的第二报文;第二节点根据目标数据与目标数据的标识之间的映射关系,确定与第二报文中携带的目标数据的标识对应的目标数据,在第二报文中携带目标数据;第二节点向第四节点转发携带有目标数据的第二报文。
在一种可能的实现方式中,考虑到一方面,只有当第二节点已经接收到完整的目标数据之后,才能存储目标数据和目标数据的标识之间的映射关系,当第二节点接收到携带有第二转发指令和目标数据的标识的第二报文时,第二节点才能根据第二报文中携带的目标数据的标识,确定出与目标数据的标识对应的目标数据,从而在第二报文中携带目标数据,并将携带有目标数据的第二报文转发给第四节点。另一方面,当第一节点需要将目标数据发送给第三节点和第四节点时,只有第二节点既接收到第一报文,又接收到第二报文,才能在一定程度上表示第一节点将目标数据发送给了第三节点和第四节点。而且,第一节点可能要执行多次将目标数据发送给第三节点和第四节点的步骤。在本申请实施例中,第二节点中还可以存储第三节点和第四节点的标志位,通过第三节点的标志位和第四节点的标志位,可以确定第一节点是否将目标数据发送给了第三节点和第四节点。关于设置第三节点的标志位的值和第四节点的标志位的值,可以有多种实现方式。
在一种可能的实现方式中,第二节点可以在接收到第一节点的第一报文之后,设置第三节点的标志位的值,具体地,第二节点在接收到第一节点的第一报文之后,将第三节点的标志位的值设置为指示第二节点已接收到向第三节点发送的第一报文的值。相应的,第二节点可以在接收到第一节点的第二报文之后,设置第四节点的标志位的值。
在一种可能的实现方式中,第二节点可以在向第三节点转发第一报文之后,设置第三节点的标志位的值,具体地,第二节点在向第三节点转发第一报文之后,将第三节点的标志位的值设置为指示第二节点已经向第三节点发送第一报文的值。相应的,第二节点可以在向第四节点转发携带有目标数据的第二报文之后,设置第四节点的标志位的值。具体地,第二节点在向第四节点转发第二报文之后,将第四节点的标志位的值设置为指示第二节点已经向第四节点发送第二报文的值。
在一种可能的实现方式中,考虑到在实际应用中,第三节点接收到第一报文之后,会通过第二节点向第一节点发送接收确认报文,以告知第一节点第三节点已经成功接收到第一报文。故而第二节点可以接收来自第三节点的接收确认报文,该接收确认报文表征第三节点已经成功接收到第二节点向第三节点发送的第一报文,第二节点接收到第三节点发送的接收确认报文之后,则设置第三节点的标志位的值,具体地,第二节点接收到来自第三节点的接收确认报文之后,第二节点可以根据该接收确认报文,将第三节点的标志位的值设置为用于指示第三节点已接收到所述第一报文的值。相应的,第二节点可以在接收到来自第四节点的接收确认报文之后,设置第四节点的标志位的值。具体地,第二节点接收到来自第四节点的接收确认报文之后,第二节点可以根据该接收确认报文,将第四节点的标志位的值设置为用于指示第四节点已接收到所述第二报文的值。
在一种可能的实现方式中,考虑到第二节点接收到第一报文的时间,比第二节点接收到第二报文的时间早,故而前述“第二节点在接收到第一节点的第一报文之后,将第三节点的标志位的值设置为指示第二节点已接收到向第三节点发送的第一报文的值”在具体实现时,可以结合第四节点的标志位来设置第三标志位的值,具体地,若第三节点的标志位的值指示第二节点未接收到向第三节点发送的第一报文,且第四节点的标志位的值指示第二节点未接收到向第四节点发送的第二报文,则第二节点将第三节点的标志位的值设置为用于指示第二节点已接收到向第三节点发送的第一报文的值。
在一种可能的实现方式中,考虑到第二节点向第三节点发送第一报文的时间,比第二节点向第四节点发送第二报文的时间早。鉴于此,前述“第二节点可以在向第三节点转发第一报文之后,设置第三节点的标志位的值”在具体实现时,可以结合第四节点的标志位来设置第三标志位的值,具体地,若第三节点的标志位的值指示第二节点未向第三节点发送第一报文,且第四节点的标志位的值指示第二节点未向第四节点发送第二报文,则第二节点将第三节点的标志位的值设置为用于指示第二节点已向第三节点发送第一报文的值。
在一种可能的实现方式中,考虑到第二节点接收到第三节点的接收确认报文的时间,比第二节点接收到第四节点的接收确认报文的时间早。鉴于此,前述“第二节点接收到来自第三节点的接收确认报文之后,第二节点可以根据该接收确认报文,将第三节点的标志位的值设置为用于指示第三节点已接收到所述第一报文的值”在具体实现时,可以结合第四节点的标志位来设置第三标志位的值,具体地,若第三节点的标志位的值指示第二节点未接收到来自第三节点的接收确认报文,且第四节点的标志位的值指示第二节点未接收到来自第四节点的接收确认报文,则第二节点将第三节点的标志位的值设置为用于指示第二节点已接收到来自第三节点的接收确认报文的值。
在一种可能的实现方式中,第二节点还可以接收来自所述第三节点的数据获取请求和所述第四节点的数据获取请求,所述第三节点的数据获取请求用于获取的目标数据和所述第四节点的数据获取请求用于获取的目标数据相同;所述第二节点向所述第一节点转发所述第三节点的数据获取请求和所述第四节点的数据获取请求。以便于第一节点根据第三节点的数据获取请求和/或所述第四节点的数据获取请求获取目标数据和目标数据的标识。
在一种可能的实现方式中,所述第二节点获取所述第三节点的模型参数和所述第四节点的模型参数,并向所述第一节点转发所述第三节点的模型参数和所述第四节点的模型参数;所述第三节点的模型参数为所述第三节点通过上一轮训练机器学习模型得到;所述第四节点的模型参数为所述第四节点通过上一轮训练机器学习模型得到;所述目标数据根据所述第三节点的模型参数和所述第四节点的模型参数计算得到,所述目标数据用于对所述第三节点的机器学习模型和所述第四节点的机器学习模型进行下一轮训练,从而提升机器学习模型的训练速度。
在一种可能的实现方式中,所述第二报文中还携带有报文长度字段;当所述第二节点在所述第二报文中携带所述目标数据之后,所述第二节点还可以根据所述目标数据的长度、所述目标数据的标识的长度以及所述第二转发指令的长度确定所述第二报文中的报文长度字段中的值。
第三方面,本申请实施例提供了一种报文处理装置,所述装置包括:第一发送单元,用于向第二节点发送第一报文,所述第一报文中携带有所述目标数据、所述目标数据的标识和第一转发指令,所述第一转发指令用于指示所述第二节点存储所述目标数据和所述目标数据与所述目标数据的标识之间的映射关系,并向第三节点转发所述第一报文;第二发送单元,用于向所述第二节点发送第二报文,所述第二报文中携带有所述目标数据的标识和第二转发指令,所述第二转发指令用于指示所述第二节点在所述第二报文中携带与所述目标数据的标识对应的所述目标数据,并将携带有所述目标数据的第二报文发送给第四节点。
在一种可能的实现方式中,所述装置还包括:接收单元,用于通过第二节点接收所述第三节点的数据获取请求和所述第四节点的数据获取请求,所述第三节点的数据获取请求和所述第四节点的数据获取请求均用于获取所述目标数据;第一获取单元,用于根据所述第三节点的数据获取请求和/或所述第四节点的数据获取请求获取所述目标数据和所述目标数据的标识。
在一种可能的实现方式中,所述第一报文中还携带有第一报文长度字段,所述第一报文长度字段中的值根据所述目标数据的长度、所述目标数据的标识的长度以及所述第一转发指令的长度进行确定。
在一种可能的实现方式中,所述第二报文中还携带有第二报文长度字段,所述第二报文长度字段的值根据所述目标数据的标识的长度以及所述第二转发指令的长度进行确定。
在一种可能的实现方式中,所述装置还包括:第二获取单元,用于获取所述第三节点的模型参数和所述第四节点的模型参数;所述第三节点的模型参数为所述第三节点通过上一轮训练机器学习模型得到;所述第四节点的模型参数为所述第四节点通过上一轮训练机器学习模型得到;所述目标数据根据所述第三节点的模型参数和所述第四节点的模型参数计算得到,所述目标数据用于对所述第三节点的机器学习模型和所述第四节点的机器学习模型进行下一轮训练。
第四方面,本申请实施例提供了一种报文处理装置,所述装置包括:第一接收单元,用于接收来自第一节点的第一报文,所述第一报文中携带有目标数据、所述目标数据的标识和第一转发指令,所述第一转发指令指示所述第二节点存储所述目标数据和所述目标数据与所述目标数据的标识之间的映射关系,并向第三节点转发所述第一报文;存储单元,用于根据所述第一转发指令存储所述目标数据以及所述目标数据与所述目标数据的标识之间的映射关系;第一转发单元,用于向所述第三节点转发所述第一报文;第二接收单元,用于接收来自所述第一节点的第二报文,所述第二报文中携带有所述目标数据的标识和第二转发指令,所述第二转发指令指示所述第二节点在所述第二报文中携带所述目标数据,并向第四节点转发携带有所述目标数据的第二报文;第一确定单元,用于根据所述目标数据与所述目标数据的标识之间的映射关系,确定与所述第二报文中携带的所述目标数据的标识对应的目标数据,在所述第二报文中携带所述目标数据;第二转发单元,用于向所述第四节点转发携带有所述目标数据的第二报文。
在一种可能的实现方式中,所述第二节点中存储有所述第三节点的标志位;所述装置还包括:设置单元,用于将所述第三节点的标志位的值设置为用于指示所述第二节点已接收到向所述第三节点发送的第一报文的值。
在一种可能的实现方式中,所述第二节点中存储有所述第四节点的标志位;所述设置单元,具体用于:若所述第三节点的标志位的值指示所述第二节点未接收到向所述第三节点发送的第一报文,且所述第四节点的标志位的值指示所述第二节点未接收到向所述第四节点发送的第二报文,则所述第二节点将所述第三节点的标志位的值设置为用于指示所述第二节点已接收到向所述第三节点发送的第一报文的值。
在一种可能的实现方式中,所述装置还包括:第三接收单元,用于接收来自所述第三节点的数据获取请求和所述第四节点的数据获取请求,所述第三节点的数据获取请求用于获取的目标数据和所述第四节点的数据获取请求用于获取的目标数据相同;第三转发单元,用于向所述第一节点转发所述第三节点的数据获取请求和所述第四节点的数据获取请求。
在一种可能的实现方式中,所述装置还包括:获取单元,用于获取所述第三节点的模型参数和所述第四节点的模型参数;所述第三节点的模型参数为所述第三节点通过上一轮训练机器学习模型得到;所述第四节点的模型参数为所述第四节点通过上一轮训练机器学习模型得到;所述目标数据根据所述第三节点的模型参数和所述第四节点的模型参数计算得到,所述目标数据用于对所述第三节点的机器学习模型和所述第四节点的机器学习模型进行下一轮训练。
在一种可能的实现方式中,所述第二报文中还携带有报文长度字段;所述装置还包括:
第二确定单元,用于根据所述目标数据的长度、所述目标数据的标识的长度以及所述第二转发指令的长度确定所述第二报文中的报文长度字段中的值。
第五方面,本申请实施例提供了一种报文处理设备,所述设备包括:处理器和存储器;所述存储器,用于存储指令;所述处理器,用于执行所述存储器中的所述指令,执行以上第一方面任意一项所述的报文处理方法。
第六方面,本申请实施例提供了一种报文处理设备,所述设备包括:处理器和存储器;所述存储器,用于存储指令;所述处理器,用于执行所述存储器中的所述指令,执行以上第二方面任意一项所述的报文处理方法。
第七方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行以上第一方面任意一项所述的方法。
第八方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行以上第二方面任意一项所述的方法。
第九方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行以上第一方面任意一项所述的方法。
第十方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行以上第二方面任意一项所述的方法。
附图说明
图1为本申请实施例提供的一种应用场景的示意图;
图2为本申请实施例提供的一种报文处理方法的信令交互图;
图3a为本申请实施例提供的一种第一报文的帧结构的示意图;
图3b为本申请实施例提供的又一种第一报文的帧结构的示意图;
图4a为本申请实施例提供的一种第二报文的帧结构的示意图;
图4b为本申请实施例提供的又一种第二报文的帧结构的示意图;
图5为本申请实施例提供的又一种报文处理方法的信令交互图;
图6本申请实施例提供的一种应用于第一节点的报文处理装置的结构示意图;
图7本申请实施例提供的一种应用于第二节点的报文处理装置的结构示意图;
图8为本申请实施例提供的一种报文处理设备的结构示意图。
具体实施方式
本申请实施例提供了一种报文处理方法、装置及设备,用于解决传统技术中第一节点通过第二节点将目标数据发送给多个其它节点例如第三节点和第四节点时,第一节点和第二节点之间传输的数据所需要的带宽比较大的问题。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为方便理解,首先结合图1对本申请实施例的可能的应用场景进行介绍。需要说明的是,图1所示的应用场景是本申请实施例提供的一种可能的应用场景,本申请实施例还可以应用于其它场景中,此处不再一一列举。图1所示的应用场景与深度神经网络(deepneural network,DNN)的训练过程相关。
随着科学技术的发展,DNN的应用越来越广泛,例如DNN可以应用于图像识别与搜索、语音识别、自然语言处理、自动驾驶、垃圾邮件检测以及数据中心能源管理等各个方面。DNN是一种人工神经网络,其具有一些模型参数,这些参数是通过训练得到的。然而,由于计算DNN的网络结构比较复杂,因此,训练过程通常极为耗时。为了提升DNN训练的效率,可以通过高效的并行分布式DNN训练模式来进行DNN训练。
可结合图1进行理解,该图为本申请实施例提供的一种应用场景的示意图。在图1所示的应用场景中,一个参数服务器(parameter server,PS)101首先将同一份模型参数w,通过转发设备102转发给多个计算节点(英文:worker),图1中示出了worker 103和worker104。然后worker 103和worker 104分别将本地训练得到的参数梯度Δw1和Δw2上传回PS101,PS 101根据接收到的参数梯度Δw1和Δw2进行参数聚合并得到新的参数w’,而后PS101再将新的参数w’通过转发设备102转发给worker 103和worker 104,worker 103和worker 104基于w’进行新一轮迭代训练。
在上述应用场景中,在每次迭代训练之前,PS 101通过转发设备102将参数发送给worker 103和worker 104,并且PS 101将参数发送给worker 103时,PS 101首先可以将参数发送给转发设备102,由转发设备102将所述参数发送给worker 103。类似地,PS 101将参数发送给worker 104时,PS 101首先可以将参数发送给转发设备102,由转发设备102将所述参数发送给worker 104。这就导致PS 101需要向转发设备102重复发送多次相同的参数,导致当PS 101需要将参数发送给worker 103和worker 104时,PS 101和转发设备102之间传输的数据所需要的带宽比较大。
需要说明的是,虽然图1中仅示出了两个计算节点worker 103和worker 104,但是这只是为了便于理解而示出,在实际应用中,计算节点的数量可以有很多。可以理解的是,计算节点的数量越多和/或前述PS 101参数发送给计算节点的参数的数据量越大,PS 101和转发设备102之间传输数据所需要的带宽越大。
鉴于此,本申请实施例提供了一种报文处理方法、装置及设备,可以解决上述问题。
以下对本申请实施例提供的报文处理方法进行介绍。
参见图2,该图为本申请实施例提供的一种报文处理方法的信令交互图。本申请实施例提供的报文处理方法,例如可以通过如下步骤101-106实现。
步骤101:第一节点向第二节点发送第一报文,第一报文中携带有目标数据、目标数据的标识和第一转发指令。
在本申请实施例中,第一节点为目标数据的发送方,第一节点可以将目标数据发送给多个节点,例如第一节点将目标数据发送给第三节点和第四节点。本申请实施例不具体限定该第一节点,该第一节点例如可以为前述图1中的PS 101,该第一节点又如可以为其它设备,例如终端设备等等。本申请实施例也不具体限定该目标数据的具体内容,该目标数据例如可以为图1所对应的应用场景中的模型参数w或者新的参数w’。
需要说明的是,在本申请实施例中,第一节点通过第二节点向第三节点发送的第一报文中,携带有第三节点的地址。第三节点的地址例如可以为第三节点的媒体访问控制(media access control,MAC)地址,第三节点的地址又如可以为第三节点的互联网协议(internet protocol,IP)地址。
在本申请实施例中,目标数据的标识用于标识目标数据,本申请实施例不具体限定目标数据的标识,目标数据的标识的确定方式可以根据实际情况确定。
在本申请实施例中,第一节点将目标数据发送给第三节点和第四节点时,并不是直接将目标数据发送给第三节点和第四节点,而是通过第二节点将目标数据发送给第三节点和第四节点。也就是说,第二节点为具备数据转发功能的设备。本申请实施例不具体限定该第二节点,该第二节点例如可以为图1中的转发设备102,该转发设备102可以为交换机或者路由器等设备。
在本申请实施例中,第一转发指令用于指示第二节点存储目标数据和目标数据与目标数据的标识之间的映射关系,并将第一报文转发给第三节点。本申请实施例不具体限定该第一转发指令,第一转发指令可以体现为第一报文中特定字段。例如,第一报文可以采用图3a所示的帧结构,图3a为本申请实施例提供的一种第一报文的帧结构的示意图。第一报文包括第一转发指令字段301、目标数据的标识字段302和目标数据字段303。需要说明的是,图3a仅是示例性说明,第一报文的帧结构还可以是其它形式,本申请实施例不作具体限定。
需要说明的是,在本申请实施例中,第一报文可以作为L4层协议的净荷。
步骤102:第二节点根据第一转发指令存储目标数据和目标数据与目标数据的标识之间的映射关系。
步骤103:第二节点将第一报文转发给第三节点。
第二节点接收到第一报文之后,可以根据第一转发指令,存储目标数据和目标数据与目标数据的标识之间的映射关系,并将第一报文转发给第三节点,从而实现将目标数据发送给第三节点的目的。
步骤104:第一节点向第二节点发送第二报文,第二报文中携带有目标数据的标识和第二转发指令。
在本申请实施例中,为了降低第一节点和第二节点之间传输目标数据所需要的带宽,在本申请实施例中,当第一节点需要将目标数据发送给第三节点和第四节点时,可以不必每次都将完整的目标数据发送给第二节点,而是在将目标数据发送给第三节点时,将完整的目标数据发送给第二节点,而在将目标数据发送给第四节点时,将携带有目标数据的标识和第二转发指令的第二报文发送给第二节点。其中,该第二转发指令指示第二节点在第二报文中携带与目标数据的标识对应的目标数据,并将携带有目标数据的第二报文发送给第四节点。
需要说明的是,在本申请实施例中,第一节点通过第二节点向第四节点发送的第二报文中,携带有第四节点的地址。第四节点的地址例如可以为第四节点的媒体访问控制(media access control,MAC)地址,第四节点的地址又如可以为第四节点的互联网协议(internet protocol,IP)地址。
步骤105:第二节点根据第二转发指令在第二报文中携带目标数据。
步骤106:第二节点将携带目标数据的第二报文转发给第四节点。
第二节点接收到第一报文之后,根据第一转发指令保存目标数据和目标数据与目标数据的标识之间的映射关系。在第一节点需要将目标数据发送给第四节点时,第一节点可以向第二节点发送携带有目标数据的标识和第二转发指令的第二报文。第二节点可以根据预先存储的目标数据与目标数据的标识之间的映射关系,确定处于与第二报文中携带有目标数据的标识对应的目标数据,并在第二报文中携带目标数据,从而将携带有目标数据的第二报文发送给第四节点。
在本申请实施例中,与第一报文类似,第二报文也可以作为L4层协议的净荷。本申请实施例不具体限定该第二转发指令,第二转发指令可以体现为第二报文中特定字段。例如,第二报文可以采用图4a所示的帧结构,图4a为本申请实施例提供的一种第二报文的帧结构的示意图。第二报文包括第二转发指令字段401和目标数据的标识字段402。需要说明的是,图4a仅是示例性说明,第二报文的帧结构还可以是其它形式,本申请实施例不作具体限定。考虑到当第二节点在第二报文中携带目标数据之后,由于在原有的第二报文中增加了一部分内容,因此,与原有的第二报文相比,携带有目标数据的第二报文的报文长度也发生了改变,相应的,第四节点接收到的第二报文,与第二节点接收到的第二报文相比,所接收的数据的长度也发生了改变。而在实际应用中,第一节点将第二报文通过第二节点发送给第四节点时,往往需要按照相关通信协议的格式要求,对第二报文进行封装,并将封装后的第二报文通过第二节点发送给第四节点,而封装后的第二报文中包含指示各层协议长度的字段,例如,互联网协议(internet protocol,IP)中的Total Length字段,用户数据报协议(user datagram protocol,UDP)中的Length字段等),各层协议长度字段的值等于前述第二报文的长度值加上其它字段例如封装的报文头的长度值。
鉴于此,在本申请实施例的一种实现方式中,前述第二报文还可以采用图4b所示的帧结构,图4b为本申请实施例提供的又一种第二报文的帧结构的示意图。如图4b所示,第二报文除了包括第二转发指令字段401和目标数据的标识字段402之外,还包括报文长度字段403,本申请实施例不具体限定该报文长度字段403中的值,作为一种示例,可以根据目标数据的标识的长度以及第二转发指令的长度进行确定,例如,报文长度字段403中的值,等于目标数据的标识的长度以及第二转发指令的长度之和。当第二节点在第二报文中携带目标数据之后,第二节点还可以根据目标数据的长度、目标数据的标识的长度以及第二转发指令的长度确定第二报文中的报文长度字段中的值,例如将第二报文中报文长度字段的值,更新为目标数据的长度、目标数据的标识的长度以及第二转发指令的长度的和。相应的,第二节点可以根据更新的第二报文中报文字段的值,修改封装后的第二报文中的各层协议长度字段的值。作为又一种示例,报文长度字段403的值,可以等于目标数据的长度,当第二节点在第二报文中携带目标数据之后,第二节点可以根据报文长度字段中的值,修改封装后的第二报文中的各层协议长度字段的值,例如加上目标数据的长度,得到修改后的各层协议长度。
另外,考虑到对于第三节点和第四节点而言,其接收到的报文的格式一般而言是一致的,因此,当前述第二报文采用图4b所示的帧结构时,第一报文可以采用图3b所示的帧结构,图3b为本申请实施例提供的又一种第一报文的帧结构的示意图。如图3b所示,第一报文除了包括第一转发指令字段301、目标数据的标识字段302和目标数据字段303之外,还包括报文长度字段304,该报文长度字段304中的值,可以根据目标数据的长度、目标数据的标识的长度以及第一转发指令的长度进行确定,例如,报文长度字段304中的值,等于目标数据的长度、目标数据的标识的长度以及第一转发指令的长度之和。
通过以上描述可知,在本申请实施例中,第一节点将目标数据发送给第三节点和第四节点时,不必要每次均将目标数据发送给第二节点,而是可以将目标数据的标识发送给第二节点。虽然向第二节点发送了传统技术可以不必发送的目标数据的标识,但是一般而言,目标数据的标识的数据量远远小于目标数据的数据量,从而有效减少第一节点和第二节点之间传输数据所需要的带宽。
需要说明的是,在本申请实施例中,第一节点将目标数据发送给多个节点,该多个节点的数目可以大于或者等于2,当多个节点的数目为2个时,该多个节点可以包括前述第三节点和第四节点,当多个节点的数目为2个以上时,例如多个节点的数目为3个时,则该多个节点除了包括第三节点和第四节点之外,还可以包括第五节点。第一节点将目标数据发送给第五节点的处理方式,与第一节点将目标数据发送给第四节点的处理方式相同,均是将携带有目标数据的标识和第二转发指令的第二报文发送给第二节点,由第二节点在第二报文中携带目标数据,并将携带有目标数据的第二报文转发给第五节点。
在本申请实施例中,第一节点在接收到第三节点发送的数获取据请求和第四节点发送的数据获取请求之后,可以通过第二节点将目标数据发送给第三节点和第四节点。在本申请实施例中,第三节点发送的数据获取请求和第四节点发送的数据获取请求,均用于请求获取目标数据。
在本申请实施例中,第三节点可以通过第二节点向第一节点发送数据获取请求,同样的,第四节点也可以通过第二节点向第一节点发送数据获取请求。换言之,第一节点可以通过第二节点接收第三节点的数据获取请求和第四节点的数据获取请求。第一节点接收到第三节点的数据获取请求和第四节点的数据获取请求之后,由于第三节点的数据获取请求和第四节点的数据获取请求均用于请求获取目标数据,因此,第一节点可以根据第三节点的数据获取请求和/或第四节点的数据获取请求,获取目标数据和目标数据的标识。第一节点获取目标数据和目标数据的标识之后,即可执行上述101-102将第一报文和第二报文发送给第二节点的步骤。
如前文,第一节点在将目标数据发送给第三节点和第四节点时,通过将携带有完整目标数据的第一报文发送给第二节点,从而将目标数据发送给第三节点,而将携带有目标数据的标识的第二报文发送给第二节点,从而将目标数据发送给第四节点。当第一节点需要将目标数据发送给多个节点时,如何确定是在发送给第三节点的报文中携带目标数据,还是在发送给第四节点的报文中携带目标数据,是一个比较重要的问题。
在本申请实施例的一种实现方式中,可以由第一节点确定是在发送给第三节点的报文中携带目标数据,还是在发送给第四节点的报文中携带目标数据。具体地,第一节点可以根据接收数据获取请求的时间,确定在发送给第三节点的报文中携带目标数据,还是在发送给第四节点的报文中携带目标数据。例如,将发送给数据获取请求接收时间比较早对应的节点的报文中携带目标数据。也就是说,若第一节点接收第三节点的数据获取请求的时间,早于第一节点接收第四节点的数据获取请求的时间,则在向第三节点发送的第一报文中携带目标数据。
如前文可知,第一节点是通过第二节点接收来自第三节点的数据获取请求以及第四节点的数据获取请求的。因此,在本申请实施例的又一种实现方式中,可以由第二节点确定是在发送给第三节点的报文中携带目标数据,还是在发送给第四节点的报文中携带目标数据,第二节点确定出是在发送给第三节点的报文中携带目标数据,还是在发送给第四节点的报文中携带目标数据之后,可以修改对应携带目标数据的节点的数据获取请求,例如第二节点确定出是在发送给第三节点的报文中携带目标数据之后,可以在第三节点的数据获取请求中增加预设标识,并将携带有预设标识的数据获取请求发送给第一节点。这样一来,第一节点可以在向包括所述预设标识的数据获取请求对应的节点发送的报文中携带目标数据。即第一节点可以根据前述预设标识在第一报文中携带目标数据、目标数据的标识和第一转发指令,从而将目标数据发送给第三节点。
本申请实施例不具体限定第二节点确定是在发送给第三节点的报文中携带目标数据,还是在发送给第四节点的报文中携带目标数据的具体实现方式,作为一种示例,第二节点可以根据接收数据获取请求的时间,确定是在发送给第三节点的报文中携带目标数据,还是在发送给第四节点的报文中携带目标数据。例如,若第二节点接收第三节点的数据获取请求的时间,早于第二节点接收第四节点的数据获取请求的时间,则第二节点确定在向第三节点发送的报文中携带目标数据,并在第三节点对应的数据获取请求中携带预设标识。本申请实施例也不具体限定前述预设标识,该预设标识例如可以体现为数据获取请求中的某一字段的具体取值。
如前文,本申请实施例提供的方法,可以应用于图1所示的应用场景,在本申请实施例的一种实现方式中,当所述第三节点为前述图1所示的应用场景中用于训练DNN模型的计算节点例如worker 103时,第三节点还可以将第三节点在上一轮训练机器学习模型得到的模型参数,即第三节点的模型通过第二节点发送给第一节点。相应的,当所述第四节点为前述图1所示的应用场景中用于训练DNN模型的计算节点例如worker 104时,第四节点还可以将第四节点在上一轮训练机器学习模型得到的模型参数,即第四节点的模型参数通过第二节点发送给第一节点。
如前文对图1所示的应用场景的描述部分可知,第一节点接收到第三节点的模型参数和第四节点的模型参数之后,可以对第三节点的模型参数和第四节点的模型参数进行参数聚合得到新的模型参数,并将该新的模型参数发送给第三节点和第四节点,以使得第三节点和第四节点基于新的模型参数进行下一轮训练。因此,在本申请实施例中,第一节点接收到第三节点的模型参数和第四节点的模型参数之后,可以根据第三节点的模型参数和第四节点的模型参数计算得到目标数据,例如通过参数聚合的方式得到目标数据,并将目标数据发送给第三节点和第四节点,该目标数据用于对第三节点的机器学习模型和第四节点的机器学习模型进行下一轮训练,从而提升机器学习模型的训练速度。
可以理解的是,在实际应用中,DNN模型包括很多层,每一层都对应相应的层参数,各层的参数即构成了整个模型的参数。在本申请实施例的一种实现方式中,在更新模型训练的参数时,可以更新整个模型的参数,也可以更新某些层的参数,因此,在本申请实施例的一种实现方式中,前述第三节点的数据获取请求中,可以携带有DNN模型的层标识和上一轮训练机器学习模型得到的该层的参数;相应的,前述第四节点的数据获取请求中,可以携带有DNN模型的层标识和上一轮训练机器学习模型得到的该层的参数。相应的,第一节点接收到第三节点的模型参数和第四节点的模型参数之后,可以根据第三节点的模型参数和第四节点的模型参数计算得到目标数据,将该目标数据发送给第三节点和第四节点时,也可以携带前述层标识,以使得第三节点和第四节点可以基于该目标数据更新前述层标识对应的层的参数,从而进行下一轮训练。
可以理解的是,在实际应用中,一方面,只有当第二节点已经接收到完整的目标数据之后,才能存储目标数据和目标数据与目标数据的标识之间的映射关系,当第二节点接收到携带有第二转发指令和目标数据的标识的第二报文时,第二节点才能根据第二报文中携带的目标数据的标识,确定出与目标数据的标识对应的目标数据,从而在第二报文中携带目标数据,并将携带有目标数据的第二报文转发给第四节点。鉴于此,在本申请实施例的一种实现方式中,第二节点还可以存储第三节点的标志位,当第二节点已经接收到完整的目标数据之后,可以设置该标志位的值,使得该标志位的值能够表征第二节点已经接收到完成的目标数据。从而使得当第二节点接收到第二报文时,可以首先根据第三节点的标志位的值,初步确定是否存在与第二报文中携带有目标数据的标识对应的目标数据,而无需在全局搜索第二节点保存的数据中,是否存在与第二报文中携带有目标数据的标识对应的目标数据。另一方面,当第一节点需要将目标数据发送给第三节点和第四节点时,只有第二节点既接收到第一报文,又接收到第二报文,才能在一定程度上表示第一节点将目标数据发送给了第三节点和第四节点。而且,第一节点可能要执行多次将目标数据发送给第三节点和第四节点的步骤,例如,可结合图1所示的应用场景进行介绍,DNN模型的训练包括多次迭代过程,每一次迭代时,PS 101均需要将迭代参数发送给worker 103和worker104。
鉴于此,在本申请实施例中,第二节点中还可以存储第四节点的标志位,通过第四节点的标志位和第三节点的标志位,可以确定第一节点是否将目标数据发送给了第三节点和第四节点。
本申请实施例不具体限定设置第三节点的标志位的值和第四标志位的值的具体实现,以下介绍三种可能的实现方式。
第一种实现方式:
第二节点可以在接收到第一节点的第一报文之后,设置第三节点的标志位的值,具体地,第二节点在接收到第一节点的第一报文之后,将第三节点的标志位的值设置为指示第二节点已接收到向第三节点发送的第一报文的值。相应的,第二节点可以在接收到第一节点的第二报文之后,设置第四节点的标志位的值。
可以理解的是,一般而言,第二节点接收到第一报文的时间,比第二节点接收到第二报文的时间早。也就是说,若第三节点的标志位的值表征第二节点未接收到向第三节点发送的第一报文,则,第四标志位的值理应表征第二节点未接收到向第四节点发送的第二报文。鉴于此,在本申请实施例中,前述“第二节点在接收到第一节点的第一报文之后,将第三节点的标志位的值设置为指示第二节点已接收到向第三节点发送的第一报文的值”在具体实现时,可以结合第四节点的标志位来设置第三标志位的值,具体地,若第三节点的标志位的值指示第二节点未接收到向第三节点发送的第一报文,且第四节点的标志位的值指示第二节点未接收到向第四节点发送的第二报文,则第二节点将第三节点的标志位的值设置为用于指示第二节点已接收到向第三节点发送的第一报文的值。
相应的,当第二节点接收到来自第一节点的第二报文之后,第二节点可以根据第三节点的标志位,确定是否设置第四节点的标志位,具体地,若第二节点确认第三节点的标志位的值指示第二节点已经接收到向第三节点发送的第一报文,则第二节点将第四节点的标志位的值设置为指示第二节点已经接收到向第四节点发送第二报文的值。
关于第一种实现方式,现举例说明,在第一节点接收到来自第三节点的数据获取请求和来自第四节点的数据获取请求之前,第三节点的标志位的值和第四节点的标志位的值为初始值0。当第二节点接收到来自第一节点的第一报文之后,确定第三节点的标志位的值为0,且第四节点的标志位的值为0,则将第三节点的标志位的值设置为用于指示第二节点已接收到向第三节点发送的第一报文的值1;当第二节点接收到来自第一节点的第二报文之后,确定第三节点的标志位的值为1,且第四节点的标志位的值为0,则将第四节点的标志位的值设置为用于指示第二节点已接收到向第四节点发送的第二报文的值1。
可以理解的是,当第二节点接收到来自第一节点的第一报文之后,若第三节点的标志位的值不为1,且第四节点的标志位的值不为0,则表示当前接收到的第一报文不合法,并不修改第三节点的标志位的值。因为,理论上来讲,第三节点的标志位的值为0时,第四节点的标志位的值也应为0,因为第二节点接收到第一报文的时间早于第二节点接收第二报文的时间。当第二节点接收到来自第一节点的第一报文之后,若第三节点的标志位的值不为0,则表示当前接收到的第一报文为重传报文,第二节点直接将该第一报文转发给第三节点,但并不修改第三节点的标志位的值。相应的,当第二节点接收到来自第一节点的第二报文之后,确定第三节点的标志位的值不为1,则可以舍弃该第二报文,并不修改第四节点的标志位的值。因为若第三节点的标志位的值为0,则表示第二节点还未接收到与第二报文中携带的目标数据的标识对应的目标数据,故而无法在第二报文中携带目标数据并发送给第四节点。当第二节点接收到来自第一节点的第二报文之后,若第四节点的标志位的值为1且第三节点的标志位的值也为1,则表示当前接收到的第二报文为重传报文,第二节点将携带有目标数据的第二报文转发给第四节点,但并不修改第四节点的标志位的值。
第二种实现方式:
第二节点可以在向第三节点转发第一报文之后,设置第三节点的标志位的值,具体地,第二节点在向第三节点转发第一报文之后,将第三节点的标志位的值设置为指示第二节点已经向第三节点发送第一报文的值。相应的,第二节点可以在向第四节点转发携带有目标数据的第二报文之后,设置第四节点的标志位的值。具体地,第二节点在向第四节点转发第二报文之后,将第四节点的标志位的值设置为指示第二节点已经向第四节点发送第二报文的值。
采用这种设置第三节点的标志位的值和第四节点的标志位的值的方式,可以通过第三节点的标志位的值和第四节点的标志位的值,确定第一节点是否向第二节点发送了与目标数据相关的报文,即第一报文和第二报文。
可以理解的是,一般而言,第二节点向第三节点发送第一报文的时间,比第二节点向第四节点发送第二报文的时间早。也就是说,若第三节点的标志位的值表征第二节点未向第三节点发送第一报文,则,第四标志位的值理应表征第二节点未向第四节点发送第二报文。鉴于此,在本申请实施例中,前述“第二节点可以在向第三节点转发第一报文之后,设置第三节点的标志位的值”在具体实现时,可以结合第四节点的标志位来设置第三标志位的值,具体地,若第三节点的标志位的值指示第二节点未向第三节点发送第一报文,且第四节点的标志位的值指示第二节点未向第四节点发送第二报文,则第二节点将第三节点的标志位的值设置为用于指示第二节点已向第三节点发送第一报文的值。
相应的,当第二节点确定第三节点的标志位的值指示第二节点已经向第三节点发送第一报文,则第二节点向第四节点发送携带有目标数据的第二报文,第二节点向第四节点发送该携带有目标数据的第二报文之后,第二节点可以设置第四节点的标志位,具体地,若第二节点确定第四节点的标志位的值为指示第二节点未向第四节点发送第二报文的值,则第二节点将第四节点的标志位的值设置为指示第二节点已经向第四节点发送第二报文的值,否则,第二节点不修改第四节点的标志位的值。
关于第二种实现方式,现举例说明,在第一节点接收到来自第三节点的数据获取请求和来自第四节点的数据获取请求之前,第三节点的标志位的值和第四节点的标志位的值为初始值0,当第二节点将第一报文发送给第三节点之后,确定第三节点的标志位的值为0,且第四节点的标志位的值为0,则将第三节点的标志位的值设置为用于指示第二节点已向第三节点发送第一报文的值1;当第二节点向第四节点发送携带有目标数据的第二报文之后,并确定第三节点的标志位的值为1,且第四节点的标志位的值为0,则将第四节点的标志位的值设置为用于指示第二节点已向第四节点发送第二报文的值1。
采用这种设置第三节点的标志位的值和第四节点的标志位的值的方式,可以通过第三节点的标志位的值和第四节点的标志位的值,确定第二节点是否向第三节点和第四节点发送了与目标数据相关的报文,即第一报文和携带了目标数据的第二报文。
第三种实现方式:
一般而言,在实际应用中,第三节点接收到第一报文之后,会通过第二节点向第一节点发送接收确认报文,以告知第一节点第三节点已经成功接收到第一报文。故而在本申请实施例的又一种实现方式中,第二节点可以接收来自第三节点的接收确认报文,该接收确认报文表征第三节点已经成功接收到第二节点向第三节点发送的第一报文,第二节点接收到第三节点发送的接收确认报文之后,则设置第三节点的标志位的值,具体地,第二节点接收到来自第三节点的接收确认报文之后,第二节点可以根据该接收确认报文,将第三节点的标志位的值设置为用于指示第三节点已接收到所述第一报文的值。
可以理解的是,一般而言,第二节点接收到第三节点的接收确认报文的时间,比第二节点接收到第四节点的接收确认报文的时间早。也就是说,若第三节点的标志位的值表征第二节点未接收到来自第三节点的接收确认报文,则第四标志位的值理应表征第二节点未接收到来自第四节点的接收确认报文。鉴于此,在本申请实施例中,前述“第二节点接收到来自第三节点的接收确认报文之后,第二节点可以根据该接收确认报文,将第三节点的标志位的值设置为用于指示第三节点已接收到所述第一报文的值”在具体实现时,可以结合第四节点的标志位来设置第三标志位的值,具体地,若第三节点的标志位的值指示第二节点未接收到来自第三节点的接收确认报文,且第四节点的标志位的值指示第二节点未接收到来自第四节点的接收确认报文,则第二节点将第三节点的标志位的值设置为用于指示第二节点已接收到来自第三节点的接收确认报文的值。
相应的,当第二节点确定第三节点的标志位的值指示第二节点已接收到来自第三节点的接收确认报文,则第二节点将携带有目标数据的第二报文发送给第四节点,第二节点接收到来自第四节点的接收确认报文之后,第二节点可以设置第四节点的标志位,具体地,若第二节点确认第四节点的标志位的值指示第二节点未接收到来自第四节点的接收确认报文,则第二节点将第四节点的标志位的值设置为指示第二节点已经接收到第四节点的接收确认报文的值,否则,第二节点不修改第四节点的标志位的值。
关于第三种实现方式,现举例说明,在第一节点接收到来自第三节点的数据获取请求和来自第四节点的数据获取请求之前,第三节点的标志位的值和第四节点的标志位的值为初始值0,当第二节点接收到来自第三节点的接收确认报文之后,确定第三节点的标志位的值为0,且第四节点的标志位的值为0,则将第三节点的标志位的值设置为用于指示第二节点已接收到来自第三节点发送的接收确认报文的值1;当第二节点接收到来自第四节点的接收确认报文之后,确定第三节点的标志位的值为1,且第四节点的标志位的值为0,则将第四节点的标志位的值设置为用于指示第二节点已接收到来自第四节点的接收确认报文的值1。
采用这种设置第三节点的标志位的值和第四节点的标志位的值的方式,可以通过第三节点的标志位的值和第四节点的标志位的值,确定第三节点和第四节点是否成功接收到了与目标数据相关的报文,即第一报文和携带了目标数据的第二报文。
在本申请实施例中,考虑到第二节点的存储空间是有限的,因此,在本申请实施例中,若第二节点将第一报文发送给第三节点,且第二节点将携带有目标数据的第二报文发送给第四节点之后,可以删除第二节点中存储的目标数据和目标数据与目标数据的标识之间的映射关系。第二节点可以根据第三节点的标志位的值和第四节点的标志位的值,确认是否删除目标数据和目标数据与目标数据的标识之间的映射关系。在本申请实施例中,第二节点设置第三节点的标志位的值和第四节点的标志位的值的方式不同,第二节点根据第三节点的标志位的值和第四节点的标志位的值,确认是否删除目标数据和目标数据与目标数据的标识之间的映射关系的实现方式也不同。
若第三节点的标志位的值和第四节点的标志位的值是采用以上第一种实现方式设置的,则“第二节点根据第三节点的标志位的值和第四节点的标志位的值,确认是否删除目标数据和目标数据与目标数据的标识之间的映射关系”在具体实现时,若第二节点确认第三节点的标志位的值指示第二节点已接收到向第三节点发送的第一报文,且第四节点的标志位的值指示第二节点已接收到向第四节点发送的第二报文,第二节点确认删除目标数据和目标数据与目标数据的标识之间的映射关系,并将第三节点标志位的值和第四节点标志位的值重置为初始值。
若第三节点的标志位的值和第四节点的标志位的值是采用以上第二种实现方式设置的,则“第二节点根据第三节点的标志位的值和第四节点的标志位的值,确认是否删除目标数据和目标数据与目标数据的标识之间的映射关系”在具体实现时,若第二节点确认第三节点的标志位的值指示第二节点已向第三节点发送第一报文,且第四节点的标志位的值指示第二节点已向第四节点发送第二报文,第二节点确认删除目标数据和目标数据与目标数据的标识之间的映射关系,并将第三节点标志位的值和第四节点标志位的值重置为初始值。
若第三节点的标志位的值和第四节点的标志位的值是采用以上第三种实现方式设置的,则“第二节点根据第三节点的标志位的值和第四节点的标志位的值,确认是否删除目标数据和目标数据与目标数据的标识之间的映射关系”在具体实现时,若第二节点确认第三节点的标志位的值指示第二节点已接收到来自第三节点的接收确认报文,且第四节点的标志位的值指示第二节点已接收到来自第四节点的接收确认报文,第二节点确认删除目标数据和目标数据与目标数据的标识之间的映射关系,并将第三节点标志位的值和第四节点标志位的值重置为初始值。
本申请实施例不具体限定第二节点删除目标数据和目标数据与目标数据的标识之间的映射关系的具体实现方式,作为一种示例,第二节点可以将第二报文中携带的第二转发指令修改为删除指令,从而根据删除指令删除目标数据和目标数据与目标数据的标识之间的映射关系,以释放用于存储目标数据和目标数据与目标数据的标识之间的映射关系的存储空间,并将相应标志位的值重置为初始值。
在本申请实施例中,第二节点根据删除指令删除目标数据和目标数据与目标数据的标识之间的映射关系在具体实现时,可以有多种实现方式。在一种实现方式中,若第二节点支持报文环回功能,则可以将携带有目标数据和删除指令的第二报文输入第二节点的报文环回接口,从而使得第二节点根据报文环回接口输入的携带有目标数据和删除指令的第二报文,删除目标数据和目标数据与目标数据的标识之间的映射关系。在又一种实现方式中,第二节点可以将前述携带有目标数据和删除指令的第二报文发送给第四节点,第四节点接收到第二报文之后,将该删除指令携带在第四节点的接收确认报文中,第二节点根据来自第四节点的接收确认报文中携带的删除指令,删除目标数据和目标数据与目标数据的标识之间的映射关系。
在本申请实施例的一种实现方式中,第二节点删除目标数据和目标数据与目标数据的标识之间的映射关系之后,将第三节点的标志位的值和第四节点的标志位的值设置为初始值,以便于下一次执行将目标数据发送给第三节点和第四节点的步骤时,再次设置第三节点的标志位的值和第四节点的标志位的值,从而根据第三节点的标志位的值和第四节点的标志位的值,确定第一节点是否将目标数据发送给了第三节点和第四节点。
可以理解的是,前述第一种设置第三节点的标志位的值和第四节点的标志位的值的实现方式和第二种设置第三节点的标志位的值和第四节点的标志位的值的实现方式,通过第三节点的标志位的值和第四节点的标志位的值,不能确定第三节点和第四节点均已成功接收到目标数据。对于这种情况,若第三节点未成功接收到目标数据,再次向第一节点发送数据获取请求时,第一节点必须重新发送目标数据。若第四节点未成功接收到目标数据,再次向第一节点发送数据获取请求时,途径第二节点时由于第二节点可能已经删除了目标数据和目标数据与目标数据的标识之间的映射关系,则可能需要第一节点重新发送目标数据。而如前文,第一节点可能要执行多次将目标数据发送给第三节点和第四节点的步骤,即第二节点分别执行n次接收来自第一节点的第一报文和根据第一转发指令存储目标数据和目标数据与目标数据的标识之间的映射关系的步骤,以存储n组目标数据和目标数据与目标数据的标识之间的映射关系,n大于或等于2。
鉴于此,在本申请实施例中,第二节点第n次执行根据删除指令删除目标数据和目标数据与目标数据的标识的映射关系在具体实现时,可以删除第二节点第m次存储的目标数据和目标数据与目标数据的标识之间的映射关系,其中,m为小于n的整数,例如m=n-k,k为正整数。利用这种方案,即使第四节点未成功接收到目标数据,再次向第一节点发送数据获取请求时,第一节点还是可以只发送第二报文,途径第二节点时则第二节点可以从自身存储的数据中获取目标数据,从而将目标数据发送给第四节点降低了第一节点和第二节点之间传输目标数据所占的带宽。
基于以上实施例提供的报文处理方法,以下结合图1和图5,介绍应用于图1所示的应用场景介绍一种报文处理方法。
参见图5,该图为本申请实施例提供的报文处理方法的信令交互图。该方法可以通过如下步骤201-221实现。
步骤201:worker 103向转发设备102发送worker103上一轮训练得到的模型参数。
步骤202:worker 104向转发设备102发送worker104上一轮训练得到的模型参数。
步骤203:转发设备102将来自worker 103和worker 104的模型参数发送给PS101。
需要说明的是,本申请实施例不具体限定步骤201和步骤202的执行顺序,转发设备102在接收到来自worker 103的模型参数之后,即可将来自worker 103的模型参数发送给PS 101,相应的,转发设备102在接收到来自worker 104的模型参数之后,即可将来自worker 104的模型参数发送给PS 101。步骤203为了方便描述,将两个转发步骤合成了一个步骤。
步骤204:PS 101根据来自worker 103的模型参数和worker 104的模型参数确定目标数据。
需要说明的是,PS 101根据来自worker 103的模型参数和worker 104的模型参数确定目标数据,例如可以为PS 101根据来自worker 103的模型参数和worker 104的模型参数,进行参数聚合,得到所述目标数据,该目标数据可以用于对worker 103和worker 104进行下一轮训练。步骤205:worker 103向转发设备102发送数据获取请求。
步骤206:转发设备102将worker 103的数据获取请求发送给PS 101。
步骤207:worker 104向转发设备102发送数据获取请求。
步骤208:转发设备102将worker 104的数据获取请求发送给PS 101。
步骤209:PS 101获取目标数据和目标数据的标识。
需要说明的是,worker 103的数据获取请求和worker 104的数据获取请求,用于请求相同的目标数据。PS 101可以根据worker 103的数据获取请求和worker 104的数据获取请求,获取步骤S204中预先确定目标数据,并获取目标数据的标识。
步骤210:PS 101将第一报文发送给转发设备102。
第一报文中携带有目标数据、目标数据的标识和第一转发指令。
步骤211:转发设备102保存目标数据和目标数据与目标数据的标识之间的映射关系,并设置worker 103的标志位。
转发设备102根据第一转发指令保存目标数据和目标数据与目标数据的标识之间的映射关系。转发设备102可以将worker 103的标志位的值设置为“1”。
步骤212:转发设备102将第一报文发送给worker 103。
步骤213:PS 101将第二报文发送给转发设备102。
第二报文中携带有目标数据的标识和第二转发指令。第二转发指令用于指示转发设备102在第二报文中携带目标数据并将携带目标数据的第二报文发送给worker 104。
步骤214:转发设备102设置worker 104的标志位的值,在第二报文中携带删除指令和目标数据。
转发设备102可以根据第二转发指令在第二报文中携带目标数据,并将worker104的标志位的值设置为“1”,转发设备102还可以根据worker 103的标志位的值和worker104的标志位的值,将第二报文中的第二转发指令修改为删除指令。
步骤215:转发设备102将携带有删除指令和目标数据的第二报文发送给worker104。
步骤216:worker 103将接收确认报文发送给转发设备102。
步骤217:转发设备102将worker 103的接收确认报文发送给PS 101。
步骤218:worker 104在接收确认报文中携带删除指令。
步骤219:worker 104将携带删除指令的接收确认报文发送给转发设备102。
步骤220:转发设备102根据删除指令删除目标数据和目标数据与目标数据的标识之间的映射关系。
步骤221:转发设备102将worker 104的接收确认报文发送给PS 101。
需要说明的是,本申请实施例不具体限定前述步骤213-215和步骤215-217之间的执行顺序。前述步骤213-215中的部分或者全部步骤也可以在步骤217之后执行,也可以在步骤215-217之间执行。
需要说明的是,虽然图5仅示出了worker 103和worker 104,但是这只是为了方便理解而示出,其并不构成对本申请实施例的限定。在实际应用中,还可以包括其它worker,关于第一节点、第二节点以及其它worker之间的通信方式,与第一节点、第二节点以及worker 104之间的通信方式类似,故在此不再一一赘述。
基于以上实施例提供的报文处理方法,本申请实施例还提供了与之对应的报文处理装置,以下结合附图介绍该报文处理装置。
参见图6,该图为本申请实施例提供的一种应用于第一节点的报文处理装置的结构示意图。该图示出的报文处理装置600,例如可以包括第一发送单元601和第二发送单元602。
第一发送单元601,用于向第二节点发送第一报文,第一报文中携带有目标数据、目标数据的标识和第一转发指令,第一转发指令用于指示第二节点存储目标数据和目标数据与目标数据的标识之间的映射关系,并向第三节点转发第一报文;
第二发送单元602,用于向第二节点发送第二报文,第二报文中携带有目标数据的标识和第二转发指令,第二转发指令用于指示第二节点在第二报文中携带与目标数据的标识对应的目标数据,并将携带有目标数据的第二报文发送给第四节点。
在一种可能的实现方式中,该装置还包括:接收单元和获取单元。
接收单元,用于通过第二节点接收第三节点的数据获取请求和第四节点的数据获取请求,第三节点的数据获取请求和第四节点的数据获取请求均用于获取目标数据;
第一获取单元,用于根据第三节点的数据获取请求和/或第四节点的数据获取请求获取目标数据和目标数据的标识。
在一种可能的实现方式中,第一报文中还携带有第一报文长度字段,第一报文长度字段中的值根据目标数据的长度、目标数据的标识的长度以及第一转发指令的长度进行确定。
在一种可能的实现方式中,第二报文中还携带有第二报文长度字段,第二报文长度字段的值根据目标数据的标识的长度以及第二转发指令的长度进行确定。
在一种可能的实现方式中,所述装置还包括:
第二获取单元,用于获取第三节点的模型参数和第四节点的模型参数,第三节点的模型参数为第三节点通过上一轮训练机器学习模型得到;第四节点的模型参数为第四节点通过上一轮训练机器学习模型得到;
目标数据根据第三节点的模型参数和第四节点的模型参数计算得到,目标数据用于对第三节点的机器学习模型和第四节点的机器学习模型进行下一轮训练。
由于所述装置600是与以上方法实施例提供的由第一节点执行的报文处理方法对应的装置,所述装置600的各个单元的具体实现,均与以上由第一节点执行的报文处理方法为同一构思,因此,关于所述装置600的各个单元的具体实现,可以参考以上方法实施例中对于由第一节点执行的报文处理方法的描述部分,此处不再赘述。
参见图7,该图为本申请实施例提供的一种应用于第二节点的报文处理装置的结构示意图。该图示出的报文处理装置700,可以包括第一接收单元701、存储单元702、转发单元703、第二接收单元704、第一确定单元705和第二转发单元706。
第一接收单元701,用于接收来自第一节点的第一报文,第一报文中携带有目标数据、目标数据的标识和第一转发指令,第一转发指令指示第二节点存储目标数据和目标数据与目标数据的标识之间的映射关系,并向第三节点转发第一报文;
存储单元702,用于根据第一转发指令存储目标数据以及目标数据与目标数据的标识之间的映射关系;
第一转发单元703,用于向第三节点转发第一报文;
第二接收单元704,用于接收来自第一节点的第二报文,第二报文中携带有目标数据的标识和第二转发指令,第二转发指令指示第二节点在第二报文中携带目标数据,并向第四节点转发携带有目标数据的第二报文;
第一确定单元705,用于根据目标数据与目标数据的标识之间的映射关系,确定与第二报文中携带的目标数据的标识对应的目标数据,在第二报文中携带目标数据;
第二转发单元706,用于向第四节点转发携带有目标数据的第二报文。
在一种可能的实现方式中,第二节点中存储有第三节点的标志位;装置还包括:
设置单元,用于将第三节点的标志位的值设置为用于指示第二节点已接收到向第三节点发送的第一报文的值。
在一种可能的实现方式中,第二节点中存储有第四节点的标志位;
设置单元,具体用于:
若第三节点的标志位的值指示第二节点未接收到向第三节点发送的第一报文,且第四节点的标志位的值指示第二节点未接收到向第四节点发送的第二报文,则第二节点将第三节点的标志位的值设置为用于指示第二节点已接收到向第三节点发送的第一报文的值。
在一种可能的实现方式中,该装置还包括:
第三接收单元,用于接收来自第三节点的数据获取请求和第四节点的数据获取请求,第三节点的数据获取请求用于获取的目标数据和第四节点的数据获取请求用于获取的目标数据相同;
第三转发单元,用于向第一节点转发第三节点的数据获取请求和第四节点的数据获取请求。
在一种可能的实现方式中,所述装置还包括:
获取单元,用于获取第三节点的模型参数和第四节点的模型参数,并向第一节点发送第三节点的模型参数和第四节点的模型参数;第三节点的模型参数为第三节点通过上一轮训练机器学习模型得到;第四节点的模型参数为第四节点通过上一轮训练机器学习模型得到;
目标数据根据第三节点的模型参数和第四节点的模型参数计算得到,目标数据用于对第三节点的机器学习模型和第四节点的机器学习模型进行下一轮训练。
在一种可能的实现方式中,第二报文中还携带有报文长度字段;
该装置还包括:
第二确定单元,用于根据目标数据的长度、目标数据的标识的长度以及第二转发指令的长度确定第二报文中的报文长度字段中的值。
由于所述装置700是与以上方法实施例提供的由第二节点执行的报文处理方法对应的装置,所述装置700的各个单元的具体实现,均与以上由第二节点执行的报文处理方法为同一构思,因此,关于所述装置700的各个单元的具体实现,可以参考以上方法实施例中对于由第二节点执行的报文处理方法的描述部分,此处不再赘述。
本申请实施例还提供了一种对应于报文处理装置600的报文处理设备,该报文处理设备包括处理器和存储器;
所述存储器,用于存储指令;
所述处理器,用于执行所述存储器中的所述指令,执行以上实施例提供的由第一节点执行的报文处理方法。
本申请实施例还提供了一种对应于报文处理装置700的报文处理设备,该报文处理设备包括处理器和存储器;
所述存储器,用于存储指令;
所述处理器,用于执行所述存储器中的所述指令,执行以上实施例提供的由第二节点执行的报文处理方法。
需要说明的是,本申请实施例中提供的对应于报文处理装置600的报文处理设备、以及对应于报文处理装置700的报文处理设备,其硬件结构均可以为如图8所示的结构,图8为本申请实施例提供的一种报文处理设备的结构示意图。
请参阅图8所示,报文处理设备800包括:处理器810、通信接口820和和存储器830。其中报文处理设备800中的处理器810的数量可以一个或多个,图8中以一个处理器为例。本申请实施例中,处理器810、通信接口820和存储器830可通过总线系统或其它方式连接,其中,图8中以通过总线系统840连接为例。
处理器810可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。处理器810还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器830可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(random-access memory,RAM);存储器830也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器830还可以包括上述种类的存储器的组合。
当图8所示的报文处理设备为对应于报文处理装置600的报文处理设备时,存储器830可以将前述实施例提及的第三节点的数据获取请求中携带的模型参数以及第三节点的数据获取请求中携带的模型参数存储器830中。当图8所示的报文处理设备为对应于报文处理装置700的报文处理设备时,存储器830可以将前述实施例提及的目标数据与目标数据的标识之间的映射关系存储器830中。
可选地,存储器830存储有操作系统和程序、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,程序可包括各种操作指令,用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。处理器810可以读取存储器830中的程序,实现本申请实施例提供的报文处理方法。
总线系统840可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线系统840可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行以上实施例提供的由第一节点执行的报文处理方法。
本申请实施例还提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行以上实施例提供的由第二节点执行的报文处理方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行以上实施例提供的由第一节点执行的报文处理方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行以上实施例提供的由第二节点执行的报文处理方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (22)

1.一种报文处理方法,其特征在于,所述方法包括:
第一节点向第二节点发送第一报文,所述第一报文中携带有所述目标数据、所述目标数据的标识和第一转发指令,所述第一转发指令用于指示所述第二节点存储所述目标数据和所述目标数据与所述目标数据的标识之间的映射关系,并向第三节点转发所述第一报文;
所述第一节点向所述第二节点发送第二报文,所述第二报文中携带有所述目标数据的标识和第二转发指令,所述第二转发指令用于指示所述第二节点在所述第二报文中携带与所述目标数据的标识对应的所述目标数据,并将携带有所述目标数据的第二报文发送给第四节点。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
第一节点通过第二节点接收所述第三节点的数据获取请求和所述第四节点的数据获取请求,所述第三节点的数据获取请求和所述第四节点的数据获取请求均用于获取所述目标数据;
所述第一节点根据所述第三节点的数据获取请求和/或所述第四节点的数据获取请求获取所述目标数据和所述目标数据的标识。
3.根据权利要求1-2任一项所述的方法,其特征在于,所述第一报文中还携带有第一报文长度字段,所述第一报文长度字段中的值根据所述目标数据的长度、所述目标数据的标识的长度以及所述第一转发指令的长度进行确定。
4.根据权利要求1-2任一项所述的方法,其特征在于,所述第二报文中还携带有第二报文长度字段,所述第二报文长度字段的值根据所述目标数据的标识的长度以及所述第二转发指令的长度进行确定。
5.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
所述第一节点获取所述第三节点的模型参数和所述第四节点的模型参数;
所述第三节点的模型参数为所述第三节点通过上一轮训练机器学习模型得到;所述第四节点的模型参数为所述第四节点通过上一轮训练机器学习模型得到;
所述目标数据根据所述第三节点的模型参数和所述第四节点的模型参数计算得到,所述目标数据用于对所述第三节点的机器学习模型和所述第四节点的机器学习模型进行下一轮训练。
6.一种报文处理方法,其特征在于,所述方法包括:
第二节点接收来自第一节点的第一报文,所述第一报文中携带有目标数据、所述目标数据的标识和第一转发指令,所述第一转发指令指示所述第二节点存储所述目标数据和所述目标数据与所述目标数据的标识之间的映射关系,并向第三节点转发所述第一报文;
所述第二节点根据所述第一转发指令存储所述目标数据以及所述目标数据与所述目标数据的标识之间的映射关系,并向所述第三节点转发所述第一报文;
所述第二节点接收来自所述第一节点的第二报文,所述第二报文中携带有所述目标数据的标识和第二转发指令,所述第二转发指令指示所述第二节点在所述第二报文中携带所述目标数据,并向第四节点转发携带有所述目标数据的第二报文;
所述第二节点根据所述目标数据与所述目标数据的标识之间的映射关系,确定与所述第二报文中携带的所述目标数据的标识对应的目标数据,在所述第二报文中携带所述目标数据;
所述第二节点向所述第四节点转发携带有所述目标数据的第二报文。
7.根据权利要求6所述的方法,其特征在于,所述第二节点中存储有所述第三节点的标志位;
所述第二节点在接收到来自所述第一节点的第一报文之后,所述方法还包括:
所述第二节点将所述第三节点的标志位的值设置为用于指示所述第二节点已接收到向所述第三节点发送的第一报文的值。
8.根据权利要求7所述的方法,其特征在于,所述第二节点中存储有所述第四节点的标志位;
所述第二节点将所述第三节点的标志位的值设置为用于指示所述第二节点已接收到向所述第三节点发送的第一报文的值包括:
若所述第三节点的标志位的值指示所述第二节点未接收到向所述第三节点发送的第一报文,且所述第四节点的标志位的值指示所述第二节点未接收到向所述第四节点发送的第二报文,则所述第二节点将所述第三节点的标志位的值设置为用于指示所述第二节点已接收到向所述第三节点发送的第一报文的值。
9.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述第二节点接收来自所述第三节点的数据获取请求和所述第四节点的数据获取请求,所述第三节点的数据获取请求用于获取的目标数据和所述第四节点的数据获取请求用于获取的目标数据相同;
所述第二节点向所述第一节点转发所述第三节点的数据获取请求和所述第四节点的数据获取请求。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
所述第二节点获取所述第三节点的模型参数和所述第四节点的模型参数,并向所述第一节点转发所述第三节点的模型参数和所述第四节点的模型参数;
所述第三节点的模型参数为所述第三节点通过上一轮训练机器学习模型得到;所述第四节点的模型参数为所述第四节点通过上一轮训练机器学习模型得到;
所述目标数据根据所述第三节点的模型参数和所述第四节点的模型参数计算得到,所述目标数据用于对所述第三节点的机器学习模型和所述第四节点的机器学习模型进行下一轮训练。
11.根据权利要求6-10任一项所述的方法,其特征在于,所述第二报文中还携带有报文长度字段;
当所述第二节点在所述第二报文中携带所述目标数据之后,所述方法还包括:
所述第二节点根据所述目标数据的长度、所述目标数据的标识的长度以及所述第二转发指令的长度确定所述第二报文中的报文长度字段中的值。
12.一种报文处理装置,其特征在于,所述装置包括:
第一发送单元,用于向第二节点发送第一报文,所述第一报文中携带有所述目标数据、所述目标数据的标识和第一转发指令,所述第一转发指令用于指示所述第二节点存储所述目标数据和所述目标数据与所述目标数据的标识之间的映射关系,并向第三节点转发所述第一报文;
第二发送单元,用于向所述第二节点发送第二报文,所述第二报文中携带有所述目标数据的标识和第二转发指令,所述第二转发指令用于指示所述第二节点在所述第二报文中携带与所述目标数据的标识对应的所述目标数据,并将携带有所述目标数据的第二报文发送给第四节点。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
接收单元,用于通过第二节点接收所述第三节点的数据获取请求和所述第四节点的数据获取请求,所述第三节点的数据获取请求和所述第四节点的数据获取请求均用于获取所述目标数据;
第一获取单元,用于根据所述第三节点的数据获取请求和/或所述第四节点的数据获取请求获取所述目标数据和所述目标数据的标识。
14.根据权利要求12-13任一项所述的装置,其特征在于,所述第一报文中还携带有第一报文长度字段,所述第一报文长度字段中的值根据所述目标数据的长度、所述目标数据的标识的长度以及所述第一转发指令的长度进行确定。
15.根据权利要求12-13任一项所述的装置,其特征在于,所述第二报文中还携带有第二报文长度字段,所述第二报文长度字段的值根据所述目标数据的标识的长度以及所述第二转发指令的长度进行确定。
16.根据权利要求12-15任一项所述的装置,其特征在于,所述装置还包括:
第二获取单元,用于获取所述第三节点的模型参数和所述第四节点的模型参数;所述第三节点的模型参数为所述第三节点通过上一轮训练机器学习模型得到;所述第四节点的模型参数为所述第四节点通过上一轮训练机器学习模型得到;
所述目标数据根据所述第三节点的模型参数和所述第四节点的模型参数计算得到,所述目标数据用于对所述第三节点的机器学习模型和所述第四节点的机器学习模型进行下一轮训练。
17.一种报文处理装置,其特征在于,所述装置包括:
第一接收单元,用于接收来自第一节点的第一报文,所述第一报文中携带有目标数据、所述目标数据的标识和第一转发指令,所述第一转发指令指示所述第二节点存储所述目标数据和所述目标数据与所述目标数据的标识之间的映射关系,并向第三节点转发所述第一报文;
存储单元,用于根据所述第一转发指令存储所述目标数据以及所述目标数据与所述目标数据的标识之间的映射关系;
第一转发单元,用于向所述第三节点转发所述第一报文;
第二接收单元,用于接收来自所述第一节点的第二报文,所述第二报文中携带有所述目标数据的标识和第二转发指令,所述第二转发指令指示所述第二节点在所述第二报文中携带所述目标数据,并向第四节点转发携带有所述目标数据的第二报文;
第一确定单元,用于根据所述目标数据与所述目标数据的标识之间的映射关系,确定与所述第二报文中携带的所述目标数据的标识对应的目标数据,在所述第二报文中携带所述目标数据;
第二转发单元,用于向所述第四节点转发携带有所述目标数据的第二报文。
18.根据权利要求17所述的装置,其特征在于,所述第二节点中存储有所述第三节点的标志位;所述装置还包括:
设置单元,用于将所述第三节点的标志位的值设置为用于指示所述第二节点已接收到向所述第三节点发送的第一报文的值。
19.根据权利要求18所述的装置,其特征在于,所述第二节点中存储有所述第四节点的标志位;
所述设置单元,具体用于:
若所述第三节点的标志位的值指示所述第二节点未接收到向所述第三节点发送的第一报文,且所述第四节点的标志位的值指示所述第二节点未接收到向所述第四节点发送的第二报文,则所述第二节点将所述第三节点的标志位的值设置为用于指示所述第二节点已接收到向所述第三节点发送的第一报文的值。
20.根据权利要求17所述的装置,其特征在于,所述装置还包括:
第三接收单元,用于接收来自所述第三节点的数据获取请求和所述第四节点的数据获取请求,所述第三节点的数据获取请求用于获取的目标数据和所述第四节点的数据获取请求用于获取的目标数据相同;
第三转发单元,用于向所述第一节点转发所述第三节点的数据获取请求和所述第四节点的数据获取请求。
21.根据权利要求20所述的装置,其特征在于,所述装置还包括:
获取单元,用于获取所述第三节点的模型参数和所述第四节点的模型参数;所述第三节点的模型参数为所述第三节点通过上一轮训练机器学习模型得到;所述第四节点的模型参数为所述第四节点通过上一轮训练机器学习模型得到;
所述目标数据根据所述第三节点的模型参数和所述第四节点的模型参数计算得到,所述目标数据用于对所述第三节点的机器学习模型和所述第四节点的机器学习模型进行下一轮训练。
22.根据权利要求17-21任一项所述的装置,其特征在于,所述第二报文中还携带有报文长度字段;
所述装置还包括:
第二确定单元,用于根据所述目标数据的长度、所述目标数据的标识的长度以及所述第二转发指令的长度确定所述第二报文中的报文长度字段中的值。
CN201910362838.8A 2019-04-30 2019-04-30 一种报文处理方法、装置及设备 Active CN111865884B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910362838.8A CN111865884B (zh) 2019-04-30 2019-04-30 一种报文处理方法、装置及设备
PCT/CN2020/084591 WO2020220986A1 (zh) 2019-04-30 2020-04-14 一种报文处理方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910362838.8A CN111865884B (zh) 2019-04-30 2019-04-30 一种报文处理方法、装置及设备

Publications (2)

Publication Number Publication Date
CN111865884A true CN111865884A (zh) 2020-10-30
CN111865884B CN111865884B (zh) 2023-01-06

Family

ID=72966651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910362838.8A Active CN111865884B (zh) 2019-04-30 2019-04-30 一种报文处理方法、装置及设备

Country Status (2)

Country Link
CN (1) CN111865884B (zh)
WO (1) WO2020220986A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113395198A (zh) * 2021-06-16 2021-09-14 广州极飞科技股份有限公司 设备的组网方法及装置、数据传输系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008025283A1 (fr) * 2006-08-21 2008-03-06 Huawei Technologies Co., Ltd. Procédé et système pour une détection d'échec ethernet oam
CN102379109A (zh) * 2011-08-16 2012-03-14 华为技术有限公司 一种数据流重用传输的方法、复制点设备及系统
CN105915427A (zh) * 2016-03-31 2016-08-31 华为技术有限公司 一种报文发送、接收方法及设备
CN106921641A (zh) * 2015-12-28 2017-07-04 华为技术有限公司 传输报文的方法和装置
WO2017215456A1 (zh) * 2016-06-17 2017-12-21 中兴通讯股份有限公司 一种告警方法、装置、网络节点和计算机存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002271356A (ja) * 2001-03-12 2002-09-20 Oki Electric Ind Co Ltd ネットワーク通信システム
CN101459619B (zh) * 2009-01-05 2011-01-05 杭州华三通信技术有限公司 一种在网络中对报文传输的处理方法和装置
CN107277087B (zh) * 2016-04-06 2020-09-04 阿里巴巴集团控股有限公司 数据处理方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008025283A1 (fr) * 2006-08-21 2008-03-06 Huawei Technologies Co., Ltd. Procédé et système pour une détection d'échec ethernet oam
CN102379109A (zh) * 2011-08-16 2012-03-14 华为技术有限公司 一种数据流重用传输的方法、复制点设备及系统
CN106921641A (zh) * 2015-12-28 2017-07-04 华为技术有限公司 传输报文的方法和装置
CN105915427A (zh) * 2016-03-31 2016-08-31 华为技术有限公司 一种报文发送、接收方法及设备
WO2017215456A1 (zh) * 2016-06-17 2017-12-21 中兴通讯股份有限公司 一种告警方法、装置、网络节点和计算机存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113395198A (zh) * 2021-06-16 2021-09-14 广州极飞科技股份有限公司 设备的组网方法及装置、数据传输系统
CN113395198B (zh) * 2021-06-16 2022-12-27 广州极飞科技股份有限公司 设备的组网方法及装置、数据传输系统

Also Published As

Publication number Publication date
CN111865884B (zh) 2023-01-06
WO2020220986A1 (zh) 2020-11-05

Similar Documents

Publication Publication Date Title
CN106850402B (zh) 消息的传输方法和装置
CN109391560B (zh) 网络拥塞的通告方法、代理节点及计算机设备
US20200358886A1 (en) Data Transmission Method, Apparatus, And System
CN107864228B (zh) 一种内容分发网络中的连接建立方法及系统
CN111083161A (zh) 数据传输的处理方法及装置、物联网设备
CN108432194B (zh) 一种拥塞处理的方法、主机及系统
CN108965484A (zh) 一种物联网数据的传输方法、系统及终端
US8953631B2 (en) Interruption, at least in part, of frame transmission
CN106612284B (zh) 一种流数据的传输方法和装置
CN110971487B (zh) 网络协议识别方法及装置
US11134129B2 (en) System for determining whether to forward packet based on bit string within the packet
WO2019223795A1 (zh) 报文传输方法、通信装置和系统
GB2592315A (en) Methods and systems for sending packets through a plurality of tunnels
CN107204924B (zh) 链路发现方法及装置
US10136375B2 (en) Method for service data management, apparatus, and system
CN107508828B (zh) 一种超远程数据交互系统及方法
US11196792B2 (en) Method, device and system for transmitting data
CN108809549B (zh) 一种传输数据的方法及设备
CN111865884B (zh) 一种报文处理方法、装置及设备
CN112737995B (zh) 以太网帧的处理方法、装置、设备及存储介质
US20210211220A1 (en) Method and apparatus for packet wash in networks
CN105656994B (zh) 一种业务加速方法和装置
CN109995603B (zh) 一种Tag模型下丢包测量的方法、装置及电子设备
CN114979090A (zh) IPv6数据包处理方法、装置、计算机设备和存储介质
CN114615170B (zh) 报文处理方法、设备及计算机存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant