利用多次重发定时器经不可靠通信信道的远程过程调用的方法和系统的制作方法

文档序号:7570201阅读:217来源:国知局
专利名称:利用多次重发定时器经不可靠通信信道的远程过程调用的方法和系统的制作方法
技术领域
本发明涉及在分布式系统中远程过程调用(remote procedurecall),具体涉及经由一个不可靠通信信道传送的远程过程调用。
从客户到服务器的远程过程调用是在分布式系统中广泛应用的技术。客户向服务器发送一个请求,而后等待服务器确认收到该请求消息。在不可靠信道上的远程过程调用需要恢复丢失消息。虽然确认消息可以用来指示请求的收到,但确认消息也可能通过传送而被丢失。甚至在对确认消息还要进一步证实的情况下,对每一请求会有确认消息的多次传送。现在需要一种有效和失效保险的机制,使每个请求的传送次数最小化,一个丢失消息被恢复的时间最小化。


图1的标号100所示,在先有技术中,为了恢复一个丢失的请求,一直利用每个客户机—服务器对在一个单一的满时周期来恢复丢失的请求。在发送请求102之后,客户机便启动一个定时器,并等待一个预选的满时周期104来得到确认消息。如果在定时器满时之前,由于丢失请求消息、丢失确认消息106,或由于意外地大的往返程延迟,客户机未收到确认消息,则客户机重发请求108,重新启动定时器并等待另一确认消息110。在达到预定的限度之前,重复这一顺序连串的步骤。满时周期是一个给定客户机—服务器对的往返程延迟。如果请求消息真的丢失了,则服务器不能识别重发请求与原始请求之间的差异。这个先有技术是通常称之为“停止与等待协议”。
图2以标号200示出利用顺序号来恢复丢失确认消息的先有技术方法。当对于一个给定请求(K)的确认消息202丢失后,便在预选的满时周期204之后,重发该请求(K)206,服务器忽略该请求,而发出一个新的确认消息208。于是,服务器可以对每个请求的最近的收到顺序号保持跟踪,从而它能避免对任一请求服务一次以上。另一种替代的方法是,给原始请求作标记,以区别于随后的重发请求。
在先有技术的另一种实施方案中,将一个过程表存储在含有每个过程的满时周期信息的一个表目(entry)中,须对整个过程表进行周期性扫描,以识别满时的定时器。虽然在这种方法中建立和清除定时器的行动仅需很少机器指令,但每个客户机—服务器对仍然需要一个定时器。
常规的过程调用方法使用一个定时器恢复丢失的消息。如果客户机在定时器满时之前没能收到确认消息,则会重发该请求,并将定时器重新启动。往往就客户机—服务器之间的往返程延迟,对定时器的满时时间进行优化。如在网状网路中那样,由于不同的客户机—服务器对可能相应于不同的往返程延迟,故每个客户机—服务器对就需要一个专用的定时器。当客户机—服务器对的数目加大时,处理和存储器资源可能受到限制。借助于使用单一的定时器值,便可以分享一个公用的定时器,从而避免不得不保持大数目不同周期定时器的问题。然而,采用这种方法,实际上要给每个客户机—服务器对分配一个次优的定时器值。
在一个地理分布式网路上实现远端过程调用的,同一个客户机—服务器对的往返程延迟在不同时间可能有显著的差异,因为在客户机和服务器间的连接可以取不同的路由。采用与往返程延迟严格相关的满时周期需要有各种动态调整,从而会大大增加系统的复杂性。当采用远端过程调用的常规方法时,客户机—服务器对的一个无效(invalid)定时器值(即一个只适合一条路由而不适合另外路由加定时器值)会使它的通过量和延迟变差。
当采用先有技术的远程过程调用方法时,往返程延迟的不准确估值能够导致一个过程的冗余调用(invocations)。对于那些招致补偿(penalty)的过程(非幂等过程)来说,这些多余的调用会带来一系列不良影响。例如,当过程是重置数据压缩编码器和译码器而使它们同步时,与估值的往返程延迟有关的意外地大的往返程延迟会过多地增加重置的频度,使压缩性能和通过量明显劣化。当往返程延迟意外地小,并丢失请求和/或确认消息时,便会增大重新同步的延迟,使数据压缩连接的通过量降低。为此,采用不准确往返程延迟估值的现有过程调用方法会加剧非幂等过程调用的有害作用。动态地估计往返程延迟在许多先有技术中已能为一种关键功能。现在需要使用最小数目的重发定时器经由不可靠通信信道来提供远程过程调用的方法和系统,其中最小数目的重发定时器可以避免由于次优定时器带来的问题,同时还可以降低系统性能对往返程延迟的敏感性。
图1示出一种用以对每个客户机—服务器对在一个单一的满时周期来恢复丢失的请求的先有技术方法。
图2示出一种用以恢复一个丢失的确认消息的先有技术方法。
图3示出本发明沿时线的方法的一个实施例的步骤。
图4示出按照本发明的客户状态机的一个实施例。
图5示出按照本发明的处理幂等过程的服务器状态机的一个实施例图。
图6示出按照本发明的处理非幂等过程的服务器状态机的一个实施例图。
图7示出用于“请求—确认”的超长满时周期的时序。
图8示出用于“请求—确认”的欠长满时周期的时序。
图9示出按照本发明方法的幂等情况下二种时序的例子,其中在初次“握手”失败之后,获得成功“握手”。
图10示出按照本发明方法的幂等情况下四时序的例子,其中在初次“握手”失败之后,获得成功“握手”。
图11示出按照本发明方法的非幂等情况下一个时序的例子,其中在初次“握手”失败后,获得成功“握手”。
图12示出按照本发明方法的非幂等情况下三时序的例子,其中在初次“握手”失败之后,获得成功“握手”。
图13示出按照本发明的译码器(客户机)状态机的一个实施例步骤。
图14示出按照本发明的编码器(服务器)状态机的一个实施例步骤,它与图13译码器状态机一起起作用。
图15示出以第一级和第二级虚拟定时器分别代替第一级和第二级定时器的时线,并按照本发明按照片时钟来实施。
本发明至少具有三个益处(1)具有大的往返程延迟的连接在恢复丢失原始请求消息中不再遭受长延迟影响,也不因其定时器满时太频繁而以许多不必要重发而告终,并且对于幂等过程而言,对于原始请求的确认消息的丢失也不导致恢复中的长延迟;(2)由于没有严格取决于往返程延迟的满时周期,故该方案对于在地域上分布的动态网路拓扑结构中远程过程调用是可靠的,从而在连接上提供更好的业务质量;(3)无需对每个客户机—服务器的连接有一个定时器,因此显著节省了处理资源。
图3以标号300表示本发明沿时线方法的一个实施例步骤。在发送远程过程调用的过程中,客户机给服务器发送一个初始请求302。一个初始请求是客户机为调用预定的远程过程调用发出的最先的请求。本发明在跟随初始请求302的预定的第一周期308之后,提供由客户机发送的冗余请求306。除了冗余请求总在初始请求之后外,冗余请求与其相应的初始请求302相似。预定的第一满时周期308应选取得足够大,以避免可能的突发差错(即在连续的请求消息中的足够大的解相关事件)。第一满时周期308通常选取得大于突发差错的持续时间,而小于最小的往返程延迟(即在发送初始请求302和收到共享这一定时器的客户机—服务器对的确认304之间的周期)。因此,与先有技术远程调用方法有关的超长延迟的不良作用得以避免。
在冗余传送也丢失(即收不到确认310)的情况下,对满时采用比第一满时周期大的第二满时周期312,而且一直重复第二满时周期,直至已成功地收到对请求314的确认316为止,或是重复再试预定的数目,以提高成功率,达到应用所希望的任意高的概率。通常选取的第二满时周期312大于共享定时器的客户机—服务器对的最大往返程延迟,而小于高层协议的拆线的满时周期。这样有冗余传送可靠的优点,并使本发明相对于先有技术方法有全面的好处。取决于应用情况,初始请求可以区别于或不区别于冗余及相继的其它请求。相继请求除了总在冗余请求之后外,相继请求与其相应的冗余请求相类似。可以有多于一个的相继请求,其中,除了第一相继请求之外,每个其它相继请求必须在另一相继请求之后。客户机可以连续发送相继请求,直至收到确认消息为止。
令T1和T2分别地表示第一和第二满时周期。本发明的满时序列为{T1,T2,T2……}。作为原始方案的一种变型,第一满时周期可以重复预定的次数(例如,{T1,T1,T2,T2,T2,……})。另一种变型是有一个周期为T3的第三级满时周期,这允许在第二满时周期满时后,接着重复满时周期T3(即,{T1,T2,T3,T3,T3,……})。这一进程甚至可以容纳更宽的往返程延迟范围。还有另一种变型是,在第一和第二超时周期之间交替变更(即,{T1,T2,T1,T2,……})。在一般情况下,任何预选取的超时周期序列都是可能的(例如,{T1,T2,T3,T4,……})。
冗余请求可以有效地降低最终需要的相继满时周期满时的概率,实际上使相继重发的机会可以忽略。对于可以按必要的频度重复而不招致损坏的过程(即幂等过程),冗余请求或其它相继请求都不需要与初始请求区分。对于非幂等过程,应采用顺序数目或多次请求类型,以使服务器不终止对同一请求的多次服务。
图4以标号为400表示按照本发明的客户状态机的一个实施例。客户状态机有三个状态开始/正常处理402、等待第一满时周期T1满时404、等待第二满时周期T2满时406。在开始处理402时,由客户机发送初始请求,并启动定时器408,即,使预定的第一满时周期T1开始。之后客户机等待周期T1的满时404。凡在第一周期T1间收到确认消息,则客户机取消T1,并再循环正常处理402。凡T1满时而客户机没收到确认消息,则客户机发送一个冗余请求,并启动一个定时器410,即,使预定的第二满时周期T2开始。之后客户机等待T2满时406。凡在T2414中收到一个确认消息,则客户机取消T2,并再重复正常处理402。凡T2满时而客户机没收到确认消息,则客户机发送相继请求,并启动满时周期长度为T2的定时器412,并再循环等待T2满时406;这一循环在客户机收到确认消息414之前一直重复进行。
图5以标号500表示按照本发明的处理幂等过程的服务器状态机的一个实施例。当开始处理502之后,服务器等待一个请求。当收到请求后,服务器执行一个预定的程序,发送确认消息504,之后重新循环正常处理。
图6以标号600表示按照本发明的处理非幂等过程的服务器状态机的一个实施例。服务器等待初始请求、冗余请求和相继请求602。凡收到初始请求后,则服务器执行预定的程序,发送确认消息给客户机608,并等待下一个请求。凡收到冗余请求和相继请求中的一个,则服务器执行预定的程序,并发送确认消息给客户机606。凡前一个收到的请求为初始请求,并接着收到冗余请求和相继请求中的一个请求,则服务器停止响应该请求,重新循环610至相应于先前所收到的冗余/相继请求602的状态。凡先前收到的请求为初始请求,并接着收到另一个初始请求,则服务器执行预定的程序,发送确认消息,并重新循环612到与先前收到的初始请求604相应的状态。在非幂等情况下,如果下一个请求消息为冗余请求和相继请求中的一个请求,则服务器不确认跟随初始请求消息接着收到的请求消息。因此,有必要区分初始请求与任一冗余或相继请求。
为致力于解决往返程延迟随时间变化的问题,一些现有技术从测量得到往返程延迟的估值,并使用该估值适应性地更新每一连接的满时周期。在Karn的算法中,是将满时周期与指数定时器补偿方法相结合。在这种方案中,满时周期通常从往返程延迟的估值导出。如果定时器满时并引起再次传送,则满时周期向上调整一个常数因子。除非满时周期已达到上限,这一步骤在每次再传送之后重复一次。每次定时器补偿后,满时值对相继的消息保持不变,直至得到肯定的确认消息为止,之后满时值重置为从估计的往返程延迟导出的正常满时值。
据此,利用现有技术,如图7以标号700所示,满时周期通常相应于每次连接进行优化,并取决于其往返程延迟。凡满时周期702大于往返程延迟704的,任一丢失的请求占用不必长的时间来恢复。如图8以标号800所示,凡满时周期802小于往返程延迟804,则通常会有许多冗余请求,这是由于客户机通常在每一重复满时周期之后保持重发请求,直至客户机可以收到确认消息之前的更迟的往返程延迟为止。这些冗余请求占用带宽,并加剧非幂等过程的有害作用。
据此,可以看到理想的满时周期应是往返程延迟。对于具有大的往返程延迟的连接来说,所需要的满时周期也会大得使通过量显著降低。对于具有小的往返程延迟的连接来说,满时周期可能会太小,等待出某些突发误码差错。管理定时器所需的处理量不是很小的。为设置定时器,便需要建立数据结构,用以存储状态信息(规定何时定时器满时)和控制信息(当定时器满时后采取若干处理步骤)。将许多未决(pending)的定时器的数据结构保存在以时间顺序存储的一个表格内。因为每一连接需要一个定时器,故所需的定时器数目是极大的,因此可以对处理器和存储器资源造成相当大的压力。实际上,只有很少的定时器同时满时。在这方面,对定时器的很多处理工作存在浪费。
利用本发明,精确的往返程延迟并非重要。并且,如果往返程延迟随时间变化,也不影响协议。此外,正如诸如HDLC(高级数据链路控制)协议中的过程单元一类的其它协议,不必要调整任何参数。采用本发明,具有大的往返程延迟的连接不会在恢复丢失的请求消息中有出乎预料的长延迟,同时还可免除由于其定时器满时太频繁引起的许多不必要的和可能有害的过程的调用(invocation)。
由于定时器的值不取决于各自的连接,故本发明可以实施得可在一个多连接系统中使所有连接可以共用同样的第一和第二定时器。这就显著降低了更新软件定时器中所开销的处理器和存储器资源。
当在定时器满时前客户机没能从服务器收到确认消息时,请求或确认消息可能已经丢失,或者往返程延迟出乎预料的大。在往返程延迟增大的情况下,在由客户机收到对初始请求的确认消息之前,会有多次再传送。当有增大的往返程延迟时,指数定时器补偿方法(例如Karn算法)可以使不必要再传送成为最少。在这种方法中,每当需要再次传送时,甚至当出现由不为往返程延迟增大的其它事件引起的不能接收确认消息时,便会有补偿。因此,恢复丢失的消息需要具有定时器补偿通常占用的时间比没有补偿的长些。本发明则没有这一问题。不管往返程延迟增大还是消息已然丢失,请求消息的冗余传送通常能够加速恢复。在第二定时器周期之后的下一次再传送,如果需要,便将定时器补偿量增加一步程。由于需要增加一次重发的概率随所完成的再传送数目指数地下降,故恢复很少由于第二定时器而延迟。
现就本发明的性能与“停止和等待”(Stop-and-Wait)方法相比较作如下说明,其中,对幂等和非幂等两种情况分别地进行描述。性能比较是按照远程过程调用所占用的平均时间作出的。这个平均时间的乘法性的逆反给出远程过程调用方法的通过量的量度。
图9以标号900表示按照本发明方法的幂等情况下两时间序列的例子,其中在初始“握手”失败后,获得成功“握手”。在幂等情况下,令Tr表是往返程延迟,令T1和T2分别地表示第一和第二定时器周期,令P为由客户机传送的请求和由服务器传送的确认的失败概率(即失败的“握手”,“握手”为预定信号的交换,该信号用以建立客户机和服务器间的传送远程过程调用的连接)。图9表示初始“握手”失败的两种情况一是服务器没能收到来自客户机902的请求,一是客户机没能收到从服务器904来的确认消息。
图10以标号1000示出说明按照本发明方法的幂等情况下四时序的例子,其中有二个初始“握手”失败一是服务器没能从客户机收到初始请求1002和冗余请求1004;二是在用户服务器没能从客户机收到初始请求时,服务器收到了冗余请求,而客户机没能收到对该冗余请求的确认消息1010;三是在服务器从客户机收到初始请求1012时,客户机没能收到对该初始请求的确认消息1014,而服务器没能从客户机收到冗余请求1016;四是服务器从客户机收到初始请求1022,客户机没能从服务器收到该初始请求的确认消息1024,服务器收到由客户机发送冗余请求1026,而客户机没能从服务器收到该冗余请求的确认消息。在所有四种情况中,在二次失败的“握手”之后,有一次成功的“握手”。
借助于检验各数字,并预以推广,便可得到下列每一远程过程调用所占用的平均时间T*T*=Tr+(1-p)pΣk=0∞(T1+kT2)pk]]>T*=Tr+(1-p)pT1(11-p)+(1-p)p2T2(11-p)2]]>T*=Tr+(p1-p){(1-p)T1+pT1+pT2}]]>Tr表示往返程延迟时间,P表示客户机所传送的请求失败和服务器确认消息失败的概率,k表示从0至无穹大整数值,T1表示预定第一定时器满时周期的值,T2表示预定第二定时器满时周期的值。
令Ts为停止与等待协议的每一事例的平均时间,众所周知Ts=Tr1-p]]>式中Tr也是表示往返程延迟时间,p表示客户机发送的请求和服务器发送确认的概率。
于是,T*=Ts-(p1-p){Tr-{(1-p)T1+pT2}}]]>式中,若Tr>(1+p)T1+pT2,则T*<Ts,并可以选取T1和T2,使之满足上述不等式。因此,本发明具有比停止与等待协议(1/Ts)高的通过量(T*的乘法性逆反)。借助于有冗余请求,在第一定时器满时周期后,再发送每一初始请求。此外,只有在第二或更高级事件(即,它需要至少二次“握手”失败)之后才招致第二满时周期。
图11以标号1100表示按照本发明方法的非幂等情况下一个时序的例子,其中在初始“握手”失败之后得到成功的“握手”。令q为在任一方向传输中丢失消息的概率。仅若收到一个请求消息1102和相应的确认消息1104两者之后,才得到一次“握手”。因此,p和q有如下关系p=q+(1-p)q或(1-p)2=(1-q)2式中p表示客户机发送请求失败和服务器发送确认消息失败的概率。请求传输的往返程延迟Tr总会发生。因此,在延迟(Tr+T1)之后完成过程调用的概率为q(1-p)。
图12以标号1200表示按照本发明方法的非幂等情况下三时序的例子,其中,在两次初始“握手”失败后1202得到成功的“握手”。正如从图12可以看到的那样,正好引起T2一次的概率为h(1-p),式中,h=(1-q)q+q2+q2(1-q)=q(1-q)+qp在非幂等情况中每次远程过程调用所占用的平均时间如下T*=Tr+p(1-p){1+p+p2+p3+…}T1+h(1-p){1+2p+3p2+4p3+…}T2因此,T*=Tr+pT1+(h1-p)T2]]>它可以如下表示,T*=Ts-(p1-p){Tr-{(1-p)T1+hpT2}}]]>因此,若Tr>(1-p)T1+hpT2,]]>则T*<Ts十分清楚,当q趋近于0时,h/p趋近于0.5。在这种情况下,T2大有提供相对小的延迟的优点。然而,对于很小的p值,且若T2小于Tr的小整数倍时,则T*小于Ts。
本发明可以应用于编码数据在不可靠网路上的传输。在进行编码之前可以加入检错信息。可以采用重置协议来使编码器重置,重置协议当在定时时间满时前收不到确认时采用定时器产生另一重置请求。在先有技术中,如果译码器在其定时器满时之前仍不能从编码器收到有关前一个重置请求的确认消息,则它含重置它的定时器。这一步骤一直重复,直至请求得到成功确认为止。
数据压缩重置是过多频度的重置的一种非幂等过程,可能潜在地影响数据压缩比。由于先有技术中数据压缩算法的收敛时间相对小于预期的再同步的时间间隔,冗余重置对数据压缩性能没有多少作用。本发明的非幂等情况对实现来说更为复杂,并具有比幂等情况低的时延性能。鉴于上述考虑,幂等方式为优选的实施方案。为将本发明应用于上述术语的重置方案,译码器和编码器状态机可以分别如图13和图14所示地进行实施。在两图中,T1和T2分别地表示第一和第二满时周期。RR表示重置请求。
图13以标号1300表示按照本发明的译码器(客户机)状态机的一个实施例的步骤。译码器状态机有三个状态开始/正常处理(D0)(步骤1302),等待T1满时(D1)(步骤1304)和等待T2满时(D2)(步骤1306)。在状态D0(步骤1302)中,当收到重置确认(RE-SET.Conf.)后,译码器执行重置操作(步骤1308),并返回到D0状态(步骤1302)。当在D0状态(步骤1302)时,译码器或是等待编码器进行初始同步,或是已经与编码器同步,并以预定的方式译码数据。当译码器检测到失(去同)步后,它便发送重置请求(RR),启动定时期T1,并进入状态D1(步骤1310)。当在状态D1(步骤1304)时,译码器等待重置确认或T1满时。在状态D1,将数据丢弃而不进行译码,并进一步忽略失步指示。如果收到一个重置确认,则译码器返回到状态D0(步骤1318)。如果T1满时,则编码器发送一个另加的重置请求(RR2),启动定时器T2,并进入状态D2(步骤1312)。当在状态D2时,译码器等待T2周期(通常大于T1)以得到重置确认(步骤1306)。在这一状态中,译码器丢弃数据,并忽略失步指示。如果收到一个重置确认,则译码器返回状态D0(步骤1316)。如果T2满时,则译码器发送另一重置请求,同时启动T2定时器(步骤1314)。重复进行这一过程,直至收到一个重置确认为止。如图14以标号1400所示的,与图13译码器一起工作的编码器状态机只有一个状态,正常处理状态(步骤1402)。编码器在从译码器(步骤1404)收到每一重置请求时,总是将它自身重置,同时发送RESET.conf.。为了同步的初始化,编码器重置它自身,并发送一个RE-SET.conf.给译码器。
在采用相同的第一和第二满时周期完成所有连接的条件下,第一和第二定时器便可以由第一和第二虚拟定时器分别地代替,例如用片时钟实现的虚拟定时器。这就是说,如图15以标号1500所示的,在要启动给定定时器的时间点落入给定时隙(1502)时,相应的虚拟定时器将在下一时隙(1504)的末了满时。
本发明还可以用于广泛的应用范围,诸如加密、鉴权、调制解调训练、数率协商和在不可靠通信信道上的其它可靠的轻型(即非流属性)传输协议。
本发明可以体现在其它具体形式中;而不违背本发明的精神和重要特性。所描述的实施例可以认为是仅作为说明性的,并不是限制性的。据此,本发明的范围应由所附的权利要求书而不是前面的描述来限定。所有出自与权利要求书等效的含义和范围内的变动都应包括在本发明的范围之内。
权利要求
1.一种利用多个重发定时器经由不可靠通信信道提供从客户机至服务器的远程过程调用的方法,其特征在于,包括以下步骤1A)由客户机给服务器发送一个请求,并等待确认消息;1B)在每一预定顺序的满时周期后由客户机给服务器重发请求(各满时周期由多个重发定时器实现),直至收到确认消息为止。
2.根据权利要求1的方法,其特征在于,该预定的满时周期序列由第一满时周期开始,后跟预定重复数目的第二满时周期,并将第二满时周期预选为大于第一满时周期,在选取时,有2A~2A中至少一个2A)多个客户机—服务器对共用一个确定第一满时周期的重发定时器,并且第一满时周期为2A1)大于预定的突发误码持续时间;及2A2)小于共用重发定时器的各客户机—服务器对的任一往返程延迟;及2B)多个客户机—服务器对共用一个确定第二满时周期的重发定时器,第二满时周期为2B1)大于共用重发定时器的各客户机—服务器对的任一往返程延迟;及2B2)小于预定的较高层协议的拆线的预定满时时间。
3.根据权利要求1的方法,其特征在于,预定的满时周期序列包括至少下列之一3A)第一满时周期T1,它重复第一预定的次数;及3B)第二满时周期T2,它重复第二预定的次数,并且凡选用时,其中第三满时周期T3跟在第二满时之后,凡选用时,它重复预定的次数。
4.根据权利要求1的方法,其特征在于,预定的满时周期序列包括第一满时周期和第二满时周期,它们交替地执行预定的循环次数。
5.一种利用预定第一重发定时器和预定第二重发定时器为多个客户机—服务器对经由不可靠通信信道提供远程过程调用的通信系统,其中每个客户机具有一个客户状态机,其特征在于,包括5A)一个开始/正常处理状态单元,可操作地耦合到第一等待状态单元和第二等待状态单元,用于开始/正常处理远程过程调用;5B)该第一等待状态单元,可操作地耦合到开始/正常处理状态单元,用以等待预定第一满时周期T1的满时;5C)该第二等待状态单元,可操作地耦合到第一等待状态单元,用以等待预定第二满时周期T2的满时,其中,将第一满时周期选取为大于或等于预定的其间有连续请求消息中的去相关差错的周期,以便使相邻的请求不受突发误码的影响,并将第二满时周期选取为大于第一满时周期。
6.根据权利要求5的通信系统,其特征在于,包括6A~6C中至少一项6A)其中对于每一客户机—服务器对在开始处理时,由客户机发送一个初始请求,并由第一定时器开始预定的第一满时周期T1;客户机随后等待T1的满时凡在T1中收到确认消息,则客户机取消T1,并再循环至开始处理;凡T1满时而客户机没有收到确认消息,则客户机发出冗余请求,同时通过启动第二定时器开始预定的第二满时周期T2;客户机随后等待T2的满时;凡在T2中收到确认消息,则客户机取消T2,并再循环至开始处理;凡T2满时而客户机没收到确认消息,则客户机发送相继请求,启动另一个时长的T2的满时周期,而后再循环至等待T2的满时,重复发送相继的请求,直至出现下列之一6A1)客户机收到确认消息;及6A2)已经发送预定数目的相继请求;6B)其中,在幂等过程中,对于每一客户机—服务器对,服务器开始处理,并且当从客户机收到请求时,服务器则执行预定的程序,同时给客户机发送确认消息;及6C)其中,在非幂等过程中,对于每一客户机—服务器对,服务器有6C1)服务器等待初始请求、冗余请求和相继请求;6C2)凡已收到初始请求,服务器则执行预定的程序,同时给客户机发送确认消息;6C3)凡收到冗余请求和相继请求中的一个请求,则服务器执行预定的程序,并给客户机发送确认消息;6C4)凡前次收到的请求为初始请求,并接着收到冗余请求和相继请求中的一个请求,则服务器仍保持响应于请求;及6C5)凡前次收到的请求为初始请求,并接着又收到另一初始请求,则服务器执行预定的程序,并给客户机发送确认消息。
7.一种利用多个重发定时器为多个客户机—服务器对经由不可靠靠通信信道提供远程过程调用的通信系统,其特征在于,对于每个客户机—服务器对,客户机采用以下步骤7A)由客户机给服务器发送一个请求,并等待确认消息;7B)在每一预定顺序的满时周期之后,由客户机给服务器发送请求,直至收到确认消息为止。
8.根据权利要求7的通信系统,其特征在于,至少有8A~8B的一项8A)对于每一客户机—服务器对,接收多个请求的服务器采用幂等过程工作;及8B)对于每一客户机—服务器对,接收多个请求的服务器采用幂等过程工作。
9.一种可对多个编码器—译码器对提供编码数据在不可靠通信信道上传输的通信系统,其中远程过程调用是利用一种实施多个重发定时器的方法来提供的,以便同步下述的每对功能上代表服务器的编码器和功能上代表客户机的译码器,亦即,每个编码器—译码器对,其特征在于,该方法包括以下步骤9A)由译码器给编码发送一个同步的请求,并等待确认消息;及9B)在由多个重发定时器实现的一个预定的满时周期序列的每个满时周期之后,由译码器给编码器发送请求,直至收到确认消息为止。
10.根据权利要求9的通信系统,其特征在于,对于每个编码器—译码器对而言,10A)编码器包括一个具有一种状态的编码器状态机,该状态是,在当从译码器收到每一重置请求时编码器重置其自身并给译码器发送确认消息之后,编码器总是返回的状态,及10B)译码器包括译码器状态机,包含10B1)一个开始/正常处理D0单元,操作上接至第一等待单元D1和第二等待单元;10B2)第一等待单元D1,操作上接至开始/正常处理单元D0,用于设置第一满时周期;10B3)第二等待单元D2,操作上接至第一等待单元D1,用于设置第二满时周期;其中第一满时周期预选取为大于或等于一个预定的周期,在该周期时提供连续请求消息中的差错事件的去相关,以便使相邻请求消息不受突发误码的影响,并且第二满时周期预选取为大于第一满时周期,并且对于每个编码器—译码器对,当译码器状态机收到重置确认时选择状态D0,由译码器状态机执行重置操作,并返回D0状态,当在状态D0时,为10C~10D之一10C)由译码器状态机等待编码器进行初始同步;及10D)若已经与编码器同步,由译码器状态机按照预定的译码方案译码数据;当译码器状态机检测到失步后,由译码器状态机发送重置请求,启动定时器T1,并进入状态D1;当在状态D1时,由译码器状态机等待重置确认和T1满时中的任一个;在状态D1,由译码状态机丢弃数据而不对数据进行译码,并忽略进一步出现的失步指示;凡收到重置确认,则由译码器状态机重置为状态D0;凡T1满时,则由译码器状态机发送另一重置请求,启动定时器T2,并进入D2状态;当在D2状态时,由译码器状态机等待重置确认,直至定时器T2满时;在状态D2中,由译码器状态机丢弃数据,并忽略进一步出现的失步指示;凡收到重置确认,由译码器状态机返回状态D0;及凡T2满时,则由译码器状态机发送另一重置请求,并再次启动T2定时器,重复发送重置请求,直至出现下列之一收到重置确认和已发送预定数目的重置请求,并且凡要进一步选择,其中第一满时周期和第二满时周期的重发定时器可由虚拟定时器实现,并且凡要进一步选择,其中虚拟定时器为片时间钟。
全文摘要
方法(300)和通信系统(400、500、600、1300、1400)采用多个重发定时器提供从客户机至服务器间经由不可靠通信信道的远程过程调用。该方法包括由客户机给服务器发送请求,并等待确认消息;在每一由多个重发定时器实现的预定的满时周期序列之后,由客户机给服务器重发请求,直至收到确认消息为止。
文档编号H04L29/06GK1149919SQ96190264
公开日1997年5月14日 申请日期1996年1月29日 优先权日1995年3月30日
发明者魏秋立, 岳龙辰, 詹姆斯·A·帕斯考-安德森 申请人:摩托罗拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1