发明内容
本发明的实施例提供一种报文的存储和转发方法及装置,用于解决转发报文可靠性较低的问题。
一方面,本发明的实施例提供一种报文的存储方法,包括:
接收到待存储的报文后,获取所述报文的头部信息和数据信息;
使用预定校验规则对所述报文的头部信息进行运算,生成头部差错控制HEC字段信息;对所述报文的数据信息进行加扰,生成扰码后的数据字段信息;
将所述报文的头部信息、生成的HEC字段信息和所述扰码后的数据字段信息依次写入写指针当前指向的存储单元作为起始地址的缓存装置中,并更新所述写指针指向所述缓存装置的下一个相邻空闲存储单元。
另一方面,本发明的实施例提供一种报文的存储装置,包括:
写操作模块,用于接收到待存储的报文后,获取所述报文的头部信息和数据信息;
校验处理模块,用于使用预定校验规则对所述报文的头部信息进行处理,生成头部差错控制HEC字段信息,对所述报文的数据信息进行加扰,获得数据字段信息;
所述写操作模块,还用于将所述报文的头部信息、生成的HEC字段信息和所述扰码后的数据字段信息依次写入写指针当前指向的存储单元作为起始地址的缓存装置中,并更新所述写指针指向所述缓存装置的下一个相邻空闲存储单元。
又一方面,本发明的实施例提供一种报文的转发方法,包括:
从缓存装置的读指针当前指向的存储单元开始依次读取报文的头部信息以及对应的头部差错控制HEC字段信息;
使用预定校验规则对所述报文的头部信息进行校验;
当对所述报文的头部信息校验成功时,转发所述报文;并更新所述写指针指向所述缓存装置的用于存储下一个报文的相邻存储单元。
在本发明的另一实施例中,所述使用预定校验规则对所述报文的头部信息进行校验,包括:
使用所述预定校验规则对所述报文的头部信息进行运算,获得运算结果;
将所述运算结果与所述报文的头部信息对应的头部差错控制HEC字段信息进行比对;
当所述运算结果与所述HEC字段信息一致时,表示对所述报文的头部信息校验成功;
当所述运算结果与所述HEC字段信息不一致时,表示对所述报文的头部信息校验失败。
在本发明的另一实施例中,所述当对所述报文的头部信息校验成功时,转发所述报文,包括:
根据所述报文的头部信息中的报文长度获取所述报文的数据字段信息;对所述报文的数据字段信息进行解扰,获得所述报文的数据信息;
转发所述报文,所述报文包括所述报文的头部信息和所述报文的数据信息。
在本发明的另一实施例中,在所述使用预定校验规则对所述报文的头部信息进行校验之后,所述方法还包括:
当对所述报文的头部信息校验失败时,更新所述读指针指向所述缓存装置的下一个相邻存储单元,从更新后的所述读指针当前指向的存储单元开始依次获取与报文的头部信息和HEC字段信息长度相同的存储单元的内容,使用所述预定校验规则对与报文的头部信息长度相同的存储单元的内容作为报文的头部信息进行校验;
当对所述存储单元的内容作为报文的头部信息校验成功时,获得所述报文的头部信息对应的数据字段信息,对所述报文的数据字段信息进行解扰,获得所述报文的数据信息;转发所述报文的头部信息和所述报文的数据信息;
当对所述存储单元的内容作为报文的头部信息校验失败时,更新所述写指针指向所述缓存装置的下一个相邻存储单元,从更新后读指针当前指向的存储单元开始依次获取与报文的头部信息和HEC字段信息长度相同的存储单元的内容,使用所述预定校验规则对与报文的头部信息长度相同的存储单元的内容作为报文的头部信息进行校验,直到获取校验成功的报文,并进行转发。
再一方面,本发明的实施例提供一种报文的转发装置,包括:
读操作模块,用于控制读指针,从缓存装置的所述读指针当前指向的存储单元开始依次读取报文的头部信息以及对应的头部差错控制HEC字段信息;并在完成报文转发后,更新写指针指向所述缓存装置的用于存储下一个报文的相邻存储单元;
校验处理模块,用于使用预定校验规则对所述报文的头部信息进行校验;
发送模块,用于当所述校验处理模块对所述报文的头部信息校验成功时,转发所述报文。
在本发明的另一实施例中,所述校验处理模块,包括:
运算单元,用于使用所述预定校验规则对所述报文的头部信息进行运算,获得运算结果;
比较处理单元,用于将所述运算单元获得的所述运算结果与所述报文的头部信息对应的头部差错控制HEC字段信息进行比对;当所述运算结果与所述HEC字段信息一致时,表示对所述报文的头部信息校验成功,并通知所述发送模块;当所述运算结果与所述HEC字段信息不一致时,表示对所述第一报文的头部信息校验失败,并通知所述读操作模块更新所述写指针指向所述缓存装置的下一个相邻存储单元。
在本发明的另一实施例中,所述读操作模块,还用于当所述校验处理模块对所述报文的头部信息校验成功时,根据所述报文的头部信息中的报文长度获取所述报文的数据字段信息;对所述报文的数据字段信息进行解扰,获得所述报文的数据信息,通知所述发送模块;
所述发送模块,还用于根据所述读操作模块的通知,转发所述报文的头部信息和所述报文的数据信息。
在本发明的另一实施例中,所述读操作模块,还用于当所述校验处理模块对所述报文的头部信息校验失败时,从所述缓存装置中更新后的所述读指针当前指向的存储单元开始依次获取与报文的头部信息和HEC字段信息长度相同的存储单元的内容,通知所述校验处理模块使用所述预定校验规则对与报文的头部信息长度相同的存储单元的内容作为报文的头部信息进行校验。
本发明实施例提供的一种报文的存储和转发方法及装置,通过接收到待存储的报文后,获取报文的头部信息和数据信息;使用预定校验规则对报文的头部信息进行运算,生成HEC字段信息;对报文的数据信息进行加扰,生成扰码后的数据字段信息;将报文的头部信息、生成的HEC字段信息和扰码后的数据字段信息依次写入写指针当前指向的存储单元作为起始地址的缓存装置中,并更新写指针指向缓存装置的下一个相邻空闲存储单元。在现有技术的缓存装置中,采用将BD表项和BD表项对应的报文内容连续存储,当缓存装置中的某一个BD表项出错(其中BD表项出错表示报文的头部信息出现错误)时,导致转发设备无法获取报文的长度信息,导致转发设备无法正确的获取出错BD表项对应的报文的数据信息,那么也无法找到下一BD表项的正确位置,从而使得无法获取该出错的BD表项后面的所有报文,从而导致转发报文的可靠性较低,与现有技术不同的是,本发明实施例可以通过读指针搜索报文的头部信息,并且对搜索到的报文的头部信息进行校验,使得对报文的头部信息校验成功时直接转发该报文;对报文的头部信息校验失败时,转发设备自动以写入报文方向获取下一报文的头部信息,然后进行校验操作,直到获取校验成功的下一报文,然后执行转发操作,从而本发明实施例实现了转发设备在检测到出错的报文的头部信息之后,能够保证出错的信息后面的报文均能够正常转发,提高了转发报文的可靠性。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1所示,本发明实施例提供一种报文的存储方法,该方法的执行主体为转发设备,具体如下:
101,接收到待存储的报文后,获取报文的头部信息和数据信息。
102,使用预定校验规则对报文的头部信息进行运算,生成头部差错控制(Head Error Control,HEC)字段信息;对报文的数据信息进行加扰,生成扰码后的数据字段信息。
本步骤中的预定校验规则具体为错误修正码(Error Correct Code,ECC)的校验方法或者循环冗余校验码(Cyclic Redundancy Check,CRC)的校验方法等。为了方便描述,本实施例中以预定校验规则为ECC的校验方法为例进行说明。
转发设备使用ECC的校验方法对该报文的头部信息进行处理,具体为:使用汉明(Hamming)码的方法对头部信息进行分割,如1/2、1/4、1/8…直到达到其精度为单bit为止,每次分割后的数据分别进行偶效验和奇效验,都会得到1bit的ECCe(偶效验)和ECCo(奇效验),最后把这些效验位组合在一起,从而生成HEC字段信息。其中,HEC字段信息用于存储报文的头部信息,以便转发设备在读取该报文时,将HEC字段信息作为验证该报文是否正确的依据之一。
为了将报文的数据信息与报文的头部信息加以区分,以及增加报文的数据信息的随机性,转发设备对报文的数据信息进行加扰,生成数据字段信息。
103,将报文的头部信息、生成的HEC字段信息和扰码后的数据字段信息依次写入写指针当前指向的存储单元作为起始地址的缓存装置中,并更新写指针指向缓存装置的下一个相邻空闲存储单元。
转发设备通过ECC的校验方法得到HEC字段信息,以及加扰后的数据字段信息之后,按照先缓存报文的头部信息、再缓存HEC字段信息、后缓存数据字段信息的顺序,将报文的头部信息、HEC字段信息和数据字段信息缓存在缓存装置中。
需要说明的是,转发设备将报文的头部信息以存储单元为单位进行保存;将HEC字段信息以存储单元为单位进行保存;将数据字段以存储单元为单位进行保存;在缓存装置中,按照写入报文方向将数据字段存储在HEC字段信息的后面。其中,写入报文方向可以为顺时针方向或者逆时针方向。一般情况下,HEC字段信息通常占用一个存储单元。当然,根据HEC字段信息的实际大小,和/或存储单元的实际大小,HEC字段信息也可以占用多个存储单元。
在本实施例中,缓存装置为转发设备中用来存储报文的存储区域。其中,缓存装置以存储单元为单位,具体为2n个存储单元。n为缓存装置对应的通道的地址线个数。例如,当一个通道有10根地址线时,该通道对应的缓存装置为210(210=1024)个存储单元。值得说明的是,本实施例不限制存储单元的大小,比如,该存储单元可以为4字节或者8字节等。一个通道对应一个缓存装置,当出现多个通道时,则对应的有多个缓存装置,为了方便叙述,本发明实施例以单通道为例进行描述。
另外需要说明的是,在缓存装置中标记写指针和读指针。其中,写指针为转发设备同步存储报文位置的地址,在本实施例中可以表示为读指针为转发设备将要读取的报文所在位置的地址。
本发明实施例提供的一种报文的存储方法,通过接收到待存储的报文后,获取报文的头部信息和数据信息;使用预定校验规则对报文的头部信息进行运算,生成HEC字段信息;对报文的数据信息进行加扰,生成扰码后的数据字段信息;将报文的头部信息、生成的HEC字段信息和扰码后的数据字段信息依次写入写指针当前指向的存储单元作为起始地址的缓存装置中,并更新写指针指向缓存装置的下一个相邻空闲存储单元。在现有技术的缓存装置中,采用将BD表项和BD表项对应的报文内容连续存储,当缓存装置中的某一个BD表项出错(其中BD表项出错表示报文的头部信息出现错误)时,导致转发设备无法获取报文的长度信息,导致转发设备无法正确的获取出错BD表项对应的报文的数据信息,那么也无法找到下一BD表项的正确位置,从而使得无法获取该出错的BD表项后面的所有报文,从而导致转发报文的可靠性较低,与现有技术不同的是,本发明实施例通过在缓存装置中以报文的头部信息、HEC字段以及数据字段进行存储,可以保证转发设备在读取缓存装置中的报文时,当出现出错的报文的头部信息时,保证出错的信息后面的报文均能够正常转发,从而提高了转发报文的可靠性。另外将报文的头部信息以HEC字段信息的形式进行存储,便于转发设备检验报文的头部信息是否正确,将报文的数据信息进行加扰,可以将报文的头部信息与报文的数据信息进行区分,使得转发设备在查找报文的头部信息时,不会将报文的数据信息误认为报文的头部信息,以及增强了报文的数据信息的随机性。
需要说明的是,本实施例中的缓存装置如图2所示,在缓存装置201中包括报文的头部信息202、HEC字段信息203以及数据字段信息204。从图2中可以看出,该缓存装置201中包括三个报文。每个报文由报文的头部信息202、HEC字段信息203以及数据字段信息204组成。其中,报文的头部信息202可以存放在报文信息字段中。
根据图2所示,转发设备接收三个报文(报文A、报文B以及报文C),并在缓存装置201中以写入报文方向存储这三个报文(报文A、报文B以及报文C),设置报文A、报文B以及报文C均占用6个存储单元,在转发设备接收这三个报文之前,缓存装置201中的写指针为000000,则转发设备在缓存装置201中存储这三个报文之后,写指针更新为010010。可以理解的是,当缓存装置中没有缓存的报文时,该缓存装置的写指针与读指针一致,当转发设备接收到报文之后,将接收到的报文存储在缓存装置中,并同步更新写指针。
如图3所示,本发明实施例提供一种报文的转发方法,该方法的执行主体为转发设备,具体如下:
301,从缓存装置的读指针当前指向的存储单元开始依次读取报文的头部信息以及对应的HEC字段信息。
转发设备在获取缓存装置的报文的头部信息之前,首先判断缓存装置中的写指针与读指针是否一致,当写指针与读指针不一致时,从缓存装置中读指针指向的位置处查找报文的头部信息,然后获取该报文的头部信息。
302,使用预定校验规则对报文的头部信息进行校验。
本实施例中的预定校验规则以图1中所述的ECC的校验方法为例进行说明。
303,当对报文的头部信息校验成功时,转发报文;并更新写指针指向缓存装置的用于存储下一个报文的相邻存储单元。
具体的,在转发设备对报文的头部信息校验成功之后,根据报文的头部信息中的报文长度获取报文的数据字段信息;对报文的数据字段信息进行解扰,获得报文的数据信息。转发设备转发的报文包括报文的头部信息和报文的数据信息。
进一步的,在转发设备转发报文之后,根据报文所占存储单元的个数,更新读指针。
可以理解的是,报文的头部信息、报文的HEC字段信息以及报文的数据字段信息均以存储单元为单位存储在缓存装置中。例如,报文的头部信息占用一个存储单元,报文的HEC字段信息占用一个存储单元,报文的数据字段信息占用四个存储单元,则报文共占用六个存储单元。设置在转发设备读取报文之前的读指针为010000,则当转发设备读取报文之后,读指针更新为010110。
本发明实施例提供的一种报文的转发方法,通过从缓存装置的读指针当前指向的存储单元开始依次读取报文的头部信息以及对应的头部差错控制HEC字段信息;使用预定校验规则对报文的头部信息进行校验;当对报文的头部信息校验成功时,转发报文;并更新写指针指向缓存装置的用于存储下一个报文的相邻存储单元。在现有技术的缓存装置中,采用将BD表项和BD表项对应的报文内容连续存储,当缓存装置中的某一个BD表项出错(其中BD表项出错表示报文的头部信息出现错误)时,导致转发设备无法获取报文的长度信息,导致转发设备无法正确的获取出错BD表项对应的报文的数据信息,那么也无法找到下一BD表项的正确位置,从而使得无法获取该出错的BD表项后面的所有报文,从而导致转发报文的可靠性较低,与现有技术不同的是,本发明实施例可以通过读指针搜索报文的头部信息,并且对搜索到的报文的头部信息进行校验,使得对报文的头部信息校验成功时直接转发该报文,从而提高了转发报文的可靠性。
通过图3中步骤302的描述:“使用预定校验规则对报文的头部信息进行校验。”具体包括:使用预定校验规则对报文的头部信息进行运算,获得运算结果;将运算结果与报文的头部信息对应的头部差错控制HEC字段信息进行比对;当运算结果与HEC字段信息一致时,表示对报文的头部信息校验成功;当运算结果与HEC字段信息不一致时,表示对报文的头部信息校验失败。
具体的如图4所示,如下所示:
401,转发设备使用预定校验规则对报文的头部信息进行运算,获得运算结果。
本步骤中,转发设备使用预定校验规则对报文的头部信息进行运算的方法,可参考图1中步骤102中转发设备生成HEC字段信息的方法,在此不一一赘述。
402,转发设备将运算结果与报文的头部信息对应的HEC字段信息的内容进行比对。
由于缓存装置中存储的HEC字段信息是采用预定校验规则(ECC的校验方法)生成的,以及运算结果也是由预定校验规则对报文的头部信息进行运算生成的,所以当运算结果与HEC字段信息的内容一致时,表示报文的头部信息正确,即对报文的头部信息校验成功。则转发设备继续执行步骤403。
当运算结果与HEC字段信息的内容不一致时,表示报文的头部信息错误,即对报文的头部信息校验失败。则转发设备继续执行步骤404。
403,转发设备转发报文,并更新读指针。
具体的,当转发设备对报文的头部信息校验成功时,根据报文的头部信息获取报文的数据字段;对报文的数据字段中的内容进行解扰,获得报文的数据信息;然后转发报文,报文包括报文的头部信息和报文的数据信息。
404,转发设备以写入报文方向获取下一存储单元的内容,直至获取校验成功的报文,并进行转发。
当对报文的头部信息校验失败时,更新读指针指向缓存装置的下一个相邻存储单元(存储单元A),从更新后的读指针当前指向的存储单元开始依次获取与报文的头部信息和HEC字段信息长度相同的存储单元的内容,使用预定校验规则对与报文的头部信息长度相同的存储单元的内容作为报文的头部信息进行校验。需要说明的是,由于转发模块不清楚存储单元的那一部分是报文头部信息、HEC字段信息和数据信息,所以按照头部信息以及HEC字段信息所占用的存储单元的个数,去读取内容并按照预定校验规则对报文的头部信息进行运算,当运算结果与HEC字段信息的内容一致时,表示报文的头部信息正确,即对报文的头部信息校验成功。那么就可以根据报文头部信息中的报文长度信息继续读取缓存装置中的数据字段信息并进行转发;如果校验失败,则说明该读取的内容并非报文头部信息和HEC字段信息,或者说报文出错;这样继续读取按照头部信息以及HEC字段信息所占用的存储单元的个数,去读取内容缓存单元中的内容并进行校验。直到转发设备获取校验成功的报文,并进行转发。
值得说明的是,转发设备从缓存装置中删除校验失败的报文。
本发明实施例可以通过读指针当前指向的存储单元获取报文的头部信息,并且通过采用HEC字段信息来对获取的报文的头部信息进行校验,使得对报文的头部信息校验成功时直接转发该报文;对报文的头部信息校验失败时,转发设备自动以写入报文方向获取下一报文的头部信息,然后进行校验操作,直到获取校验成功的下一报文,然后执行转发操作,从而实现了转发设备在检测到出错的报文的头部信息之后,能够保证出错的信息后面的报文均能够正常转发,提高了转发报文的可靠性。
实施例2
如图5所示,本发明实施例提供一种报文的存储装置50,该装置50包括:写操作模块501,校验处理模块502。具体的,该装置50可以为转发设备(如路由器或者交换机等)。
写操作模块501,用于接收到待存储的报文后,获取报文的头部信息和数据信息;
校验处理模块502,用于使用预定校验规则对报文的头部信息进行处理,生成头部差错控制HEC字段信息,对报文的数据信息进行加扰,获得数据字段信息;
写操作模块501,还用于将报文的头部信息、生成的HEC字段信息和扰码后的数据字段信息依次写入写指针当前指向的存储单元作为起始地址的缓存装置中,并更新写指针指向缓存装置的下一个相邻空闲存储单元。
具体的,写操作模块501按照先缓存报文的头部信息、再缓存HEC字段信息、后缓存数据字段信息的顺序,将报文的头部信息、HEC字段信息和数据字段信息存储在缓存装置中。
需要说明的是,图5所示装置50中,其各个模块的具体实施过程以及各个模块之间的信息交互等内容,由于与本发明方法实施例基于同一发明构思,可以参见方法实施例,在此不一一赘述。
本发明实施例通过在缓存装置中以报文的头部信息、HEC字段信息以及数据字段信息进行存储,可以保证转发设备在读取缓存装置中的报文时,删除仅出错的信息,而保证出错的信息后面的报文均能够正常转发,从而提高了转发报文的可靠性。另外将报文的头部信息以HEC字段信息的形式进行存储,便于转发设备检验报文的头部信息是否正确,将报文的数据信息进行加扰,可以将报文的头部信息与报文的数据信息进行区分,且增强了报文的数据信息的随机性。
如图6所示,本发明实施例提供一种报文的转发装置60,该装置60包括:读操作模块601,校验处理模块602,发送模块603。具体的,该装置60可以为转发设备(如路由器或者交换机等)。
读操作模块601,用于控制读指针,从缓存装置的读指针当前指向的存储单元开始依次读取报文的头部信息以及对应的头部差错控制HEC字段信息;并在完成报文转发后,更新写指针指向缓存装置的用于存储下一个报文的相邻存储单元。
校验处理模块602,用于使用预定校验规则对报文的头部信息进行校验。
发送模块603,用于当校验处理模块602对报文的头部信息校验成功时,转发报文。
进一步的,如图7所示,本发明实施例还可以提供另一种报文的转发装置70。其中,该转发装置70中的校验处理模块602,包括:运算单元6021,比较处理单元6022。
运算单元6021,用于使用预定校验规则对报文的头部信息进行运算,获得运算结果。
比较处理单元6022,用于将运算单元6021获得的运算结果与报文的头部信息对应的HEC字段信息进行比对;当运算结果与HEC字段信息一致时,表示对报文的头部信息校验成功,并通知发送模块603;当运算结果与HEC字段信息不一致时,表示对第一报文的头部信息校验失败,并通知读操作模块601更新写指针指向缓存装置的下一个相邻存储单元。
进一步的,当校验处理模块602对报文的头部信息校验成功时,读操作模块601根据报文的头部信息中的报文长度获取报文的数据字段信息;对报文的数据字段信息进行解扰,获得报文的数据信息,通知发送模块603。根据读操作模块601的通知,发送模块603转发报文的头部信息和报文的数据信息。
进一步的,当校验处理模块602对报文的头部信息校验失败时,读操作模块601从缓存装置中更新后的读指针当前指向的存储单元开始依次获取与报文的头部信息和HEC字段信息长度相同的存储单元的内容,通知校验处理模块602使用预定校验规则对与报文的头部信息长度相同的存储单元的内容作为报文的头部信息进行校验。
需要说明的是,图6所示装置60至图7所示装置70中,其各个模块的具体实施过程以及各个模块之间的信息交互等内容,由于与本发明方法实施例基于同一发明构思,可以参见方法实施例,在此不一一赘述。
本发明实施例可以保证出错的信息后面的报文均能够正常转发,从而提高了转发报文的可靠性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。