INFORMATION PROCESSING APPARATUS, COMMUNICATION SYSTEM, AND METHOD OF CONTROLLING COMMUNICATION ROUTE

An information processing apparatus connectable to a plurality of networks includes circuitry to determine, when to transmit communication data to a network device connected to the information processing apparatus via at least one of the plurality of networks, a network of a routing destination of the communication data to be transmitted to the network device, the network of the routing destination being a network associated with at least one of a user of a transmission destination of the communication data and a used port number of the communication data, and transmit the communication data to the network determined as the routing destination.

CROSS-REFERENCE TO RELATED APPLICATIONS

This patent application is based on and claims priority pursuant to 35 U.S.C. § 119(a) to Japanese Patent Application No. 2017-054900, filed on Mar. 21, 2017, in the Japan Patent Office, the entire disclosure of which is hereby incorporated by reference herein.

BACKGROUND

Technical Field

The present invention relates to an information processing apparatus, a communication system, a method of controlling a communication route, and a storage medium or carrier means.

Background Art

Conventionally, when a large-scale communication system is to be introduced into organizations such as companies, the large-scale communication system may be configured with a plurality of networks having different security levels and different purposes of use. The communication system can be configured to share one image forming apparatus among a plurality of networks to reduce a management cost of the image forming apparatuses and save an installing space of the image forming apparatuses.

One conventional arts discloses a system including user terminals, a Web server, and a plurality of relay devices connected at a plurality of service paths between the user terminals and the Web server, in which the service paths can be switched by using the relay devices based on an analysis result of a hypertext transfer protocol (HTTP) request.

If, for example, a plurality of networks having the same network address is connected to one single information processing apparatus, there is a possibility that a plurality of network devices having the same internet protocol (IP) address may exist on the plurality of networks connected to the information processing apparatus. In this case, there is a possibility that the information processing apparatus cannot determine to which network device communication data is to be transmitted from the information processing apparatus, or there is a possibility that the information processing apparatus may transmit communication data to an inappropriate network device.

SUMMARY

In one aspect of the present invention, an information processing apparatus connectable to a plurality of networks is devised. The information processing apparatus includes circuitry to determine, when to transmit communication data to a network device connected to the information processing apparatus via at least one of the plurality of networks, a network of a routing destination of the communication data to be transmitted to the network device, the network of the routing destination being a network associated with at least one of a user of a transmission destination of the communication data and a used port number of the communication data, and transmit the communication data to the network determined as the routing destination.

In another aspect of the present invention, a communication system provided with an information processing apparatus connectable to a plurality of networks is devised. The communication system includes circuitry to determine, when to transmit communication data to a network device from the information processing apparatus via at least one of the plurality of networks, a network of a routing destination of the communication data to be transmitted to the network device, the network of the routing destination being a network associated with at least one of a user of a transmission destination of the communication data and a used port number of the communication data, and transmit the communication data to the network determined as the routing destination.

In another aspect of the present invention, a method of controlling a communication route for an information processing apparatus connectable to a plurality of networks is devised. The method includes determining, when to transmit communication data to a network device connected to the information processing apparatus via at least one of the plurality of networks, a network of a routing destination of the communication data to be transmitted to the network device, the network of the routing destination being a network associated with at least one of a user of a transmission destination of the communication data and a used port number of the communication data, and transmitting the communication data to the network determined as the routing destination.

DETAILED DESCRIPTION

Hereinafter, a description is given of an embodiment of the present invention with reference to the drawings.

FIG. 1illustrates an example of a configuration of a communication system10according to an embodiment of the present invention. As illustrated inFIG. 1, the communication system10includes, for example, a plurality of network systems Net_A, Net_B and Net_C, and a multifunction peripheral (MFP)100.

The MFP100is an example of an information processing apparatus in this description. The MFP100has a plurality of image processing functions such as a copy function, a scanning function, a facsimile function, and a printer function. As illustrated inFIG. 1, the MFP100is connected to each of network systems Net_A, Net_B and Net_C wirelessly and/or by wire. Therefore, the MFP100can transmit and receive various types of communication data to and from one or more network devices disposed in each of the network systems Net_A, Net_B and Net_C.

Further, as illustrated inFIG. 1, the network system Net_A includes, for example, networks Net_A0and Net_A1. The networks Net_A0and Net_A1are connected to each other via a router R_A.

Further, as illustrated inFIG. 1, the network system Net_B includes, for example, networks Net_B0and Net_B1. The networks Net_B0and Net_B1are connected to each other via a router R_B.

Further, as illustrated inFIG. 1, the network system Net_C includes, for example, networks Net_C0and Net_C1. The networks Net_C0and Net_C1are connected to each other via a router R_C. Further, the networks Net_C0and Net_C1are connected to an Internet Net_I via the router R_C.

In the above described configuration, each of the network systems Net_A, Net_B and Net_C is separated from other network systems. Therefore, each of the network systems Net_A, Net_B and Net_C cannot perform the internet protocol (IP) communication with other network systems.

InFIG. 1, one or more network devices denoted by “PC_” are personal computers. InFIG. 1, one or more network devices denoted by “SV_” are servers. InFIG. 1, one or more network devices denoted by “R_” are routers.

FIG. 2illustrates an example of network addresses of each of the networks in the communication system10. As illustrated inFIG. 2, each network in the communication system10is set with a specific network address, which is not the same with other network addresses of other networks.

IP Address of Device:

FIG. 3illustrates an example of internet protocol (IP) addresses of devices disposed in the communication system10. As illustrated inFIG. 3, an IP address and a default gateway are set for each device disposed in the communication system10. In this configuration, the MFP100is assigned with IP addresses respectively corresponding to the networks connected to the MFP100. Further, each of the routers R_A, R_B and R_C is assigned with IP addresses respectively corresponding to the networks connected to each of the routers R_A, R_B and R_C.

Hardware Configuration of MFP:

FIG. 4illustrates an example of a hardware block diagram of the MFP100. As illustrated inFIG. 4, the MFP100includes, for example, a central processing unit (CPU)201, read only memory (ROM)202, random access memory (RAM)203, an auxiliary storage device204, an input device205, a display206and a communication interface (I/F)207. These hardware resources are connected to each other via a bus.

The CPU201executes various programs stored in the ROM202or the auxiliary storage device204. The ROM202is a nonvolatile memory. For example, the ROM202stores various programs to be executed by the CPU201, and data required for executing the various programs by the CPU201. The RAM203is a main storage device, such as dynamic random access memory (DRAM) and static random access memory (SRAM). For example, the RAM203functions as a working area to be used by the CPU201when the CPU201executes the various programs.

The auxiliary storage device204is a non-volatile memory. For example, the auxiliary storage device204stores various programs to be executed by the CPU201, and data required for executing the various programs by the CPU201. The input device205is used when an operator (e.g., network administrator) performs various kinds of settings (e.g., network settings) to the MFP100. For example, the input device205may be implemented by a keyboard, a mouse, and a touch panel. The display206displays various display screens (e.g., network setting screen), and may be implemented, for example, by a liquid crystal display (LCD). The communication I/F207is an interface to connect the MFP100with each of the network systems Net_A, Net_B and Net_C to perform communication with other information processing apparatuses.

Functional Configuration of MFP:

FIG. 5illustrates an example of a functional block diagram of the MFP100. As illustrated inFIG. 5, the MFP100includes, for example, a plurality of transmission/reception units101,102and103. The MFP100further includes, for example, a network controller110, a setting storage unit120, and an application unit130.

The transmission/reception unit101connects the MFP100to the network Net_A0, and transmits and receives communication data between the MFP100and each device disposed in the network system Net_A. The transmission/reception unit102connects the MFP100to the network Net_B0, and transmits and receives communication data between the MFP100and each device disposed in the network system Net_B. The transmission/reception unit103connects the MFP100to the network Net_C0, and transmits and receives communication data between the MFP100and each device disposed in the network system Net_C. Further, the MFP100and each of the networks Net_A0, Net_B0and Net_C0can be connected with each other using various types of connections such as wired connection, a wireless local area network (LAN) connection, a dialup connection, and so forth.

The network controller110controls transmission and reception of communication data with respect to each of the networks, in which the communication data is to be used by the application unit130. For example, when at least any one of the transmission/reception units101,102and103receives communication data transmitted from an external network device, the network controller110transmits the received communication data to the application unit130. Further, when the network controller110receives a transmission request of communication data from the application unit130, the network controller110transmits the communication data to the external network device via at least any one of the transmission/reception units101,102and103.

As illustrated inFIG. 5, the network controller110includes, for example, a routing destination determiner111and a transmission controller112related to transmission of the communication data.

When the routing destination determiner111transmits communication data to an external network device, the routing destination determiner111determines a routing destination of the communication data such as a network and a next hop. Specifically, the routing destination determiner111determines the routing destination of the communication data based on a connection table121, an application routing setting table122, a transport routing setting table123, a network identifier routing setting table124and a network routing setting table125, which are stored in the setting storage unit120.

For example, the routing destination determiner111determines a network and a next hop, associated with a user of the transmission destination of the communication data in advance, as the network and the next hop of the routing destination of the communication data based on the application routing setting table122. Further, for example, the routing destination determiner111determines a network and a next hop, associated with a used port number of the communication data in advance, as the network and the next hop of the routing destination of the communication data based on the transport routing setting table123.

The transmission controller112transmits the communication data to the network and the next hop determined as the routing destination by the routing destination determiner111.

For example, if the network of the routing destination determined by the routing destination determiner111is the network Net_A0or the network Net_A1, the transmission controller112transmits the communication data to the network Net_A0or the network Net_A1via the transmission/reception unit101.

Further, for example, if the network of the routing destination determined by the routing destination determiner111is the network Net_B0or the network Net_B1, the transmission controller112transmits the communication data to the network Net_B0or the network Net_B1via the transmission/reception unit102.

Further, for example, if the network of the routing destination determined by the routing destination determiner111is the network Net_C0or the network Net_C1, the transmission controller112transmits the communication data to the network Net_C0or the network Net_C1via the transmission/reception unit103.

As illustrated inFIG. 5, the setting storage unit120stores various tables to be used by the network controller110. Specifically, the setting storage unit120stores, for example, the connection table121, the application routing setting table122, the transport routing setting table123, the network identifier routing setting table124, and the network routing setting table125. The details of each table is to be described later with reference toFIGS. 6 to 11.

Further, when the network controller110performs a specific communication with an external network device, the network controller110stores communication connection information related to the specific communication connection in the connection table121stored in the setting storage unit120. The communication connection information includes, for example, “IP address/port of counterpart device (remote IP address/port),” “local IP address/port of one device (local IP address/port),” “protocol,” “interface,” “media access control (MAC) address of next hop (Nexthop MAC),” “communication state (state)” and “life time.” In this configuration, the one device is, for example, the MFP100including the network controller110, which performs the specific communication with the external network device used as the counterpart device.

The “interface” is set with which interface (e.g., transmission/reception unit) is used for the communication connection. For example, in a case of the communication connection by the transmission/reception unit101(i.e., communication connection with a network device on the network system Net_A), “A” is set for the “interface.” In a case of the communication connection by the transmission/reception unit102(i.e., communication connection with a network device on the network system Net_B), “B” is set for the “interface.” In a case of the communication connection by the transmission/reception unit103(i.e., communication connection with a network device on the network system Net_C), “C” is set for the “interface.”

The “life time” is set as a given time period when a communication connection is established. The setting value of the “life time” continuously decreases when no communication is performed while the communication connection is being established. When the setting value in the “life time” becomes zero (0), the communication connection information related to the specific communication connection is deleted from the connection table121. If the “protocol” is “transmission control protocol (TCP),” the “communication state (state)” is set with a state of the TCP. Further, if the “protocol” is “user datagram protocol (UDP),” the “communication state (state)” is set with “CONNECTED” indicating that the connection is being established.

The application unit130executes various applications included in the MFP100, such as a copy application, a scan application, a facsimile application and a printer application. For example, when any one of the transmission/reception units101,102and103receives a print request from an external network device, the application unit130receives the print request from the network controller110, and then executes printing in accordance with the print request. Then, the application unit130transmits response data indicating an execution result of the printing to the external network device, which has transmitted the print request (transmission source of the print request). In this case, the network controller110controls the transmission of the response data. Further, for example, the application unit130executes the scanning in accordance with a user operation on the MFP100. Then, the application unit130transmits the scanned data acquired by the scanning to an external network device designated by the user. In this case, the network controller110controls the transmission of the scanned data.

Each of the above described functions of the MFP100is implemented when the CPU201executes, for example, the program stored in the ROM202or the auxiliary storage device204. The program may be provided to the MFP100by installing the program in the MFP100as a default program, or may be provided from an external apparatus or system to the MFP100. When the program is provided from the external apparatus or system to the MFP100, the program may be provided by an external storage medium such as a universal serial bus (USB) memory device, a memory card, and a compact disc read only memory (CD-ROM), or may be downloaded from a server on a network such as the Internet.

FIG. 6illustrates an example of a connection table121. The connection table121stores communication connection information related to a plurality of communication connection routes. As illustrated inFIG. 6, the connection table121includes, for example, seven communication connection information indicated by the numbers 1 to 7, in which each communication connection information includes, for example, “IP address/port of counterpart device (remote IP address/port),” “local IP address/port of one device (local IP address/port),” “protocol” “interface,” “media access control (MAC) address of next hop (Nexthop MAC),” “communication state (state)” and “life time” as data items For example, each communication connection information is set in the connection table121when the communication connection is established, and each communication connection information is deleted from the connection table121when the communication connection is disconnected or terminated.

Application Routing Setting Table (Each User):

FIG. 7illustrates an example of the application routing setting table122storing information of each user. The application routing setting table122is set with application routing setting information related to the routing destination of the communication data for each user included in one or more address books used by the application unit130. In an example case ofFIG. 7, the application routing setting table122is set with the application routing setting information related to each user indicated by the numbers of 1 to 7, in which each application routing setting information includes, for example, “name,” “group,” “folder,” “interface” and “nexthop” as data items.

In an example case ofFIG. 7, the application routing setting information “1” sets “Satoh” in the “name,” “A” in the “interface,” and “Auto” in the “nexthop.” The “A” indicates the transmission/reception unit101, that is, the network system Net_A. Further, the “Auto” indicates the default gateway (seeFIG. 3) of the transmission/reception unit101. Therefore, the routing destination determiner111can determine the network system Net_A as the network, and the default gateway of the transmission/reception unit101as the next hop, which are used as the routing destination of the communication data with respect to the user “Satoh,” based on the application routing setting information “1”.

In the example case ofFIG. 7, the application routing setting information “2” sets “Tanaka” in the “name,” “A” in the “interface,” and an IP address (172.16.1.100) of the network device PC_B0in the “nexthop.” The network device PC_B0is one of the network devices disposed on the network system Net_B. In this case, the routing destination determiner111can ignore the setting “A” in the “interface” and determine the network device PC_B0as the next hop, which are used as the routing destination of the communication data with respect to the user “Tanaka” based on the application routing setting information “2”.

In the example ofFIG. 7, the application routing setting information “3” sets “Suzuki” in the “name,” “Auto” in the “interface,” and “Auto” in the “nexthop.” In this case, the routing destination determiner111cannot determine the routing destination of the communication data with respect to the user “Tanaka” based on the application routing setting information “3” alone. Therefore, the routing destination determiner111determines the routing destination of the communication data with respect to the user “Suzuki” based on other routing setting.

In the example case ofFIG. 7, the application routing setting information “4” sets “Ota” in the “name,” “Auto” in the “interface,” and “Auto” in the “nexthop.” The application routing setting information “4” also sets a setting value including a network identifier “%2” in the “folder.” In this case, the routing destination determiner111determines the routing destination of the communication data with respect to the user “Ota” based on a network identifier routing setting (seeFIG. 10) associated with the network identifier “%2.”

In the example case ofFIG. 7, the application routing setting information “5” and “6” respectively set “Katoh” and “Nakamura” in the “name,” “Auto” in the “interface,” and “Auto” in the “nexthop.” The application routing setting information “5” and “6” also set a group name “Guest” in the “group.” In this case, the routing destination determiner111determines the routing destination of the communication data with respect to the users “Katoh” and “Nakamura” based on the application routing setting (seeFIG. 8) associated with the user group name of “Guest.”

Application Routing Setting Table (Each Group):

FIG. 8illustrates an example of an application routing setting table122storing information of each group. The application routing setting table122is set with application routing setting information related to the routing destination of the communication data for each group included in one or more address books used by the application unit130. In an example case ofFIG. 8, the application routing setting table122is set with four application routing setting information indicated by the numbers of 1 to 4, in which each application routing setting information includes, for example, “name,” “interface,” and “nexthop” as data items.

In an example case ofFIG. 8, the application routing setting information “3” sets “Guest” in the “name,” “C” in the “interface,” and an IP address (10.0.1.1) of the router R_C in the “nexthop.” The “C” indicates the transmission/reception unit103(i.e., network system Net_C). Therefore, the routing destination determiner111can determine the network system Net_C as the network and router R_C as the next hop, which are used as the routing destination of the communication data with respect to the user belonging to the user group “Guest” based on the application routing setting information “3.”

As illustrated inFIGS. 7 and 8, since the application routing setting table122set for each user, and the application routing setting table122set for each group are provided, for example, any user can be selected from one or more address books as the transmission destination of the scanned data when the application unit130executes the scanning application. In this case, the routing destination determiner111can refer to the application routing setting information related to a target user set in the application routing setting table122(each user) to determine the routing destination of the scanned data with respect to the target user. Alternatively, the routing destination determiner111can refer to the application routing setting information related to a user group, to which the target user belongs, set in the application routing setting table122(each group) to determine the routing destination of the scanned data with respect to the target user.

Transport Routing Setting Table:

FIG. 9illustrates an example of the transport routing setting table123. The transport routing setting table123is set with transport routing setting information related to the routing destination of the communication data for each one of combinations of the IP address and the used port number of one or more counterpart devices. In an example case ofFIG. 9, the transport routing setting table123is set with four transport routing setting information indicated by the numbers of 1 to 4, in which each transport routing setting information includes, for example, “remote IP address,” “port,” “interface,” and “nexthop” as data items.

In the example case ofFIG. 9, the transport routing setting information “1” sets “192.168.10.11/32” in the “remote IP address,” “445/tcp” in the “port,” “A” in the “interface,” and an IP address (192.168.1.1) of the router R_A in the “nexthop.” The “A” indicates the transmission/reception unit101(i.e., network system Net_A). Therefore, the routing destination determiner111can determine the network system Net_A as the network and the router R_A as the next hop, which are used as the routing destination of the communication data based on the transport routing setting information “1.”

In the example case ofFIG. 9, the transport routing setting information “2” sets “192.168.10.11/32” in the “remote IP address,” “8080/tcp” in the “port,” “B” in the “interface,” and an IP address (172.16.1.1) of the router R_B in the “nexthop.” The “B” indicates the transmission/reception unit102(i.e., network system Net_B). Therefore, the routing destination determiner111can determine the network system Net_B as the network and the router R_B as the next hop, which are used as the routing destination of the communication data based on the transport routing setting information “2.”

In the example case ofFIG. 9, the transport routing setting information “3” sets “192.168.10.0/24” in the “remote IP address,” “53/udp” in the “port,” “A” in the “interface,” and “Auto” in the “nexthop.” Therefore, the routing destination determiner111can determine the network system Net_A as the network and the default gateway of the transmission/reception unit101as the next hop, which are used as the routing destination of the communication data based on the transport routing setting information “3”.

In the example case ofFIG. 9, the transport routing setting information “4” sets “0.0.0.0/0” in the “remote IP address,” “80/tcp” in the “port,” “C” in the “interface,” and “Auto” in the “nexthop.” The “C” indicates the transmission/reception unit103(i.e., network system Net_C). Therefore, the routing destination determiner111can determine the network system Net_C as the network and the default gateway of the transmission/reception unit103as the next hop, which are used as the routing destination of all of communication data, which use the port “80/tcp,” based on the transport routing setting information “4.”

Further, if a plurality of concerned transport routing setting information exists in the transport routing setting table123, the routing destination determiner111may determine priority of each information by using a given method (e.g., the order of description, the longest match algorithm), and may preferentially use the transport routing setting information having higher priority.

Network Identifier Routing Setting Table:

FIG. 10illustrates an example of the network identifier routing setting table124. The network identifier routing setting table124is set with network identifier routing setting information related to the routing destination of the communication data for each network identifier. As illustrated inFIG. 10, the network identifier routing setting table124is set with network identifier routing setting information, in which each network identifier routing setting information includes, for example, “identifier,” “interface,” and “nexthop” as data items.

In an example case ofFIG. 10, the network identifier routing setting information setting “%1” in the “identifier” sets “A, B, C” in the “interface,” and “Auto” in the “nexthop.”

In this case, the routing destination determiner111first determines the network system Net_A as the network and the default gateway of the transmission/reception unit101as the next hop, which are used as the routing destination of the communication data.

In this case, if the routing of the communication data from the transmission/reception unit101fails, the routing destination determiner111then determines the network system Net_B as the network and the default gateway of the transmission/reception unit102as the next hop, which are used as the routing destination of the communication data.

Then, if the routing of the communication data from the transmission/reception unit102further fails, the routing destination determiner111further determines the network system Net_C as the network and the default gateway of the transmission/reception unit103as the next hop, which are used as the routing destination of the communication data.

The above described success or failure of the routing of the communication data can be checked by, for example, experimentally transmitting an inquiry packet, such as address resolution protocol (ARP) request, and then determining whether a normal response is obtained.

Network Routing Setting Table:

FIG. 11illustrates an example of the network routing setting table125. The network routing setting table125, which is one type of the routing table, is set with network routing setting information set for each network address. As illustrated inFIG. 11, the network routing setting table125is set with, for example, four network routing setting information indicated by the numbers of 1 to 4, in which each network routing setting information includes, for example, “network address/netmask,” “interface,” and a “nexthop” as data items. The routing destination determiner111can determine a routing destination by performing the matching process using the longest match algorithm based on the network routing setting table125.

Setting Screen of Address Book:

FIGS. 12A and 12Billustrates examples of setting screens of an address book in the MFP100. When a user is to register address information in an address book to be used by the application unit130, each of the setting screens of address book (hereinafter, address book setting screen) illustrated inFIGS. 12A and 12Bis displayed on a display of an apparatus (e.g., MFP100, a network device connected to the MFP100) where the registration is to be performed. In example cases illustrated inFIGS. 12A and 12B, the address book setting screen includes, for example, data items of “registration number,” “name,” “group,” “folder,” “interface,” and “nexthop,” to which values can be registered. Then, the address information set in the address book setting screen is registered in an address book application, and also in the application routing setting table122(each user) as the application routing setting information.

As to the address book setting screens ofFIGS. 12A and 12B, information specifying the transmission destination of the communication data can be also registered in addition to usual address information. For example, as to the address book setting screens ofFIGS. 12A and 12B, the “interface” and the “nexthop” are added as the data items that can be registered in the address information. In this configuration, the “interface” can be set with a value (e.g., any one of “A, B and C”) identifying the interface (e.g., transmission/reception unit) to be used when transmitting the communication data. Further, the “nexthop” can be set with the IP address of the next hop. With this configuration, the routing destination determiner111can determine the transmission destination of the communication data based on the setting values of the data items of “interface” and “nexthop,” included in the application routing setting information, which are registered from the address book setting screen.

As illustrated inFIGS. 12A and 12B, the “interface” and the “nexthop” can be set with “Auto.” The “Auto” means the connection is dependent on other settings.

For example, in an example case ofFIG. 12A, the setting process is performed for a user “Ota,” in which a setting value including a network identifier “%2” is set in the “folder.” In this case, the routing destination determiner111can determine that the routing destination of the communication data with respect to the user “Ota” based on the network identifier routing setting (seeFIG. 10) corresponding to the network identifier “%2.”

Further, in an example case ofFIG. 12B, the setting process is performed for a user “Katoh,” in which a user group name of “Guest” is set as the setting value in the “group”. In this case, the routing destination determiner111can determine that the routing destination of the communication data with respect to the user “Katoh” based on the application routing setting (seeFIG. 8) corresponding to the user group name of “Guest.”

Procedure of Routing Destination Determination Process:

FIG. 13is a flowchart illustrating a procedure of the routing destination determination process by the MFP100. This process is executed by the routing destination determiner111when the communication data is to be transmitted from the application unit130in the MFP100.

First, the routing destination determiner111refers to the connection table121, stored in the setting storage unit120, to attempt to determine the transmission destination of the communication data (step S1301). Specifically, the routing destination determiner111checks whether the concerned communication connection information is registered in the connection table121by using the IP address and the used port number related to the transmission destination of the communication data as search keys. If the concerned communication connection information is registered in the connection table121, the routing destination determiner111acquires the values set in the data items of “interface” and “Nexthop MAC” of the concerned communication connection information.

Then, the routing destination determiner111determines whether the transmission destination (or routing destination) is determined in step S1302(step S1302). If the routing destination determiner111determines that the transmission destination is determined in step S1302(step S1302: YES), the routing destination determiner111ends a series of processes illustrated inFIG. 13. On the other hand, if the routing destination determiner111determines that the transmission destination is not determined in step S1302(step S1302: NO), the routing destination determiner111executes the routing destination determination process based on various types of routing settings (seeFIG. 14) to determine the transmission destination of the communication data (step S1303).

Then, the routing destination determiner111writes the communication connection information that specifies the transmission destination determined in step S1303in the connection table121(step S1304). Then, the routing destination determiner111ends a series of processes illustrated inFIG. 13. Although the process of step S1304can be omitted, if the communication connection information is written in this manner, the routing destination determiner111can refer to the connection table121to determine the transmission destination of the communication data when transmitting the communication data to the same network device at the next occasion.FIG. 13illustrates one example of procedures, and the procedure is not limited thereto. For example, the order of the processes may be changed, such as referring to the connection table121after executing the routing destination determination process based on the various types of routing settings.

Procedure of Routing Destination Determination Process Based on Various Types of Routing Setting:

FIG. 14is a flowchart illustrating a procedure of the routing destination determination process based on various types of routing settings by the MFP100. Hereinafter, a description is given of details of the routing destination determination process based on the various types of routing settings performed in step S1303in the flowchart ofFIG. 13.

First, the routing destination determiner111refers to the application routing setting table122, stored in the setting storage unit120, to attempt to determine the transmission destination of the communication data (step S1401). Specifically, the routing destination determiner111checks whether the concerned application routing setting information is registered in the application routing setting table122by using the user name and the user group name of the user of the transmission destination of the communication data as search keys. If the concerned application routing setting information is registered in the application routing setting table122, the routing destination determiner111acquires the values set in the data items of “interface” and “nexthop” of the concerned application routing setting information.

Then, the routing destination determiner111determines whether the transmission destination is determined (step S1402). If the routing destination determiner111determines that the transmission destination is determined in step S1402(step S1402: YES), the routing destination determiner111ends a series of processes illustrated inFIG. 14. On the other hand, if the routing destination determiner111determines that the transmission destination is not determined in step S1402(step S1402: NO), the routing destination determiner111determines whether a network identifier is included in the concerned application routing setting information referred in step S1401(step S1403).

If the routing destination determiner111determines that the network identifier is not included in step S1403(step S1403: NO), the routing destination determiner111proceeds the sequence to step S1406. On the other hand, if the routing destination determiner111determines that the network identifier is included in step S1403(step S1403: YES), the routing destination determiner111refers to the network identifier routing setting table124, stored in the setting storage unit120, to attempt to determine the transmission destination of the communication data (step S1404).

Then, the routing destination determiner111determines whether the transmission destination (or routing destination) is determined in step S1405. If the routing destination determiner111determines that the transmission destination is determined in step S1405(step S1405: YES), the routing destination determiner111ends a series of processes illustrated inFIG. 14. On the other hand, if the routing destination determiner111determines that the transmission destination is not determined in step S1405(step S1405: NO), the routing destination determiner111proceeds the sequence to step S1406.

In step S1406, the routing destination determiner111refers to the transport routing setting table123, stored in the setting storage unit120, to attempt to determine the transmission destination of the communication data. Specifically, the routing destination determiner111checks whether the concerned transport routing setting information is registered in the transport routing setting table123by using the IP address and the used port number set as the transmission destination of the communication data as search keys. If the concerned transport routing setting information is registered in the transport routing setting table123, the routing destination determiner111acquires the values set in the data items of “interface” and “nexthop” of the transport routing setting information.

Then, the routing destination determiner111determines whether the transmission destination is determined in step S1407. If the routing destination determiner111determines that the transmission destination is determined in step S1407(step S1407: YES), the routing destination determiner111ends a series of processes illustrated inFIG. 14. On the other hand, if the routing destination determiner111determines that the transmission destination is not been determined in step S1407(step S1407: NO), the routing destination determiner111proceeds the sequence to step S1408.

In step S1408, the routing destination determiner111refers to the network routing setting table125, stored in the setting storage unit120, to attempt to determine the transmission destination of the communication data. Specifically, the routing destination determiner111checks whether the concerned network routing setting information is registered in the network routing setting table125by using the IP address and the used port number set as the transmission destination of the communication data as search keys. If the concerned network routing setting information is registered in the network routing setting table125, the routing destination determiner111acquires the values set in the data items of “interface” and “nexthop” of the network routing setting information.

Then, the routing destination determiner111ends a series of processes illustrated inFIG. 14. As described above, even when the routing destination determiner111cannot determine an appropriate transmission destination of the communication data based on the connection table121, the routing destination determiner111can refer to the application routing setting table122, the network identifier routing setting table124, the transport routing setting table123and the network routing setting table125in this order to determine the appropriate transmission destination of the communication data.FIG. 14illustrates one example of procedures, and the procedure is not limited thereto. For example, the order of referencing the tables may be changed or referencing of one or more of the tables may be omitted.

Procedure of Acquiring of Setting Value:

FIG. 15illustrates a sequence diagram of a procedure of acquiring a setting value in the communication system10.FIG. 15illustrates an example case, in which the MFP100acquires various routing setting tables from a Web server1520.

First, the MFP100transmits a Discover packet to a dynamic host configuration protocol (DHCP) server1510using a broadcast address (step S1501). When the DHCP server1510receives the Discover packet, the DHCP server1510transmits an Offer packet including an assignable IP address to the MFP100(step S1502).

After the MFP100receives the Offer packet and checks the IP address included in the Offer packet, the MFP100transmits a Request packet to the DHCP server1510for requesting the checked IP address (step S1503). When the DHCP server1510receives the Request packet, the DHCP server1510transmits a Pack packet including a formally assigned IP address to the MFP100(step S1504). After the MFP100receives the Pack packet, the MFP100sets the IP address included in the received Pack packet as the IP address of the MFP100.

Then, the MFP100requests various routing setting tables to the Web server1520using the Get method (step S1505). After the Web server1520receives the Get method, the Web server1520transmits the various routing setting tables to the MFP100in a given format such as JavaScript Object Notation (JSON) format (step S1506).

As described above, the MFP100can acquire the various routing setting tables from an external server, such as the Web server1520, and set the acquired routing setting tables in the setting storage unit120. The various routing setting tables transmitted from the external server may be described in the JSON format or other formats, such as Extensible Markup Language (XML) format.

As to the MFP100of the above described embodiment, even when the MFP100cannot determine the routing destination by referencing to the connection table121when to transmit the communication data, the MFP100can sequentially refer to various routing tables (e.g., application routing setting table122, transport routing setting table123, network identifier routing setting table124, network routing setting table125) to determine the network used as the routing destination of the communication data, and can transmit the communication data to the network determined as the routing destination. Therefore, as to the MFP100of the above described embodiment, even when a plurality of network devices having the same IP address exists on a plurality of networks connected to the MFP100, the MFP100can transmit the communication data to an appropriate network device.

The known communication control methods includes, for example, the static routing method, the auto last hop method, and the virtual routing and forwarding (VRF) method, and any one of the communication control methods can be effectively used for the MFP100of the above described embodiment.

When the static routing method is employed in conventional information processing apparatuses, and a plurality of network devices having the same IP address exists on a plurality of networks connected to an information processing apparatus, communication data may be transmitted to a network interface in accordance with the priority order of the matching process of the static routing method (e.g., longest match algorithm), in which there is a possibility that the communication data is not transmitted to an appropriate transmission destination. By contrast, the MFP100of the embodiment can transmit the communication data to an appropriate transmission destination even when a plurality of network devices having the same IP address exists on a plurality of networks connected to the MFP100.

When the auto last hop method is employed in conventional information processing apparatuses, and an information processing apparatus used as a server transmits the communication data, the information processing apparatus can transmit communication data (e.g., response data) to a transmission source that has requested the data with reference to a connection table. However, when the information processing apparatus used as a client transmits the communication data, the communication control method of the auto last hop method is same as the communication control method of the static routing method, and thereby the information processing apparatus may not transmit the communication data to an appropriate transmission destination. By contrast, the MFP100of the embodiment can transmit the communication data to an appropriate transmission destination when the MFP100used as the server that transmits the communication data, and when the MFP100used as the client that transmits the communication data.

When the VRF method is employed in conventional information processing apparatuses, the transmission destination of the communication data cannot be determined unless an application determines to which router (e.g., router configured by VRF function) the communication data is to be transmitted. Therefore, as to conventional information processing apparatuses, if a plurality of network devices having the same IP address exists on a plurality of networks connected to the information processing apparatus, the information processing apparatus cannot transmit the communication data to an appropriate transmission destination. By contrast, the MFP100of the embodiment can transmit the communication data to an appropriate transmission destination even when a plurality of network devices having the same IP address exists on a plurality of networks connected to the MFP100.

As to the above described embodiment, the communication data can be effectively transmitted to an appropriate network device from an information processing apparatus connectable to a plurality of networks.

For example, the above described embodiment is applied to one information processing apparatus or image processing apparatus such as the MFP, but not limited thereto. For example, the above described embodiment can be applied to other image processing apparatuses such as printers, scanners, and projectors. Further, the above described embodiment is applicable not only to the image processing apparatus but also to any types of information processing apparatuses that are connectable to a plurality of networks.

Although the functions of the communication system of the above described embodiment are implemented by one single apparatus such as the MFP100, the implementation of the functions of the communication system is not limited to one single apparatus. For example, the functions of the communication system of the above described embodiment can be implemented by using a plurality of apparatuses.

Further, the MFP100stores a plurality of tables in the above embodiment, but the configuration is not limited thereto. For example, a part or all of the plurality of tables can be stored in one or more external network devices such as one or more Web servers, which are accessible from the MFP100.

Each of the functions of the above described embodiments can be implemented by one or more processing circuits or circuitry. Processing circuitry includes a programmed processor, as a processor includes circuitry. A processing circuit also includes devices such as an application specific integrated circuit (ASIC), digital signal processor (DSP), field programmable gate array (FPGA), system on a chip (SOC), graphics processing unit (GPU), and conventional circuit components arranged to perform the recited functions.