丢包原因确定方法、装置、交换芯片及存储介质与流程

文档序号:32666942发布日期:2022-12-24 01:13阅读:21来源:国知局
1.本发明实施例涉及网络通信
技术领域
:,尤其涉及一种丢包原因确定方法、装置、交换芯片及存储介质。
背景技术
::2.随着网络通信
技术领域
:的不断发展,对网络交换芯片的需求不断增加,同时在网络交换芯片转发数据的过程中,也带来了丢包的风险,可提供交换功能越多的网络交换芯片,引起丢包的原因就越复杂。3.现有技术中,网络交换芯片可以提供基于端口的丢包原因记录和丢包统计,然而由于实际运行中的网络流量较多,一个端口上会有多条流进行转发,无法确定引起丢包的具体流,需要镜像整个端口进行流量分析确定丢包流量。4.然而,在进行流量分析确定丢包流量时,需要分析丢包流在网络交换芯片中的转发流程。由于调试丢包时,需要涉及的报文在网络交换芯片中的转发流程较多,逐步查看修改寄存器进行调试,调试效率低下,并且可能会影响现有的其他业务流量,不利于网络的维护。故,如何提高丢包原因的确定效率是当前亟待解决的技术问题。技术实现要素:5.本发明提供了一种丢包原因确定方法、装置、交换芯片及存储介质,以提高丢包原因的确定效率。6.第一方面,本发明实施例提供了一种丢包原因确定方法,包括:7.基于确定的端口级丢弃原因,确定访问控制列表的丢包匹配项,所述丢包匹配项用于进行所述端口级丢弃原因匹配;8.基于所述丢包匹配项,进行报文镜像得到丢包报文;9.基于所述丢包报文的内部交换信息确定报文级丢弃原因。10.第二方面,本发明实施例提供了一种丢包原因确定装置,包括:11.第一确定模块,用于基于确定的端口级丢弃原因,确定访问控制列表的丢包匹配项,所述丢包匹配项用于进行所述端口级丢弃原因匹配;12.第一获取模块,用于基于所述丢包匹配项,进行报文镜像得到丢包报文;13.第二确定模块,用于基于所述丢包报文的内部交换信息确定报文级丢弃原因。14.第三方面,本发明实施例提供了一种交换芯片,包括:15.至少一个处理器;以及16.与所述至少一个处理器通信连接的存储器;其中,17.所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的丢包原因确定方法。18.第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的丢包原因确定方法。19.本发明实施例的技术方案,通过将端口级丢弃原因与访问控制列表的丢包匹配项相匹配,并进行报文镜像得到具体的丢包报文,再基于丢包报文的内部交换信息确定报文级丢弃原因,无需对整个端口进行流量分析来确定丢包流量,即可确定丢包的原因,提高了丢包原因的确定效率。20.应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。附图说明21.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。22.图1是根据本发明实施例一提供的一种丢包原因确定方法的流程图;23.图2是根据本发明实施例二提供的一种丢包原因确定方法的流程图;24.图3是根据本发明实施例二提供的一种丢包匹配项的示意图;25.图4是根据本发明实施例二提供的现有的一种三层ip单播可包含的交换芯片的内部交换信息的示意图;26.图5是根据本发明实施例二提供的一种交换芯片的结构示意图;27.图6是根据本发明实施例二提供的一种获取丢包报文的实际转发流程的流程图;28.图7是根据本发明实施例三提供的一种丢包原因确定装置的结构示意图;29.图8示出了可以用来实施本发明实施例的交换芯片的结构示意图。具体实施方式30.为了使本
技术领域
:的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。31.需要说明的是,本发明中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。32.可以理解的是,在使用本发明各实施例公开的技术方案之前,均应当依据相关法律法规通过恰当的方式对本公开所涉及个人信息的类型、使用范围以及使用场景等告知用户并获得用户的授权。33.实施例一34.图1是根据本发明实施例一提供的一种丢包原因确定方法的流程图,本实施例可适用于,网络交换芯片转发数据发生丢包时,确定丢包原因的情况,该方法可以由丢包原因确定装置来执行,该丢包原因确定装置可以采用软件和/或硬件的形式实现,并集成在交换芯片,又称网络交换芯片中。如图1所示,该方法包括:35.s110、基于确定的端口级丢弃原因,确定访问控制列表的丢包匹配项,丢包匹配项用于进行端口级丢弃原因匹配。36.其中,端口级丢弃原因可以是指交换芯片的端口确定的丢弃数据包的原因。37.对端口级丢弃原因不作具体限定,如端口级丢弃原因可以是,拒绝服务(denialofservice,dos)攻击(dosattack)、单播反向路由查找(unicastreversepathforwarding,urpf)失败(urpffail)、组播索引错误(multicastindexerror)、虚拟局域网(virtuallocalareanetwork,vlan)检查错误(vlancheckerror)、生存时间(timetolive,ttl)错误(ttlerror)等。38.对端口级丢弃原因的数量不作限定,可以是一个或多个。39.端口级丢弃原因的确定方式不作限定,只要能够确定端口级丢弃原因即可。如,产生丢包后,交换芯片可以获取交换芯片的端口发送的端口级丢弃原因,进而使交换芯片确认端口级丢弃原因。40.访问控制列表(accesscontrollists,acl)可以是指一种基于包过滤的访问控制技术,可以根据设定的条件对端口上的数据包进行过滤,允许其通过或丢弃。acl是由一系列规则组成的集合,可以通过这些规则对数据包进行分类,并对不同类型的报文进行不同的处理。41.丢包匹配项可以是指与端口级丢弃原因相匹配的匹配项,丢包匹配项用于进行端口级丢弃原因匹配。丢包匹配项可以包含一个或多个比特位,具体可以根据实际应用需要确定丢包匹配项所包括的比特位,一个比特位可以与一个端口级丢弃原因相匹配。42.基于确定的端口级丢弃原因,确定访问控制列表的丢包匹配项的方式不作限定,只要能够确定访问控制列表的丢包匹配项即可。如可以是提前设置好端口级丢弃原因,与丢包匹配项中所包括的比特位的对应关系,并按照确定的端口级丢弃原因,从丢包匹配项所包括的第零比特位向第n比特位依次索引,查找与端口级丢弃原因相对应的比特位,再将与端口级丢弃原因相对应的比特位置为第一数值,将丢包匹配项中除与端口级丢弃原因相对应的比特位之外的其他比特位,置为第二数值,进而确定访问控制列表的丢包匹配项。43.其中,n+1可以表示丢包匹配项中所能包括的最大比特位数,n+1个比特位可以最多与n+1个端口级丢弃原因相匹配,对n的值不作限定,可以根据实际需要选取n。第一数值与第二数值可以是根据实际需要设定的数值,只要能够保证第一数值与第二数值不同,且第一数值所在的比特位为与端口级丢弃原因相对应的比特位,第二数值所在的比特位为,丢包匹配项中除与端口级丢弃原因相对应的比特位之外的其他比特位。44.在一个实施例中,提前设置丢包匹配项的第三比特位可以与端口级丢弃原因ttlerror相匹配,第一数值为1,第二数值为0。当确定的端口级丢弃原因为ttlerror时,按照确定的端口级丢弃原因,从丢包匹配项所包括的第零比特位向第n比特位依次索引,其中,第三比特位可以与确定的端口级丢弃原因ttlerror相匹配,则将第三比特位置为1,将丢包匹配项的其余匹配项置为0。45.在一个实施例中,当确定的端口级丢弃原因为多个时,可以将与多个端口级丢弃原因所对应的,丢包匹配项中所包括的多个比特位,均置为第一数值;将除与端口级丢弃原因相对应的比特位之外的其他比特位,均置为第二数值。46.s120、基于丢包匹配项,进行报文镜像得到丢包报文。47.丢包报文可以是指,对确定的端口级丢弃原因对应的报文镜像之后确定的丢弃的报文。48.报文镜像可以理解为,将源端口的报文复制到目的端口。在本发明实施例中,源端口可以是交换芯片的端口,源端口的报文可以是指,交换芯片的端口确定的端口级丢弃原因中的一个或多个对应的报文;目的端口可以是将要接收镜像后的报文的端口。49.基于丢包匹配项,进行报文镜像得到丢包报文的方式不作限定,只要能够得到丢包报文即可。如,在丢包匹配项中查找取值为第一数值的比特位,将取值为第一数值的比特位,对应的端口级丢弃原因中的一个或多个对应的报文,复制到目的端口,使目的端口获取丢包报文,交换芯片可以抓取目的端口获取到的丢包报文,从而获取丢包报文。50.s130、基于丢包报文的内部交换信息确定报文级丢弃原因。51.在交换芯片中进行报文转发时,报文除了可以标识报文本身的内容,还可以附加报文在交换芯片中的内部交换信息,这些内部交换信息能够标识出报文在交换芯片内部的交换流程。52.内部交换信息可以是指交换芯片内部进行报文转发时产生的信息。对内部交换信息不作限定,如内部交换信息可以是vlan检查通过、二层命中(l2hit)、三层命中(l3hit)、多协议标签交换(multi-protocollabelswitching,mpls)hit等。53.基于丢包报文的内部交换信息确定报文级丢弃原因的方式不作限定,只要能够基于丢包报文的内部交换信息确定报文级丢弃原因即可。如,可以通过人机交互装置中的显示界面,显示丢包报文的内部交换信息,使用户可以通过显示界面显示的丢包报文的内部交换信息,确定报文的实际转发流程,并将实际转发流程与期望转发流程对比,确定报文级丢弃原因。又如,交换芯片通过丢包报文的内部交换信息,分析丢包报文的实际转发流程,并将分析得到的实际转发流程与期望转发流程对比,确定报文级丢弃原因。54.其中,人机交互装置可以交互者(如用户)进行人机交互的装置。人机交互装置包括但不限于触摸屏、输入部件(如键盘和按键等)等。人机交互装置中可以有显示界面,用于显示丢包报文的内部交换信息,使用户可以通过该显示界面获取丢包报文的内部交换信息。实际转发流程可以是指在转发报文的过程中实际的转发流程。期望转发流程可以是指转发报文的过程中应有的流程,期望转发流程可以是根据实际需要预设的转发流程。55.本发明实施例的技术方案,通过将端口级丢弃原因与访问控制列表的丢包匹配项相匹配,并进行报文镜像得到具体的丢包报文,再基于丢包报文的内部交换信息确定报文级丢弃原因。通过引入丢包匹配项进行端口级丢弃原因匹配,使得无需对整个端口进行流量分析来确定丢包流量,即可确定丢包的原因,提高了丢包原因的确定效率。56.进一步的,丢包匹配项为访问控制列表扩展出的用于进行丢包原因判断的匹配项;丢包匹配项所包括的比特位数,大于或等于交换芯片所能检测到的端口级丢弃原因的数量;交换芯片所能检测到的端口级丢弃原因,与丢包匹配项的比特位存在一一对应关系。57.丢包匹配项为访问控制列表扩展出的用于进行丢包原因判断的匹配项,可以理解为,通过丢包匹配项,可以分析丢包原因,如可以将丢包匹配项中的比特位与端口级丢弃原因相匹配,进而可以在后续通过丢包匹配项进一步分析丢包原因。58.丢包匹配项所包括的比特位数,大于或等于交换芯片所能检测到的端口级丢弃原因的数量,可以理解为,丢包匹配项所包括的比特位数要能满足交换芯片所能检测到的端口级丢弃原因的匹配需求。如交换芯片所能检测到的端口级丢弃原因的数量为5个,为了使每个端口级丢弃原因均有与之唯一对应的丢包匹配项所包括的比特位,则丢包匹配项所包括的比特位数应至少为5个。59.交换芯片所能检测到的端口级丢弃原因,与丢包匹配项的比特位存在一一对应关系,在交换芯片所能检测到的端口级丢弃原因中,每一个端口级丢弃原因,均在丢包匹配项中存在一个与之唯一对应的比特位,通过该比特位的取值可以判断是否有该端口级丢弃原因,便于在后续通过丢包匹配项进一步分析丢包原因。60.实施例二61.图2是根据本发明实施例二提供的一种丢包原因确定方法的流程图,本实施例是在上述实施例一的基础上的进一步细化。62.在本发明实施例中,基于确定的端口级丢弃原因,确定访问控制列表的丢包匹配项,包括:63.获取交换芯片的端口传输的端口级丢弃原因;64.将丢包匹配项中对应端口级丢弃原因的比特位置第一数值;65.将丢包匹配项中剩余的比特位置第二数值,第一数值和第二数值的取值不同。66.在本发明实施例中,基于丢包匹配项,进行报文镜像得到丢包报文,包括:67.镜像目标端口级丢弃原因对应的报文至目的端口,得到丢包报文,目标端口级丢弃原因为丢包匹配项中置第一数值的比特位所对应的端口级丢弃原因中的一个或多个。68.在本发明实施例中,基于丢包报文的内部交换信息确定报文级丢弃原因,包括:69.将丢包报文的内部交换信息显示至显示器上,以用于确定丢包报文的实际转发流程,实际转发流程用于与期望转发流程对比得到报文级丢弃原因。70.如图2所示,该方法包括:71.s111、获取交换芯片的端口传输的端口级丢弃原因。72.在发生丢包后,交换芯片的端口可以分析得出端口级丢弃原因。获取交换芯片的端口传输的端口级丢弃原因的方式不作限定,如可以是交换芯片的端口将端口级丢弃原因发送至交换芯片,进而使交换芯片可以获取交换芯片的端口传输的端口级丢弃原因。73.s112、将丢包匹配项中对应端口级丢弃原因的比特位置第一数值。74.第一数值可以是根据实际需要设定的数值,通过第一数值可以标识丢包匹配项中与端口级丢弃原因相对应的比特位。75.将丢包匹配项中对应端口级丢弃原因的比特位置第一数值,可以在后续通过对丢包匹配项中比特位中的第一数值来确定端口级丢弃原因。76.s113、将丢包匹配项中剩余的比特位置第二数值,第一数值和第二数值的取值不同。77.第二数值可以是根据实际需要设定的数值,通过第二数值可以标识丢包匹配项中,除与端口级丢弃原因相对应的比特位之外的剩余比特位。78.第一数值和第二数值的取值不同,以便于通过第一数值和第二数值来区分与端口级丢弃原因相对应的比特位,和丢包匹配项中剩余的比特位。79.对第一数值和第二数值的取值不作限定,只要第一数值与第二数值不同即可,如第一数值为1,第二数值为0;又如第一数值为-1,第二数值为1。80.s121、镜像目标端口级丢弃原因对应的报文至目的端口,得到丢包报文,目标端口级丢弃原因为丢包匹配项中置第一数值的比特位所对应的端口级丢弃原因中的一个或多个。81.目标端口级丢弃原因可以是指,丢包匹配项中置第一数值的比特位所对应的端口级丢弃原因中的一个或多个,其中,通过交换芯片的端口确定的端口级丢弃原因可以有一个或多个,这些端口级丢弃原因所对应的丢包匹配项中的比特位均被置为第一数值,目标端口级丢弃原因即为其中的一个或多个。82.目的端口可以是将要接收镜像后的报文的端口,目的端口可以连接至显示设备,供用户通过显示设备获取经由目的端口传输的信息,其中,显示设备可以是个人计算机(personalcomputer,pc)的显示屏等。83.镜像目标端口级丢弃原因对应的报文至目的端口,得到丢包报文的方式不作限定,只要能够得到丢包报文即可。如,将目标端口级丢弃原因对应的报文复制到目的端口,使目的端口获取丢包报文,即指定镜像目的端口,acl动作为将报文镜像到指定镜像目的端口,抓取镜像目的端口的报文即得到了具体的丢弃报文,即丢包报文。84.s131、将丢包报文的内部交换信息显示至显示器上,以用于确定丢包报文的实际转发流程,实际转发流程用于与期望转发流程对比得到报文级丢弃原因。85.显示器可以是交换芯片中的输入输出设备,也可以是与交换芯片连接的外接显示器,可以用于显示丢包报文的内部交换信息。将丢包报文的内部交换信息显示至显示器上,可以使用户通过显示器查看丢包报文的内部交换信息,并通过内部交换信息确定丢包报文的实际转发流程。86.实际转发流程可以是指在转发报文的过程中实际的转发流程。期望转发流程可以是指转发报文的过程中应有的流程,期望转发流程可以是根据实际需要预设的转发流程。实际转发流程用于与期望转发流程对比得到报文级丢弃原因。87.将实际转发流程与期望转发流程对比的方式不作限定,如可以是将实际转发流程与期望转发流程中所包括的具体流程分别进行编号,其中实际转发流程与期望转发流程中所包括的相同的具体流程可以采用相同的编号,再将两者所包括的具体流程对应的编号分别放入两个数组,通过遍历数组中的编号,判断两个数组中的编号是否相同,且相同编号出现的前后顺序是否一致,即可实现实际转发流程与期望转发流程的对比。88.通过对比实际转发流程与期望转发流程,可以得到报文级丢弃原因。89.本发明实施例的技术方案,通过第一数值与第二数值区分端口级丢弃原因对应的比特位,和丢包匹配项中剩余的比特位,便于通过丢包匹配项中比特位的取值确定端口级丢弃原因;并将置第一数值的比特位所对应的端口级丢弃原因中的一个或多个对应的报文,镜像至目的端口,得到丢包报文,无须分析交换芯片产生的所有报文,即可确定丢包报文;再通过显示器显示丢包报文的内部交换信息,通过实际转发流程与期望转发流程对比得到报文级丢弃原因,提高了丢包原因的确定效率。90.进一步的,丢包原因确定方法还包括:91.基于所指定调试寄存器的指针,将丢包报文的内部交换信息保存至所指定调试寄存器内。92.指定调试寄存器可以是指在调试丢包的过程中存放数据的寄存器,可以用来暂时存放参与运算的数据和运算结果。指定调试寄存器的指针可以是根据实际应用需要设置的指针。93.基于所指定调试寄存器的指针,将丢包报文的内部交换信息保存至所指定调试寄存器内的方式不作限定,只要能够将丢包报文的内部交换信息保存至所指定调试寄存器内即可。如可以是基于丢包匹配项进行报文镜像得到丢包报文,判断丢包报文的数量,结合丢包报文的数量,通过指定调试寄存器的指针读取交换芯片中丢包报文的内部交换信息,并将其保存至所指定调试寄存器内。94.进一步的,基于所指定调试寄存器的指针,将丢包报文的内部交换信息保存至所指定调试寄存器内,包括:95.在丢包报文的数量为一个时,基于丢包匹配项保存丢包报文的内部交换信息;96.在丢包报文的数量为至少两个时,基于丢包报文的特征值和丢包匹配项保存所对应的内部交换信息。97.丢包报文的特征值可以是指根据丢包报文特点提炼的一种与实际链路关联的唯一标识,可以为多种字段的组合,如源互联网协议(internetprotocol,ip)、目的ip、源端口、目的端口、vlan等。一个丢包报文可以有与其对应的一个丢包报文的特征值。98.在丢包报文的数量为一个时,基于丢包匹配项保存丢包报文的内部交换信息,具体的,在丢包报文的数量为一个时,可以直接通过一个acl扩展出的丢包匹配项保存丢包报文的内部交换信息,如可以通过指定调试寄存器的指针读取交换芯片中丢包报文的内部交换信息,并将其保存至所指定调试寄存器内。99.在丢包报文的数量为至少两个时,基于丢包报文的特征值和丢包匹配项保存所对应的内部交换信息,具体的,当丢包报文的数量为至少两个时,丢包报文的特征值的数量也为至少两个,丢包报文与丢包报文的特征值可以是一一对应的,一个丢包报文需要有一个acl与之相匹配,因此,可以采用多个acl匹配丢包报文的特征值和丢包匹配项,其中,acl、丢包报文的特征值和丢包匹配项的数量可以相同,均由丢包报文的数量决定。通过多个acl匹配丢包报文的特征值和丢包匹配项,再通过指定调试寄存器的指针读取交换芯片中丢包报文的内部交换信息,并将其保存至所指定调试寄存器内。100.在一个实施例中,当丢包报文的内部交换信息保存至所指定调试寄存器内时,可以通过读取指针所指向的指定调试寄存器内的内部交换信息,进而可以通过内部交换信息确定丢包报文的实际转发流程,进一步分析产生丢包的原因。101.以下对本发明进行示例性说明:102.本发明实施例提出了一种交换芯片确定丢包流量的实现方法,可以快速确认丢弃的特定流,同时快速给出特定流在交换芯片中的实际转发流程,方便确认报文丢弃原因,本发明可以对现有的交换功能进行拓展,以较小的代价实现交换芯片确定丢包流量。103.本发明实施例提供了一种交换芯片确定丢包流量的实现方法,该方法包括:扩展acl匹配项进行丢弃原因(即端口级丢弃原因)匹配,可以快速确认丢弃报文(即丢包报文),拓展acl动作将交换报文携带的内部交换信息进行保存,用来分析报文的实际转发流程,确认丢弃原因(即报文级丢弃原因)。104.扩展acl匹配项进行丢弃原因匹配,当产生丢包后,根据端口给出的丢包原因(即端口级丢弃原因),例如dosattack、vlan过滤引擎丢弃(vlanfilterprocessorsdrop,vfpdrop)、入过滤引擎丢弃(ingressfilterprocessorsdrop,ifpdrop)、ttlerror、urpffail、multicastindexerror、vlancheckerror、二层/三层查表失败(l2/l3lookupfail)等,将这些丢包原因作为dropfield(丢包匹配项)中的比特(bit)位进行匹配。105.图3是根据本发明实施例二提供的一种丢包匹配项的示意图,如图3所示,该丢包匹配项可以包含8个比特位,分别为第0比特位、第1比特位、第2比特位、第3比特位、第4比特位、第5比特位、第6比特位和第7比特位,与8个比特位相匹配的端口级丢弃原因分别为,dosattack、vfpdrop、ifpdrop、ttlerror、urpffail、multicastindexerror、vlancheckerror和l2/l3lookupfail。106.匹配相应的丢包原因进行报文镜像得到具体的丢包流量(即丢包报文),具体的使用acl匹配dropfield(丢弃匹配项),例如端口给出ttlerror,则acl对dropfield的第3bit置位1,其他置位0进行匹配;指定镜像目的端口(即目的端口),acl动作为将报文镜像到指定镜像目的端口,抓取镜像目的口的报文即可得到具体的丢弃报文。107.拓展acl动作指定调试寄存器指针info_ptr,将交换报文携带的内部交换信息保存到指定调试寄存器(即info_ptr指定的寄存器中)。具体的,使用acl匹配报文的流量特征值(即丢包报文的特征值,如:源ip、目的ip、源三层端口、目的三层端口、vlan等信息)和dropfield(丢弃匹配项),acl动作为指定调试寄存器指针info_ptr,根据info_ptr读取芯片内部交换信息。根据转发流程不同,交换芯片所包括的内部交换信息不同。例如,图4是根据本发明实施例二提供的现有的一种三层ip单播可包含的交换芯片的内部交换信息的示意图,如图4所示,该三层ip单播可包含的交换芯片中可以有多个内部交换信息。108.整个调试过程分两步完成:第一步根据端口给出的丢包原因(即端口级丢弃原因)使用acl匹配dropfield确定丢弃流量,第二步使用acl保存丢弃报文在交换芯片的内部转发信息(即内部交换信息)。109.如果第一步acl镜像出的报文只有一种流量(即只有一个丢包报文),则第二步的acl可以只匹配dropfield,acl动作为指定调试寄存器指针info_ptr保存丢包报文的内部交换信息;110.如果第一步acl镜像出的报文含有多种流量(即有多个丢包报文),则需要使用多个acl,分别匹配流量的特征值(即丢包报文的特征值)和dropfield,acl动作分别指定调试寄存器指针info_ptr保存丢包报文的内部交换信息。111.在保存丢包报文的内部交换信息之后,可以通过指针读取指定调试寄存器中的内部交换信息,确认报文的实际转发流程,分析丢包原因。112.例如一个典型的三层单播芯片转发流程包括:入报文解析(vlan_id),入方向vlan检查(入vlan是否在端口vlan允许范围内),检查三层接口单播是否使能(l3_route_en),路由媒体存取控制(mediaaccesscontrol,mac)检查(route_mac_hit),查找路由表(route_table_hit),查找到下一跳(nexthop),nexthop编辑二层报文头修改源mac地址(src_mac)、修改目的mac地址(dst_mac)、修改出vlan(dst_vlan)、ttl减1、指定物理出接口(dst_port)等,出方向vlan检查(出vlan是否在端口vlan允许范围内)等。113.如果报文在端口出方向产生vlancheckfail,则使用acl0对dropfield的第6bit置位1,其他置位0进行匹配,acl0动作为镜像到镜像目的端口,安装acl0,对目的端口进行抓包,得到报文dip为192.169.11.11和dip为192.169.11.12的两种报文后acl0去安装;使用两条acl分别匹配dip为192.169.11.11和dip为192.169.11.12的两种报文,acl1匹配dip为192.169.11.11的报文动作中指定调试寄存器指针info_ptr1,acl2匹配dip为192.169.11.12的报文动作中指定调试寄存器指针info_ptr2,安装acl1和acl2,分别读取info_ptr1和info_ptr2指向的寄存器读取内部转发信息,得到报文的三层转发信息,查看dst_vlan、dst_vlan不在接口允许的vlan中,从而确定这两条流量的三层表的出vlan存在配置问题,导致的流量转发错误。114.图5是根据本发明实施例二提供的一种交换芯片的结构示意图,如图5所示,该交换芯片可以包括:交换处理模块、acl匹配和内部信息存储寄存器(即指定调试寄存器),其中,交换处理模块可以处理交换芯片内部的数据转发等;在acl匹配中可以实现端口级丢弃原因与丢包匹配项的匹配,还可以通过acl匹配指定调试寄存器指针info_ptr,将内部交换信息保存到内部信息存储寄存器;内部信息存储寄存器可以存放内部交换信息等。115.图6是根据本发明实施例二提供的一种获取丢包报文的实际转发流程的流程图,如图6所示,首先查看丢包;匹配相应的丢包原因(即端口级丢弃原因)进行报文镜像得到具体的丢包流量(即丢包报文);进一步匹配流进行设置报文内部信息(即内部交换信息)存储动作,即将内部转发信息(即内部交换信息)存储至内存信息存储寄存器;再通过读取内存信息存储寄存器获取报文的内部转发信息;得出报文在芯片(即交换芯片)内的实际转发流程。116.本发明实施例提出的交换芯片确定丢包流量的实现方法,首先通过acl匹配得到具体丢包流量;然后获取该丢包流量的内部交换信息(内部交换信息中含有实际转换流程);最后获取期望转发流程,将实际转发流程与期望转发流程进行对比分析,可以确认丢包原因,提高了丢包原因的确定效率。117.实施例三118.图7是根据本发明实施例三提供的一种丢包原因确定装置的结构示意图,本实施例可适用于,网络交换芯片转发数据发生丢包时,确定丢包原因的情况。如图7所示,该装置的具体结构包括:119.第一确定模块21,用于基于确定的端口级丢弃原因,确定访问控制列表的丢包匹配项,丢包匹配项用于进行端口级丢弃原因匹配;120.第一获取模块22,用于基于丢包匹配项,进行报文镜像得到丢包报文;121.第二确定模块23,用于基于丢包报文的内部交换信息确定报文级丢弃原因。122.本实施例提供的丢包原因确定装置首先通过第一确定模块21基于确定的端口级丢弃原因,确定访问控制列表的丢包匹配项,丢包匹配项用于进行端口级丢弃原因匹配;然后通过第一获取模块22基于丢包匹配项,进行报文镜像得到丢包报文;最后通过第二确定模块23,用于基于丢包报文的内部交换信息确定报文级丢弃原因。123.进一步的,丢包匹配项为访问控制列表扩展出的用于进行丢包原因判断的匹配项;124.丢包匹配项所包括的比特位数,大于或等于交换芯片所能检测到的端口级丢弃原因的数量;125.交换芯片所能检测到的端口级丢弃原因,与丢包匹配项的比特位存在一一对应关系。126.进一步的,第一确定模块21具体用于:127.获取交换芯片的端口传输的端口级丢弃原因;128.将丢包匹配项中对应端口级丢弃原因的比特位置第一数值;129.将丢包匹配项中剩余的比特位置第二数值,第一数值和第二数值的取值不同。130.进一步的,第一获取模块22具体用于:131.镜像目标端口级丢弃原因对应的报文至目的端口,得到丢包报文,目标端口级丢弃原因为丢包匹配项中置第一数值的比特位所对应的端口级丢弃原因中的一个或多个。132.进一步的,该装置还包括:133.保存模块,用于基于所指定调试寄存器的指针,将丢包报文的内部交换信息保存至所指定调试寄存器内。134.进一步的,保存模块具体用于:135.在丢包报文的数量为一个时,基于丢包匹配项保存丢包报文的内部交换信息;136.在丢包报文的数量为至少两个时,基于丢包报文的特征值和丢包匹配项保存所对应的内部交换信息。137.进一步的,第二确定模块23具体用于:138.将丢包报文的内部交换信息显示至显示器上,以用于确定丢包报文的实际转发流程,实际转发流程用于与期望转发流程对比得到报文级丢弃原因。139.本发明实施例所提供的丢包原因确定装置可执行本发明任意实施例所提供的丢包原因确定方法,具备执行方法相应的功能模块和有益效果。140.实施例四141.图8示出了可以用来实施本发明实施例的交换芯片的结构示意图,交换芯片又称网络交换芯片。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。142.如图8所示,交换芯片10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(rom)12、随机访问存储器(ram)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(rom)12中的计算机程序或者从存储单元18加载到随机访问存储器(ram)13中的计算机程序,来执行各种适当的动作和处理。在ram13中,还可存储交换芯片10操作所需的各种程序和数据。处理器11、rom12以及ram13通过总线14彼此相连。输入/输出(i/o)接口15也连接至总线14。143.交换芯片10中的多个部件连接至i/o接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许交换芯片10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。144.处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如丢包原因确定方法。145.在一些实施例中,丢包原因确定方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由rom12和/或通信单元19而被载入和/或安装到交换芯片10上。当计算机程序加载到ram13并由处理器11执行时,可以执行上文描述的丢包原因确定方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行丢包原因确定方法。146.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。147.用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。148.在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。149.为了提供与用户的交互,可以在交换芯片上实施此处描述的系统和技术,该交换芯片具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给交换芯片。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。150.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。151.计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。152.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。153.上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1