CN116527617B - 用于容迟容断网络的即时通信方法、***、设备及介质 - Google Patents

用于容迟容断网络的即时通信方法、***、设备及介质 Download PDF

Info

Publication number
CN116527617B
CN116527617B CN202310778189.6A CN202310778189A CN116527617B CN 116527617 B CN116527617 B CN 116527617B CN 202310778189 A CN202310778189 A CN 202310778189A CN 116527617 B CN116527617 B CN 116527617B
Authority
CN
China
Prior art keywords
message
communication
terminal
synchronization
group
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
Application number
CN202310778189.6A
Other languages
English (en)
Other versions
CN116527617A (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.)
Beijing Hualongtong Technology Co ltd
Original Assignee
Beijing Hualongtong Technology 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 Beijing Hualongtong Technology Co ltd filed Critical Beijing Hualongtong Technology Co ltd
Priority to CN202310778189.6A priority Critical patent/CN116527617B/zh
Publication of CN116527617A publication Critical patent/CN116527617A/zh
Application granted granted Critical
Publication of CN116527617B publication Critical patent/CN116527617B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/23Reliability checks, e.g. acknowledgments or fault reporting

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明提供一种用于容迟容断网络的即时通信方法、***、设备及介质,涉及通信技术领域。方法包括:多个通信终端根据容迟容断网络的结构变化动态构成一个或多个通信组;通信组包括至少两个通信终端,一个通信终端作为消息同步终端,除消息同步终端之外的其他通信终端作为普通通信终端,所述至少两个通信终端相互之间进行即时通信;在通信组内,通过消息同步终端以设定的消息同步周期间隔向该通信组内广播消息同步通知,每个普通通信终端根据获得的消息同步通知,检查自身已保存的本地消息的完整性,若有消息缺失或错误,则向消息同步终端发送同步缺失或错误消息的请求。本发明可有效提升容迟容断网络中分布式群组即时通信的可靠性和消息送达率。

Description

用于容迟容断网络的即时通信方法、***、设备及介质
技术领域
本发明涉及通信技术领域,具体涉及一种用于容迟容断网络的即时通信方法、***、设备及介质。
背景技术
容迟容断网络(Delay/Disruption Tolerant Netwroks,简称DTN)具有间歇连接性、长可变延时和低数据率、高误码率、不可预测等特点。应急通信网、战术通信网等缺乏固定网络基础设施的无线网络,因节点分布稀疏、高速移动、障碍物遮挡、链路质量差、易遭受恶意攻击等原因,往往无法保证网络连接的持续性和稳定性,是一种典型的容迟容断网络。由于其不稳定的端到端连接和间歇连接性的数据通信问题,应急通信网、战术通信网一般采用分布式通信方式。
在容迟容断网络中,由于无法保证长时间、稳定的端到端连接,因此实时通信接通率低、易中断。相比实时通信,即时通信对延迟不敏感,其目标是消息的送达率,是容迟容断网络中更高效的通信业务形式。但在目前的容迟容断网络中,仍然使用传统面向连接、应答重试等可靠性保障机制,在间歇连接性、长可变延迟的网络环境中,事前的预防机制,无论是面向连接还是应答重试,均存在较大弊端,导致即时通信的可靠性仍然不高。因此,传统容迟容断网络中的针对分布式群组即时通信方法仍存在连接稳定性差、延迟长且可变,通信可靠性较低等问题。
发明内容
有鉴于此,本申请实施例提供一种用于容迟容断网络的即时通信方法、***、设备及介质,以达到提高容迟容断网络中分布式群组即时通信的可靠性,以及提升消息送达率的目的。
本申请实施例提供以下技术方案:一种用于容迟容断网络的即时通信方法,包括:
容迟容断网络中的多个通信终端根据所述容迟容断网络的结构变化动态构成一个或多个通信组;其中,每个所述通信组包括至少两个通信终端,所述至少两个通信终端中的一个通信终端作为消息同步终端,所述至少两个通信终端中除了所述消息同步终端之外的其他通信终端作为普通通信终端,所述通信组内的所述至少两个通信终端相互之间进行即时通信;所述容迟容断网络的结构变化包括网络结点断开和网络结点连接;
在每个所述通信组内,通过所述消息同步终端以设定的消息同步周期间隔向该通信组内广播消息同步通知,每个所述普通通信终端根据获得的所述消息同步通知,检查自身已保存的本地消息的完整性,若有消息缺失或消息错误,则向所述消息同步终端发送同步缺失消息或错误消息的请求,所述消息同步终端则向所述普通通信终端同步所述缺失消息或错误消息。
进一步地,每个所述普通通信终端根据获得的所述消息同步通知,检查自身已保存的本地消息的完整性,包括:
每个所述普通通信终端将自身已保存的本地消息中的最新消息序列号,以及自身已保存的全部本地消息的不可逆摘要信息,分别与所述消息同步通知中的本通信组的最新消息序列号,以及该通信组全部消息的不可逆摘要信息依次进行对比,检查信息完整性。
进一步地,检查信息完整性,包括:
所述普通通信终端将自身已保存的本地消息中的最新消息序列号LID,与所述消息同步通知中的该通信组的最新消息序列号GID进行比较;
若LID=GID,则所述普通通信终端依次判断自身已保存的全部本地消息的不可逆摘要信息与该通信组全部消息的不可逆摘要信息是否相同;
若是,则无需同步消息,
若否,则在所述已保存的本地消息中从最新消息向前追溯,先采用指数递减的方式逐步缩减消息序列号的检查范围,再以二分法在所述检查范围内查找缺失消息的序列号,并向所述消息同步终端请求同步该序列号的缺失消息。
进一步地,检查信息完整性,还包括:
若LID<GID;
则所述普通通信终端向所述消息同步终端查询消息序列号为1至LID的消息的不可逆摘要信息,并判断查询得到的不可逆摘要信息与自身已保存的全部本地消息的不可逆摘要信息是否相同;
若是,则向所述消息同步终端请求同步消息序列号为(LID+1)至GID范围内的消息;
若否,则采用指数递减的方式逐步缩减消息序列号的检查范围,再以二分法在所述检查范围内查找缺失消息的序列号,并向所述消息同步终端请求同步该序列号的缺失消息。
进一步地,所述方法还包括:
若LID>GID,则该普通通信终端广播竞争消息同步终端的请求,参与同步终端竞争;
若所述普通通信终端在连续两个所述消息同步周期内没有接收到所述消息同步通知,则该普通通信终端广播竞争消息同步终端的请求,参与同步终端竞争;
若所述消息同步终端接收到任意所述普通通信终端发出的消息同步通知,则该消息同步终端广播竞争消息同步终端的请求,参与同步终端竞争;
若任意所述普通通信终端接收到该通信组内其他所述普通通信终端发出的竞争消息同步终端的请求,且当该竞争消息同步终端的请求中包含的消息序列号小于该普通通信终端的最新消息序列号LID,则该任意所述普通通信终端参与同步终端竞争,广播竞争消息同步终端的请求;
在参与同步终端竞争的所有通信终端中,将在一个所述消息同步周期内,广播的所述竞争消息同步终端的请求中包含的消息序列号最大的通信终端作为新的消息同步终端。
进一步地,所述方法还包括:
当所述容迟容断网络的结构变化为网络结点断开时,每个所述通信组***为多个子通信组,包括所述通信组的消息同步终端的子通信组作为第一子通信组,且该消息同步终端继续作为所述第一子通信组的消息同步终端;不包括所述通信组的消息同步终端的子通信组作为第二子通信组,每个所述第二子通信组中的所有普通通信终端广播竞争消息同步终端的请求,参与同步终端竞争,产生每个所述第二子通信组的消息同步终端;
当所述容迟容断网络的结构变化为网络结点连接时,该容迟容断网络中所有的组序列号相同的子通信组进行重组,在重组后的新通信组中,当任意消息同步终端接收到本通信组内其他消息同步终端发出的消息同步通知时,则该任意消息同步终端广播竞争消息同步终端的请求,参与同步终端竞争,产生该重组后的新通信组的消息同步终端。
进一步地,所述方法还包括:
通信终端以预设组代号在所述容迟容断网络中广播入组申请,若在一个所述消息同步周期内未收到入组应答,则以该预设组代号创建通信组,该通信终端作为该通信组的消息同步终端;若收到通信组的入组应答,则加入该通信组;
所述消息同步终端通过向该通信组内广播退组通知消息,以退出该通信组。
本发明另一方面,提供一种用于容迟容断网络的即时通信***,容迟容断网络中的多个通信终端根据所述容迟容断网络的结构变化动态构成一个或多个通信组;所述通信组,包括:
消息同步终端,用于与该通信组中的普通通信终端之间进行即时通信,以设定的消息同步周期间隔向该通信组内广播消息同步通知;
所述普通通信终端,用于根据获得的所述消息同步通知,检查自身已保存的本地消息的完整性,若有消息缺失或消息错误,则向所述消息同步终端发送同步缺失消息或错误消息的请求;
所述消息同步终端还用于,在接收到所述同步缺失消息或错误消息的请求后,向所述普通通信终端同步所述缺失消息或错误消息;
其中,所述通信组包括至少两个通信终端,所述至少两个通信终端中的一个通信终端作为所述消息同步终端,所述至少两个通信终端中除了所述消息同步终端之外的其他通信终端作为所述普通通信终端;所述容迟容断网络的结构变化包括网络结点断开和网络结点连接。
本发明另一方面,提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的指令,所述处理器可执行所述指令以实现上述的用于容迟容断网络的即时通信方法。
本发明另一方面,提供一种存储介质,其上存储程序,该程序被处理器执行时实现上述的用于容迟容断网络的即时通信方法。
与现有技术相比,本说明书实施例采用的上述至少一个技术方案能够达到的有益效果至少包括:本发明实施例摒弃了面向连接、应答重试等传统事前预防的通信可靠性保障机制,另寻途径,利用即时通信对延迟不敏感的特性,通过在消息发送完成后周期性检查和同步机制,将缺失的消息补充完整,实现了在容迟容断网络中可靠的分布式群组即时通信。本方法不受容迟容断网络***和重组的影响,在避免建立连接、应答、重试等手段带来的网络负担加重、网络资源浪费等问题的同时,高效的提升了通信的可靠性,实现了100%的消息送达率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例的通信组结构和功能示意图;
图2是本发明实施例的消息同步流程图;
图3是本发明实施例的竞争消息同步终端流程图;
图4是本发明实施例的入组流程图;
图5是本发明实施例的消息收发流程图;
图6是本发明实施例的通信组重组流程图;
图7是本发明实施例提供的一种计算机设备的结构框图。
具体实施方式
下面结合附图对本申请实施例进行详细描述。
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示。本发明实施例提供了一种用于容迟容断网络的即时通信方法,包括:
容迟容断网络中的多个通信终端根据所述容迟容断网络的结构变化动态构成一个或多个通信组;其中,每个所述通信组包括至少两个通信终端,所述至少两个通信终端中的一个通信终端作为消息同步终端,所述至少两个通信终端中除了所述消息同步终端之外的其他通信终端作为普通通信终端,所述通信组内的所述至少两个通信终端相互之间进行即时通信;所述容迟容断网络的结构变化包括网络结点断开和网络结点连接;
在每个所述通信组内,通过所述消息同步终端以设定的消息同步周期间隔向该通信组内广播消息同步通知,每个所述普通通信终端根据获得的所述消息同步通知,检查自身已保存的本地消息的完整性,若有消息缺失或消息错误,则向所述消息同步终端发送同步缺失消息或错误消息的请求,所述消息同步终端则向所述普通通信终端同步所述缺失消息或错误消息。
本发明实施例是一种容迟容断网络中的可同步消息的分布式群组即时通信方法,其可在容迟容断网络中,创建无中心的分布式通信组,组内包含动态产生的消息同步终端和普通通信终端,消息同步终端在组内周期性广播消息同步通知,普通通信终端通过消息同步通知检查历史消息的完整性,并同步缺失、错误的消息,通信组可随容迟容断网络的网络结点断开和网络结点连接,分别进行***、重组。本发明实施例以在不可靠的网络环境下,通过消息同步补全缺失的消息,实现可靠的分布式的群组即时通信。
下面结合附图对本发明实施例提供的技术方案详细说明。
本发明实施例的方法在超短波无线自组网中实现。所述超短波无线自组网是一种容迟容断的IP网络,其中包含多个通信终端。通信终端的IP地址范围从192.168.1.1至192.168.1.254,子网掩码为24位。
网络的每个子网可包含多个通信组。通信组内部可进行通信,通信组之间互不影响。通信组不含服务器,所有通信终端进行分布式通信,通信形式为广播的文字短消息、语音短消息。每个通信组包含多个普通通信终端和一个消息同步终端。普通通信终端具备通信功能和同步历史消息功能。消息同步终端具备通信功能和广播消息同步通知功能。
每个通信组拥有唯一的组代号。组代号为不大于16字节的字符串,由大写/小写字母、数字、符号组成,对于输入不足16字节的,在末尾补足16字节“\0”。组代号在创建或入组时填写,用于区分创建不同的通信组。组代号也作为该组的通信密钥,对文字短消息、语音短消息等通信内容进行128位AES加密通信。
每个通信组拥有唯一的组ID,用于识别消息是否属于该通信组。组ID为16字节字符串,是由该通信组的16字节组代号通过MD5算法(MD5信息摘要算法MD5 Message-DigestAlgorithm)生成的128位不可逆摘要。组ID包含在每条消息中,由于其不可逆性,不会由组ID获取到该组的通信密钥。
通信组的每个通信终端拥有唯一的终端ID。在本实施例中,所述网络为IP网络,通信终端的终端ID采用该设备的MAC地址,长度为6字节。
通信组内,消息同步终端以一定的周期间隔向组内广播消息同步通知,该周期为“消息同步周期”。消息同步周期由所在网络的带宽、延迟等参数决定,在本实施例中为3秒。
每条消息的末尾附带消息校验值,用于进行单条消息的正确性判断,校验不通过的消息将被丢弃,等待下一同步周期重新获取。消息校验值为1字节无符号整数,从“版本号”到“消息内容”字段按1字节无符号整数进行异或计算得到。
为了节省网络带宽,检查一组消息是否完整时无需对比完整的消息数据,只需对比所需检查消息的唯一不可逆摘要是否相同。在本实施例中,使用MD5算法生成一组消息的唯一不可逆摘要,即消息MD5码。消息MD5码附带在消息同步通知和查询消息MD5应答中。消息MD5码为16字节字符串,可由单条或多条消息生成。消息MD5码由每条消息的“版本号”、“消息类型”、“发送时间”、“组ID”、“发送方终端ID”、“消息长度”、“消息内容”字段组成一条消息后,再将所需对比的每条消息按先后顺序拼接,通过MD5算法生成128位不可逆摘要。消息ID字段由于在同步时可能发生变化,因此不参与生成消息MD5码。
每个通信终端均在本地保存消息记录。普通通信终端保存的消息记录中,最新消息的ID即为本地最新消息ID(Local Message Identity,以下简称LID)。消息同步终端保存的消息记录中,最新消息的ID即为本通信组最新消息ID(Group Message Identity,以下简称GID)。
所述容迟容断网络中,通信是无连接的,所有通信终端通过UDP协议发送消息。UDP数据包数据字段格式定义如下表1:
表1
字段长度(字节) 字段名称 说明
1 版本号 无符号整数,本实施例中的版本为1。
1 消息类型 无符号整数。0:消息同步通知1:消息同步请求2:查询消息MD53:查询消息MD5应答4:竞争消息同步终端请求5:入组申请6:入组应答7:退组通知8:文字短消息9:语音短消息
6 发送时间 无符号整数,按位定义:0~9位:毫秒10~15位:秒16~21位:分22~26位:时27~31位:日32~35位:月36~47位:年
16 组ID 字符串。
6 发送方终端ID 字符串,设备MAC地址。
4 消息ID 无符号整数,文字和语音短消息的消息ID从1累加,其他类型的消息ID为0。
2 消息长度 无符号整数,消息内容字段的字节长度。
N 消息内容 字节流,消息内容长度应有限制,例如整个UDP数据包总长度不超过该网络的MTU值,防止UDP数据包被分包发送。在本实施例中,消息内容长度不超过1435字节。
1 消息校验值 无符号整数,从版本号到消息内容,按1字节无符号整数进行异或计算。
上表1中“消息内容”字段格式定义如下表2:
表2
在一种实施例中,每个所述普通通信终端根据获得的所述消息同步通知,检查自身已保存的本地消息的完整性,包括:
每个所述普通通信终端将自身已保存的本地消息中的最新消息序列号,以及自身已保存的全部本地消息的不可逆摘要信息,分别与所述消息同步通知中的本通信组的最新消息序列号,以及该通信组全部消息的不可逆摘要信息依次进行对比,检查信息完整性。
本实施例中,检查信息完整性的方法如图2所示,包括:
首先,消息同步终端以所述消息同步周期向子网内广播消息同步通知。
普通通信终端将同步终端发来的本通信组最新消息ID(GID)与本终端保存的本地最新消息ID(LID)比较,比较结果处理如下:
(1)若GID=LID,则继续比较消息同步通知中全部历史消息(从1至LID)的MD5(即上述不可逆摘要信息)。若所述MD5相同,则无需同步消息;若所述MD5不同,则逐步缩减比较范围,向前递进比较更早范围内消息的MD5,确定需同步的消息的范围。缩减的消息数量从1开始,每次加倍,具体方法为:向消息同步终端查询消息ID范围“1至(LID-2n)”的消息的MD5,n从0开始依次递增,直至所查范围内全部消息的MD5相同。然后向消息同步终端查询消息ID范围“1至m”的消息的MD5,其中:
根据查询结果向前或向后以二分法逐步缩小查询范围,得到缺失消息的范围为(m+1)至GID。其中二分法为行业内的常用公认算法,本方案不再赘述。
然后向消息同步终端批量请求同步缺失的消息。最后,通信终端逐条对所有本地消息、新同步消息通过MD5查重,并按时间顺序重新排列整理。整理后,若LID大于GID,则触发消息同步终端竞争机制。
(2)若LID<GID,则所述普通通信终端向同步终端查询消息ID为“从1至LID”消息的MD5。若所述MD5相同,则向消息同步终端同步“(LID+1)至GID”的消息;若所述MD5不同,则采用指数递减的方式逐步缩减比较范围,向前递进比较更早范围内消息的MD5,确定需同步的消息的范围,再以二分法在确定的范围内查找缺失消息的序列号,并向所述消息同步终端请求同步该序列号的缺失消息。所述指数递减的方式缩减的消息数量从1开始,依次加倍,具体方法为:向消息同步终端查询消息ID范围“1至(LID-2n)”消息的MD5,n从0开始依次递增,直至所查范围内全部消息的MD5相同,从而确定需同步的消息的范围为“(LID-2n+1)至GID”。然后向消息同步终端批量请求同步缺失的消息。最后,通信终端逐条对所有本地消息、新同步消息通过MD5查重,并按时间顺序重新排列整理。整理后,若LID大于GID,则触发消息同步终端竞争机制。
(3)若LID>GID,则直接触发消息同步终端竞争机制。
所述消息同步终端竞争机制的触发条件为:对于普通通信终端,若接收到消息同步通知后发现本机最新消息ID(LID)大于消息同步通知中的通信组最新消息ID(GID),或连续两个同步周期内没有接收到消息同步通知,则触发消息同步终端竞争机制。对于消息同步终端,若接收到其他终端的消息同步通知,则触发消息同步终端竞争机制。任意通信终端接收到其他通信终端发来的竞争消息同步终端请求,也触发消息同步终端竞争机制。
消息同步终端竞争过程中,广播竞争消息同步终端请求的通信终端称为第一竞争终端,接收竞争消息同步终端请求的通信终端称为第二竞争终端。第一竞争终端、第二竞争终端均可有多个。
当第二竞争终端接收到竞争消息同步终端请求时,若请求中包含的消息ID<LID,则第二竞争终端参与竞争,广播竞争消息同步终端请求。所有参与竞争的终端广播竞争消息同步终端请求后,均需等待一个消息同步周期。期间所有广播的竞争消息同步终端请求中包含的消息ID最大的通信终端成为新的消息同步终端。若多个竞争消息同步终端请求中包含的消息ID相同,则终端ID最小的成为新的消息同步终端,完成第一轮竞争。
第一轮竞争完成后,新消息同步终端广播消息同步通知,各普通通信终端检查并同步历史消息。
消息同步终端是动态的,通过消息同步终端竞争机制产生消息同步终端的方法如图3所示。在因通信组重组等原因触发的消息同步终端竞争机制中,一次竞争可能循环多轮。当第一轮竞争完成并同步消息后,普通通信终端若同步消息后,本机最新消息ID增加,则将再次触发消息同步终端竞争机制,再次产生新的消息同步终端。上述流程可触发多次,直至通信组内所有消息同步完毕。
在本发明实施例中,所述方法还包括组管理方法:具体包括入组、退组、消息收发、组***、组重组流程。
入组流程如图4所示,包括:
所有要入组的通信终端均以预设组代号在子网内广播入组申请,并等待一个同步周期。第一通信终端在一个消息同步周期内没有收到任何入组应答,即该通信终端是第一个广播入组申请的通信终端,则以该预设组代号创建通信组,同时成为该通信组的消息同步终端,向其他通信终端广播入组应答。第二通信终端在第一通信终端等待建组时间内广播入组申请,并在一个消息同步周期内收到第一通信终端的入组应答,成功入组,成为该通信组的普通通信终端。第三通信终端在第一通信终端成功创建通信组后广播入组申请,并立即得到第一通信终端的入组应答,则保存入组应答中的通信密钥,成功入组,成为该通信组的普通通信终端。
若因网络延迟、丢包等原因导致通信终端没有在一个通信周期内收到入组应答,则该通信终端创建新通信组,并在网络恢复后与上述通信组重组。
退组流程包括:
消息同步终端退组时向该通信组内广播退组通知消息,其他通信终端触发消息同步终端竞争机制。普通通信终端退组时无需任何退组动作。
消息收发流程如图5所示,包括:
第一通信终端向子网广播新消息,并将本地最新消息ID(LID)加1。其他通信终端接收到新消息后,首先进行校验,校验未通过的消息被丢弃;其次通过组ID判断该消息是否为本组消息,不是本组的消息被丢弃;再次进行新消息MD5码检查,新消息MD5码与历史消息MD5码检查一致的判定为重复消息,被丢弃;接下来对于以密文发送的消息,对消息内容进行128位AES算法解密,秘钥为该通信组的16字节组代号,解密后的消息进行显示和保存。最后,对于普通通信终端,保存新消息后将本终端的本地最新消息ID(LID)加1;对于消息同步终端,保存新消息后将本组最新消息ID(GID)加1。
消息同步终端是实时动态变化的;部分网络结点断开时,通信组可随网络***为多个子通信组并独立通信;网络结点重连后,子通信组可随网络重组,并将***期间的消息同步至所有通信终端。
组***流程包括:
当所述网络因某节点连接断开导致网络***时,通信组随断开的网络***为多个子通信组。包含原消息同步终端的子通信组为第一子通信组,不包含原消息同步终端的子通信组为第二子通信组。***后,第一子通信组中的消息同步终端不变。第二子通信组中的普通通信终端由于无法接收到消息同步通知,该组中的所有普通通信终端触发消息同步终端竞争机制,产生该子通信组的消息同步终端。
组重组流程如图6所示,包括:
当所述超短波无线自组网中的通信节点连接恢复时,该网络中的所有组ID相同的子通信组重组。重组后的新通信组中,当任意消息同步终端接收到其他消息同步终端发来的消息同步通知时,触发第一次消息同步终端竞争机制,产生重组后该通信组唯一的消息同步终端—第一消息同步终端。通信组中的其他消息同步终端成为普通通信终端。
产生新消息同步终端后触发第一次消息同步流程,新消息同步终端中的消息被同步至普通通信终端中。若组***期间子通信组内有消息收发,则在第一次消息同步后,普通通信终端中的消息将多于新消息同步终端(LID>GID),将触发第二次消息同步终端竞争机制,该普通通信终端成为新消息同步终端—第二消息同步终端。依此类推,直至所有子分组中的消息同步完毕。
由于在容迟容断网络中,网络连接频繁断开,连接断开期间发送的消息无法送达,造成消息发送失败,因此消息送达率难以保证。本发明实施例采用的方法支持通信组***和重组,通信组***期间消息正常发送,且可在网络连接恢复后,重组通信组,补全网络断开期间的所有消息,实现100%的消息送达率。
在组通信应用模式中,若采用面向连接通信,则需所有终端一对一两两保持通信连接。设通信终端数量为n,则连接数量为n*(n-1)/2。如此多的连接数量,每条通信连接的握手、应答、重试会造成通信数据量成指数级增加,网络资源消耗严重。且不发送消息时也需保持连接,将造成网络资源浪费。针对此问题,本发明实施例采用的方法无需建立通信连接,避免了多次断开、重连导致的频繁握手,以及长期占用信道造成的网络资源浪费。
考虑到连接数量造成的严重资源消耗,组通信大多采用无连接的组播、广播机制。由于容迟容断网络易断开,组成员变化频繁,若针对组播、广播消息应答,则频繁变化的成员应答的数量无法确定。同时,过多的应答,以及网络延迟造成的超时重试将极大地增加网络负担。本发明实施例无需应答和重试,在保证组通信可靠性的同时,不额外增加网络负担,极大解决网络资源。
本发明实施例还提供一种用于容迟容断网络的即时通信***,容迟容断网络中的多个通信终端根据所述容迟容断网络的结构变化动态构成一个或多个通信组;所述通信组,包括:
消息同步终端,用于与该通信组中的普通通信终端之间进行即时通信,以设定的消息同步周期间隔向该通信组内广播消息同步通知;
所述普通通信终端,用于根据获得的所述消息同步通知,检查自身已保存的本地消息的完整性,若有消息缺失或消息错误,则向所述消息同步终端发送同步缺失消息或错误消息的请求;
所述消息同步终端还用于,在接收到所述同步缺失消息或错误消息的请求后,向所述普通通信终端同步所述缺失消息或错误消息;
其中,每个所述通信组包括至少两个通信终端,所述至少两个通信终端中的一个通信终端作为所述消息同步终端,所述至少两个通信终端中除了所述消息同步终端之外的其他通信终端作为所述普通通信终端;所述容迟容断网络的结构变化包括网络结点断开和网络结点连接。
每个所述普通通信终端根据获得的所述消息同步通知,检查自身已保存的本地消息的完整性,具体包括:每个所述普通通信终端将自身已保存的本地消息中的最新消息序列号,以及自身已保存的全部本地消息的不可逆摘要信息,分别与所述消息同步通知中的本通信组的最新消息序列号,以及该通信组全部消息的不可逆摘要信息依次进行对比,检查信息完整性。
检查信息完整性,具体包括:所述普通通信终端将自身已保存的本地消息中的最新消息序列号LID,与所述消息同步通知中的该通信组的最新消息序列号GID进行比较,获取缺失消息的序列号,并向所述消息同步终端请求同步该序列号的缺失消息。
本发明实施例还提供了一种计算机设备,如图7所示,包括存储器201、处理器202及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意的用于容迟容断网络的即时通信方法。
具体的,该计算机设备可以是计算机终端、服务器或者类似的运算装置。
在本实施例中,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任意的用于容迟容断网络的即时通信方法的计算机程序。
具体的,计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机可读存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读存储介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (9)

1.一种用于容迟容断网络的即时通信方法,其特征在于,包括:
容迟容断网络中的多个通信终端根据所述容迟容断网络的结构变化动态构成一个或多个通信组;其中,所述通信组包括至少两个通信终端,所述至少两个通信终端中的一个通信终端作为消息同步终端,所述至少两个通信终端中除了所述消息同步终端之外的其他通信终端作为普通通信终端,所述通信组内的所述至少两个通信终端相互之间进行即时通信;所述容迟容断网络的结构变化包括网络结点断开和网络结点连接;
在所述通信组内,通过所述消息同步终端以设定的消息同步周期间隔向该通信组内广播消息同步通知,每个所述普通通信终端根据获得的所述消息同步通知,检查自身已保存的本地消息的完整性,若有消息缺失或消息错误,则向所述消息同步终端发送同步缺失消息或错误消息的请求,所述消息同步终端则向所述普通通信终端同步所述缺失消息或错误消息;
每个所述普通通信终端根据获得的所述消息同步通知,检查自身已保存的本地消息的完整性,包括:
每个所述普通通信终端将自身已保存的本地消息中的最新消息序列号,以及自身已保存的全部本地消息的不可逆摘要信息,分别与所述消息同步通知中的本通信组的最新消息序列号,以及该通信组全部消息的不可逆摘要信息依次进行对比,检查信息完整性。
2.根据权利要求1所述的方法,其特征在于,检查信息完整性,包括:
所述普通通信终端将自身已保存的本地消息中的最新消息序列号LID,与所述消息同步通知中的该通信组的最新消息序列号GID进行比较;
若LID=GID,则所述普通通信终端依次判断自身已保存的全部本地消息的不可逆摘要信息与该通信组全部消息的不可逆摘要信息是否相同;
若是,则无需同步消息,
若否,则在所述已保存的本地消息中从最新消息向前追溯,先采用指数递减的方式逐步缩减消息序列号的检查范围,再以二分法在所述检查范围内查找缺失消息的序列号,并向所述消息同步终端请求同步该序列号的缺失消息。
3.根据权利要求2所述的方法,其特征在于,检查信息完整性,还包括:
若LID<GID;
则所述普通通信终端向所述消息同步终端查询消息序列号为1至LID的消息的不可逆摘要信息,并判断查询得到的不可逆摘要信息与自身已保存的全部本地消息的不可逆摘要信息是否相同;
若是,则向所述消息同步终端请求同步消息序列号为(LID+1)至GID范围内的消息;
若否,则采用指数递减的方式逐步缩减消息序列号的检查范围,再以二分法在所述检查范围内查找缺失消息的序列号,并向所述消息同步终端请求同步该序列号的缺失消息。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若LID>GID,则该普通通信终端广播竞争消息同步终端的请求,参与同步终端竞争;
若所述普通通信终端在连续两个所述消息同步周期内没有接收到所述消息同步通知,则该普通通信终端广播竞争消息同步终端的请求,参与同步终端竞争;
若所述消息同步终端接收到任意所述普通通信终端发出的消息同步通知,则该消息同步终端广播竞争消息同步终端的请求,参与同步终端竞争;
若任意所述普通通信终端接收到该通信组内其他所述普通通信终端发出的竞争消息同步终端的请求,且当该竞争消息同步终端的请求中包含的消息序列号小于该普通通信终端的最新消息序列号LID,则该任意所述普通通信终端参与同步终端竞争,广播竞争消息同步终端的请求;
在参与同步终端竞争的所有通信终端中,将在一个所述消息同步周期内,广播的所述竞争消息同步终端的请求中包含的消息序列号最大的通信终端作为新的消息同步终端。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当所述容迟容断网络的结构变化为网络结点断开时,每个所述通信组***为多个子通信组,包括所述通信组的消息同步终端的子通信组作为第一子通信组,且该消息同步终端继续作为所述第一子通信组的消息同步终端;不包括所述通信组的消息同步终端的子通信组作为第二子通信组,每个所述第二子通信组中的所有普通通信终端广播竞争消息同步终端的请求,参与同步终端竞争,产生每个所述第二子通信组的消息同步终端;
当所述容迟容断网络的结构变化为网络结点连接时,该容迟容断网络中所有的组序列号相同的子通信组进行重组,在重组后的新通信组中,当任意消息同步终端接收到本通信组内其他消息同步终端发出的消息同步通知时,则该任意消息同步终端广播竞争消息同步终端的请求,参与同步终端竞争,产生该重组后的新通信组的消息同步终端。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:
通信终端以预设组代号在所述容迟容断网络中广播入组申请,若在一个所述消息同步周期内未收到入组应答,则以该预设组代号创建通信组,该通信终端作为该通信组的消息同步终端;若收到通信组的入组应答,则加入该通信组;
所述消息同步终端通过向该通信组内广播退组通知消息,以退出该通信组。
7.一种用于容迟容断网络的即时通信***,用于实现权利要求1至6任一项所述的方法,其特征在于,容迟容断网络中的多个通信终端根据所述容迟容断网络的结构变化动态构成一个或多个通信组;所述通信组,包括:
消息同步终端,用于与该通信组中的普通通信终端之间进行即时通信,以设定的消息同步周期间隔向该通信组内广播消息同步通知;
所述普通通信终端,用于根据获得的所述消息同步通知,检查自身已保存的本地消息的完整性,若有消息缺失或消息错误,则向所述消息同步终端发送同步缺失消息或错误消息的请求;
所述消息同步终端还用于,在接收到所述同步缺失消息或错误消息的请求后,向所述普通通信终端同步所述缺失消息或错误消息;
其中,所述通信组包括至少两个通信终端,所述至少两个通信终端中的一个通信终端作为所述消息同步终端,所述至少两个通信终端中除了所述消息同步终端之外的其他通信终端作为所述普通通信终端;所述容迟容断网络的结构变化包括网络结点断开和网络结点连接。
8.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的指令,所述处理器可执行所述指令以实现权利要求1-6任一项所述的用于容迟容断网络的即时通信方法。
9.一种存储介质,其上存储程序,该程序被处理器执行时实现权利要求1至6任一项所述的用于容迟容断网络的即时通信方法。
CN202310778189.6A 2023-06-29 2023-06-29 用于容迟容断网络的即时通信方法、***、设备及介质 Active CN116527617B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310778189.6A CN116527617B (zh) 2023-06-29 2023-06-29 用于容迟容断网络的即时通信方法、***、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310778189.6A CN116527617B (zh) 2023-06-29 2023-06-29 用于容迟容断网络的即时通信方法、***、设备及介质

Publications (2)

Publication Number Publication Date
CN116527617A CN116527617A (zh) 2023-08-01
CN116527617B true CN116527617B (zh) 2023-10-03

Family

ID=87397954

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310778189.6A Active CN116527617B (zh) 2023-06-29 2023-06-29 用于容迟容断网络的即时通信方法、***、设备及介质

Country Status (1)

Country Link
CN (1) CN116527617B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015043470A1 (zh) * 2013-09-25 2015-04-02 电信科学技术研究院 一种组通信方法、设备及***
CN108696595A (zh) * 2018-05-28 2018-10-23 郑州云海信息技术有限公司 分布式集群数据同步方法、主节点、从节点、***及介质
CN110708175A (zh) * 2019-10-12 2020-01-17 北京友友天宇***技术有限公司 分布式网络中消息同步的方法
CN114465697A (zh) * 2022-04-11 2022-05-10 湖南戎腾网络科技有限公司 一种基于以太网的可靠通信方法、装置及设备
CN116032867A (zh) * 2023-01-06 2023-04-28 北京达佳互联信息技术有限公司 会话处理方法、装置、电子设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2554638B (en) * 2016-09-28 2019-12-04 Advanced Risc Mach Ltd Error detection in communication networks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015043470A1 (zh) * 2013-09-25 2015-04-02 电信科学技术研究院 一种组通信方法、设备及***
CN108696595A (zh) * 2018-05-28 2018-10-23 郑州云海信息技术有限公司 分布式集群数据同步方法、主节点、从节点、***及介质
CN110708175A (zh) * 2019-10-12 2020-01-17 北京友友天宇***技术有限公司 分布式网络中消息同步的方法
CN114465697A (zh) * 2022-04-11 2022-05-10 湖南戎腾网络科技有限公司 一种基于以太网的可靠通信方法、装置及设备
CN116032867A (zh) * 2023-01-06 2023-04-28 北京达佳互联信息技术有限公司 会话处理方法、装置、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"容迟网络中路由算法的应用";杨万鑫等;《中国科技信息》;第47-49页 *

Also Published As

Publication number Publication date
CN116527617A (zh) 2023-08-01

Similar Documents

Publication Publication Date Title
Zhang et al. Scalable name-based data synchronization for named data networking
US9979635B2 (en) Method for controlling flood broadcasts in a wireless mesh network
US20050080858A1 (en) System and method for searching a peer-to-peer network
EP3035611B1 (en) System and method for distance-based interest forwarding
US20070233832A1 (en) Method of distributed hash table node ID collision detection
US20030147390A1 (en) Protocol for multicast communication
US9935861B2 (en) Method, system and apparatus for detecting instant message spam
CN109792406B (zh) 服务器集群中的消息传递方法、装置及存储介质
US7355968B2 (en) Method of stateless group communication and repair of data packets transmission to nodes in a distribution tree
Marandi et al. Pull-based bloom filter-based routing for information-centric networks
CN109525376B (zh) 快速重传方法、装置及终端设备
US20020129133A1 (en) Managing network traffic using hashing functions
CN114218612A (zh) 一种适用于联盟链高频交易场景的共识方法
CN112118117A (zh) 一种基于Paxos算法的区块链共识方法
Bonomi et al. Practical Byzantine reliable broadcast on partially connected networks
US8650259B2 (en) Method and apparatus for increasing the search space or peer-to-peer networks using time-to-live boosting
CN116527617B (zh) 用于容迟容断网络的即时通信方法、***、设备及介质
CN111526165B (zh) 联盟链中的共识方法和***
CN117082054A (zh) 一种数据传输方法、装置、***和介质
CN108718274A (zh) 一种即时通讯消息的防丢失方法
Li et al. Concurrent maintenance of rings
Li et al. Supporting delay tolerant networking: A comparative study of epidemic routing and ndn
CN110868318A (zh) 网络访问关系的生成方法、装置、电子设备及存储介质
Shi Named data networking in local area networks
Gawande Improvements to psync: Distributed full dataset synchronization in named-data networking

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