CN117319423A - 报文缓存方法、装置、交换机及计算机可读存储介质 - Google Patents
报文缓存方法、装置、交换机及计算机可读存储介质 Download PDFInfo
- Publication number
- CN117319423A CN117319423A CN202311338276.6A CN202311338276A CN117319423A CN 117319423 A CN117319423 A CN 117319423A CN 202311338276 A CN202311338276 A CN 202311338276A CN 117319423 A CN117319423 A CN 117319423A
- Authority
- CN
- China
- Prior art keywords
- message
- user
- forwarded
- space
- address pointer
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 239000000872 buffer Substances 0.000 claims abstract description 162
- 230000003139 buffering effect Effects 0.000 claims abstract description 43
- 238000012545 processing Methods 0.000 claims abstract description 33
- 238000013507 mapping Methods 0.000 claims description 50
- 238000003780 insertion Methods 0.000 claims description 14
- 230000037431 insertion Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 abstract description 2
- 239000010410 layer Substances 0.000 description 134
- 238000005516 engineering process Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 7
- 239000002245 particle Substances 0.000 description 7
- 239000000243 solution Substances 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000008187 granular material Substances 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 239000007853 buffer solution Substances 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
- H04J3/0661—Clock or time synchronisation among packet nodes using timestamps
- H04J3/0667—Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种报文缓存方法、装置、交换机及计算机可读存储介质,涉及通信领域。交换机预设有用于缓存S个用户的待转发数据的报文缓存空间,MAC层模块负责将接收的各个用户的待转发报文缓存至报文缓存空间。FGU层模块匀速地向MAC层模块发送数据请求,从而MAC层模块从报文缓存空间读取数据请求对应的第二用户的当前待转发报文,并将当前待转发报文传送至FGU层模块进行转发处理。由于预设了报文缓存空间并且FGU层模块在单位时间内进行转发处理的数据总量与S个用户在报文缓存空间占用的缓存空间大小相匹配,且每个用户在报文缓存空间占用的缓存空间大小与用户分配得到的带宽相匹配,使得在出现用户流量激增的情况下可以避免出现报文撕裂现象。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种报文缓存方法、装置、交换机及计算机可读存储介质。
背景技术
SPN(Slicing Packet Network,切片分组网)是面向5G承载的一种创新技术体系,是对PTN(Packet Transport Network,分组传送网)技术的继承,并在此基础上进行了增强和创新。
2021年的《SPN小颗粒技术白皮书》中调研结果显示,5G+(5th generation mobilecommunication technology+,第五代移动通信技术+)垂直行业(含算力业务)及一些专线的最小带宽需求可达2Mbps,其中10Mbps以内带宽的业务占比较大。当前SPN网络的切片技术粒度均为Gbit/s级别,但目前各行业都是小带宽需求,一方面传统的网络承载效率低,另一方面当下对整体网络带宽要求更高。因此,与业务带宽匹配的小颗粒切片成为SPN技术发展的方向。
SPN小颗粒技术(Fine Granularity Unit,FGU)可以将硬切片的颗粒度从5Gbps细化为10Mbps,以满足5G+垂直行业应用和专线业务等场景下小带宽、高隔离性、高安全性等差异化业务承载需求。
SPN小颗粒技术保持SPN技术架构不变,请参见图1,SPN小颗粒技术的网络结构同样分为切片分组层(Slice Packet Layer,SPL)、切片通道层(Slice Channel Layer,SCL)、切片传送层(Slice Transport Layer,STL)。其中,切片分组层实现分组数据的路由处理,切片通道层实现切片以太网通道的组网处理,切片传送层实现切片物理层编码及DWDM(Dense Wavelength Division Multiplexing,密集波分复用)光传送处理。
当前的FGU技术中,FGU层(属于切片通道层)可以将总体的固定带宽分配给多个用户共享使用,以此可以满足用户随时更改流量配置需求,即在一个用户需要处理大量数据流量时为其分配更大的带宽,在其无数据处理需求的时间段内减少为其分配的带宽,这样减少出来的带宽可以分配给其他用户使用,从而满足用户实时使用需求,实现资源高效合理利用。
在用户流量处于平缓状态的理想情况下,MAC(Medium Access Control,媒体访问控制)层的上层传来的数据是趋于平缓的。但是,当出现用户流量激增的情况下,MAC层的上层传来的数据是瞬时涌现且大规模的,而受限于固定带宽就容易出现瞬时的报文撕裂现象,即在1s的时间内,MAC层的下层在前半段就完成符合固定带宽的数据转发,但由于固定带宽限定后半段没有数据转发。
发明内容
本发明的目的在于提供一种报文缓存方法、装置、交换机及计算机可读存储介质,以改善现有技术存在的问题。
本发明的实施例可以这样实现:
第一方面,本发明提供一种报文缓存方法,应用于交换机的MAC层模块,所述交换机还包括FGU层模块,所述交换机预设有用于缓存S个用户的待转发数据的报文缓存空间;所述方法包括:
接收第一用户的待转发报文;
在确定所述报文缓存空间存在空闲空间时,将所述第一用户的待转发报文缓存至所述报文缓存空间;
当收到所述FGU层模块发来的数据请求时,从所述报文缓存空间读取所述数据请求对应的第二用户的当前待转发报文;其中,所述第一用户和所述第二用户均为任一所述用户;所述数据请求是所述FGU层模块匀速发送的;
将所述当前待转发报文传送至所述FGU层模块,以使所述FGU层模块对所述第二用户的当前待转发报文进行转发处理;所述FGU层模块在单位时间内进行转发处理的数据总量与所述S个用户在所述报文缓存空间占用的缓存空间大小相匹配,且每个用户在所述报文缓存空间占用的缓存空间大小与所述用户分配得到的带宽相匹配。
在可选的实施方式中,所述MAC层模块维护有可用地址队列,所述可用地址队列包括所述报文缓存空间中可用空间的地址指针;
所述在确定所述报文缓存空间存在空闲空间时,将所述第一用户的待转发报文缓存至所述报文缓存空间的步骤,包括:
在确认所述可用地址队列不为空后,从所述可用地址队列读出所述报文缓存空间空闲的目的地址指针;
基于所述目的地址指针,将所述第一用户的待转发报文写入所述报文缓存空间。
在可选的实施方式中,所述交换机预先配置编码映射表,所述编码映射表反映多种报文指示信息各自在对应的特定字段的原始编码值和映射编码值之间的映射关系;
所述基于所述目的地址指针,将所述第一用户的待转发报文写入所述报文缓存空间的步骤,包括:
从所述编码映射表查找出与所述第一用户的待转发报文的报文指示信息在所对应的特定字段的原始编码值和映射编码值之间的映射关系;
对所述第一用户的待转发报文按照64/66b编码规则进行编码,得到原始编码数据;
将所述原始编码数据中报文指示信息部分的特定字段从所述原始编码值替换为所述映射编码值,得到新的编码数据;
基于所述报文缓存空间空闲的目的地址指针,将所述新的编码数据写入所述报文缓存空间。
在可选的实施方式中,所述MAC层模块还维护有报文首尾表以及报文顺序链表;所述报文首尾表包括每个所述用户的第一个待转发报文和最后一个待转发报文各自在所述报文缓存空间所处的头地址指针和尾地址指针;所述报文顺序链表用于指示每个用户的下一个待转发报文在所述报文缓存空间中的地址指针;
在所述基于所述目的地址指针,将所述第一用户的待转发报文写入所述报文缓存空间的步骤之后,还包括:
从所述报文首尾表中读出所述第一用户的尾地址指针;
基于所述第一用户的尾地址指针,在所述报文顺序链表的对应位置写入所述目的地址指针;
基于所述目的地址指针,更新所述报文首尾表中所述第二用户的尾地址指针。
在可选的实施方式中,所述MAC层模块维护有报文首尾表,所述报文首尾表包括每个所述用户的第一个待转发报文和最后一个待转发报文各自在所述报文缓存空间所处的头地址指针和尾地址指针;
所述从所述报文缓存空间读取所述数据请求对应的第二用户的当前待转发报文的步骤,包括:
从所述报文首尾表确定所述数据请求对应的第二用户的头地址指针;
基于所述第二用户的头地址指针,从所述报文缓存空间读出所述第二用户的当前待转发报文。
在可选的实施方式中,所述交换机预先配置编码映射表,所述编码映射表反映多种报文指示信息各自在对应的特定字段的原始编码值和映射编码值之间的映射关系;
所述基于所述第二用户的头地址指针,从所述报文缓存空间读出所述第二用户的当前待转发报文的步骤,包括:
基于所述第二用户的头地址指针,从所述报文缓存空间读出所述当前待转发报文所对应的编码数据;
获取所述编码数据的报文指示信息部分在所述特定字段的映射编码值,并从所述编码映射表查找出与所述映射编码值相匹配的原始编码值;
将所述编码数据的报文指示信息部分的特定字段由所述映射编码值恢复为所述原始编码值,得到原始编码数据;
对所述原始编码数据按照64/66b编码规则进行解码,得到所述第二用户的当前待转发报文。
在可选的实施方式中,所述MAC层模块还维护有报文顺序链表以及可用地址队列;所述报文顺序链表用于指示每个用户的下一个待转发报文在所述报文缓存空间中的地址指针;所述可用地址队列包括所述报文缓存空间中可用空间的地址指针;
在所述基于所述第二用户的头地址指针,从所述报文缓存空间读出所述第二用户的当前待转发报文的步骤之后,还包括:
释放所述报文缓存空间中所述第二用户的头地址指针所对应的空间,并将所述第二用户的头地址指针写入所述可用地址队列;
基于所述第二用户的头地址指针,从所述报文顺序链表查找出所述第二用户的当前待转发报文的下一个待转发报文在所述报文缓存空间中的地址指针;
基于所述第二用户的当前待转发报文的下一个待转发报文在所述报文缓存空间中的地址指针,更新所述报文首尾表中所述第二用户的头地址指针。
在可选的实施方式中,所述交换机还预设有用于缓存所述S个用户的PTP报文所需时戳插入信息的时戳缓存空间;
当所述第一用户的待转发报文属于所述PTP报文时,在所述将所述第一用户的待转发报文缓存至所述报文缓存空间的步骤之后,还包括:
获取所述第一用户的待转发报文的时戳插入信息,并将所述时戳插入信息写入所述时戳缓存空间;
当所述第二用户的当前待转发报文属于所述PTP报文时,所述将所述当前待转发报文传送至所述FGU层模块的步骤,包括:
基于所述第二用户的当前待转发报文中的报文指示信息,从所述时戳缓存空间读出所述第二用户的当前待转发报文的时戳插入信息;
基于所述第二用户的当前待转发报文的时戳插入信息,对所述当前待转发报文进行PTP处理后传送至所述FGU层模块。
第二方面,本发明提供一种报文缓存装置,应用于交换机的MAC层模块,所述交换机还包括FGU层模块,所述交换机预设有用于缓存S个用户的待转发数据的报文缓存空间;所述报文缓存装置包括:
写入模块,用于:
接收第一用户的待转发报文;
在确定所述报文缓存空间存在空闲空间时,将所述第一用户的待转发报文缓存至所述报文缓存空间;
读出模块,用于:
当收到所述FGU层模块发来的数据请求时,从所述报文缓存空间读取所述数据请求对应的第二用户的当前待转发报文;其中,所述第一用户和所述第二用户均为任一所述用户;所述数据请求是所述FGU层模块匀速发送的;
将所述当前待转发报文传送至所述FGU层模块,以使所述FGU层模块对所述第二用户的当前待转发报文进行转发处理;所述FGU层模块在单位时间内进行转发处理的数据总量与所述S个用户在所述报文缓存空间占用的缓存空间大小相匹配,且每个用户在所述报文缓存空间占用的缓存空间大小与所述用户分配得到的带宽相匹配。
第三方面,本发明提供一种交换机,包括:存储器和处理器,所述存储器存储有软件程序,当所述交换机运行时所述处理器执行所述软件程序以实现如前述第一方面所述的报文缓存方法。
第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述第一方面所述的报文缓存方法。
与现有技术相比,本发明实施例提供了一种报文缓存方法、装置、交换机及计算机可读存储介质,交换机预设有用于缓存S个用户的待转发数据的报文缓存空间,MAC层模块在确定报文缓存空间存在空闲空间时,将接收的第一用户的待转发报文缓存至报文缓存空间。FGU层模块匀速地向MAC层模块发送数据请求,从而MAC层模块从报文缓存空间读取数据请求对应的第二用户的当前待转发报文,并将当前待转发报文传送至FGU层模块,接着FGU层模块对第二用户的当前待转发报文进行转发处理。由于预设了报文缓存空间并且FGU层模块在单位时间内进行转发处理的数据总量与S个用户在报文缓存空间占用的缓存空间大小相匹配,且每个用户在报文缓存空间占用的缓存空间大小与用户分配得到的带宽相匹配,使得在出现用户流量激增的情况下可以避免出现报文撕裂现象。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为SPN小颗粒技术的网络分层架构图。
图2为本发明实施例提供的一种报文缓存方法的应用场景示意图。
图3为本发明实施例提供的一种报文缓存方法的流程示意图之一。
图4为本发明实施例中报文缓存空间、可用地址队列、报文首尾表、报文顺序链表以及数据占用表各自的规模示意图。
图5为本发明实施例提供的一种报文缓存方法的流程示意图之二。
图6为本发明实施例提供的一种报文缓存方法的流程示意图之三。
图7为64/66b编码方式的编码格式示意图。
图8为本发明实施例对PTP报文的处理逻辑示意图。
图9为本发明实施例提供的一种报文缓存装置的结构示意图。
图10为本发明实施例提供的一种交换机的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
SPN小颗粒技术保持SPN技术架构不变,请参见图1,SPN小颗粒技术的网络结构同样分为切片分组层(SPL)、切片通道层(SCL)、切片传送层(STL)。其中,切片分组层实现分组数据的路由处理,切片通道层实现切片以太网通道的组网处理,切片传送层实现切片物理层编码及DWDM(Dense Wavelength Division Multiplexing,密集波分复用)光传送处理。
当前的FGU技术中,FGU层(属于切片通道层)可以将总体的固定带宽分配给多个用户共享使用,以此可以满足用户随时更改流量配置需求,即在一个用户需要处理大量数据流量时为其分配更大的带宽,在其无数据处理需求的时间段内减少为其分配的带宽,这样减少出来的带宽可以分配给其他用户使用,从而满足用户实时使用需求,实现资源高效合理利用。
例如,交换机中两个小颗粒FGU可以通过RR(Round-robin,轮询)调度(即FGU依次工作)将总共20G的带宽分配给64个用户(client)使用,从而实现单client以10M为粒度可分配最大至10G带宽。这样,如果一台企业主机平时无需进行大量数据处理,仅需处理员工交互信息,在这段时间内仅需为其分配10M的带宽令其保持基础功能可用。在接下来一段时间,该主机需要把信息同步给其他主机,因此需要大带宽保证数据的高效传输,在这段时间内可以为其分配3G乃至更大的带宽。
在用户流量处于平缓状态的理想情况下,MAC层的上层传来的数据是趋于平缓的,这样,MAC层的下层可以在单位时间内均衡地进行数据转发处理。但是,当出现用户流量激增的情况下,MAC层的上层传来的数据是瞬时涌现且大规模的,而受限于固定带宽就容易出现瞬时的报文撕裂现象,即在1s的时间内,MAC层的下层在前半段就完成符合固定带宽的数据转发,但由于固定带宽限定后半段没有数据转发。
例如,以10M带宽(在1s时间内传输10Mbit的数据)为例,理想情况下,MAC层从上层收到的数据是平缓匀速的,这样MAC的下层也可以保持在1s时间内都存在数据转发,不出现报文撕裂现象。
但是,若是某个用户短时间内产生brust(突发)流量,MAC层模块从上层收到的数据是瞬时涌现且大规模的,那么MAC层模块的下层就可能在单位时间中若干调度周期(调度周期的粒度为ns)的前部分就完成了数据的转发处理,而由带宽的限定,在若干调度周期的后部分就无数据转发,即出现报文撕裂现象。
基于上述技术问题的发现,发明人经过创造性劳动提出下述技术方案以解决或者改善上述问题。需要注意的是,以上现有技术中的方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本申请实施例针对上述问题所提出的解决方案,都应该是发明人在发明创造过程中对本申请做出的贡献,而不应当理解为本领域技术人员所公知的技术内容。
有鉴于此,本发明实施例提供一种报文缓存方法,交换机通过预设一个S个用户共享的报文缓存空间,MAC层模块在MAC层将上层来的各个用户的待转发报文缓存至报文缓存空间,然后FGU层模块只需匀速地向MAC层模块发送数据请求,MAC层模块再从报文缓存空间读取数据请求对应的第二用户的当前待转发报文,接着FGU层模块即可对该当前待转发报文进行转发处理,这样可以保证FGU层模块在单位时间内进行转发处理的数据总量与S个用户在报文缓存空间占用的缓存空间大小相匹配,且每个用户在报文缓存空间占用的缓存空间大小与用户分配得到的带宽相匹配,使得在出现用户流量激增的情况下也可以避免出现报文撕裂现象。以下通过实施例,并配合所附附图,进行详细说明。
在图1的基础上,请参见图2,本发明实施例提供的报文缓存方法涉及了交换机对用户流量在MAC层与FGU层之间的数据处理逻辑。尤其是在MAC层的处理逻辑。交换机在MAC层预设有S个用户共享的报文缓存空间,用于缓存从MAC层至FGU层的用户流量,即用于缓存S个用户的待转发数据。
其中,S个用户即为接入交换机的S个接入设备,交换机包括MAC层模块和FGU层模块,二者分别用于实现MAC层和FGU层的数据处理。本发明实施例提供的报文缓存方法,其执行主体即为交换机的MAC层模块,该交换机可以是三层网络架构中的汇聚层交换机或者核心层交换机,也可以是堆叠式交换机。
请参考图3,图3为本发明实施例提供的一种报文缓存方法的流程示意图,该方法可以包括以下步骤S101~S104:
S101、接收第一用户的待转发报文。
在本实施例中,第一用户可以是接入交换机的S个用户中的任意一个,第一用户的待转发报文为MAC层的上层处理后传来的数据。
S102、在确定报文缓存空间存在空闲空间时,将第一用户的待转发报文缓存至报文缓存空间。
在本实施例中,当在MAC层收到任一用户的待转发报文,若刚好报文缓存空间存在空闲空间,则将该用户的待转发报文缓存至报文缓存空间;如果在用户流量激增的情况下,在MAC层收到任一用户的待转发报文,若此时报文缓存空间不存在空闲空间,则等待缓存。
即,在MAC层,把待转发报文先缓存在报文缓存空间中。可选的,报文缓存空间可以为高速缓冲存储器Cache,其具备读写速度快的特点。
S103、当收到FGU层模块发来的数据请求时,从报文缓存空间读取数据请求对应的第二用户的当前待转发报文。
在本实施例中,第二用户可以是接入交换机的S个用户中的任意一个,而数据请求可以是FGU层模块匀速发送的,即FGU层模块可以每间隔调度周期就向MAC层模块发送数据请求,不同调度周期的数据请求可以用于请求不同用户的待转发报文。
所以,FGU层模块的匀速是对S个用户的数据进行调度转发,是整体性而非针对单个用户的。而对单个用户而言,在单位时间内FGU层模块对该用户的数据进行调度(指向MAC层模块请求该用户的数据进行转发)的次数可以是均匀分别也可以是不均匀分布的。
S104、将当前待转发报文传送至FGU层模块,以使FGU层模块对第二用户的当前待转发报文进行转发处理。
在本实施例中,FGU层模块在单位时间内进行转发处理的数据总量与S个用户在报文缓存空间占用的缓存空间大小相匹配,且每个用户在报文缓存空间占用的缓存空间大小与用户分配得到的带宽相匹配。
本发明实施例提供的方法,通过在MAC层预设有S个用户共享的报文缓存空间,如此MAC层模块在MAC层将上层来的各个用户的待转发报文缓存至报文缓存空间,MAC层模块在收到FGU层模块匀速发来的数据请求时,再从报文缓存空间读取数据请求对应的第二用户的当前待转发报文,接着FGU层模块即可对该当前待转发报文进行转发处理,这样可以保证FGU层模块在单位时间内进行转发处理的数据总量与S个用户在报文缓存空间占用的缓存空间大小相匹配,且每个用户在报文缓存空间占用的缓存空间大小与用户分配得到的带宽相匹配,使得在出现用户流量激增的情况下也可以避免出现报文撕裂现象。
可选的,报文缓存空间的深度与单用户最大可分配带宽相关,其中,单用户最大可分配带宽取决于交换机的共享总带宽以及用户数量S。相较于每个用户独立配置存储空间的方式,由于报文缓存空间是S个用户共享的,可以减少报文缓存空间的存储深度,从而有效利用存储资源,不会出现浪费。
例如,若用户数量S=64,在FGU层,两个FGU层模块总共最大支持20G(共享总带宽为20Gb/s)的带宽,单用户最大可分配带宽为9.6G(10G减去4%开销的情况下)。假设一个用户分配的带宽是x兆,则该用户占用的地址空间深度为x/10*8,而单用户最大占用空间深度为9600/10*8=7680。其中,对于64个用户而言,每个用户都有可能分配到9.6G的带宽(非同时)。
如果不采用共享的方式,则需要7680*64那么大的存储空间深度才能满足64个用户在单位时间产生的数据总量。而本发明采用共享的方式,由于两个FGU层模块轮询进行调度,则报文缓存空间最大深度即为:7680*2=15360,这样可以有效减少存储深度。
需要说明的是,该举例仅为示例,本发明对用户数量、报文缓存空间的打下均不作限定。
可选的,为了对报文缓存空间(简称Data Mem)进行管理以及辨识出报文缓存空间中各个待转发报文所属的用户。交换机的MAC层模块维护有可用地址队列(简称FreeQueue)、报文首尾表、报文顺序链表(LinkList Mem)以及数据占用表。
(1)可用地址队列可以包括报文缓存空间中可用空间的地址指针;
(2)报文首尾表可以包括每个用户的第一个待转发报文和最后一个待转发报文各自在报文缓存空间所处的头地址指针(HdPtr)和尾地址指针(TailPtr);可选的,报文首尾表可以存储于两读两写存储器(2R2W)中;
(3)报文顺序链表可以用于指示每个用户的下一个待转发报文在报文缓存空间中的地址指针;可选的,报文顺序链表可以存储于一读一写存储器(1R1W)中;
(4)数据占用表可以包括每个用户的数据在报文缓存空间的空间占用值(cnt,即count);可选的,数据占用表可以存储于一读一写存储器(1R1W)中。
结合上述举例,报文缓存空间、可用地址队列、报文首尾表、报文顺序链表以及数据占用表各自的规模可以如图4所示。
可选的实现方式中,在将第一用户的待转发报文写入报文缓存空间需要用到可用地址队列,写入之后还需要对报文顺序链表和报文首尾表进行更新,以保证后续能够顺利从报文缓存空间中读出该第一用户的待转发报文。对应地,在图3的基础上,请参见图5,上述步骤S102的子步骤可以包括S102-1~S102-5:
S102-1、在确认可用地址队列不为空后,从可用地址队列读出报文缓存空间空闲的目的地址指针。
在本实施例中,由于队列具备“先入先出的特点”。所以,在可用地址队列不为空时,可以直接从可用地址队列读出一个空闲的目的地址指针。
S102-2、基于目的地址指针,将第一用户的待转发报文写入报文缓存空间。
在本实施例中,第一用户的待转发报文在报文缓存空间的写入位置即为目的地址指针。同时,第一用户的待转发报文在写入报文缓存空间后,还可以基于写入数据的打下,更新数据占用表中第一用户的数据在报文缓存空间的空间占用值。
S102-3、从报文首尾表中读出第一用户的尾地址指针。
S102-4、基于第一用户的尾地址指针,在报文顺序链表的对应位置写入目的地址指针。
在本实施例中,报文顺序链表的作用是指示每个用户的下一个待转发报文在报文缓存空间中的地址指针。因此,在报文顺序链表写入目的地址指针的写入地址即为从报文首尾表中读出第一用户的尾地址指针。
S102-5、基于目的地址指针,更新报文首尾表中第二用户的尾地址指针。
在本实施例中,由于第二用户的待转发报文写入了报文缓存空间的目的地址指针处,所以,此处即将目的地址指针作为报文首尾表中第二用户的最新的尾地址指针。
以下给出一种第一用户的待转发报文的写入过程举例。
结合图4,同样假设用户数量S=64,若此时的第一用户为用户1,那么用户1的待转发报文写入报文缓存空间的过程如下:
(1)从可用地址队列读出报文缓存区域空闲的目的地址指针,假设为500;
(2)在报文缓存区域的500处写入用户1的待转发报文;
(3)从报文首尾表中确定原先用户1的尾地址指针,假设为400;
(4)在报文顺序链表的400处写入目的地址指针500;
(5)将报文首尾表中将用户1的尾地址指针从400更新为目的地址指针500。
需要说明的是,该举例仅为示例,在此不作限定。
可选的实现方式中,在将基于FGU层模块的数据请求,读出第二用户的当前待转发报文的过程中需要用到报文首尾表,读出之后还需要对可用地址队列和报文顺序链表进行更新,以使报文缓存空间中第二用户的当前待转发报文的下一个待转发报文后续能够被顺利读出。对应地,在图3的基础上,请参见图6,上述步骤S103的子步骤可以包括S103-1~S103-5:
S103-1、从报文首尾表确定数据请求对应的第二用户的头地址指针。
S103-2、基于第二用户的头地址指针,从报文缓存空间读出第二用户的当前待转发报文。
在本实施例中,报文首尾表中记载的第二用户的头地址指针即为:第二用户的当前待转发报文在报文缓存空间的存储位置。
S103-3、释放报文缓存空间中第二用户的头地址指针所对应的空间,并将第二用户的头地址指针写入可用地址队列。
在本实施例中,从报文缓存空间读出第二用户的当前待转发报文之后,即可将报文缓存空间的队友位置释放,然后将释放之后的地址指针加入可用地址队列,以待后续使用。
S103-4、基于第二用户的头地址指针,从报文顺序链表查找出第二用户的当前待转发报文的下一个待转发报文在报文缓存空间中的地址指针。
报文顺序链表的作用是指示每个用户的下一个待转发报文在报文缓存空间中的地址指针。那么,在本实施例中,第二用户的下一个待转发报文在报文缓存空间中的地址指针由报文顺序链表记录,在报文顺序链表中的记录位置即为第二用户的头地址指针。
S103-5、基于第二用户的当前待转发报文的下一个待转发报文在报文缓存空间中的地址指针,更新报文首尾表中第二用户的头地址指针。
在本实施例中,将从报文顺序链表中得到的第二用户的下一个待转发报文在报文缓存空间中所处的地址指针作为报文首尾表中第二用户的头地址指针,因为读出第二用户的当前待转发报文之后,第二用户的下一个待转发即成为了第二用户新的第一个待转发报文。
以下给出一种第二用户的当前待转发报文的读出过程举例。
结合图4,同样假设用户数量S=64,若此时的第2用户为用户2,那么用户2的当前待转发报文从报文缓存空间中读出的过程如下:
(1)从报文首尾表读出用户2的头地址指针,假设为200;
(2)从报文缓存区域的200处读出用户2的当前待转发报文;
(3)释放报文缓存区域的200处的空间,将200加入可用地址队列;
(4)从报文顺序链表的200处查找出用户2的下一个待转发报文在报文缓存区域中所处的地址指针,假设为220;
(5)将220更新为报文首尾表中用户2的头地址指针。
需要说明的是,以上举例仅为示例,在此不作限定。
可选的实现方式中,为进一步节省存储空间,可以采用64/66b编码方式对第一用户的待转发数据进行编码之后再存入报文缓存空间,以此减少存储宽度。
请参见图7,图7为64/66b编码方式的编码格式示意图。64/66b编码方式的原理为:将64bit数据或者控制信息编码成66bit块传输。其中,66bit块的前两位表示同步头,主要用于接收端的数据对齐和接收数据位流的同步。同步头有“01”和“10”两种:
“01“表示后面的64bit(D0:8~D7:8)都是数据;
“10”表示后面的64bit是数据和控制信息的混合,同步头之后的8bit为类型域字段,后面的56bit是控制信息、数据这二者组合。
本发明中,交换机可以预先配置有编码映射表,编码映射表反映多种报文指示信息各自在对应的特定字段的原始编码值和映射编码值之间的映射关系。不同的报文指示信息对应的特定字段可以不同,特定字段可以是同步头字段或者类型域字段。
其中,原始编码值是按照64/66b编码方式得到的,映射编码值可以是自定义与原始编码值进行对应的。对于类型域字段,原始编码值可以是图7所示的11种之一,而映射编码值可以是除图7所示的11种之外的保留值。
可选的,上述步骤S102-2的子步骤可以包括S102-21~S102-24:
S102-21、从编码映射表查找出与第一用户的待转发报文的报文指示信息在所对应的特定字段的原始编码值和映射编码值之间的映射关系;
S102-22、对第一用户的待转发报文按照64/66b编码规则进行编码,得到原始编码数据;
S102-23、将原始编码数据中报文指示信息部分的特定字段从原始编码值替换为映射编码值,得到新的编码数据;
S102-24、基于报文缓存空间空闲的目的地址指针,将新的编码数据写入报文缓存空间。
在本实施例中,第一用户的待转发报文对应的编码数据中,编码后的报文指示信息部分的特定字段(同步头字段或者类型域字段)即为查找编码映射表得到的特定字段值。
可选的,上述步骤S103-2的子步骤可以包括S103-21~S103-24:
S103-21、基于第二用户的头地址指针,从报文缓存空间读出当前待转发报文所对应的编码数据;
S103-22、获取编码数据的报文指示信息部分在特定字段的映射编码值,并从编码映射表查找出与映射编码值相匹配的原始编码值;
S103-23、将编码数据的报文指示信息部分的特定字段由映射编码值恢复为原始编码值,得到原始编码数据;
S103-24、对原始编码数据按照64/66b编码规则进行解码,得到第二用户的当前待转发报文。
以下给出三种报文指示信息示例:
(1)isPause:代表报文是pause帧,传输报文数据时持续有效,不存在控制信息,所以该类报文的特定字段即为同步头字段,编码后的报文指示信息部分中,同步头字段的原始编码值和映射编码值分别为:01、00;
(2)error:代表报文有错误,不存在控制信息,所以该类报文的特定字段即为同步头字段,编码后的报文指示信息部分中,同步头字段的原始编码值和映射编码值分别为:01、11;
(3)isPtp:代表报文是PTP(Precise Time Protocol,精确时间协议)报文,仅在前导码有效,报文中存在控制信息,所以该类报文的特定字段即为类型域字段,该编码后的报文指示信息部分中,类型域字段的原始编码值和映射编码值分别为:图7所示的类型域字段值、0x79。
上述三个举例仅为示例,在此不作限定。
本发明采用64/66b编码方式,将数据写入报文缓存空间前、从报文缓存空间读出数据后分别进行了编码和解码,由于是交换机内部模块传输,所以不影响用户的待转发报文的准确性,对于图4所展示的报文缓存空间而言,使用该64/66b编码方式可以节省共约12万bits的存储资源。
可选的实现方式中,本发明为了解决用户突发流量带来的报文撕裂现象,交换机在MAC预设了报文缓存空间,这样进入MAC层的数据会在报文缓存空间(Cache)暂存一定的时长t,而对于PTP报文来说,若是进行PTP处理后再存入报文缓存空间,那么在报文缓存空间的缓存时长t会增加报文转发出去之后到接收端设备而言的延迟抖动很大,这会极大影响PTP报文的精确度和实用性。
因此,为了避免在报文缓存空间的缓存时长t影响PTP报文的精确度和实用性,本发明中,交换机还可以预设有时戳缓存空间,用于缓存S个用户的PTP报文所需时戳插入信息。
所以,若是第一用户的待转发报文属于PTP报文,那么在将第一用户的待转发报文存入报文缓存区域之后,需要将该PTP报文的时戳插入信息存入时戳缓存空间。对应地,请结合图8,在上述步骤S102之后,还可以包括步骤S105:
S105、获取第一用户的待转发报文的时戳插入信息,并将时戳插入信息写入时戳缓存空间。
在本实施例中,时戳插入信息可以包括插入位置、插入长度、插入类型等信息。
而当第二用户的当前待转发报文属于PTP报文时,在将该PTP报文从缓存空间读出后,可以获取对应的时戳插入信息进行PTP处理之后再交由FGU层进行转发处理,这样不会影响PTP报文的精确度和实用性。对应地,上述S104的子步骤可以包括S104-1~S104-2:
S104-1、基于第二用户的当前待转发报文中的报文指示信息,从时戳缓存空间读出第二用户的当前待转发报文的时戳插入信息;
S104-2、基于第二用户的当前待转发报文的时戳插入信息,对当前待转发报文进行PTP处理后传送至FGU层模块。
可以理解,交换机的一个端口可以属于:普通时钟(Ordinary Clock,OC)、边界时钟(Boundary Clock,BC)以及透明时钟(Transparent Clock,TC)这三种类型。
其中,端口作为OC或者BC,那么需要由该端口发送的PTP报文频率是非常低的,最快一般为8个/s,因此每个用户在报文存储区域中缓存一整轮不会存在两个PTP报文。
而端口作为TC端进行传输,那么该端口可能需要处理来自各个端口汇聚的且由该端口转发的PTP报文,这会导致该端口短时间内可能会出现PTP报文激增的问题,但是PTP报文的小概率丢失不会对PTP业务功能性产生影响。所以,本发明预设S个用户共享的时戳缓存空间(存储深度可以是2S),以此保证PTP精度不受影响同时节省存储空间。
为了执行上述方法实施例及各个可能的实施方式中的相应步骤,下面给出一种报文缓存装置的实现方式。
请参见图9,图9示出了本发明实施例提供的报文缓存装置的结构示意图。该报文缓存装置200应用于交换机的MAC层模块,交换机还包括FGU层模块,交换机预设有用于缓存S个用户的待转发数据的报文缓存空间。该报文缓存装置200包括:写入模块210和读出模块220。
写入模块210,用于:接收第一用户的待转发报文;在确定报文缓存空间存在空闲空间时,将第一用户的待转发报文缓存至报文缓存空间;
读出模块220,用于:当收到FGU层模块发来的数据请求时,从报文缓存空间读取数据请求对应的第二用户的当前待转发报文;其中,第一用户和第二用户均为任一用户;数据请求是FGU层模块匀速发送的;将当前待转发报文传送至FGU层模块,以使FGU层模块对第二用户的当前待转发报文进行转发处理;FGU层模块在单位时间内进行转发处理的数据总量与S个用户在报文缓存空间占用的缓存空间大小相匹配,且每个用户在报文缓存空间占用的缓存空间大小与用户分配得到的带宽相匹配。
所属领域的技术人员可以清楚地了解到,写入模块210可以用于实现上述步骤S101~S102、S105及其子步骤,读出模块220可以用于实现上述步骤S103-S104及其子步骤。为描述的方便和简洁,上述描述的报文缓存装置200的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
请参见图10,图10为本发明实施例提供的一种交换机的结构示意图。该交换机300包括处理器310、存储器320和总线330,处理器310通过总线330与存储器320连接。
存储器320可用于存储软件程序,例如,如本发明实施例所提供的报文缓存装置200对应的软件程序。处理器310通过运行存储在存储器320内的软件程序,从而执行各种功能应用以及数据处理以实现如本发明实施例所提供的报文缓存方法。
其中,存储器320可以是但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),闪存存储器(Flash),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable ProgrammableRead-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable ProgrammableRead-Only Memory,EEPROM)等。
处理器310可以是一种集成电路芯片,具有信号处理能力。该处理器310可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可以理解,图10所示的结构仅为示意,交换机300还可以包括比图10中所示更多或者更少的组件,或者具有与图10所示不同的配置。图10中所示的各组件可以采用硬件、软件或其组合实现。
本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时实现上述实施例揭示的报文缓存方法。该计算机可读存储介质可以是但不限于:U盘、移动硬盘、ROM、RAM、PROM、EPROM、EEPROM、FLASH磁碟或者光盘等各种可以存储程序代码的介质。
综上,本发明实施例提供了一种报文缓存方法、装置、交换机及计算机可读存储介质,交换机预设有用于缓存S个用户的待转发数据的报文缓存空间,MAC层模块在确定报文缓存空间存在空闲空间时,将接收的第一用户的待转发报文缓存至报文缓存空间。FGU层模块匀速地向MAC层模块发送数据请求,从而MAC层模块从报文缓存空间读取数据请求对应的第二用户的当前待转发报文,并将当前待转发报文传送至FGU层模块,接着FGU层模块对第二用户的当前待转发报文进行转发处理。由于预设了报文缓存空间并且FGU层模块在单位时间内进行转发处理的数据总量与S个用户在报文缓存空间占用的缓存空间大小相匹配,且每个用户在报文缓存空间占用的缓存空间大小与用户分配得到的带宽相匹配,使得在出现用户流量激增的情况下可以避免出现报文撕裂现象。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (11)
1.一种报文缓存方法,其特征在于,应用于交换机的MAC层模块,所述交换机还包括FGU层模块,所述交换机预设有用于缓存S个用户的待转发数据的报文缓存空间;所述方法包括:
接收第一用户的待转发报文;
在确定所述报文缓存空间存在空闲空间时,将所述第一用户的待转发报文缓存至所述报文缓存空间;
当收到所述FGU层模块发来的数据请求时,从所述报文缓存空间读取所述数据请求对应的第二用户的当前待转发报文;其中,所述第一用户和所述第二用户均为任一所述用户;所述数据请求是所述FGU层模块匀速发送的;
将所述当前待转发报文传送至所述FGU层模块,以使所述FGU层模块对所述第二用户的当前待转发报文进行转发处理;所述FGU层模块在单位时间内进行转发处理的数据总量与所述S个用户在所述报文缓存空间占用的缓存空间大小相匹配,且每个用户在所述报文缓存空间占用的缓存空间大小与所述用户分配得到的带宽相匹配。
2.根据权利要求1所述的方法,其特征在于,所述MAC层模块维护有可用地址队列,所述可用地址队列包括所述报文缓存空间中可用空间的地址指针;
所述在确定所述报文缓存空间存在空闲空间时,将所述第一用户的待转发报文缓存至所述报文缓存空间的步骤,包括:
在确认所述可用地址队列不为空后,从所述可用地址队列读出所述报文缓存空间空闲的目的地址指针;
基于所述目的地址指针,将所述第一用户的待转发报文写入所述报文缓存空间。
3.根据权利要求2所述的方法,其特征在于,所述交换机预先配置编码映射表,所述编码映射表反映多种报文指示信息各自在对应的特定字段的原始编码值和映射编码值之间的映射关系;
所述基于所述目的地址指针,将所述第一用户的待转发报文写入所述报文缓存空间的步骤,包括:
从所述编码映射表查找出与所述第一用户的待转发报文的报文指示信息在所对应的特定字段的原始编码值和映射编码值之间的映射关系;
对所述第一用户的待转发报文按照64/66b编码规则进行编码,得到原始编码数据;
将所述原始编码数据中报文指示信息部分的特定字段从所述原始编码值替换为所述映射编码值,得到新的编码数据;
基于所述报文缓存空间空闲的目的地址指针,将所述新的编码数据写入所述报文缓存空间。
4.根据权利要求2所述的方法,其特征在于,所述MAC层模块还维护有报文首尾表以及报文顺序链表;所述报文首尾表包括每个所述用户的第一个待转发报文和最后一个待转发报文各自在所述报文缓存空间所处的头地址指针和尾地址指针;所述报文顺序链表用于指示每个用户的下一个待转发报文在所述报文缓存空间中的地址指针;
在所述基于所述目的地址指针,将所述第一用户的待转发报文写入所述报文缓存空间的步骤之后,还包括:
从所述报文首尾表中读出所述第一用户的尾地址指针;
基于所述第一用户的尾地址指针,在所述报文顺序链表的对应位置写入所述目的地址指针;
基于所述目的地址指针,更新所述报文首尾表中所述第二用户的尾地址指针。
5.根据权利要求1所述的方法,其特征在于,所述MAC层模块维护有报文首尾表,所述报文首尾表包括每个所述用户的第一个待转发报文和最后一个待转发报文各自在所述报文缓存空间所处的头地址指针和尾地址指针;
所述从所述报文缓存空间读取所述数据请求对应的第二用户的当前待转发报文的步骤,包括:
从所述报文首尾表确定所述数据请求对应的第二用户的头地址指针;
基于所述第二用户的头地址指针,从所述报文缓存空间读出所述第二用户的当前待转发报文。
6.根据权利要求5所述的方法,其特征在于,所述交换机预先配置编码映射表,所述编码映射表反映多种报文指示信息各自在对应的特定字段的原始编码值和映射编码值之间的映射关系;
所述基于所述第二用户的头地址指针,从所述报文缓存空间读出所述第二用户的当前待转发报文的步骤,包括:
基于所述第二用户的头地址指针,从所述报文缓存空间读出所述当前待转发报文所对应的编码数据;
获取所述编码数据的报文指示信息部分在所述特定字段的映射编码值,并从所述编码映射表查找出与所述映射编码值相匹配的原始编码值;
将所述编码数据的报文指示信息部分的特定字段由所述映射编码值恢复为所述原始编码值,得到原始编码数据;
对所述原始编码数据按照64/66b编码规则进行解码,得到所述第二用户的当前待转发报文。
7.根据权利要求5所述的方法,其特征在于,所述MAC层模块还维护有报文顺序链表以及可用地址队列;所述报文顺序链表用于指示每个用户的下一个待转发报文在所述报文缓存空间中的地址指针;所述可用地址队列包括所述报文缓存空间中可用空间的地址指针;
在所述基于所述第二用户的头地址指针,从所述报文缓存空间读出所述第二用户的当前待转发报文的步骤之后,还包括:
释放所述报文缓存空间中所述第二用户的头地址指针所对应的空间,并将所述第二用户的头地址指针写入所述可用地址队列;
基于所述第二用户的头地址指针,从所述报文顺序链表查找出所述第二用户的当前待转发报文的下一个待转发报文在所述报文缓存空间中的地址指针;
基于所述第二用户的当前待转发报文的下一个待转发报文在所述报文缓存空间中的地址指针,更新所述报文首尾表中所述第二用户的头地址指针。
8.根据权利要求1所述的方法,其特征在于,所述交换机还预设有用于缓存所述S个用户的PTP报文所需时戳插入信息的时戳缓存空间;
当所述第一用户的待转发报文属于所述PTP报文时,在所述将所述第一用户的待转发报文缓存至所述报文缓存空间的步骤之后,还包括:
获取所述第一用户的待转发报文的时戳插入信息,并将所述时戳插入信息写入所述时戳缓存空间;
当所述第二用户的当前待转发报文属于所述PTP报文时,所述将所述当前待转发报文传送至所述FGU层模块的步骤,包括:
基于所述第二用户的当前待转发报文中的报文指示信息,从所述时戳缓存空间读出所述第二用户的当前待转发报文的时戳插入信息;
基于所述第二用户的当前待转发报文的时戳插入信息,对所述当前待转发报文进行PTP处理后传送至所述FGU层模块。
9.一种报文缓存装置,其特征在于,应用于交换机的MAC层模块,所述交换机还包括FGU层模块,所述交换机预设有用于缓存S个用户的待转发数据的报文缓存空间;所述报文缓存装置包括:
写入模块,用于:
接收第一用户的待转发报文;
在确定所述报文缓存空间存在空闲空间时,将所述第一用户的待转发报文缓存至所述报文缓存空间;
读出模块,用于:
当收到所述FGU层模块发来的数据请求时,从所述报文缓存空间读取所述数据请求对应的第二用户的当前待转发报文;其中,所述第一用户和所述第二用户均为任一所述用户;所述数据请求是所述FGU层模块匀速发送的;
将所述当前待转发报文传送至所述FGU层模块,以使所述FGU层模块对所述第二用户的当前待转发报文进行转发处理;所述FGU层模块在单位时间内进行转发处理的数据总量与所述S个用户在所述报文缓存空间占用的缓存空间大小相匹配,且每个用户在所述报文缓存空间占用的缓存空间大小与所述用户分配得到的带宽相匹配。
10.一种交换机,其特征在于,包括:存储器和处理器,所述存储器存储有软件程序,当所述交换机运行时所述处理器执行所述软件程序以实现如权利要求1-8中任一项所述的报文缓存方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8中任一项所述的报文缓存方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311338276.6A CN117319423A (zh) | 2023-10-16 | 2023-10-16 | 报文缓存方法、装置、交换机及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311338276.6A CN117319423A (zh) | 2023-10-16 | 2023-10-16 | 报文缓存方法、装置、交换机及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117319423A true CN117319423A (zh) | 2023-12-29 |
Family
ID=89237096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311338276.6A Pending CN117319423A (zh) | 2023-10-16 | 2023-10-16 | 报文缓存方法、装置、交换机及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117319423A (zh) |
-
2023
- 2023-10-16 CN CN202311338276.6A patent/CN117319423A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5863076B2 (ja) | パケットを再構築し再順序付けするための方法、装置、およびシステム | |
EP2613479B1 (en) | Relay device | |
WO2020024721A1 (zh) | 一种业务传输的方法、设备及计算机存储介质 | |
US11968111B2 (en) | Packet scheduling method, scheduler, network device, and network system | |
CN107438028B (zh) | 一种客户业务处理的方法和设备 | |
JP6962599B2 (ja) | クライアントサービス送信方法および装置 | |
CN108737296B (zh) | 一种数据传输方法、装置和网络设备 | |
US20030026206A1 (en) | System and method for late-dropping packets in a network switch | |
CN1291393A (zh) | 用于双环拓扑结构中动态转移模式的方法和设备 | |
CN108282416B (zh) | 一种基于数据帧的调度方法和装置 | |
CN111290979A (zh) | 数据传输方法、装置及系统 | |
JP2002511704A (ja) | リングトポロジにおける動的同期転送モードの同期化方法及び装置 | |
CN117793583A (zh) | 报文转发方法、装置、电子设备及计算机可读存储介质 | |
CN115955447B (zh) | 一种数据传输方法、交换机及交换机系统 | |
CN117319423A (zh) | 报文缓存方法、装置、交换机及计算机可读存储介质 | |
WO2024011879A1 (zh) | 一种灵活以太网中网络时延优化的方法和装置 | |
CN113647070A (zh) | 发送器和接收器、串行器和解串器以及用于发送和接收、串行化和解串化的方法 | |
US7525962B2 (en) | Reducing memory access bandwidth consumption in a hierarchical packet scheduler | |
CN114024844B (zh) | 数据调度方法、数据调度装置及电子设备 | |
CN117155874A (zh) | 数据包发送方法、转发节点、发送端及存储介质 | |
CN112615796B (zh) | 一种兼顾存储利用率与管理复杂度的队列管理系统 | |
CN101296189A (zh) | 分布式流处理网络设备以及其中的报文传输方法 | |
CN115314179B (zh) | Mtnp oam消息发送方法和装置 | |
CN110519181A (zh) | 基于跨频段时间触发通信的交换方法 | |
CN117319327A (zh) | 双交换平面数据处理装置、方法和网络交换芯片 |
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 |