一种报文转发方法、装置及网络转发设备的制造方法

文档序号:8530323阅读:236来源:国知局
一种报文转发方法、装置及网络转发设备的制造方法
【技术领域】
[0001] 本发明涉及通信领域,尤其涉及一种报文转发方法、装置及网络转发设备。
【背景技术】
[0002] 路由器、交换机是数据通信领域不可缺少的重要设备,由于地域的限制,各设备一 般相聚较远,为了保证长距离信号传输的可靠性,需要传输设备进行信号中继。这种传输设 备成本较高,一般会根据需要进行配置,运营方考虑成本,其带宽往往低于路由器、交换机 实际标称的接口带宽。而两台路由器、交换机之间接口自协商的带宽,无法反应传输设备的 实际带宽能力。就会导致路由器、交换机等通信设备实际出口的带宽,远大于链路最大能 力,使得大量的数据报文丢失,影响各种业务的正常运行。
[0003] 目前,网络运营方为了不影响业务,通常在一些关键接口升级传输设备,这些接口 往往存在大部分时间处于低流量状态,偶尔出现流量突发的情况,升级传输设备不但造成 资源的浪费,也使网络运营方的成本大大增加,因此亟需一种链路带宽整定方法,在不升级 传输设备的条件下,应对流量突发状况,充分使用链路带宽,保证业务不受影响。
[0004] 现有技术1,流量整形方法和流量整形设备,这种流量整形方法,没有考虑报文的 优先级,单纯的进行流量整形,容易造成高优先级的业务报文被丢失,能够一定程度缓解接 口带宽和传输带宽不匹配的问题,但是无法保证链路上的重要业务流量。
[0005] 现有技术2,提出的流量整形方法和流量整形设备,是在软件队列上进行整形,无 法实现端口的流量整形,以及通过端口整形结果,实现端口下所有队列的优先级调度。
[0006] 现有技术3,使用发送缓冲器和流量整形实现的消息防丢失,该专利主要用于车辆 的分布嵌入式实时控制器局域网系统,主要解决的是性能不匹配的问题,不具有优先级的 处理。
[0007] 常见的流量整形通常使用缓冲区和令牌桶来完成,当报文的发送速度过快时,首 先在缓冲区进行缓存,在令牌桶的控制下再均匀地发送这些被缓冲的报文。可现有技术的 令牌桶算法只是针对单线程的一种算法,对于多线程共同使用令牌桶算法进行流量整形就 会出现共享数据更新不准确、令牌重复添加等导致计算错误、报文丢失的现象,所以现急需 一种多线程下的令牌桶整形方法。

【发明内容】

[0008] 有鉴于此,本发明提供了一种报文转发方法、装置及网络转发设备,以解决现有技 术中网络转发设备基于多线程令牌桶技术进行报文转发时,所述多线程更新共享资源数据 而照成共享资源数据不准确,进而导致报文转发丢失的问题。
[0009] 为解决上述问题,本发明提供了一种报文转发方法,用于保存有CBS值和到达 TICK值的网络转发设备,所述网络转发设备基于多线程令牌桶技术进行报文转发,所述报 文转发方法用于所述多线程中的任一线程,所述报文转发方法包括:
[0010] 第一判断步骤:待发送报文到达时,判断是否能够获得第一锁,获取第一判断结 果;
[0011] 第一执行步骤:在所述第一判断结果指示能够获得所述第一锁时,获取所述第一 锁,选择所述CBS值和到达TICK值进行是否发送所述待发送报文的发送判断处理,并在发 送所述待发送报文后更新所述CBS值和到达TICK值并解锁;
[0012] 第二执行步骤:在所述第一判断结果指示不能获得所述第一锁时,从所述CBS值 和到达TICK值中只选择所述CBS值进行是否发送所述待发送报文的发送判断处理,并在发 送所述待发送报文后,更新所述CBS值。
[0013] 优选地,更新所述CBS值具体包括:
[0014] 第二判断步骤:判断是否有其他线程在更新所述CBS值,获取第二判断结果;
[0015] 第一更新步骤:在所述第二判断结果指示没有其他线程在更新所述CBS值时,更 新所述CBS值;
[0016] 第二更新步骤:在所述第二判断结果指示有其他线程在更新所述CBS值时,执行 等待操作,直至没有其他线程更新所述CBS值后更新所述CBS值。
[0017] 优选地,更新所述CBS值具体包括:
[0018] 第三判断步骤:判断是否能够获得第二锁,获取第三判断结果;
[0019] 第三更新步骤:在所述第三判断结果指示能够获得所述第二锁时,得出没有其他 线程在更新所述CBS值的结论,获取所述第二锁,更新所述CBS值并解锁;
[0020] 第四更新步骤:在所述第三判断结果指示不能获得所述第二锁时,得出有其他线 程在更新所述CBS值的结论,执行等待操作,直到获取所述第二锁后,更新所述CBS值并解 锁。
[0021] 优选地,更新所述CBS值具体包括:
[0022] 第四判断步骤:判断是否有其他线程占用所述CBS值的资源,获取第四判断结果;
[0023] 第五更新步骤:在所述第四判断结果指示没有其他线程占用所述CBS值的资源 时,得出没有其他线程在更新所述CBS值的结论,占用所述CBS值的资源,更新所述CBS值 并释放;
[0024] 第六更新步骤:在所述第四判断结果指示有其他线程占用所述CBS值的资源时, 得出有其他线程在更新所述CBS值的结论,执行等待操作,直到占用所述CBS值的资源后, 更新所述CBS值并释放。
[0025] 优选地,所述第一执行步骤中选择所述CBS值和所述到达TICK值进行是否发送所 述待发送报文的发送判断处理具体包括:
[0026] 第一获取步骤:根据所述到达TICK值,获取所述待发送报文到达时的新增令牌 数;
[0027] 第二获取步骤:根据所述新增令牌数及所述CBS值,获取所述待发送报文到达时 的可用令牌数;
[0028] 第三获取步骤:获取发送所述待发送报文的所需令牌数;
[0029] 第五判断步骤:判断所述可用令牌数是否大于或者等于发送所述待发送报文的所 需令牌数,获取第五判断结果;
[0030] 第一执行子步骤:在所述第五判断结果指示所述可用令牌数大于或者等于发送所 述待发送报文的所需令牌数时,得出所述网络转发设备发送所述待发送报文的判断处理结 论,否则得出所述网络转发设备不发送所述待发送报文的判断处理结论。
[0031] 优选地,所述第二执行步骤中只选择所述CBS值进行是否发送所述待发送报文的 发送判断处理具体包括:
[0032] 第四获取步骤:获取发送所述待发送报文的所需令牌数;
[0033] 第六判断步骤:根据所述CBS值,判断所述CBS值是否大于或者等于发送所述待发 送报文的所需令牌数,获取第六判断结果;
[0034] 第二执行子步骤:在所述第六判断结果指示所述CBS值大于或者等于发送所述待 发送报文的所需令牌数时,得出所述网络转发设备发送所述待发送报文的判断处理结论, 否者得出所述网络转发设备不发送所述待发送报文的判断处理结论。
[0035] 优选地,所述方法进一步包括:
[0036] 报文获取步骤:根据所述报文的优先级,获取所述待发送报文。
[0037] 优选地,所述报文获取步骤具体包括:
[0038] 队列形成步骤:根据队列分配策略,采用链表形式,将报文分成PQ队列、WFQ队列、 协议队列及默认队列;
[0039] 队列选择步骤:根据所述各队列的优先级,选出待发送的队列;
[0040] 报文选择步骤:从所述待发送的队列的链表头选取报文作为待发送报文。
[0041] 本发明还提供一种报文转发装置,用于保存有CBS值和到达TICK值的网络转发设 备,所述网络转发设备基于多线程令牌桶技术进行报文转发,所述报文转发装置用于所述 多线程中的任一线程,所述报文转发装置包括:
[0042] 第一判断模块:待发送报文到达时,判断是否能够获得第一锁,获取第一判断结 果;
[0043] 第一执行模块:在所述第一判断结果指示能够获得所述第一锁时,获取所述第一 锁,选择所述CBS值和到达TICK值进行是否发送所述待发送报文的发送判断处理,并在发 送所述待发送报文后更新所述CBS值和到达TICK值并解锁;
[0044] 第二执行模块:在所述第一判断结果指示不能获得所述第一锁时,从所述CBS值 和到达TICK值中只选择所述CBS值进行是否发送所述待发送报文的发送判断处理,并在发 送所述待发送报文后,更新所述CBS值。
[0045] 优选地,更新所述CBS值具体包括:
[0046] 第二判断单元:判断是否有其他线程在更新所述CBS值,获取第二判断结果;
[0047] 第一更新单元:在所述第二判断结果指示没有其他线程在更新所述CBS值时,更 新所述CBS值;
[0048] 第二更新单元:在所述第二判断结果指示有其他线程在更新所述CBS值时,执行 等待操作,直至没有其他线程更新所述CBS值后更新所述CBS值。
[0049] 优选地,更新所述CBS值具体包括:
[0050]第三判断单元:判断是否能够获得第二锁,获取第三判断结果;
[0051]第三更新单元:在所述第三判断结果指示能够获得所述第二锁时,得出没有其他 线程在更新所述CBS值的结论,获取所述第二锁,更新所述CBS值并解锁;
[0052]第四更新单元:在所述第三判断结果指示不能获得所述第二锁时,得出有其他线 程在更新所述CBS值的结论,执行等待操作,直到获取所述第二锁后,更新所述CBS值并解 锁。
[0053] 优选地,更新所述CBS值具体包括:
[0054] 第四判断单元:判断是否有其他线程占用所述CBS值的资源,获取第四判断结果;
[0055]第五更新单元:在所述第四判断结果指示没有其他线程占用所述CBS值的资源 时,得出没有其他线程在更新所述CBS值的结论,占用所述CBS值的资源,更新所述CBS值 并释放;
[0056] 第六更新单元:在所述第四判断结
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1