法律状态公告日
法律状态信息
法律状态
2020-01-17
未缴年费专利权终止 IPC(主分类):H04L29/06 授权公告日:20090610 终止日期:20190127 申请日:20050127
专利权的终止
2009-06-10
授权
授权
2006-10-11
实质审查的生效
实质审查的生效
2006-08-02
公开
公开
技术领域
本发明涉及多协议标记交换(MPLS)技术领域,特别是指一种多协议标记交换技术中数据报文的传输方法。
背景技术
MPLS是一种新兴的路由交换技术,能够提供高速可靠的数据报文传输。采用MPLS技术的IP路由器以及ATM交换机统称为标记交换路由器(LSR),而一组LSR连接在一起的传输通道称为标记交换路径(LSP)。在MPLS网络中,为了保证数据报文能够被正确的传输到目的节点,对于其中的LSP,采用了网络中常用的两种保护模式:1+1保护模式和1∶1保护模式。
在1+1保护模式中,网络中使用专用的备份LSP作为主LSP的保护,在业务的源节点处,源节点即发送方,主LSP和备份LSP连接在一起,主LSP上的流量复制到备份LSP上,同时传送到业务的宿节点,宿节点即接收方;正常情况下,宿节点接收主LSP上传送的数据报文,当发生故障或主LSP的传输质量不满足要求后,宿节点接收备份LSP上的数据报文,即宿节点将业务切换到备份LSP。而在1∶1保护模式下,与1+1保护模式不同的是,正常情况下备用LSP的带宽可以传输其他业务,当主LSP出现问题,需要在备用LSP上传输业务时,源节点才在备用LSP上传输原在主LSP上传输的业务。
在上述两种保护模式中,如果主备两条LSP上传输的时延不相同,就可能出现在切换后,宿节点收到来自两条LSP的相同数据报文,造成了数据报文的复制;或者在收到一条LSP上源节点后发的数据报文后,又收到了从另一条LSP上接收的源节点先发的数据报文的情况,造成了数据报文的错序。
下面以1+1保护模式为例具体说明数据报文复制的产生。
如图1所示,假设从节点A到节点E之间有两条LSP,LSP1为ABE,LSP2为ACDE,其中ACDE是为ABE配置的备份LSP。在图1中,假设ABE的传输时延小于ACDE,源节点传送的数据报文顺序为数据报文1、数据报文2、数据报文3、数据报文4……,在LSP1上数据报文1到达宿节点,数据报文2到达中间节点B时,发生切换,由于在源节点数据报文是同时发送到两条LSP上的,在LSP2上,数据报文1此时刚刚到达中间节点D,数据报文2到达中间节点C,那么在切换后,宿节点会收到ACDE上传送过来的数据报文1、数据报文2,这样就造成数据报文1收到了两次,也就是造成了数据报文的复制。
下面再以1∶1保护模式为例具体说明数据报文错序的产生。
如图1所示,假设其中的LSP2是主LSP,LSP1为备份LSP,LSP1的传输时延大于LSP2的传输时延。再假设在数据报文发送过程中,首先在LSP2上发送数据报文,依次发送了数据报文1、数据报文2,当数据报文1到达D节点,数据报文2到达C节点时,源节点A发起切换,在切换后,源节点A将后续的数据报文3、数据报文4经LSP1向宿节点E发送,由于LSP1的延时小于LSP2,可能会出现宿节点E先收到了来自LSP1的数据报文3,之后才收到来自LSP2的数据报文1和数据报文2,这样就造成了数据报文的错序。
在网络浏览等业务中,数据报文的复制和错序造成的影响不会太大,但是对于语音业务和视频业务等来讲,就会严重影响接收方的接听和视觉效果。
发明内容
有鉴于此,本发明的主要目的在于提供一种多协议标记交换技术中数据报文的传输方法,该方法能够解决现有技术中在主备LSP间切换时造成的数据报文复制和错序问题。
为达到上述目的,本发明提供了一种多协议标记交换技术中数据报文的传输方法,该方法包括:
发送方的业务节点发送数据报文时,在数据报文中设置发送次序信息;
接收方的业务节点接收数据报文后,根据数据报文中的发送次序信息,判断当前所接收的数据报文是否是一个比上次接收的数据报文晚发出的,如果是保留该数据报文;否则丢弃该数据报文。
所述判断当前所接收的数据报文是否是一个比上次接收的数据报文晚发出的之前,进一步包括:
判断所接收的数据报文是否是第一个数据报文,如果是,直接保留该数据报文;否则,执行所述的判断步骤。
如果当前所接收的数据报文是上一个数据报文之后所发送的数据报文,则所述保留该数据报文之前进一步包括:记录当前接收的数据报文中的发送次序信息,然后删除数据报文中的发送次序信息;
所述判断当前所接收的数据报文是否是一个比上次接收的数据报文晚发出的方法为:将当前所接收的数据报文中的发送次序信息与接收方的业务节点中记录的发送次序信息进行比较。
所述的发送次序信息可以是序列号。
如果所述的发送次序信息是序列号,所述的判断所接收的数据报文是否是该业务的第一个数据报文的方法为:
判断所接收到的数据报文中的序列号是否为序列号的初始值,并且接收方中没有记录序列号。
如果所述的发送次序信息是序列号,所述在数据报文中设置序列号的方法为:发送方将当前发送的数据报文中序列号的值,设置为自身发送的上一个数据报文序列号的值加1;
所述将当前所接收的数据报文中的发送次序信息与接收方的业务节点中记录的发送次序信息进行比较的方法为:判断当前所接收的数据报文中的序列号是否大于接收方的业务节点中记录的序列号,如果大于则当前所接收的数据报文是一个比上次接收的数据报文晚发出的;否则不是。
所述序列号的位数为固定长度,并根据该长度预先在接收方设置一个阈值;
所述判断所接收的数据报文中的序列号是否大于接收方的业务节点中记录的序列号之前,进一步包括:
判断当前所接收的数据报文中的序列号与接收方的业务节点中记录的序列号之差是否大于预先设定的阈值,如果大于,直接保留该数据报文;否则执行所述的判断步骤。
所述步骤前进一步包括:
a、网管向业务节点下发包括在数据报文中设置发送次序信息的业务指示;
b、业务节点接收该业务指示后,向对端节点发送包括在数据报文中设置发送次序信息的LSP建立请求消息;
c、对端节点接收到该消息后,向业务节点返回包括可以在数据报文中设置发送次序信息的LSP建立请求响应消息。
所述步骤a前可以进一步包括:
a0、网管接收由用户指定的是否在数据报文中设置发送次序信息的指示,如果该指示为在数据报文中设置发送次序信息,执行所述步骤a。
还可以预先在网管中设置业务类型与是否在数据报文中设置发送次序信息的对应关系;则所述步骤a前进一步包括:
a1、网管根据当前业务类型通过所述对应关系确定是否需要在报文中设置发送次序信息,如果需要,执行所述步骤a。
所述的业务节点为发送方的业务节点,所述的对端节点为接收方的业务节点;
或者,所述的业务节点为接收方的业务节点,所述的对端节点为发送方的业务节点。
从以上技术方案可以看出,本发明通过在数据报文中设置发送次序信息,接收方接收到数据报文后,如果根据发送次序信息判断出当前接收的数据报文不是比上次接收的数据报文晚发出的,就丢弃该数据报文,从而保证了在接收方不会出现数据报文的复制和错序;
进而,本发明中通过在建立LSP时,在建立请求消息中包括是否在数据报文中携带序列号的发送次序信息,此后根据该信息在数据报文中携带序列号,实现了在某些对复制和错序要求不高的业务中,不使用序列号,节约了网络资源;
此外,本发明中通过将序列号设置为一定的长度,在接收方,在将接收的数据报文中的序列号与其中存储的序列号比较之前,先判断两者的差是否大于一个根据序列号长度预先设置的阈值,如果大于预先设置的阈值,就直接保留该数据报文,减小了序列号占用资源的大小,进一步节约了网络资源。
附图说明
图1为保护模式下的主备LSP组成示意图;
图2为本发明第二实施例的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
本发明的主要思想是,发送方在发送数据报文时,在数据报文中设置发送次序信息;接收方接收数据报文后,根据数据报文中的发送次序信息,判断当前所接收的数据报文是否是一个比上次接收的数据报文晚发出的,如果是,保留该数据报文;否则丢弃该数据报文。
下面通过具体实施例对本发明进行详细阐述。
本发明的第一实施例中,预先在数据报文中设置次序信息,次序信息可以是一个序列号。对于发送方来讲,可以每发送一个数据报文,将序列号的值增一。当然,也可以每发送一个数据报文将序列号的值减一,只要通过设置该序列号能够标识出数据报文发送的先后顺序就可以。
在MPLS技术中,数据报文的格式如表1所示。在表1中,报头,也就是前两行中各项所占的数据位都是固定的,外部标签值(Outer Label)和内部标签值(Inner Label)为20位,实验用途(EXP)为3位,标底指示比特为1位,生存时间为8位。
表1
在本实施例中的数据报文格式如表2所示,表2中的第3行就是为了标识数据报文的次序而增加的。其中,预留值、预留值、0和0都是预留项,共占10位,数据长度项为6位,可以用来标识下面的分组数据单元的长度,数据长度项也可以不设置,即前面的16位都是预留值;最后的序列号项,就是用来标识发送次序信息的,在报文中所占的长度为16位,当然该序列号项的长度也可以设置为8位或24位或其他值。如果长度为16位,发送方在每发送一个数据报文将该项值增一,那么当该项值达到65535后,再从0开始设置。
表2
本实施例中,在业务中,源节点和宿节点建立LSP完成后,源节点将发送的第一个数据报文中的序列号设置为初始值,例如为0;此后,对发送的数据报文中的序列号依次增一;当序列号达到65535,再执行增一操作后,高位溢出,序列号变为0。
在宿节点,接收到第一个数据报文后,记录其中的序列号,并保留该数据报文。接收到第二个数据报文后,读取其中的序列号,并将该序列号与其中记录的序列号进行比较,如果第二个数据报文中的序列号大于宿节点中记录的序列号,将宿节点中记录的序列号更新为第二个数据报文中的序列号,然后保留该数据报文;否则,丢弃第二个数据报文。
对于此后接收的数据报文来讲,都同样执行下述步骤:读取数据报文中的序列号,将该序列号与其中记录的序列号进行比较,如果该数据报文中的序列号大于宿节点中记录的序列号,就将宿节点中的序列号更新为该数据报文中的序列号,然后保留该数据报文;否则,丢弃该数据报文。
上述对本实施例的说明是对于在源节点每发送一个数据报文,将数据报文中的序列号增一来说的,如果在源节点每发送一个数据报文,将数据报文中的序列号减一,则当序列号减到0后,再从65535开始依次减一;那么,在宿节点,判断的是当前所接收的数据报文中的序列号是否小于其中记录的序列号,如果小于,就将宿节点中记录的序列号更新为当前数据报文中的序列号,并保留该数据报文。
此外,在本实施例中,宿节点也可以不记录数据报文中的序列号,那么,当宿节点接收到源节点发送的的第一个数据报文后,保留该数据报文;此后,宿节点将当前所接收的数据报文中的序列号,与宿节点中保留的上一个数据报文中的序列号进行比较来决定是否保留该数据报文,具体对序列号的比较方法与本实施例中上面所介绍的相同。
在本发明的第一实施例中,由于在数据报文中增加了序列号,源节点发送数据报文时,在其中设置序列号;宿节点接收数据报文后,如果根据序列号判断出接收的数据报文,与上一个接收的数据报文的序列号相同,或判断出接收的数据报文,是上一个接收的数据报文之前发送的,则该数据报文的保留会造成数据报文的复制或错序,所以就丢弃该数据报文。这样,无论是在1+1保护模式下,或1∶1保护模式下,都避免了报文的复制和错序。进而,本实施例也解决了其他网络原因造成的报文复制和错序问题。
由于对于一些下载和背景业务来说,报文复制和错序对业务质量的影响不大,在这些业务中,也在数据报文中设置序列号信息,就浪费了大量的网络资源。所以,在本发明第一实施例的基础上,提出了本发明的第二实施例,在第二实施例中,可以根据业务的不同,在报文中添加或不添加序列号信息,对于报文复制和错序影响不大的业务,不在数据报文中添加序列号信息,节约了大量的网络资源,以下就对本发明的第二实施例进行说明。
在本发明的第二实施例中,预先在网管中设置业务类型与是否防止报文复制和错序的对应关系,这种对应关系如表3所示。
表3
实际上,在网管中设置的对应关系也可以是设置业务类型与是否需要在数据报文中添加序列号信息的对应关系,由于两者实质相同,在本实施例中只以第一种对应关系进行说明。
由于一个业务可以由源节点发起,也可以由宿节点发起,但其区别不大,所以下面以源节点为例进行详细说明,对于宿节点发起的业务可以参照源节点发起的流程来实现。如图2所示,为本实施例的具体流程:
步骤201、源节点网管在接收到业务指示后,根据其中的业务类型,索引业务类型与是否需要防止报文复制和错序的对应关系表,获得其是否需要防止报文复制和错序的信息,并判断该信息是否为需要防止报文复制和错序,如果需要防止报文复制和错序,执行步骤202;否则,执行正常的业务处理流程。
步骤202、源节点网管下发业务指示到源节点,通知其发起一个防止报文复制和错序的LSP建立请求。
步骤203、源节点接收到网管下发的业务指示后,向宿节点发送建立LSP请求,在该请求中,包括了防止报文复制和错序的信息,通知其需要在报文中添加序列号信息。
步骤204、宿节点接收到建立LSP请求后,向源节点返回建立LSP响应消息,通知其可以在报文中添加序列号信息。这样,就完成了源节点和宿节点之间的协商,可以在建立LSP上传送包括了序列号的数据报文了。
步骤205、源节点接收宿节点返回的响应消息后,在待发送的数据报文中增加序列号信息。
本步骤中,增加序列号信息后的数据报文格式可以与第一实施例中相同,也可以只是增加序列号一项,这里不再详细阐述。并且,与第一实施例中相同,源节点发送第一个数据报文时,在其中设置一个序列号的初始值,例如为0;此后,每发送一个数据报文,其中的序列号值增一。
步骤206~207、宿节点在接收到数据报文后,判断该数据报文是否为第一个数据报文,如果是第一个数据报文,直接记录其中的序列号,并保留该数据报文;否则执行步骤208。
这里,判断数据报文是否为第一个数据报文,就是判断是否接收到的数据报文的序列号为初始值,例如为0,并且宿节点中没有为该业务记录的序列号,如果是就说明该数据报文是第一个。
步骤208、判断接收到的数据报文中的序列号与宿节点中所记录的序列号的差是否大于一个预先设定的阈值,如果大于该阈值,执行步骤211,即将宿节点中记录的序列号更新为该数据报文中的序列号,并保留该数据报文,删除其中的序列号;否则执行步骤209。
由于在发送方,序列号在达到65535后,会再从0开始增加,因此在宿节点接收到序列号为65535或65534这样的数据报文后,再接收序列号为0或为1的数据报文时,直接根据序列号的大小来判断数据报文发送的先后顺序就会出现错误,所以需要预先设定一个阈值,该阈值是根据序列号的长度设定的,如可以取最大值65535的一半左右的数值,32768;也可以根据网络丢包的情况取值,例如,如果网络中的连续丢包数小于10,该阈值可以取10至65526之间的任意值。在本步骤中,当判断出后面数据报文中的序列号与宿节点中保存的数据报文的差比这个阈值大时,就可以判断出后面的数据报文中的序列号是下一个从0到65535循环中的序列号,所以直接接收该数据报文即可,不需要再判断两个序列号的大小了。
步骤209~步骤211、判断接收到的数据报文中的序列号是否大于宿节点中记录的序列号,如果大于,就将宿节点中记录的序列号更新为该数据报文中的序列号,并保留该数据报文,删除其中的序列号;否则,丢弃该数据报文。
由于不是在所有的业务中,数据报文的格式都更改为包括序列号的格式,所以需要在宿节点将在源节点增加的序列号信息删除掉,恢复数据报文的原来格式。这里,如果增加序列号后的数据报文格式如表2所示,则删除掉其中第3行的所有信息,使数据报文恢复到表1的格式。
本实施例中是针对在发送方以每发送一个数据报文,将数据报文中的序列号增一来说的;如果在步骤205中,发送方每发送一个数据报文,将数据报文中的序列号减一,那么步骤209~步骤211就是:
判断所接收到的数据报文中的序列号是否小于宿节点中记录的序列号,如果小于,就将宿节点中记录的序列号更新为该数据报文中的序列号,保留该数据报文,然后删除该数据报文中的序列号;否则,丢弃该数据报文。
在本发明的第二实施例中,通过在网管中设置业务与是否需要防止复制和错序的对应关系,实现了对于不需要防止复制和错序的业务,不在其数据报文中设置序列号信息。
此外,在本实施例中,还可以由用户指定是否需要报文复制和错序信息,那么在上述流程中,网管不索引业务类型和是否需要防止复制和错序的对应关系表,而是直接根据用户指定的信息,向节点下发包括是否需要防止复制和错序的业务指示。
以上是对本发明具体实施例的说明,在具体的实施过程中可对本发明的方法进行适当的改进,以适应具体情况的具体需要。因此可以理解,根据本发明的具体实施方式只是起示范作用,并不用以限制本发明的保护范围。
机译: 火车中数据报文的传输方法,涉及通过路由器与数据传输设备相连的每辆车中的站立网络,并根据火车的组装确定用于初始化的路由器
机译: 多协议传输方法用于Internet中的数据包,涉及将标头地址数据与有用数据分开
机译: 一种多协议标签交换协议数据单元的传输方法