报文传输方法及系统的制作方法

文档序号:7710363阅读:156来源:国知局
专利名称:报文传输方法及系统的制作方法
技术领域
本发明涉及进程间通信技术,尤其涉及一种应用于进程间通信的 报文传输方法及系统。
背景技术
在现代分布式通信系统中,进程间通信机制提供在同 一主机或不 同主机中不同进程之间的信息通信通道,起到信息同步、通告事件等 作用。高效可靠的进程间通信机制保证了分布式系统的对事件的响应 速度和不同进程之间的协同能力,是保证系统整体性能的关键技术之 一。目前,随着计算机芯片技术的发展,单机单芯片的性能已经发展 到极限。为了进一步提升计算性能,以多核多框为特征的大规模集群 计算机系统是发展趋势。在这样的系统中,进程间通信变成了制约系 统整体性能的主要瓶颈。TIPC是一个专门用于集群通信设备系统的进程间通信协议。 TIPC与传统的通信协议(例如TCP, UDP等)相比,TIPC采用相 对简单的可靠机制,充分利用大容量和高可靠性的集群网络的性能优 势,在保证高可靠性的同时,也提供了高性能和高扩展性。在多家公 司(WindRiver, Nortel等)的推动下,TIPC有可能成为集群通信系统中 进程间通信协议的标准。TIPC采用了基于NACK的可靠机制。其特点为在一个通信的 两端,当一个报文由发送端发给接收端后,由接收端通过查看接收到 的报文序列号的连续性来判断前面发送的报文中是否有丢失,如果丢 失,则发送非确认(No Acknowledgement,简称NACK)报文给发送 端请求重传。发送端接收到NACK报文后,则立即重传被请求的报文。 同时,每发送一个报文后,发送端需要保留该报文的拷贝用于后续可能的重传。接收端在成功接收到报文后,需要给发送端发送表示接收成功的确认(Acknowledgement,简称ACK)报文。这样发送端可以释 放已经成功发送的报文的拷贝,腾出资源发送新的报文。TIPC中的两个关键技术点使得基于NACK的可靠机制能够保证 报文传输的可靠性,同时还能满足高性能和高扩展性的要求,如下1、链路连续探测定时器(Link continuity timer,简称LCT)TIPC中的一个通信端点有一个LCT。每当LCT超时,如果在 定时期间没有收到对端的任何报文,该端点发送 一 个探测报文 (probing message)到对端。LCT起到了如下四个定时器的作用,节约 了通信端点维护多个定时器的资源。1)保活定时器(keep-alive timer)。通信两端在没有有效信息需要 传送时,LCT超时发送的探测报文可以让对端知道本端点是否还存 在。2 )才艮文重传定时器(retransmission timer)。参见图1, 3口果、没有 后续报文的发送,接收端无法通过检测报文序列号连续性来探测最后 一个报文的丢失。此时,发送端的LCT超时发送的探测报文能够让接 收端发现报文序列号的空隙,从而接收端可以发现最后一个报文丢失, 请求重传,这样LCT保证了丢失报文能够在一定的时延内重传。3) 接续传输定时器(persist timer )。参见图2,在接收端接收 窗口满时,发送端不能继续发送报文。此时,如果接收端没有有效数 据发送,而且也确认了所有接收到的报文,接收端不会发送数据报文 给发送端。这种情况下,即使当接收端的接收窗口开始有空闲时,发 送端仍然无法继续发送数据。此时,接收端LCT超时会发送探测报文 给发送端,从而通知了当前接收窗口状态,使得发送端继续发送数据。 此时,LCT起到了接续传输的作用。4) ACK延时定时器(delayed ACK timer)。参见图3,为了节 约ACK花费的网络资源,TIPC规定在接收端成功接收到IO个报文 以后才返回一个ACK报文给发送端。如果发送端发送不到IO个报文, 接收端不会发送ACK。此时,当接收端LCT超时,接收端的探测报文携带ACK信息给发送方。因此,LCT起到了延时ACK的作用。 2、 NACK的触发机制每次接收到报文后,接收端需要检查其序列号的连续性。如果其 序列号和前面接收的报文存在空隙,接收端认为有报文丢失。此时, 接收端将该报文放到一个延迟报文队列,同时发送NACK请求重传。 为了找到性能和可扩展性的折衷,TIPC规定了如下两条NACK触发 条件1) 当发现丢失报文,并且延迟报文队列为空时,立即发送NACK。2) 延迟队列不为空时,当累计8次发现丢失报文时发送一个 NACK。该条件抑制了接收端可能发送的NACK数量,节约了多余的 NACK以及其触发的重传报文浪费的网络资源。在上述TIPC的两个关键技术点中,存在如下问题1) LCT的可扩展性问题。如前所述,因为LCT在TIPC可靠机 制中起到了四个定时器的作用,其中,重传定时器和接续传输定时器 的作用尤为重要。为了保证了传输的吞吐率,LCT需要很短,这样能 够保证丟失报文可以被快速重传,以及由于满接收窗口暂停的数据传 输可以快速恢复。目前,TIPC规定LCT为一个定长的时间间隔,最 长不超过500ms。目前缺省为200ms。由于每次LCT超时都要发送探 测报文,快速LCT是性能的保证。然而,也导致在没有数据传输时产 生过多的无用探测报文,浪费了带宽资源,导致可扩展性问题。2) NACK触发机制导致冗长重传延时。参见图4,如果报文3 和5丟失,报文6为最后一个数据报文。根据TIPC中NACK触发的 两个条件,当接收报文6时发现报文5丢失时,由于延迟报文队列不 为空,不能立即发送NACK。此后,需要再等待7个探测报文后才能 发送被重传,这样会导致冗长重传延时。发明内容本发明的目的是提出一种报文传输方法及系统,能够减少过多的 无用探测消息造成的带宽资源浪费。为实现上述目的,本发明实施例提供了一种报文传输方法,包括以下步骤当本端的动态调整同步定时器(Dynamic Synchronization Timer,简称DST)超时时,如果在当前定时间隔内没有接收到对端 的报文,则向对端发送探测报文,并延长DST的定时间隔,然后重启 DST。进一步的,还包括以下步骤对端根据接收的探测报文检测到报 文丟失时,向本端返回NACK才艮文。为实现上述目的,本发明实施例提供了一种报文传输系统,包括 DST,还包括探测报文发送模块,用于在DST超时时,如果在当前定时间隔 内没有接收到对端的报文,则向对端发送探测才艮文;定时间隔动态调整模块,用于在DST超时时,延长DST的定时 间隔,然后重启DST。进一步的,还包括NACK报文触发模块,用于在根据接收的探 测报文检测到报文丢失时,返回NACK报文。基于上述技术方案,本发明实施例在DST超时的时候,延长DST 的定时间隔,这样就使得在没有报文传输时以比较长的定时间隔发送 探测报文,避免了过多的无用探测才艮文产生,从而节省了带宽资源。 在另一实施例中,根据接收的探测报文检测到报文丢失时返回NACK 报文,保证了 NACK报文的快速重传,同时由于DST对探测报文的 时延,可以避免过多的NACK被触发导致网络负载增加。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请 的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构 成对本发明的不当限定。在附图中图1为现有技术中LCT起到报文重传定时器的作用的示意图。 图2为现有技术中LCT起到接续传输定时器的作用的示意图。图3为现有技术中LCT起到ACK延时定时器的作用的示意图。 图4为现有技术中NACK触发机制导致冗长的重传延时的示意图。图5为本发明报文传输方法的一实施例中DST的调整定时间隔 的流程示意图。图6为本发明报文传输方法的另一实施例的流程示意图。 图7为本发明报文传输方法的又一实施例的流程示意图。 图8为本发明报文传输系统的一实施例的结构示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。本发明实施例针对TIPC中快速的LCT在没有报文传输时产生 过多的无用探测报文而耗费带宽资源的问题,提出了使用DST取代 TIPC原有的速率恒定的链路连续探测定时器(LCT)。根据前面对LCT起到了 4个定时器功能的分析,可以看出通信 两端并不总是需要快速的定时器来保证性能。在本发明实施例中,本 端的DST超时时,如果在该DST的当前定时间隔内没有接收到对端 的报文,则向对端发送探测报文,并延长DST的定时间隔,并重启 DST。这样就可以在没有报文传输时,将DST的定时间隔延长,与现 有技术的LCT相比,延长后的定时间隔使得探测报文的发出间隔增 加,进而减少探测报文数量,获得长定时间隔带来的对资源的节约。所谓本端和对端分别指的是本地通信端点和对方通信端点,这些通信端点可以为各种具有通信能力的设备,例如PC、移动终端等。 定时间隔可以预先被设置为两个以上级别,在每次本端的DST超时时,都延长DST的定时间隔到预设下一级的定时间隔,直到定时间隔的预设最大值所对应的级别为止。如图5所示,为本发明报文传输方法的一实施例中DST的调整定时间隔的流程示意图。在本实施例中,可以设置一个全局变量crucial—level标识DST的定时间隔的当前级别,并i殳置两个恒量MAX—CRUCIAL—LEVEL (default = 5): crucialjevel的最大值 MAX_SYNC_TIMEOUT (default-6.4seconds):动态调整同步定时器的最长定时。当DST超时时,如果在当前的定时间隔中没有接收到对端的报文,则向对端发送一个探测报文,并执行以下步骤 步骤101、将crucial—level减一;步骤102、判断crucial—level是否小于零,是则执行步骤103, 否则执行步骤104;步骤103、如果crucial—level小于零,则重置crucialjevel为0;步骤 104 、 将DST 的定时间隔延长为 timeout = MAX—SYNC—TIMEOUT/(2Acmcial_level),并重启DST。在本实施例中,DST的定时间隔在多次超时后从最小值以指数方 式增长为最大值。之后,如果没有发生需要快速定时的状态变化触发 的情况,则保持DST的定时间隔恒定不变。在另一实施例中,同步定 时器的各个级别的相邻级别也可以以线性方式从最小值增长到最大 值,或按照预设的多个从最小值增长到最大值的定时间隔的离散值。在本实施例中,DST的定时间隔逐渐增大。每次本端的DST超 时,如果在DST的当前定时间隔内没有发送报文,本端会向对端发送 探测报文(Probing message ),对端接收到该探测报文后,能够检测 到丢失报文,或恢复中断的报文发送。因此,希望对端能够尽早接收 到该探测报文。然而,该报文的传输是不可靠的。采用这种DST的定 时间隔逐渐增大的方案,探测报文越早被发送的定时间隔越短,这样 保证即使头几个探测报文被丢失的情况下,对端也能够较早地接收到 探测报文。另外, 一旦对端接收到探测报文,后续探测报文都是冗余 的,因此后续报文发送间隔逐渐增大,保证不会过度发送冗余的探测 报文,同时也起到保活(Keepalive)和ACK延时定时器的作用。在检测到状态变化为需要快速定时的状态的事件时,在本发明的 另一实施例中提供了处理流程,即判断DST的当前定时间隔是否为预设最小值,如果所述当前定时间隔非预设最小值,则设置所述定时间隔为预设最小值,并重启DST。如图6所示,为本发明报文传输方法 的另一实施例的流程示意图。DST作为重传定时器和接续传输定时器 时,需要快速的定时器以保证丢包后的快速检测和重传以及接收窗口 从满变为空闲后报文传输的快速恢复。在本实施例中,当本端检测数 据报文发出的事件或本端检测接收窗口由满变空闲的事件时,执行以 下步骤步骤201、如果crucial—level不等于MAX—CRUCIAL—LEVEL, 则设置crucial—level为MAX—CRUCIAL—LEVEL, timeout=MAX— SYNC—TIMEOUT/2Acrucial—level;步骤202、判断下次DST的定时间隔是否小于timeout,是则结 束操作,否则执行步骤203;步骤203 、 定时器的定时间隔延长为 MAX—SYNC— TIMEOUT/(2AMAX—CRUCIAL—LEVEL),缺省为(6.4/32=200ms ), 并重启DST。在本实施例中,在出现需要快速定时器的两个状态变化点的时 候,即本端发出数据报文和本端的接收窗口从满变为有空闲时,将DST 的定时间隔设为最短。在其余时间,则DST的定时间隔逐渐延长,直 到设定的最大值。这样,既能保证在关键时刻短定时器带来的高性能, 也能获得其余时间长定时器带来的对资源的节约,找到性能和可扩展 性的最好平衡点。针对现有TIPC的NACK触发条件可能导致长重传延时的问题, 在本发明的另一实施例中,还可以在现有的NACK触发机制中,加入 如下触发条件对端(即接收端点)根据接收的探测报文检测到报文 丟失时,向本端(即发出探测报文的发送端点)立即返回NACK报文。 该条件保证快速重传,同时由于DST对探测报文的时延,可以避免过 多的NACK被触发导致网络负载增加。如图7所示,为本发明报文传 输方法的又一实施例的流程示意图。在本实施例中,接收端检测到报 文丢失时,执行以下步骤步骤301、对端根据接收到的探测报文判断该报文丢失是否为第 一次检测到,是则执行步骤302,否则执行步骤303,所述报文丢失是 否为第 一 次检测到的判断方式在于检查该报文对应的序列 defer一queue是否存在,如果该报文第一次被检测到,则该报文并不属 于任何的defer—queue序歹'J ,因此则不存在对应的defer_queue,而且 当该报文第一次被检测到后,则建立对应的defer 画queue序歹'J, 以便 当该,报文在之后再次^皮检测到时可以确认为非第 一次检测到;步骤302、对端设置丟失报文检测计数器defer_count为0;步骤303、判断计数器defer—count是否为8的整数倍,是则执 行步骤305,否则执行步骤304;步骤304、判断该报文丟失是否是根据接收的探测报文检测到报 文丢失,是则执行步骤305,否则执行步骤306;步骤305、对端向本端返回NACK报文。例如,在图4的例子中, 当重传报文3到达后,计数器重置为0,则在下一个探测报文到达时 立即发送NACK。这样的机制解决了原有TIPC的NACK触发机制导 致的长重传时延问题。步骤306、该计数器defer—count力口 1。本领域普通技术人员可以理解实现上述方法实施例的全部或部 分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于 一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实 施例的步骤;而前述的存储介质包括ROM、 RAM、磁碟或者光盘 等各种可以存储程序代码的介质。如图8所示,为本发明报文传输系统的一实施例的结构示意图。 本实施例包括DST 1,还包括探测报文发送模块2,用于在DST 1 超时时,如果在当前定时间隔内没有接收到对端的报文,则向对端发 送探测报文;定时间隔动态调整模块3,用于在DST1超时时,延长 DST1的定时间隔,然后重启DST1。在本实施例中,在没有数据传输时,将DST1的定时间隔延长, 使得探测报文的发出间隔增加,进而减少探测报文数量,获得长定时间隔带来的对资源的节约。在另一系统实施例中,系统还可以包括第二调整模块,负责在检测到状态变化为需要快速定时的状态的事件时,判断DST的当前定时 间隔是否为预设最小值,如果所述当前定时间隔非预设最小值,则设 置所述定时间隔为预设最小值,并重启DST。这样,既能保证在关键 时刻短定时器带来的高性能,也能获得其余时间长定时器带来的对资 源的节约,找到性能和可扩展性的最好平衡点。可选的,在又一个系统实施例中,系统还可以包括NACK报文 触发模块,可以在根据接收的探测报文检测到报文丟失时,返回NACK 报文。这样的机制解决了原有TIPC的NACK触发机制导致的长重传 时延问题。最后应当说明的是:以上实施例仅用以说明本发明的技术方案而 非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属 领域的普通技术人员应当理解依然可以对本发明的具体实施方式
进 行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案 的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
权利要求
1、一种报文传输方法,其特征在于,包括当本端的动态调整同步定时器超时时,如果在当前定时间隔内没有接收到对端的报文,则向对端发送探测报文,并延长所述动态调整同步定时器的定时间隔,然后重启所述动态调整同步定时器。
2、 根据权利要求1所述的报文传输方法,其特征在于,所述延 长动态调整同步定时器的定时间隔的步骤具体为
3、 根据权利要求2所述的报文传输方法,其特征在于,还包括 设置所述动态调整同步定时器的两个以上级别的定时间隔的操作,所 述两个以上级别的定时间隔中的相邻级别的定时间隔按指数方式增 长。
4、 根据权利要求1所述的报文传输方法,其特征在于,还包括, 在检测到状态变化为需要快速定时的状态的事件时,判断所述动态调 整同步定时器的当前定时间隔是否为预设最小值,如果所述当前定时 间隔非预设最小值,则设置所述定时间隔为预设最小值,并重启所述 动态调整同步定时器。
5、 根据权利要求4所述的报文传输方法,其特征在于,检测状 态变化为需要快速定时的状态的事件的操作具体为本端检测数据报文发出的事件或本端检测接收窗口由满变空闲 的事件。
6、 根据权利要求1-5任一所述的报文传输方法,其特征在于, 还包括以下步骤对端根据接收的探测报文检测到报文丟失时,向本端返回NACK报文。
7、 一种报文传输系统,其特征在于,包括动态调整同步定时器, 还包括探测报文发送模块,用于在所述动态调整同步定时器超时时,如果在当前定时间隔内没有接收到对端的报文,则向对端发送探测报文; 定时间隔动态调整模块,用于在所述动态调整同步定时器超时 时,延长所述动态调整同步定时器的定时间隔,然后重启所述动态调 整同步定时器。
8、 根据权利要求7所述的报文传输系统,其特征在于,还包括 第二调整模块,用于在检测到状态变化为需要快速定时的状态的事件时,判断所述动态调整同步定时器的当前定时间隔是否为预设最小值, 如果所述当前定时间隔非预设最小值,则设置所述定时间隔为预设最 小值,并重启所述动态调整同步定时器。
9、 根据权利要求7或8所述的报文传输系统,其特征在于,还 包括NACK报文触发模块,用于在根据接收的探测报文检测到报文丢 失时,返回NACK才艮文。
全文摘要
本发明涉及一种报文传输方法,包括以下步骤当本端的动态调整同步定时器超时时,如果在当前定时间隔内没有接收到对端的报文,则向对端发送探测报文,并延长所述动态调整同步定时器的定时间隔,然后重启所述动态调整同步定时器。本发明还涉及一种报文传输系统。本发明在DST超时的时候,延长DST的定时间隔,这样就使得在没有数据传输时以比较长的定时间隔发送探测报文,避免了过多的无用探测报文产生,从而节省了带宽资源。
文档编号H04L1/18GK101594308SQ20091015815
公开日2009年12月2日 申请日期2009年7月3日 优先权日2009年7月3日
发明者剑 邱 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1