CN114422626B - 协议传输的方法、装置及系统 - Google Patents
协议传输的方法、装置及系统 Download PDFInfo
- Publication number
- CN114422626B CN114422626B CN202210107164.9A CN202210107164A CN114422626B CN 114422626 B CN114422626 B CN 114422626B CN 202210107164 A CN202210107164 A CN 202210107164A CN 114422626 B CN114422626 B CN 114422626B
- Authority
- CN
- China
- Prior art keywords
- data
- message
- queue
- sender
- party
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/24—Negotiation of communication capabilities
Abstract
本发明提供一种协议传输方法及装置,应用于裸金属部署场景,方法包括:发送方向多个接收方重复广播发送数据报文;接收方中包括责任方;若责任方接收所述报文,则责任方向所述发送方单播返回数据确认报文;责任方也负责向其他接收方通过单播方式补发丢失的数据报文,确保数据被所有接收方接收。其中发送方通过待确认队列和待删除队列,责任方通过责任队列存储所述数据。本发明通过广播和单播结合的可靠单向传输协议,应用在裸金属实例部署的场景下,可以极大的提高部署效率。并且在不增加内存消耗的前提下实现数据传输速度的极大提升。
Description
技术领域
本发明涉及数据处理技术,尤其涉及一种协议传输的方法、装置及系统。
背景技术
在裸金属云实例批量部署时,现有的常规方案是将系统镜像存放在共享的存储系统中,通过iSCSI/NFS/Samba等协议共享出来,然后由在各个裸金属上运行的程序读取并写入到本地磁盘。
现有技术方案数据的传输量和时间消耗与裸金属的数量成正比。在大量部署裸金属实例时会给共享存储系统带来巨额大的压力,并消耗大量的时间。例如一个30GB的实例部署1000个实例,通过千兆网卡进行读取,不考虑硬盘读写时间,通过网络传输理论上的最快时间仅为8.3小时。因此存在增加内存消耗显著或者数据传输速度较低等问题。
发明内容
本发明实施例提供一种协议传输的方法、装置及系统,通过广播和单播结合的可靠单向传输协议。实现了数据的高效可靠传输,应用在裸金属实例部署的场景下,可以极大的提高部署效率。并且在不增加内存消耗的前提下实现数据传输速度的极大提升,因为原有技术时间消耗和部署实例个数成正比,而使用本发明描述的协议,得到时间消耗和部署实例个数不显著相关。
本发明实施例的第一方面,提供一种协议传输的方法,应用于裸金属部署场景,所述方法包括:
发送方向多个接收方广播发送数据报文;其中所述接收方包括责任方,所述责任方为每个数据报文都有一个通过一致性哈希算法由报文序号确定的特别接收方;
责任方负责向发送方单播发送数据确认报文;并通过单播向其他接收方发送缺失数据报文;
发送方通过待确认队列和待删除队列,责任方通过责任队列存储所述数据报文。
可选地,所述协议传输的参与方包括:
一个发送方、多个接收方,以及各个参与方都处于同一个二层广播域,其中所述二层广播域是指各参与方实现单播或者广播。
可选地,所述数据报文包括至少一种:
起始报文、同意接收报文、信息通告报文,信息通告确认报文、数据报文、数据确认报文,删除请求报文,删除确认报文,接收方异常报文,信息修改通告报文,信息修改通告确认报文。
可选地,发送方数据队列的使用包括:
发送方发送数据报文后,将数据放入待确认队列;
待确认队列里的数据会按照预定的时间间隔和次数被重新发送;
发送方在收到数据确认报文后,将数据从待确认队列移入待删除队列;
如果待确认队列或待删除队列有数据,发送方会按照预定的时间间隔和次数广播发送删除请求报文;
发送方在收到删除确认报文后,将数据从待确认或待删除队列删除;
待确认队列或待删除队列如果满了,发送方将暂停发送新数据报文。
可选地,责任方数据队列的使用包括:
责任方接收到发送方发送的广播数据报文后将数据放入责任数据队列;
责任方收到所有其他接收方发送的单播数据确认报文后将数据从责任数据队列删除,并向发送方单播发送删除确认报文;
责任方按照设定的时间间隔和次数向未发送数据确认报文的其他接收方单播重新发送责任数据队列里的数据;
责任队列如果满了,责任方将暂停向发送方发送数据确认报文。
可选地,责任方的报文行为包括:
责任方收到发送方发送的广播数据请求报文后,向发送方单播回复数据确认报文;
责任方在确认所有接收方都收到数据报文后通过单播向发送方发送删除确认报文;
责任方在没有收到某个接收方发送的数据确认报文后将向此接收方单播发送相应数据报文;
责任方在向某接收方单播发送数据报文,并没有收到其回应的数据确认报文次数操作阈值后将向发送方发送接收方异常报文;
责任方在收到发送方广播发送的删除请求报文后,将向发送方单播回复删除确认报文。
可选地,接收方的报文行为包括:
非责任方接收方在收到发送方广播发送的数据报文后,将向责任方发送数据确认报文;
非责任方接收方在收到责任方单播发送的数据报文后,将向责任方发送数据确认报文。
可选地,发送方的行为包括:
发送方将发送数据按次序分为数据片段通过广播向所有接收方发送数据报文;
发送方如果没有收到责任方回复的数据确认报文,将重新广播发送数据报文;
发送方重复广播发送数据报文并没有得到责任方的数据确认报文次数超过阈值后,将发送信息修改通告报文;
发送方将针对没有收到删除确认报文的数据广播发送删除请求报文;
发送方重复广播发送删除请求报文并没有得到责任方的删除确认报文次数超过阈值后,将认为相应责任方异常,将发送信息修改通告报文;
发送方收到接收方异常报文后,将发送信息修改报文。
9、一种协议传输的装置,其特征在于,应用于裸金属部署场景,所述装置包括:
广播模块,用于发送方向多个接收方广播发送数据报文;其中所述接收方包括责任方,所述责任方为每个数据报文都有一个通过一致性哈希算法由报文序号确定的特别接收方;
单播模块,用于责任方负责向发送方单播发送数据确认报文;并通过单播向其他接收方发送缺失数据报文;
队列模块,用于采用定长循环队列的方式进行传输过程的数据存储;
发送方通过待确认队列和待删除队列,责任方通过责任队列存储所述数据报文。
本发明实施例的第二方面,提供一种协议传输的装置,应用于裸金属部署场景,所述装置包括:
广播模块,用于发送方向多个接收方广播发送数据报文;其中所述接收方包括责任方,所述责任方为每个数据报文都有一个通过一致性哈希算法由报文序号确定的特别接收方;
单播模块,用于责任方负责向发送方单播发送数据确认报文;
责任方还负责通过单播向其他接收方发送缺失数据报文;
队列模块,用于发送方通过待确认队列和待删除队列,责任方通过责任队列存储所述数据报文。
本发明实施例的第三方面,提供一种协议传输的系统,包括:存储器、处理器以及计算机程序,所述计算机程序存储在所述存储器中,所述处理器运行所述计算机程序执行本发明第一方面及第一方面各种可能涉及的所述方法。
本发明实施例的第四方面,提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用于实现本发明第一方面及第一方面各种可能涉及的所述方法。
本发明提供的一种协议传输的方法、装置及系统,应用于裸金属部署场景,所述方法包括:发送方向多个接收方广播发送数据报文;其中所述接收方包括责任方,所述责任方为每个数据报文都有一个通过一致性哈希算法由报文序号确定的特别接收方;责任方负责向发送方单播发送数据确认报文;责任方还负责通过单播向其他接收方发送缺失数据报文;发送方通过待确认队列和待删除队列,责任方通过责任队列存储所述数据报文。本发明通过广播和单播结合的可靠单向传输协议。实现了数据的高效可靠传输,应用在裸金属实例部署的场景下,可以极大的提高部署效率。并且在不增加内存消耗的前提下实现数据传输速度的极大提升,因为原有技术时间消耗和部署实例个数成正比,而使用本发明描述的协议,得到时间消耗和部署实例个数不显著相关。
附图说明
图1是本发明实施例提供的一种协议传输的方法交互图;
图2是本发明实施例提供的一种协议传输的过程示意图;
图3是本发明实施例提供的一种协议传输的装置示意图;
图4是本发明实施例提供的一种协议传输的系统的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
应当理解,在本发明的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
应当理解,在本发明中,“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本发明中,“多个”是指两个或两个以上。“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“包含A、B和C”、“包含A、B、C”是指A、B、C三者都包含,“包含A、B或C”是指包含A、B、C三者之一,“包含A、B和/或C”是指包含A、B、C三者中任1个或任2个或3个。
应当理解,在本发明中,“与A对应的B”、“与A相对应的B”、“A与B相对应”或者“B与A相对应”,表示B与A相关联,根据A可以确定B。根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。A与B的匹配,是A与B的相似度大于或等于预设的阈值。
取决于语境,如在此所使用的“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
在裸金属云实例批量部署时,现有的常规方案是将系统镜像存放在共享的存储系统中,通过iSCSI/NFS/Samba等协议共享出来,然后由在各个裸金属上运行的程序读取并写入到本地磁盘。现有技术方案数据的传输量和时间消耗与裸金属的数量成正比。在大量部署裸金属实例时会给共享存储系统带来巨额大的压力,并消耗大量的时间。例如一个30GB的实例部署1000个实例,通过千兆网卡进行读取,不考虑硬盘读写时间,通过网络传输理论上的最快时间仅为8.3小时。因此存在增加内存消耗显著或者数据传输速度较低等问题。
裸金属云实例中一个专属的物理服务器,“裸金属”,意味它不包括相应的操作系统和软件,主要提供CPU和内存。裸金属服务器通常可以无缝对接和兼容云厂商提供的其它云服务,例如网络服务(例如VPC专有网络)、云数据库服务等。从而便于裸金属服务器与用户已有的虚拟化服务器进行互通和协同,能够有效利用云资源。因此在一些实施例中,发送方可以为裸金属服务器,接收方为用户使用客户端对应的服务器等。
图1是本发明实施例提供的一种协议传输的方法交互图,图2是本发明实施例提供的一种协议传输的过程示意图,结合图1和图2,如图1和图2所示,本实施例的协议传输的方法可以包括步骤S101至步骤S103,具体如下:
S101、发送方向多个接收方广播发送数据报文;其中所述接收方包括责任方,所述责任方为每个数据报文都有一个通过一致性哈希算法由报文序号确定的特别接收方。剩余接收方为非责任方。
本实施例应用于裸金属部署场景,其中数据报文可以包括以下至少一种:起始报文、同意接收报文、信息通告报文,信息通告确认报文、数据报文、数据确认报文,删除请求报文,删除确认报文,接收方异常报文,信息修改通告报文,信息修改通告确认报文。
在一些实施例一对多的握手过程中,发送方按照设定的时间间隔和次数重复广播发送<起始报文>,并等待接收方响应。各个接收方每次收到<起始报文后>都通过单播回复<同意接收报文>。发送方采用<起始报文>发送完毕并且等待超时后握手过程结束,发送方进入接收方信息通告过程。在此之后发送方收到的<同意接收报文>都会被忽略。其中,设定的时间间隔和次数根据实际情况进行具体设置,本实施例不作限定。其余报文类型参见下文详述。
S102、责任方负责向发送方单播发送数据确认报文。责任方还负责通过单播向其他接收方发送缺失数据报文,确保数据被所有接收方接收。
在一些实施例中,协议传输过程中一个发送方对应多个接收方,其中针对每个数据报文都有个通过一致性哈希算法确定的接收方,即为责任方。若责任方直接接收到发送方广播发送的数据保文,则该责任方负责向发送方单播发送数据确认报文。
在一些实施例中,其他接收方可以向责任方单播回复确认报文。
结合上述实施例,各个接收方每次收到<起始报文后>都通过单播回复<同意接收报文>。在接收方信息通告过程中,发送方按照设定的时间间隔和次数重复广播发送所有已经同意接收的接收方的信息。通过这些信息,接收方之间可以直接发送报文。接收方信息将分片为1个或多个<接收方信息通告>报文发送。各个接收方收到完整的<接收方信息通告>报文后给发送方单播发送<接收方信息确认报文>。在一些实施例中,接收方还可以单播向发送方发送同意接收报文、信息通告确认报文、数据确认报文、删除确认报文、接收方异常报文以及信息修改通告确认报文等,参见下文详述。
在一些实施例中,在协议数据传输接收方数据更新的过程中,接收方如果发现自己缺失被移除的接收端所负责处理的数据片段,将向发送方单播发送<缺失数据报文>。责任方也可以单播重发数据给没有收到数据的其他接收方。对应地,发送方收到<缺失数据报文>将从待确认队列和待删除队列里找到相应的报文并通过广播发送<数据片段报文>。
在一些实施例中,其他接收方向责任方单播回复确认报文。责任方向发送方单播确认所有接收方已经手动数据。
在一些实施例中发送方和接收方均采用固定长度的循环队列方式进行传输过程的数据存储,具体地,发送方通过待确认队列和待删除队列进行协议传输过程的数据存储,责任方通过责任队列存储数据报文。
本发明实施例中各参与方均采用固定长度的循环队列(即定长循环队列)的方式进行传输过程的数据存储。本发明通过使用固定长度和数量的循环队列可以确保内存使用的高效性和可预测性。
在一些实施例中,发送方的定长循环队列包括待确认队列和待删除队列,责任方或者非责任方均包括责任队列。
S103、发送方通过待确认队列和待删除队列,责任方通过责任队列存储所述数据报文。
所述发送方向所述接收方传输数据报文;其中,采用循环队列的方式进行数据传输。其中数据报文可以包括文字、语音、视频等消息。
结合上述实施例,其中,发送方将数据按照设定的分片大小放入<数据片段报文>,按次序广播。具体地,所述循环队列包括:待确认队列和待删除队列,所述待确认队列存储已经发送的,但尚未得到确认的数据消息;所述待删除队列存储已经确认,但不确定是否被所有接收方都已经收到的数据消息。
在数据传输过程中,发送方将数据按照设定的分片大小放入<数据片段报文>,按次序广播。发送方维护两个固定长度的循环队列(待确认队列和待删除队列),待确认队列存储已经发送的,但尚未得到确认的数据。待删除队列存储已经确认但还不确定是否所有接收方都已经收到的数据。发送方的待确认队列和待删除队列都清空后结束整个传输过程。
其中,所述责任方通过责任队列存储所述数据报文。
结合上述实施例,接收方使用一致性哈希算法,根据数据片段序号,和所知接收方信息,确定自己是否是此数据片段的责任方(后续简称责任方)。责任方将在确定所有接收方都收到此数据片段前保留此数据片段,也负责向发送方通过单播<数据片段确认报文>通知此数据片段已被己方接收,所有的接收方也都要处理<删除请求报文>。并且接收方通过责任队列存储所述数据报文。其中一致性哈希提出了在动态变化的Cache存储环境中,哈希算法应该满足以下适应条件:平衡性是指哈希的结果能够尽可能分布到所有的缓冲中去,这样可以使得所有的缓冲空间都得到利用。很多哈希算法都能够满足这一条件。单调性是指如果已经有一些内容通过哈希分派到了相应的缓冲中,又有新的缓冲区加入到系统中,那么哈希的结果应能够保证原有已分配的内容可以被映射到新的缓冲区中去,而不会被映射到旧的缓冲集合中的其他缓冲区。本发明的哈希算法应能够尽量避免不一致的情况发生,也就是尽量降低分散性。
本发明通过广播和单播结合的可靠单向传输协议。实现了数据的高效可靠传输,应用在裸金属实例部署的场景下,可以极大的提高部署效率。并且在不增加内存消耗的前提下实现数据传输速度的极大提升,因为原有技术时间消耗和部署实例个数成正比,而使用本发明描述的协议,得到时间消耗和部署实例个数不显著相关。
在一些实施例中,发送方数据队列的使用包括:
发送方发送数据报文后,将数据放入待确认队列;,待确认队列里的数据会按预定的间隔和次数被重复发送;发送方在收到数据确认报文后,将数据从待确认队列移入待删除队列;如果待确认队列或待删除队列有数据,发送方会按照预定的时间间隔和次数广播发送删除请求报文;发送方在收到删除确认报文后,将数据从待确认或待删除队列删除;待确认队列或待删除队列如果满了,发送方将暂停发送新数据报文。
具体地,在数据传输过程中发送方维护两个固定长度的循环队列(待确认队列和待删除队列),其中待确认队列中存储已经发送的,但尚未得到确认的数据。待删除队列存储已经确认但还不确定是否所有接收方都已经收到的数据。
具体地,发送方将待发送的数据信息放入待确认队列的尾部。如果得到接收方的确认,将从待确认队列移至待删除队列。其中,待确认队列里的数据会按设定的间隔和次数被重复发送。
如果待确认队列或待删除队列有数据,发送方会按照预定的时间间隔和次数广播发送删除请求报文;发送方在收到删除确认报文后,将数据从待确认或待删除队列删除。
如果待确认队列或者待删除队列满了,发送方将暂停发送新数据报文。
如果待删除队列达到一定的比例和时间间隔,发送方也将广播发送<删除请求报文>,询问各个接收方待删除队列和待确认队列里的数据是否可以删除。在一些实施例中,若所述发送方发送数据报文或删除请求报文的发送次数达到次数阈值,并且相应的等待时间也到达时间阈值,没有收到数据确认报文或删除确认报文,则所述发送方与接收方进入信息更新过程,用于移除异常接收方;直到发送方对应的所述待确认队列和所述待删除队列都清空后结束整个传输过程。
在一些实施例中,责任方数据队列的使用包括:责任方接收到发送方发送的广播数据报文后将数据放入责任数据队列;责任方收到所有其他接收方发送的单播数据确认报文后将数据从责任数据队列删除,并向发送方单播发送删除确认报文;责任方按照设定的时间间隔和次数向未发送数据确认报文的其他接收方单播重新发送责任数据队列里的数据;责任队列如果满了,责任方将暂停向发送方发送数据确认报文。
结合上述实施例,数据传输过程中接收方维护一个固定长度的循环队列(后续简称责任队列)存储已经收到的己方负责的数据报文。接收方第一次收到此负责的数据报文将会将此数据报文放入责任队列。如果此责任队列满了,接收方将不再确认新的数据报文。当所有的接收方都确认收到了某个数据报文,此数据报文才会从相应责任方的责任队列移除。
在一些实施例中,责任方收到负责的数据片段后向发送方单播发送数据接收确认报文;其中数据报文包括接收数据片段对应的编号和进行删除数据片段对应的编号;
或者,非责任方收到数据片段后,通过单播给对应责任方发送数据接收确认报文,其中数据报文包括所述责任方负责的数据片段对应的序号;
所述发送方收到数据接收确认报文后将报文里的所有新确认数据片段序号对应的数据片段从待确认队列移至待删除队列,并将确认可以删除的数据从两个队列里中进行删除。
具体结合上述实施例,在数据传输过程中,责任方接收到发送方发送的广播数据报文后将数据放入责任数据队列;责任方收到所有其他接收方发送的单播数据确认报文后将数据从责任数据队列删除,并向发送方单播发送删除确认报文;责任方按照设定的时间间隔和次数向未发送数据确认报文的其他接收方单播重新发送责任数据队列里的数据;责任队列如果满了,责任方将暂停向发送方发送数据确认报文。在一些实施例中,责任方的报文行为包括:责任方收到发送方发送的广播数据请求报文后,向发送方单播回复数据确认报文;责任方在确认所有接收方都收到数据报文后通过单播向发送方发送删除确认报文;责任方在没有收到某个接收方发送的数据确认报文后将向此接收方单播发送相应数据报文;责任方在向某接收方单播发送数据报文,并没有收到其回应的数据确认报文次数操作阈值后将向发送方发送接收方异常报文;责任方在收到发送方广播发送的删除请求报文后,将向发送方单播回复删除确认报文。
具体地,责任方收到发送方发送的广播数据请求报文后,向发送方单播回复<数据确认报文>;责任方在确认所有接收方都收到<数据报文>后通过单播向发送方发送<删除确认报文>;责任方在没有收到某个接收方发送的<数据确认报文>后将向此接收方单播发送相应<数据报文>;责任方在向某接收方单播发送<数据报文>,并没有收到其回应的<数据确认报文>次数操作阈值后将向发送方发送接收方异常报文;责任方在收到发送方广播发送的<删除请求报文>后,将向发送方单播回复<删除确认报文>。
在一些实施例中,接收方的报文行为包括:非责任方接收方在收到发送方广播发送的数据报文后,将向责任方发送数据确认报文;非责任方接收方在收到责任方单播发送的数据报文后,将向责任方发送数据确认报文。
具体地,非责任方接收方在收到发送方广播发送的<数据报文>后,将向责任方发送<数据确认报文>;非责任方接收方在收到责任方单播发送的<数据报文>后,将向责任方发送<数据确认报文>。
在一些实施例中,发送方的行为包括:发送方将发送数据按次序分为数据片段通过广播向所有接收方发送数据报文;发送方如果没有收到责任方回复的数据确认报文,将重新广播发送数据报文;发送方重复广播发送数据报文并没有得到责任方的数据确认报文次数超过阈值后,将发送信息修改通告报文;发送方将针对没有收到删除确认报文的数据广播发送删除请求报文;发送方重复广播发送删除请求报文并没有得到责任方的删除确认报文次数超过阈值后,将认为相应责任方异常,将发送信息修改通告报文;发送方收到接收方异常报文后,将发送信息修改报文。
在一些实施例中,还包括:接收方在收到删除请求报文后,检查由己方负责的数据片段中的对应的序号,并单播回复发送方删除确认报文,以便发送方得到相应数据片段已经被所有接收方接收,从而对所述数据片段进行删除。
对应地,发送方将发送数据按次序分为数据片段通过广播向所有接收方发送<数据报文>;发送方如果没有收到责任方回复的<数据确认报文>,将重新广播发送<数据报文>;发送方重复广播发送<数据报文>并没有得到责任方的<数据确认报文>次数超过阈值后,将发送信息<修改通告报文>;发送方将针对没有收到<删除确认报文>的数据广播发送<删除请求报文>;发送方重复广播发送<删除请求报文>并没有得到责任方的<删除确认报文>次数超过阈值后,将认为相应责任方异常,将发送<信息修改通告报文>;发送方收到接收方异常报文后,将发送<信息修改报文>。
在一些实施例中,一个发送方、多个接收方,以及各个参与方都处于同一个二层广播域,其中所述二层广播域是指各参与方实现单播或者广播。
本实施例基于一对多的连接,即存在一个发送方和多个接收方,并基于广播和单播结合的可靠传输协议。数据主体通过广播发送,每个广播数据包只需一个接收方进行确认。通过使用一致性哈希算法保证每个数据帧都有一个接收方负责数据的补全(即发送方对应至少一个责任方)。过程中针对丢失的数据由接收方之间通过单播互相补全,减少发送方压力。还使用固定长度和数量的循环队列确保对内存的使用是高效可预测的。最终任意数量的接收方离线不影响其余接收方的传输。
本发明通过广播和单播结合的可靠单向传输协议。实现了数据的高效可靠传输,应用在裸金属实例部署的场景下,可以极大的提高部署效率。并且在不增加内存消耗的前提下实现数据传输速度的极大提升,因为原有技术时间消耗和部署实例个数成正比,而使用本发明描述的协议,得到时间消耗和部署实例个数不显著相关。
图3是本发明实施例提供的一种协议传输的装置示意图,如图3所示,应用于裸金属部署场景,所述装置10包括:
广播模块11,用于发送方向多个接收方广播发送数据报文;其中所述接收方包括责任方,所述责任方为每个数据报文都有一个通过一致性哈希算法由报文序号确定的特别接收方;
单播模块12,用于责任方负责向发送方单播发送数据确认报文;并通过单播向其他接收方发送缺失数据报文;
队列模块13,用于发送方通过待确认队列和待删除队列,责任方通过责任队列存储所述数据报文。
图3所示实施例的设备对应地可用于执行图1所示方法实施例中的步骤,其实现原理和技术效果类似,此处不再赘述。
图4是本发明实施例提供的一种协议传输的系统的硬件结构示意图,该地图生成系统20包括:处理器21、存储器22和计算机程序;其中
存储器22,用于存储所述计算机程序,该存储器还可以是闪存(flash)。所述计算机程序例如是实现上述方法的应用程序、功能模块等。
处理器21,用于执行所述存储器存储的计算机程序,以实现上述方法中设备执行的各个步骤。具体可以参见前面方法实施例中的相关描述。
可选地,存储器22既可以是独立的,也可以跟处理器21集成在一起。
当所述存储器22是独立于处理器21之外的器件时,所述设备还可以包括:
总线23,用于连接所述存储器22和处理器21。
本发明还提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用于实现上述的各种实施方式提供的方法。
其中,可读存储介质可以是计算机存储介质,也可以是通信介质。通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。计算机存储介质可以是通用或专用计算机能够存取的任何可用介质。例如,可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(ApplicationSpecific Integrated Circuits,简称:ASIC)中。另外,该ASIC可以位于用户设备中。当然,处理器和可读存储介质也可以作为分立组件存在于通信设备中。可读存储介质可以是只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本发明还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得设备实施上述的各种实施方式提供的方法。
在上述设备的实施例中,应理解,处理器可以是中央处理单元(英文:CentralProcessing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:DigitalSignal Processor,简称:DSP)、专用集成电路(英文:Application Specific IntegratedCircuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (9)
1.一种协议传输的方法,其特征在于,应用于裸金属部署场景,所述方法包括:
发送方向多个接收方广播发送数据报文;其中所述接收方包括责任方,所述责任方为每个数据报文都有一个通过一致性哈希算法由报文序号确定的特别接收方;
责任方负责向发送方单播发送数据确认报文;并通过单播向其他接收方发送缺失数据报文;发送方通过待确认队列和待删除队列,责任方通过责任队列存储所述数据报文;
发送方数据队列的使用包括:
发送方发送数据报文后,将数据放入待确认队列;
待确认队列里的数据会按照预定的时间间隔和次数被重新发送;
发送方在收到数据确认报文后,将数据从待确认队列移入待删除队列;
如果待确认队列或待删除队列有数据,发送方会按照预定的时间间隔和次数广播发送删除请求报文;
发送方在收到删除确认报文后,将数据从待确认或待删除队列删除;
待确认队列或待删除队列如果满了,发送方将暂停发送新数据报文。
2.根据权利要求1所述的方法,其特征在于,所述协议传输的参与方包括:
一个发送方、多个接收方,以及各个参与方都处于同一个二层广播域,其中所述二层广播域是指各参与方实现单播或者广播。
3.根据权利要求1所述的方法,其特征在于,所述数据报文包括至少一种:
起始报文、同意接收报文、信息通告报文,信息通告确认报文、数据报文、数据确认报文,删除请求报文,删除确认报文,接收方异常报文,信息修改通告报文,信息修改通告确认报文。
4.根据权利要求1所述的方法,其特征在于,责任方数据队列的使用包括:
责任方接收到发送方发送的广播数据报文后将数据放入责任数据队列;
责任方收到所有其他接收方发送的单播数据确认报文后将数据从责任数据队列删除,并向发送方单播发送删除确认报文;
责任方按照设定的时间间隔和次数向未发送数据确认报文的其他接收方单播重新发送责任数据队列里的数据;
责任队列如果满了,责任方将暂停向发送方发送数据确认报文。
5.根据权利要求1所述的方法,其特征在于,责任方的报文行为包括:
责任方收到发送方发送的广播数据请求报文后,向发送方单播回复数据确认报文;
责任方在确认所有接收方都收到数据报文后通过单播向发送方发送删除确认报文;
责任方在没有收到某个接收方发送的数据确认报文后将向此接收方单播发送相应数据报文;
责任方在向某接收方单播发送数据报文,并没有收到其回应的数据确认报文次数操作阈值后将向发送方发送接收方异常报文;
责任方在收到发送方广播发送的删除请求报文后,将向发送方单播回复删除确认报文。
6.根据权利要求1所述的方法,其特征在于,接收方的报文行为包括:
非责任方接收方在收到发送方广播发送的数据报文后,将向责任方发送数据确认报文;
非责任方接收方在收到责任方单播发送的数据报文后,将向责任方发送数据确认报文。
7.根据权利要求1所述的方法,其特征在于,发送方的行为包括:
发送方将发送数据按次序分为数据片段通过广播向所有接收方发送数据报文;
发送方如果没有收到责任方回复的数据确认报文,将重新广播发送数据报文;
发送方重复广播发送数据报文并没有得到责任方的数据确认报文次数超过阈值后,将发送信息修改通告报文;
发送方将针对没有收到删除确认报文的数据广播发送删除请求报文;
发送方重复广播发送删除请求报文并没有得到责任方的删除确认报文次数超过阈值后,将认为相应责任方异常,将发送信息修改通告报文;
发送方收到接收方异常报文后,将发送信息修改报文。
8.一种协议传输的装置,其特征在于,应用于裸金属部署场景,所述装置包括:
广播模块,用于发送方向多个接收方广播发送数据报文;其中所述接收方包括责任方,所述责任方为每个数据报文都有一个通过一致性哈希算法由报文序号确定的特别接收方;单播模块,用于责任方负责向发送方单播发送数据确认报文;并通过单播向其他接收方发送缺失数据报文;
队列模块,用于发送方通过待确认队列和待删除队列,责任方通过责任队列存储所述数据报文;
发送方数据队列的使用包括:
发送方发送数据报文后,将数据放入待确认队列;
待确认队列里的数据会按照预定的时间间隔和次数被重新发送;
发送方在收到数据确认报文后,将数据从待确认队列移入待删除队列;
如果待确认队列或待删除队列有数据,发送方会按照预定的时间间隔和次数广播发送删除请求报文;
发送方在收到删除确认报文后,将数据从待确认或待删除队列删除;
待确认队列或待删除队列如果满了,发送方将暂停发送新数据报文。
9.一种协议传输的系统,其特征在于,所述系统包括:存储器、处理器以及计算机程序,所述计算机程序存储在所述存储器中,所述处理器运行所述计算机程序执行本发明权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210107164.9A CN114422626B (zh) | 2022-01-28 | 2022-01-28 | 协议传输的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210107164.9A CN114422626B (zh) | 2022-01-28 | 2022-01-28 | 协议传输的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114422626A CN114422626A (zh) | 2022-04-29 |
CN114422626B true CN114422626B (zh) | 2022-11-08 |
Family
ID=81278969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210107164.9A Active CN114422626B (zh) | 2022-01-28 | 2022-01-28 | 协议传输的方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114422626B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115334483A (zh) * | 2022-08-08 | 2022-11-11 | 山东浪潮科学研究院有限公司 | 一种基于短距离无线通讯的数据交互方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1886667A (zh) * | 2003-11-25 | 2006-12-27 | 思科技术公司 | 可靠多播通信 |
CN101184050A (zh) * | 2007-12-24 | 2008-05-21 | 杭州华三通信技术有限公司 | 分布式节点组播方法、分布式节点组播组件和分布式系统 |
CN101431510A (zh) * | 2007-11-09 | 2009-05-13 | 株式会社Ntt都科摩 | 在无线局域网中的多播方法 |
CN101521586A (zh) * | 2008-02-28 | 2009-09-02 | 株式会社Ntt都科摩 | 在无线局域网中的多播方法 |
CN101848096A (zh) * | 2009-03-26 | 2010-09-29 | 华为技术有限公司 | 减少组播确认风暴的方法和装置 |
CN104025523A (zh) * | 2011-10-31 | 2014-09-03 | 德国弗劳恩霍夫应用研究促进协会 | 用于向多个接收方发送消息的装置和方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8261148B2 (en) * | 2008-07-28 | 2012-09-04 | At&T Intellectual Property Ii, Lp | Internet protocol multicast with internet protocol unicast/multicast error correction |
US20120170445A1 (en) * | 2009-10-07 | 2012-07-05 | Thomson Licensing | Efficient application-layer automatic repeat request retransmission method for reliable real-time data streaming in networks |
CN101699782B (zh) * | 2009-11-06 | 2013-05-01 | 中兴通讯股份有限公司 | 一种无线链路重发数据的处理方法及装置 |
CN111338810A (zh) * | 2018-12-19 | 2020-06-26 | 北京京东尚科信息技术有限公司 | 用于存储信息的方法和装置 |
-
2022
- 2022-01-28 CN CN202210107164.9A patent/CN114422626B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1886667A (zh) * | 2003-11-25 | 2006-12-27 | 思科技术公司 | 可靠多播通信 |
CN101431510A (zh) * | 2007-11-09 | 2009-05-13 | 株式会社Ntt都科摩 | 在无线局域网中的多播方法 |
CN101184050A (zh) * | 2007-12-24 | 2008-05-21 | 杭州华三通信技术有限公司 | 分布式节点组播方法、分布式节点组播组件和分布式系统 |
CN101521586A (zh) * | 2008-02-28 | 2009-09-02 | 株式会社Ntt都科摩 | 在无线局域网中的多播方法 |
CN101848096A (zh) * | 2009-03-26 | 2010-09-29 | 华为技术有限公司 | 减少组播确认风暴的方法和装置 |
CN104025523A (zh) * | 2011-10-31 | 2014-09-03 | 德国弗劳恩霍夫应用研究促进协会 | 用于向多个接收方发送消息的装置和方法 |
Non-Patent Citations (1)
Title |
---|
一种改进的主动可靠多播算法;陈仕喜等;《四川师范大学学报(自然科学版)》;20030728(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114422626A (zh) | 2022-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10901812B2 (en) | Managing communication between cloud and heterogeneous devices across networks | |
CN106330414B (zh) | 一种报文传输方法及装置 | |
CN103428072B (zh) | 一种持久化消息的发布方法及系统 | |
US20020032884A1 (en) | Robust delivery system | |
CN106790696B (zh) | 一种消息传输方法和装置 | |
US20200213144A1 (en) | Methods and network nodes for providing coordinated flowcontrol for a group of sockets in a network | |
CN114422626B (zh) | 协议传输的方法、装置及系统 | |
CN103532822A (zh) | 消息投递的管理方法、服务器和系统 | |
US20130191484A1 (en) | Mail transfer system, mail gateway and data store server | |
CN111970092B (zh) | 一种支持可靠性调节的多协议冗余网络异步通信方法 | |
CN114500552B (zh) | 边缘计算场景下的云边消息可靠性传输方法及装置 | |
WO2022211724A1 (en) | Method and apparatus for transmitting messages, and device and storage medium thereof | |
CN111064813B (zh) | 在区块链共识处理时进行处理消息同步的方法及装置 | |
US8370443B2 (en) | Reliable messaging using publish subscribe mechanism | |
CN102025730B (zh) | 基于http协议的数据传输装置及其实现方法 | |
CN111385069A (zh) | 数据传输方法及计算机设备 | |
CN113489786A (zh) | 一种长连接网络弱网重连方法、重发方法 | |
CN108173807B (zh) | 统一消息发送、处理方法及装置 | |
CN115209360B (zh) | 基于对象的聚合容器数据传输方法和装置 | |
US9185059B1 (en) | Management of journaling destinations | |
US20080174829A1 (en) | Systems and methods for electronic facsimile communication | |
US11968253B2 (en) | Request delivery device, request delivery method, and request delivery program | |
CN112511573B (zh) | 一种udp数据包的传输控制方法 | |
CN115665042B (zh) | 数据处理方法、装置、用户平面功能实体及存储介质 | |
CN110932874B (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 |