CN107547388A - 一种报文发送方法及装置 - Google Patents
一种报文发送方法及装置 Download PDFInfo
- Publication number
- CN107547388A CN107547388A CN201710735907.6A CN201710735907A CN107547388A CN 107547388 A CN107547388 A CN 107547388A CN 201710735907 A CN201710735907 A CN 201710735907A CN 107547388 A CN107547388 A CN 107547388A
- Authority
- CN
- China
- Prior art keywords
- message
- userid
- protocol massages
- speed limit
- packet
- 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.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及数据通信技术领域,尤其涉及一种报文发送方法以及装置,用以在Bypass隧道进行TE软转限速时,对协议报文和数据报文加以区分,对协议报文不进行限速,避免主隧道维护失败的情况。本申请实施例中,报文接收模块接收从主隧道切换到Bypass隧道的协议报文后,UserID生成模块为协议报文生成预设的第一UserID,并将第一UserID携带在协议报文中写入缓存,QoS控制模块从缓存中提取报文,在识别提取的报文中携带的UserID为第一UserID后,不对该报文进行限速处理。
Description
技术领域
本申请涉及数据通信技术领域,尤其涉及一种报文发送方法及装置。
背景技术
多协议标签交换流量工程(Multiprotocol Label Switching TrafficEngineering,MPLS TE)通过建立到达指定路径的MPLS TE隧道进行资源预留,使网络流量绕开拥塞节点,从而达到平衡网络流量的目的。MPLS TE隧道是从头节点到目的节点的一条虚拟点到点连接,由基于约束路由的标签交换路径(Constraint-based Routed LabelSwitched Paths,CRLSP)构成。
CRLSP的建立和维护依赖于在头节点和目的节点之间传输的扩展的资源预留协议(Resource Reservation Protocol,RSVP)报文。扩展的RSVP能够在要建立CRLSP的节点之间分发MPLS标签并预留资源,以建立CRLSP。为了对已经建立的CRLSP进行维护,需要在所建立的CRLSP中的各个节点之间周期性传输协议报文—RSVP刷新消息(Refresh),一旦某个节点在预设时间或者预设次数内没有接收到上游节点所发送的RSVP Refresh,就会导致CRLSP维护失败。
快速重路由(Fast Reroute,FRR)是MPLS TE中实现网络局部保护的技术,开启MPLS TE隧道的FRR功能后,当主CRLSP上的某条链路或某个节点失效时,流量会被切换到旁路(Bypass)隧道上。在流量切换时,主CRLSP上的所有报文,包括经过主CRLSP封装数据的MPLS报文以及维护主CRLSP状态的RSVP Refresh协议报文,都将经过Bypass隧道上的节点进行TE软转限速处理后发送。
Bypass隧道上的节点进行TE软转限速处理时,会将部分报文丢弃,造成用于维护主CRLSP的RSVP Refresh协议报文也存在被随机丢弃的可能。对于主CRLSP中的某个节点,如果在一定时间内没有收到RSVP Refresh协议报文,则会导致主CRLSP被删除,进而导致使用该主CRLSP的主隧道维护失败,引入到该主隧道的流量中断,无法再继续进行传输。
发明内容
本申请实施例提供一种报文发送方法及装置,用以在Bypass隧道进行TE软转限速时,对协议报文和数据报文加以区分,以更高的优先级对协议报文进行发送,避免主隧道维护失败的情况。
第一方面,提供一种报文发送装置,该装置包括:
报文接收模块,用于接收从主隧道切换到旁路Bypass隧道的报文,并将接收的报文传输到报文封装模块;
所述报文封装模块,用于在确定接收的报文为协议报文后,为所述协议报文添加标签,并将添加标签后的协议报文传输至用户标识UserID生成模块;
所述UserID生成模块,用于为所述协议报文生成预设的第一用户标识UserID,并将第一UserID携带在所述协议报文中写入缓存;
所述QoS控制模块,用于从所述缓存中提取报文,在识别提取的报文中携带的UserID为第一UserID后,确定不对该报文进行限速处理。
第二方面,提供一种报文发送方法,该方法包括:
接收从主隧道切换到旁路Bypass隧道的报文;
在确定所述报文为协议报文后,为所述协议报文添加标签,并将预设的第一用户标识UserID携带在所述协议报文中写入缓存;
从所述缓存中提取报文,识别提取的报文中携带的UserID为第一UserID后,对所述报文进行不限速的优先转发。
本申请实施例中,Bypass隧道上的节点进行TE软转限速处理时,通过为协议报文生成特殊的UserID,来指示QoS控制模块对协议报文和实际报文进行区分,对协议报文进行不限速处理,对数据报文进行限速处理,从而在隧道切换后,避免了用于维护主CRLSP的协议报文被随机丢弃的可能,进而避免了主隧道维护失败的情况。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要的附图做简单的介绍。显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为使用Bypass隧道对主隧道中的协议报文和数据报文进行软转限速时的一种组网示例;
图2为本申请实施例一所提供的一种报文发送装置的示意图;
图3为本申请实施例二所提供的一种报文发送装置的示意图;
图4为本申请实施例六所提供的一种报文发送方法的流程图;
图5为本申请实施例八所提供的另一种报文发送方法的流程图;
图6为本申请实施例十所提供的另一种报文发送方法的流程图;
图7为本申请实施例所提供的报文发送方法中进行拥塞管理的示例图之一;
图8为本申请实施例所提供的报文发送方法中进行拥塞管理的示例图之二。
具体实施方式
如图1所示,为在使用Bypass隧道对主隧道中的协议报文和数据报文进行软转限速时的一种组网示例。这里的协议报文具体指RSVP Refresh协议报文,数据报文是指经过主CRLSP封装数据的MPLS报文。在该图中,主CRLSP使用路径:路由器(Router)A→Router B→Router C→Router D。在主CRLSP的起始节点(Router A)上建立两条MPLS TE隧道Tunnel1和Tunnel2,Tunnel1和Tunnel2分别用于传输不同的用户数据。
为了增加网络的可靠性,开启MPLS TE隧道的FRR功能,当主CRLSP上的某条链路或者某个节点失效时,流量会被切换到Bypass隧道上。例如在该图1中,当Router B和RouterC之间的链路失效后,经FRR,Tunnel1和Tunnel2的流量切换到Bypass隧道Tunnel3。其中Tunnel3使用路径:Router B→Router F→Router C。Router B将从Tunnel1和Tunnel2切换到Tunnel3的报文贴上用于标识报文转发等价类(Forwarding Equivalence Class,FEC)的标签,简称标签,并执行软转限速处理。在申请人提出本申请方案之前,Router B基于服务质量(Quality of Service,QoS)控制模块进行TE软转限速处理时,对切换到Bypass隧道的协议报文和数据报文不会进行区分,会统一的进行限速处理后发送。
为了维护主隧道状态,本申请对协议报文和数据报文采用不同的限速处理机制。Bypass隧道在接收到从主隧道切换来的报文后,会对报文的类型进行区分,确定报文类型是协议报文还是数据报文;如果是协议报文,则会将报文生成特殊的使用者标识(UserIdentity,UserID)后传输到QoS控制模块,如果是数据报文,则会根据报文中的标签生成对应的UserID,QoS控制模块可以根据UserID的不同,区分出哪些报文是协议报文,并不对协议报文进行限速处理,以避免用于维护主隧道的协议报文被丢弃,保障流量正常引入到主隧道。
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请做进一步详细的说明。
本申请实施例中,执行TE软转限速的设备为主隧道中的中间节点设备,也为Bypass隧道的头结点。例如在上述图1中,Bypass隧道的头结点为Router B,同时其又是主隧道中的中间节点。
实施例一:
参见图2所示,本申请实施例一所提供的报文发送装置包括:
报文接收模块21,用于接收从主隧道切换到旁路Bypass隧道的报文,并将接收的报文传输到报文封装模块;
报文封装模块22,用于在确定接收的报文为协议报文后,为协议报文添加标签,并将添加标签后的协议报文传输至用户标识UserID生成模块;
UserID生成模块23,用于为协议报文生成预设的第一用户标识UserID,并将第一UserID携带在协议报文中写入缓存;其中,第一UserID用于指示服务质量QoS控制模块不对所述协议报文进行限速处理;
所述QoS控制模块24,用于从所述缓存中提取报文,在识别提取的报文中携带的UserID为第一UserID后,确定不对该报文进行限速处理。
在具体实施中,当主隧道中的某个中间节点X(如图1中的Router B)发现其后面的链路或者下游节点出现问题的时候,会启动FRR功能,将流量切换到Bypass隧道上。节点X的报文接收模块21接收从主隧道切换到Bypass隧道的报文后,将报文传输到报文封装模块22,报文封装模块22对报文进行封装处理,也即为报文添加标签,同时,报文封装模块22还会对原本就在该Bypass隧道上传输的非切换报文进行封装处理,详见实施例五的说明。
在具体实施中,如果报文接收模块21所接收的报文是协议报文,那么其在进入Bypass隧道时是没有MPLS头的;如果是数据报文,其在上游节点上进行转发的时候,已经被封装了一层MPLS头。因此,可以根据接收的报文是否具有MPLS报文头,来确定接收到的报文的类型,也即若接收的报文有MPLS头,则确定该报文为数据报文,若没有MPLS头,则确定该报文为协议报文。
报文封装模块22在对从主隧道切换来的报文进行处理的时候,对于已经有一层MPLS头的数据报文,会通过查入标签映射表的方式进行标签压栈操作,即对数据报文进行二层MPLS封装;而对于没有MPLS头的协议报文,不需要通过查入标签映射表的方式进行标签添加操作,即对协议报文进行一层MPLS封装。报文封装模块22对报文进行封装后,将封装后的报文传输至UserID生成模块23。
在具体实施中,UserID生成模块23为协议报文生成预设的第一UserID,即为本申请对所有从主隧道切换到Bypass隧道的协议报文添加一个固定的UserID,用于指示QoS控制模块24不对携带有这样的UserID的报文进行限速。在为协议报文生成预设的第一UserID,将其写入缓存中等待下一步处理。
QoS控制模块24会将写入缓存中的报文按照先入先出的顺序提取出来,并识别提取的报文中的UserID,QoS控制模块24在识别到报文中的UserID为第一UserID后,确定不对报文进行限速处理。
例如:如果报文是用于维护主隧道状态的协议报文,UserID生成模块23为该协议报文生成特殊的第一UserID:0x00000000,并将该携带第一UserID的协议报文写入缓存中。QoS控制模块24中预设有限速规则:携带0x00000000的报文不进行限速处理,这样,QoS控制模块24在识别出报文中的UserID为0x00000000后,根据上述限速规则,不对该报文进行限速。
可选的,第一UserID可以为多个,可以为不同的协议报文生成不同的第一UserID,当然,第一UserID可以为一个,不同的协议报文采用同一个第一UserID。本实施例对于第一UserID的数量并不加以限定。同样道理的,在后面的实施例中的第二UserID和第三UserID的数量也不加以限定。
本申请实施例中,Bypass隧道上的节点进行TE软转限速处理时,通过为协议报文生成特殊的用户标识UserID,来指示QoS控制模块对协议报文和实际报文进行区分,只对数据报文进行限速处理,不对协议报文进行限速处理,在隧道切换后,避免了用于维护主CRLSP的协议报文被随机丢弃的可能,从而避免了主隧道维护失败的情况。
实施例二:
参见图3所示,本申请实施例二所提供的报文发送装置中,所述装置还包括:第一发送管理模块31,
相应的,在上述实施例的基础上,QoS控制模块24还用于:将不需要限速处理的协议报文传输至第一发送管理模块31;
第一发送管理模块31,用于在转发报文的接口未发生拥塞时,将所述QoS控制模块24输出的协议报文传输至第一报文发送模块33;在转发报文的接口发生拥塞时,将所述QoS控制模块24输出的协议报文传输至第一队列管理模块32;
第一队列管理模块32,用于将协议报文写入最高优先级队列中等待发送;
第一报文发送模块33,用于在转发报文的接口未发生拥塞时,将第一发送管理模块31传输的协议报文通过所述转发报文的接口发送出去,在转发报文的接口发生拥塞时,优先从所述第一队列管理模块32中的最高优先级队列中取出协议报文进行发送。
在具体实施中,QoS控制模块24在将不需要限速处理的协议报文传输至第一发送管理模块31后,如果转发报文的接口未发生拥塞,第一发送管理模块31将协议报文传输至第一报文发送模块33,第一报文发送模块33将协议报文从转发报文的接口直接发送出去;如果转发报文的接口发生了拥塞,则第一发送管理模块31将协议报文传输至第一队列管理模块32;第一队列管理模块32将协议报文写入最高优先级队列中等待发送。其中,位于最高优先级队列中的报文具有优先调度权,第一报文发送模块33会优先从第一队列管理模块32中的最高优先级队列中取出报文进行发送,也即,第一报文发送模块33会首先查看最高优先级队列中是否存在未发送的报文;如果存在,则优先发送该最高优先级队列中的报文;直至该最高优先级队列为空的时候,才会按照其他优先级队列对应的优先等级,依次对其他优先级队列中的报文进行发送。
实施例三:
本申请实施例二所提供的报文发送装置中,在上述任意一个实施例的基础上,报文封装模块22还用于:在确定接收的报文为数据报文后,为所述数据报文添加标签,并将添加标签后的数据报文传输至UserID生成模块23;
UserID生成模块23还用于:根据所述数据报文中携带的标签,生成第二UserID,并将该第二UserID携带在所述数据报文中写入缓存;所述第二UserID用于指示QoS控制模块24根据该第二UserID对所述数据报文进行限速处理;
QoS控制模块24还用于:在识别从缓存中提取的报文中携带的UserID为第二UserID后,对该报文进行限速处理。
在具体实施中,报文封装模块22对数据报文进行封装,实际上是对数据报文通过查入标签映射表的方式进行标签压栈操作,即对数据报文进行二层MPLS封装,以对数据报文执行添加标签的操作。同时,UserID生成模块23所生成的第二UserID是根据数据报文所携带的标签生成的,对不同的数据报文生成的第二UserID可能相同,也可能不同。不同的第二UserID大小对应的限速速率不同,因此,根据不同的第二UserID对数据报文进行限速时的限速速率不同。
UserID生成模块23在对数据报文进行封装后,将其写入缓存中等待下一步处理。对于写入缓存中的报文,QoS控制模块24按照先入先出的顺序提取出来,并识别提取的报文中的UserID;QoS控制模块24在识别报文中携带的UserID为第二UserID后,根据该第二UserID对相应的数据报文进行限速处理。
实施例四:
参见图3所示,本申请实施例四所提供的报文发送装置中,在上述实施例三的基础上,QoS控制模块24具体用于根据以下方式对所述数据报文进行限速处理:
判断当前数据传输速率是否超过所述第二UserID对应的限速速率;
若超过,则丢弃提取的报文,若未超过,则将报文传输至第二发送管理模块34;
所述装置还包括:
所述第二发送管理模块34,用于在转发报文的接口未发生拥塞时,将所述QoS控制模块输出的数据报文传输至第二报文发送模块;在转发报文的接口发生拥塞时,将所述QoS控制模块输出的报文传输至第二队列管理模块35;
所述第二队列管理模块35,用于将数据报文写入与所述第二UserID对应的优先级队列;
第二报文发送模块36,用于在转发报文的接口未发生拥塞时,将所述第二发送管理模块34传输的数据报文通过所述转发报文的接口发送出去,在转发报文的接口发生拥塞,且确定最高优先级队列中不存在协议报文时,按照优先级顺序从所述第二队列管理模块35的非最高优先级队列中取出数据报文进行发送。
在具体实施中,QoS控制模块24在对报文进行限速处理时,判断当前数据传输速率是否超过该第二UserID对应的限速速率;若超过,则丢弃提取的报文;若未超过,则将报文输出至第二发送管理模块34。第二发送管理模块34在转发报文的接口未发生拥塞时,将QoS控制模块24输出的报文传输至第二报文发送模块36;第二报文发送模块36将数据报文通过转发报文的接口发送出去;在转发报文的接口发生拥塞时,第二发送管理模块34将QoS控制模块24输出的报文输出至第二队列管理模块35;第二队列管理模块35将数据报文写入与所述第二UserID对应的优先级队列。第二报文发送模块36在确定最高优先级队列中的协议报文不存在协议报文的时候,会按照优先级顺序,从第二队列管理模块35中取出数据报文进行发送。
实施例五:
本申请实施例五所提供的报文发送装置中,在上述任意一个实施例的基础上,报文接收模块21还用于:接收发送到所述Bypass隧道的非切换报文,并将该非切换报文传输至所述报文封装模块22;
所述报文封装模块22还用于:为所述非切换报文添加标签,并将添加标签后的非切换报文传输至所述UserID生成模块23;
所述UserID生成模块23还用于:将预设的第三UserID携带在所述非切换报文中写入缓存;所述第三UserID用于指示所述QoS控制模块23不对所述非切换报文进行限速处理;
所述QoS控制模块24还用于:在识别从缓存中提取的报文中携带的UserID为第三UserID后,确定不对该报文进行限速处理。
在具体实施中,除了从主隧道切换到Bypass隧道上的流量外,Bypass隧道上的节点还需要对原本就在该隧道上传输的流量(也即非切换报文)进行处理。在对非切换报文进行处理时,报文封装模块22先将非切换报文进行封装,UserID生成模块23将预设的第三UserID携带在封装后的非切换报文中写入缓存等待后续处理;之后,QoS控制模块24从缓存中提取出报文,识别报文中携带的UserID,当确定该UserID为第三UserID后,不对该报文进行限速处理。在非切换报文从QoS控制模块25输出之后,如果转发报文的接口未发生拥塞,则可以将非切换报文从该接口直接发送出去;如果转发报文的接口发生了拥塞,则可以将非切换报文中的协议报文写入最高优先级队列中等待发送;将非切换报文中的数据报文,写入与数据报文的优先级对应的优先级队列中等待发送。
例如,针对非切换报文,生成第三UserID:0xffffffff。在非切换报文封装的时候,将0xffffffff写入到非切换报文中,并将携带第三UserID的非切换报文写入缓存。QoS控制模块识别提取的非切换报文中携带的UserID为第三UserID后,不对携带该0xffffffff的非切换报文进行限速处理。
基于同一发明构思,本申请实施例中还提供了与报文发送装置对应的报文发送方法,由于本申请实施例中的方法解决问题的原理与本申请实施例上述报文发送装置相似,因此装置的实施可以参见装置的实施,重复之处不再赘述。
实施例六
参见图4所示,本申请实施例六所提供的报文发送方法包括以下步骤:
S401:接收从主隧道切换到Bypass隧道的报文;
S402:在确定所述报文为协议报文后,为所述协议报文添加标签,并将预设的第一用户标识UserID携带在所述协议报文中写入缓存;
S403:从所述缓存中提取报文,识别提取的报文中携带的UserID为第一UserID后,对所述报文进行不限速的优先转发。
采用上述实施例,Bypass隧道上的节点进行TE软转限速处理时为协议报文生成特殊的UserID,以此将协议报文和数据报文进行区分,将携带特殊的UserID的协议报文进行不限速的优先转发,只对数据报文进行限速转发,使得所有协议报文的发送不限速,且优先于数据报文的发送,在报文发送的过程中,避免了用于维护主CRLSP的协议报文被随机丢弃的可能,从而避免了主隧道维护失败的情况,大大提升了TE软转限速时的可靠性。另外,由于协议报文的数量较少,这种对协议报文进行不限速的优先发送方式,对路由器的流量转发性能的影响是比较小的。
实施例七:
本申请实施例七还提供一种报文发送方法,在上述实施例的基础上,S403中,在识别提取的报文中携带的UserID为第一UserID后,对所述报文进行不限速的优先转发,包括:
若转发报文的接口未发生拥塞,则将所述报文从该接口发送出去;
若转发报文的接口发生拥塞,则将所述报文写入最高优先级队列中等待发送。
这里,针对不需要限速处理的协议报文,如果转发报文的接口未发生拥塞,将协议报文从转发报文的接口直接发送出去;如果转发报文的接口发生了拥塞,则将协议报文写入最高优先级队列中等待发送。其中,位于最高优先级队列中的报文具有优先调度权,也即,首先查看最高优先级队列中是否存在未发送的报文;如果存在,则优先发送该最高优先级队列中的报文;直至该最高优先级队列为空的时候,才会按照其他优先级队列对应的优先等级,依次对其他优先级队列中的报文进行发送。
实施例八:
本申请实施例八还提供一种报文发送方法,在上述任意一个方法实施例的基础上,参见图5所示,所述方法还包括:
S501:在确定接收的报文为数据报文后,为所述数据报文添加标签;
S502:根据所述数据报文中携带的标签,生成第二UserID,并将该第二UserID携带在所述数据报文中写入缓存;
S503:从所述缓存中提取报文,在识别提取的报文中携带的UserID为第二UserID后,对所述报文进行限速转发。
这里,对数据报文通过查入标签映射表的方式进行标签压栈操作,即对数据报文进行二层MPLS封装,以对数据报文执行添加标签的操作,并基于该标签生成相应的第二UserID,将携带第二UserID的数据报文写入缓存中等待下一步处理。对于写入缓存中的报文,按照先入先出的顺序提取出来,并识别提取的报文中的UserID;在识别报文中携带的UserID为第二UserID后,根据该第二UserID大小,对相应的数据报文进行限速处理。不同的第二UserID大小对应的限速速率不同,因此,根据不同的第二UserID对数据报文进行限速时的限速速率不同。
实施例九:
本申请实施例九还提供一种报文发送方法,在上述实施例八的基础上,所述方法还包括:
在识别提取的报文中携带的UserID为第二UserID后,对所述报文进行限速转发,包括:
判断当前数据传输速率是否超过所述第二UserID对应的限速速率;
若超过,则丢弃提取的报文;
若未超过,则在转发报文的接口未发生拥塞时,将提取的报文发送出去;在转发报文的接口发生拥塞时,将提取的报文写入与所述第二UserID对应的优先级队列中等待发送。
这里,在对报文进行限速处理时,判断当前数据传输速率是否超过该第二UserID对应的限速速率;若超过,则丢弃提取的报文;若未超过,则在转发报文的接口未发生拥塞时,将数据报文通过转发报文的接口发送出去;在转发报文的接口发生拥塞时,将数据报文写入与所述第二UserID对应的优先级队列。在确定最高优先级队列中的协议报文不存在协议报文的时候,会按照优先级顺序,从非最高优先级队列中取出数据报文进行发送。
实施例十:
本申请实施例十还提供一种报文发送方法,在上述任意一个实施例的基础上,参见图6所示,所述方法还包括:
S601:接收发送到所述Bypass隧道的非切换报文;
S602:为所述非切换报文添加标签,并将预设的第三用户标识UserID携带在所述非切换报文中写入缓存;
S603:从所述缓存中提取所述非切换报文,在识别提取的非切换报文中携带的UserID为第三UserID后,对所述非切换报文进行不限速的转发。
这里,除了从主隧道切换到Bypass隧道上的流量外,Bypass隧道上的节点还需要对原本就在该隧道上传输的非切换报文进行处理。在对非切换报文进行处理时,先将非切换报文进行封装,将预设的第三UserID携带在封装后的非切换报文中写入缓存;之后,从缓存中提取出报文,识别报文中携带的UserID,当确定该UserID为第三UserID后,不对该报文进行限速处理。此时,如果转发报文的接口未发生拥塞,则可以将非切换报文从该接口直接发送出去;如果转发报文的接口发生了拥塞,则可以将非切换报文中的协议报文写入最高优先级队列中等待发送;将非切换报文中的数据报文,写入与数据报文的优先级对应的优先级队列中等待发送。
为了更好地理解本申请的上述实施例,下面结合图示,对本申请在转发报文的接口发生拥塞时的拥塞管理机制作进一步说明。
在实际实施中,不管是切换到Bypass隧道的协议报文或数据报文,还是非切换报文中的协议报文或数据报文,当转发报文的接口发生拥塞时,可以调用队列管理模块对报文进行拥塞管理。
以切换报文为例(即切换到Bypass隧道的协议报文和数据报文),如图7所示,当接收切换报文之后,1)如果确定报文是协议报文,则将预设的第一UserID携带在封装后的报文中,并将其传输至QoS控制模块,QoS控制模块识别到该报文中所携带的UserID为第一UserID后,不对其进行限速处理,将经过QoS控制模块输出的报文传输至队列管理模块;队列管理模块将协议报文写入最高优先级队列;2)如果确定报文是数据报文,则根据报文的标签生成第二UserID,将该第二UserID携带在封装后的报文中,并将其输出至QoS控制模块,QoS控制模块识别到该报文中所携带的UserID为第二UserID后,对其进行限速处理,将经过QoS控制模块限速输出的报文传输至队列管理模块,队列管理模块根据数据报文对应的第二UserID大小,将其写入与该第二UserID大小对应的优先级队列中。
在对队列中的报文进行调度发送的时候,首先判断在最高优先级队列中是否存在未发送的报文;如果是,则优先调度该最高优先级队列中的报文进行发送;如果否,则对其它优先级队列的报文进行调度,按照优先级队列的优先级高低将队列中的报文依次发送出去。
在实际实施中,当转发报文的接口发生拥塞时,为了提高报文的处理效率,可以采用多个进程并行对报文执行入队操作。比如,采用双队列管理模块分别管理数据报文的入队和协议报文的入队,数据报文和协议报文在不同的队列管理模块的处理下并行入队。
具体地,如图8所示,当接收报文之后,1)如果确定报文是协议报文,则将预设的第一UserID携带在封装后的报文中,并将其传输至QoS控制模块,QoS控制模块识别到该报文中所携带的UserID为第一UserID后,不对其进行限速处理,将经过QoS控制模块输出的协议报文传输至协议队列管理模块;协议队列管理模块将协议报文被直接写入最高优先级队列;2)如果确定报文是数据报文,则根据报文的标签生成第二UserID,将该第二UserID携带在封装后的报文中,并将其输出至QoS控制模块,QoS控制模块识别到该报文中所携带的UserID为第二UserID后,对其进行限速处理,将经过QoS控制模块限速后输出的数据报文传输至用户数据队列管理模块,用户数据队列管理模块根据数据报文对应的第二UserID大小,将其写入与该第二UserID大小对应的优先级队列中。
在发送报文时,首先判断在协议队列管理模块管理的最高优先级队列中是否存在未发送的协议报文;如果存在,则调度最高优先级队列中的协议报文发进行发送;如果否,则按照优先级由高到低的顺序,从用户数据队列管理模块所管理的其它优先级队列中,调度数据报文进行发送。
采用上述实施例,Bypass隧道上的节点进行TE软转限速处理时,为协议报文生成特殊的UserID,以此将协议报文和实际报文进行区分,将区分出的协议报文进行不限速的优先转发,并对数据报文进行限速转发,使得所有协议报文的发送不限速,且优先于数据报文的发送,在报文发送的过程中,避免了用于维护主CRLSP的协议报文被随机丢弃的可能,从而避免了主隧道维护失败的情况,大大提升了TE软转限速时的可靠性。另外,由于协议报文的数量较少,这种对协议报文进行不限速的优先发送方式,对路由器的流量转发性能的影响是比较小的。
本申请实施例所提供的报文发送方法以及装置的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种报文发送装置,其特征在于,该装置包括:
报文接收模块,用于接收从主隧道切换到旁路Bypass隧道的报文,并将接收的报文传输到报文封装模块;
所述报文封装模块,用于在确定接收的报文为协议报文后,为所述协议报文添加标签,并将添加标签后的协议报文传输至用户标识UserID生成模块;
所述UserID生成模块,用于为所述协议报文生成预设的第一UserID,并将第一UserID携带在所述协议报文中写入缓存;
所述QoS控制模块,用于从所述缓存中提取报文,在识别提取的报文中携带的UserID为第一UserID后,确定不对该报文进行限速处理。
2.如权利要求1所述的装置,其特征在于,所述QoS控制模块还用于:将不需要限速处理的协议报文传输至第一发送管理模块;
所述装置还包括:
所述第一发送管理模块,用于在转发报文的接口未发生拥塞时,将所述QoS控制模块输出的协议报文传输至第一报文发送模块;在转发报文的接口发生拥塞时,将所述QoS控制模块输出的协议报文传输至第一队列管理模块;
所述第一队列管理模块,用于将协议报文写入最高优先级队列中等待发送;
所述第一报文发送模块,用于在转发报文的接口未发生拥塞时,将所述第一发送管理模块传输的协议报文通过所述转发报文的接口发送出去,在转发报文的接口发生拥塞时,优先从所述第一队列管理模块中的最高优先级队列中取出协议报文进行发送。
3.如权利要求1或2所述的装置,其特征在于,
所述报文封装模块还用于:在确定接收的报文为数据报文后,为所述数据报文添加标签,并将添加标签后的数据报文传输至所述UserID生成模块;
所述UserID生成模块还用于:根据所述数据报文中携带的标签,生成第二UserID,并将该第二UserID携带在所述数据报文中写入缓存;所述QoS控制模块还用于:在识别从缓存中提取的报文中携带的UserID为第二UserID后,对该报文进行限速处理。
4.如权利要求3所述的装置,其特征在于,所述QoS控制模块具体用于根据以下方式对所述报文进行限速处理:
判断当前数据传输速率是否超过所述第二UserID对应的限速速率;
若超过,则丢弃提取的报文,若未超过,则将报文传输至第二发送管理模块;
所述装置还包括:
所述第二发送管理模块,用于在转发报文的接口未发生拥塞时,将所述QoS控制模块输出的数据报文传输至第二报文发送模块;在转发报文的接口发生拥塞时,将所述QoS控制模块输出的报文传输至第二队列管理模块;
所述第二队列管理模块,用于将数据报文写入与所述第二UserID对应的优先级队列;
所述第二报文发送模块,用于在转发报文的接口未发生拥塞时,将所述第二发送管理模块传输的数据报文通过所述转发报文的接口发送出去,在转发报文的接口发生拥塞,且确定最高优先级队列中不存在协议报文时,按照优先级顺序从所述第二队列管理模块中取出数据报文进行发送。
5.如权利要求1所述的装置,其特征在于,
所述报文接收模块还用于:接收发送到所述Bypass隧道的非切换报文,并将该非切换报文传输至所述报文封装模块;
所述报文封装模块还用于:为所述非切换报文添加标签,并将添加标签后的非切换报文传输至所述UserID生成模块;
所述UserID生成模块还用于:将预设的第三UserID携带在所述非切换报文中写入缓存;
所述QoS控制模块还用于:在识别从缓存中提取的报文中携带的UserID为第三UserID后,确定不对该报文进行限速处理。
6.一种报文发送方法,其特征在于,该方法包括:
接收从主隧道切换到旁路Bypass隧道的报文;
在确定所述报文为协议报文后,为所述协议报文添加标签,并将预设的第一用户标识UserID携带在所述协议报文中写入缓存;
从所述缓存中提取报文,识别提取的报文中携带的UserID为第一UserID后,对所述报文进行不限速的优先转发。
7.如权利要求6所述的方法,其特征在于,在识别提取的报文中携带的UserID为第一UserID后,对所述报文进行不限速的优先转发,包括:
若转发报文的接口未发生拥塞,则将所述报文从该接口发送出去;
若转发报文的接口发生拥塞,则将所述报文写入最高优先级队列中等待发送。
8.如权利要求6或7所述的方法,其特征在于,所述方法还包括:
在确定接收的报文为数据报文后,为所述数据报文添加标签;
根据所述数据报文中携带的标签,生成第二UserID,并将该第二UserID携带在所述数据报文中写入缓存;
从所述缓存中提取报文,在识别提取的报文中携带的UserID为第二UserID后,对所述报文进行限速转发。
9.如权利要求8所述的方法,其特征在于,在识别提取的报文中携带的UserID为第二UserID后,对所述报文进行限速转发,包括:
判断当前数据传输速率是否超过所述第二UserID对应的限速速率;
若超过,则丢弃提取的报文;
若未超过,则在转发报文的接口未发生拥塞时,将提取的报文发送出去;在转发报文的接口发生拥塞时,将提取的报文写入与所述第二UserID对应的优先级队列等待发送。
10.如权利要求6所述的方法,其特征在于,所述方法还包括:
接收发送到所述Bypass隧道的非切换报文;
为所述非切换报文添加标签,并将预设的第三用户标识UserID携带在所述非切换报文中写入缓存;
从所述缓存中提取所述非切换报文,在识别提取的非切换报文中携带的UserID为第三UserID后,对所述非切换报文进行不限速的转发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710735907.6A CN107547388B (zh) | 2017-08-24 | 2017-08-24 | 一种报文发送方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710735907.6A CN107547388B (zh) | 2017-08-24 | 2017-08-24 | 一种报文发送方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107547388A true CN107547388A (zh) | 2018-01-05 |
CN107547388B CN107547388B (zh) | 2021-03-09 |
Family
ID=60958889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710735907.6A Active CN107547388B (zh) | 2017-08-24 | 2017-08-24 | 一种报文发送方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107547388B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111030943A (zh) * | 2019-12-13 | 2020-04-17 | 迈普通信技术股份有限公司 | 一种报文的处理方法、装置、转发设备及存储介质 |
CN112866127A (zh) * | 2018-02-14 | 2021-05-28 | 华为技术有限公司 | 一种分组网络中控制流量的方法及装置 |
US20220377158A1 (en) * | 2021-05-24 | 2022-11-24 | Texas Instruments Incorporated | Priority selection for multiple protocol stacks |
US12028256B2 (en) | 2018-02-14 | 2024-07-02 | Huawei Technologies Co., Ltd. | Method and apparatus for controlling traffic in packet-based network |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101072183A (zh) * | 2007-06-11 | 2007-11-14 | 华为技术有限公司 | 数据流的服务质量保证方法和装置 |
CN101248621A (zh) * | 2005-03-23 | 2008-08-20 | 思科技术公司 | 用于在网络失效期间提供QoS的方法和系统 |
CN101547155A (zh) * | 2009-04-30 | 2009-09-30 | 杭州华三通信技术有限公司 | 主备隧道负载分担方法和流量转发设备 |
CN101978658A (zh) * | 2008-03-17 | 2011-02-16 | 艾利森电话股份有限公司 | 利用本地重新路由进行以太网保护的方法和设备 |
CN102420704A (zh) * | 2011-12-12 | 2012-04-18 | 东北大学 | 一种基于mpls-te的流量等级区分式故障恢复方法 |
WO2013188801A1 (en) * | 2012-06-14 | 2013-12-19 | Huawei Technologies Co., Ltd. | Mrsvp-te based fast reroute in detour (1:1) protection mode |
US9049142B1 (en) * | 2011-09-20 | 2015-06-02 | Cisco Technology, Inc. | Method and apparatus to enable protection for selective traffic in an MPLS network |
-
2017
- 2017-08-24 CN CN201710735907.6A patent/CN107547388B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101248621A (zh) * | 2005-03-23 | 2008-08-20 | 思科技术公司 | 用于在网络失效期间提供QoS的方法和系统 |
CN101072183A (zh) * | 2007-06-11 | 2007-11-14 | 华为技术有限公司 | 数据流的服务质量保证方法和装置 |
CN101978658A (zh) * | 2008-03-17 | 2011-02-16 | 艾利森电话股份有限公司 | 利用本地重新路由进行以太网保护的方法和设备 |
CN101547155A (zh) * | 2009-04-30 | 2009-09-30 | 杭州华三通信技术有限公司 | 主备隧道负载分担方法和流量转发设备 |
US9049142B1 (en) * | 2011-09-20 | 2015-06-02 | Cisco Technology, Inc. | Method and apparatus to enable protection for selective traffic in an MPLS network |
CN102420704A (zh) * | 2011-12-12 | 2012-04-18 | 东北大学 | 一种基于mpls-te的流量等级区分式故障恢复方法 |
WO2013188801A1 (en) * | 2012-06-14 | 2013-12-19 | Huawei Technologies Co., Ltd. | Mrsvp-te based fast reroute in detour (1:1) protection mode |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112866127A (zh) * | 2018-02-14 | 2021-05-28 | 华为技术有限公司 | 一种分组网络中控制流量的方法及装置 |
US11516134B2 (en) | 2018-02-14 | 2022-11-29 | Huawei Technologies Co., Ltd. | Method and apparatus for controlling traffic in packet-based network |
US12028256B2 (en) | 2018-02-14 | 2024-07-02 | Huawei Technologies Co., Ltd. | Method and apparatus for controlling traffic in packet-based network |
CN111030943A (zh) * | 2019-12-13 | 2020-04-17 | 迈普通信技术股份有限公司 | 一种报文的处理方法、装置、转发设备及存储介质 |
US20220377158A1 (en) * | 2021-05-24 | 2022-11-24 | Texas Instruments Incorporated | Priority selection for multiple protocol stacks |
US12021953B2 (en) * | 2021-05-24 | 2024-06-25 | Texas Instruments Incorporated | Priority selection for multiple protocol stacks |
Also Published As
Publication number | Publication date |
---|---|
CN107547388B (zh) | 2021-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7126907B2 (en) | Label switched communication network, a method of conditioning the network and a method of data transmission | |
RU2493677C2 (ru) | Способ и маршрутизатор для выполнения зеркального копирования | |
CN104104616B (zh) | 数据调度和交换的方法、装置及系统 | |
CN107181663A (zh) | 一种报文处理方法、相关设备及计算机可读存储介质 | |
CN101938377B (zh) | 链路聚合故障保护方法、设备和系统 | |
CN106685903B (zh) | 基于sdn的数据传输方法、sdn控制器和sdn系统 | |
CN101001196A (zh) | 一种建立伪线隧道并利用其传送报文的方法和装置 | |
EP2803173A1 (en) | Expanding network functionalities for openflow based split-architecture networks | |
CN107547388A (zh) | 一种报文发送方法及装置 | |
CN100492970C (zh) | 网络中继装置和数据包的传送方法 | |
CN103391296A (zh) | 一种控制器、转发器及通道建立方法和系统 | |
CN107222427A (zh) | 一种报文处理的方法及相关设备 | |
CN106685826A (zh) | 交换机堆叠系统、从设备、交换芯片及处理协议报文方法 | |
CA2842069A1 (en) | Technique for transferring data over a packet switched network | |
CN108574632A (zh) | 一种报文处理方法、装置及系统 | |
WO2016058320A1 (zh) | 降低potn系统集中式保护倒换时间的方法、装置及系统 | |
CN103368844B (zh) | Mpls网络中的报文处理方法及标签交换路由器 | |
CN105308904A (zh) | 一种oam报文处理方法、网络设备和网络系统 | |
CN102420704B (zh) | 一种基于mpls-te的流量等级区分式故障恢复方法 | |
WO2015154603A1 (zh) | 基于共享隧道的隧道保护方法及装置 | |
CN105763375B (zh) | 一种数据包发送方法、接收方法及微波站 | |
CN109510771A (zh) | 组播传输方法及相关设备 | |
CN101820425B (zh) | Rsvp认证的方法和系统 | |
CN104618235B (zh) | 一种跨层建立不共路路径的方法及装置 | |
CN111865813B (zh) | 一种基于反ecn标记的数据中心网络传输控制方法、系统及可读存储介质 |
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 |