信息处理装置以及记录有分组模型生成程序的非临时性的计算机可读取的记录介质的制作方法

文档序号:22622713发布日期:2020-10-23 19:29阅读:73来源:国知局
信息处理装置以及记录有分组模型生成程序的非临时性的计算机可读取的记录介质的制作方法

本发明涉及一种能够选择性地执行正常模式(normalmode)与睡眠模式(sleepmode)的信息处理装置以及记录有分组模型(packetpattern)生成程序的非临时性的计算机可读取的记录介质。



背景技术:

已知有一种能够选择性地执行正常模式与睡眠模式的信息处理装置。



技术实现要素:

[发明所要解决的问题]

从节能的观点考虑,期望信息处理装置适当地转移到睡眠模式且适当地从睡眠模式返回。

[解决问题的技术手段]

本发明的一实施方式的信息处理装置,具备:子控制器;主控制器,在转移到睡眠模式以及从所述睡眠模式返回时向所述子控制器通知;以及通信接口,能够与连接到网络的外部设备通信;所述主控制器在检测出应转移到所述睡眠模式的触发时,生成作为分别指定所有使用中的tcp(transmissioncontrolprotocol;传输控制协议)端口的分组模型的按端口分的tcp分组模型、与作为分别指定所有使用中的udp(userdatagramprotocol;用户数据报协议)端口的分组模型的按端口分的udp分组模型;所述主控制器在判断所述按端口分的udp分组模型以及所述按端口分的tcp分组模型的总数超过上限值时,删除所有所述按端口分的tcp分组模型,针对每个不同的tcp的协议,生成作为未指定tcp端口的一个分组模型的未指定端口的tcp分组模型,将所述按端口分的udp分组模型以及所述未指定端口的tcp分组模型供给到所述子控制器并转移到所述睡眠模式;所述子控制器在所述睡眠模式中,判断经由所述通信接口从所述外部设备接收到的分组(packet)的分组模型是否与所述按端口分的udp分组模型以及所述未指定端口的tcp分组模型中的任一个匹配(match),在判断所述分组模型不匹配时废除所接收的所述分组,在判断所述分组模型匹配时,向所述主控制器请求从所述睡眠模式返回并向所述主控制器传送所述分组。

本发明的一实施方式的非临时性的计算机可读取的记录介质中记录的分组模型生成程序使信息处理装置的主控制器进行动作;所述信息处理装置具备:子控制器;所述主控制器,在转移到睡眠模式以及从所述睡眠模式返回时,向所述子控制器通知;以及通信接口,能够与连接于网络的外部设备通信;所述信息处理装置的所述主控制器进行如下动作:在检测出应转移到所述睡眠模式的触发时,生成作为分别指定所有使用中的tcp端口的分组模型的按端口分的tcp分组模型、与作为分别指定所有使用中的udp端口的分组模型的按端口分的udp分组模型;在判断所述按端口分的udp分组模型以及所述按端口分的tcp分组模型的总数超过上限值时,删除所有所述按端口分的tcp分组模型,针对每个不同的tcp的协议,生成作为未指定tcp端口的一个分组模型的未指定端口的tcp分组模型,将所述按端口分的udp分组模型以及所述未指定端口的tcp分组模型供给到所述子控制器并转移到所述睡眠模式。

[发明的效果]

如附图所示,本发明的这些和其他目的、特征及优点将通过下述优选方式的实施方式的详细描述变得更加明显。

附图说明

图1表示本发明的一实施方式的信息处理装置的构成。

图2表示主控制器的第一动作流程。

图3表示主控制器的第二动作流程。

图4示意性地表示tcp/ipv4(transmissioncontrolprotocol/internetprotocolversion4;传输控制协议及互联网协议版本四)端口的按端口分的tcp分组模型。

图5示意性地表示tcp/ipv6(transmissioncontrolprotocol/internetprotocolversion6;传输控制协议及互联网协议版本六)端口的按端口分的tcp分组模型。

图6示意性地表示tcp/ipv4端口的未指定端口的tcp分组模型。

图7示意性地表示tcp/ipv6端口的未指定端口的tcp分组模型。

图8示意性地表示udp/ipv4(userdatagramprotocol/internetprotocolversion4;用户数据报协议及互联网协议版本四)端口的按端口分的udp分组模型。

图9示意性地表示udp/ipv6(userdatagramprotocol/internetprotocolversion6;用户数据报协议及互联网协议版本六)端口的按端口分的udp分组模型。

图10表示子控制器的动作流程。

具体实施方式

以下,参照附图来说明本发明的实施方式。

1.信息处理装置的构成

图1表示本发明的一实施方式的信息处理装置的构成。

信息处理装置10是图像形成装置(mfp(multifunctionperipheral;多功能复合机)等)或个人计算机(包含台式机、笔记本电脑、平板电脑、智能手机、可穿戴设备等各种类型)等。信息处理装置10经由网络n而与外部设备(未图示)收发分组。本实施方式中,信息处理装置10在网络通信中使用的协议是tcp/ipv4、tcp/ipv6、udp/ipv6、udp/ipv6。

信息处理装置10具有彼此由总线(bus)连接的主控制器100、子控制器200、通信接口300以及切换器400。

主控制器100在正常模式时执行各种处理。主控制器100具有主处理器(cpu,centralprocessingunit;中央处理器)101、主rom(readonlymemory;只读存储器)102、主ram(randomaccessmemory;随机访问存储器)103(主存储器)以及专用的硬件电路等。在信息处理装置10为图像形成装置的情况下,主控制器100连接有图像扫描仪(imagescanner)、打印机、图像存储器、显示装置、操作装置、非易失性的存储装置(hdd(harddiskdrive;硬盘驱动器)等)(省略图示以及说明)。主控制器100控制这些硬件(未图示)、通信接口300以及切换器400。

主处理器101将主rom102存储的各种程序(包含分组模型生成程序120)加载到主ram103中并执行。主处理器101在检测到特定的触发(一定时间内没有用户的操作或经由网络接收的信息等)时,从正常模式转移到睡眠模式。正常模式是主控制器100的电源(未图示)导通的状态,睡眠模式是主控制器100的电源断开的状态。主处理器101在从正常模式转移到睡眠模式时及从睡眠模式返回到正常模式时,向子控制器200的子处理器201及切换器400通知。

主rom102存储分组模型生成程序120。

子控制器200如果在睡眠模式时从外部设备经由网络n接收到分组时,则判断是否从睡眠模式返回。子控制器200具有子处理器(cpu)201、子rom202、子ram203(子存储器)以及专用的硬件电路等。子控制器200的各器件(device)是比主控制器100的各器件更低(poor)的规格,以低功耗动作。

子ram203(子存储器)存储分组模型列表130。例如,主处理器101在从正常模式转移到睡眠模式的时机,生成使用中的端口的分组模型列表130并写入到子ram203中。

子处理器201从主处理器101接收已从正常模式转移到睡眠模式的通知。睡眠模式时,子处理器201将子rom202存储的模式返回判断程序220加载到子ram203中并执行。子处理器201在所接收的分组的分组模型与分组模型列表130匹配的情况下,向主处理器101请求从睡眠模式返回到正常模式,并传送分组。另一方面,子处理器201在所接收到的分组的分组模型不与分组模型列表130匹配的情况下,废除所接收的分组。

子rom202存储模式返回判断程序220。

2.主控制器的动作流程

图2表示主控制器的第一动作流程。

主控制器100的主处理器101检测应转移到睡眠模式的触发(一定时间内没有用户的操作或经由网络接收的信息等)(步骤s101中为是)。

于是,主处理器101通过将主rom102存储的分组模型生成程序120加载到主ram103中并执行而生成分组模型列表130(详细情况将于下文叙述)。主处理器101将所生成的分组模型列表130供给到子控制器200。具体来说,主处理器101将分组模型列表130写入到子ram203中(步骤s102)。

主处理器101将从正常模式转移到睡眠模式这一情况通知给子控制器200的子处理器201并转移到睡眠模式(断开主控制器100的电源)(步骤s103)。

3.分组模型的生成方法

图3表示主控制器的第二动作流程。

说明主控制器100的主处理器101生成分组模型列表130的方法(步骤s102)。

首先,主处理器101设立“all_tcp_pattern_is_created=false(创建所有tcp模型=错误)”的旗标(步骤s111)。该旗标是指主处理器101未生成任何分别指定使用中的tcp端口的分组模型(按端口分的tcp分组模型)。

主处理器101生成所有使用中的端口(包含tcp/ipv4端口、tcp/ipv6端口、udp/ipv4端口、udp/ipv6端口)的列表(使用中端口列表110)。主处理器101将所生成的使用中端口列表110写入到主ram103中(步骤s112)。

主处理器101开始生成分别指定使用中端口列表110中包含的所有使用中的端口的分组模型(步骤s113)。

主处理器101判断使用中端口列表110是否包含tcp端口(tcp/ipv4端口、tcp/ipv6端口)(步骤s115)。

主处理器101判断使用中端口列表110包含tcp端口(tcp/ipv4端口、tcp/ipv6端口)(步骤s115中为是)。

主处理器101逐个地(步骤s116中为否)生成使用中端口列表110中包含的指定使用中的tcp端口的分组模型(按端口分的tcp分组模型)。主处理器101通过将所生成的分组模型列表化而生成分组模型列表130。主处理器101将所生成的分组模型列表130写入到主ram103中(步骤s117)。将说明按端口分的tcp分组模型的具体例。

图4示意性地表示tcp/ipv4端口的按端口分的tcp分组模型。

在tcp/ipv4端口的按端口分的tcp分组模型中,对图示的分组结构中包含的“类型”字段(field)的掩码(mask)(要匹配的位置)“0xffff”设定“0x0800”作为值(要匹配的值)。对“协议”字段的掩码(要匹配的位置)“0xff”设定“0x06”作为值(要匹配的值)。对“目的地端口”字段的掩码(要匹配的位置)“0xffff”设定“使用中端口编号”(对每个按端口分的tcp分组模型而言不同的值)作为值(要匹配的值)。

图5示意性地表示tcp/ipv6端口的按端口分的tcp分组模型。

在tcp/ipv6端口的按端口分的tcp分组模型中,对图示的分组结构中包含的“类型”字段的掩码(要匹配的位置)“0xffff”设定“0x86dd”作为值(要匹配的值)。对“协议”字段的掩码(要匹配的位置)“0xff”设定“0x06”作为值(要匹配的值)。对“目的地端口”字段的掩码(要匹配的位置)“0xffff”设定“使用中端口编号”(对每个按端口分的tcp分组模型而言不同的值)作为值(要匹配的值)。

主处理器101判断分组模型列表130中包含的按端口分的tcp分组模型的数量是否超过上限值(步骤s118)。“上限值”例如依存于子ram203的性能等来设定(分组模型列表130稍后被写入到子ram203中)。例如,上限值=64。

主处理器101在判断写入到主ram103的分组模型列表130中包含的按端口分的tcp分组模型的数量未超过上限值时(步骤s118中为否),生成使用中端口列表110中包含的指定使用中的tcp端口的按端口分的tcp分组模型,并继续追加到分组模型列表130中(步骤s116中为否)。

主处理器101在生成使用中端口列表110中包含的指定所有使用中的tcp端口的按端口分的tcp分组模型时,设立“all_tcp_pattern_is_created=true(创建所有tcp模型=正确?)”的旗标(步骤s116中为是)。

另一方面,主处理器101判断写入到主ram103的分组模型列表130中包含的按端口分的tcp分组模型的数量超过了上限值(步骤s118中为是)。这是指:当假定生成使用中端口列表110中包含的指定所有使用中的端口的按端口分的udp分组模型(后述)以及按端口分的tcp分组模型时,所述分组模型的总数超过上限值。

该情况下,主处理器101从写入到主ram103的分组模型列表130中删除所生成的所有按端口分的tcp分组模型(tcp/ipv4、tcp/ipv6)(步骤s119)。结果,分组模型列表130中包含的按端口分的tcp分组模型的数量为零。

主处理器101针对每个不同的tcp的协议(tcp/ipv4、tcp/ipv6),生成未指定tcp端口的一个分组模型(未指定端口的tcp分组模型)。具体来说,主处理器101生成总计为两个的未指定端口的tcp分组模型,这两个未指定端口的tcp为tcp/ipv4协议的一个未指定端口的tcp分组模型、以及tcp/ipv6协议的一个未指定端口的tcp分组模型。主处理器101将所生成的两个未指定端口的tcp分组模型写入到分组模型列表130中(步骤s120)。由此,主处理器101完成tcp分组模型的生成,设立“all_tcp_pattern_is_created=true(创建所有tcp模型=正确?)”的旗标(步骤s121)。将说明未指定端口的tcp分组模型的具体例。

图6示意性地表示tcp/ipv4端口的未指定端口的tcp分组模型。

与tcp/ipv4端口的按端口分的tcp分组模型(图4)不同之处在于:未指定端口的tcp分组模型(图6)不具有“目的地端口”字段的设定值(不是要匹配的对象)。

图7示意性地表示tcp/ipv6端口的未指定端口的tcp分组模型。

与tcp/ipv6端口的按端口分的tcp分组模型(图5)不同之处在于:未指定端口的tcp分组模型(图7)不具有“目的地端口”字段的设定值(不是要匹配的对象)。

如上所述,原则上,主处理器101生成使用中端口列表110中包含的指定所有使用中的tcp端口的按端口分的tcp分组模型,并写入到分组模型列表130中(步骤s116中为是)。例外的是,主处理器101在按端口分的tcp分组模型的数量超过了上限值的情况下(步骤s118中为是),生成两个未指定端口的tcp分组模型,并写入到分组模型列表130中(步骤s121)。

然后,主处理器101开始生成udp分组模型(步骤s115中为否)。

主处理器101逐个地生成使用中端口列表110中包含的指定使用中的udp端口(udp/ipv4端口、udp/ipv6端口)的分组模型(按端口分的udp分组模型),并追加到分组模型列表130中(步骤s122)。将说明按端口分的udp分组模型的具体例。

图8示意性地表示udp/ipv4端口的按端口分的udp分组模型。

在udp/ipv4端口的按端口分的udp分组模型中,对图示的分组结构中包含的“类型”字段的掩码(要匹配的位置)“0xffff”设定“0x0800”作为值(要匹配的值)。对“协议”字段的掩码(要匹配的位置)“0xff”设定“0x11”作为值(要匹配的值)。对“目的地端口”字段的掩码(要匹配的位置)“0xffff”设定“使用中端口编号”(对每个按端口分的udp分组模型而言不同的值)作为值(要匹配的值)。

图9示意性地表示udp/ipv6端口的按端口分的udp分组模型。

在udp/ipv6端口的按端口分的udp分组模型中,对图示的分组结构中包含的“类型”字段的掩码(要匹配的位置)“0xffff”设定“0x86dd”作为值(要匹配的值)。对“协议”字段的掩码(要匹配的位置)“0xff”设定“0x11”作为值(要匹配的值)。对“目的地端口”字段的掩码(要匹配的位置)“0xffff”设定“使用中端口编号”(对每个按端口分的udp分组模型而言不同的值)作为值(要匹配的值)。

主处理器101判断分组模型列表130中包含的tcp分组模型以及按端口分的udp分组模型的总数是否超过了上限值(例如,上限值=64)(步骤s123)。具体来说,主处理器101判断分组模型列表130中包含的按端口分的tcp分组模型(步骤s116中为是)以及按端口分的udp分组模型的总数是否超过了上限值。或者,主处理器101判断分组模型列表130中包含的未指定端口的tcp分组模型(步骤s121)以及按端口分的udp分组模型的总数是否超过了上限值。

主处理器101在判断分组模型列表130中包含的tcp分组模型(按端口分的tcp分组模型或者未指定端口的tcp分组模型)以及按端口分的udp分组模型的总数未超过上限值时(步骤s123中为否),生成使用中端口列表110中包含的指定使用中的udp端口的分组模型(按端口分的udp分组模型),并继续追加到分组模型列表130中(步骤s115中为否)。

最终,主处理器101生成使用中端口列表110中包含的指定所有使用中的udp端口的按端口分的udp分组模型(步骤s114中为是)。

于是,主处理器101从主ram103中删除使用中端口列表110(步骤s125)。主处理器101将写入到主ram103的分组模型列表130决定为应适用于系统的分组模型列表130(步骤s126)。

另一方面,主处理器101判断分组模型列表130中包含的tcp分组模型(按端口分的tcp分组模型或者未指定端口的tcp分组模型)以及按端口分的udp分组模型的总数超过了上限值(步骤s123中为是)。

于是,主处理器101判断写入到主ram103的分组模型列表130中包含的tcp分组模型是多个按端口分的tcp分组模型还是两个未指定端口的tcp分组模型(步骤s124)。

主处理器101判断写入到主ram103的分组模型列表130中包含的tcp分组模型是多个按端口分的tcp分组模型(步骤s116中为是)(步骤s124中为是)。

于是,主处理器101从写入到主ram103的分组模型列表130中删除所生成的所有按端口分的tcp分组模型(步骤s119)。主处理器101生成两个未指定端口的tcp分组模型并写入到分组模型列表130中(步骤s120),设立“all_tcp_pattern_is_created=true(创建所有tcp模型=正确?)”的旗标(步骤s121)。

该情况下,由于分组模型列表130中包含的分组模型的数量减少,因此主处理器101能够生成使用中端口列表110中包含的指定使用中的udp端口的按端口分的udp分组模型,并继续追加到分组模型列表130中(步骤s123中为否)。

结果,主处理器101生成使用中端口列表110中包含的指定所有使用中的udp端口的按端口分的udp分组模型(步骤s114中为是)。该情况下,分组模型列表130中包含的未指定端口的tcp分组模型以及按端口分的udp分组模型的总数未超过上限值(步骤s123中为否)。

主处理器101从主ram103中删除使用中端口列表110(步骤s125)。主处理器101将写入到主ram103的分组模型列表130决定为应适用于系统的分组模型列表130(步骤s126)。

另一方面,主处理器101判断分组模型列表130(总数超过上限值)中包含的tcp分组模型是两个未指定端口的tcp分组模型(步骤s121)(步骤s124中为否)。

该情况下,主处理器101最终生成包含一部分的按端口分的udp分组模型、以及所有(两个)未指定端口的tcp分组模型的分组模型列表130(步骤s127)。此时,分组模型列表130中包含的一部分的按端口分的udp分组模型与所有(两个)未指定端口的tcp分组模型的总数为上限值。

主处理器101从主ram103中删除使用中端口列表110(步骤s125)。主处理器101将写入到主ram103的分组模型列表130决定为应适用于系统的分组模型列表130(步骤s126)。

4.子控制器的动作流程

图10表示子控制器的动作流程。

睡眠模式时,子控制器200的子处理器201经由通信接口300从外部设备(未图示)接收分组(步骤s201中为是)。

子处理器201将所接收到的分组的分组模型与写入到子ram203的分组模型列表130中包含的tcp分组模型(按端口分的tcp分组模型或者未指定端口的tcp分组模型)以及按端口分的udp分组模型匹配(步骤s202)。

子处理器201判断所接收的分组的分组模型与写入到子ram203的分组模型列表130中包含的tcp分组模型(按端口分的tcp分组模型或者未指定端口的tcp分组模型)以及按端口分的udp分组模型中的任一个匹配(步骤s203中为是)。

于是,子处理器201向主处理器101请求从睡眠模式返回到正常模式(唤醒)(步骤s204)。子处理器201在从主处理器101接收到从睡眠模式返回到正常模式的通知时,向主处理器101传送分组(步骤s205)。

另一方面,子处理器201判断所接收的分组的分组模型与写入到子ram203的分组模型列表130中包含的分组模型中的任一个均不匹配(步骤s203中为否)。于是,子处理器201废除所接收的分组(步骤s206)。

5.结论

(1)根据本实施方式,主控制器100的主处理器101在判断按端口分的udp分组模型以及按端口分的tcp分组模型的总数超过上限值时(步骤s118、s123中为是),针对每个不同的tcp的协议,生成作为未指定tcp端口的一个分组模型的未指定端口的tcp分组模型(步骤s120至步骤s121)。主控制器100的主处理器101将按端口分的udp分组模型以及未指定端口的tcp分组模型供给到子控制器200的子处理器201(步骤s102)并转移到睡眠模式(步骤s103)。子控制器200的子处理器201在睡眠模式中接收到的分组与按端口分的udp分组模型匹配或与未指定端口的tcp分组模型匹配(即,所有的tcp分组)的情况下(步骤s203中为是),向主处理器101请求从睡眠模式返回(步骤s204)。

由此,信息处理装置10在睡眠模式中接收到tcp分组的情况下,必须从睡眠模式返回。因tcp/ip是单播(unicast)通信,所以信息处理装置10接收的tcp分组基本上被寻址到信息处理装置10。因此,信息处理装置10需要处理大多数的tcp分组。因此,即使信息处理装置10在接收到tcp分组时总是从睡眠模式返回,也可减少不必要的返回(例如,当接收到寻址到未使用的tcp端口的tcp分组时)的机会。另一方面,由于udp/ip能够进行广播(broadcast)以及多播(multicast)通信,因此信息处理装置10经常接收未寻址到信息处理装置10的udp分组(例如,姓名解析查询等)。因此,假设信息处理装置10在睡眠模式中接收到udp分组时总是从睡眠模式返回,则实际上即使没有必要,也会有以高频率返回或者变得连原本转移到睡眠模式都不能够的担心。与此相对,根据本实施方式,通过创建未指定端口的tcp分组模型而减少分组模型的总数,由此能够抑制子ram203的使用容量并减少不必要的返回的机会。

作为用于减少分组模型的总数的方式,例如,可想到通过在分组模型的数据结构中使用列表结构,来设定大量的分组模型。然而,该方法中,有规格低的子控制器200在匹配列表结构的分组模型时要耗费处理时间的担心。相反地,当为了高速地匹配列表结构的分组模型而提高子控制器200的规格时,有费用增加或节能效果变差的担心。与此相对,根据本实施方式,针对每个不同的tcp的协议,生成作为未指定tcp端口的一个分组模型的未指定端口的tcp分组模型(步骤s120至步骤s121),由此能够减少分组模型的总数。

(2)根据本实施方式,主控制器100的主处理器101在判断按端口分的udp分组模型以及按端口分的tcp分组模型的总数未超过上限值时(步骤s118、s123中为否),将按端口分的udp分组模型以及按端口分的tcp分组模型供给到子控制器200的子处理器201(步骤s102)并转移到睡眠模式(步骤s103)。由此,通过将按端口分的tcp分组模型供给到子控制器200的子处理器201,当信息处理装置10接收到tcp分组时,不必要的返回(例如,接收到寻址到未使用的tcp端口的tcp分组时)的机会将不复存在。由此,根据本实施方式,能够确保按端口分的udp分组模型以及按端口分的tcp分组模型的总数不超过上限值,且抑制子ram203的使用容量并减少不必要的返回的机会。

(3)根据本实施方式,主控制器100的主处理器101在判断按端口分的udp分组模型以及未指定端口的tcp分组模型(步骤s124中为否)的总数超过上限值时(步骤s123中为否),将与所有的未指定端口的tcp分组模型的总数为上限值的一部分的按端口分的udp分组模型与所有的未指定端口的tcp分组模型(步骤s127)供给到子控制器200的子处理器201(步骤s102)并转移到睡眠模式(步骤s103)。由此,信息处理装置10当在睡眠模式中接收到tcp分组时与接收到一部分的udp分组时从睡眠模式返回。由此,能够尽可能地减少信息处理装置10在睡眠模式中接收到udp分组时的不必要的返回的机会。

(4)根据本实施方式,主控制器100的主处理器101创建tcp/ipv4协议的一个未指定端口的tcp分组模型、以及tcp/ipv6协议的一个未指定端口的tcp分组模型(步骤s120)。由此,通过创建未指定端口的tcp分组模型来减少分组模型的总数,能够抑制子ram203的使用容量并减少不必要的返回的机会。

以上说明了本技术的各实施方式及各变形例,但本技术并不限定于所述实施方式,当然能够在不脱离本技术的主旨的范围内加以各种变更。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1