一种生成SNMP响应报文的方法及装置与流程

文档序号:27691293发布日期:2021-12-01 03:12阅读:175来源:国知局
一种生成SNMP响应报文的方法及装置与流程
一种生成snmp响应报文的方法及装置
技术领域
1.本技术涉及网络管理领域,尤其涉及一种生成snmp响应报文的方法及装置。


背景技术:

2.随着网络设备的增多,需要利用网络管理端对网络设备进行管理,网络管理端可以通过snmp(simple network management protocol,简单网络管理协议)与受控端进行通信。
3.由于网络设备功能的日渐增多,网络管理端需要采集监控的信息也越来越多。当网络管理端需要采集的信息过多,导致响应报文长度超过链路的mtu(maximum transmission unit,最大传输数据单元)时,或者,网络管理端请求的数据长度本身超过受控端的mib(management information base,管理信息数据库)节点长度要求时,snmp响应报文将发生分片,此时若网络管理端无法识别并重组分片后的snmp响应报文,将无法对受控端进行正常的管理,出现脱管问题。


技术实现要素:

4.针对上述技术问题,本技术提供一种生成snmp响应报文的方法及装置,可以通过受控端调整snmp响应报文的长度。
5.具体地,本技术是通过如下技术方案实现的:
6.根据本技术的第一方面,提供了一种生成snmp响应报文的方法,所述方法应用于受控端,包括:
7.判断在接收到第一snmp请求报文后的规定时间内是否接收到与第一snmp请求报文重复的第二snmp请求报文;
8.若接收到所述的第二snmp请求报文,则判断所述第一snmp请求报文对应的第一snmp响应报文是否发生分片;
9.若第一snmp响应报文分片,则对第一snmp响应报文进行缩短处理,生成与第二snmp请求报文对应的第二snmp响应报文。
10.根据本技术的第二方面,提供了一种生成snmp响应报文的装置,该装置包括:
11.重复判断单元,用于判断在接收到第一snmp请求报文后的规定时长内是否接收到与第一snmp请求报文重复的第二snmp请求报文;
12.分片判断单元,用于判断在接收到所述第二snmp请求报文时所述第一snmp请求报文对应的第一snmp响应报文是否发生分片;
13.缩短处理单元,用于在第一snmp响应报文发生分片时,对第一snmp响应报文进行缩短处理,生成与第二snmp请求报文对应的第二snmp响应报文。
14.根据本技术的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现所述生成snmp响应报文的方法的步骤。
15.根据本技术的第四方面,提供了一种计算机设备,包括存储器、处理器及存储在存
储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述生成snmp响应报文的方法的步骤。
16.本技术所提供的技术方案,通过对接收到的snmp请求报文进行重复性判断,受控端可以无遗漏地检测snmp响应报文是否发生分片。针对snmp响应报文发生分片的情况,受控端可以自动对snmp响应报文进行缩短处理,生成经过处理后第二snmp响应报文,可以避免该第二snmp响应报文发生分片,确保网络管理端能够顺利获取并解析该第二snmp响应报文,从而基于该第二snmp响应报文实现对受控端的有效管理,避免受控端发生脱管。
17.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
18.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
19.图1是本技术一示例性实施例的一种snmp管理结构示意图;
20.图2是本技术一示例性实施例的一种生成snmp响应报文方法的流程示意图;
21.图3是本技术一示例性实施例的一种生成snmp响应报文方法的具体流程示意图;
22.图4是本技术一示例性实施例的一种设备的结构示意图;
23.图5是本技术一示例性实施例的一种生成snmp响应报文装置的结构示意图。
具体实施方式
24.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
25.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
26.应当理解,尽管在本技术可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
27.snmp是由互联网工程任务组定义的一套网络管理协议。该协议基于简单网关监视协议。利用snmp,网络管理端可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。管理员可以通过网络管理端使用统一的操作对各个网络设备进行管理,而不必理会设备的类型、生产厂家等区别。例如图1所示,假定在
网络中存在网络管理端11,以及路由器12、打印机13、交换机14及服务器15等各种类型的受控端,则网络管理端11可以基于snmp协议对上述各种类型的受控端进行管理。
28.网络管理端和受控端基于snmp协议进行收发报文,以实现网络管理端对受控端的管理。在利用snmp协议管理的网络系统中,通常以变量呈现管理资料。这些资料保存在受控端的mib管理信息库中。mib是snmp管理系统的重要组成部分,定义了受控端必须保存的数据项、允许对每个数据项进行的操作及其含义等。即网络管理端可访问的受控端的状态信息等数据变量都保存在mib中。任何一个通过snmp协议被管理的资料都表示成一个对象,称为被管理对象。mib以树状结构进行存储,树的叶子节点表示被管理对象,它可以通过从根节点开始的一条唯一路径来识别,这也就是oid(object identifier,对象标识符)。mib定义的某一节点储存的最大设备描述信息的长度称为mib节点长度要求。
29.网络管理端通过get,get next和get bulk协定指令从需要管理的受控端处取回资料,或是受控端在没有被询问的情况下,使用trap告警命令或inform命令主动向网络管理端传送资料。
30.而网络管理端通过get,get next,get bulk协定指令取回资料的过程,需要向受控端发送snmp请求报文,该请求报文中通常包括上述三种协定指令中的一种或多种。受控端根据收到的snmp请求报文,基于该snmp请求报文所含的指令执行对应的相关操作,并将基于该相关操作所获取到的相关数据通过snmp响应报文回复给网络管理端。通过上述snmp请求报文和snmp响应报文的收发、处理,实现了网络管理端对受控端的管理。
31.如果网络管理端需要采集监控的信息过多,可能会导致响应报文长度超过链路的最大传输数据单元,或者,如果网络管理端请求的数据长度本身超过受控端的mib节点长度要求,原本应当封装至一条snmp响应报文中的数据将被分解为数个足够小的片段,这些片段被分别一一封装至多条snmp响应报文中,以便每条snmp响应报文都能够通过链路进行传播,这种情况被称为报文的“分片”。此时,网络管理端需要对分片后的snmp响应报文进行识别,并将这些snmp响应报文所含的片段进行重组为完整的数据。但是,如果网络管理端不支持分片功能,就无法实现上述的识别和重组操作,也就无法顺利获得受控端返回的数据,使得网络管理端无法对受控端进行正常的管理,导致受控端出现脱管问题。
32.因此,本技术基于简单网络管理协议提出一种生成snmp响应报文的方法,以解决响应报文分片导致的受控端脱管的问题。
33.图2是本技术一示例性实施例的一种生成snmp响应报文方法的流程示意图。该方法应用于受控端,可以包括以下步骤:
34.s201,判断在接收到第一snmp请求报文后的规定时长内是否接收到与第一snmp请求报文重复的第二snmp请求报文。
35.若网络管理端在发送第一snmp请求报文后,未能接收到对应的第一snmp响应报文,或者未能从接收到的第一snmp响应报文中获取网络管理端希望获得的数据,则网络管理端将面临无法对受控端进行管理的风险。为了取得或维持对受控端的控制,网络管理端将在一定的时间内再次发送snmp请求报文,该snmp请求报文的作用与上述的第一snmp请求报文相同,用于向受控端要求获取相同的数据。为了与第一snmp请求报文相区分,可以将再次发送的snmp请求报文称为第二snmp请求报文。当然,这里的“第一”与“第二”是相对概念,第一snmp请求报文也可以是针对在先发送的另一snmp请求报文而再次发送的snmp请求报
文。
36.因此,若收到的任一snmp请求报文包含与第一snmp请求报文中要求获取相同数据的指令,且该任一snmp请求报文的接收时刻处于接收到第一snmp请求报文后的规定时长内,则可以认为该任一snmp请求报文与第一snmp请求报文重复。其中,上述的规定时长可以根据经验确定,比如根据网络管理端识别并重组响应报文的耗时决定,也可以根据受控端接收到重复的请求报文的平均时间决定,或者其他的决定因素或决定因素的组合确定。当然,也可以由管理维修人员根据实际需求来自行设置,本技术并不对此进行限制。
37.除了查看snmp请求报文所含的指令之外,还可以通过其他方式来确定snmp请求报文之间的重复性。例如,受控端在收到第一snmp请求报文后,可以记录发送第一snmp请求报文的网络管理端的ip地址和第一snmp请求报文中包含的请求标识;那么,若在规定时长内接收来自同一ip地址的网络管理端发送的具有相同请求标识的第二snmp请求报文,则判定该snmp请求报文为在规定时长内接收到与第一snmp请求报文重复的所述第二snmp请求报文。ip地址相同表明两条snmp请求报文来自相同的网络管理端。请求标识由网络管理端进行添加以区分自身发送的snmp请求报文,当网络管理端需要对第一snmp请求报文进行重新发送时,重新发送的snmp请求报文将与该第一snmp请求报文包含相同的请求标识,并且该请求标识的取值区别于网络管理端所发送的其他snmp请求报文所含的请求标识。因此,通过对ip地址和请求标识进行比较,可以准确识别出与第一snmp请求报文重复的第二snmp请求报文。
38.当受控端在规定时长内接收到网络管理端重复发送的snmp请求报文时,表明网络管理端未能通过受控端针对第一snmp请求报文返回的第一snmp响应报文成功获得相应的数据,比如可能由于网络故障等原因没有收到第一snmp响应报文,或者可能收到的第一snmp响应报文发生分片且网络管理端无法识别和重组,总之需要由受控端针对上述的异常情况进行相应处理。可见,本技术通过对snmp请求报文的接收情况进行监测,可以有效识别出重复接收snmp请求报文的情况,从而能够及时准确地发现受控端与网络管理端之间发生的异常交互问题,有助于受控端针对该异常交互问题做出恰当的响应,以确保网络管理端能够有效获得管理设备需要的数据,防止网络管理端无法接收到管理受控端所需的数据而造成受控端发生脱管。
39.s202,若接收到所述第二snmp请求报文,则判断所述第一snmp请求报文对应的第一snmp响应报文是否发生分片。
40.由于可能引起受控端接收到上述第二snmp请求报文的原因不只有响应报文发生分片这一种情况,还有可能存在譬如网络故障等其他因素。因此,在snmp请求报文产生重发的情况时,可以通过进一步确定网络管理端发送重复的snmp请求报文的原因,从而在确定原因是因为响应报文发生分片而导致无法收到正确的响应报文所致的情况下,基于本技术的技术方案作出相应处理,以确保网络管理端能够顺利接收并解析经处理后的snmp响应报文。
41.如前所述,在网络管理端发送的请求报文中一般会包含三种类型的指令,分别为get,get next和get bulk。get、get next和get bulk三种协定指令的具体内容如下所述:
42.get:网络管理端使用该操作从受控端的mib中获取一个或多个数据。
43.get next:网络管理端使用该操作从受控端的mib中获取一个或多个数据的下一
个数据。
44.get bulk:基于get next,相当于连续执行多次get next操作。
45.根据第一snmp请求报文所含的指令不同,对于第一snmp响应报文是否分片的判断方式也随之存在差异。比如,可以将上述三种协定指令分为两类:第一类为get bulk指令,第二类为get和get next指令,这两类协定指令分别对应于不同的判断方式。
46.对于第一类的get bulk指令而言,对于第一snmp响应报文是否分片的判断方式可以包括:在所述第一snmp请求报文中包含get bulk指令的情况下,检查最大重试值是否超过预设值;若最大重试值超过预设值,或者,若最大重试值未超过预设值且第一snmp响应报文的长度超过链路的最大传输数据单元,则判定第一snmp响应报文发生分片。
47.由于get bulk指令基于get next指令,相当于连续执行多次get next操作,因此在网络管理端可以设置受控端进行一次get bulk报文交互时,最多执行几次get next操作,此次数即为最大重试值(max repetition)。
48.受控端接收到包含get bulk指令的第一snmp请求报文后,将按照该第一snmp请求报文中的get bulk指令,执行次数小于或等于最大重试值的get next操作,取得的数据记录在与第一snmp请求报文对应的第一snmp响应报文中发送给网络管理端。在最大重试值超过预设值时,存在较大概率或必然会导致取得的数据过多,进而致使记载这些数据的响应报文的长度超过链路的最大传输数据单元,将导致该响应报文在通过链路进行传播时发生分片。该预设值的确定可以是基于历史经验来设定,也可以是通过对历史上发生分片时的重试值进行统计后得到,还可以是专门针对受控端进行分片测试而得到的测试数据,或者基于其他任意方式所确定,本技术并不对此进行限制。
49.若最大重试值超过该预设值,证明最大重试值过大,按照该包含get bulk指令的第一snmp请求报文的要求,受控端在进行小于或等于最大重试值次数的get next操作时,取得的数据过多,导致响应报文超过链路的最大传输数据单元,因此,响应报文将发生分片。
50.而最大重试值未超过预设值的情况下,第一snmp响应报文仍然可能发生分片。例如,虽然最大重试值没有超过所述预设值,但是该响应报文的长度已经超过链路的最大传输数据单元,则该第一snmp响应报文在传输时也会发生分片。
51.对于第二类get和get next指令而言,对于第一snmp响应报文是否分片的判断方式可以包括:在所述第一snmp请求报文中包含get next或get指令的情况下,计算第一snmp响应报文长度是否超过链路的最大传输数据单元;若第一snmp响应报文的长度超过链路的最大传输数据单元,则判定第一snmp响应报文发生分片。
52.经过判断,若响应报文确实发生了分片,则需要对于分片的响应报文进行缩短处理,以使得缩短后的响应报文不会发生分片,可以被网络管理端识别,进而使得网络管理端可以依据该缩短后的响应报文对受控端进行管理,避免受控端脱管。
53.s203,若第一snmp响应报文分片,则对第一snmp响应报文进行缩短处理,生成与第二snmp请求报文对应的第二snmp响应报文。
54.针对导致响应报文分片的不同原因,对响应报文的缩短处理有不同的方式。
55.在一实施例中,对第一snmp响应报文进行缩短处理的过程可以包括:确定当前所述第一snmp响应报文中,数据长度超过mib节点长度要求的目标数据,其中,所述mib节点长
度要求为受控端上的mib节点定义的最大设备描述信息长度;截短所述目标数据,以使截短后的目标数据满足所述mib节点长度要求。
56.若网络管理端请求一个长度超过该mib节点长度要求的目标数据,该目标数据不能正常传输至网络管理端,会导致响应报文发生分片。为了解决上述原因导致的响应报文分片,需要对该数据进行处理。
57.此时,由于向网络管理端发送的是截短后的目标数据,证明该mib节点长度要求的设置可能存在问题,比如,该节点长度要求设置的过小,导致当网络管理端请求一个长度超过该节点长度要求的数据时,受控端依据请求报文生成的响应报文,由于包含长度超过mib节点长度要求的数据,因此该响应报文在传输过程中必然发生分片,经过截短处理后的响应报文,包含的数据信息存在一定的缺失,为了彻底解决上述问题,还可以向受控端对应的维护人员发送告警日志,以提示所述维护人员修改所述mib节点长度要求的配置。
58.例如,网络管理端请求一个长度为64字节的数据,而受控端的mib节点要求设定该类型数据的最大长度为32字节。则响应报文中将存在超过mib节点长度要求的目标数据,该目标数据的存在将导致该响应报文发生分片。
59.受控端根据mib节点长度要求将该目标数据截短为不超过32个字节的数据,并且可以通过发送告警日志的方式告知受控端的设备维护人员及时修改受控端的mib节点要求至大于64字节,以便后续可以正常传输长度为64字节的该类型的数据。
60.在另一实施例中,对第一snmp响应报文进行缩短处理的过程可以包括:丢弃第一snmp响应报文中的至少一项数据,以使剩余数据的长度不大于链路最大传输数据单元。
61.当响应报文中包含的数据太多,超过链路能传输的最大传输数据单元时,响应报文将发生分片,此时可以有选择性的丢弃响应报文中的至少一项数据,使得剩余数据的长度满足可以通过链路一次性传输的要求。
62.经过缩短处理后新生成的第二snmp响应报文可以由受控端发送至网络管理端,且不发生分片。由于在此种形式的缩短处理过程中,该第二snmp响应报文中包含的数据可能由于被丢弃而不全,因此受控端还可以向网络管理端发送trap告警通知,以向网络管理端告知导致数据不全的具体原因(即由于缩短处理而发生了数据丢弃)。
63.上文描述了两种可能采用的缩短处理的实现方式。在上述实施例中,两种缩短处理可以分别单独实现,以解决第一snmp响应报文发生分片的情况。在一些场景下,上述两种缩短处理可能同时出现,已针对同一条第一snmp响应报文进行处理。例如:若某一snmp响应报文a中包含一个长度超过mib节点长度要求的目标数据,相当于上述的第一snmp响应报文,且该snmp响应报文a的长度也超过链路的最大传输数据单元,则可以先按照上述缩短处理方法其中之一对snmp响应报文a进行缩短处理。比如,先将snmp响应报文a中的目标数据进行截短,使之变为长度不超过mib节点长度要求的数据,生成snmp响应报文b。假设,该snmp响应报文b虽然经过了上述缩短处理,但是其长度还是超过链路的最大传输数据单元,在传输过程中该snmp响应报文b仍然会发生分片。因此,受控端在snmp响应报文b的基础上,再次对其进行缩短处理生成snmp响应报文c,由于经过了第一轮的缩短处理,snmp响应报文b中已经不包含超过mib节点长度要求的目标数据,因此,丢弃snmp响应报文b中的至少一项数据使得剩余数据的长度不大于链路的最大传输数据单元。经过上述的两步缩短处理,生成的snmp响应报文c将可以通过链路传输且不发生分片,受控端可以将该snmp响应报文c作
为上述的第二snmp响应报文进行发送。
64.为了便于理解,下面结合图3的流程图对本技术的技术方案进行描述。假设受控端为一具有传输未接来电记录功能的电话,网络管理端需要获取某一时间段内所有的未接来电的电话号码信息。该网络管理端不支持对分片的报文进行重组和识别。规定预设值为20,发送重复报文的判断规定时长为20s,链路的最大数据传输单元为1kb,mib节点长度要求为不超过32字节。
65.如图3所示,作为受控端的电话可以实现下述步骤:
66.s301,接收网络管理端发送的snmp请求报文1。
67.s302,按照snmp请求报文1中的指令,生成对应的snmp响应报文1并将该snmp响应报文1发送给网络管理端。
68.s303,判断在20s内是否接收到与snmp请求报文1重复的snmp请求报文2。如果收到了重复的snmp请求报文2,证明网络管理端在通过响应报文1获取管理该电话所需的数据变量时出现问题,需要进一步判断该问题是否是snmp响应报文1发生分片,按照本技术提供的方法,针对包含不同指令的snmp请求报文1,判断对其所对应的snmp响应报文1有不同的方法。
69.s304,判断snmp请求报文1中是否包含get bulk指令。
70.若snmp请求报文1中包含get bulk指令,则转入s305;若snmp请求报文1中未包含get bulk指令,而是包含get或get next指令,则转入s308。
71.s305,判断最大重试值是否超过预设值20。
72.若最大重试值未超过20,则转入s306;若最大重试值超过20,则直接转入s307。
73.s306,判断snmp响应报文1的长度是否超过1kb。若snmp响应报文1的长度超过1kb,则转入s307。若snmp响应报文1的长度未超过1kb,则该snmp响应报文1未发生分片。
74.s307,丢弃snmp响应报文1中的至少一项数据,以使剩余数据的长度不大于1kb。
75.例如,若为获得某时段内的未接来电号码信息,网络管理端向受控端发送一个包含get bulk指令的snmp请求报文1,网络管理端设定该get bulk指令的最大重试值为30。snmp请求报文1对应的snmp响应报文1长度为1.5kb,包含30条未接电话号码数据信息。
76.该电话在收到snmp请求报文1后13s内,接收来自同一ip地址的网络管理端发送的具有相同请求标识的snmp请求报文2。
77.该snmp请求报文中包含get bulk指令,由于最大重试值为30,超过预设值20,则丢弃该snmp响应报文1中的至少一项数据,使得剩余数据的长度不超过链路的最大传输数据单元。例如,该链路的最大传输数据单元为1kb,最多可以同时在一个响应报文中传输20条电话号码的数据信息。但是由于最大重试值超出预设值,导致snmp响应报文1的长度超过了1kb,长度为1.5kb,包含了30条电话号码信息,则放弃该响应报文中的至少10条电话号码数据,使得剩余的电话号码数据信息的长度减少到小于或等于1kb,则生成的snmp响应报文2满足长度小于链路的最大传输数据单元的要求,通过该snmp响应报文2,网络管理端可以正常获知部分该时段内的未接来电电话号码信息,从而实现对该电话的管理。
78.若上述实施例中,最大重试值为19,其余条件不变,则按照图3中的判断流程,生成snmp响应报文2的过程变化如下:
79.该电话在收到snmp请求报文1后13s内,接收来自同一ip地址的网络管理端发送的
具有相同请求标识的snmp请求报文2。
80.该snmp请求报文中包含get bulk指令,由于最大重试值为19,未超过预设值20,则判断该响应报文1的长度是否超过1kb,由于该响应报文的长度为1.5kb,超过1kb,因此,丢弃snmp响应报文1中的某些电话号码数据信息,使得剩余数据的长度不大于1kb,网络管理端通过经上述步骤生成的snmp响应报文2同样可以对该电话进行正常的管理。
81.s308,判断snmp响应报文1中是否包含长度大于32字节的目标数据。
82.如果snmp响应报文1中包含长度大于32字节的目标数据,则转入s309;如果snmp响应报文1中不包含长度大于32字节的目标数据,则转入s306。
83.s309,截短目标数据,以使截短后的目标数据长度不超过32字节。生成snmp响应报文报文2,并向网络管理端发送该缩短后的snmp响应报文2。
84.例如,若为获得某时段内的未接来电号码信息,网络管理端向受控端发送一个包含get指令的snmp请求报文1。未接来电中存在一个长度超过一般电话号码的外国电话号码数据,该数据的长度为64字节。snmp请求报文1对应的snmp响应报文1长度为1kb,包含20条未接电话号码数据信息。
85.该电话在收到snmp请求报文1后13s内,接收来自同一ip地址的网络管理端发送的具有相同请求标识的snmp请求报文2。
86.由于snmp请求报文1中未包含get bulk指令,因此,判断snmp响应报文中是否含长度超过32字节的目标数据(s308)。由于snmp响应报文中包含一个长度为64字节的目标数据,因此,截短该目标数据,以使截短后的目标数据长度不超过32字节(s309)。此时生成的snmp响应报文2可以通过链路不发生分片的传输。
87.s310,将经过缩短处理后生成的snmp响应报文2发送给网络管理端。
88.经过s301至s309步骤分别进行判断和处理后,将生成一个新的snmp响应报文2,将snmp响应报文2发送给网络管理端,可以帮助网络管理端重新获取需要的信息,从而对电话进行管理。
89.相应于上述方法的实施例,本技术还提供一种生成snmp响应报文的装置。
90.图4是本技术一示例性实施例的一种设备的结构示意图。请参考图4,在硬件层面,该设备包括处理器402、内部总线404、网络接口406、内存408及非易失性存储器410。当然还可能包括其他业务所需要的硬件。处理器402从非易失性存储器410中读取对应的计算机程序到内存408中然后运行,在逻辑层面上形成一种生成snmp响应报文的装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
91.请参考图5,一种生成snmp响应报文的装置可以包括:
92.重复判断单元510,用于判断在接收到第一snmp请求报文后的规定时长内是否接收到与第一snmp请求报文重复的第二snmp请求报文;
93.分片判断单元520,用于判断若接收到所述第二snmp请求报文时所述第一snmp请求报文对应的第一snmp响应报文是否发生分片;
94.缩短处理单元530,用于在第一snmp响应报文发生分片时,对第一snmp响应报文进行缩短处理,生成与第二snmp请求报文对应的第二snmp响应报文。
95.在本技术的一种具体实施方式中,重复判断单元510可以具体用于:
96.记录发送第一请求报文的网络管理端的ip地址和第一snmp请求报文中包含的请求标识;
97.若在规定时长内接收到来自同一ip地址的网络管理端发送的具有相同请求标识的第二snmp请求报文,则判定该snmp请求报文为在规定时长内接收到与第一snmp请求报文重复的所述第二snmp请求报文。
98.在本技术的一种具体实施方式中,分片判断单元520可以具体用于:
99.在所述第一snmp请求报文中包含get bulk指令的情况下,检查最大重试值是否超过预设值;
100.若最大重试值超过预设值,或者,最大重试值未超过预设值且第一snmp响应报文的长度超过链路的最大传输数据单元,则判定第一snmp响应报文发生分片。
101.在本技术的另外一种具体实施方式中,分片判断单元520还可以具体用于:
102.在所述第一snmp请求报文中包含get next或get指令的情况下,计算第一snmp响应报文的长度是否超过链路的最大传输数据单元;
103.若第一snmp响应报文的长度超过链路的最大传输数据单元,则判定第一snmp响应报文发生分片。
104.在本技术的一种具体实施方式中,缩短处理单元530可以具体用于:
105.确定所述第一snmp响应报文中数据长度超过mib节点长度要求的目标数据,其中,所述mib节点长度要求为受控端上的mib节点定义的最大设备描述信息长度;
106.截短所述目标数据,以使截短后的目标数据满足所述mib节点长度要求。
107.该缩短处理单元530,还可以用于:
108.向受控端发送告警日志,以提示受控端维护人员修改所述mib节点长度要求。
109.在本技术的另外一种具体实施方式中,缩短处理单元530还可以具体用于:
110.丢弃第一snmp响应报文中的至少一项数据,以使剩余数据的长度不大于链路的最大传输数据单元。
111.在本技术的一种具体实施方式中,一种生成snmp响应报文的装置还可以包括发送单元,用于发送第二snmp响应报文和trap告警通知,所述trap告警通知中包括第二snmp响应报文数据不全的原因。
112.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例或者实施例的某些部分所述的方法。
113.上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
114.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以
不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本技术方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
115.以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1