WO2014038135A1 - 通信装置、転送制御方法及び転送制御プログラム - Google Patents

通信装置、転送制御方法及び転送制御プログラム Download PDF

Info

Publication number
WO2014038135A1
WO2014038135A1 PCT/JP2013/004825 JP2013004825W WO2014038135A1 WO 2014038135 A1 WO2014038135 A1 WO 2014038135A1 JP 2013004825 W JP2013004825 W JP 2013004825W WO 2014038135 A1 WO2014038135 A1 WO 2014038135A1
Authority
WO
WIPO (PCT)
Prior art keywords
communication
packet
packet transfer
information
unit
Prior art date
Application number
PCT/JP2013/004825
Other languages
English (en)
French (fr)
Inventor
櫻井 健一
Original Assignee
パナソニック株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2012196023A external-priority patent/JP5909688B2/ja
Priority claimed from JP2013118074A external-priority patent/JP6075215B2/ja
Application filed by パナソニック株式会社 filed Critical パナソニック株式会社
Publication of WO2014038135A1 publication Critical patent/WO2014038135A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5691Access to open networks; Ingress point selection, e.g. ISP selection
    • H04L12/5692Selection among different networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • H04W88/06Terminal devices adapted for operation in multiple networks or having at least two operational modes, e.g. multi-mode terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/15Setup of multiple wireless link connections

Definitions

  • the present invention relates to a communication device, a transfer control method, and a transfer control program that perform communication on a network, and in particular, one or more communication interfaces, a packet transfer unit that transfers a packet, and a transfer that controls the operation of the packet transfer unit.
  • the present invention relates to a communication device that uses a network control method in units of flows including a control unit, a transfer control method applied to the communication device, and a transfer control program.
  • the problem that communication cannot be performed simultaneously using a plurality of networks is caused by insufficient mechanisms for selecting a communication interface used for communication.
  • IP communication when communicating with a communication device on a network other than the network to which the communication device is directly connected, communication is performed via a default gateway of the network to which the communication device is directly connected.
  • the default gateway can be set for each communication interface.
  • a communication apparatus having a plurality of communication interfaces a plurality of default gateways exist on the route table. In such a case, in the path control performed by the communication stack on the communication device, it is not known which default gateway should be used for communication, and communication is impossible.
  • a communication program such as a ping command for confirming communication between communication devices on the network can specify a communication interface used for communication.
  • the default gateway set for the specified communication interface is used, so communication can be performed even when multiple default gateways exist on the route table. is there.
  • communication may be disabled by selecting one of multiple default gateways on the routing table and performing communication according to some rule, such as selecting the default gateway that was set last.
  • some rule such as selecting the default gateway that was set last.
  • any one of a plurality of communication interfaces is preferentially set based on the quality of the network, the charge amount of the battery, the charge amount, etc., and the preferentially set communication interface
  • the default gateway set to 1 in the routing table By setting only the default gateway set to 1 in the routing table, communication is performed using the default gateway set to the communication interface set to be superior.
  • Patent Document 1 enables communication using a plurality of interfaces simultaneously in a communication apparatus having a plurality of communication interfaces, a default gateway set to a communication interface set predominantly among a plurality of default gateways Since communication is performed using only communication interfaces, there is a problem that a communication interface other than the communication interface set to be advantageous cannot communicate with a communication apparatus on a network other than the network to which the communication apparatus is directly connected. It is insufficient as a method for realizing communication using the network simultaneously.
  • Patent Document 1 is a method that enables selection of any one of a plurality of default gateways, communication is performed with a communication device on a network other than the network to which the communication device is directly connected.
  • communication performed by an application is communication using a default gateway set to the communication interface set to be superior through the communication interface set to be superior. Therefore, a method capable of selecting a communication interface or default gateway to be used for communication at a finer granularity such as for each application is desired.
  • the present invention has been made in view of the above problems related to a communication apparatus having a plurality of communication interfaces, and performs communication using a plurality of networks at the same time, and communication from a user or an arbitrary program for each flow.
  • An object of the present invention is to provide a communication device, a transfer control method, and a transfer control program capable of performing communication using an appropriate network for each flow by realizing selection of a communication interface to be used.
  • a communication device is a communication device that uses a network control method in units of flows, and is capable of selecting a communication interface to be used for communication for each flow.
  • the transfer control method according to the present invention is used for communication for each flow in a communication apparatus using a network control method in units of flows, which includes one or more communication interfaces and a packet transfer unit that transfers received packets.
  • a transfer control method that allows a communication interface to be selected, and includes a packet transfer rule generation step for generating a packet transfer rule, which is information for determining the operation of the packet transfer unit when a packet is received, and a packet transfer rule generation step.
  • a packet transfer unit management step for setting the packet transfer rule in the packet transfer unit.
  • the transfer control program according to the present invention is a communication used for communication for each flow in a computer using a network control method in units of flows that includes one or more communication interfaces and a packet transfer unit that transfers received packets.
  • the generated packet transfer rule is configured to execute a packet transfer unit management process for setting the packet transfer rule in the packet transfer unit.
  • the present invention it is possible to perform communication using a plurality of networks at the same time, and to select a communication interface to be used for communication for each flow from a user or an arbitrary program. There is an effect that communication can be performed by using.
  • FIG. 1 is a block diagram illustrating a configuration example of a communication device according to an embodiment of the present invention.
  • FIG. 2 is a block diagram showing a configuration example of the packet transfer unit in the embodiment of the present invention.
  • FIG. 3 is a flowchart illustrating an example of processing when the packet transfer unit receives a packet.
  • FIG. 4 is a block diagram showing a more detailed configuration example of the communication apparatus focusing on elements related to communication in the first embodiment.
  • FIG. 5 is a block diagram showing a configuration example of the transfer control unit in the embodiment of the present invention.
  • FIG. 6 shows a configuration example of the routing table in the first embodiment.
  • FIG. 7 is a flowchart illustrating an example of processing in which the transfer control unit according to the first embodiment generates a packet transfer rule.
  • FIG. 1 is a block diagram illustrating a configuration example of a communication device according to an embodiment of the present invention.
  • FIG. 2 is a block diagram showing a configuration example of the packet transfer unit in the embodiment of
  • FIG. 8 is a block diagram showing a more detailed configuration example of the communication device focusing on elements related to communication in the second embodiment.
  • FIG. 9 shows a configuration example of the routing table in the second embodiment.
  • FIG. 10 is a flowchart illustrating an example of processing in which the transfer control unit according to the second embodiment generates a packet transfer rule.
  • FIG. 11 is a flowchart illustrating an example of address resolution processing of the transfer control unit in the second embodiment.
  • FIG. 12 shows a configuration example of used interface information stored in the used interface information storage unit in the third embodiment.
  • FIG. 13 is a block diagram illustrating a more detailed configuration example of a communication apparatus focusing on elements related to communication in the fourth embodiment.
  • FIG. 14 is a block diagram illustrating a configuration example of a communication stack according to the fourth embodiment.
  • FIG. 15 is a configuration example of a routing table according to the fourth embodiment.
  • FIG. 16 is a block diagram showing a more detailed configuration example of a communication device focusing on elements related to communication
  • a communication apparatus is a communication apparatus that uses a network control method in units of flows, and is capable of selecting a network to be used for communication for each flow, and includes one or more communication interfaces and received packets A packet transfer unit for transferring the packet and a transfer control unit for controlling the operation of the packet transfer unit. With this configuration, communication can be performed using an appropriate network for each flow.
  • the packet transfer unit may connect to one or more communication interfaces and virtual interfaces to transfer packets.
  • the transfer control unit is information including flow information, which is information that can identify a flow, and information that can uniquely identify one of one or more communication interfaces.
  • Use interface information storage unit that stores use interface information that determines whether to use and communicate, and use network information that allows a user or an arbitrary program to set use network information to be stored in the use interface information storage unit And an information management unit.
  • the transfer control unit is information necessary for the communication interface and the virtual interface to transmit and receive packets, and an address storage unit that stores address information set in the communication interface and the virtual interface; and You may provide with the address information management part acquired from a virtual interface and memorize
  • the transfer control unit sets only the virtual default gateway among the default gateway set for each of the one or more communication interfaces acquired by the address information management unit and the virtual default gateway set for the virtual interface in the route table of the communication device.
  • a route table management unit may be provided.
  • the transfer control unit manages a packet transfer rule generation unit that generates a packet transfer rule that is information that determines the operation of the packet transfer unit when a packet is received, and a packet generated by the packet transfer rule generation unit. You may provide with the packet transfer part management part which sets a transfer rule to a packet transfer part.
  • the packet transfer rule generation unit When the packet transfer rule generation unit is requested to generate a packet transfer rule from the packet transfer unit, the packet transfer rule generation unit identifies a communication interface to be used for communication based on the use interface information, the flow information, and the address of the communication interface to be used for communication Based on the information, a packet transfer rule may be generated that includes information related to rewriting of an arbitrary address and identifier value included in the packet and processing for transmitting the packet to the communication interface used for communication.
  • the packet transfer rule generator specifies the communication interface to be used for communication based on the used interface information including the flow information that matches the flow when the destination of the flow requested to generate the packet transfer rule is a virtual default gateway. Then, the packet transfer rule may be generated so that the packet transfer unit transfers the packet of the flow to the default gateway set in the communication interface used for communication.
  • the communication device may further include a virtual interface, a communication stack having one or more routing tables, and a connection monitoring unit that monitors connection between the packet transfer unit and the transfer control unit.
  • the one or more route tables include a first route table used for enabling communication by packet transfer by the packet transfer unit and the transfer control unit, and a second route table used when packet transfer cannot be performed. May be included.
  • the transfer control unit is an address storage unit that stores information necessary for one or more communication interfaces and virtual interfaces to transmit and receive packets, and stores address information set in the one or more communication interfaces and virtual interfaces. And an address information management unit for acquiring address information and storing it in the address storage unit, and a route table management unit for setting the first routing table based on the information stored in the address information management unit.
  • the first routing table may be set so that the routing control is performed using the routing information regarding the virtual default gateway set in the virtual interface by the communication stack.
  • the communication stack includes an address storage unit that stores address information, an address information management unit that acquires address information and stores the address information in the address storage unit, and information stored in the address information management unit.
  • a route table management unit that performs setting, and the communication stack performs route control using route information related to one of the default gateways set for each of one or more communication interfaces.
  • a second routing table may be set in With this configuration, even when the connection between the packet transfer unit and the transfer control unit is disconnected, the communication stack can perform communication by performing route control using the second route table. Become.
  • connection monitoring unit enables communication by switching the route table used for route control of the communication stack to the first route table or the second route table based on the connection state between the packet transfer unit and the transfer control unit. As good as Even if the packet transfer unit and the transfer control unit are connected by switching the routing table used for route control of the communication stack by the connection monitoring unit, the communication can be performed. It becomes possible to do.
  • a transfer control method is a communication device that uses a network control method in units of flows that includes one or more communication interfaces and a packet transfer unit that transfers received packets.
  • a packet transfer rule generation step for generating a packet transfer rule which is information for determining an operation of a packet transfer unit when a packet is received, and a packet transfer rule,
  • a packet transfer unit management step for setting the packet transfer rule generated in the packet transfer rule generation step in the packet transfer unit.
  • the packet transfer rule generation step when generation of a packet transfer rule is requested from the packet transfer unit, it is possible to uniquely identify either flow information, which is information that can identify a flow, or one or more communication interfaces Information used to determine which communication interface is used for each flow and information necessary for the communication interface to send and receive packets and set in the communication interface. Based on the address information, a packet transfer rule relating to a process of rewriting an arbitrary address and identifier value included in the packet and transmitting the packet to the communication interface used for communication may be generated.
  • the communication apparatus further includes a virtual interface, a communication stack having one or more routing tables, and a transfer control unit that controls the operation of the packet transfer unit, and can select a network to be used for communication for each flow.
  • the communication apparatus may use a network control method in units of flows, and the transfer control method may be a method of monitoring the connection between the packet transfer unit and the transfer control unit.
  • the packet transfer unit, the transfer control unit, Communication may be enabled by switching the route table used for route control of the communication stack based on the connection state. With this configuration, when the connection between the packet transfer unit and the transfer control unit is disconnected, communication can be performed by detecting this and switching the route table used for route control of the communication stack.
  • a transfer control program is a computer that uses a network control method in units of flows that includes one or more communication interfaces and a packet transfer unit that transfers received packets.
  • a packet transfer rule generation process for generating a packet transfer rule which is a transfer control program for executing a process for enabling selection of a communication interface to be used, and is information for determining an operation of a packet transfer unit when a packet is received.
  • a packet transfer unit management process for managing the packet transfer unit and setting the packet transfer rule generated by the packet transfer rule generation process in the packet transfer unit.
  • the packet transfer rule generation process when generation of a packet transfer rule is requested from the packet transfer unit, it is possible to uniquely identify either flow information that is information for identifying a flow and one or more communication interfaces.
  • Information which is used interface information that determines which communication interface is used for each flow and information necessary for the communication interface to send and receive packets, and is an address set in the communication interface
  • a packet transfer rule relating to a process of rewriting an arbitrary address and identifier value included in the packet and transmitting the packet to the communication interface used for communication may be generated.
  • the computer further includes a virtual interface, a communication stack having one or more routing tables, and a transfer control unit that controls the operation of the packet transfer unit, and can select a network to be used for communication for each flow.
  • the transfer control program may be a computer that monitors the connection between the packet transfer unit and the transfer control unit, and the connection state between the packet transfer unit and the transfer control unit. Based on the above, communication may be enabled by switching the route table used for route control of the communication stack. With this configuration, when the connection between the packet transfer unit and the transfer control unit is disconnected, communication can be performed by detecting this and switching the route table used for route control of the communication stack.
  • FIG. 1 is a block diagram illustrating a configuration example of a communication device according to an embodiment of the present invention.
  • a communication apparatus 100 according to an embodiment of the present invention is a communication apparatus that uses a network control method in units of flows, and includes a plurality of communication interfaces 101, a packet transfer unit 200 that transfers received packets, and a packet transfer unit. And a transfer control unit 300 that controls the operation.
  • Flow refers to a flow of a series of packets of traffic that can be identified by a combination of arbitrary addresses and identifiers.
  • the network control method for each flow is, for example, OpenFlow.
  • An example of an OpenFlow communication device that includes a flow switch that forwards received packets and a flow controller that controls the operation of the flow switch is “Nick McKeown, 7 others,“ OpenFlow: Enabling Innovation in Campus Networks ”, 2008 March 14, Internet ⁇ http://www.openflow.org/documents/openflow-wp-latest.pdf>, or “OpenFlow Specification Version 1.0.0, December 31, 2009 , Internet ⁇ http://www.openflow.org/documents/openflow-sp It is described in the c-v1.0.0.pdf> ", and the like.
  • the packet transfer unit 200 is, for example, a flow switch in OpenFlow.
  • the transfer control unit 300 is a flow controller in OpenFlow, for example.
  • the packet transfer unit 200 transfers the received packet. Specifically, the packet transfer unit 200 has received the packet according to a packet transfer rule that is information for determining the operation of the packet transfer unit when the packet set by the transfer control unit 300 is received. Arbitrary processing is performed on the packet.
  • the packet transfer rule includes flow information that is information that can identify a flow, and action information that is information that determines the content of processing to be performed on a packet of a flow that conforms to the flow information.
  • the packet transfer rule includes at least flow information and action information, but may further include other information.
  • the flow information includes, for example, a transmission source MAC address, a transmission destination MAC address, an Ethernet (registered trademark) frame type, a transmission source IP address, a transmission destination IP address, a transmission source port number, a transmission destination port number, and a packet from which communication interface. Although it includes a reception port number, which is information for determining whether it has been received, the flow information is not limited to these. Furthermore, other information may be included.
  • the contents of the action information include, for example, transmitting a packet to a specific communication interface, transmitting the packet to the communication stack, rewriting an arbitrary address or identifier included in the packet to an arbitrary value, or discarding the packet. However, the content of the action information is not limited to these.
  • Communication interface refers to an interface that provides a function that enables communication by connecting to an arbitrary network.
  • the type of communication interface is not particularly limited. It may be a wired interface such as Ethernet (registered trademark), a wireless interface such as a wireless LAN, or a virtual interface generated by an arbitrary method. Examples of virtual interfaces include a tunnel interface and a logical interface generated by link aggregation that virtually bundles a plurality of communication interfaces. Further, the number of communication interfaces is not particularly limited, and may be one or more. Further, the plurality of communication interfaces 101 may be the same type of communication interface or different types of communication interfaces.
  • FIG. 2 is a block diagram showing a configuration example of the packet transfer unit in the embodiment of the present invention.
  • the packet transfer unit 200 includes a packet transfer rule storage unit 201, a packet transfer rule management unit 202, a flow identification unit 203, and an action execution unit 204.
  • the packet transfer rule storage unit 201 stores packet transfer rules. Since different packet transfer rules are set for each flow, the packet transfer rule storage unit 201 stores one or more packet transfer rules. A set of packet transfer rules stored in the packet transfer rule storage unit 201 is referred to as a “packet transfer rule table”.
  • the packet transfer rule management unit 202 manages packet transfer rules.
  • the transfer control unit 300 transmits a setting instruction together with the packet transfer rule.
  • the setting instruction is information that determines whether to add, change, or delete a packet transfer rule.
  • the packet transfer rule management unit 202 stores the packet transfer rule received from the transfer control unit 300 in the packet transfer rule storage unit 201 according to the setting instruction.
  • the packet transfer rule includes, in addition to flow information and action information, a timer value that is information for determining the validity period of the packet transfer rule.
  • the packet transfer rule management unit 202 decreases the timer value specified in each packet transfer rule with the passage of time. When the timer value becomes 0, the packet transfer rule including the timer value is deleted from the packet transfer rule storage unit 201. When a packet of a flow that conforms to the flow information included in the packet transfer rule is received, the packet transfer rule management unit 202 resets the timer value to the initial value.
  • the flow identifying unit 203 When the packet is received, the flow identifying unit 203 generates flow information from an arbitrary address or identifier included in the received packet. Based on the generated flow information, a search is made as to whether or not a packet transfer rule including flow information matching the flow of the received packet exists on the packet transfer rule table stored in the packet transfer rule storage unit 201.
  • the action execution unit 204 executes arbitrary processing on the received packet based on the content of the action information included in the packet transfer rule.
  • FIG. 3 is a flowchart illustrating an example of processing when the packet transfer unit receives a packet.
  • the flow identification unit 203 When the packet transfer unit 200 receives a packet (step S101), the flow identification unit 203 generates flow information from the received packet (step S102), and a flow that matches the flow of the received packet based on the generated flow information. It is determined whether or not a packet transfer rule including information exists on the packet transfer rule table stored in the packet transfer rule storage unit 201 (step S103).
  • the flow identification unit 203 controls transfer of a new flow detection notification including the flow information generated by the flow identification unit 203.
  • the request is transmitted to the unit 300 (step S104), and a packet transfer rule is generated for the received packet flow.
  • the flow identification unit 203 may include the received packet itself in the new flow detection notification.
  • the transfer control unit 300 When receiving the new flow detection notification, the transfer control unit 300 generates a packet transfer rule and transmits it to the packet transfer unit 200 together with a setting instruction.
  • the packet transfer rule management unit 202 When the packet transfer rule management unit 202 receives the packet transfer rule and the setting instruction transmitted from the transfer control unit 300, the packet transfer rule management unit 202 stores the received packet transfer rule in the packet transfer rule storage unit 201 in accordance with the instruction (step S1). S105).
  • the packet transfer rule management unit 202 sets the packet transfer rule that includes flow information that matches the flow of the received packet.
  • the timer value is reset to the initial value (step S106).
  • the action execution unit 204 executes arbitrary processing on the received packet according to the action information included in the packet transfer rule that matches the flow of the received packet (step S107).
  • FIG. 4 is a block diagram showing a more detailed configuration example of the communication device focusing on the elements related to communication in the first embodiment.
  • the packet transfer unit 200 is connected to the plurality of communication interfaces 101 and the virtual interface 102 and transfers packets.
  • the communication device 100 is connected to an arbitrary network via a plurality of communication interfaces 101.
  • the virtual interface 102 is a communication interface that is not connected to any of the networks connected through the plurality of communication interfaces 101. In other words, it can be said to be a communication interface for connecting to a virtual network existing inside the communication apparatus 100.
  • the packet transfer unit 200 transmits a packet transmitted from another communication device or an arbitrary communication program 105 operating on the communication device 100 to a plurality of communication interfaces 101 and virtual interfaces 102. Receive via one of the communication interfaces.
  • the packet transfer unit 200 and the transfer control unit 300 are connected by an arbitrary method.
  • the connection is performed by UNIX (registered trademark) domain socket communication, TCP (Transmission Control Protocol) communication, or SSL (Secure Socket Layer) communication.
  • the transfer control unit 300 includes a use interface information storage unit 301, a use interface information management unit 302, an address information storage unit 303, an address information management unit 304, a route table management unit 305, A packet transfer rule generation unit 306 and a packet transfer unit management unit 307 are provided.
  • the used interface information is information that determines which communication interface is used for communication for each flow, and uniquely identifies one of the flow information and the plurality of communication interfaces 101 that can identify the flow. And identifiable information.
  • the used interface information includes at least flow information and information that can uniquely identify any of the plurality of communication interfaces 101, but may include other information.
  • the flow information included in the used interface information may include a wild card in the value of the information included therein.
  • Information that can uniquely identify any of the plurality of communication interfaces 101 is, for example, an interface name, a port number, or the like.
  • the used interface information storage unit 301 stores used interface information. Since different used interface information is set for each flow, the used interface information storage unit 301 stores one or more used interface information.
  • the used interface information management unit 302 manages the used interface information and provides a user or an arbitrary program with a function that allows the used interface information to be set at an arbitrary timing.
  • the user or an arbitrary program gives a setting instruction together with the use interface information.
  • the setting instruction is information that determines whether to add, change, or delete the used interface information.
  • the used interface information management unit 302 stores the used interface information given from the user or an arbitrary program in the used interface information 301 according to the setting instruction.
  • the use interface information management unit 302 can set the use interface information provided to the user or an arbitrary program, for example, a graphical user interface for performing the setting, an arbitrary API that can be used from an arbitrary program ( Application Programming Interface).
  • the address information storage unit 303 stores address information that is necessary for the plurality of communication interfaces 101 and the virtual interface 102 to transmit and receive packets. Since different address information is set for each communication interface, one or more pieces of address information are stored in the address information storage unit 303.
  • the address information includes, for example, the MAC address, IP address, subnet mask, MAC address and IP address of the default gateway on the network to which the communication apparatus connects via the communication interface, the port number, etc. It is not limited. Furthermore, other information may be included.
  • the address information is set for each communication interface by an arbitrary method. Arbitrary methods for setting address information include, for example, fixed setting by a user or an arbitrary program, DHCP (Dynamic Host Configuration Protocol), IPCP (Internet Protocol Control Protocol), and the like.
  • address information is set in the same manner as each communication interface of the plurality of communication interfaces 101.
  • the address information is virtual address information composed of arbitrary values.
  • the address information of the virtual interface 102 includes at least a virtual MAC address, a virtual IP address, and a virtual default gateway that is a default gateway on the virtual network inside the communication apparatus 100 connected via the virtual interface 102. IP address.
  • the address information management unit 304 acquires address information set in each communication interface of the plurality of communication interfaces 101 and the virtual interface 102 and stores the acquired address information in the address information storage unit 303. Further, the address information management unit 304 re-addresses the address information of the communication interface in which the change of the address information occurs when the change of the address information occurs due to the expiration of the lease period or the occurrence of a handover accompanying the movement of the communication device. Acquired and stored in the address information storage unit 303.
  • the routing table management unit 305 includes a default gateway set in each communication interface of the plurality of communication interfaces 101 and a virtual default gateway set in the virtual interface 102 included in the address information stored in the address information storage unit 305. Of these, only the virtual default gateway is set in the route table 104 of the communication stack 103 of the communication device 100.
  • FIG. 6 is a configuration example of the routing table in the first embodiment.
  • the routing table management unit 305 sets the routing table 104 as shown in FIG. In each network connected via the plurality of communication interfaces 101, route information for performing communication via each communication interface is set. Further, only the route information of the virtual default gateway is set as the route information regarding the default gateway.
  • the virtual default gateway is set in the routing table 104 so that the communication program 105 is on a network other than the network to which the communication device 100 is directly connected.
  • a path control is performed on the communication stack 103 so that a packet transmitted from the communication program 105 is transmitted using a virtual default gateway.
  • the transmission source MAC address of the packet is the virtual
  • the packet is sent to the virtual MAC address set in the interface 102
  • the destination MAC address of the packet is the MAC address of the virtual default gateway
  • the source IP address of the packet is the virtual IP address set in the virtual interface 102.
  • the destination IP address is the IP address of the destination communication device.
  • the communication program 105 communicates with a communication device on a network connected via a plurality of communication interfaces 101, a network in which a destination communication device exists for a packet transmitted from the communication program 105.
  • Route control is performed on the communication stack 103 so as to transmit from the communication interface connected to the communication stack 103.
  • the packet transfer unit 200 receives a packet transmitted from the communication program 105 from a communication interface connected to a network in which a destination communication device exists.
  • the source MAC address of the packet is the MAC address set in the communication interface
  • the destination MAC address of the packet is the MAC address of the destination communication device
  • the source IP address of the packet is the communication interface
  • the IP address of the packet is the IP address of the destination communication device.
  • the packet transfer rule generation unit 306 When the packet transfer rule generation unit 306 receives a new flow detection notification transmitted from the flow identification unit 203 of the packet transfer unit 200, that is, when the packet transfer rule unit 200 requests generation of a packet transfer rule, a new flow is generated.
  • a packet transfer rule is generated based on the flow information included in the detection notification, the used interface information stored in the packet transfer rule storage unit 301, and the address information stored in the address information storage unit 303.
  • FIG. 7 is a flowchart illustrating an example of processing in which the transfer control unit according to the first embodiment generates a packet transfer rule.
  • the packet transfer rule generation unit 306 When the packet transfer rule generation unit 306 receives the new flow detection notification, the packet transfer rule generation unit 306 refers to the flow information included in the new flow detection notification and identifies the communication interface that has received the packet based on the reception port number included in the flow information. . Then, the address information of the communication interface that received the packet and the address information of the virtual interface 102 are acquired through the address information management unit 304 (step S201). The communication interface that has received the packet is one of the plurality of communication interfaces 101 and the virtual interface 102.
  • the packet transfer rule generation unit 306 refers to the flow information included in the new flow detection notification and identifies the source IP address of the received packet. Then, based on the subnet mask included in the address information of the communication interface that received the packet, the network address obtained from the identified source IP address, the network address obtained from the IP address set in the communication interface that received the packet, Are equal to each other (step S202). That is, based on the source IP address of the received packet, it is determined whether or not the packet is a packet transmitted from a communication device on the network connected via the communication interface that received the packet.
  • the communication address is received via the communication interface that received the packet. It can be determined that the packet is transmitted from a communication device on a network other than the network to which the communication device 100 is directly connected, not the communication device on the network to be connected.
  • the packet transfer rule generation unit 306 notifies the new flow detection notification.
  • the flow information included in the information, the action of rewriting the destination MAC address to the virtual MAC address set to the virtual interface 102, the destination IP address to the virtual IP address set to the virtual interface 102, and the received A packet transfer rule including action information including an action (step S204) for transmitting the packet to the virtual interface 102 is generated.
  • the packet received by the packet transfer unit 200 is received by the virtual interface 102 by packet transfer based on such a packet transfer rule.
  • the identified source IP address is the packet. It is determined whether or not it is equal to the IP address set in the communication interface that has received (step S205).
  • the identified transmission source IP address is not equal to the IP address set in the communication interface that received the packet (No in step S205)
  • transmission is performed from a communication device on the network connected via the communication interface that received the packet. It can be determined that the packet has been received.
  • the identified source IP address is equal to the IP address set in the communication interface that received the packet (Yes in step S205)
  • the packet transfer rule generation unit 306 When the identified source IP address is not equal to the IP address set in the communication interface that received the packet (No in step S205), the packet transfer rule generation unit 306 includes flow information included in the new flow detection notification, A packet transfer rule including action information including an action (step S206) for transmitting the received packet to the communication stack 103 is generated.
  • the packet received by the packet transfer unit 200 is received as it is by the communication interface that has received the packet.
  • step S205 If the identified source IP address is equal to the IP address set in the communication interface that received the packet (Yes in step S205), the destination MAC address of the received packet based on the flow information included in the new flow detection notification Is identified. Then, it is determined whether or not the identified transmission source MAC address is equal to the virtual default gateway MAC address set in the virtual interface 102 (step S207).
  • the communication program 105 connects the virtual default gateway to a communication device on a network other than the network to which the communication device 100 is directly connected. It can be determined that the packet is transmitted using On the other hand, if the identified source MAC address and the MAC address of the virtual default gateway are not equal (No in step S207), the communication program 105 is on a network connected via the communication interface that has received the packet. It can be determined that the packet is to be transmitted.
  • the packet transfer rule generation unit 306 determines the flow of the received packet based on the flow information included in the new flow detection notification. Used interface information including flow information conforming to the above is acquired through the used interface information management unit 302. Then, based on information that can uniquely identify any of the plurality of communication interfaces 101 included in the acquired use interface information, a communication interface to be used for communication is specified (step S208). Note that the communication interface used for communication is one of the plurality of communication interfaces 101.
  • the address information of the communication interface used for the specified communication is acquired through the address information management unit 304 (step S209).
  • the virtual default gateway is a default gateway on the virtual network inside the communication device 100 connected via the virtual interface 102. However, since it is a virtual existence that exists only on the route table 104 set by the route table management unit 305, communication by simply transmitting the packet received by the packet transfer unit 200 to the communication interface used for communication is possible. The packet is not transmitted to a communication device on a network other than the network to which the device 100 is directly connected.
  • the packet transfer rule generation unit 306 uses the flow information included in the new flow detection notification and the source MAC address for communication.
  • Action for rewriting the source IP address to the IP address set for the communication interface used for communication to the MAC address set for the interface (step S210), the default set for the communication interface using the destination MAC address for communication
  • a packet transfer rule including action information including an action for rewriting the MAC address of the gateway (step S211) and an action for transmitting the received packet to the communication interface used for communication (step S212).
  • the packet received by the packet transfer unit 200 is transmitted to the default gateway on the network connected through the communication interface used for communication.
  • the source MAC address of the received packet is set to the MAC address set in the communication interface that received the packet,
  • the source IP address of the packet is the IP address set in the communication interface that received the packet, and the destination MAC address of the received packet is the destination address on the network connected through the communication interface that received the packet. Since the destination IP address of the packet is the IP address of the destination communication device on the network connected via the communication interface that received the packet to the MAC address of the communication device, the communication interface that received the packet as it is. It may do it by sending from over the nest.
  • the packet transfer rule generation unit 306 includes a packet transfer rule including flow information included in the new flow detection notification and action information including an action (step S213) of transmitting the received packet to the communication interface that has received the packet. Is generated.
  • the packet received by the packet transfer unit 200 is transmitted as it is from the communication interface that has received the packet to the destination communication device.
  • the communication stack 103 Prior to packet transmission, the communication stack 103 performs address resolution to obtain the destination MAC address based on the IP address of the destination communication device.
  • a MAC address of a transmission destination may be obtained according to a normal address resolution method on each communication interface.
  • the MAC address of the virtual default gateway is set by the packet transfer rule generation unit 306. In order to generate the packet transfer rule, the MAC address of the default gateway set in the communication interface used for communication is necessary.
  • the two types of address resolution packets are an address resolution request packet for requesting a communication device to obtain a MAC address to transmit the MAC address, and a request to the communication device that has made the request.
  • This is an address resolution response packet for transmitting a response including the MAC address.
  • the address resolution request packet is, for example, an ARP (Address Resolution Protocol) request packet.
  • the address resolution response packet is, for example, an ARP reply packet.
  • the address resolution request packet is at least a source MAC address, a destination MAC address, a request source communication device, specifically, a request source MAC address that is a MAC address and an IP address of a communication device that transmits an address resolution request packet. And the request source IP address, the request destination communication device, specifically, the request destination MAC address and the request destination IP address which are the MAC address and IP address of the communication device to obtain the MAC address.
  • the values of those MAC addresses are arbitrary MAC address values. For example, the transmission destination MAC address is a broadcast address, and the request destination MAC address is an empty value.
  • the address resolution response packet is at least a source MAC address, a destination MAC address, a response source communication device, specifically, a response source MAC address that is a MAC address and an IP address of a communication device that transmits the address resolution response packet.
  • the response source IP address, the response destination communication device, specifically, the response destination MAC address and the response destination IP which are the MAC address and IP address of the communication device that has transmitted the address resolution request packet to which the address resolution response packet should be transmitted Contains an address.
  • the MAC address of the communication device to be obtained by the address resolution request is the response source MAC address included in the address resolution response packet.
  • the virtual default gateway is a virtual existence that exists only on the routing table 104, an address resolution response packet including the virtual default gateway MAC address can be obtained even if an address resolution request packet is transmitted to the virtual default gateway. Absent. Since the default gateway set for the communication interface used for communication does not exist on the routing table 104, the address resolution request packet is transmitted to the default gateway set for the communication interface used by the communication stack 103 for communication. None do. Therefore, the transfer control unit 300 performs processing for obtaining the MAC address of the virtual default gateway and the MAC address of the default gateway set in the communication interface used for communication.
  • a process for obtaining the MAC address of the virtual default gateway and the MAC address of the default gateway set in the communication interface used for communication will be described.
  • the packet transfer unit 200 receives an address resolution request packet for the virtual default gateway transmitted by the communication stack 103, specifically, a new packet from the packet transfer unit 200 due to the reception of the address resolution request packet for the virtual default gateway.
  • the transfer control unit 300 receives the flow detection notification, the transfer control unit 300 acquires the address information of each communication interface of the plurality of communication interfaces 101 through the address information management unit 304, and the default set in each communication interface Get the IP address of the gateway. Then, an address resolution request packet for each default gateway is generated, and the generated packet is transmitted to the packet transfer unit 200 together with an instruction to transmit the generated packet from each communication interface.
  • the packet transfer unit 200 transmits an address resolution request packet for each default gateway according to the instruction.
  • a packet transfer rule for the address resolution request packet flow for the virtual default gateway is: The packet transfer unit 200 is not set.
  • an address resolution response packet including the MAC address of each default gateway is transmitted from each default gateway to the communication device 100.
  • the packet transfer unit 200 receives an address resolution response packet including the MAC address of each default gateway, specifically, from the packet transfer unit 200 by receiving an address resolution response packet including the MAC address of each default gateway.
  • the transfer control unit 300 receives the new flow detection notification, the MAC address of each default gateway is acquired based on the flow information included in the new flow detection notification, and the acquired MAC address of each default gateway is The information is stored in the address information storage unit 303 through the information management unit 304.
  • the address resolution response packet including the MAC address of each default gateway is transmitted.
  • the packet transfer rule is not set in the packet transfer unit 200.
  • the virtual default gateway that is a virtual MAC address composed of an arbitrary value set in advance in the transfer control unit 300
  • An address resolution response packet including the MAC address is generated, and the generated packet is transmitted from the virtual interface 102.
  • the MAC address of the virtual default gateway necessary for the communication stack 103 to transmit the packet and the packet transfer rule generation unit 306 used for communication necessary for generating the packet transfer rule The MAC address of the default gateway set in the communication interface to be obtained can be obtained.
  • the packet transfer unit management unit 307 manages the packet transfer unit 200 using an arbitrary protocol for controlling the operation of the packet transfer unit 200.
  • the packet transfer unit management unit 307 transmits the generated packet transfer rule to the packet transfer unit 200 together with a setting instruction.
  • the use interface information including flow information that matches the flow of the received packet may not exist in the use interface information storage unit 301.
  • any one of the plurality of communication interfaces 101 may be set as a default communication interface in advance, and the packet transfer rule may be generated using the default communication interface as a communication interface used for communication.
  • default action information including an action of any content such as discarding a packet is set in advance, and the packet transfer rule is set based on the flow information included in the new flow detection notification and the default action information. It may be generated.
  • information of a nonexistent communication interface was set in information that can uniquely identify any of the plurality of communication interfaces 101 included in the use interface information including flow information that matches the flow of the received packet.
  • default action information for such use interface information such as discarding a packet is set in advance, and the packet transfer rule is set based on the flow information included in the new flow detection notification and the default action information. It may be generated.
  • the address information of each communication interface of the plurality of communication interfaces 101 may not include default gateway information.
  • the used interface information management unit 302 may be configured to make it impossible to set the used interface information that defines the use of the communication interface whose address information does not include the default gateway information.
  • default action information including an action of arbitrary contents such as discarding a packet for such use interface information may be set in advance, and a packet transfer rule may be generated based on the action information.
  • the packet transfer rule generated based on the changed use interface information is also changed. There is a need.
  • the transfer control unit 300 stores all packet transfer rules that match the flow information included in the changed used interface information in the packet transfer rule storage unit 201 of the packet transfer unit 200. Is acquired from the packet transfer rule table through the packet transfer unit management unit 307, the content of each acquired packet transfer rule is changed to the content based on the changed used interface information, and each changed packet transfer rule is changed. A packet transfer rule is changed by transmitting to the packet transfer part 200 through the packet transfer part management part 307 with the setting instruction
  • the communication stack 103 When communication is performed with a communication device on a network other than the network to which the communication device 100 is directly connected, the communication stack 103 is transmitted from the arbitrary communication program 105 operating on the communication device 100 to the virtual default gateway by the path control performed by the communication stack 103. To the default gateway on the network connected via the communication interface used for the communication specified by the used interface information set through the used interface information management unit 302.
  • a communication interface other than the preferentially set communication interface a plurality of communication interfaces are different from the method described in Patent Document 1 that cannot communicate with a communication apparatus on a network other than the network to which the communication apparatus is directly connected.
  • any communication interface 101 is used, it is possible to communicate with a communication device on a network other than the network to which the communication device 100 is directly connected. Therefore, it is possible to perform communication using the networks connected via the plurality of communication interfaces 101 at the same time.
  • the communication device 100 seems to perform communication in accordance with a normal IP communication mechanism, and therefore requires special measures on the network side, such as preparing a specific mechanism or an opposite communication device. do not do.
  • the communication device 100 can autonomously communicate without any need for pre-registering information on an arbitrary address of a specific communication device.
  • the communication program 105 seems to perform communication using the virtual default gateway via the virtual interface 102 regardless of the communication interface used for communication, the communication interface used for communication has been changed. If the address information of the communication interface changes due to a case where the lease expires or a handover occurs due to movement of the communication device, communication is performed without making the communication program 105 aware of it. Can do.
  • the user or An arbitrary program can select a network to be used for communication for each flow based on an arbitrary request or condition.
  • an application that is a communication program that sends and receives traffic with different characteristics can be seen as a set of several flows. Therefore, which network is used by an application that operates on a communication device with a finer granularity of a flow unit. Arbitrary selection of whether to perform communication can be realized, and improvement in the convenience of the communication device can be expected.
  • the traffic of an application in which the user transmits / receives an electronic mail with a small communication volume specifically, the destination port number is 25 (SMTP, Simple Mail Transfer Protocol) or 110 (POP3, Post Office Protocol version 3)
  • use interface information that defines the use of 3G is set, and traffic of an application that performs communication with a large amount of communication such as video streaming communication on the Web, specifically, a destination port
  • HTTP HyperText Transfer Protocol
  • each of the traffic is as communication is performed by using the 3G and wireless LAN.
  • an application operating on the communication device 100 that monitors whether or not each communication interface of the plurality of communication interfaces 101 can communicate is arbitrarily set by dynamically setting use interface information based on the state of each communication interface. It is possible to dynamically change the network used for communication of any flow. When the wireless LAN network is disconnected and communication becomes impossible, the usage interface information that defines the use of the wireless LAN is changed to the usage interface information that defines the use of 3G. Any flow of communication is performed using 3G.
  • an application that operates on the communication device 100 that monitors the reception field strengths of the wireless interfaces included in the plurality of communication interfaces 101 has a reception field strength that is greater than an arbitrarily set threshold based on the reception field strengths of the wireless interfaces.
  • an application running on the communication device 100 that monitors the number of packet transmissions / receptions of each of the plurality of communication interfaces 101 is based on the number of packet transmission / receptions of each communication interface and the upper limit of the number of packet transmissions / receptions preset by the user.
  • the present invention According to the embodiment, for any flow that uses a communication interface whose number of packet transmission / reception has reached the upper limit, communication is performed using another communication interface, or a packet is discarded, etc. Action can be taken.
  • FIG. 8 is a block diagram illustrating a more detailed configuration example of the communication apparatus focusing on elements related to communication in the second embodiment. Constituent elements similar to those of the communication device in the first embodiment are denoted by the same reference numerals, and detailed description thereof is omitted.
  • the packet transfer unit 200 of the communication device 100 according to the second embodiment configures a structure such as a bridge inside the communication device 100.
  • a case where the packet transfer unit 200 forms a bridge will be described as an example.
  • the communication stack 103 needs to transmit and receive packets using the virtual interface 102 connected to the bridge formed by the packet transfer unit 200, specifically, a local port of the bridge as an end point. is there.
  • the communication stack 103 cannot directly transmit / receive packets by using the plurality of communication interfaces 101 connected to the packet transfer unit 200. Therefore, even if the method of the first embodiment is applied as it is to the communication apparatus in the second embodiment, it is impossible to perform communication using the networks connected via the plurality of communication interfaces 101 at the same time.
  • setting of the IP address of the virtual interface 102 and setting of the routing table 104 of the communication stack 103 are performed so that packets are transmitted and received with the virtual interface 102 as an end point.
  • packet transfer rule generation processing it is possible to select a network to be used for communication for each flow and perform communication using a plurality of networks simultaneously.
  • virtual address information composed of arbitrary values is set as in the first embodiment.
  • the address information of the virtual interface 102 includes at least a virtual MAC address, a virtual IP address, and an IP address of a virtual default gateway.
  • the address information management unit 304 in the second embodiment acquires the address information of each interface of the plurality of communication interfaces 101 connected to the packet transfer unit 200 and the address information of the virtual interface 102 and stores them in the address information storage unit 303. Let Furthermore, the IP address of each communication interface included in the acquired address information is set in the virtual interface 102. Thereby, the virtual interface 102 in the second embodiment has one or more IP addresses, specifically, a virtual IP address and an IP address of each communication interface.
  • the routing table management unit 305 in the second embodiment sets only the virtual default gateway set in the virtual interface 102 in the routing table 104 of the communication stack 103. Furthermore, route information for communicating with each network connected via the plurality of communication interfaces 101 via each communication interface is deleted from the route table 104. Instead, route information for communicating via the virtual interface 102 to each network connected via the plurality of communication interfaces 101 is set in the route table 104.
  • FIG. 9 is a configuration example of a routing table in the second embodiment.
  • the routing table 104 is set as shown in FIG. 9 by the routing table management unit 305 in the second embodiment.
  • path information for performing communication via the virtual interface 102 is set in each network connected via the plurality of communication interfaces 101.
  • As the route information related to the default gateway only the route information of the virtual default gateway is set as in the first embodiment.
  • all packets can be transmitted and received via the virtual interface 102 in the communication stack 103. Specifically, not only when communicating with a communication apparatus on a network other than the network to which the communication apparatus 100 is directly connected, but also with a communication apparatus on a network connected via the plurality of communication interfaces 101. Even in this case, packets are transmitted and received with the virtual interface 102 as an end point.
  • a packet is transmitted after path control is performed on the communication stack 103.
  • the transfer unit 200 receives a packet transmitted from the communication program 105 from the virtual interface 102, the source MAC address of the packet is the virtual MAC address set in the virtual interface 102, and the destination MAC address of the packet is The MAC address of the virtual default gateway, the source IP address of the packet is the virtual IP address set in the virtual interface 102, and the destination IP address of the packet is the IP address of the destination communication device.
  • an arbitrary communication program 105 operating on the communication apparatus 100 communicates with a communication apparatus on a network connected via a plurality of communication interfaces 101, after path control is performed on the communication stack 103.
  • the packet transfer unit 200 receives a packet transmitted from the communication program 105 from the virtual interface 102, the packet source MAC address is set to the virtual MAC address set in the virtual interface 102, and the packet destination MAC address is set. Is the MAC address of the communication device that is the transmission destination, and the source IP address of the packet is set in the virtual interface 102 by the address information management unit 304.
  • the communication interface connected to the network in which the communication device of the transmission destination exists IP address, packet Destination IP address of the bets will IP address of the destination communication device.
  • FIG. 10 is a flowchart illustrating an example of processing in which the transfer control unit according to the second embodiment generates a packet transfer rule.
  • the packet transfer rule generation unit 306 When the packet transfer rule generation unit 306 receives the new flow detection notification, the packet transfer rule generation unit 306 refers to the flow information included in the new flow detection notification and identifies the communication interface that has received the packet based on the reception port number included in the flow information. . Then, the address information of the communication interface that has received the packet and the address information of the virtual interface 102 are acquired through the address information management unit 304 (step S301). The communication interface that has received the packet is one of the plurality of communication interfaces 101 and the virtual interface 102.
  • the packet transfer rule generation unit 306 refers to the flow information included in the new flow detection notification and identifies the source IP address of the received packet. Based on the network address obtained from the identified source IP address based on the subnet mask included in the address information of the communication interface that received the packet, and the IP address of each communication interface of the plurality of communication interfaces 101 set in the virtual interface 102 It is determined whether any of the obtained network addresses is equal (step S302). That is, based on the source IP address of the received packet, it is determined whether or not the packet is a packet transmitted from a communication device on the network connected via the communication interface that received the packet.
  • step S302 When the network address obtained from the identified source IP address is not equal to any one of the network addresses obtained from the IP addresses of the communication interfaces 101 of the plurality of communication interfaces 101 set in the virtual interface 102 (step S302). No), it can be determined that the packet is transmitted from a communication device on a network other than the network to which the communication device 100 is directly connected, not the communication device on the network connected via the communication interface that has received the packet. .
  • the packet is transmitted from the virtual interface 102 by the path control of the communication stack 103. Therefore, when a packet is received from a communication device on a network other than the network to which the communication device 100 is directly connected, it is necessary to take a measure so that the virtual interface 102 receives the packet.
  • the packet The transfer rule generation unit 306 rewrites the flow information included in the new flow detection notification, the action of rewriting the destination IP address with the virtual IP address set in the virtual interface 102 (step S303), and the destination MAC address in the virtual interface 102.
  • Action information including an action of rewriting the set virtual MAC address (step S304) and an action of transmitting the received packet to the virtual interface 102 (step S305) is included.
  • the packet received by the packet transfer unit 200 is received by the virtual interface 102 by packet transfer based on such a packet transfer rule.
  • step S302 When the network address obtained from the identified source IP address is equal to one of the network addresses obtained from the IP addresses of the communication interfaces 101 of the plurality of communication interfaces 101 set in the virtual interface 102 (Yes in step S302) ), It is determined whether or not the identified source IP address is equal to any of the IP addresses of the communication interfaces of the plurality of communication interfaces 101 set in the virtual interface 102 (step S306).
  • the communication interface that has received the packet passes through the communication interface. It can be determined that the packet is transmitted from a communication device on the connected network.
  • the identified source IP address is equal to any of the IP addresses of the communication interfaces of the plurality of communication interfaces 101 set in the virtual interface 102 (Yes in step S306), the packet transmitted by the communication program 105 It can be judged that.
  • the communication apparatus in the second embodiment In 100 since it is necessary to transmit and receive a packet with the virtual interface 102 as an end point, it is necessary to take a measure to allow the virtual interface 102 to receive the packet.
  • the packet transfer rule generation unit 306 performs the action of rewriting the flow information included in the new flow detection notification, the destination MAC address to the virtual MAC address set in the virtual interface 102 (step S304), and the received packet as a virtual A packet transfer rule including action information including an action (step S305) to be transmitted to the interface 102 is generated.
  • the packet received by the packet transfer unit 200 is received by the virtual interface 102 by packet transfer based on such a packet transfer rule.
  • the identified transmission source IP address is equal to one of the IP addresses of the communication interfaces of the plurality of communication interfaces 101 set in the virtual interface 102 (Yes in step S306)
  • the flow information included in the new flow detection notification Based on the above, the destination MAC address of the received packet is specified. Then, it is determined whether or not the identified transmission source MAC address is equal to the virtual default gateway MAC address set in the virtual interface 102 (step S307).
  • the communication program 105 sends a virtual default to a communication device on a network other than the network to which the communication device 100 is directly connected. It can be determined that the packet is transmitted using the gateway. On the other hand, if the identified source MAC address and the MAC address of the virtual default gateway are not equal (No in step S307), the communication program 105 is connected via any one of the plurality of communication interfaces 101. It can be determined that the packet is transmitted to a communication device on the network.
  • the packet transfer rule generation unit 306 determines the flow of the received packet based on the flow information included in the new flow detection notification. Used interface information including flow information conforming to the above is acquired through the used interface information management unit 302. Then, based on information that can uniquely identify any of the plurality of communication interfaces 101 included in the acquired use interface information, a communication interface to be used for communication is specified (step S308). Note that the communication interface used for communication is one of the plurality of communication interfaces 101.
  • the address information of the communication interface used for the specified communication is acquired through the address information management unit 304 (step S309).
  • the packet transfer rule generation unit 306 detects a new flow in order to transfer a packet whose destination is the virtual default gateway to the default gateway on the network connected via the communication interface used for communication.
  • Action for rewriting the flow information included in the notification and the MAC address set for the communication interface using the source MAC address for communication to the IP address set for the communication interface used for communication (step S310) )
  • the action of rewriting the destination MAC address to the MAC address of the default gateway set in the communication interface used for communication step S311), and the received packet is transmitted to the communication interface used for communication That action generates a packet forwarding rule including the action information consisting of (step S312).
  • the packet received by the packet transfer unit 200 is transmitted to the default gateway on the network connected through the communication interface used for communication.
  • a network to which the communication program 105 connects via any one of the plurality of communication interfaces 101 when the identified source MAC address is not equal to the MAC address of the virtual default gateway (No in step S307) It can be determined that the packet is transmitted to an upper communication device.
  • the communication stack 103 can directly send and receive packets by using a plurality of communication interfaces 101. Therefore, a communication device on a network connected via the plurality of communication interfaces 101. When the communication is performed, the packet may be transmitted from the communication interface that has received the packet to the destination communication device.
  • the packet transmitted from the communication program 105 is not a network to which the communication terminal 100 is directly connected by the communication device of the transmission destination.
  • the packet transfer unit 200 receives a packet transmitted from the virtual interface 102 regardless of whether the communication device is on the network of the network or the communication device on the network connected via the plurality of communication interfaces 101. That is, even when communication is performed with a communication apparatus on a network connected via a plurality of communication interfaces 101, it is necessary to specify a communication interface used for communication.
  • the IP address of each communication interface of the plurality of communication interfaces 101 is set in the virtual interface 102, and each network connected via the plurality of communication interfaces 101 is provided with the virtual interface 102.
  • the route information to be communicated via the route table 104 after the route control is performed on the communication stack 103, when the packet transfer unit 200 receives the packet, the source IP address of the packet is This is the IP address of the communication interface connected to the network where the destination communication device exists. Therefore, the communication interface used for communication can be specified based on the source IP address of the packet.
  • the packet transfer rule generation unit 306 acquires the address information of each communication interface of the plurality of communication interfaces 101 through the address information management unit 304. (Step S313).
  • any one of the plurality of communication interfaces 101 in which the specified source IP address is equal to the set IP address is used as a communication interface for communication. Specify (step S314).
  • the packet transfer rule generation unit 306 rewrites the flow information included in the new flow detection notification and the source MAC address to the MAC address set in the communication interface used for communication.
  • a packet transfer rule including (step S315) and action information including action (step S316) for transmitting the received packet to the communication interface used for communication is generated.
  • the packet received by the packet transfer unit 200 is transmitted from the communication interface connected to the network where the transmission destination communication device exists to the transmission destination communication device.
  • the communication stack 103 in the second embodiment performs address resolution to obtain the destination MAC address based on the IP address of the destination communication device prior to packet transmission. Do.
  • the communication device 100 according to the second embodiment performs packet transmission / reception using the virtual interface 102 as an end point, and therefore performs address resolution directly on each communication interface of the plurality of communication interfaces 101. I can't do it. For this reason, in the normal address resolution method, it is not only possible to obtain the MAC address of the transmission destination but also to respond to the address resolution request for each communication interface of the plurality of communication interfaces 101 from other communication devices.
  • FIG. 11 is a flowchart illustrating an example of address resolution processing of the transfer control unit in the second embodiment.
  • the packet transfer unit 200 When the packet transfer unit 200 receives the address resolution packet, the packet transfer unit 200 transmits a new flow detection notification for the address resolution packet flow to the transfer control unit 300 (step S401).
  • a packet for the address resolution packet flow is transmitted so that a new flow detection notification is transmitted from the packet transfer unit 200.
  • the transfer rule is not set in the packet transfer unit 200. It is assumed that the new flow detection notification for the address resolution packet flow includes the address resolution packet itself.
  • the transfer control unit 300 When receiving a new flow detection notification for the address resolution packet flow, the transfer control unit 300 acquires the address information of each communication interface of the plurality of communication interfaces 101 and the address information of the virtual interface 102 through the address information management unit 304. (Step S402). Then, referring to the contents of the address resolution packet, it is determined whether the received address resolution packet is an address resolution request packet or an address resolution response packet (step S403).
  • the request destination IP address included in the address resolution request packet is referred to and the request destination IP address and the plurality of communication interfaces 101 are Whether the received address resolution request packet is an address resolution request packet for making a request to each communication interface of the plurality of communication interfaces 101 is determined based on whether the IP address of any one of the communication interfaces is equal. (Step S404).
  • an address resolution response packet including the MAC address of the communication interface that has received the address resolution request packet is generated. To do. The reason is that when the received address resolution request packet is transferred to the virtual interface 102 and an address resolution response packet is generated by the address resolution processing of the communication stack 103, it is not the MAC address of the communication interface that received the address resolution request packet. This is because the virtual MAC address set in the virtual interface 102 is included in the address resolution response packet.
  • the transfer control unit 300 generates an address resolution response packet including the MAC address of the communication interface that has received the address resolution request packet (step S405), and transmits the packet generated from the communication interface that has received the packet to the requesting communication device. (Step S406).
  • an address resolution request from another communication device can be obtained. Can respond.
  • the address resolution request packet transmitted from the other communication device is not transferred to the virtual interface 102 by performing the above-described processing, and therefore, the address resolution response packet from the virtual interface 102 to the other communication device. Can never be sent.
  • the communication stack 103 is connected to another communication device via the virtual interface 102. It can be determined that this is an address resolution request packet transmitted to. If the communication interface that received the address resolution request packet is other than the virtual interface 102, it can be determined that the address resolution request packet is not related to the communication device 100, and therefore the received packet is discarded (not shown).
  • the transfer control unit 300 When the received address resolution request packet is not an address resolution request packet for making a request to each communication interface of the plurality of communication interfaces 101, the transfer control unit 300 includes a request destination IP address included in the address resolution request packet, a virtual address Based on whether or not the MAC address of the default gateway is equal, it is determined whether or not the received address resolution request packet is an address resolution request packet for making a request to the virtual default gateway (step S407).
  • the default gateway set in each communication interface as in the first embodiment Address resolution request for.
  • the communication stack 103 via the virtual interface 102 passes through the plurality of communication interfaces 101. Thus, it can be determined that the address resolution request packet is transmitted to a communication device on the connected network.
  • the transfer control unit 300 performs address resolution for the default gateway set in each communication interface.
  • a request packet is generated (step S408), and the generated packet is transmitted to the packet transfer unit 200 together with an instruction to transmit the generated packet from each communication interface (step S409).
  • the packet transfer unit 200 transmits an address resolution request packet to each default gateway according to the instruction.
  • an address resolution response packet including the MAC address of each default gateway is transmitted from each default gateway.
  • the received address resolution request packet is not an address resolution request packet for making a request to the virtual default gateway (No in step S407)
  • the received address resolution request packet is received by the communication stack 103 via the virtual interface 102. Since the address resolution request packet is transmitted to a communication device on a network connected via any one of the communication interfaces 101, the address resolution request packet is transmitted to the communication device. is required.
  • the IP address of each communication interface of the plurality of communication interfaces 101 is set in the virtual interface 102, and each network connected via the plurality of communication interfaces 101 is provided with the virtual interface 102. Since the route information to be communicated via the communication is set in the route table 104, the request source IP address included in the address resolution request packet transmitted by the communication stack 103 via the virtual interface 102 is a communication to obtain a MAC address. This is the IP address of one of the plurality of communication interfaces 101 connected to the network in which the device exists. Therefore, the communication interface used for communication can be specified based on the request source IP address.
  • the transfer control unit 300 determines that the request source IP address included in the address resolution request packet and the set IP address are One of the equal communication interfaces 101 is specified as a communication interface used for communication (step S410).
  • the source MAC address and the request source MAC address included in the received address resolution request packet are rewritten to the MAC address of the communication interface used for communication (step S411), and the source MAC An address resolution request packet in which the address and the request source MAC address are rewritten is transmitted from the communication interface used for communication (step S412).
  • the address resolution request packet is transmitted to a communication device on a network connected via any one of the plurality of communication interfaces 101.
  • the received address resolution packet is an address resolution response packet (response in step S403)
  • the response destination IP address included in the address resolution response packet is referred to and the response destination IP address and the plurality of communication interfaces 101 are referred to.
  • Whether or not the received address resolution response packet is an address resolution response packet that is a response to each communication interface of the plurality of communication interfaces 101 is determined based on whether or not the IP address of any one of the communication interfaces is equal. Step S413).
  • the communication interface that received the address resolution response packet is other than the virtual interface 102. If there is, it can be determined that the address resolution request packet is not related to the communication apparatus 100, and the received packet is discarded (S414).
  • an address resolution response packet including the MAC address of the communication interface that has received the packet is generated and transmitted to the requesting communication device. Since the address resolution request packet is not transferred to the virtual interface 102, an address resolution response packet for another communication device is not transmitted from the virtual interface 102. Therefore, it is not necessary to consider the address resolution response packet transmitted from the virtual interface 102.
  • the response source IP address included in the address resolution response packet Whether the received address resolution response packet is an address resolution response packet that is a response from the default gateway set for each communication interface, based on whether or not the MAC address of the default gateway set for the communication interface is equal. Determination is made (step S415).
  • the received address resolution response packet is an address resolution response packet that is a response from each default gateway (Yes in step S415), storage of the MAC address of each default gateway, as in the first embodiment, and Perform address resolution response for the virtual default gateway.
  • the MAC address of each default gateway can be acquired from the response source MAC address included in the address resolution response packet that is a response from each default gateway.
  • the acquired MAC address of each default gateway is stored through the address information management unit 304 (step S416).
  • it is determined whether or not the MAC addresses of all default gateways have been acquired step S417).
  • the transfer control unit 300 includes the virtual MAC addresses of the virtual default gateway.
  • An address resolution response packet is generated (step S418), and the generated packet is transmitted to the packet transfer unit 200 together with an instruction to transmit the generated packet from the virtual interface 102 (step S419).
  • the packet transfer unit 200 transmits an address resolution response packet including the virtual MAC address of the virtual default gateway according to the instruction.
  • an address resolution response packet including the virtual MAC addresses of the virtual default gateways is generated and transmitted to the virtual interface 102, so that the communication stack 103 transmits the packets.
  • the necessary MAC address of the virtual default gateway and the MAC address of the default gateway set in the communication interface used for communication necessary for the packet transfer rule generation unit 306 to generate the packet transfer rule can be obtained.
  • the communication stack 103 transmits via the virtual interface 102 and is forwarded to the request destination transmission apparatus. It can be said that the response to the address resolution request packet is an address resolution response packet transmitted from the requesting transmission apparatus.
  • the response destination IP address included in the address resolution response packet is the IP address of one of the plurality of communication interfaces 101 used when transmitting the address resolution request packet to the request destination transmission apparatus. Since the communication stack 103 transmits the address resolution request packet via the virtual interface 102, it is necessary to take measures so that the virtual interface 102 receives the address resolution response packet.
  • the destination MAC address and the response destination MAC address included in the received address resolution response packet are rewritten to the MAC address of the virtual interface 102 (step S420), and the address resolution is rewritten to the destination MAC address and the response destination MAC address.
  • a response packet is transmitted from the virtual interface 102 (step S421).
  • the transmission destination MAC address and the response destination MAC address included in the received address resolution response packet are rewritten to the MAC address of the virtual interface 102 and transmitted from the virtual interface 102, so that the virtual interface 102 passes through the plurality of communication interfaces 101. Address resolution for obtaining the MAC address of the transmitting device on the connected network.
  • the user or an arbitrary program sets use interface information for each flow in the use interface information storage unit 301 through the use interface information management unit 302.
  • a plurality of used interface information may be set for each flow so that communication is performed using a plurality of different communication interfaces.
  • FIG. 12 is a configuration example of the used interface information stored in the used interface information storage unit in the third embodiment.
  • the used interface information is a parameter indicating the priority of each used interface information and whether or not the communication interface is in a communicable state as parameters for specifying the communication interface used for communication. It includes permission / rejection, a threshold value of received electric field strength, and an upper limit of the number of packets to be transmitted / received.
  • the packet transfer rule generation unit 306 includes flow information and parameters for specifying a communication interface used for communication.
  • the packet transfer rule is selected. For example, the communication interface having the lowest priority value among the communication interfaces capable of communication is used, the wireless interface having the reception field strength value larger than the threshold value is stored, the number of transmitted / received packets is stored, and the number of packets is By selecting the interface information to be used according to a combination of several parameters, such as not using a communication interface that has reached the upper limit, communication can be performed by dynamically selecting a communication interface that meets any request or condition. it can.
  • the communication device 100 is a communication device that uses a network control method in units of flows, and controls the packet transfer unit 200 that transfers received packets and the operation of the packet transfer unit 200.
  • the packet transfer unit 200 and the transfer control unit 300 are connected by an arbitrary method.
  • the packet transfer unit 200 and the transfer control unit 300 perform the packet transfer described in the first and second embodiments.
  • the packet transfer unit 200 is stopped due to an operation stoppage of the transfer control unit 300 due to an error.
  • the connection with the transfer control unit 300 is disconnected, there is a problem that packet transfer cannot be performed and communication is disabled.
  • route information for enabling communication by packet transfer by the packet transfer unit 200 and the transfer control unit 300 is set in the route table 104. Even if the communication stack 103 performs path control using the path table 104, communication cannot be performed.
  • the route information whose next hop is the virtual default gateway is set as the route information related to the default gateway on the route table 104. Therefore, on the network other than the network to which the communication device 100 is directly connected. Communication with the communication device cannot be performed.
  • only route information whose next hop is a virtual default gateway is set as route information related to the default gateway on the route table 104.
  • the destination network is each network connected via the plurality of communication interfaces 101, and the output interface is virtual.
  • the route information that is the interface 102 is set. Therefore, communication with not only a communication device on a network other than the network directly connected to the communication device 100 but also a communication device on each network connected via the plurality of communication interfaces 101 cannot be performed.
  • the route control performed by the communication stack 103 is performed. By switching the routing table to be used, avoiding communication failure.
  • FIG. 13 is a block diagram illustrating a configuration example of a communication device according to the fourth embodiment. Constituent elements similar to those of the communication device in the first and second embodiments are denoted by the same reference numerals, and detailed description thereof is omitted.
  • the communication stack 103 according to the fourth embodiment includes a route table 104 used for enabling communication by packet transfer by the packet transfer unit 200 and the transfer control unit 300, and a route table 106 used when packet transfer cannot be performed. have.
  • the communication device 100 according to the fourth embodiment includes a connection monitoring unit 400 that monitors the connection between the packet transfer unit 200 and the transfer control unit 300.
  • the communication stack 103 includes an address information storage unit 107, an address information management unit 108, and a route table management unit 109.
  • the route table 104 used to enable communication by packet transfer by the packet transfer unit 200 and the transfer control unit 300 includes an address information storage unit 303, an address information management unit 304, and a route table management unit 305 of the transfer control unit 300.
  • the configuration shown in FIG. 6 in the first embodiment or in FIG. 9 in the second embodiment is set.
  • the routing table 106 used when packet transfer cannot be performed is shown in FIG. 15 by the address information storage unit 107, the address information management unit 108, and the routing table management unit 109 of the communication stack 103 in the fourth embodiment.
  • the configuration is set as follows.
  • the address information management unit 108 acquires the address information of each communication interface of the plurality of communication interfaces 101 and stores it in the address information storage unit 107, as in the address information management unit 304. Further, the address information management unit 108 re-addresses the address information of the communication interface in which the change of the address information has occurred when the change of the address information occurs due to the DHCP lease expiration or the occurrence of a handover accompanying the movement of the communication device. Acquired and stored in the address information storage unit 107.
  • the routing table management unit 109 sets the routing table 106 to be used when packet transfer by the packet transfer unit 200 and the transfer control unit 300 cannot be performed based on the address information stored in the address information storage unit 107.
  • the destination network is each network connected via the plurality of communication interfaces 101, and the output interface is each communication interface.
  • route information related to the default gateway on the route table 106 only the route information related to any of the default gateways among the default gateways whose next hop is set for each communication interface 101 is set.
  • the route information regarding each default gateway set for each communication interface of the plurality of communication interfaces 101 may be set. However, in that case, one of the route information related to any of the default gateways among the default gateways set for each communication interface of the plurality of communication interfaces 101 is preferentially set.
  • the route information related to the default gateway set in the route table 106 is determined by an arbitrary method. For example, any one of the plurality of communication interfaces 101 is set as a default communication interface in advance, and route information that is a default gateway whose next hop is set as a default communication interface is set.
  • the connection monitoring unit 400 monitors the connection between the packet transfer unit 200 and the transfer control unit 300, and sets the communication stack 103 to switch the route table used for route control based on the connection state.
  • the connection monitoring unit 400 sets the communication stack 103 so as to perform route control using the route table 104.
  • the configuration of the communication device 100 is the same as the configuration illustrated in FIG. 4 in the first embodiment or the configuration illustrated in FIG. 8 in the second embodiment.
  • the communication stack 103 performs path control using the path table 104, communication can be performed by packet transfer by the packet transfer unit 200 and the transfer control unit 300.
  • connection monitoring unit 400 When the connection monitoring unit 400 detects that the connection between the packet transfer unit 200 and the transfer control unit 300 is disconnected, the connection monitoring unit 400 sets the communication stack 103 so as to perform route control using the route table 106. When the connection between the packet transfer unit 200 and the transfer control unit 300 is disconnected, the packet transfer unit 200 and the transfer control unit are switched by switching the route table used for route control of the communication stack 103 from the route table 104 to the route table 106. Even when packet transfer by 300 is not possible, communication can be performed by route control of the communication stack 103.
  • the configuration of the communication device 100 is as shown in FIG.
  • connection monitoring unit 400 disconnects the packet transfer unit 200 and the transfer control unit 300, switches the route table used for route control of the communication stack 103 from the route table 104 to the route table 106, and then transfers the packet.
  • Path table used by the communication stack 103 for path control so that communication is possible by packet transfer by the packet transfer unit 200 and the transfer control unit 300 when it is detected that the unit 200 and the transfer control unit 300 are connected. May be switched from the route table 106 to the route table 104.
  • the communication stack 103 is used when the packet transfer unit 200 and the transfer control unit 300 cannot perform packet transfer with the route table 104 used to enable communication by packet transfer.
  • the route table 106 to be used has two route tables, the number of route tables that the communication stack 103 has is not particularly limited and may be one or more.
  • a plurality of route information relating to routes to each network connected via a plurality of communication interfaces 101 and route information relating to default gateways are set on one route table, and the connection state between the packet transfer unit 200 and the transfer control unit 300 On the basis of the above, appropriate route information may be set to be dominant, and the route information used for route control performed by the communication stack 103 may be switched.
  • route information regarding a route to each network connected via a plurality of communication interfaces 101 a route in which a destination network is each network connected via a plurality of communication interfaces 101, and an output interface is each communication interface
  • the route table 104 is set with route information in which the information and the destination network are each network connected via the plurality of communication interfaces 101 and the output interface is a virtual interface.
  • route information related to the default gateway route information whose next hop is a default gateway among the default gateways set for each communication interface of the plurality of communication interfaces 101, and route information whose next hop is a virtual interface. Is set in the routing table 104.
  • the destination network is connected via the plurality of communication interfaces 101 as route information regarding the route to each network connected via the plurality of communication interfaces 101.
  • the route information whose output interface is a virtual interface is preferentially set, and the route information whose next hop is a virtual interface is preferentially set as route information related to the default gateway, whereby the packet transfer unit 200 and Communication can be performed by packet transfer by the transfer control unit 300.
  • the transmission destination network uses a plurality of communication interfaces 101 as route information regarding a route to each network connected through the plurality of communication interfaces 101.
  • a default gateway in which route information is set for each communication interface of the plurality of communication interfaces 101 as the route information related to the default gateway. Even if packet transfer cannot be performed, communication can be performed by the path control performed by the communication stack 103 by preferentially setting the route information that is one of the default gateways.
  • a communication device including one or more communication interfaces, for example, It is suitably applied to a personal computer, a smart phone and the like.
  • Communication Device 101 Multiple Communication Interfaces 102 Virtual Interface 103 Communication Stack 104 Routing Table 105 Communication Program 106 Routing Table 107 Address Information Storage Unit 108 Address Information Management Unit 109 Path Table Management Unit 200 Packet Transfer Unit 201 Packet Transfer Rule Storage Unit 202 Packet Transfer rule management unit 203 Flow identification unit 204 Action execution unit 300 Transfer control unit 301 Use interface information storage unit 302 Use interface information management unit 303 Address information storage unit 304 Address information management unit 305 Route table management unit 306 Packet transfer rule generation unit 307 Packet transfer unit management unit 400 Connection monitoring unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

 ユーザ又は任意のプログラムがフロー毎に通信に利用するネットワークを選択可能な通信装置を提供する。通信装置(100)は、1つ以上の通信インタフェース(101)と、受信したパケットを転送するパケット転送部(200)と、パケット転送部(200)の動作を制御する転送制御部(300)とを備え、フロー単位のネットワーク制御方式を利用する通信装置であって、ユーザ又は任意のプログラムが設定したフロー毎にどの通信インタフェースを使用して通信を行うのかを定める使用インタフェース情報に基づき、パケット転送ルールを生成し、そのパケット転送ルールに従って、通信に使用する通信インタフェースを介してパケットを送受信するようにパケット転送を行う。

Description

通信装置、転送制御方法及び転送制御プログラム 関連する出願
 本出願では、2012年9月6日に日本国に出願された特許出願番号2012-196023及び2013年6月4日に日本国に出願された特許出願番号2013-118074の利益を主張し、これらの出願の内容は引用することによりここに組み込まれているものとする。
 本発明は、ネットワーク上で通信を行う通信装置、転送制御方法及び転送制御プログラムに関し、特に、1つ以上の通信インタフェースと、パケットを転送するパケット転送部と、パケット転送部の動作を制御する転送制御部とを備えるフロー単位のネットワーク制御方法を利用する通信装置、及びその通信装置に適用される転送制御方法、転送制御プログラムに関する。
 近年、無線LAN(Wireless Local Area Network)、3G(第3世代移動通信システム)、WiMAX(Worldwide Interoperability for Microwave Access)、LTE(Long Term Evolution)等の高速無線通信技術の発展によって、通信装置が複数の通信インタフェースを備えることが一般化しつつある。また、スマートフォンやタブレット等をはじめとする高機能な通信装置上では多種多様なアプリケーションが動作し、従来の通信装置と比較して送受信するトラフィックが大幅に増加している。
 上記のような通信装置の普及に伴う公衆無線ネットワークの負荷増大の深刻化を背景として、ネットワークの効率利用が通信装置における問題の1つとなっている。通信が発生する頻度や通信量等、異なる特性を持つトラフィックを送受信する通信プログラムであるアプリケーションに応じて適切なネットワークを利用して通信を行うことにより、上記問題を緩和することが期待できる。
 しかしながら、複数の通信インタフェースを備えることで、複数のネットワークに接続することはできても、それらを同時に利用して通信を行うための機構が無いため、現在の通信装置は、通信インタフェースを排他的に利用しており、上記のようなアプリケーションに応じて適切に利用するネットワークを選択することを実現することはできない。
 複数のネットワークを同時に利用して通信を行うことができないという課題は、通信に使用する通信インタフェースを選択するための機構が十分でないことに起因する。
 IP通信においては、通信装置が直接接続するネットワーク以外のネットワーク上にある通信装置と通信を行う場合、通信装置が直接接続するネットワークのデフォルトゲートウェイを介して通信を行う。デフォルトゲートウェイは、通信インタフェース毎に設定することが可能であり、複数の通信インタフェースを備える通信装置においては、経路表上に複数のデフォルトゲートウェイが存在することになる。そのような場合、通信装置上の通信スタックが行う経路制御において、どのデフォルトゲートウェイを使用して通信を行えば良いか分からず、通信不能に陥ってしまう。
 ネットワーク上の通信装置間の疎通確認を行うpingコマンド等の通信プログラムは、通信に使用する通信インタフェースを指定することが可能である。そのような機能を持つ通信プログラムの通信においては、指定した通信インタフェースに設定されるデフォルトゲートウェイが使用されるため、経路表上に複数のデフォルトゲートウェイが存在する場合でも、通信を行うことが可能である。しかしながら、通信装置上で動作する全ての通信プログラムにそのような機能を実装し、個別に通信に使用する通信インタフェースを指定することは容易ではない。
 通信装置によっては、最後に設定されたデフォルトゲートウェイを選択する等の、何らかの規則に従って、経路表上の複数のデフォルトゲートウェイのうちのいずれかを選択して通信を行うことによって、通信不能に陥ることを回避する。しかしながら、通信に使用する通信インタフェース若しくはデフォルトゲートウェイを、明示的に指定するものではないため、通信インタフェースの状態が変化し、通信インタフェースに設定されるアドレス情報に変更が発生するような環境においては、意図と異なるネットワークで通信が行われてしまう可能性がある。
 従来からも、上記課題を考慮した複数の通信インタフェースを備える通信装置に関する様々な提案が成されている。例えば、特許文献1に記載の方法では、ネットワークの品質、バッテリの充電量、課金額等に基づき、複数の通信インタフェースのうちいずれか1つの通信インタフェースを優位に設定し、優位に設定した通信インタフェースに設定されるデフォルトゲートウェイのみを経路表に設定することで、優位に設定した通信インタフェースに設定されるデフォルトゲートウェイを使用して通信が行われるようになる。
国際公開第2009/057477号
 特許文献1に記載の方法によって、複数の通信インタフェースを備える通信装置における複数のインタフェースを同時に使用した通信は可能になるものの、複数のデフォルトゲートウェイのうち優位に設定した通信インタフェースに設定されるデフォルトゲートウェイのみを使用して通信を行うため、優位に設定した通信インタフェース以外の通信インタフェースでは、通信装置が直接接続するネットワーク以外のネットワーク上にある通信装置と通信することはできないという課題があり、複数のネットワークを同時に利用した通信を実現する方法としては不十分である。
 また、特許文献1に記載の方法は、複数のデフォルトゲートウェイのうちいずれか1つを選択可能にする方法であることから、通信装置が直接接続するネットワーク以外のネットワーク上にある通信装置と通信するアプリケーションが行う通信は、全て優位に設定した通信インタフェースを介し、優位に設定した通信インタフェースに設定されるデフォルトゲートウェイを使用した通信になるという課題もあった。そのため、アプリケーション毎といったより細かい粒度で通信に使用する通信インタフェース若しくはデフォルトゲートウェイを選択可能な方法が望まれる。
 本発明は、複数の通信インタフェースを備える通信装置に関する上記課題に鑑みて成されたものであり、複数のネットワークを同時に利用して通信を行うこと、及びユーザ又は任意のプログラムからフロー毎に通信に使用する通信インタフェースを選択することを実現することで、フロー毎に適切なネットワークを利用して通信を行うことが可能な通信装置、転送制御方法及び転送制御プログラムを提供することを目的とする。
 本発明による通信装置は、フロー毎に通信に使用する通信インタフェースを選択することが可能な、フロー単位のネットワーク制御方式を利用する通信装置であって、1つ以上の通信インタフェースと、受信したパケットを転送するパケット転送部と、前記パケット転送部の動作を制御する転送制御部とを備えるという構成を有している。
 また、本発明による転送制御方法は、1つ以上の通信インタフェースと、受信したパケットを転送するパケット転送部とを備えるフロー単位のネットワーク制御方式を利用する通信装置において、フロー毎に通信に使用する通信インタフェースを選択可能にする転送制御方法であって、パケットを受信したときのパケット転送部の動作を定める情報であるパケット転送ルールを生成するパケット転送ルール生成ステップと、パケット転送ルール生成ステップが生成したパケット転送ルールを、パケット転送部に設定するパケット転送部管理ステップとを含む構成を有している。
 また、本発明による転送制御プログラムは、1つ以上の通信インタフェースと、受信したパケットを転送するパケット転送部とを備えるフロー単位のネットワーク制御方式を利用するコンピュータに、フロー毎に通信に使用する通信インタフェースを選択可能にする処理を実行させるプログラムであって、パケットを受信したときのパケット転送部の動作を定める情報であるパケット転送ルールを生成するパケット転送ルール生成処理と、パケット転送ルール生成処理が生成したパケット転送ルールを、パケット転送部に設定するパケット転送部管理処理とを実行させる構成を有している。
 本発明によれば、複数のネットワークを同時に利用して通信を行うこと、及びユーザ又は任意のプログラムからフロー毎に通信に使用する通信インタフェースを選択可能にすることで、フロー毎に適切なネットワークを利用して通信を行うことができるという効果を奏する。
 以下に説明するように、本発明には他の態様が存在する。したがって、この発明の開示は、本発明の一部の提供を意図しており、ここで記述され請求される発明の範囲を制限することは意図していない。
図1は、本発明の実施形態における通信装置の構成例を示すブロック図 図2は、本発明の実施形態におけるパケット転送部の構成例を示すブロック図 図3は、パケット転送部がパケットを受信したときの処理の例を示すフローチャート 図4は、第1の実施形態における通信に係る要素に着目したより詳細な通信装置の構成例を示すブロック図 図5は、本発明の実施形態における転送制御部の構成例を示すブロック図 図6は、第1の実施形態における経路表の構成例 図7は、第1の実施形態における転送制御部がパケット転送ルールを生成する処理の例を示すフローチャート 図8は、第2の実施形態における通信に係る要素に着目したより詳細な通信装置の構成例を示すブロック図 図9は、第2の実施形態における経路表の構成例 図10は、第2の実施形態における転送制御部がパケット転送ルールを生成する処理の例を示すフローチャート 図11は、第2の実施形態における転送制御部のアドレス解決処理の例を示すフローチャート 図12は、第3の実施形態における使用インタフェース情報記憶部に記憶される使用インタフェース情報の構成例 図13は、第4の実施形態における通信に係る要素に着目したより詳細な通信装置の構成例を示すブロック図 図14は、第4の実施形態における通信スタックの構成例を示すブロック図 図15は、第4の実施形態における経路表の構成例 図16は、第4の実施形態におけるパケット転送が行えない場合の通信に係る要素に着目したより詳細な通信装置の構成例を示すブロック図
 以下に、本発明の詳細な説明を述べる。以下に説明する実施の形態は本発明の単なる例であり、本発明は様々な態様に変形することができる。従って、以下に開示する特定の構成および機能は、特許請求の範囲を限定するものではない。
 実施の形態の通信装置は、フロー毎に通信に利用するネットワークを選択することが可能な、フロー単位のネットワーク制御方式を利用する通信装置であって、1つ以上の通信インタフェースと、受信したパケットを転送するパケット転送部と、パケット転送部の動作を制御する転送制御部と備えた構成を有している。この構成により、フロー毎に適切なネットワークを利用して通信を行うことができる。
 パケット転送部は、1つ以上の通信インタフェース及び仮想インタフェースに接続し、パケットの転送を行ってよい。
 転送制御部は、フローを識別可能な情報であるフロー情報と、1つ以上の通信インタフェースのうちのいずれかを一意に特定可能な情報とを含む情報であって、フロー毎にどの通信インタフェースを使用して通信を行うのかを定める使用インタフェース情報を記憶する使用インタフェース情報記憶部と、使用インタフェース情報記憶部に記憶させる使用ネットワーク情報を、ユーザ又は任意のプログラムから設定することを可能にする使用インタフェース情報管理部とを備えていてよい。
 転送制御部は、通信インタフェース及び仮想インタフェースがパケットの送受信を行うために必要な情報であって、通信インタフェース及び仮想インタフェースに設定されるアドレス情報を記憶するアドレス記憶部と、アドレス情報を通信インタフェース及び仮想インタフェースから取得してアドレス記憶部に記憶させるアドレス情報管理部と備えていてよい。
 転送制御部は、アドレス情報管理部が取得した1つ以上の通信インタフェース毎に設定されるデフォルトゲートウェイ及び仮想インタフェースに設定される仮想デフォルトゲートウェイのうち仮想デフォルトゲートウェイのみを通信装置の経路表に設定する経路表管理部を備えていてよい。
 転送制御部は、パケットを受信したときのパケット転送部の動作を定める情報であるパケット転送ルールを生成するパケット転送ルール生成部と、パケット転送部を管理し、パケット転送ルール生成部が生成したパケット転送ルールをパケット転送部に設定するパケット転送部管理部と備えていてよい。
 パケット転送ルール生成部は、パケット転送部からパケット転送ルールの生成を要求されたとき、使用インタフェース情報に基づき、通信に使用する通信インタフェースを特定し、フロー情報、及び通信に使用する通信インタフェースのアドレス情報に基づき、パケットに含まれる任意のアドレス及び識別子の値の書き換え、及び通信に使用する通信インタフェースにパケットを送信する処理等に関する情報を含むパケット転送ルールを生成してよい。
 パケット転送ルール生成部は、パケット転送ルールの生成を要求されたフローの送信先が仮想デフォルトゲートウェイである場合、フローに適合するフロー情報を含む使用インタフェース情報に基づき、通信に使用する通信インタフェースを特定し、パケット転送部がフローのパケットを通信に使用する通信インタフェースに設定されるデフォルトゲートウェイに転送するように、パケット転送ルールを生成してよい。
 上記の通信装置は、更に、仮想インタフェースと、1つ以上の経路表を有する通信スタックと、パケット転送部と転送制御部の接続を監視する接続監視部とを備えていてよい。の構成により、前記パケット転送部と前記転送制御部との接続が切れた際、そのことを検知して必要な措置を行うことができる。
 1つ以上の経路表は、パケット転送部及び転送制御部によるパケット転送によって通信を可能にするために使用する第1の経路表と、パケット転送が行えない場合に使用する第2の経路表とを含んでいてよい。この構成により、前記パケット転送部と前記転送制御部との接続が切れた際、前記第1の経路表によっては通信装置が直接接続するネットワーク以外のネットワーク上の通信装置及び前記複数の通信インタフェースを介して接続するネットワーク上の通信装置との通信を行えなくなったとしても、前記通信スタックの経路制御に使用する経路表を前記第2の経路表に切り替えることで、通信不能に陥ることを回避できる。
 転送制御部は、1つ以上の通信インタフェース及び仮想インタフェースがパケットの送受信を行うために必要な情報であって、1つ以上の通信インタフェース及び仮想インタフェースに設定されるアドレス情報を記憶するアドレス記憶部と、アドレス情報を取得してアドレス記憶部に記憶させるアドレス情報管理部と、アドレス情報管理部に記憶された情報に基づき、第1の経路表の設定を行う経路表管理部とを備えていてよく、通信スタックが仮想インタフェースに設定される仮想デフォルトゲートウェイに関する経路情報を使用して経路制御を行うように第1の経路表を設定してよい。この構成により、前記パケット転送部と前記転送制御部とが接続されている場合、前記通信スタックが前記第1の経路表を使用して経路制御を行うことで、前記パケット転送部及び前記転送制御部によるパケット転送によってフロー毎に適切なネットワークを利用して通信を行うことが可能になる。
 通信スタックは、アドレス情報を記憶するアドレス記憶部と、アドレス情報を取得してアドレス記憶部に記憶させるアドレス情報管理部と、アドレス情報管理部に記憶された情報に基づき、第2の経路表の設定を行う経路表管理部とを備えていてよく、通信スタックが1つ以上の通信インタフェース毎に設定されるデフォルトゲートウェイのうちいずれか1つのデフォルトゲートウェイに関する経路情報を使用して経路制御を行うように第2の経路表を設定してよい。この構成により、前記パケット転送部と前記転送制御部との接続が切れた場合にも、前記通信スタックが前記第2の経路表を使用して経路制御を行うことで、通信を行うこと可能になる。
 接続監視部は、パケット転送部と転送制御部との接続状態に基づき、通信スタックの経路制御に使用する経路表を、第1の経路表又は第2の経路表に切り替えることにより、通信を可能としてよい。前記接続監視部が通信スタックの経路制御に使用する経路表を切り替えることで、前記パケット転送部と前記転送制御部とが接続されている場合にも、その接続が切れている場合にも、通信を行うことが可能になる。
 実施の形態の転送制御方法は、1つ以上の通信インタフェースと、受信したパケットを転送するパケット転送部とを備えるフロー単位のネットワーク制御方式を利用する通信装置において、ユーザ又は任意のプログラムがフロー毎に通信に使用する通信インタフェースを選択可能にする転送制御方法であって、パケットを受信したときのパケット転送部の動作を定める情報であるパケット転送ルールを生成するパケット転送ルール生成ステップと、パケット転送部を管理し、パケット転送ルール生成ステップが生成したパケット転送ルールをパケット転送部に設定するパケット転送部管理ステップと含む構成を有している。この構成により、フロー毎に適切なネットワークを利用して通信を行うためのパケット転送を行うことができる。
 パケット転送ルール生成ステップでは、パケット転送部からパケット転送ルールの生成を要求されたとき、フローを識別可能な情報であるフロー情報と、1つ以上の通信インタフェースのうちのいずれかを一意に特定可能な情報であって、フロー毎にどの通信インタフェースを使用して通信を行うのかを定める使用インタフェース情報と、通信インタフェースがパケットの送受信を行うために必要な情報であって、通信インタフェースに設定されるアドレス情報とに基づき、パケットに含まれる任意のアドレス及び識別子の値の書き換え、及び通信に使用する通信インタフェースにパケットを送信する処理に関するパケット転送ルールを生成してよい。
 通信装置は、さらに、仮想インタフェースと、1つ以上の経路表を有する通信スタックと、パケット転送部の動作を制御する転送制御部とを備え、フロー毎に通信に利用するネットワークを選択することが可能な、フロー単位のネットワーク制御方式を利用する通信装置であってよく、転送制御方法は、パケット転送部と転送制御部の接続を監視する方法であってよく、パケット転送部と転送制御部との接続状態に基づき、通信スタックの経路制御に使用する経路表を切り替えることにより、通信を可能としてよい。この構成により、前記パケット転送部と前記転送制御部との接続が切れた際、そのことを検知して前記通信スタックの経路制御に使用する経路表を切り替えることで、通信を行うことができる。
 実施の形態の転送制御プログラムは、1つ以上の通信インタフェースと、受信したパケットを転送するパケット転送部とを備えるフロー単位のネットワーク制御方式を利用するコンピュータにおいて、ユーザ又は任意のプログラムがフロー毎に使用する通信インタフェースを選択可能にする処理を実行させる転送制御プログラムであって、コンピュータに、パケットを受信したときのパケット転送部の動作を定める情報であるパケット転送ルールを生成するパケット転送ルール生成処理と、パケット転送部を管理し、パケット転送ルール生成処理が生成したパケット転送ルールをパケット転送部に設定するパケット転送部管理処理とを実行させる構成を有している。この構成により、フロー毎に適切なネットワークを利用して通信を行うためのパケット転送を行うことができる。
 パケット転送ルール生成処理では、パケット転送部からパケット転送ルールの生成を要求されたとき、フローを識別する情報であるフロー情報と、1つ以上の通信インタフェースのうちのいずれかを一意に特定可能な情報であって、フロー毎にどの通信インタフェースを使用して通信を行うのかを定める使用インタフェース情報と、通信インタフェースがパケットの送受信を行うために必要な情報であって、通信インタフェースに設定されるアドレス情報とに基づき、パケットに含まれる任意のアドレス及び識別子の値の書き換え、及び通信に使用する通信インタフェースにパケットを送信する処理に関するパケット転送ルールを生成させてよい。
 コンピュータは、仮想インタフェースと、1つ以上の経路表を有する通信スタックと、パケット転送部の動作を制御する転送制御部とをさらに備え、フロー毎に通信に利用するネットワークを選択することが可能な、フロー単位のネットワーク制御方式を利用するコンピュータであってよく、転送制御プログラムは、パケット転送部と転送制御部の接続を監視するプログラムであってよく、パケット転送部と転送制御部との接続状態に基づき、通信スタックの経路制御に使用する経路表を切り替えることにより、通信を可能としてよい。この構成により、前記パケット転送部と前記転送制御部との接続が切れた際、そのことを検知して前記通信スタックの経路制御に使用する経路表を切り替えることで、通信を行うことができる。
 以下、本発明の実施形態について図面を参照して説明する。
(第1の実施形態)
 図1は、本発明の実施形態における通信装置の構成例を示すブロック図である。本発明の実施形態における通信装置100は、フロー単位のネットワーク制御方式を利用する通信装置であって、複数の通信インタフェース101と、受信したパケットの転送を行うパケット転送部200と、パケット転送部の動作を制御する転送制御部300とを備える。
 「フロー」とは、任意のアドレスや識別子の組み合せによって識別できるトラフィックの一連のパケットの流れを指し、フロー単位のネットワーク制御方式を利用することで、より粒度の細かい柔軟なネットワーク制御を実現できる。フロー単位のネットワーク制御方式は、例えば、OpenFlowである。受信したパケットを転送するフロースイッチと、フロースイッチの動作を制御するフローコントローラとを備えるOpenFlowによる通信装置の例は、「Nick McKeown、他7名、“OpenFlow: Enabling Innovation in Campus Networks”、2008年3月14日、インターネット<http://www.openflow.org/documents/openflow-wp-latest.pdf>」、または、「“OpenFlow Switch Specification Version 1.0.0”、2009年12月31日、インターネット<http://www.openflow.org/documents/openflow-spec-v1.0.0.pdf>」等に記載されている。
 パケット転送部200は、例えば、OpenFlowにおけるフロースイッチである。また、転送制御部300は、例えば、OpenFlowにおけるフローコントローラである。
 パケット転送部200は、受信したパケットの転送を行うが、具体的には、転送制御部300が設定するパケットを受信したときのパケット転送部の動作を定める情報であるパケット転送ルールに従って、受信したパケットに対して任意の処理を行う。
 パケット転送ルールは、フローを識別可能な情報であるフロー情報と、フロー情報に適合するフローのパケットに対して実行する処理の内容を定める情報であるアクション情報とを含む。パケット転送ルールは、少なくとも、フロー情報と、アクション情報とを含むが、更に他の情報を含んでいても良い。
 フロー情報は、例えば、送信元MACアドレス、送信先MACアドレス、Ethernet(登録商標)フレームタイプ、送信元IPアドレス、送信先IPアドレス、送信元ポート番号、送信先ポート番号、どの通信インタフェースからパケットを受信したのかを定める情報である受信ポート番号等を含むが、フロー情報は、これらに限定されない。更に他の情報を含んでいても良い。アクション情報の内容として、例えば、パケットを特定の通信インタフェースに送信する、パケットを通信スタックに送信する、パケットに含まれる任意のアドレスや識別子を任意の値に書き換える、パケットを廃棄する等が挙げられるが、アクション情報の内容は、これらに限定されない。
 通信インタフェースは、任意のネットワークに接続して通信を可能にする機能を提供するインタフェースを指す。本発明の実施形態において、通信インタフェースの種類は、特に限定されない。Ethernet(登録商標)等の有線インタフェース、無線LAN等の無線インタフェース、又は任意の方法により生成される仮想インタフェースであって良い。仮想インタフェースの例として、例えば、トンネルインタフェースや、複数の通信インタフェースを仮想的に束ねるリンクアグリゲーションにより生成される論理インタフェース等が挙げられる。また、通信インタフェースの数も、特に限定されず、1つ以上であれば良い。更に、複数の通信インタフェース101について、全て同じ種類の通信インタフェースでも、異なる種類の通信インタフェースが混在していても良い。
 図2は、本発明の実施形態におけるパケット転送部の構成例を示すブロック図である。パケット転送部200は、パケット転送ルール記憶部201と、パケット転送ルール管理部202と、フロー識別部203と、アクション実行部204とを備える。
 パケット転送ルール記憶部201は、パケット転送ルールを記憶する。フロー毎に異なるパケット転送ルールが設定されるため、パケット転送ルール記憶部201には1つ以上のパケット転送ルールが記憶される。パケット転送ルール記憶部201に記憶されるパケット転送ルールの集合を「パケット転送ルールテーブル」と記す。
 パケット転送ルール管理部202は、パケット転送ルールを管理する。転送制御部300は、パケット転送部200にパケット転送ルールを設定するとき、パケット転送ルールと共に設定指示を送信する。設定指示は、具体的には、パケット転送ルールの追加、変更又は削除を行うのかを定める情報である。パケット転送ルール管理部202は、転送制御部300から受信したパケット転送ルールを、設定指示に応じてパケット転送ルール記憶部201に記憶させる。
 パケット転送ルールは、フロー情報及びアクション情報の他に、パケット転送ルールの有効期間を定める情報であるタイマ値を含む。パケット転送ルール管理部202は、各パケット転送ルールで指定されているタイマ値を時間経過と共に減少させる。そして、タイマ値が0になったならば、そのタイマ値を含むパケット転送ルールを、パケット転送ルール記憶部201から削除する。パケット転送ルールに含まれるフロー情報に適合するフローのパケットを受信したときには、パケット転送ルール管理部202は、タイマ値を初期値にリセットする。
 フロー識別部203は、パケットを受信したとき、受信したパケットに含まれる任意のアドレスや識別子からフロー情報を生成する。生成したフロー情報に基づき、受信したパケットのフローに適合するフロー情報を含むパケット転送ルールが、パケット転送ルール記憶部201に記憶されているパケット転送ルールテーブル上に存在するか検索する。
 アクション実行部204は、パケット転送ルールに含まれるアクション情報の内容に基づき、受信したパケットに対して任意の処理を実行する。
 パケット転送部200の動作について説明する。図3は、パケット転送部がパケットを受信したときの処理の例を示すフローチャートである。パケット転送部200がパケットを受信すると(ステップS101)、フロー識別部203は、受信したパケットからフロー情報を生成し(ステップS102)、生成したフロー情報に基づき、受信したパケットのフローに適合するフロー情報を含むパケット転送ルールが、パケット転送ルール記憶部201に記憶されているパケット転送ルールテーブル上に存在するか否か判定する(ステップS103)。
 受信したパケットのフローに適合するフロー情報を含むパケット転送ルールが存在しない場合(ステップS103におけるNo)、フロー識別部203は、フロー識別部203が生成したフロー情報を含む新規フロー検出通知を転送制御部300に送信し(ステップS104)、受信したパケットのフローに対するパケット転送ルールの生成を要求する。なお、フロー識別部203は、受信したパケットそのものを新規フロー検出通知に含めても良い。転送制御部300は、新規フロー検出通知を受信したとき、パケット転送ルールを生成し、設定指示と共にパケット転送部200に送信する。
 パケット転送ルール管理部202は、転送制御部300から送信されたパケット転送ルール及び設定指示を受信すると、その指示に応じて、受信したパケット転送ルールを、パケット転送ルール記憶部201に記憶させる(ステップS105)。
 受信したパケットのフローに適合するフロー情報を含むパケット転送ルールが存在する場合(ステップS103におけるYes)、パケット転送ルール管理部202は、受信したパケットのフローに適合するフロー情報を含むパケット転送ルールのタイマ値を、初期値にリセットする(ステップS106)。
 上記のような処理を行うことで、受信したパケットのフローに適合するパケット転送ルールが得られる。アクション実行部204は、受信したパケットのフローに適合するパケット転送ルールに含まれるアクション情報に従って、受信したパケットに対して任意の処理を実行する(ステップS107)。
 図4は、第1の実施形態における通信に係る要素に着目したより詳細な通信装置の構成例を示すブロック図である。パケット転送部200は、複数の通信インタフェース101及び仮想インタフェース102に接続し、パケットの転送を行う。通信装置100は、複数の通信インタフェース101を介して任意のネットワークと接続される。一方、仮想インタフェース102は、複数の通信インタフェース101を介して接続されるネットワークのうちのいずれにも接続しない通信インタフェースである。換言すれば、通信装置100内部に存在する仮想ネットワークに接続するための通信インタフェースであると言える。
 図4に示すような構成により、パケット転送部200は、他の通信装置、又は通信装置100上で動作する任意の通信プログラム105から送信されるパケットを、複数の通信インタフェース101及び仮想インタフェース102のうちのいずれかの通信インタフェースで受信する。
 パケット転送部200と転送制御部300は、任意の方法により接続される。例えば、UNIX(登録商標)ドメインソケット通信、TCP(Transmission Control Protocol)通信又はSSL(Secure Socket Layer)通信により接続される。
 転送制御部300は、図5に示すように、使用インタフェース情報記憶部301と、使用インタフェース情報管理部302と、アドレス情報記憶部303と、アドレス情報管理部304と、経路表管理部305と、パケット転送ルール生成部306と、パケット転送部管理部307とを備える。
 使用インタフェース情報は、フロー毎にどの通信インタフェースを使用して通信を行うのかを定める情報であって、フローを識別可能な情報であるフロー情報と、複数の通信インタフェース101のうちのいずれかを一意に特定可能な情報とを含む。使用インタフェース情報は、少なくとも、フロー情報と、複数の通信インタフェース101のうちのいずれかを一意に特定可能な情報とを含むが、更に他の情報を含んでいても良い。
 使用インタフェース情報に含まれるフロー情報は、それに含まれる情報の値に、ワイルドカードを含んでいても良い。複数の通信インタフェース101のうちのいずれかを一意に特定可能な情報は、例えば、インタフェース名、ポート番号等である。
 使用インタフェース情報記憶部301は、使用インタフェース情報を記憶する。フロー毎に異なる使用インタフェース情報が設定されるため、使用インタフェース情報記憶部301には1つ以上の使用インタフェース情報が記憶される。
 使用インタフェース情報管理部302は、使用インタフェース情報を管理すると共に、任意のタイミングで使用インタフェース情報を設定可能にする機能を、ユーザ又は任意のプログラムに対して提供する。ユーザ又は任意のプログラムは、使用インタフェース情報管理部302に使用インタフェース情報を設定するとき、使用インタフェース情報と共に設定指示を与える。設定指示は、具体的には、使用インタフェース情報の追加、変更又は削除を行うのかを定める情報である。使用インタフェース情報管理部302は、ユーザ又は任意のプログラムから与えられた使用インタフェース情報を、設定指示に応じて使用インタフェース情報301に記憶させる。
 使用インタフェース情報管理部302がユーザ又は任意のプログラムに対して提供する使用インタフェース情報を設定可能にする機能は、例えば、設定を行うためのグラフィカルユーザインタフェース、任意のプログラムから利用可能な任意のAPI(Application Programming Interface)等である。
 アドレス情報記憶部303は、複数の通信インタフェース101及び仮想インタフェース102が、パケットの送受信を行うために必要な情報であるアドレス情報を記憶する。通信インタフェース毎に異なるアドレス情報が設定されるため、アドレス情報記憶部303には1つ以上のアドレス情報が記憶される。
 アドレス情報は、例えば、MACアドレス、IPアドレス、サブネットマスク、通信装置が通信インタフェースを介して接続するネットワーク上のデフォルトゲートウェイのMACアドレス及びIPアドレス、ポート番号等を含むが、アドレス情報は、これらに限定されない。更に他の情報を含んでいても良い。なお、アドレス情報は、任意の方法により各通信インタフェースに設定される。アドレス情報を設定する任意の方法は、例えば、ユーザ又は任意のプログラムによる固定設定、DHCP(Dynamic Host Configuration Protocol)、IPCP(Internet Protocol Control Protocol)等である。
 仮想インタフェース102には、複数の通信インタフェース101の各通信インタフェースと同様に、アドレス情報が設定されるが、そのアドレス情報は、任意の値から成る仮想のアドレス情報である。具体的には、仮想インタフェース102のアドレス情報は、少なくとも、仮想MACアドレスと、仮想IPアドレスと、仮想インタフェース102を介して接続する通信装置100内部の仮想ネットワーク上のデフォルトゲートウェイである仮想デフォルトゲートウェイのIPアドレスとを含む。
 アドレス情報管理部304は、複数の通信インタフェース101の各通信インタフェース、及び仮想インタフェース102に設定されるアドレス情報を取得し、アドレス情報記憶部303に記憶させる。また、アドレス情報管理部304は、リース期間切れや通信装置の移動に伴うハンドオーバーの発生等の理由によるアドレス情報の変更が発生したとき、アドレス情報の変更が発生した通信インタフェースのアドレス情報を改めて取得し、アドレス情報記憶部303に記憶させる。
 経路表管理部305は、アドレス情報記憶部305に記憶されるアドレス情報に含まれる、複数の通信インタフェース101の各通信インタフェースに設定されるデフォルトゲートウェイ、及び仮想インタフェース102に設定される仮想デフォルトゲートウェイのうち、仮想デフォルトゲートウェイのみを、通信装置100の通信スタック103が持つ経路表104に設定する。
 図6は、第1の実施形態における経路表の構成例である。経路表管理部305により、経路表104は、図6のように設定される。複数の通信インタフェース101を介して接続する各ネットワークには、各通信インタフェースを介して通信を行う経路情報が設定される。また、デフォルトゲートウェイに関する経路情報は、仮想デフォルトゲートウェイの経路情報のみが設定される。
 各通信インタフェースに設定されるデフォルトゲートウェイ及び仮想デフォルトゲートウェイのうち、仮想デフォルトゲートウェイのみを経路表104に設定することで、通信プログラム105が、通信装置100が直接接続するネットワーク以外のネットワーク上にある通信装置と通信を行う場合、通信プログラム105から送信されるパケットに対しては、仮想デフォルトゲートウェイを使用して送信するように、通信スタック103上で経路制御が行われるようになる。具体的には、通信スタック103上で経路制御が行われた後、パケット転送部200が通信プログラム105から送信されたパケットを仮想インタフェース102から受信する時点では、パケットの送信元MACアドレスは、仮想インタフェース102に設定される仮想MACアドレスに、パケットの送信先MACアドレスは、仮想デフォルトゲートウェイのMACアドレスに、パケットの送信元IPアドレスは、仮想インタフェース102に設定される仮想IPアドレスに、パケットの送信先IPアドレスは、送信先の通信装置のIPアドレスになる。
 一方、通信プログラム105が、複数の通信インタフェース101を介して接続するネットワーク上にある通信装置と通信を行う場合、通信プログラム105から送信されるパケットに対して、送信先の通信装置が存在するネットワークに接続する通信インタフェースから送信するように、通信スタック103上で経路制御が行われる。具体的には、通信スタック103上で経路制御が行われた後、パケット転送部200が通信プログラム105から送信されたパケットを送信先の通信装置が存在するネットワークに接続する通信インタフェースから受信する時点では、パケットの送信元MACアドレスは、その通信インタフェースに設定されるMACアドレスに、パケットの送信先MACアドレスは、送信先の通信装置のMACアドレスに、パケットの送信元IPアドレスは、その通信インタフェースに設定されるIPアドレスに、パケットの送信先IPアドレスは、送信先の通信装置のIPアドレスになる。
 パケット転送ルール生成部306は、パケット転送部200のフロー識別部203から送信された新規フロー検出通知を受信したとき、すなわち、パケット転送部200からパケット転送ルールの生成を要求されたとき、新規フロー検出通知に含まれるフロー情報、パケット転送ルール記憶部301に記憶される使用インタフェース情報、及びアドレス情報記憶部303に記憶されるアドレス情報に基づき、パケット転送ルールを生成する。
 パケット転送ルール生成部306におけるパケット転送ルールの生成方法について説明する。図7は、第1の実施形態における転送制御部がパケット転送ルールを生成する処理の例を示すフローチャートである。
 パケット転送ルール生成部306は、新規フロー検出通知を受信したとき、新規フロー検出通知に含まれるフロー情報を参照し、フロー情報に含まれる受信ポート番号に基づき、パケットを受信した通信インタフェースを特定する。そして、パケットを受信した通信インタフェースのアドレス情報、及び仮想インタフェース102のアドレス情報を、アドレス情報管理部304を通じて取得する(ステップS201)。なお、パケットを受信した通信インタフェースは、複数の通信インタフェース101及び仮想インタフェース102のうちのいずれかの通信インタフェースである。
 次に、パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報を参照し、受信したパケットの送信元IPアドレスを特定する。そして、パケットを受信した通信インタフェースのアドレス情報に含まれるサブネットマスクに基づき、特定した送信元IPアドレスから求めたネットワークアドレスと、パケットを受信した通信インタフェースに設定されるIPアドレスから求めたネットワークアドレスとが等しいか否か判定する(ステップS202)。すなわち、受信したパケットの送信元IPアドレスに基づき、そのパケットが、パケットを受信した通信インタフェースを介して接続するネットワーク上にある通信装置から送信されたパケットか否かを判定する。
 特定した送信元IPアドレスから求めたネットワークアドレスと、パケットを受信した通信インタフェースに設定されるIPアドレスから求めたネットワークアドレスとが等しくない場合(ステップS202におけるNo)、パケットを受信した通信インタフェースを介して接続するネットワーク上にある通信装置ではなく、通信装置100が直接接続するネットワーク以外のネットワーク上にある通信装置から送信されたパケットであると判断できる。
 通信装置100が直接接続するネットワーク以外のネットワーク上にある通信装置と通信を行う場合、仮想インタフェース102に設定される仮想デフォルトゲートウェイのみが経路表104に設定されるため、通信スタック103の経路制御により、仮想インタフェース102からパケットが送信される。ゆえに、通信装置100が直接接続するネットワーク以外のネットワーク上にある通信装置からパケットを受信する場合は、仮想インタフェース102でパケットが受信されるようにする対応が必要である。
 そこで、特定した送信元IPアドレスから求めたネットワークアドレスと、パケットを受信した通信インタフェースに設定されるIPアドレスから求めたネットワークアドレスとが等しくない場合、パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報と、送信先MACアドレスを仮想インタフェース102に設定される仮想MACアドレスに、送信先IPアドレスを仮想インタフェース102に設定される仮想IPアドレスに書き換えるアクション(ステップS203)、及び受信したパケットを仮想インタフェース102に送信するアクション(ステップS204)から成るアクション情報とを含むパケット転送ルールを生成する。
 そのようなパケット転送ルールに基づくパケット転送により、パケット転送部200が受信したパケットは、仮想インタフェース102で受信されるようになる。
 特定した送信元IPアドレスから求めたネットワークアドレスと、パケットを受信した通信インタフェースに設定されるIPアドレスから求めたネットワークアドレスとが等しい場合(ステップS202におけるYes)、特定した送信元IPアドレスが、パケットを受信した通信インタフェースに設定されるIPアドレスと等しいか否か判定する(ステップS205)。
 特定した送信元IPアドレスが、パケットを受信した通信インタフェースに設定されるIPアドレスと等しくない場合(ステップS205におけるNo)、パケットを受信した通信インタフェースを介して接続するネットワーク上にある通信装置から送信されたパケットであると判断できる。一方、特定した送信元IPアドレスが、パケットを受信した通信インタフェースに設定されるIPアドレスと等しい場合(ステップS205におけるYes)、通信プログラム105が送信したパケットであると判断できる。
 特定した送信元IPアドレスが、パケットを受信した通信インタフェースに設定されるIPアドレスと等しくない場合(ステップS205におけるNo)、パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報と、受信したパケットを通信スタック103に送信するアクション(ステップS206)から成るアクション情報とを含むパケット転送ルールを生成する。
 そのようなパケット転送ルールに基づくパケット転送により、パケット転送部200が受信したパケットは、そのままパケットを受信した通信インタフェースで受信されるようになる。
 特定した送信元IPアドレスが、パケットを受信した通信インタフェースに設定されるIPアドレスと等しい場合(ステップS205におけるYes)、新規フロー検出通知に含まれるフロー情報に基づき、受信したパケットの送信先MACアドレスを特定する。そして、特定した送信元MACアドレスと、仮想インタフェース102に設定される仮想デフォルトゲートウェイのMACアドレスとが等しいか否か判定する(ステップS207)。
 特定した送信元MACアドレスと、仮想デフォルトゲートウェイのMACアドレスとが等しい場合(ステップS207におけるYes)、通信プログラム105が、通信装置100が直接接続するネットワーク以外のネットワーク上にある通信装置に仮想デフォルトゲートウェイを使用して送信するパケットであると判断できる。一方、特定した送信元MACアドレスと、仮想デフォルトゲートウェイのMACアドレスとが等しくない場合(ステップS207におけるNo)、通信プログラム105が、パケットを受信した通信インタフェースを介して接続するネットワーク上にある通信装置に送信するパケットであると判断できる。
 特定した送信元MACアドレスと、仮想デフォルトゲートウェイのMACアドレスとが等しい場合(ステップS207におけるYes)、パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報に基づき、受信したパケットのフローに適合するフロー情報を含む使用インタフェース情報を、使用インタフェース情報管理部302を通じて取得する。そして、取得した使用インタフェース情報に含まれる複数の通信インタフェース101のうちのいずれかを一意に特定可能な情報に基づき、通信に使用する通信インタフェースを特定する(ステップS208)。なお、通信に使用する通信インタフェースは、複数の通信インタフェース101のうちのいずれかの通信インタフェースである。
 加えて、特定した通信に使用する通信インタフェースのアドレス情報を、アドレス情報管理部304を通じて取得する(ステップS209)。
 仮想デフォルトゲートウェイは、仮想インタフェース102を介して接続される通信装置100内部の仮想ネットワーク上のデフォルトゲートウェイである。しかしながら、経路表管理部305により設定される経路表104上にのみ存在する仮想的な存在であるため、パケット転送部200が受信したパケットを、通信に使用する通信インタフェースに送信するだけでは、通信装置100が直接接続するネットワーク以外のネットワーク上にある通信装置にパケットは送信されない。
 通信に使用する通信インタフェースから通信装置100が直接接続するネットワーク以外のネットワーク上にある通信装置にパケットが送信されるようにするためには、通信に使用する通信インタフェースを介して接続するネットワーク上のデフォルトゲートウェイにパケットを送信する必要がある。
 従って、仮想デフォルトゲートウェイが送信先であるパケットを、通信に使用する通信インタフェースを介して接続するネットワーク上のデフォルトゲートウェイに転送することで、通信装置100が直接接続するネットワーク以外のネットワーク上にある通信装置にパケットを送信することが可能になると言える。
 そこで、特定した送信元MACアドレスと、仮想デフォルトゲートウェイのMACアドレスとが等しい場合、パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報と、送信元MACアドレスを通信に使用する通信インタフェースに設定されたMACアドレスに、送信元IPアドレスを通信に使用する通信インタフェースに設定されたIPアドレスに書き換えるアクション(ステップS210)、送信先MACアドレスを通信に使用する通信インタフェースに設定されるデフォルトゲートウェイのMACアドレスに書き換えるアクション(ステップS211)、及び受信したパケットを通信に使用する通信インタフェースに送信するアクション(ステップS212)から成るアクション情報とを含むパケット転送ルールを生成する。
 そのようなパケット転送ルールに基づくパケット転送により、パケット転送部200が受信したパケットは、通信に使用する通信インタフェースを介して接続するネットワーク上のデフォルトゲートウェイに送信されるようになる。
 特定した送信元MACアドレスと、仮想デフォルトゲートウェイのMACアドレスとが等しくない場合(ステップS207におけるNo)、受信したパケットの送信元MACアドレスは、パケットを受信した通信インタフェースに設定されるMACアドレスに、パケットの送信元IPアドレスは、パケットを受信した通信インタフェースに設定されるIPアドレスに、受信したパケットの送信先MACアドレスは、パケットを受信した通信インタフェースを介して接続するネットワーク上にある送信先の通信装置のMACアドレスに、パケットの送信先IPアドレスは、パケットを受信した通信インタフェースを介して接続するネットワーク上にある送信先の通信装置のIPアドレスになるため、そのままパケットを受信した通信インタフェースから送信してやれば良い。
 従って、パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報と、受信したパケットを、パケットを受信した通信インタフェースに送信するアクション(ステップS213)から成るアクション情報とを含むパケット転送ルールを生成する。
 そのようなパケット転送ルールに基づくパケット転送により、パケット転送部200が受信したパケットは、そのままパケットを受信した通信インタフェースから送信先の通信装置に送信されるようになる。
 パケットの送信に先んじて、通信スタック103は、送信先の通信装置のIPアドレスに基づき、送信先のMACアドレスを得るためのアドレス解決を行う。通信装置100が複数の通信インタフェース101を介して接続するネットワーク上にある通信装置と通信を行う場合、各通信インタフェース上で通常のアドレス解決方法に従って、送信先のMACアドレスを得れば良い。一方、通信装置100が直接接続するネットワーク以外のネットワークにある通信装置と通信を行う場合、通信スタック103がパケットを送信するためには、仮想デフォルトゲートウェイのMACアドレスが、パケット転送ルール生成部306がパケット転送ルールを生成するためには、通信に使用する通信インタフェースに設定されるデフォルトゲートウェイのMACアドレスが必要である。
 アドレス解決処理においては、2種類のアドレス解決パケットを送受信する。2種類のアドレス解決パケットは、MACアドレスを得ようとする通信装置に対して、MACアドレスを送信するよう要求するためのアドレス解決要求パケット、及び要求を行った通信装置に対して、要求に応じてMACアドレスを含む応答を送信するためのアドレス解決応答パケットである。アドレス解決要求パケットは、例えば、ARP(Address Resolution Protocol)リクエストパケットである。アドレス解決応答パケットは、例えば、ARPリプライパケットである。
 アドレス解決要求パケットは、少なくとも、送信元MACアドレス、送信先MACアドレス、要求元の通信装置、具体的には、アドレス解決要求パケットを送信する通信装置のMACアドレス及びIPアドレスである要求元MACアドレス及び要求元IPアドレス、要求先の通信装置、具体的には、MACアドレスを得ようとする通信装置のMACアドレス及びIPアドレスである要求先MACアドレス及び要求先IPアドレスを含む。なお、アドレス解決要求を行う時点では、送信先MACアドレス及び要求先MACアドレスは、不明であるため、それらのMACアドレスの値は、任意のMACアドレスの値になる。例えば、送信先MACアドレスはブロードキャストアドレスに、要求先MACアドレスは空の値になる。
 アドレス解決応答パケットは、少なくとも、送信元MACアドレス、送信先MACアドレス、応答元の通信装置、具体的には、アドレス解決応答パケットを送信する通信装置のMACアドレス及びIPアドレスである応答元MACアドレス及び応答元IPアドレス、応答先の通信装置、具体的には、アドレス解決応答パケットを送信すべきアドレス解決要求パケットを送信した通信装置のMACアドレス及びIPアドレスである応答先MACアドレス及び応答先IPアドレスを含む。なお、アドレス解決要求により得ようとする通信装置のMACアドレスは、アドレス解決応答パケットに含まれる応答元のMACアドレスである。
 仮想デフォルトゲートウェイは、経路表104上にのみ存在する仮想的な存在であるため、仮想デフォルトゲートウェイに対するアドレス解決要求パケットを送信しても、仮想デフォルトゲートウェイのMACアドレスを含むアドレス解決応答パケットは得られない。また、通信に使用する通信インタフェースに設定されるデフォルトゲートウェイは、経路表104上に存在しないため、通信スタック103が通信に使用する通信インタフェースに設定されるデフォルトゲートウェイに対してアドレス解決要求パケットを送信することはない。そのため、転送制御部300は、仮想デフォルトゲートウェイのMACアドレス、及び通信に使用する通信インタフェースに設定されるデフォルトゲートウェイのMACアドレスを得るための処理を行う。
 仮想デフォルトゲートウェイのMACアドレス、及び通信に使用する通信インタフェースに設定されるデフォルトゲートウェイのMACアドレスを得るための処理について説明する。通信スタック103が送信する仮想デフォルトゲートウェイに対するアドレス解決要求パケットを、パケット転送部200が受信したとき、具体的には、仮想デフォルトゲートウェイに対するアドレス解決要求パケットを受信したことによるパケット転送部200からの新規フロー検出通知を、転送制御部300が受信したとき、転送制御部300は、アドレス情報管理部304を通じて複数の通信インタフェース101の各通信インタフェースのアドレス情報を取得し、各通信インタフェースに設定されるデフォルトゲートウェイのIPアドレスを得る。そして、各デフォルトゲートウェイに対するアドレス解決要求パケットを生成し、生成したパケットを各通信インタフェースから送信する指示と共に、パケット転送部200に送信する。パケット転送部200は、その指示に従い、各デフォルトゲートウェイに対するアドレス解決要求パケットを送信する。
 なお、仮想デフォルトゲートウェイに対するアドレス解決要求パケットを受信したときに、パケット転送部200から新規フロー検出通知が送信されるようにするため、仮想デフォルトゲートウェイに対するアドレス解決要求パケットのフローに対するパケット転送ルールは、パケット転送部200に設定しない。
 パケット転送部200から各デフォルトゲートウェイに対するアドレス解決要求パケットを送信することで、各デフォルトゲートウェイから、各デフォルトゲートウェイのMACアドレスを含むアドレス解決応答パケットが、通信装置100に対して送信される。パケット転送部200が、各デフォルトゲートウェイのMACアドレスを含むアドレス解決応答パケットを受信したとき、具体的には、各デフォルトゲートウェイのMACアドレスを含むアドレス解決応答パケットを受信したことによるパケット転送部200からの新規フロー検出通知を、転送制御部300が受信したとき、その新規フロー検出通知に含まれるフロー情報に基づき、各デフォルトゲートウェイのMACアドレスを取得し、取得した各デフォルトゲートウェイのMACアドレスを、アドレス情報管理部304を通じてアドレス情報記憶部303に記憶する。
 各デフォルトゲートウェイのMACアドレスを含むアドレス解決応答パケットを受信したときにパケット転送部200から新規フロー検出通知が送信されるようにするため、各デフォルトゲートウェイのMACアドレスを含むアドレス解決応答パケットのフローに対するパケット転送ルールは、パケット転送部200に設定しない。
 そして、全てのデフォルトゲートウェイからアドレス解決応答パケットを受信し、全てのデフォルトゲートウェイのMACアドレスが取得できた時点で、予め転送制御部300に設定する任意の値から成る仮想MACアドレスである仮想デフォルトゲートウェイのMACアドレスを含むアドレス解決応答パケットを生成し、生成したパケットを仮想インタフェース102から送信する。
 上記のような処理を行うことで、通信スタック103がパケットを送信するために必要な仮想デフォルトゲートウェイのMACアドレス、及びパケット転送ルール生成部306がパケット転送ルールを生成するために必要な通信に使用する通信インタフェースに設定されるデフォルトゲートウェイのMACアドレスを得ることができる。
 パケット転送部管理部307は、パケット転送部200の動作を制御するための任意のプロトコルによりパケット転送部200を管理する。パケット転送ルール生成部306がパケット転送ルールを生成したとき、パケット転送部管理部307は、生成したパケット転送ルールを設定指示と共に、パケット転送部200に送信する。
 パケット転送ルール生成部306のパケット転送ルール生成処理において、受信したパケットのフローに適合するフロー情報を含む使用インタフェース情報が、使用インタフェース情報記憶部301に存在しない場合もあり得る。その場合、予め複数の通信インタフェース101のうちのいずれかを、デフォルトの通信インタフェースに設定し、通信に使用する通信インタフェースとしてそのデフォルトの通信インタフェースを用いて、パケット転送ルールを生成しても良い。また、パケットを廃棄する等の、任意の内容のアクションを含むデフォルトのアクション情報を予め設定しておき、新規フロー検出通知に含まれるフロー情報、及びそのデフォルトのアクション情報に基づき、パケット転送ルールを生成しても良い。
 また、受信したパケットのフローに適合するフロー情報を含む使用インタフェース情報に含まれる複数の通信インタフェース101のうちのいずれかを一意に特定可能な情報に、存在しない通信インタフェースの情報が設定されていた場合、パケットを廃棄する等の、そのような使用インタフェース情報に対するデフォルトのアクション情報を予め設定しておき、新規フロー検出通知に含まれるフロー情報、及びそのデフォルトのアクション情報に基づき、パケット転送ルールを生成しても良い。
 更に、複数の通信インタフェース101の各通信インタフェースのアドレス情報に、デフォルトゲートウェイの情報が含まれない場合もあり得る。アドレス情報にデフォルトゲートウェイの情報が含まれない通信インタフェースを使用する場合、通信装置100が直接接続するネットワーク以外のネットワーク上にある通信装置と通信を行うことはできない。そのような場合、使用インタフェース情報管理部302において、アドレス情報にデフォルトゲートウェイの情報が含まれない通信インタフェースを使用することを定める使用インタフェース情報を、設定できないようにする対応を行っても良い。また、そのような使用インタフェース情報に対するパケットを廃棄する等の、任意の内容のアクションを含むデフォルトのアクション情報を予め設定しておき、そのアクション情報に基づき、パケット転送ルールを生成しても良い。
 ユーザ又は任意のプログラムにより、使用インタフェース情報管理部302を通じて使用インタフェース情報記憶部301に記憶される使用インタフェース情報が変更されたとき、変更された使用インタフェース情報に基づき生成されたパケット転送ルールも変更する必要がある。
 使用インタフェース情報が変更されたとき、転送制御部300は、変更された使用インタフェース情報に含まれるフロー情報に適合する全てのパケット転送ルールを、パケット転送部200のパケット転送ルール記憶部201に記憶されているパケット転送ルールテーブルからパケット転送部管理部307を通じて取得し、取得した各パケット転送ルールの内容を、変更された使用インタフェース情報に基づく内容に変更し、変更した各パケット転送ルールを、変更を行う設定指示と共に、パケット転送部管理部307を通じてパケット転送部200に送信することで、パケット転送ルールを変更する。若しくは、変更された使用インタフェース情報に含まれるフロー情報に適合する全てのパケット転送ルールを、パケット転送部管理部307を通じて削除し、改めてパケット転送ルールを生成するように促す対応を行っても良い。
 本実施の形態では、仮想デフォルトゲートウェイのみを、通信装置100の通信スタック103が持つ経路表104に設定することで、通信スタック103が行う経路制御において、経路表上に複数のデフォルトゲートウェイが存在することにより、どのデフォルトゲートウェイを使用して通信を行えば良いか分からず、通信不能に陥ってしまうことを回避できる。
 通信装置100が直接接続するネットワーク以外のネットワーク上にある通信装置と通信を行う場合、通信スタック103が行う経路制御により、通信装置100上で動作する任意の通信プログラム105から仮想デフォルトゲートウェイに送信されるパケットを、使用インタフェース情報管理部302を通じて設定される使用インタフェース情報により特定される通信に使用する通信インタフェースを介して接続されるネットワーク上のデフォルトゲートウェイに転送する。優位に設定した通信インタフェース以外の通信インタフェースを使用する場合、通信装置が直接接続するネットワーク以外のネットワーク上にある通信装置と通信することができない特許文献1記載の方法とは異なり、複数の通信インタフェース101のうちどの通信インタフェースを使用する場合でも、通信装置100が直接接続するネットワーク以外のネットワーク上にある通信装置と通信することが可能である。ゆえに、複数の通信インタフェース101を介して接続するネットワークを同時に利用して通信を行うことを実現できる。
 また、通信プログラム105に対して、pingコマンドのような通信に使用する通信インタフェースを指定可能にする機能を実装する等の、特別な対応を必要としない。ネットワーク側からは、通信装置100は、通常のIP通信の仕組みに従って通信を行っているように見えるため、特定の機構や対向の通信装置を用意する等の、ネットワーク側の特別な対応を必要としない。かつ、特定の通信装置の任意のアドレスの情報を、予め登録しておく等の対応も必要なく、通信装置100は、自律的に通信を行うことができる。
 更に、通信プログラム105からは、通信に使用する通信インタフェースによらず、仮想インタフェース102を介し、仮想デフォルトゲートウェイを使用して通信が行われるように見えるため、通信に使用する通信インタフェースが変更された場合や、リース期間切れや通信装置の移動に伴うハンドオーバーの発生等の理由により通信インタフェースのアドレス情報に変化が発生した場合に、通信プログラム105側にそれを意識させることなしに通信を行うことができる。
 フロー単位のネットワーク制御方式を利用したこと、及びフロー毎にどの通信インタフェースを使用して通信を行うのかを定める使用インタフェース情報を、ユーザ又は任意のプログラムから任意に設定可能にしたことにより、ユーザ又は任意のプログラムは、任意の要求や条件に基づき、フロー毎に通信に利用するネットワークを選択することができる。すなわち、異なる特性を持つトラフィックを送受信する通信プログラムであるアプリケーションは、いくつかのフローの集合と捉えられるので、フロー単位というより細かい粒度で、通信装置上で動作するアプリケーションがどのネットワークを利用して通信を行うのかについて任意に選択することを実現でき、通信装置の利便性の向上が期待できる。
 例えば、ユーザが、通信量の小さい電子メールを送受信するアプリケーションのトラフィック、具体的には、送信先ポート番号が25番(SMTP、Simple Mail Transfer Protocol)又は110番(POP3、Post Office Protocol version 3)のフローに対しては、3Gを使用することを定める使用インタフェース情報を設定し、Web上で映像のストリーミング通信のような通信量の大きい通信を行うアプリケーションのトラフィック、具体的には、送信先ポート番号が80番(HTTP、HyperText Transfer Protocol)のフローに対しては、無線LAN3Gを使用することを定める使用インタフェース情報を設定することで、本発明の実施形態により、それぞれのトラフィックは、3G並びに無線LANを利用して通信が行われるようになる。
 例えば、ユーザが、任意のネットワーク上にある通信装置との通信を許可しない場合、具体的には、送信元IPアドレス又は送信先IPアドレスが通信を許可しない通信装置のIPアドレスのフローに対しては、存在しない通信インタフェースを使用することを定める使用インタフェース情報を設定することで、本発明の実施形態により、通信を許可しない通信装置との間で送受信されるパケットを廃棄することができる。
 例えば、複数の通信インタフェース101の各通信インタフェースが通信可能か否か監視する通信装置100上で動作するアプリケーションが、各通信インタフェースの状態に基づき、動的に使用インタフェース情報を設定することで、任意のフローの通信に利用するネットワークを動的に変更できる。無線LANネットワークが切断され、通信不可になった場合は、無線LANを使用することを定める使用インタフェース情報から、3Gを使用することを定める使用インタフェース情報に変更することで、本発明の実施形態により、任意のフローの通信は、3Gを利用して通信を行うようになる。
 例えば、複数の通信インタフェース101に含まれる無線インタフェースの受信電界強度を監視する通信装置100上で動作するアプリケーションが、各無線インタフェースの受信電界強度に基づき、任意に設定した閾値より受信電界強度が大きい無線インタフェースを、通信に使用する通信インタフェースとして選択し、その無線インタフェースを使用することを定める使用インタフェース情報を設定することで、本発明の実施形態により、任意のフローの通信は、最も状態の良い無線インタフェースを利用して通信を行うようになる。
 例えば、複数の通信インタフェース101の各通信インタフェースのパケット送受信数を監視する通信装置100上で動作するアプリケーションが、各通信インタフェースのパケット送受信数、及びユーザが予め設定したパケット送受信数の上限に基づき、任意のフローの通信に使用している通信インタフェースのパケット送受信数が上限に達したとき、他の通信インタフェース、若しくは存在しない通信インタフェースを使用することを定める使用インタフェース情報を設定することで、本発明の実施形態により、パケット送受信数が上限に達した通信インタフェースを使用する任意のフローに対して、他の通信インタフェースを使用して通信を行うようにする、若しくはパケットを廃棄するようにする等の対応を行うことができる。
(第2の実施形態)
 図8は、第2の実施形態における通信に係る要素に着目したより詳細な通信装置の構成例を示すブロック図である。第1の実施形態における通信装置の構成要素と同様の構成要素については、同一の符号を付し、詳細な説明を省略する。第2の実施形態における通信装置100のパケット転送部200は、通信装置100内部にブリッジ等の構造を構成する。ここでは、パケット転送部200がブリッジを構成する場合を例として説明する。パケット転送部200がブリッジを構成する場合、通信スタック103は、パケット転送部200が構成するブリッジに接続する仮想インタフェース102、具体的には、ブリッジのローカルポートを端点としてパケットの送受信を行う必要がある。つまり、第1の実施形態のように、通信スタック103は、パケット転送部200に接続する複数の通信インタフェース101を直接使用してパケットの送受信を行うことができない。そのため、第1の実施形態の方法を、第2の実施形態における通信装置にそのまま適用しても、複数の通信インタフェース101を介して接続するネットワークを同時に利用して通信を行うことは実現できない。
 そこで、第2の実施形態では、仮想インタフェース102を端点としてパケットの送受信が行われるように、仮想インタフェース102のIPアドレスの設定、及び通信スタック103が持つ経路表104の設定を行い、それらに基づくパケット転送ルールの生成処理を行うことで、フロー毎に通信に利用するネットワークを選択可能な、複数のネットワークを同時に利用した通信を行うことを実現する。
 第2の実施形態における仮想インタフェース102には、第1の実施形態と同様に、任意の値から成る仮想のアドレス情報が設定される。仮想インタフェース102のアドレス情報は、少なくとも、仮想MACアドレスと、仮想IPアドレスと、仮想デフォルトゲートウェイのIPアドレスとを含む。
 第2の実施形態におけるアドレス情報管理部304は、パケット転送部200に接続する複数の通信インタフェース101の各インタフェースのアドレス情報、及び仮想インタフェース102のアドレス情報を取得し、アドレス情報記憶部303に記憶させる。更に、取得したアドレス情報に含まれる各通信インタフェースのIPアドレスを、仮想インタフェース102に設定する。それにより、第2の実施形態における仮想インタフェース102は、1つ以上のIPアドレス、具体的には、仮想IPアドレス、及び各通信インタフェースのIPアドレスを持つ。
 第2の実施形態における経路表管理部305は、仮想インタフェース102に設定される仮想デフォルトゲートウェイのみを、通信スタック103が持つ経路表104に設定する。更に、複数の通信インタフェース101を介して接続する各ネットワークに各通信インタフェースを介して通信を行う経路情報を、経路表104から削除する。そして、それらの代わりに、複数の通信インタフェース101を介して接続する各ネットワークに仮想インタフェース102を介して通信を行う経路情報を、経路表104に設定する。
 図9は、第2の実施形態における経路表の構成例である。第2の実施形態における経路表管理部305により、経路表104は、図9のように設定される。複数の通信インタフェース101を介して接続する各ネットワークには、第1の実施形態とは異なり、仮想インタフェース102を介して通信を行う経路情報が設定される。デフォルトゲートウェイに関する経路情報は、第1の実施形態と同様に、仮想デフォルトゲートウェイの経路情報のみが設定される。
 上記のような仮想インタフェース102のIPアドレスの設定、及び経路表104の設定を行うことで、通信スタック103において、全てのパケットの送受信を、仮想インタフェース102を介して行うことが可能になる。具体的には、通信装置100が直接接続するネットワーク以外のネットワーク上にある通信装置と通信を行う場合だけでなく、複数の通信インタフェース101を介して接続するネットワーク上にある通信装置と通信を行う場合にも、仮想インタフェース102を端点としてパケットの送受信が行われるようになる。
 通信装置100上で動作する任意の通信プログラム105が、通信装置100が直接接続するネットワーク以外のネットワーク上にある通信装置と通信を行う場合、通信スタック103上で経路制御が行われた後、パケット転送部200が通信プログラム105から送信されたパケットを仮想インタフェース102から受信する時点では、パケットの送信元MACアドレスは、仮想インタフェース102に設定される仮想MACアドレスに、パケットの送信先MACアドレスは、仮想デフォルトゲートウェイのMACアドレスに、パケットの送信元IPアドレスは、仮想インタフェース102に設定される仮想IPアドレスに、パケットの送信先IPアドレスは、送信先の通信装置のIPアドレスになる。
 一方、通信装置100上で動作する任意の通信プログラム105が、複数の通信インタフェース101を介して接続するネットワーク上にある通信装置と通信を行う場合、通信スタック103上で経路制御が行われた後、パケット転送部200が通信プログラム105から送信されたパケットを仮想インタフェース102から受信する時点では、パケットの送信元MACアドレスは、仮想インタフェース102に設定される仮想MACアドレスに、パケットの送信先MACアドレスは、送信先である通信装置のMACアドレスに、パケットの送信元IPアドレスは、アドレス情報管理部304により仮想インタフェース102に設定される、送信先の通信装置が存在するネットワークに接続する通信インタフェースのIPアドレスに、パケットの送信先IPアドレスは、送信先の通信装置のIPアドレスになる。
 第2の実施形態におけるパケット転送ルール生成部306におけるパケット転送ルールの生成方法について説明する。図10は、第2の実施形態における転送制御部がパケット転送ルールを生成する処理の例を示すフローチャートである。
 パケット転送ルール生成部306は、新規フロー検出通知を受信したとき、新規フロー検出通知に含まれるフロー情報を参照し、フロー情報に含まれる受信ポート番号に基づき、パケットを受信した通信インタフェースを特定する。そして、パケットを受信した通信インタフェースのアドレス情報、及び仮想インタフェース102のアドレス情報を、アドレス情報管理部304を通じて取得する(ステップS301)。なお、パケットを受信した通信インタフェースは、複数の通信インタフェース101及び仮想インタフェース102のうちのいずれかの通信インタフェースである。
 次に、パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報を参照し、受信したパケットの送信元IPアドレスを特定する。パケットを受信した通信インタフェースのアドレス情報に含まれるサブネットマスクに基づき、特定した送信元IPアドレスから求めたネットワークアドレスと、仮想インタフェース102に設定される複数の通信インタフェース101の各通信インタフェースのIPアドレスから求めたネットワークアドレスのうちのいずれかとが等しいか否か判定する(ステップS302)。すなわち、受信したパケットの送信元IPアドレスに基づき、そのパケットが、パケットを受信した通信インタフェースを介して接続するネットワーク上にある通信装置から送信されたパケットか否かを判定する。
 特定した送信元IPアドレスから求めたネットワークアドレスと、仮想インタフェース102に設定される、複数の通信インタフェース101の各通信インタフェースのIPアドレスから求めたネットワークアドレスのうちのいずれかとが等しくない場合(ステップS302におけるNo)、パケットを受信した通信インタフェースを介して接続するネットワーク上にある通信装置ではなく、通信装置100が直接接続するネットワーク以外のネットワーク上にある通信装置から送信されたパケットであると判断できる。
 通信装置100が直接接続するネットワーク以外のネットワーク上にある通信装置と通信を行う場合、第1の実施形態と同様に、仮想インタフェース102に設定される仮想デフォルトゲートウェイのみが経路表104に設定されるため、通信スタック103の経路制御により、仮想インタフェース102からパケットが送信される。ゆえに、通信装置100が直接接続するネットワーク以外のネットワーク上にある通信装置からパケットを受信する場合は、仮想インタフェース102でパケットが受信されるようにする対応が必要である。
 そこで、特定した送信元IPアドレスから求めたネットワークアドレスと、仮想インタフェース102に設定される複数の通信インタフェース101の各通信インタフェースのIPアドレスから求めたネットワークアドレスのうちのいずれかとが等しくない場合、パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報と、送信先IPアドレスを仮想インタフェース102に設定される仮想IPアドレスに書き換えるアクション(ステップS303)、送信先MACアドレスを仮想インタフェース102に設定される仮想MACアドレスに書き換えるアクション(ステップS304)、及び受信したパケットを仮想インタフェース102に送信するアクション(ステップS305)から成るアクション情報とを含むパケット転送ルールを生成する。
 そのようなパケット転送ルールに基づくパケット転送により、パケット転送部200が受信したパケットは、仮想インタフェース102で受信されるようになる。
 特定した送信元IPアドレスから求めたネットワークアドレスと、仮想インタフェース102に設定される複数の通信インタフェース101の各通信インタフェースのIPアドレスから求めたネットワークアドレスのうちのいずれかとが等しい場合(ステップS302におけるYes)、特定した送信元IPアドレスが、仮想インタフェース102に設定される複数の通信インタフェース101の各通信インタフェースのIPアドレスのうちのいずれかと等しいか否か判定する(ステップS306)。
 特定した送信元IPアドレスが、仮想インタフェース102に設定される複数の通信インタフェース101の各通信インタフェースのIPアドレスのうちのいずれかと等しくない場合(ステップS306におけるNo)、パケットを受信した通信インタフェースを介して接続するネットワーク上にある通信装置から送信されたパケットであると判断できる。一方、特定した送信元IPアドレスが、仮想インタフェース102に設定される複数の通信インタフェース101の各通信インタフェースのIPアドレスのうちのいずれかと等しい場合(ステップS306におけるYes)、通信プログラム105が送信したパケットであると判断できる。
 特定した送信元IPアドレスが、仮想インタフェース102に設定される複数の通信インタフェース101の各通信インタフェースのIPアドレスのうちのいずれかと等しくない場合(ステップS306におけるNo)、第2の実施形態における通信装置100においては、仮想インタフェース102を端点としてパケットの送受信を行う必要があることから、仮想インタフェース102でパケットが受信されるようにする対応が必要である。
 そこで、パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報と、送信先MACアドレスを仮想インタフェース102に設定される仮想MACアドレスに書き換えるアクション(ステップS304)、及び受信したパケットを仮想インタフェース102に送信するアクション(ステップS305)から成るアクション情報とを含むパケット転送ルールを生成する。
 そのようなパケット転送ルールに基づくパケット転送により、パケット転送部200が受信したパケットは、仮想インタフェース102で受信されるようになる。
 特定した送信元IPアドレスが、仮想インタフェース102に設定される複数の通信インタフェース101の各通信インタフェースのIPアドレスのうちのいずれかと等しい場合(ステップS306におけるYes)、新規フロー検出通知に含まれるフロー情報に基づき、受信したパケットの送信先MACアドレスを特定する。そして、特定した送信元MACアドレスと、仮想インタフェース102に設定される仮想デフォルトゲートウェイのMACアドレスとが等しいか否か判定する(ステップS307)。
 特定した送信元MACアドレスと、仮想デフォルトゲートウェイのMACアドレスとが等しい場合(ステップS307におけるYes)、通信プログラム105が、通信装置100が直接接続するネットワーク以外のネットワーク上にある通信装置に、仮想デフォルトゲートウェイを使用して送信するパケットであると判断できる。一方、特定した送信元MACアドレスと、仮想デフォルトゲートウェイのMACアドレスとが等しくない場合(ステップS307におけるNo)、通信プログラム105が、複数の通信インタフェース101のうちのいずれかの通信インタフェースを介して接続するネットワーク上にある通信装置に送信するパケットであると判断できる。
 特定した送信元MACアドレスと、仮想デフォルトゲートウェイのMACアドレスとが等しい場合(ステップS307におけるYes)、パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報に基づき、受信したパケットのフローに適合するフロー情報を含む使用インタフェース情報を、使用インタフェース情報管理部302を通じて取得する。そして、取得した使用インタフェース情報に含まれる複数の通信インタフェース101のうちのいずれかを一意に特定可能な情報に基づき、通信に使用する通信インタフェースを特定する(ステップS308)。なお、通信に使用する通信インタフェースは、複数の通信インタフェース101のうちのいずれかの通信インタフェースである。
 加えて、特定した通信に使用する通信インタフェースのアドレス情報を、アドレス情報管理部304を通じて取得する(ステップS309)。
 そして、仮想デフォルトゲートウェイが送信先であるパケットを、通信に使用する通信インタフェースを介して接続するネットワーク上のデフォルトゲートウェイに転送されるようにするために、パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報と、送信元MACアドレスを通信に使用する通信インタフェースに設定されたMACアドレスに、送信元IPアドレスを通信に使用する通信インタフェースに設定されたIPアドレスに書き換えるアクション(ステップS310)、送信先MACアドレスを通信に使用する通信インタフェースに設定されるデフォルトゲートウェイのMACアドレスに書き換えるアクション(ステップS311)、及び受信したパケットを通信に使用する通信インタフェースに送信するアクション(ステップS312)から成るアクション情報とを含むパケット転送ルールを生成する。
 そのようなパケット転送ルールに基づくパケット転送により、パケット転送部200が受信したパケットは、通信に使用する通信インタフェースを介して接続するネットワーク上のデフォルトゲートウェイに送信されるようになる。
 特定した送信元MACアドレスと、仮想デフォルトゲートウェイのMACアドレスとが等しくない場合(ステップS307におけるNo)、通信プログラム105が、複数の通信インタフェース101のうちのいずれかの通信インタフェースを介して接続するネットワーク上にある通信装置に送信するパケットであると判断できる。第1の実施形態においては、通信スタック103は、複数の通信インタフェース101を直接使用してパケットの送受信を行うことが可能なため、複数の通信インタフェース101を介して接続するネットワーク上にある通信装置と通信を行う場合、パケットを受信した通信インタフェースから送信先の通信装置にパケットを送信すれば良い。しかし、第2の実施形態のように、仮想インタフェース102を端点としてパケットの送受信を行う場合、通信プログラム105から送信されたパケットは、送信先の通信装置が、通信端末100が直接接続するネットワーク以外のネットワーク上にある通信装置か、複数の通信インタフェース101を介して接続するネットワーク上にある通信装置かによらず、パケット転送部200は、仮想インタフェース102から送信されたパケットを受信する。すなわち、複数の通信インタフェース101を介して接続するネットワーク上にある通信装置と通信を行う場合にも、通信に使用する通信インタフェースを特定する必要がある。
 第2の実施形態においては、複数の通信インタフェース101の各通信インタフェースのIPアドレスを、仮想インタフェース102に設定したこと、及び複数の通信インタフェース101を介して接続する各ネットワークには、仮想インタフェース102を介して通信を行う経路情報を経路表104に設定したことにより、通信スタック103上で経路制御が行われた後、パケット転送部200がパケットを受信する時点では、パケットの送信元IPアドレスは、送信先の通信装置が存在するネットワークに接続する通信インタフェースのIPアドレスになる。ゆえに、パケットの送信元IPアドレスに基づき、通信に使用する通信インタフェースを特定することができる。
 特定した送信元MACアドレスと、仮想デフォルトゲートウェイのMACアドレスとが等しくない場合、パケット転送ルール生成部306は、複数の通信インタフェース101の各通信インタフェースのアドレス情報を、アドレス情報管理部304を通じて取得する(ステップS313)。
 そして、特定した送信元IPアドレスに基づき、特定した送信元IPアドレスと、設定されるIPアドレスとが等しい、複数の通信インタフェース101のうちのいずれかの通信インタフェースを、通信に使用する通信インタフェースとして特定する(ステップS314)。
 特定した通信に使用する通信インタフェースに基づき、パケット転送ルール生成部306は、新規フロー検出通知に含まれるフロー情報と、送信元MACアドレスを通信に使用する通信インタフェースに設定されるMACアドレスに書き換えるアクション(ステップS315)、及び受信したパケットを通信に使用する通信インタフェースに送信するアクション(ステップS316)から成るアクション情報とを含むパケット転送ルールを生成する。
 そのようなパケット転送ルールに基づくパケット転送により、パケット転送部200が受信したパケットは、送信先の通信装置が存在するネットワークに接続する通信インタフェースから送信先の通信装置に送信されるようになる。
 第2の実施形態における通信スタック103は、第1の実施形態と同様に、パケットの送信に先んじて、送信先の通信装置のIPアドレスに基づき、送信先のMACアドレスを得るためのアドレス解決を行う。しかし、第2の実施形態における通信装置100は、第1の実施形態とは異なり、仮想インタフェース102を端点としてパケットの送受信を行うため、複数の通信インタフェース101の各通信インタフェース上で直接アドレス解決を行うことができない。そのため、通常のアドレス解決方法では、送信先のMACアドレスを得ることだけでなく、他の通信装置からの複数の通信インタフェース101の各通信インタフェースに対するアドレス解決要求に対応することもできない。
 そこで、第2の実施形態における転送制御部300は、第2の実施形態における通信装置100においてアドレス解決を可能にするための処理を行う。図11は、第2の実施形態における転送制御部のアドレス解決処理の例を示すフローチャートである。
 パケット転送部200がアドレス解決パケットを受信したとき、パケット転送部200は、アドレス解決パケットのフローに対する新規フロー検出通知を転送制御部300に送信する(ステップS401)。第2の実施形態における転送制御部のアドレス解決処理においては、アドレス解決パケットを受信したときに、パケット転送部200から新規フロー検出通知が送信されるようにするため、アドレス解決パケットのフローに対するパケット転送ルールは、パケット転送部200に設定しない。なお、アドレス解決パケットのフローに対する新規フロー検出通知には、アドレス解決パケットそのものが含まれているものとする。
 転送制御部300は、アドレス解決パケットのフローに対する新規フロー検出通知を受信したとき、複数の通信インタフェース101の各通信インタフェースのアドレス情報、及び仮想インタフェース102のアドレス情報を、アドレス情報管理部304を通じて取得する(ステップS402)。そして、アドレス解決パケットの内容を参照し、受信したアドレス解決パケットが、アドレス解決要求パケットなのか、アドレス解決応答パケットなのか判定する(ステップS403)。
 受信したアドレス解決パケットが、アドレス解決要求パケットであった場合(ステップS403における要求)、アドレス解決要求パケットに含まれる要求先IPアドレスを参照し、要求先IPアドレスと、複数の通信インタフェース101のうちのいずれかの通信インタフェースのIPアドレスとが等しいか否かに基づき、受信したアドレス解決要求パケットが、複数の通信インタフェース101の各通信インタフェースに対して要求を行うアドレス解決要求パケットなのか否か判定する(ステップS404)。
 複数の通信インタフェース101の各通信インタフェースに対して要求を行うアドレス解決要求パケットであった場合(ステップS404におけるYes)、アドレス解決要求パケットを受信した通信インタフェースのMACアドレスを含むアドレス解決応答パケットを生成する。その理由は、受信したアドレス解決要求パケットを仮想インタフェース102に転送し、通信スタック103のアドレス解決処理によりアドレス解決応答パケットを生成する場合、アドレス解決要求パケットを受信した通信インタフェースのMACアドレスではなく、仮想インタフェース102に設定される仮想MACアドレスがアドレス解決応答パケットに含まれてしまうためである。
 転送制御部300は、アドレス解決要求パケットを受信した通信インタフェースのMACアドレスを含むアドレス解決応答パケットを生成し(ステップS405)、パケットを受信した通信インタフェースから生成したパケットを要求元の通信装置に送信する(ステップS406)。
 アドレス解決要求パケットを受信した通信インタフェースのMACアドレスを含むアドレス解決応答パケットを生成し、パケットを受信した通信インタフェースから要求元の通信装置に送信することで、他の通信装置からのアドレス解決要求に対応することができる。
 また、上記のような処理を行うことで、他の通信装置から送信されたアドレス解決要求パケットが仮想インタフェース102に転送されることはないため、仮想インタフェース102から他の通信装置に対するアドレス解決応答パケットが送信されることはないと言える。
 受信したアドレス解決要求パケットが、複数の通信インタフェース101の各通信インタフェースに対して要求を行うアドレス解決要求パケットでない場合(ステップS404におけるNo)、仮想インタフェース102を介して通信スタック103が他の通信装置に送信したアドレス解決要求パケットであると判断できる。なお、アドレス解決要求パケットを受信した通信インタフェースが、仮想インタフェース102以外である場合、通信装置100に関係しないアドレス解決要求パケットであると判断できるので、受信したパケットを廃棄する(図示せず)。
 受信したアドレス解決要求パケットが、複数の通信インタフェース101の各通信インタフェースに対して要求を行うアドレス解決要求パケットでない場合、転送制御部300は、アドレス解決要求パケットに含まれる要求先IPアドレスと、仮想デフォルトゲートウェイのMACアドレスとが等しいか否かに基づき、受信したアドレス解決要求パケットが、仮想デフォルトゲートウェイに対して要求を行うアドレス解決要求パケットなのか否か判定する(ステップS407)。
 受信したアドレス解決要求パケットが、仮想デフォルトゲートウェイに対して要求を行うアドレス解決要求パケットであった場合(ステップS407におけるYes)、第1の実施形態と同様に、各通信インタフェースに設定されるデフォルトゲートウェイに対するアドレス解決要求を行う。一方、受信したアドレス解決要求パケットが、仮想デフォルトゲートウェイに対して要求を行うアドレス解決要求パケットでない場合(ステップS407におけるNo)、仮想インタフェース102を介して通信スタック103が、複数の通信インタフェース101を介して接続するネットワーク上にある通信装置に送信したアドレス解決要求パケットであると判断できる。
 受信したアドレス解決要求パケットが、仮想デフォルトゲートウェイに対して要求を行うアドレス解決要求パケットであった場合(ステップS407におけるYes)、転送制御部300は、各通信インタフェースに設定されるデフォルトゲートウェイに対するアドレス解決要求パケットを生成し(ステップS408)、生成したパケットを各通信インタフェースから送信する指示と共に、パケット転送部200に送信する(ステップS409)。パケット転送部200は、その指示に従い、各デフォルトゲートウェイに対するアドレス解決要求のパケットを送信する。
 パケット転送部200から各デフォルトゲートウェイに対するアドレス解決要求を送信することで、各デフォルトゲートウェイから、各デフォルトゲートウェイのMACアドレスを含むアドレス解決応答パケットが送信される。
 受信したアドレス解決要求パケットが、仮想デフォルトゲートウェイに対して要求を行うアドレス解決要求パケットでない場合(ステップS407におけるNo)、受信したアドレス解決要求パケットは、仮想インタフェース102を介して通信スタック103が、複数の通信インタフェース101のうちのいずれかの通信インタフェースを介して接続するネットワーク上にある通信装置に送信したアドレス解決要求パケットであるため、アドレス解決要求パケットがその通信装置に送信されるようにする対応が必要である。
 第2の実施形態においては、複数の通信インタフェース101の各通信インタフェースのIPアドレスを、仮想インタフェース102に設定したこと、及び複数の通信インタフェース101を介して接続する各ネットワークには、仮想インタフェース102を介して通信を行う経路情報を経路表104に設定したことにより、仮想インタフェース102を介して通信スタック103が送信するアドレス解決要求パケットに含まれる要求元IPアドレスは、MACアドレスを得ようとする通信装置が存在するネットワークに接続する複数の通信インタフェース101のうちのいずれかの通信インタフェースのIPアドレスになる。ゆえに、要求元IPアドレスに基づき、通信に使用する通信インタフェースを特定することができる。
 受信したアドレス解決要求パケットが、仮想デフォルトゲートウェイに対して要求を行うアドレス解決要求パケットでない場合、転送制御部300は、アドレス解決要求パケットに含まれる要求元IPアドレスと、設定されるIPアドレスとが等しい、複数の通信インタフェース101のうちのいずれかの通信インタフェースを、通信に使用する通信インタフェースとして特定する(ステップS410)。
 特定した通信に使用する通信インタフェースに基づき、受信したアドレス解決要求パケットに含まれる送信元MACアドレス及び要求元MACアドレスを、通信に使用する通信インタフェースのMACアドレスに書き換え(ステップS411)、送信元MACアドレス及び要求元MACアドレスを書き換えたアドレス解決要求パケットを、通信に使用する通信インタフェースから送信する(ステップS412)。
 要求元IPアドレスに基づき、通信に使用する通信インタフェースを特定し、送信元MACアドレス及び要求元MACアドレスを通信に使用する通信インタフェースのMACアドレスに書き換え、通信に使用する通信インタフェースから送信することで、アドレス解決要求パケットは、複数の通信インタフェース101のうちのいずれかの通信インタフェースを介して接続するネットワーク上にある通信装置に送信されるようになる。
 受信したアドレス解決パケットが、アドレス解決応答パケットであった場合(ステップS403における応答)、アドレス解決応答パケットに含まれる応答先IPアドレスを参照し、応答先IPアドレスと、複数の通信インタフェース101のうちのいずれかの通信インタフェースのIPアドレスとが等しいか否かに基づき、受信したアドレス解決応答パケットが、複数の通信インタフェース101の各通信インタフェースに対する応答であるアドレス解決応答パケットなのか否か判定する(ステップS413)。
 受信したアドレス解決応答パケットが、複数の通信インタフェース101の各通信インタフェースに対する応答であるアドレス解決応答パケットでない場合(ステップS413におけるNo)、アドレス解決応答パケットを受信した通信インタフェースが、仮想インタフェース102以外である場合、通信装置100に関係しないアドレス解決要求パケットであると判断できるので、受信したパケットを廃棄する(S414)。
 他の通信装置からアドレス解決要求パケットを受信したとき、パケットを受信した通信インタフェースのMACアドレスを含むアドレス解決応答パケットを生成し、要求元の通信装置に送信することにより、他の通信装置から送信されたアドレス解決要求パケットが仮想インタフェース102に転送されることはないため、仮想インタフェース102から他の通信装置に対するアドレス解決応答パケットが送信されることはない。そのため、仮想インタフェース102から送信されるアドレス解決応答パケットについては、考慮しなくても良い。
 受信したアドレス解決応答パケットが、複数の通信インタフェース101の各通信インタフェースに対する応答であるアドレス解決応答パケットであった場合(ステップS413におけるYes)、アドレス解決応答パケットに含まれる応答元IPアドレスと、各通信インタフェースに設定されるデフォルトゲートウェイのMACアドレスとが等しいか否かに基づき、受信したアドレス解決応答パケットが、各通信インタフェースに設定されるデフォルトゲートウェイからの応答であるアドレス解決応答パケットなのか否か判定する(ステップS415)。
 受信したアドレス解決応答パケットが、各デフォルトゲートウェイからの応答であるアドレス解決応答パケットであった場合(ステップS415におけるYes)、第1の実施形態と同様に、各デフォルトゲートウェイのMACアドレスの記憶、及び仮想デフォルトゲートウェイに関するアドレス解決応答を行う。
 各デフォルトゲートウェイからの応答であるアドレス解決応答パケットに含まれる応答元MACアドレスにより、各デフォルトゲートウェイのMACアドレスが取得できる。取得した各デフォルトゲートウェイのMACアドレスは、アドレス情報管理部304を通じて記憶する(ステップS416)。そして、全てのデフォルトゲートウェイのMACアドレスを取得できたか否か判定し(ステップS417)、全て取得できた時点で(ステップS417におけるYes)、転送制御部300は、仮想デフォルトゲートウェイの仮想MACアドレスを含むアドレス解決応答パケットを生成し(ステップS418)、生成したパケットを仮想インタフェース102から送信する指示と共に、パケット転送部200に送信する(ステップS419)。パケット転送部200は、その指示に従い、仮想デフォルトゲートウェイの仮想MACアドレスを含むアドレス解決応答パケットを送信する。
 全てのデフォルトゲートウェイのMACアドレスを取得できた時点で、仮想デフォルトゲートウェイの仮想MACアドレスを含むアドレス解決応答パケットを生成し、仮想インタフェース102に送信することで、通信スタック103がパケットを送信するために必要な仮想デフォルトゲートウェイのMACアドレス、及び、パケット転送ルール生成部306がパケット転送ルールを生成するために必要な通信に使用する通信インタフェースに設定されるデフォルトゲートウェイのMACアドレスを得ることができる。
 受信したアドレス解決応答パケットが、各デフォルトゲートウェイからの応答であるアドレス解決応答パケットでない場合(ステップS415におけるNo)、仮想インタフェース102を介して通信スタック103が送信し、要求先の送信装置に転送されるアドレス解決要求パケットに対する応答として、要求先の送信装置から送信されたアドレス解決応答パケットであると言える。そのアドレス解決応答パケットに含まれる応答先IPアドレスは、要求先の送信装置にアドレス解決要求パケットを送信する際に使用した複数の通信インタフェース101のうちのいずれかの通信インタフェースのIPアドレスになる。通信スタック103は、仮想インタフェース102を介してアドレス解決要求パケットを送信するため、仮想インタフェース102でアドレス解決応答パケットが受信されるようにする対応が必要である。
 その場合、受信したアドレス解決応答パケットに含まれる送信先MACアドレス及び応答先MACアドレスを、仮想インタフェース102のMACアドレスに書き換え(ステップS420)、送信先MACアドレス及び応答先MACアドレスを書き換えたアドレス解決応答パケットを、仮想インタフェース102から送信する(ステップS421)。
 受信したアドレス解決応答パケットに含まれる送信先MACアドレス及び応答先MACアドレスを仮想インタフェース102のMACアドレスに書き換え、仮想インタフェース102から送信することで、仮想インタフェース102上で、複数の通信インタフェース101を介して接続するネットワーク上にある送信装置のMACアドレスを得るためのアドレス解決を行うことができる。
(第3の実施形態)
 第1、第2の実施形態においては、ユーザ又は任意のプログラムが、使用インタフェース情報管理部302を通じて使用インタフェース情報記憶部301に、フロー毎の使用インタフェース情報を設定するが、同一のフローに対して、異なる複数の通信インタフェースを使用して通信を行うように、フロー毎に複数の使用インタフェース情報を設定しても良い。
 図12は、第3の実施形態における使用インタフェース情報記憶部に記憶される使用インタフェース情報の構成例である。使用インタフェース情報記憶部302上に、同一のフロー情報と、それぞれが異なる通信インタフェースを指す複数の通信インタフェース101のうちのいずれかを一意に特定可能な情報とを含む使用インタフェース情報が複数存在する場合、フロー情報だけでは通信に使用する通信インタフェースを特定することはできない。そこで、通信に使用する通信インタフェースを特定するためのパラメータとして、いくつかの情報を使用インタフェース情報に含める。図12の構成例では、使用インタフェース情報は、通信に使用する通信インタフェースを特定するためのパラメータとして、各使用インタフェース情報の優先度と、通信インタフェースが通信可能な状態にあるか否かを示す通信可否と、受信電界強度の閾値と、送受信するパケット数の上限とを含む。
 第3の実施形態における転送制御部300のパケット転送ルール生成部306が行うパケット転送ルール生成処理において、パケット転送ルール生成部306は、フロー情報、及び通信に使用する通信インタフェースを特定するためのパラメータにより、複数の使用インタフェース情報のうち、どの使用インタフェース情報に基づきパケット転送ルールを生成するか選択する。例えば、通信可能な通信インタフェースのうち優先度の値が最も小さい通信インタフェースを使用する、受信電界強度の値が閾値より大きい無線インタフェースを使用する、送受信したパケット数を記憶しておき、パケット数が上限に達した通信インタフェースは使用しない等、いくつかのパラメータの組み合せに従って、使用インタフェース情報を選択することで、任意の要求又は条件に合う通信インタフェースを、動的に選択して通信を行うことができる。
 (第4の実施形態)
 第1、第2の実施形態における通信装置100は、フロー単位のネットワーク制御方式を利用する通信装置であって、受信したパケットの転送を行うパケット転送部200と、パケット転送部200の動作を制御する転送制御部300とを備え、パケット転送部200と転送制御部300とは、任意の方法によって接続される。パケット転送部200及び転送制御部300は、第1、第2の実施形態において説明したパケット転送を行うが、エラーの発生によって転送制御部300の動作が停止した等の理由により、パケット転送部200と転送制御部300との接続が切れた場合、パケット転送を行うことができなくなり、通信不能に陥るという課題がある。
 パケット転送部によっては、転送制御部との接続が切れた際、フロー単位のネットワーク制御方式に関する機能を停止させ、通信装置の通信スタックが行う経路制御によって通信を行うことが可能である。しかし、第1、第2の実施形態においては、パケット転送部200及び転送制御部300によるパケット転送によって通信を可能にするための経路情報を経路表104に設定しているため、通信装置100の通信スタック103が経路表104を使用して経路制御を行っても、通信を行うことができない。
 第1の実施形態においては、経路表104上のデフォルトゲートウェイに関する経路情報として、ネクストホップが仮想デフォルトゲートウェイである経路情報のみが設定されるため、通信装置100が直接接続するネットワーク以外のネットワーク上の通信装置との通信を行うことができない。第2の実施形態においては、第1の実施形態と同様に、経路表104上のデフォルトゲートウェイに関する経路情報として、ネクストホップが仮想デフォルトゲートウェイである経路情報のみが設定される。また、経路表104上の複数の通信インタフェース101を介して接続する各ネットワークへの経路に関する経路情報として、送信先ネットワークが複数の通信インタフェース101を介して接続する各ネットワークであり、出力インタフェースが仮想インタフェース102である経路情報が設定される。そのため、通信装置100が直接接続するネットワーク以外のネットワーク上の通信装置だけでなく、複数の通信インタフェース101を介して接続する各ネットワーク上にある通信装置との通信も行うことができない。
 そこで、第4の実施形態においては、通信装置100の通信スタック103が複数の経路表を持ち、パケット転送部200と転送制御部300との接続が切れた際、通信スタック103が行う経路制御に使用する経路表を切り替えることにより、通信不能に陥ることを回避する。
 図13は、第4の実施形態における通信装置の構成例を示すブロック図である。第1、第2の実施形態における通信装置の構成要素と同様の構成要素については、同一の符号を付し、詳細な説明を省略する。第4の実施形態における通信スタック103は、パケット転送部200及び転送制御部300によるパケット転送によって通信を可能にするために使用する経路表104と、パケット転送が行えない場合に使用する経路表106を持つ。また、第4の実施形態における通信装置100は、パケット転送部200と転送制御部300との接続を監視する接続監視部400を備える。
 更に、図14に示すように、通信スタック103は、アドレス情報記憶部107と、アドレス情報管理部108と、経路表管理部109とを備える。
 パケット転送部200及び転送制御部300によるパケット転送によって通信を可能にするために使用する経路表104は、転送制御部300のアドレス情報記憶部303及び、アドレス情報管理部304、経路表管理部305により、第1の実施形態における図6、又は第2の実施形態における図9に示すような構成に設定される。一方、パケット転送が行えない場合に使用する経路表106は、第4の実施形態における通信スタック103のアドレス情報記憶部107及び、アドレス情報管理部108、経路表管理部109により、図15に示すような構成に設定される。
 アドレス情報管理部108は、アドレス情報管理部304と同様に、複数の通信インタフェース101の各通信インタフェースのアドレス情報を取得し、アドレス情報記憶部107に記憶させる。また、アドレス情報管理部108は、DHCPのリース期間切れや通信装置の移動に伴うハンドオーバーの発生等によってアドレス情報の変更が発生した際、アドレス情報の変更が発生した通信インタフェースのアドレス情報を改めて取得し、アドレス情報記憶部107に記憶させる。
 経路表管理部109は、アドレス情報記憶部107に記憶されたアドレス情報に基づき、パケット転送部200及び転送制御部300によるパケット転送が行えない場合に使用する経路表106の設定を行う。経路表106上の複数の通信インタフェース101を介して接続する各ネットワークへの経路に関する経路情報として、送信先ネットワークが複数の通信インタフェース101を介して接続する各ネットワークであり、出力インタフェースが各通信インタフェースである経路情報を設定する。また、経路表106上のデフォルトゲートウェイに関する経路情報として、ネクストホップが複数の通信インタフェース101の通信インタフェース毎に設定されるデフォルトゲートウェイのうちのいずれかのデフォルトゲートウェイに関する経路情報のみを設定する。
 なお、経路表106に設定するデフォルトゲートウェイに関する経路情報について、複数の通信インタフェース101の通信インタフェース毎に設定される各々のデフォルトゲートウェイに関する経路情報を設定してもよい。ただし、その場合、ネクストホップが複数の通信インタフェース101の通信インタフェース毎に設定されるデフォルトゲートウェイのうちのいずれかのデフォルトゲートウェイに関する経路情報のうちのいずれかを優位に設定する。
 経路表106に設定するデフォルトゲートウェイに関する経路情報は、任意の方法によって決定される。例えば、予め複数の通信インタフェース101のうちいずれか1つをデフォルトの通信インタフェースに設定し、ネクストホップがデフォルトの通信インタフェースに設定されるデフォルトゲートウェイである経路情報を設定する。
 接続監視部400は、パケット転送部200と転送制御部300との接続を監視し、その接続状態に基づき、通信スタック103に対し、経路制御に使用する経路表を切り替える設定を行う。
 パケット転送部200と転送制御部300とが接続されている場合、接続監視部400は、経路表104を使用して経路制御を行うように通信スタック103の設定を行う。その場合、通信装置100の構成は、第1の実施形態における図4、又は第2の実施形態における図8に示す構成と同様の構成になる。通信スタック103が経路表104を使用して経路制御を行うことで、パケット転送部200及び転送制御部300によるパケット転送によって通信を行うことが可能になる。
 接続監視部400は、パケット転送部200と転送制御部300との接続が切れたことを検知すると、経路表106を使用して経路制御を行うように通信スタック103の設定を行う。パケット転送部200と転送制御部300との接続が切れた際、通信スタック103の経路制御に使用する経路表を、経路表104から経路表106に切り替えることで、パケット転送部200及び転送制御部300によるパケット転送が行えない場合においても、通信スタック103の経路制御によって通信を行うこと可能になる。
 パケット転送部200と転送制御部300との接続が切れ、パケット転送部200及び転送制御部300によるパケット転送が行えない場合、通信装置100の構成は、図16に示す構成になる。
 なお、経路表106を使用して通信スタック103が経路制御を行うことで、通信を行うことは可能であるが、パケット転送部200及び転送制御部300によるパケット転送が行えないため、複数の通信インタフェース101を介して接続するネットワークのうちのいずれを利用した場合においても通信装置100が直接接続するネットワーク以外のネットワーク上の通信装置との通信を行うこと、及びフロー毎に通信に利用するネットワークを選択することはできない。すなわち、その場合においては、通常のIP通信の仕組みによる通信と同等である。
 また、接続監視部400は、パケット転送部200と転送制御部300との接続が切れ、通信スタック103の経路制御に使用する経路表を、経路表104から経路表106に切り替えた後、パケット転送部200と転送制御部300とが接続されたことを検知した際、パケット転送部200及び転送制御部300によるパケット転送によって通信が可能になるように、通信スタック103が経路制御に使用する経路表を、経路表106から経路表104に切り替えてもよい。
 また、第4の実施形態おいては、通信スタック103は、パケット転送部200及び転送制御部300によるパケット転送によって通信を可能にするために使用する経路表104と、パケット転送が行えない場合に使用する経路表106との、2つの経路表を持つと説明したが、通信スタック103が持つ経路表の数は、特に限定されず、1つ以上であればよい。1つの経路表上に、複数の通信インタフェース101を介して接続する各ネットワークへの経路に関する経路情報、及びデフォルトゲートウェイに関する経路情報を複数設定し、パケット転送部200と転送制御部300との接続状態に基づき、そのうちの適切な経路情報を優位に設定し、通信スタック103が行う経路制御に使用する経路情報を切り替えてもよい。
 例えば、複数の通信インタフェース101を介して接続する各ネットワークへの経路に関する経路情報として、送信先ネットワークが複数の通信インタフェース101を介して接続する各ネットワークであり、出力インタフェースが各通信インタフェースである経路情報、及び送信先ネットワークが複数の通信インタフェース101を介して接続する各ネットワークであり、出力インタフェースが仮想インタフェースである経路情報を経路表104設定する。また、デフォルトゲートウェイに関する経路情報として、ネクストホップが複数の通信インタフェース101の通信インタフェース毎に設定されるデフォルトゲートウェイのうちのいずれかのデフォルトゲートウェイである経路情報、及びネクストホップが仮想インタフェースである経路情報を経路表104に設定する。
 パケット転送部200と転送制御部300とが接続されている場合、複数の通信インタフェース101を介して接続する各ネットワークへの経路に関する経路情報として、送信先ネットワークが複数の通信インタフェース101を介して接続する各ネットワークであり、出力インタフェースが仮想インタフェースである経路情報を優位に設定し、デフォルトゲートウェイに関する経路情報として、ネクストホップが仮想インタフェースである経路情報を優位に設定することで、パケット転送部200及び転送制御部300によるパケット転送によって通信を行うことができる。
 一方、パケット転送部200と転送制御部300との接続が切れている場合、複数の通信インタフェース101を介して接続する各ネットワークへの経路に関する経路情報として、送信先ネットワークが複数の通信インタフェース101を介して接続する各ネットワークであり、出力インタフェースが各通信インタフェースである経路情報を優位に設定し、デフォルトゲートウェイに関する経路情報として、ネクストホップが複数の通信インタフェース101の通信インタフェース毎に設定されるデフォルトゲートウェイのうちのいずれかのデフォルトゲートウェイである経路情報を優位に設定することで、パケット転送が行えない場合においても、通信スタック103が行う経路制御によって通信を行うことができる。
 以上に現時点で考えられる本発明の好適な実施の形態を説明したが、本実施の形態に対して多様な変形が可能であり、そして、本発明の真実の精神と範囲内にあるそのようなすべての変形を添付の請求の範囲が含むことが意図されている。
 以上説明したように、本発明によれば、フロー毎に適切なネットワークを利用して通信等を行うことができるという優れた効果を有し、1つ以上の通信インタフェースを備える通信装置、例えば、パーソナルコンピュータやスマートフォン等に好適に適用される。
100 通信装置
101 複数の通信インタフェース
102 仮想インタフェース
103 通信スタック
104 経路表
105 通信プログラム
106 経路表
107 アドレス情報記憶部
108 アドレス情報管理部
109 経路表管理部
200 パケット転送部
201 パケット転送ルール記憶部
202 パケット転送ルール管理部
203 フロー識別部
204 アクション実行部
300 転送制御部
301 使用インタフェース情報記憶部
302 使用インタフェース情報管理部
303 アドレス情報記憶部
304 アドレス情報管理部
305 経路表管理部
306 パケット転送ルール生成部
307 パケット転送部管理部
400 接続監視部
 

Claims (19)

  1.  フロー毎に通信に利用するネットワークを選択することが可能な、フロー単位のネットワーク制御方式を利用する通信装置であって、
     前記通信装置は、
     1つ以上の通信インタフェースと、
     受信したパケットを転送するパケット転送部と、
     前記パケット転送部の動作を制御する転送制御部と、
    を備えることを特徴とする通信装置。
  2.  前記パケット転送部は、前記1つ以上の通信インタフェース及び仮想インタフェースに接続し、パケットの転送を行う請求項1記載の通信装置。
  3.  前記転送制御部は、
     フローを識別可能な情報であるフロー情報と、前記1つ以上の通信インタフェースのうちのいずれかを一意に特定可能な情報とを含む情報であって、フロー毎にどの通信インタフェースを使用して通信を行うのかを定める使用インタフェース情報を記憶する使用インタフェース情報記憶部と、
     前記使用インタフェース情報記憶部に記憶させる前記使用ネットワーク情報を、ユーザ又は任意のプログラムから設定することを可能にする使用インタフェース情報管理部と、を備える請求項1記載の通信装置。
  4.  前記転送制御部は、
     通信インタフェース及び前記仮想インタフェースがパケットの送受信を行うために必要な情報であって、通信インタフェース及び前記仮想インタフェースに設定されるアドレス情報を記憶するアドレス記憶部と、
     前記アドレス情報を通信インタフェース及び前記仮想インタフェースから取得して前記アドレス記憶部に記憶させるアドレス情報管理部と、
    を備える請求項2記載の通信装置。
  5.  前記転送制御部は、
     前記アドレス情報管理部が取得した前記1つ以上の通信インタフェース毎に設定されるデフォルトゲートウェイ及び前記仮想インタフェースに設定される仮想デフォルトゲートウェイのうち前記仮想デフォルトゲートウェイのみを前記通信装置の経路表に設定する経路表管理部を備える請求項4記載の通信装置。
  6.  前記転送制御部は、
     パケットを受信したときの前記パケット転送部の動作を定める情報であるパケット転送ルールを生成するパケット転送ルール生成部と、
     前記パケット転送部を管理し、前記パケット転送ルール生成部が生成した前記パケット転送ルールを前記パケット転送部に設定するパケット転送部管理部と、
    を備える請求項1記載の通信装置。
  7.  前記パケット転送ルール生成部は、
     前記パケット転送部から前記パケット転送ルールの生成を要求されたとき、前記使用インタフェース情報に基づき、通信に使用する通信インタフェースを特定し、前記フロー情報、及び前記通信に使用する通信インタフェースのアドレス情報に基づき、パケットに含まれる任意のアドレス及び識別子の値の書き換え、及び前記通信に使用する通信インタフェースにパケットを送信する処理等に関する情報を含む前記パケット転送ルールを生成することを特徴とする請求項6記載の通信装置。
  8.  前記パケット転送ルール生成部は、
     前記パケット転送ルールの生成を要求されたフローの送信先が仮想デフォルトゲートウェイである場合、前記フローに適合するフロー情報を含む使用インタフェース情報に基づき、通信に使用する通信インタフェースを特定し、前記パケット転送部が前記フローのパケットを前記通信に使用する通信インタフェースに設定されるデフォルトゲートウェイに転送するように、前記パケット転送ルールを生成することを特徴とする請求項7記載の通信装置。
  9.  仮想インタフェースと、
     1つ以上の経路表を有する通信スタックと、
     前記パケット転送部と前記転送制御部の接続を監視する接続監視部と、
     をさらに備えることを特徴とする請求項1記載の通信装置。
  10.  前記1つ以上の経路表は、
     前記パケット転送部及び前記転送制御部によるパケット転送によって通信を可能にするために使用する第1の経路表と、
     前記パケット転送が行えない場合に使用する第2の経路表と、
     を含むことを特徴とする請求項9記載の通信装置。
  11.  前記転送制御部は、
     前記1つ以上の通信インタフェース及び前記仮想インタフェースがパケットの送受信を行うために必要な情報であって、前記1つ以上の通信インタフェース及び前記仮想インタフェースに設定されるアドレス情報を記憶するアドレス記憶部と、
     前記アドレス情報を取得して前記アドレス記憶部に記憶させるアドレス情報管理部と、前記アドレス情報管理部に記憶された情報に基づき、前記第1の経路表の設定を行う経路表管理部と、
     を備え、
     前記通信スタックが前記仮想インタフェースに設定される仮想デフォルトゲートウェイに関する経路情報を使用して経路制御を行うように前記第1の経路表を設定することを特徴とする請求項9記載の通信装置。
  12.  前記通信スタックは、
     前記アドレス情報を記憶するアドレス記憶部と、
     前記アドレス情報を取得して前記アドレス記憶部に記憶させるアドレス情報管理部と、
     前記アドレス情報管理部に記憶された情報に基づき、前記第2の経路表の設定を行う経路表管理部と、
     を備え、
     前記通信スタックが前記1つ以上の通信インタフェース毎に設定されるデフォルトゲートウェイのうちいずれか1つのデフォルトゲートウェイに関する経路情報を使用して経路制御を行うように前記第2の経路表を設定することを特徴とする請求項9記載の通信装置。
  13.  前記接続監視部は、前記パケット転送部と前記転送制御部との接続状態に基づき、前記通信スタックの経路制御に使用する経路表を、前記第1の経路表又は前記第2の経路表に切り替えることにより、通信を可能とすることを特徴とする請求項9記載の通信装置。
  14.  1つ以上の通信インタフェースと、受信したパケットを転送するパケット転送部とを備えるフロー単位のネットワーク制御方式を利用する通信装置において、ユーザ又は任意のプログラムがフロー毎に通信に使用する通信インタフェースを選択可能にする転送制御方法であって、
     前記転送制御方法は、
     パケットを受信したときの前記パケット転送部の動作を定める情報であるパケット転送ルールを生成するパケット転送ルール生成ステップと、
     前記パケット転送部を管理し、前記パケット転送ルール生成ステップが生成した前記パケット転送ルールを前記パケット転送部に設定するパケット転送部管理ステップと、
    を含むことを特徴とする転送制御方法。
  15.  前記パケット転送ルール生成ステップでは、
     前記パケット転送部から前記パケット転送ルールの生成を要求されたとき、フローを識別可能な情報であるフロー情報と、前記1つ以上の通信インタフェースのうちのいずれかを一意に特定可能な情報であって、フロー毎にどの通信インタフェースを使用して通信を行うのかを定める使用インタフェース情報と、通信インタフェースがパケットの送受信を行うために必要な情報であって、通信インタフェースに設定されるアドレス情報とに基づき、パケットに含まれる任意のアドレス及び識別子の値の書き換え、及び前記通信に使用する通信インタフェースにパケットを送信する処理に関する前記パケット転送ルールを生成することを特徴とする請求項14記載の転送制御方法。
  16.  前記通信装置は、さらに、仮想インタフェースと、1つ以上の経路表を有する通信スタックと、前記パケット転送部の動作を制御する転送制御部とを備え、フロー毎に通信に利用するネットワークを選択することが可能な、フロー単位のネットワーク制御方式を利用する通信装置であって、
     前記転送制御方法は、前記パケット転送部と前記転送制御部の接続を監視する方法であって、
     前記パケット転送部と前記転送制御部との接続状態に基づき、前記通信スタックの経路制御に使用する経路表を切り替えることにより、通信を可能とすることを特徴とする請求項14記載の転送制御方法。
  17.  1つ以上の通信インタフェースと、受信したパケットを転送するパケット転送部とを備えるフロー単位のネットワーク制御方式を利用するコンピュータにおいて、ユーザ又は任意のプログラムがフロー毎に使用する通信インタフェースを選択可能にする処理を実行させるプログラムであって、
     前記プログラムは、前記コンピュータに、
     パケットを受信したときの前記パケット転送部の動作を定める情報であるパケット転送ルールを生成するパケット転送ルール生成処理と、
     前記パケット転送部を管理し、前記パケット転送ルール生成処理が生成した前記パケット転送ルールを前記パケット転送部に設定するパケット転送部管理処理と、
    を実行させる転送制御プログラム。
  18.  前記パケット転送ルール生成処理では、
     前記パケット転送部から前記パケット転送ルールの生成を要求されたとき、フローを識別する情報であるフロー情報と、前記1つ以上の通信インタフェースのうちのいずれかを一意に特定可能な情報であって、フロー毎にどの通信インタフェースを使用して通信を行うのかを定める使用インタフェース情報と、通信インタフェースがパケットの送受信を行うために必要な情報であって、通信インタフェースに設定されるアドレス情報とに基づき、パケットに含まれる任意のアドレス及び識別子の値の書き換え、及び前記通信に使用する通信インタフェースにパケットを送信する処理に関する前記パケット転送ルールを生成させることを特徴とする請求項17記載の転送制御プログラム。
  19.  前記コンピュータは、仮想インタフェースと、1つ以上の経路表を有する通信スタックと、前記パケット転送部の動作を制御する転送制御部とをさらに備え、フロー毎に通信に利用するネットワークを選択することが可能な、フロー単位のネットワーク制御方式を利用するコンピュータであって、前記転送制御プログラムは、前記パケット転送部と前記転送制御部の接続を監視するプログラムであって、
     前記パケット転送部と前記転送制御部との接続状態に基づき、前記通信スタックの経路制御に使用する経路表を切り替えることにより、通信を可能とすることを特徴とする請求項17記載の転送制御プログラム。
     
PCT/JP2013/004825 2012-09-06 2013-08-12 通信装置、転送制御方法及び転送制御プログラム WO2014038135A1 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2012196023A JP5909688B2 (ja) 2012-09-06 2012-09-06 通信装置、転送制御方法及び転送制御プログラム
JP2012-196023 2012-09-06
JP2013-118074 2013-06-04
JP2013118074A JP6075215B2 (ja) 2013-06-04 2013-06-04 通信装置、転送制御方法、及び転送制御プログラム

Publications (1)

Publication Number Publication Date
WO2014038135A1 true WO2014038135A1 (ja) 2014-03-13

Family

ID=50236771

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/004825 WO2014038135A1 (ja) 2012-09-06 2013-08-12 通信装置、転送制御方法及び転送制御プログラム

Country Status (1)

Country Link
WO (1) WO2014038135A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015052866A1 (ja) * 2013-10-11 2015-04-16 日本電気株式会社 端末装置、端末装置制御方法および端末装置制御プログラム
WO2015186450A1 (en) 2014-06-03 2015-12-10 Ricoh Company, Ltd. Communication apparatus, communication method, and communication system
JP2016066970A (ja) * 2014-09-26 2016-04-28 アラクサラネットワークス株式会社 通信装置及び、通信装置の制御方法
TWI658718B (zh) * 2014-11-11 2019-05-01 日本電氣股份有限公司 無線終端、儲存應用程式的計算機可讀媒體及以計算機執行之方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004080106A (ja) * 2002-08-09 2004-03-11 Nippon Telegr & Teleph Corp <Ntt> 移動端末通信方法及び移動端末
JP2008522482A (ja) * 2004-12-20 2008-06-26 韓國電子通信研究院 複数のネットワーク・インターフェースを有するノードの異種ネットワーク・インターワーキング方法
JP2011524684A (ja) * 2008-06-09 2011-09-01 クゥアルコム・インコーポレイテッド ネットワーク制御されたモバイルipフロー動作のための方法および装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004080106A (ja) * 2002-08-09 2004-03-11 Nippon Telegr & Teleph Corp <Ntt> 移動端末通信方法及び移動端末
JP2008522482A (ja) * 2004-12-20 2008-06-26 韓國電子通信研究院 複数のネットワーク・インターフェースを有するノードの異種ネットワーク・インターワーキング方法
JP2011524684A (ja) * 2008-06-09 2011-09-01 クゥアルコム・インコーポレイテッド ネットワーク制御されたモバイルipフロー動作のための方法および装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JUKKA YLITALO: "Dynamic network interface selection in multihomed mobile hosts, System Sciences, 2003.", PROCEEDINGS OF THE 36TH ANNUAL HAWAII INTERNATIONAL CONFERENCE ON, January 2003 (2003-01-01) *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015052866A1 (ja) * 2013-10-11 2015-04-16 日本電気株式会社 端末装置、端末装置制御方法および端末装置制御プログラム
JPWO2015052866A1 (ja) * 2013-10-11 2017-03-09 日本電気株式会社 端末装置、端末装置制御方法および端末装置制御プログラム
US10555217B2 (en) 2013-10-11 2020-02-04 Nec Corporation Terminal device, terminal-device control method, and terminal-device control program
WO2015186450A1 (en) 2014-06-03 2015-12-10 Ricoh Company, Ltd. Communication apparatus, communication method, and communication system
KR20160146996A (ko) * 2014-06-03 2016-12-21 가부시키가이샤 리코 통신 장치, 통신 방법 및 통신 시스템
CN106416146A (zh) * 2014-06-03 2017-02-15 株式会社理光 通信装置、通信方法和通信系统
EP3152873A4 (en) * 2014-06-03 2017-07-26 Ricoh Company, Ltd. Communication apparatus, communication method, and communication system
US10177973B2 (en) 2014-06-03 2019-01-08 Ricoh Company, Ltd. Communication apparatus, communication method, and communication system
KR101982329B1 (ko) 2014-06-03 2019-05-24 가부시키가이샤 리코 통신 장치, 통신 방법 및 통신 시스템
JP2016066970A (ja) * 2014-09-26 2016-04-28 アラクサラネットワークス株式会社 通信装置及び、通信装置の制御方法
TWI658718B (zh) * 2014-11-11 2019-05-01 日本電氣股份有限公司 無線終端、儲存應用程式的計算機可讀媒體及以計算機執行之方法

Similar Documents

Publication Publication Date Title
US11134012B2 (en) Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow
CN113302880B (zh) 用于支持局域网(lan)的方法和装置
JP5621778B2 (ja) コンテンツベーススイッチシステム、及びコンテンツベーススイッチ方法
JP6463839B2 (ja) モバイル環境におけるフローベースのアドレス指定のためのシステム及び方法
WO2012133290A1 (ja) コンピュータシステム、及び通信方法
US20120170477A1 (en) Computer, communication system, network connection switching method, and program
US11284320B2 (en) User equipment
JPWO2014199646A1 (ja) 通信システムにおけるサービス品質の制御方法および制御装置、ならびに通信装置
WO2014038135A1 (ja) 通信装置、転送制御方法及び転送制御プログラム
US20210168704A1 (en) User equipment
US20170005907A1 (en) Apparatus and method of adaptively connecting devices in a network with gateways coupled to external networks
WO2019214810A1 (en) Management &amp; orchestration aided transparent of 3gpp network into tsn bases industrial network
WO2019119346A1 (zh) 一种通信路径确定方法及网络设备
WO2014179920A1 (zh) 基于sdn的网络配置方法、装置及系统
JP5725236B2 (ja) 通信システム、ノード、パケット転送方法およびプログラム
JP5909688B2 (ja) 通信装置、転送制御方法及び転送制御プログラム
JP2013172273A (ja) ハンドオーバ処理システム、及びゲートウェイルータ
JP6075215B2 (ja) 通信装置、転送制御方法、及び転送制御プログラム
JP6296578B2 (ja) アクセスノード、移動性管理ネットワーク要素、およびページングメッセージ処理方法
KR20170041036A (ko) 효율적 데이터 전송을 위한 네트워크 시스템 및 데이터 전송 방법
JP2015095789A (ja) 通信端末、通信方法および通信プログラム
US20170019845A1 (en) Communication terminal, communication method, and program-containing storage medium
WO2015052870A1 (ja) 端末装置、端末装置制御方法、および端末装置制御プログラム
US12004211B2 (en) Management and orchestration aided transparent of 3GPP network into TSN based industrial network
JP5861424B2 (ja) 通信システム、制御装置、通信方法およびプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13835773

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13835773

Country of ref document: EP

Kind code of ref document: A1