WO2011027405A1 - Communication device - Google Patents

Communication device Download PDF

Info

Publication number
WO2011027405A1
WO2011027405A1 PCT/JP2009/004392 JP2009004392W WO2011027405A1 WO 2011027405 A1 WO2011027405 A1 WO 2011027405A1 JP 2009004392 W JP2009004392 W JP 2009004392W WO 2011027405 A1 WO2011027405 A1 WO 2011027405A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
interface
identifier
identification information
processing unit
Prior art date
Application number
PCT/JP2009/004392
Other languages
French (fr)
Japanese (ja)
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
Application filed by 株式会社 東芝 filed Critical 株式会社 東芝
Priority to PCT/JP2009/004392 priority Critical patent/WO2011027405A1/en
Publication of WO2011027405A1 publication Critical patent/WO2011027405A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/26Network addressing or numbering for mobility support
    • 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

Definitions

  • the present invention relates to a communication device.
  • a communication device there is a device that includes a plurality of interfaces and can switch the interfaces.
  • Patent Document 1 For example, when the communication apparatus moves, the radio wave of the network connected to one interface is weakened, so the interface may be switched to an interface connected to a network with strong radio waves.
  • the present invention aims to prevent communication of an application from being stopped against the user's intention.
  • a communication apparatus is a communication apparatus that communicates with another apparatus via a network, and includes a first interface and a second interface that can be connected to the network.
  • Identification information including an interface, an application identifier for identifying an application, and an interface identifier for identifying an interface used by the application, a processing unit for switching an interface used for communication by the application, and the processing unit
  • it is a roamable application that can continue communication even when the interface used by the application is switched, or roaming that cannot continue communication when the interface used by the application is switched.
  • a determination unit that determines whether the application is an application, and when the application communicates using the first interface, the processing unit includes an application identifier that identifies the application and the first interface.
  • First identification information including a first interface identifier to be identified is output, and when the second interface is connected to a network, an application identifier and a second interface to identify an application capable of roaming are identified.
  • the second identification information including the second interface identifier is output, and the determination unit can roam the application specified by the application identifier included in both the first identification information and the second identification information. It is determined that the application is Determining that the application identified by the application identifier not included in the second identification information is an application that cannot be roamed, and the processing unit determines that the application is not roaming.
  • the interface used for communication by the application is not switched from the first interface to the second interface.
  • FIG. 1 is a diagram illustrating a communication system according to the first embodiment.
  • the communication device 10 of the communication system includes an interface 101 and an interface 102.
  • the communication device 10 can communicate with the communication device 60 and the communication device 70 via the wireless LAN 80 and the Internet 85 using the interface 101.
  • the communication apparatus 10 can communicate with the communication apparatus 60 and the communication apparatus 70 via the cellular network 90 and the Internet 85 using the interface 102.
  • an application operating in the communication device 10 is an application that can continue communication (an application that can roam). It is determined whether the application is an application that cannot be continued (an application that cannot be roamed). If the application is an application that cannot be roamed, communication from the interface 101 to communication using the interface 102 is performed for the application. The communication using the interface 101 is continued without switching.
  • the wireless LAN 80 is a network to which the interface 101 can be connected, and is connected to the Internet 85.
  • the cellular network 90 is a network to which the interface 102 can be connected, and is connected to the Internet 85.
  • the Internet 85 is connected to the communication device 60 and the communication device 70.
  • the communication device 10 detects that the radio wave has weakened. Then, it is determined whether to switch the interface from the interface 101 to the interface 102. When it is determined to switch, the communication device 10 switches from the interface 101 to the interface 102.
  • FIG. 2 is a block diagram showing the communication device 10.
  • the communication apparatus 10 includes a roaming application 104A and a non-roaming application 104B. Both the roamable application 104A and the non-roamable application 104B can communicate with the communication device 60 and the communication device 70 via the wireless LAN 80 and the Internet 85 using the interface 101. Can be communicated with the communication device 60 and the communication device 70 via the cellular network 90 and the Internet 85.
  • the roamable application 104A can continue communication even after the interface used for communication is switched from the interface 101 to the interface 102. On the other hand, when the application 104B that cannot roam is switched from the interface 101 to the interface 102, communication cannot be continued.
  • the application 104A capable of roaming is, for example, a VoIP application.
  • the application 104B that cannot be roamed at the present time is, for example, mail software or a web browser. Note that these non-roamable applications 104B can become roamable applications as future technology advances.
  • the processing unit 103 uses an application identifier (for example, process ID) that identifies the application 104A in response to a request from the determination unit 105 and the interface 101.
  • the first socket information (first identification information) including the first IP address (first interface identifier) that identifies the first IP address is output to the determination unit 105.
  • the processing unit 103 responds to the request from the determination unit 105 with an application identifier that identifies the application 104B and the first assigned to the interface 101.
  • the first socket information including one IP address is output to the determination unit 105.
  • the first socket information is socket information including the first IP address of the interface 101.
  • the determination unit 105 acquires all socket information from the processing unit 103 before and after connecting the interface 102 to the cellular network 90. Regardless of the time point at which the determination unit 105 acquires socket information, socket information including the first IP address assigned to the interface 101 is set as first socket information.
  • the processing unit 103 receives the application identifier that identifies the roaming application 104A and the second IP address (second interface identifier) assigned to the interface 102.
  • the included second socket information (second identification information) is output to the determination unit 105.
  • the second socket information is socket information including the second IP address of the interface 102.
  • the socket information including the second IP address of the interface 102 is set as the second socket information.
  • the roamable application 104A can detect when the interface 102 is connected to the cellular network. When detecting the connection, the roamable application 104A causes the processing unit 103 to generate socket information.
  • the processing unit 103 outputs the socket information to the determination unit 105. Note that the determination unit 105 may periodically acquire socket information from the processing unit 103.
  • the processing unit 103 and the application identifier that identifies the application 104B that cannot roam and the second interface 102 The second socket information including the IP address is not output to the determination unit 105.
  • the non-roamable application 104B does not communicate using the interface 102 even if the interface 102 is connected to the cellular network. Therefore, since there is no instruction for generating the second socket information to the processing unit 103 from the application 104B, the processing unit 103 does not generate the second socket information including the application identifier of the application 104B.
  • the determination unit 105 determines whether an application operating on the communication device 10 is a roamable application or a non-roamable application using all socket information acquired before and after connecting the interface 102 to the cellular network 90. To do. That is, as described above, the determination unit 105 can acquire the first socket information and the second socket information including the application identifier of the roamable application 104A. On the other hand, the determination unit 105 can acquire the first socket information including the application identifier of the application 104B that cannot be roamed, but cannot acquire the second socket information including the application identifier of the application 104B that cannot be roamed.
  • the application specified by the application identifier included in each of the first socket information and the second socket information can be specified as the roamable application 104A, and is specified by the application identifier included only in the first socket information. Can be identified as the application 104B that cannot be roamed.
  • the processing unit 103 receives an instruction from the determination unit 105 and uses the interface 101 for an interface used by the application for communication. Switch to the interface 102. Further, when it is determined that the application operating in the communication apparatus 10 includes the application 104B that cannot be roamed, the interface is not switched from the interface 101 to the interface 102.
  • the communication apparatus 10 includes an interface 101, an interface 102, a processing unit 103, applications 104A and 104B, a determination unit 105, an application management unit 106, and a setting storage unit 107.
  • both the applications 104A and 104B communicate with the communication device 60 or the communication device 70 via the wireless LAN 80 and the Internet 85 using the interface 101.
  • the determination unit 105 of the communication apparatus 10 determines whether to switch the interface from the interface 101 to the interface 102.
  • the communication device 10 switches from the interface 101 to the interface 102 and communicates with the communication device 60 or the communication device 70 via the cellular network 90 and the Internet 85.
  • the applications 104A and 104B generate data and output the data to the processing unit 103.
  • the data is voice information.
  • the application 104A detects that the interface 102 is connected to the cellular network 90, the application 104A causes the processing unit 103 to generate a packet including the second IP address that identifies the interface 102, The communication apparatus 60 of the communication partner is notified.
  • the processing unit 103 performs a protocol process on the data output from the application 104 to generate a packet.
  • the processing unit 103 transmits the generated packet from the interface 101 or the interface 102 to the communication device 60 or the communication device 70.
  • the processing unit 103 also determines an output interface using a routing table described later stored in the setting storage unit 107.
  • the processing unit 103 generates first socket information or second socket information according to an instruction from the application 104.
  • the processing unit 103 outputs the first socket information and the second socket information to the determination unit 105.
  • FIG. 3 is a diagram illustrating socket information.
  • the socket information is composed of a set of protocol type, own address, own port number, counterpart address, counterpart port number, and process ID.
  • the protocol type indicates a protocol used by the application for communication. For example, TCP or UDP.
  • the own address indicates an IP address assigned to the interface used by the application for communication.
  • the own port number indicates the TCP or UDP port number used by the application for communication.
  • the partner address and partner port number indicate the IP address of the interface of the communication device of the communication partner and the TCP or UDP port number used for communication, respectively.
  • the process ID is an identifier that identifies an application.
  • the setting storage unit 107 stores a route table set in the communication device and interface metrics of each interface included in the communication device.
  • Fig. 4 (a) shows an example of interface metrics.
  • the interface metrics of the interface 101 and the interface 102 are 20, 30, respectively.
  • Fig. 4 (c) shows an example representing a part of the route table.
  • the route table is composed of a plurality of routes.
  • a route is composed of a set of destination, netmask, gateway, interface, and metric.
  • the interface included in the route table is an interface connected to the network.
  • a route whose destination and netmask are 0.0.0.0 is referred to as a default route.
  • the processing unit 103 determines an interface that outputs a packet by applying a longest match algorithm to the destination and netmask of each route and the destination address of the packet. As a result, when a plurality of default routes are selected, the processing unit 103 selects an interface included in the default route having a small metric as an output interface.
  • the route table includes two default routes, and the metrics of the route including the interface 101 and the interface 102 are 20 and 30, respectively.
  • the route metric changes according to the value of the interface metric.
  • the interface metrics of the interface 101 and the interface 102 are 20 and 30, respectively.
  • the metric of each default route has the same value as the interface metric of the interface included in each default route. In this way, the magnitude relationship of each route is the same as the magnitude relationship of the interface metrics.
  • the interface metric and the route metric need not be the same value.
  • the path metric and interface metric can be changed independently. Therefore, in the example of FIG. 4C, the processing unit 103 transmits a packet from the interface 101 unless the application specifies an output interface.
  • the processing unit 103 also connects or disconnects the interfaces 101 and 102 to and from the wireless LAN 80 and the cellular network 90 according to instructions from the determination unit 105, respectively. Further, the processing unit 103 changes the value of the interface metric stored in the setting storage unit 107 in accordance with an instruction from the determination unit 105. Further, the processing unit 103 changes the metric value of the route stored in the setting storage unit 107 in accordance with the instruction of the determination unit 105. Further, when the interface 103 is connected to the network, the processing unit 103 adds a route corresponding to the interface to the route table. Further, when the interface 103 is disconnected from the network, the processing unit 103 deletes the route corresponding to the interface from the route table.
  • the determination unit 105 uses the socket information output from the processing unit 103 to determine whether the application 104A and the application 104B operating on the communication device 10 are roamable applications or non-roamable applications. Specifically, first, before the connection of the interface 102, the determination unit 105 acquires all socket information output by the processing unit 103. Also, the determination unit 105 acquires a process ID and a set of application names corresponding to the process ID from the application management unit 106. The application management unit 106 manages a combination of an application name and a process ID of an application running on the communication device 10. The determination unit 105 uses the socket information and information acquired from the application management unit 106 to identify an application that is communicating or preparing for communication before the interface 102 is connected.
  • the determination unit 105 acquires all socket information from the processing unit 103 again after the interface 102 is connected. Also, all combinations of process IDs and application names are acquired from the application management unit 106. The socket information and the information acquired from the application management unit 106 are used to identify an application that is communicating or preparing for communication using the interface 102 after the interface 102 is connected.
  • the socket information acquired before and after connection of the interface 102 includes first socket information including a process ID of a certain application, and the socket information acquired after connection of the interface 102 includes the process ID of the same application. If there is second socket information, it is determined that the application is a roamable application. In addition, an application that is communicating other than the roamable application is determined to be an application that cannot be roamed.
  • the determination unit 105 determines that the application 104A operating on the communication device 10 is a roamable application and switches the interface. Specifically, the determination unit 105 causes the processing unit 103 to disconnect the interface 101 from the wireless LAN 80. On the other hand, when the application 104B is operating, the determination unit 105 determines that the application 104B is an application that cannot be roamed, and interrupts interface switching. That is, the determination unit 105 causes the processing unit 103 to disconnect the interface 102 from the cellular network 102 without disconnecting the interface 101 from the wireless LAN 80.
  • FIG. 5 is a flowchart illustrating an operation method of the communication device 10.
  • the interface 101 is being connected to the wireless LAN 80, and the roamable application 104A and the non-roamable application 104B are in communication with the communication device 60 via the wireless LAN 80 and the Internet 85. . Further, it is assumed that the interface 102 is not connected to the cellular network 90.
  • the determination unit 105 acquires all socket information from the processing unit 103. Since the interface 101 is being connected before the interface is switched, the processing unit 103 outputs the first socket information (S1). As described above, the first socket information is socket information whose own address is the IP address of the interface 101.
  • the determination unit 105 identifies an application corresponding to each of the first socket information acquired from the processing unit 103 (S2). In other words, the determination unit 105 acquires the combination of the application name and the process ID managed by the application management unit 106 and compares the acquired process ID with the process ID included in the first socket information, thereby including it in the first socket information.
  • the application corresponding to the process ID to be specified is specified.
  • the determination unit 105 specifies that the applications corresponding to the first socket information are the applications 104A and 104B.
  • an application corresponding to socket information is defined as an application specified by an application identifier (process ID) included in the socket information.
  • the processing unit 103 connects the interface 102 to the cellular network 90 while maintaining the connection of the interface 101 (S3). Specifically, first, the processing unit 103 sets the interface metric of the interface 102 stored in the setting storage unit 105 to a value larger than the interface metric of the interface 101. For example, in FIG. 4A, the interface metric of the interface 101 is 20, and the processing unit 103 sets the interface metric of the interface 102 to 30. Next, the determination unit 105 instructs the processing unit 103 to connect the interface 102 to the cellular network 90. Next, the processing unit 103 connects the interface 102 to the cellular network 90 according to an instruction from the determination unit 105.
  • the processing unit 103 adds a default route associated with the interface 102 to the route table.
  • the processing unit 103 sets the metric of the default route associated with the interface 102 to 30. That is, the same value as the interface metric of the interface 102 is set. Note that the default route metric associated with the interface 102 may not be set to the same value as the interface metric of the interface 102.
  • FIGS. 4B and 4C show route tables before and after connecting the interface 102 to the cellular network 90, respectively. When comparing the metrics of the interfaces 101 and 102, the metric of the interface 101 is smaller. Accordingly, the applications 104A and 104B continue to communicate using the interface 101 unless a special instruction is given to the processing unit 103.
  • the determination unit 105 and the processing unit 103 connect the interface 102 to the cellular network 90 by a method that does not hinder communication of the application 104B that cannot roam.
  • the determination unit 105 acquires all socket information from the processing unit 103 (S4).
  • the processing unit 103 outputs the second socket information including the process ID of the application 104A to the determination unit 105.
  • the determination unit 105 identifies an application corresponding to the acquired socket information (S5).
  • the determination unit 105 identifies an application that operates on the communication device 10 and can roam (S6). Specifically, the determination unit 105 includes the first socket information including the process ID associated with the name of an application in the socket information acquired in S2 or S4, and the socket acquired in S4. When the second socket information including the process ID associated with the same application name exists in the information, it is determined that the application is a roamable application. In this embodiment, when the application 104A and the application 104B are operating, the determination unit 105 determines that the application 104A is a roamable application.
  • step S4 the communication device 10 determines whether or not roaming is possible for all applications in communication, until a predetermined time elapses, or is executed a predetermined number of times. Repeat S6.
  • the determination unit 105 determines that the application cannot be roamed once from step S4 to step S6, and determines that the communicating application is an application that cannot be roamed (S7). As a result, when the application 104A and the application 104B are operating, the determination unit 105 determines that the application 104A is an application that can be roamed, and determines that the application 104B is an application that cannot be roamed.
  • the processing unit 103 switches from the interface 101 to the interface 102 according to an instruction from the determination unit 105 ( S8). For example, when the application 104A capable of roaming is operating and the application 104B not capable of roaming is not operating, switching from the interface 101 to the interface 102 is performed. Specifically, the interface 101 is disconnected from the wireless LAN 80. On the other hand, when the determination unit 105 determines that there is an application that cannot be roamed among applications operating on the communication apparatus 10, the processing unit 103 does not switch from the interface 101 to the interface 102. When the application 104 ⁇ / b> B that cannot be roamed is operating, the processing unit 103 does not switch from the interface 101 to the interface 102.
  • FIG. 4D shows a path table when switching from the interface 101 to the interface 102 is performed.
  • the default route of the interface 102 is stored, and the default route of the interface 101 is not stored.
  • the setting storage unit 107 stores the interface metric, but it may not be stored.
  • the processing unit 103 sets the default route metrics of the interfaces 101 and 102 to, for example, 20 and 30, respectively, regardless of the interface metric.
  • the processing unit 103 does not have to have a function of determining an output interface using a path metric. Further, the processing unit 103 may not be able to set only one default route. In this case, the processing unit 103 does not add the default route to the route table in step S3. In this case, the application 104 communicates using the interface 101. In step S8, when the interface 101 is disconnected from the wireless LAN 80, the default route of the interface 101 in the setting storage unit 107 is deleted and the default route of the interface 102 is added. As a result, the application 104 communicates using the interface 102. According to the communication apparatus 10 of the present embodiment, it is possible to specify an application that can be roamed and an application that cannot be roamed. When an application that cannot roam is not operating, the interface is switched. In addition, it is possible to prevent the communication of the application from being stopped against the user's intention.
  • the user when it is determined in S7 that an application that cannot be roamed is in operation, the user is notified that the application that cannot be roamed is operating, and the interfaces 101 to 102 are instructed by the user. Whether or not to switch to may be selected.
  • the communication apparatus 10A determines in S7 that an application whose application cannot be roamed is in operation, “If the interface is switched, the application is stopped.
  • the display unit 121 displays a message such as “?”, And the input unit 120 inputs whether the user switches the display on the display unit.
  • switching from the interface 101 to the interface 102 is performed as in S8.
  • the user instructs not to switch switching from the interface 101 to the interface 102 is not performed.
  • the information used by the determination unit 105 to determine whether the application running on the communication device 10 is an application that can be roamed is not limited to socket information.
  • the processing unit 103 sets a combination of the process ID of the application that instructed the bind system call, the type of the system call, and the IP address specified in the bind system call. You may output to the determination part 105.
  • FIG. That is, any information including an identifier for identifying an application and an interface identifier for identifying an interface used by the application for communication may be used.
  • the determination unit 105 repeatedly acquires socket information from the processing unit 103 and identifies an application capable of roaming for a predetermined time.
  • the timing at which the determination unit 105 acquires socket information from the processing unit 103 is not limited to this.
  • the determination unit 105 causes the processing unit 103 to monitor packets transmitted and received by the interface 101 and the interface 102 for a certain period.
  • the processing unit 103 detects a packet including the IP address of the interface 102
  • the processing unit 103 notifies the determination unit 105 of the packet.
  • the determination unit 105 may acquire socket information from the processing unit 103.
  • the interface 101 is connected to the wireless LAN 80, and the interface 102 is connected to the cellular network 90.
  • the present invention is not limited to this.
  • the interface 101 and the interface 102 may be connected to the wireless LAN 80.
  • the communication device 10 can also be realized by using a general-purpose computer device as basic hardware. That is, the interface 101, the interface 102, the processing unit 103, the applications 104A and 104B, the determination unit 105, the application management unit 106, and the setting storage unit 107 execute a program on the processor mounted on the computer device. Can be realized. At this time, the communication device 10 can be realized by executing the above program. At this time, the communication device 10 may be realized by installing the above-described program in a computer device in advance, or may be stored in a storage medium such as a CD-ROM or distributed through the network 30. Then, this program may be realized by appropriately installing it in a computer device.
  • the setting storage unit 107 is realized by appropriately using a memory, a hard disk or a storage medium such as a CD-R, a CD-RW, a DVD-RAM, a DVD-R, or the like incorporated in or externally attached to the computer device. be able to.
  • the communication device 20 according to the second embodiment switches the interface using a method different from that of the communication device 10 according to the first embodiment.
  • the metric of the default route associated with the interface 101 is set to be larger than the metric of the default route associated with the interface 102 while maintaining the connection of the interface 101.
  • the interface 101 can be switched to the interface 102 while maintaining the connection of the interface 101 with the wireless LAN 80.
  • the method for determining the roamable application and the non-roamable application according to the second embodiment is different from the method according to the first embodiment. That is, in the method for determining a roamable application according to the second embodiment, an application that meets any of the following three conditions is determined as a roamable application.
  • the first condition is the same as the roamable application according to the first embodiment. That is, it is an application corresponding to the first socket information and an application corresponding to the second socket information.
  • the second condition is that the application corresponds to the first socket information, and the protocol type of the socket information is TCP.
  • the third condition is that the application corresponds to the first socket information, the protocol type of the socket information is UDP, and the socket information continues to use the interface 101 by the bind system call. Information to be included.
  • the reason why the application corresponding to the second condition or the third condition is an application capable of roaming will be described.
  • the reason for the second condition is as follows.
  • the IP address used by the application is determined when a TCP session is established.
  • the priority of the interface or route (metric) is changed, until the application disconnects the TCP session, the packet including the application data is transmitted from the interface to which the IP address at the time of establishing the TCP session is assigned.
  • the communication device 20 maintains the connection without disconnecting the switching-source interface 101 when switching the interface. Therefore, even if the interface 101 is switched to the interface 102 (the metric is changed), the application can continue communication using the interface 101.
  • the reason for the third condition is as follows.
  • the IP address used by the application is determined when the application is declared by the bind system call. Even if the interface or route priority (metric) is changed, the IP address at the time of the bind system call declaration is assigned to the packet including the application data until the application ends the UDP communication. Sent from the interface. Therefore, even if the application corresponding to the third condition is switched from the interface 101 to the interface 102 for the same reason as the application corresponding to the second condition, communication can be continued.
  • the components of the communication device 20 of the second embodiment are the same as the components of the communication device 10 of the first embodiment as shown in FIG.
  • the application 104B is an application that does not meet the first to third conditions and cannot be roamed.
  • FIG. 7 is a flowchart illustrating an operation method of the communication device 20.
  • S1 to S5 are the same operations as the operation method of the communication apparatus 10 of the first embodiment.
  • a roamable application operating on the communication device 20 is specified (S26). That is, it is determined whether or not the application corresponding to the acquired socket information is an application that meets any of the first to third conditions.
  • the first condition is the same as the method determined in the first embodiment. That is, the application corresponds to the first socket information acquired in S1 and corresponds to the second socket information acquired in S4.
  • the second condition is that the application corresponds to the socket information in which the protocol type included in the socket information acquired in S1 or S4 is TCP and the IP address is the IP address of the interface 101.
  • the third condition is that the protocol type included in the socket information acquired in S4 is UDP and the application corresponds to the socket information whose IP address is the IP address of the interface 101.
  • the application causes the processing unit 103 to execute the bind system call. It shows that.
  • the communication device 10 determines whether or not roaming is possible for all applications in communication, until a predetermined time has elapsed, or until a predetermined number of times have been executed, from step S4 to step S26. repeat.
  • the determination unit 105 determines that the application cannot be roamed once from step S4 to step 26, and determines that the communicating application is an application that cannot be roamed (S27).
  • the processing unit 103 switches from the interface 101 to the interface 102 according to an instruction from the determination unit 105. (S28). Specifically, in order to change the interface metric of the interface 101 to be larger than the interface metric of the interface 102, the determination unit 105 outputs a new value of one or both of the interface metric of the interface 101 and the interface 102 to the processing unit 103. To do.
  • the processing unit 103 sets the metric of the default route associated with the interface 102 in the route table stored in the setting storage unit 107 to be smaller than the metric of the default route associated with the interface 101. . For example, as shown in FIG.
  • the metric of the default route of the interface 102 is set to 10.
  • the processing unit 103 does not switch from the interface 101 to the interface 102.
  • the same effect as that of the communication device 10 according to the first embodiment can be achieved. That is, when switching the interface, it is possible to prevent the communication of the application from being stopped against the user's intention.
  • the communication device 20 can switch from the interface 101 to the interface 102 while maintaining the connection of the interface 101.
  • the interface 101 can be switched to the interface 102 even when the following two applications are operating.
  • the first application is an application corresponding to the first socket information and the protocol type of the socket information is TCP.
  • the second application is an application corresponding to the first socket information, the protocol type of the socket information is UDP, and the socket information continues to use the interface 101 by the bind system call. It is an application including information indicating
  • the communication device 30 of the third embodiment is different from the first embodiment in that it determines whether or not the application is a roamable application using socket information acquired when the application is activated.
  • the switching source interface and the switching destination interface are already connected by a user or the like, it is different from the first embodiment in that it is determined whether to switch the interface.
  • the communication device 30 according to the third embodiment is different from the communication device 10 according to the first embodiment, in which the determination unit 105 determines whether the application running on the communication device is an application that can roam when the application is activated. After the determination, the application name of the roamable application is stored in the roamable application storage unit 308 without switching the interface immediately after the determination, and the roamable application storage unit 308 stores the active application and the roamable application storage unit 308. Are compared to determine whether or not the operating application is a roamable application, and the processing unit 103 switches from the interface 101 to the interface 102 based on the determination result.
  • the communication device 30 includes a roamable application storage unit 308 in addition to the configuration of the communication device 30 according to the third embodiment.
  • the roamable application storage unit 308 stores application names of roamable applications.
  • FIG. 10 is a flowchart illustrating an operation method of the communication device 30.
  • the application 104A of the communication device 30 is not activated when the operation starts. Further, it is assumed that the interface 101 is connected to the wireless LAN 80 and the interface 102 is connected to the cellular network 90. Assume that the metrics of the default route in the route table are 20 and 30 respectively for the interfaces 101 and 102 as shown in FIG.
  • the application 104A is activated (S31).
  • the determination unit 105 acquires socket information from the processing unit 103 (S32).
  • the determination unit 105 determines whether the application 104A is a roamable application from the socket information acquired from the processing unit 103 (S33). That is, first, the determination unit 105 acquires a combination of an application name and a process ID from the application management unit 106, and compares the process information of the socket information with each other, thereby specifying the socket information corresponding to the application 104A. Next, the determination unit 105 determines whether the first socket information (socket information including the IP address of the interface 101 as an IP address) from the IP address of the interface included in the specified socket information or the second socket information (IP Socket information including the IP address of the interface 102 as an address).
  • the determination unit 105 determines that the application 104A is a roamable application. Since the application 104A is a roamable application, the first socket information and the second socket information can be acquired, and it is determined that the application is roamable. This is because the fact that the first and second socket information corresponding to the application 104A can be acquired indicates that communication is performed using both the interface 101 and the interface 102.
  • the roamable application storage unit 108 stores the application name of the application 104A (S34).
  • the communication device 30 repeats steps S32 to S34 until a predetermined time elapses or until a predetermined number of times are executed.
  • the communication device 30 repeats S32 to S34 each time a new application is started. Therefore, there is a possibility that application names of a plurality of roamable applications are stored in the roamable application storage unit 108.
  • the determination unit 105 receives the socket information from the processing unit 103. Is acquired (S35).
  • the determination unit 105 specifies an application in communication by specifying an application corresponding to the socket information acquired in S35 (S36).
  • the determination unit 105 determines whether or not the application specified in S36 is a roamable application (S37). That is, the determination unit 105 determines whether the operating application is a roamable application based on whether or not the application name of the application specified in S36 exists in the roamable application storage unit 308.
  • the application 104A and 104B are operating, it is determined that the application 104A is an application that can roam, and the application 104B is determined to be an application that cannot be roamed.
  • the processing unit 103 switches from the interface 101 to the interface 102 according to an instruction from the determination unit 105 (S38). For example, when the application 104A operates and the application 104B does not operate, the interface is switched. That is, the interface 101 is disconnected from the wireless LAN 80. On the other hand, when the determination unit 105 determines that the application is an application that cannot be roamed, the processing unit 103 does not switch from the interface 101 to the interface 102. For example, when the application 104B is operating, the interface is not switched.
  • the same effect as that of the communication device 10 according to the first embodiment can be achieved. That is, when switching the interface, it is possible to prevent the communication of the application from being stopped against the user's intention.
  • the communication device 30 prevents the communication of the application from being stopped against the user's intention when the interface is switched in a state where the switching destination interface and the switching source interface are already connected. it can.
  • the communication device 30 stores the roamable application in the roamable application storage unit 308 after determining whether or not the application can be roamed. It is possible to shift the switching timing. Therefore, for example, if an application that cannot be roamed and is operating at the time of determining whether or not it is a roamable application is not operating at the time of interface switching, the interface can be switched.

Abstract

When an application communicates using an interface (101), the processing unit (103) of a communication device (10) outputs first socket information that includes application identifiers and the IP address of the interface (101), and when an interface (102) is connected to a network, the processing unit outputs second socket information that includes application identifiers and the IP address of the interface (102). A determining unit (105) determines that an application specified by an application identifier included in both the first and second socket information is a roaming-capable application, and determines that an application specified by an application identifier included in the first socket information but not in the second socket information is a roaming-incapable application. In the case that a roaming-incapable application is included, the processing unit (103) will not switch interfaces.

Description

通信装置Communication device
 本発明は、通信装置に関する。 The present invention relates to a communication device.
 通信装置として、複数のインターフェースを備え、そのインターフェースを切り替え可能な装置がある。(特許文献1)
 例えば、通信装置が移動する場合において、一方のインターフェースに接続されたネットワークの電波が弱くなるため、電波が強いネットワークに接続されたインターフェースにインターフェースを切り換える場合がある。通信装置のアプリケーションには、インターフェースが切り替わる場合において、通信を継続できるアプリケーション(ローミング可能なアプリケーション)と、通信を継続できないアプリケーション(ローミング不可能なアプリケーション)がある。
As a communication device, there is a device that includes a plurality of interfaces and can switch the interfaces. (Patent Document 1)
For example, when the communication apparatus moves, the radio wave of the network connected to one interface is weakened, so the interface may be switched to an interface connected to a network with strong radio waves. There are two types of applications of the communication device: an application that can continue communication (application that can roam) and an application that cannot continue communication (application that cannot roam) when the interface is switched.
 従来の通信装置では、インターフェースが切り替わるタイミングで、ローミング不可能なアプリケーションが動作している場合、インターフェースが切り替わることにより、通信装置のユーザの意図に反してローミング不可能なアプリケーションの通信が停止することがあった。 In a conventional communication device, when an application that cannot be roamed is operating at the timing when the interface is switched, communication of the application that cannot be roamed is stopped against the intention of the user of the communication device by switching the interface. was there.
特開2006-60579号公報JP 2006-60579 A
 本発明は、ユーザの意図に反してアプリケーションの通信が停止することを防ぐことを目的とする。 The present invention aims to prevent communication of an application from being stopped against the user's intention.
  上記目的を達成するために、本発明の一実施形態に係る通信装置は、 ネットワークを介して他の装置と通信を行う通信装置であって、ネットワークに接続可能な第1のインターフェースと第2のインターフェ-スと、アプリケーションを特定するアプリケーション識別子と当該アプリケーションが用いるインターフェースを特定するインターフェース識別子とを含む識別情報を出力するとともに、前記アプリケーションが通信に用いるインターフェースを切り替える処理部と、前記処理部が出力する識別情報を基に、アプリケーションが用いるインターフェースを切り替えても通信を継続可能なローミング可能アプリケーションであるか、アプリケーションが用いるインターフェースを切り替えると通信を継続不可能なローミング不可能なアプリケーションであるかを判定する判定部とを備え、前記処理部は、アプリケーションが前記第1のインターフェースを用いて通信をしている時、当該アプリケーションを特定するアプリケーション識別子と前記第1のインターフェースを特定する第1のインターフェース識別子を含む第1の識別情報を出力し、前記第2のインターフェ-スをネットワークに接続するとローミング可能なアプリケーションを特定するアプリケーション識別子と第2のインターフェ-スを特定する第2のインターフェース識別子を含む第2の識別情報を出力し、前記判定部は、前記第1の識別情報及び前記第2の識別情報いずれにも含まれるアプリケーション識別子により特定されるアプリケーションをローミング可能なアプリケーションであると判定し、前記第1の識別情報に含まれて、前記第2の識別情報に含まれないアプリケーション識別子により特定されるアプリケーションをローミング不可能なアプリケーションであると判定し、前記処理部は、アプリケーションがローミング不可能なアプリケーションを含む場合、アプリケーションが通信に用いるインターフェースを前記第1のインターフェースから前記第2のインターフェ-スに切り替えないことを特徴とする。 In order to achieve the above object, a communication apparatus according to an embodiment of the present invention is a communication apparatus that communicates with another apparatus via a network, and includes a first interface and a second interface that can be connected to the network. Outputting identification information including an interface, an application identifier for identifying an application, and an interface identifier for identifying an interface used by the application, a processing unit for switching an interface used for communication by the application, and the processing unit Based on the identification information that is output, it is a roamable application that can continue communication even when the interface used by the application is switched, or roaming that cannot continue communication when the interface used by the application is switched. A determination unit that determines whether the application is an application, and when the application communicates using the first interface, the processing unit includes an application identifier that identifies the application and the first interface. First identification information including a first interface identifier to be identified is output, and when the second interface is connected to a network, an application identifier and a second interface to identify an application capable of roaming are identified. The second identification information including the second interface identifier is output, and the determination unit can roam the application specified by the application identifier included in both the first identification information and the second identification information. It is determined that the application is Determining that the application identified by the application identifier not included in the second identification information is an application that cannot be roamed, and the processing unit determines that the application is not roaming. When a possible application is included, the interface used for communication by the application is not switched from the first interface to the second interface.
 本発明によれば、インターフェースが切り替わる際に、ユーザの意図に反してアプリケーションの通信が停止することを防ぐことができる。 According to the present invention, it is possible to prevent communication of an application from being stopped against the user's intention when the interface is switched.
通信システムを示す図Diagram showing communication system 通信装置を示す図Diagram showing communication device ソケット情報を示す図Figure showing socket information インターフェースメトリックと経路表の一部分を示す図Diagram showing part of interface metric and routing table 実施例1の通信装置の動作方法を示す図The figure which shows the operation | movement method of the communication apparatus of Example 1. 通信装置を示す図Diagram showing communication device 実施例2の通信装置の動作方法を示す図The figure which shows the operation | movement method of the communication apparatus of Example 2. 経路表の一部分を示す図Figure showing part of the routing table 実施例3の通信装置を示す図The figure which shows the communication apparatus of Example 3. 実施例3の通信装置の動作方法を示す図The figure which shows the operation | movement method of the communication apparatus of Example 3.
 以下、本発明の実施形態について説明する。 Hereinafter, embodiments of the present invention will be described.
 図1は、実施例1に係る通信システムを示す図である。通信システムの通信装置10は、インターフェース101とインターフェース102を備える。通信装置10は、インターフェース101を用いて無線LAN80及びインターネット85を介して通信装置60及び通信装置70と通信を行うことが可能である。また、通信装置10は、インターフェース102を用いてセルラネットワーク90及びインターネット85を介して通信装置60及び通信装置70と通信を行うことが可能である。 FIG. 1 is a diagram illustrating a communication system according to the first embodiment. The communication device 10 of the communication system includes an interface 101 and an interface 102. The communication device 10 can communicate with the communication device 60 and the communication device 70 via the wireless LAN 80 and the Internet 85 using the interface 101. The communication apparatus 10 can communicate with the communication apparatus 60 and the communication apparatus 70 via the cellular network 90 and the Internet 85 using the interface 102.
 たとえば、通信装置10が、インターフェース101を用いた通信からインターフェース102を用いた通信へと切り替える前に、通信装置10内で動作しているアプリケーションが通信を継続可能なアプリケーション(ローミング可能なアプリケーション)であるか継続不可能なアプリケーション(ローミング不可能なアプリケーション)であるかを判定し、ローミング不可能なアプリケーションである場合に、前記アプリケーションに対してインターフェース101を用いた通信からインターフェース102を用いた通信への切り替えを行わないで、インターフェース101を用いた通信を継続させる。 For example, before the communication device 10 switches from communication using the interface 101 to communication using the interface 102, an application operating in the communication device 10 is an application that can continue communication (an application that can roam). It is determined whether the application is an application that cannot be continued (an application that cannot be roamed). If the application is an application that cannot be roamed, communication from the interface 101 to communication using the interface 102 is performed for the application. The communication using the interface 101 is continued without switching.
 ここで、無線LAN80は、インターフェース101が接続可能なネットワークであり、インターネット85に接続している。セルラネットワーク90は、インターフェース102が接続可能なネットワークであり、インターネット85に接続している。インターネット85は、通信装置60及び通信装置70と接続されている。 Here, the wireless LAN 80 is a network to which the interface 101 can be connected, and is connected to the Internet 85. The cellular network 90 is a network to which the interface 102 can be connected, and is connected to the Internet 85. The Internet 85 is connected to the communication device 60 and the communication device 70.
 例えば、インターフェース101が無線LANに接続されている場合において、無線LAN80の電波が弱くなった(例えば、一定の閾値より低くなった)ときに、通信装置10は、電波が弱くなったことを検知し、インターフェース101からインターフェース102へとインターフェースを切り替えるか否かを判定する。切り替えると判定した場合、通信装置10は、インターフェース101からインターフェース102へと切り替える。 For example, when the interface 101 is connected to a wireless LAN, when the radio wave of the wireless LAN 80 becomes weak (for example, lower than a certain threshold), the communication device 10 detects that the radio wave has weakened. Then, it is determined whether to switch the interface from the interface 101 to the interface 102. When it is determined to switch, the communication device 10 switches from the interface 101 to the interface 102.
 図2は、通信装置10を示すブロック図である。 FIG. 2 is a block diagram showing the communication device 10.
 通信装置10は、ローミング可能なアプリケーション104Aとローミング不可能なアプリケーション104Bを搭載する。ローミング可能なアプリケーション104A、ローミング不可能なアプリケーション104Bは、共にインターフェース101を用いて無線LAN80及びインターネット85を介して通信装置60及び通信装置70と通信可能であり、又、通信装置10は、インターフェース102を用いてセルラネットワーク90及びインターネット85を介して通信装置60及び通信装置70と通信可能である。ローミング可能なアプリケーション104Aは、通信に使用されるインターフェースがインターフェース101からインターフェース102へと切り替えられた後も、通信を継続可能である。一方、ローミング不可能なアプリケーション104Bは、インターフェース101からインターフェース102へと切り替えられた場合、通信を継続できない。 The communication apparatus 10 includes a roaming application 104A and a non-roaming application 104B. Both the roamable application 104A and the non-roamable application 104B can communicate with the communication device 60 and the communication device 70 via the wireless LAN 80 and the Internet 85 using the interface 101. Can be communicated with the communication device 60 and the communication device 70 via the cellular network 90 and the Internet 85. The roamable application 104A can continue communication even after the interface used for communication is switched from the interface 101 to the interface 102. On the other hand, when the application 104B that cannot roam is switched from the interface 101 to the interface 102, communication cannot be continued.
 ローミングが可能なアプリケーション104Aは、例えば、VoIPアプリケーションである。また、現時点でのローミング不可能なアプリケーション104Bは、例えば、メールソフト、ウェブブラウザである。尚、これらローミング不可能なアプリケーション104Bは、将来技術の進歩によって、ローミング可能なアプリケーションとなりえる。処理部103は、ローミング可能なアプリケーション104Aがインターフェ-ス101を用いて通信をしているとき、判定部105の要求に応じてアプリケーション104Aを特定するアプリケーション識別子(例えば、プロセスID)とインターフェース101を特定する第1のIPアドレス(第1のインターフェース識別子)を含む第1のソケット情報(第1の識別情報)を判定部105に出力する。また、処理部103は、ローミング不可能なアプリケーション104Bがインターフェース101を用いて通信をしているとき、判定部105の要求に応じて、アプリケーション104Bを特定するアプリケーション識別子とインターフェース101に付与された第1のIPアドレスを含む第1のソケット情報を判定部105に出力する。ここで、第1のソケット情報とは、インターフェース101の第1のIPアドレスを含むソケット情報である。後述するように、本実施例において判定部105はインターフェース102をセルラネットワーク90に接続する前後に全てのソケット情報を処理部103から取得する。判定部105がソケット情報を取得する時点に関わらず、インターフェース101に付与された第1のIPアドレスを含むソケット情報を第1のソケット情報とする。処理部103は、インターフェ-ス102をセルラネットワーク90に接続したときに、ローミング可能なアプリケーション104Aを特定するアプリケーション識別子とインターフェース102に付与された第2のIPアドレス(第2のインターフェース識別子)を含む第2のソケット情報(第2の識別情報)を判定部105に出力する。ここで、第2のソケット情報とは、インターフェース102の第2のIPアドレスを含むソケット情報である。判定部105がソケット情報を取得する時点に関わらず、インターフェース102の第2のIPアドレスを含むソケット情報を第2のソケット情報とする。ローミング可能なアプリケーション104Aは、インターフェース102がセルラネットワークに接続されると、それを検知可能である。ローミング可能なアプリケーション104Aは、接続を検知すると、処理部103に対して、ソケット情報を生成させる。処理部103は、判定部105からソケット情報を要求されると、ソケット情報を判定部105に出力する。尚、判定部105は、定期的にソケット情報を処理部103から取得しても良い。 The application 104A capable of roaming is, for example, a VoIP application. The application 104B that cannot be roamed at the present time is, for example, mail software or a web browser. Note that these non-roamable applications 104B can become roamable applications as future technology advances. When the roaming application 104A is communicating using the interface 101, the processing unit 103 uses an application identifier (for example, process ID) that identifies the application 104A in response to a request from the determination unit 105 and the interface 101. The first socket information (first identification information) including the first IP address (first interface identifier) that identifies the first IP address is output to the determination unit 105. In addition, when the non-roamable application 104B is communicating using the interface 101, the processing unit 103 responds to the request from the determination unit 105 with an application identifier that identifies the application 104B and the first assigned to the interface 101. The first socket information including one IP address is output to the determination unit 105. Here, the first socket information is socket information including the first IP address of the interface 101. As will be described later, in this embodiment, the determination unit 105 acquires all socket information from the processing unit 103 before and after connecting the interface 102 to the cellular network 90. Regardless of the time point at which the determination unit 105 acquires socket information, socket information including the first IP address assigned to the interface 101 is set as first socket information. When the interface 102 is connected to the cellular network 90, the processing unit 103 receives the application identifier that identifies the roaming application 104A and the second IP address (second interface identifier) assigned to the interface 102. The included second socket information (second identification information) is output to the determination unit 105. Here, the second socket information is socket information including the second IP address of the interface 102. Regardless of the time point at which the determination unit 105 acquires the socket information, the socket information including the second IP address of the interface 102 is set as the second socket information. The roamable application 104A can detect when the interface 102 is connected to the cellular network. When detecting the connection, the roamable application 104A causes the processing unit 103 to generate socket information. When the determination unit 105 requests socket information, the processing unit 103 outputs the socket information to the determination unit 105. Note that the determination unit 105 may periodically acquire socket information from the processing unit 103.
 一方、インターフェ-ス102がセルラネットワーク90に接続された後において判定部105にソケット情報を要求されても、処理部103はローミング不可能なアプリケーション104Bを特定するアプリケーション識別子とインターフェース102の第2のIPアドレスを含む第2のソケット情報を判定部105に出力しない。ローミング不可能なアプリケーション104Bは、インターフェース102がセルラネットワークに接続されても、インターフェース102を用いて通信しない。そこで、アプリケーション104Bから処理部103に対する第2のソケット情報生成の指示がないため、処理部103は、アプリケーション104Bのアプリケーション識別子を含む第2のソケット情報を生成しない。 On the other hand, even if the determination unit 105 requests socket information after the interface 102 is connected to the cellular network 90, the processing unit 103 and the application identifier that identifies the application 104B that cannot roam and the second interface 102 The second socket information including the IP address is not output to the determination unit 105. The non-roamable application 104B does not communicate using the interface 102 even if the interface 102 is connected to the cellular network. Therefore, since there is no instruction for generating the second socket information to the processing unit 103 from the application 104B, the processing unit 103 does not generate the second socket information including the application identifier of the application 104B.
 判定部105は、インターフェース102をセルラネットワーク90に接続する前後に取得する全てのソケット情報を用いて通信装置10で動作しているアプリケーションがローミング可能なアプリケーションかローミング不可能なアプリケーションであるかを判定する。即ち、前述したように、判定部105はローミング可能なアプリケーション104Aのアプリケーション識別子を含む第1のソケット情報および第2のソケット情報を取得できる。一方、判定部105は、ローミング不可能なアプリケーション104Bのアプリケーション識別子を含む第1のソケット情報を取得できるが、ローミング不可能なアプリケーション104Bのアプリケーション識別子を含む第2のソケット情報を取得できない。したがって、第1のソケット情報、第2のソケット情報それぞれに含まれるアプリケーション識別子により特定されるアプリケーションをローミング可能なアプリケーション104Aであると特定でき、第1のソケット情報だけに含まれるアプリケーション識別子により特定されるアプリケーションをローミング不可能なアプリケーション104Bであると特定できる。 The determination unit 105 determines whether an application operating on the communication device 10 is a roamable application or a non-roamable application using all socket information acquired before and after connecting the interface 102 to the cellular network 90. To do. That is, as described above, the determination unit 105 can acquire the first socket information and the second socket information including the application identifier of the roamable application 104A. On the other hand, the determination unit 105 can acquire the first socket information including the application identifier of the application 104B that cannot be roamed, but cannot acquire the second socket information including the application identifier of the application 104B that cannot be roamed. Therefore, the application specified by the application identifier included in each of the first socket information and the second socket information can be specified as the roamable application 104A, and is specified by the application identifier included only in the first socket information. Can be identified as the application 104B that cannot be roamed.
 処理部103は、判定部105が通信装置で動作しているアプリケーションがローミング可能なアプリケーション104Bを含まないと判定した場合、判定部105からの指示を受けてアプリケーションが通信に用いるインターフェースをインターフェース101からインターフェース102に切り替える。また、通信装置10の中で動作しているアプリケーションがローミング不可能なアプリケーション104Bを含むと判定した場合、インターフェースをインターフェース101からインターフェース102に切り替えない。 When the determination unit 105 determines that the application running on the communication device does not include the roaming application 104B, the processing unit 103 receives an instruction from the determination unit 105 and uses the interface 101 for an interface used by the application for communication. Switch to the interface 102. Further, when it is determined that the application operating in the communication apparatus 10 includes the application 104B that cannot be roamed, the interface is not switched from the interface 101 to the interface 102.
 次に、通信装置10の詳細な構成について説明する。 Next, the detailed configuration of the communication device 10 will be described.
 図2に示されるように通信装置10は、インターフェース101、インターフェ-ス102、処理部103、アプリケーション104A、104B、判定部105、アプリケーション管理部106、設定記憶部107を備える。 2, the communication apparatus 10 includes an interface 101, an interface 102, a processing unit 103, applications 104A and 104B, a determination unit 105, an application management unit 106, and a setting storage unit 107.
 通信装置10において、まず、インターフェース101が無線LAN80に接続しているとする。このとき、アプリケーション104A、104Bともに、インターフェース101を用いて無線LAN80とインターネット85を介して通信装置60、又は通信装置70と通信している。 In the communication device 10, first, it is assumed that the interface 101 is connected to the wireless LAN 80. At this time, both the applications 104A and 104B communicate with the communication device 60 or the communication device 70 via the wireless LAN 80 and the Internet 85 using the interface 101.
 
 例えば、通信装置10のインターフェース101が受信する無線LAN80の電波が弱くなったとき、通信装置10の判定部105は、インターフェースをインターフェース101からインターフェース102に切り替えるか否かを判定する。判定部105がインターフェースを切り替えると判定した場合、通信装置10は、インターフェース101からインターフェース102へと切り替えて、セルラネットワーク90、インターネット85を介して通信装置60、又は通信装置70と通信する。

For example, when the radio wave of the wireless LAN 80 received by the interface 101 of the communication apparatus 10 becomes weak, the determination unit 105 of the communication apparatus 10 determines whether to switch the interface from the interface 101 to the interface 102. When the determination unit 105 determines to switch the interface, the communication device 10 switches from the interface 101 to the interface 102 and communicates with the communication device 60 or the communication device 70 via the cellular network 90 and the Internet 85.
 アプリケーション104A,104Bは、データを生成して処理部103に出力する。例えば、アプリケーション104AがVoIPである場合、データは、音声情報である。インターフェース102がセルラネットワーク90に接続されたことをローミング可能なアプリケーション104Aが検知したとき、アプリケーション104Aは、処理部103に対して、インターフェース102を特定する第2のIPアドレスを含むパケットを生成させ、通信相手方の通信装置60に通知させる。 The applications 104A and 104B generate data and output the data to the processing unit 103. For example, when the application 104A is VoIP, the data is voice information. When the roaming application 104A detects that the interface 102 is connected to the cellular network 90, the application 104A causes the processing unit 103 to generate a packet including the second IP address that identifies the interface 102, The communication apparatus 60 of the communication partner is notified.
 処理部103はアプリケーション104が出力したデータにプロトコル処理を施してパケットを生成する。処理部103は、生成したパケットをインターフェース101またはインターフェース102から通信装置60、又は通信装置70へと送信する。処理部103はまた、設定記憶部107に記憶された後述する経路表を用いて出力インターフェースを決定する。また、処理部103は、アプリケーション104の指示により第1のソケット情報、又は第2のソケット情報を生成する。また、処理部103は、第1のソケット情報、第2のソケット情報を判定部105に出力する。 The processing unit 103 performs a protocol process on the data output from the application 104 to generate a packet. The processing unit 103 transmits the generated packet from the interface 101 or the interface 102 to the communication device 60 or the communication device 70. The processing unit 103 also determines an output interface using a routing table described later stored in the setting storage unit 107. In addition, the processing unit 103 generates first socket information or second socket information according to an instruction from the application 104. In addition, the processing unit 103 outputs the first socket information and the second socket information to the determination unit 105.
 ここで、ソケット情報について説明する。図3は、ソケット情報を示す図である。ソケット情報は、プロトコル種別、自アドレス、自ポート番号、相手アドレス、相手ポート番号、プロセスIDの組で構成される。プロトコル種別は、アプリケーションが通信に用いるプロトコルを示す。例えば、TCPまたはUDPである。自アドレスは、アプリケーションが通信に用いているインターフェースに割り当てられたIPアドレスを示す。自ポート番号は、アプリケーションが通信に使用しているTCPまたはUDPのポート番号を示す。また、相手アドレス、相手ポート番号は、それぞれ通信相手の通信装置のインターフェースのIPアドレス、及び通信に使用しているTCPまたはUDPのポート番号を示す。プロセスIDは、アプリケーションを特定する識別子である。 Here, the socket information will be described. FIG. 3 is a diagram illustrating socket information. The socket information is composed of a set of protocol type, own address, own port number, counterpart address, counterpart port number, and process ID. The protocol type indicates a protocol used by the application for communication. For example, TCP or UDP. The own address indicates an IP address assigned to the interface used by the application for communication. The own port number indicates the TCP or UDP port number used by the application for communication. The partner address and partner port number indicate the IP address of the interface of the communication device of the communication partner and the TCP or UDP port number used for communication, respectively. The process ID is an identifier that identifies an application.
 ここで、設定記憶部107について説明する。設定記憶部107は、通信装置に設定された経路表及び通信装置が備える各インターフェースのインターフェースメトリックを記憶する。 Here, the setting storage unit 107 will be described. The setting storage unit 107 stores a route table set in the communication device and interface metrics of each interface included in the communication device.
 図4(a)にインターフェースメトリックの例を示す。図4(a)の例においては、インターフェース101、インターフェース102それぞれのインターフェースメトリックは、20、30である。 Fig. 4 (a) shows an example of interface metrics. In the example of FIG. 4A, the interface metrics of the interface 101 and the interface 102 are 20, 30, respectively.
 図4(c)に経路表の一部を表す例を示す。経路表は複数の経路で構成される。経路は、宛先、ネットマスク、ゲートウェイ、インターフェース、メトリックの組で構成される。経路表に含まれるインターフェースは、ネットワークに接続されたインターフェースである。特に、宛先、ネットマスクが0.0.0.0である経路を、デフォルトルートという。処理部103は、各経路の宛先およびネットマスク、およびパケットの宛先アドレスに最長一致アルゴリズムを適用してパケットを出力するインターフェースを決定する。結果、複数のデフォルトルートが選ばれた場合、処理部103は、メトリックが小さいデフォルトルートに含まれるインターフェースを出力インターフェースとして選択する。図4(c)において、経路表は2つのデフォルトルートを含み、インターフェース101、インターフェース102を含む経路のメトリックは、それぞれ20、30である。経路のメトリックは、インターフェースメトリックの値に応じて変化する。図4(a)において、インターフェース101、インターフェース102のインターフェースメトリックは、それぞれ20、30である。また、図4(c)の例では、各デフォルトルートのメトリックはそれぞれのデフォルトルートが含むインターフェースのインターフェースメトリックと同じ値である。このように、各経路の大小関係は、インターフェースメトリックの大小関係と同じになる。尚、インターフェースメトリックと経路のメトリックは同じ値でなくても良い。また、経路のメトリックとインターフェースメトリックは独立して変更可能である。 したがって、図4(c)の例では、処理部103は、アプリケーションが出力インターフェースを指定しない限り、インターフェース101からパケットを送信する。 Fig. 4 (c) shows an example representing a part of the route table. The route table is composed of a plurality of routes. A route is composed of a set of destination, netmask, gateway, interface, and metric. The interface included in the route table is an interface connected to the network. In particular, a route whose destination and netmask are 0.0.0.0 is referred to as a default route. The processing unit 103 determines an interface that outputs a packet by applying a longest match algorithm to the destination and netmask of each route and the destination address of the packet. As a result, when a plurality of default routes are selected, the processing unit 103 selects an interface included in the default route having a small metric as an output interface. In FIG. 4C, the route table includes two default routes, and the metrics of the route including the interface 101 and the interface 102 are 20 and 30, respectively. The route metric changes according to the value of the interface metric. In FIG. 4A, the interface metrics of the interface 101 and the interface 102 are 20 and 30, respectively. In the example of FIG. 4C, the metric of each default route has the same value as the interface metric of the interface included in each default route. In this way, the magnitude relationship of each route is the same as the magnitude relationship of the interface metrics. Note that the interface metric and the route metric need not be the same value. The path metric and interface metric can be changed independently. Therefore, in the example of FIG. 4C, the processing unit 103 transmits a packet from the interface 101 unless the application specifies an output interface.
 処理部103はまた、判定部105の指示に従いインターフェース101、102をそれぞれ、無線LAN80、セルラネットワーク90に接続、又は切断する。また、処理部103は、判定部105の指示に従い設定記憶部107に記憶されたインターフェースメトリックの値を変更する。また、処理部103は、判定部105の指示に従い設定記憶部107に記憶された経路のメトリックの値を変更する。また、処理部103は、インターフェースをネットワークに接続した場合に、そのインターフェースに対応する経路を経路表に追加する。また、処理部103は、インターフェースをネットワークから切断した場合に、そのインターフェースに対応する経路を経路表から削除する。 The processing unit 103 also connects or disconnects the interfaces 101 and 102 to and from the wireless LAN 80 and the cellular network 90 according to instructions from the determination unit 105, respectively. Further, the processing unit 103 changes the value of the interface metric stored in the setting storage unit 107 in accordance with an instruction from the determination unit 105. Further, the processing unit 103 changes the metric value of the route stored in the setting storage unit 107 in accordance with the instruction of the determination unit 105. Further, when the interface 103 is connected to the network, the processing unit 103 adds a route corresponding to the interface to the route table. Further, when the interface 103 is disconnected from the network, the processing unit 103 deletes the route corresponding to the interface from the route table.
 判定部105は、処理部103が出力したソケット情報を用いて、通信装置10で動作するアプリケーション104Aおよびアプリケーション104Bがローミング可能なアプリケーションであるか、ローミング不可能なアプリケーションであるかを判定する。具体的には、まず、インターフェース102の接続前に、判定部105は、処理部103が出力した全てのソケット情報を取得する。また、判定部105は、アプリケーション管理部106からプロセスIDとプロセスIDに対応するアプリケーション名の組を取得する。アプリケーション管理部106は、通信装置10で動作中のアプリケーションのアプリケーション名とプロセスIDの組を管理する。判定部105は、ソケット情報とアプリケーション管理部106から取得した情報を用いて、インターフェース102の接続前に通信か、通信の準備を行っているアプリケーションを特定する。また、判定部105は、インターフェース102の接続後に、再び処理部103から全てのソケット情報を取得する。また、アプリケーション管理部106からプロセスIDとアプリケーション名のすべての組を取得する。ソケット情報とアプリケーション管理部106から取得した情報を用いて、インターフェース102の接続後にインターフェース102を用いて通信中か、通信の準備を行っているアプリケーションを特定する。インターフェース102の接続前後に取得したソケット情報の中に、あるアプリケーションのプロセスIDを含む第1のソケット情報があり、かつインタフェース102の接続後に取得したソケット情報の中に、同じアプリケーションのプロセスIDを含む第2のソケット情報がある場合、前記アプリケーションをローミング可能なアプリケーションであると判定する。また、ローミング可能なアプリケーション以外で通信中のアプリケーションをローミング不可能なアプリケーションであると判定する。 The determination unit 105 uses the socket information output from the processing unit 103 to determine whether the application 104A and the application 104B operating on the communication device 10 are roamable applications or non-roamable applications. Specifically, first, before the connection of the interface 102, the determination unit 105 acquires all socket information output by the processing unit 103. Also, the determination unit 105 acquires a process ID and a set of application names corresponding to the process ID from the application management unit 106. The application management unit 106 manages a combination of an application name and a process ID of an application running on the communication device 10. The determination unit 105 uses the socket information and information acquired from the application management unit 106 to identify an application that is communicating or preparing for communication before the interface 102 is connected. The determination unit 105 acquires all socket information from the processing unit 103 again after the interface 102 is connected. Also, all combinations of process IDs and application names are acquired from the application management unit 106. The socket information and the information acquired from the application management unit 106 are used to identify an application that is communicating or preparing for communication using the interface 102 after the interface 102 is connected. The socket information acquired before and after connection of the interface 102 includes first socket information including a process ID of a certain application, and the socket information acquired after connection of the interface 102 includes the process ID of the same application. If there is second socket information, it is determined that the application is a roamable application. In addition, an application that is communicating other than the roamable application is determined to be an application that cannot be roamed.
動作しているアプリケーションが104Aだけである場合、判定部105は、通信装置10で動作するアプリケーション104Aがローミング可能なアプリケーションであると判定し、インターフェースを切替える。具体的には、判定部105は処理部103にインターフェース101を無線LAN80から切断させる。一方、アプリケーション104Bが動作している場合、判定部105は、アプリケーション104Bがローミング不可能なアプリケーションであると判定し、インターフェースの切り替えを中断する。つまり、判定部105は処理部103にインターフェース101を無線LAN80から切断させず、インターフェース102をセルラネットワーク102から切断させる。 If only 104A is operating, the determination unit 105 determines that the application 104A operating on the communication device 10 is a roamable application and switches the interface. Specifically, the determination unit 105 causes the processing unit 103 to disconnect the interface 101 from the wireless LAN 80. On the other hand, when the application 104B is operating, the determination unit 105 determines that the application 104B is an application that cannot be roamed, and interrupts interface switching. That is, the determination unit 105 causes the processing unit 103 to disconnect the interface 102 from the cellular network 102 without disconnecting the interface 101 from the wireless LAN 80.
次に、通信装置10の動作方法を説明する。図5は、通信装置10の動作方法を示すフローチャートである。 Next, an operation method of the communication device 10 will be described. FIG. 5 is a flowchart illustrating an operation method of the communication device 10.
以下では、インターフェース101は無線LAN80に接続中であり、ローミング可能なアプリケーション104A及びローミング不可能なアプリケーション104Bは、無線LAN80及びインターネット85を介して通信装置60と通信を行っている状態であるとする。また、インターフェース102はセルラネットワーク90に接続されていない状態であるとする。 In the following, it is assumed that the interface 101 is being connected to the wireless LAN 80, and the roamable application 104A and the non-roamable application 104B are in communication with the communication device 60 via the wireless LAN 80 and the Internet 85. . Further, it is assumed that the interface 102 is not connected to the cellular network 90.
まず、通信装置10が無線LANの電波が低くなったことを検知すると、判定部105は、処理部103から全てのソケット情報を取得する。インターフェースの切り替え前は、インターフェース101が接続中であるため、処理部103は、第1のソケット情報を出力する(S1)。前述の通り、第1のソケット情報は、自アドレスがインターフェース101のIPアドレスであるソケット情報である。 First, when the communication device 10 detects that the radio wave of the wireless LAN has become low, the determination unit 105 acquires all socket information from the processing unit 103. Since the interface 101 is being connected before the interface is switched, the processing unit 103 outputs the first socket information (S1). As described above, the first socket information is socket information whose own address is the IP address of the interface 101.
次に、判定部105は、処理部103から取得した第1のソケット情報それぞれに対応するアプリケーションを特定する(S2)。即ち、判定部105は、アプリケーション管理部106が管理しているアプリケーション名とプロセスIDの組を取得し、第1のソケット情報に含まれるプロセスIDと対比することにより、第1のソケット情報に含まれるプロセスIDに対応するアプリケーションを特定する。その結果、判定部105は、第1のソケット情報に対応するアプリケーションは、アプリケーション104A,Bであると特定する。なお、以降では、ソケット情報に対応するアプリケーションを、ソケット情報に含まれるアプリケーション識別子(プロセスID)により特定されるアプリケーションと定義する。 Next, the determination unit 105 identifies an application corresponding to each of the first socket information acquired from the processing unit 103 (S2). In other words, the determination unit 105 acquires the combination of the application name and the process ID managed by the application management unit 106 and compares the acquired process ID with the process ID included in the first socket information, thereby including it in the first socket information. The application corresponding to the process ID to be specified is specified. As a result, the determination unit 105 specifies that the applications corresponding to the first socket information are the applications 104A and 104B. Hereinafter, an application corresponding to socket information is defined as an application specified by an application identifier (process ID) included in the socket information.
次に、処理部103は、インターフェース101の接続を維持しつつ、インターフェ-ス102をセルラネットワーク90に接続する(S3)。具体的には、まず、処理部103は、設定記憶部105が記憶するインターフェ-ス102のインターフェースメトリックをインターフェース101のインターフェースメトリックより大きな値に設定する。例えば、図4(a)では、インターフェース101のインターフェースメトリックが20であり、処理部103はインターフェース102のインターフェースメトリックを30に設定する。次に、判定部105は、処理部103に対してインターフェ-ス102をセルラネットワーク90に接続することを指示する。次に、処理部103は、判定部105からの指示によりインターフェース102をセルラネットワーク90に接続する。次に、処理部103は、インターフェース102が関連付けられたデフォルトルートを経路表に追加する。このとき、処理部103は、インターフェース102の関連づけられたデフォルトルートのメトリックを30とする。即ち、インターフェース102のインターフェースメトリックと同じ値に設定する。尚、インターフェース102の関連づけられたデフォルトルートのメトリックは、インターフェース102のインターフェースメトリックと同じ値に設定しなくても良い。図4(b)、(c)にそれぞれ、インターフェース102をセルラネットワーク90に接続前と接続後の経路表を示す。インターフェース101、102のメトリックを比較するとインターフェース101のメトリックの方が小さい。従って、アプリケーション104A,104Bは、特別な指示を処理部103にしない限り、インターフェース101を用いた通信を継続する結果になる。まとめると、ステップS3において、判定部105および処理部103はローミング不可能なアプリケーション104Bの通信を阻害しない方法でインターフェース102をセルラネットワーク90に接続する。 Next, the processing unit 103 connects the interface 102 to the cellular network 90 while maintaining the connection of the interface 101 (S3). Specifically, first, the processing unit 103 sets the interface metric of the interface 102 stored in the setting storage unit 105 to a value larger than the interface metric of the interface 101. For example, in FIG. 4A, the interface metric of the interface 101 is 20, and the processing unit 103 sets the interface metric of the interface 102 to 30. Next, the determination unit 105 instructs the processing unit 103 to connect the interface 102 to the cellular network 90. Next, the processing unit 103 connects the interface 102 to the cellular network 90 according to an instruction from the determination unit 105. Next, the processing unit 103 adds a default route associated with the interface 102 to the route table. At this time, the processing unit 103 sets the metric of the default route associated with the interface 102 to 30. That is, the same value as the interface metric of the interface 102 is set. Note that the default route metric associated with the interface 102 may not be set to the same value as the interface metric of the interface 102. FIGS. 4B and 4C show route tables before and after connecting the interface 102 to the cellular network 90, respectively. When comparing the metrics of the interfaces 101 and 102, the metric of the interface 101 is smaller. Accordingly, the applications 104A and 104B continue to communicate using the interface 101 unless a special instruction is given to the processing unit 103. In summary, in step S3, the determination unit 105 and the processing unit 103 connect the interface 102 to the cellular network 90 by a method that does not hinder communication of the application 104B that cannot roam.
次に、判定部105は、処理部103から全てのソケット情報を取得する(S4)。本実施例では、アプリケーション104Aはローミング可能であるため、処理部103は、アプリケーション104AのプロセスIDを含む第2のソケット情報を判定部105に出力する結果となる。 Next, the determination unit 105 acquires all socket information from the processing unit 103 (S4). In the present embodiment, since the application 104A can roam, the processing unit 103 outputs the second socket information including the process ID of the application 104A to the determination unit 105.
次に、判定部105は、取得したソケット情報に対応するアプリケーションを特定する(S5)。 Next, the determination unit 105 identifies an application corresponding to the acquired socket information (S5).
次に、判定部105は、通信装置10で動作しかつローミング可能なアプリケーションを特定する(S6)。具体的には、判定部105は、S2またはS4で取得したソケット情報の中に、あるアプリケーションの名前に対応付けられたプロセスIDを含む第1のソケット情報が存在し、かつS4で取得したソケット情報の中に、同じアプリケーション名に対応付けられたプロセスIDを含む第2のソケット情報が存在する場合に、前記アプリケーションをローミング可能なアプリケーションと判定する。本実施例において、アプリケーション104Aおよびアプリケーション104Bが動作している場合、判定部105は、アプリケーション104Aがローミング可能なアプリケーションであると判定する。 Next, the determination unit 105 identifies an application that operates on the communication device 10 and can roam (S6). Specifically, the determination unit 105 includes the first socket information including the process ID associated with the name of an application in the socket information acquired in S2 or S4, and the socket acquired in S4. When the second socket information including the process ID associated with the same application name exists in the information, it is determined that the application is a roamable application. In this embodiment, when the application 104A and the application 104B are operating, the determination unit 105 determines that the application 104A is a roamable application.
通信装置10は、通信中の全てのアプリケーションに対してローミング可能か否かを判定し終わるか、事前に決められた時間が経過するか、事前に決められた回数実行するまで、ステップS4からステップS6を繰り返す。 From step S4 to step S4, the communication device 10 determines whether or not roaming is possible for all applications in communication, until a predetermined time elapses, or is executed a predetermined number of times. Repeat S6.
次に、判定部105は、ステップS4からステップS6までに一度もローミング可能なアプリケーションと判定されず、かつ通信中のアプリケーションをローミング不可能なアプリケーションであると判定する(S7)。結果、アプリケーション104Aおよびアプリケーション104Bが動作している場合、判定部105は、アプリケーション104Aがローミング可能なアプリケーションであると判定し、アプリケーション104Bがローミング不可能なアプリケーションであると判定する。 Next, the determination unit 105 determines that the application cannot be roamed once from step S4 to step S6, and determines that the communicating application is an application that cannot be roamed (S7). As a result, when the application 104A and the application 104B are operating, the determination unit 105 determines that the application 104A is an application that can be roamed, and determines that the application 104B is an application that cannot be roamed.
次に、処理部103は、判定部105が通信装置10で動作するアプリケーション全てがローミング可能なアプリケーションであると判定した場合、判定部105の指示により、インターフェース101からインターフェース102への切り替えを行う(S8)。例えば、ローミング可能なアプリケーション104Aが動作していて、ローミング不可能なアプリケーション104Bが動作していない場合、インターフェース101からインターフェース102への切り替えを行う。具体的には、インターフェース101を無線LAN80から切断する。一方、判定部105が通信装置10で動作するアプリケーションのうちローミング不可能なアプリケーションがあると判定した場合、処理部103は、インターフェース101からインターフェース102への切り替えを行わない。ローミング不可能なアプリケーション104Bが動作している場合、処理部103はインターフェース101からインターフェース102への切り替えを行わない。 Next, when the determination unit 105 determines that all applications running on the communication device 10 are roamable applications, the processing unit 103 switches from the interface 101 to the interface 102 according to an instruction from the determination unit 105 ( S8). For example, when the application 104A capable of roaming is operating and the application 104B not capable of roaming is not operating, switching from the interface 101 to the interface 102 is performed. Specifically, the interface 101 is disconnected from the wireless LAN 80. On the other hand, when the determination unit 105 determines that there is an application that cannot be roamed among applications operating on the communication apparatus 10, the processing unit 103 does not switch from the interface 101 to the interface 102. When the application 104 </ b> B that cannot be roamed is operating, the processing unit 103 does not switch from the interface 101 to the interface 102.
インターフェース101からインターフェース102への切り替えを行った場合の経路表を図4(d)に示す。図4(d)には、インターフェース102のデフォルトルートが記憶され、インターフェース101のデフォルトルートは記憶されていない。 FIG. 4D shows a path table when switching from the interface 101 to the interface 102 is performed. In FIG. 4D, the default route of the interface 102 is stored, and the default route of the interface 101 is not stored.
 尚、実施例1において、設定記憶部107は、インターフェースメトリックを記憶するとしたが、記憶しなくても良い。この場合、処理部103は、ステップS3において、インターフェースメトリックと関係なく、インターフェース101、102のデフォルトルートのメトリックをそれぞれ例えば20、30とする。 In the first embodiment, the setting storage unit 107 stores the interface metric, but it may not be stored. In this case, in step S3, the processing unit 103 sets the default route metrics of the interfaces 101 and 102 to, for example, 20 and 30, respectively, regardless of the interface metric.
  また、実施例1において、処理部103は、経路のメトリックを用いて出力インターフェースを決定する機能を有していなくても良い。また、処理部103は、デフォルトルートを1つしか設定できなくても良い。この場合、処理部103は、ステップS3において、デフォルトルートを経路表に加えない。この場合、アプリケーション104は、インターフェース101を用いて通信する。また、ステップS8において、インターフェース101を無線LAN80から切断した際、設定記憶部107のインターフェース101のデフォルトルートを削除し、インターフェ-ス102のデフォルトルートを追加する。これにより、アプリケーション104は、インターフェース102を用いて通信する。本実施例の通信装置10によれば、ローミング可能なアプリケーション、ローミング不可能なアプリケーションをそれぞれ特定可能であり、ローミング不可能なアプリケーションが動作していない場合に、インターフェースを切り替えるため、インターフェースを切り替える際に、ユーザの意図に反してアプリケーションの通信が停止することを防ぐことができる。 Also, in the first embodiment, the processing unit 103 does not have to have a function of determining an output interface using a path metric. Further, the processing unit 103 may not be able to set only one default route. In this case, the processing unit 103 does not add the default route to the route table in step S3. In this case, the application 104 communicates using the interface 101. In step S8, when the interface 101 is disconnected from the wireless LAN 80, the default route of the interface 101 in the setting storage unit 107 is deleted and the default route of the interface 102 is added. As a result, the application 104 communicates using the interface 102. According to the communication apparatus 10 of the present embodiment, it is possible to specify an application that can be roamed and an application that cannot be roamed. When an application that cannot roam is not operating, the interface is switched. In addition, it is possible to prevent the communication of the application from being stopped against the user's intention.
尚、実施例1において、S7で、ローミング不可能なアプリケーションが動作中であると判定した場合、ユーザにローミング不可能なアプリケーションが動作している旨を伝達し、ユーザの指示に従ってインターフェース101から102への切り替えを行うか否かを選択しても良い。この場合、図6に示すように通信装置10Aは、S7でアプリケーションがローミング不可能なアプリケーションが動作中であると判定した場合に、「インターフェースを切り替えると、アプリケーションが停止するが、インターフェースを切り替えるか?」といったメッセージを表示する表示部121と、ユーザが、表示部の表示に対して、切り替えるか否かを入力する入力部120を備える。入力部120により、ユーザが切り替えを指示した場合、S8のように、インターフェース101からインターフェース102への切り替えを行う。一方、ユーザが切り替えないことを指示した場合、インターフェース101からインターフェース102への切り替えを行わない。 In the first embodiment, when it is determined in S7 that an application that cannot be roamed is in operation, the user is notified that the application that cannot be roamed is operating, and the interfaces 101 to 102 are instructed by the user. Whether or not to switch to may be selected. In this case, as illustrated in FIG. 6, when the communication apparatus 10A determines in S7 that an application whose application cannot be roamed is in operation, “If the interface is switched, the application is stopped. The display unit 121 displays a message such as “?”, And the input unit 120 inputs whether the user switches the display on the display unit. When the user instructs switching using the input unit 120, switching from the interface 101 to the interface 102 is performed as in S8. On the other hand, when the user instructs not to switch, switching from the interface 101 to the interface 102 is not performed.
 尚、判定部105が、通信装置10で動作するアプリケーションがローミング可能なアプリケーションであるか否かを判定するための情報は、ソケット情報に限らない。例えば、アプリケーションが処理部103にbindシステムコールを実行させたとき、bindシステムコールを指示したアプリケーションのプロセスIDと、システムコールの種別とbindシステムコールに指定したIPアドレスの組を、処理部103が判定部105に出力してもよい。即ち、アプリケーションを特定する識別子とそのアプリケーションが通信に用いるインターフェースを特定するインターフェース識別子を含む情報であれば良い。 Note that the information used by the determination unit 105 to determine whether the application running on the communication device 10 is an application that can be roamed is not limited to socket information. For example, when the application causes the processing unit 103 to execute a bind system call, the processing unit 103 sets a combination of the process ID of the application that instructed the bind system call, the type of the system call, and the IP address specified in the bind system call. You may output to the determination part 105. FIG. That is, any information including an identifier for identifying an application and an interface identifier for identifying an interface used by the application for communication may be used.
 また、本実施例においては、事前に決められた時間の間、判定部105が繰り返し処理部103からソケット情報を取得してローミング可能なアプリケーションを特定すると説明した。しかしながら、判定部105が処理部103からソケット情報を取得するタイミングはこれに限らない。例えば、判定部105が処理部103に一定期間インターフェース101およびインターフェース102が送受信するパケットを監視させる。そして処理部103がインターフェース102のIPアドレスを含むパケットを検知したときに、処理部103が判定部105に前記パケットを通知する。そして判定部105が前記パケットを処理部103から受信したときに、判定部105が処理部103からソケット情報を取得してもよい。 Further, in the present embodiment, it has been described that the determination unit 105 repeatedly acquires socket information from the processing unit 103 and identifies an application capable of roaming for a predetermined time. However, the timing at which the determination unit 105 acquires socket information from the processing unit 103 is not limited to this. For example, the determination unit 105 causes the processing unit 103 to monitor packets transmitted and received by the interface 101 and the interface 102 for a certain period. When the processing unit 103 detects a packet including the IP address of the interface 102, the processing unit 103 notifies the determination unit 105 of the packet. Then, when the determination unit 105 receives the packet from the processing unit 103, the determination unit 105 may acquire socket information from the processing unit 103.
  また、本実施例において、インターフェース101は、無線LAN80に接続され、インターフェ-ス102は、セルラネットワーク90に接続されるとしたが、これに限らない。例えば、インターフェース101およびインターフェ-ス102が無線LAN80に接続されても良い。 In this embodiment, the interface 101 is connected to the wireless LAN 80, and the interface 102 is connected to the cellular network 90. However, the present invention is not limited to this. For example, the interface 101 and the interface 102 may be connected to the wireless LAN 80.
 なお、本実施例にかかる通信装置10は、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。即ち、インターフェース101、インターフェ-ス102、処理部103、アプリケーション104A、104B、判定部105、アプリケーション管理部106、及び設定記憶部107は、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行することにより実現することができる。このとき、通信装置10は、上記のプログラムを実行させることにより実現することができる。このとき、通信装置10は、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現しても良いし、CD-ROMなどの記憶媒体に記憶して、あるいはネットワーク30を介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現しても良い。また、設定記憶部107は、上記のコンピュータ装置に内蔵あるいは外付けされたメモリ、ハードディスク若しくはCD-R、CD-RW、DVD-RAM,DVD-Rなどの記憶媒体などを適宜利用して実現することができる。 The communication device 10 according to the present embodiment can also be realized by using a general-purpose computer device as basic hardware. That is, the interface 101, the interface 102, the processing unit 103, the applications 104A and 104B, the determination unit 105, the application management unit 106, and the setting storage unit 107 execute a program on the processor mounted on the computer device. Can be realized. At this time, the communication device 10 can be realized by executing the above program. At this time, the communication device 10 may be realized by installing the above-described program in a computer device in advance, or may be stored in a storage medium such as a CD-ROM or distributed through the network 30. Then, this program may be realized by appropriately installing it in a computer device. The setting storage unit 107 is realized by appropriately using a memory, a hard disk or a storage medium such as a CD-R, a CD-RW, a DVD-RAM, a DVD-R, or the like incorporated in or externally attached to the computer device. be able to.
 実施例2に係る通信装置20は、実施例1に係る通信装置10と異なる方法でインターフェースを切替える。具体的には、インターフェース101の接続を維持したまま、インターフェース101が関連づけられたデフォルトルートのメトリックがインターフェース102が関連づけられたデフォルトルートのメトリックより大きくなるように設定する。その結果、インターフェース101の無線LAN80との接続を維持しつつ、インターフェース101からインターフェ-ス102への切り替えを行うことができる。 また、実施例2に係るローミング可能なアプリケーションとローミング不可能なアプリケーションの判定方法は、実施例1における方法と異なる。即ち、実施例2に係るローミング可能なアプリケーションの判定方法は、以下の3つの条件のいずれかに該当するアプリケーションを、ローミング可能なアプリケーションと判定する。第1の条件は、実施例1に係るローミング可能なアプリケーションと同じである。即ち、第1のソケット情報に対応するアプリケーションであって、かつ第2のソケット情報に対応するアプリケーションであることである。第2の条件は、第1のソケット情報に対応するアプリケーションであって、かつそのソケット情報のプロトコル種別がTCPであることである。また、第3の条件は、第1のソケット情報に対応するアプリケーションであって、かつそのソケット情報のプロトコル種別がUDPであり、かつそのソケット情報がbindシステムコールによってインターフェース101を使用し続けることを示す情報を含むことである。 The communication device 20 according to the second embodiment switches the interface using a method different from that of the communication device 10 according to the first embodiment. Specifically, the metric of the default route associated with the interface 101 is set to be larger than the metric of the default route associated with the interface 102 while maintaining the connection of the interface 101. As a result, the interface 101 can be switched to the interface 102 while maintaining the connection of the interface 101 with the wireless LAN 80. Also, the method for determining the roamable application and the non-roamable application according to the second embodiment is different from the method according to the first embodiment. That is, in the method for determining a roamable application according to the second embodiment, an application that meets any of the following three conditions is determined as a roamable application. The first condition is the same as the roamable application according to the first embodiment. That is, it is an application corresponding to the first socket information and an application corresponding to the second socket information. The second condition is that the application corresponds to the first socket information, and the protocol type of the socket information is TCP. The third condition is that the application corresponds to the first socket information, the protocol type of the socket information is UDP, and the socket information continues to use the interface 101 by the bind system call. Information to be included.
 次に、第2の条件または第3の条件に該当するアプリケーションがローミング可能なアプリケーションである理由を説明する。まず、第2の条件に対する理由は次の通りである。アプリケーションがTCPを用いて通信する場合、アプリケーションが利用するIPアドレスは、TCPセッションを確立する時に決定される。そして、たとえインターフェースまたは経路の優先度(メトリック)が変更されたとしても、アプリケーションがTCPセッションを切断するまで、アプリケーションのデータを含むパケットはTCPセッション確立時のIPアドレスが割り当てられたインターフェースから送信される。前述したように、通信装置20は、インターフェースを切り替える際に、切り替え基のインターフェース101を切断せず、接続を維持する。したがって、インターフェース101からインターフェース102に切り替えても(メトリックを変更する。)、アプリケーションは、インターフェース101により通信を継続することができる。第3の条件に対する理由は、次の通りである。アプリケーションがUDPを用いて通信し、かつインターフェース101を使用し続けることをbindシステムコールにより宣言した場合、アプリケーションが利用するIPアドレスは、bindシステムコールにより宣言した時に決定される。そして、たとえインターフェ-スまたは経路の優先度(メトリック)が変更されたとしても、アプリケーションがUDPの通信を終了するまで、アプリケーションのデータを含むパケットはbindシステムコール宣言時のIPアドレスが割り当てられたインターフェースから送信される。したがって、第3の条件に該当するアプリケーションは、第2の条件に該当するアプリケーションと同様の理由で、インターフェース101からインターフェース102へと切り替えても、通信を継続できる。 Next, the reason why the application corresponding to the second condition or the third condition is an application capable of roaming will be described. First, the reason for the second condition is as follows. When an application communicates using TCP, the IP address used by the application is determined when a TCP session is established. And even if the priority of the interface or route (metric) is changed, until the application disconnects the TCP session, the packet including the application data is transmitted from the interface to which the IP address at the time of establishing the TCP session is assigned. The As described above, the communication device 20 maintains the connection without disconnecting the switching-source interface 101 when switching the interface. Therefore, even if the interface 101 is switched to the interface 102 (the metric is changed), the application can continue communication using the interface 101. The reason for the third condition is as follows. When an application communicates using UDP and declares to continue using the interface 101 by a bind system call, the IP address used by the application is determined when the application is declared by the bind system call. Even if the interface or route priority (metric) is changed, the IP address at the time of the bind system call declaration is assigned to the packet including the application data until the application ends the UDP communication. Sent from the interface. Therefore, even if the application corresponding to the third condition is switched from the interface 101 to the interface 102 for the same reason as the application corresponding to the second condition, communication can be continued.
 実施例2の通信装置20の構成要素は、図2に示すように、実施例1の通信装置10の構成要素と同じである。ここで、アプリケーション104Bは、第1~第3の条件に該当しないローミング不可能なアプリケーションであるとする。 The components of the communication device 20 of the second embodiment are the same as the components of the communication device 10 of the first embodiment as shown in FIG. Here, it is assumed that the application 104B is an application that does not meet the first to third conditions and cannot be roamed.
 通信装置20の動作方法について説明する。図7は、通信装置20の動作方法を示すフローチャートである。 The operation method of the communication device 20 will be described. FIG. 7 is a flowchart illustrating an operation method of the communication device 20.
 S1~S5は、実施例1の通信装置10の動作方法と同じ動作である。 S1 to S5 are the same operations as the operation method of the communication apparatus 10 of the first embodiment.
 次に、通信装置20で動作するローミング可能なアプリケーションを特定する(S26)。即ち、取得したソケット情報に対応するアプリケーションが、前述した第1~第3の条件のいずれかに該当するアプリケーションであるか否かを判定する。第1の条件は、第1の実施形態で判定した方法と同じである。即ち、S1で取得した第1のソケット情報に対応し、かつS4で取得した第2のソケット情報に対応するアプリケーションであることである。また、第2の条件は、S1またはS4で取得したソケット情報に含まれるプロトコル種別がTCPであり、かつIPアドレスがインターフェース101のIPアドレスである、前記ソケット情報に対応するアプリケーションであることである。また、第3の条件は、S4で取得したソケット情報に含まれるプロトコル種別がUDPであり、かつIPアドレスがインターフェース101のIPアドレスである、前記ソケット情報に対応するアプリケーションであることである。ここで、ソケット情報に含まれる自アドレスが0.0.0.0以外のIPアドレスである場合であって、かつプロトコル種別がUDPである場合、アプリケーションがbindシステムコールを処理部103に実行させたことを示す。 Next, a roamable application operating on the communication device 20 is specified (S26). That is, it is determined whether or not the application corresponding to the acquired socket information is an application that meets any of the first to third conditions. The first condition is the same as the method determined in the first embodiment. That is, the application corresponds to the first socket information acquired in S1 and corresponds to the second socket information acquired in S4. The second condition is that the application corresponds to the socket information in which the protocol type included in the socket information acquired in S1 or S4 is TCP and the IP address is the IP address of the interface 101. . The third condition is that the protocol type included in the socket information acquired in S4 is UDP and the application corresponds to the socket information whose IP address is the IP address of the interface 101. Here, when the own address included in the socket information is an IP address other than 0.0.0.0 and the protocol type is UDP, the application causes the processing unit 103 to execute the bind system call. It shows that.
通信装置10は、通信中の全てのアプリケーションに対してローミング可能か否かを判定し終わるか、事前に決められた時間が経過か、事前に決められた回数実行するまで、ステップS4からステップS26を繰り返す。 The communication device 10 determines whether or not roaming is possible for all applications in communication, until a predetermined time has elapsed, or until a predetermined number of times have been executed, from step S4 to step S26. repeat.
次に、判定部105は、ステップS4からステップ26までに一度もローミング可能なアプリケーションと判定されず、かつ通信中のアプリケーションをローミング不可能なアプリケーションであると判定する(S27)。 Next, the determination unit 105 determines that the application cannot be roamed once from step S4 to step 26, and determines that the communicating application is an application that cannot be roamed (S27).
 次に、処理部103は、判定部105が通信装置20で通信中のアプリケーション全てがローミング可能なアプリケーションであると判定した場合、判定部105の指示により、インターフェース101からインターフェース102への切り替えを行う(S28)。具体的には、インターフェース101のインターフェースメトリックがインターフェース102のインターフェースメトリックより大きくなるよう変更するため、判定部105はインターフェース101およびインターフェース102のインターフェースメトリックの一方もしくは両方の新たな値を処理部103に出力する。また、処理部103は、設定記憶部107に保存された経路表のうち、インターフェース102が関連付けられたデフォルトルートのメトリックが、インターフェース101が関連付けられたデフォルトルートのメトリックと比べて小さくなるよう設定する。例えば、図10に示されるように、インターフェース102のデフォルトルートのメトリックを10に設定する。一方、判定部105が通信装置20で動作中のアプリケーションとしてローミング不可能なアプリケーションを含むと判定した場合、処理部103は、インターフェース101からインターフェース102への切り替えを行わない。 Next, when the determination unit 105 determines that all applications in communication with the communication device 20 are roamable applications, the processing unit 103 switches from the interface 101 to the interface 102 according to an instruction from the determination unit 105. (S28). Specifically, in order to change the interface metric of the interface 101 to be larger than the interface metric of the interface 102, the determination unit 105 outputs a new value of one or both of the interface metric of the interface 101 and the interface 102 to the processing unit 103. To do. In addition, the processing unit 103 sets the metric of the default route associated with the interface 102 in the route table stored in the setting storage unit 107 to be smaller than the metric of the default route associated with the interface 101. . For example, as shown in FIG. 10, the metric of the default route of the interface 102 is set to 10. On the other hand, when the determination unit 105 determines that an application that is not roaming is included as an application running on the communication device 20, the processing unit 103 does not switch from the interface 101 to the interface 102.
 実施例2に係る通信装置20によれば、実施例1の通信装置10と同様の効果を達成することができる。即ち、インターフェースを切り替える際に、ユーザの意図に反してアプリケーションの通信が停止することを防ぐことができる。 According to the communication device 20 according to the second embodiment, the same effect as that of the communication device 10 according to the first embodiment can be achieved. That is, when switching the interface, it is possible to prevent the communication of the application from being stopped against the user's intention.
 また、実施例2に係る通信装置20は、インターフェース101の接続を維持したままインターフェース101からインターフェ-ス102への切り替えを行うことができる。その結果、以下の2つのアプリケーションが動作中もインターフェース101からインターフェース102への切り替えが可能となる。1つ目のアプリケーションは、第1のソケット情報に対応するアプリケーションであって、かつそのソケット情報のプロトコル種別がTCPであるアプリケーションである。また、2つ目のアプリケーションは、第1のソケット情報に対応するアプリケーションであって、かつそのソケット情報のプロトコル種別がUDPであり、かつそのソケット情報がbindシステムコールによってインターフェース101を使用し続けることを示す情報を含むアプリケーションである。 Also, the communication device 20 according to the second embodiment can switch from the interface 101 to the interface 102 while maintaining the connection of the interface 101. As a result, the interface 101 can be switched to the interface 102 even when the following two applications are operating. The first application is an application corresponding to the first socket information and the protocol type of the socket information is TCP. The second application is an application corresponding to the first socket information, the protocol type of the socket information is UDP, and the socket information continues to use the interface 101 by the bind system call. It is an application including information indicating
 実施例3の通信装置30は、アプリケーション起動時に取得するソケット情報を用いてアプリケーションがローミング可能なアプリケーションであるか否かを判定する点が、実施例1と異なる。 The communication device 30 of the third embodiment is different from the first embodiment in that it determines whether or not the application is a roamable application using socket information acquired when the application is activated.
 また、切り替え元インターフェースと切り替え先インターフェースがユーザ等により既に接続されている場合において、インターフェースを切り替えるか否かを判断する点が、実施例1と異なる。 In addition, when the switching source interface and the switching destination interface are already connected by a user or the like, it is different from the first embodiment in that it is determined whether to switch the interface.
 また、実施例3に係る通信装置30は、実施例1に係る通信装置10と異なり、判定部105が、アプリケーションの起動時に通信装置で動作中のアプリケーションがローミング可能なアプリケーションであるか否かを判定後、インターフェースの切り替えを判定後すぐに行わず、ローミング可能なアプリケーションのアプリケーション名をローミング可能アプリ記憶部308に記憶させ、動作中のアプリケーションとローミング可能アプリ記憶部308が記憶したローミング可能なアプリケーションとを比較することにより、動作中のアプリケーションがローミング可能なアプリケーションであるか否かを判定し、その判定結果により処理部103はインターフェース101からインターフェース102への切り替えを行う。 Also, the communication device 30 according to the third embodiment is different from the communication device 10 according to the first embodiment, in which the determination unit 105 determines whether the application running on the communication device is an application that can roam when the application is activated. After the determination, the application name of the roamable application is stored in the roamable application storage unit 308 without switching the interface immediately after the determination, and the roamable application storage unit 308 stores the active application and the roamable application storage unit 308. Are compared to determine whether or not the operating application is a roamable application, and the processing unit 103 switches from the interface 101 to the interface 102 based on the determination result.
 図9に示されるように、通信装置30は、実施例3に係る通信装置30の構成に加えて、ローミング可能アプリ記憶部308を備える。ローミング可能アプリ記憶部308は、ローミング可能なアプリケーションのアプリケーション名を記憶する。 As illustrated in FIG. 9, the communication device 30 includes a roamable application storage unit 308 in addition to the configuration of the communication device 30 according to the third embodiment. The roamable application storage unit 308 stores application names of roamable applications.
 以下では、通信装置30の動作方法について説明する。図10は、通信装置30の動作方法を示すフローチャートである。 Hereinafter, an operation method of the communication device 30 will be described. FIG. 10 is a flowchart illustrating an operation method of the communication device 30.
 動作開始時、通信装置30のアプリケーション104Aは起動していないとする。更に、インターフェース101は無線LAN80に接続し、インターフェース102はセルラネットワーク90に接続しているとする。経路表のデフォルトルートのメトリックは、図4(c)に示すようにインターフェース101、102それぞれのメトリックが20、30であるとする。 Suppose that the application 104A of the communication device 30 is not activated when the operation starts. Further, it is assumed that the interface 101 is connected to the wireless LAN 80 and the interface 102 is connected to the cellular network 90. Assume that the metrics of the default route in the route table are 20 and 30 respectively for the interfaces 101 and 102 as shown in FIG.
 まず、アプリケーション104Aを起動する(S31)。 First, the application 104A is activated (S31).
 次に、判定部105は、処理部103からソケット情報を取得する(S32)。 Next, the determination unit 105 acquires socket information from the processing unit 103 (S32).
 次に、判定部105は、処理部103から取得したソケット情報から、アプリケーション104Aがローミング可能なアプリケーションであるか否かを判定する(S33)。即ち、まず、判定部105は、アプリケーション管理部106から、アプリケーション名とプロセスIDとの組を取得し、ソケット情報のプロセスIDと比較することにより、アプリケーション104Aに対応するソケット情報を特定する。次に、判定部105は、特定したソケット情報に含まれるインターフェースのIPアドレスから第1のソケット情報(IPアドレスとしてインターフェース101のIPアドレスを含むソケット情報。)であるか第2のソケット情報(IPアドレスとしてインターフェ-ス102のIPアドレスを含むソケット情報。)であるかを特定する。次に、判定部105は、アプリケーション104Aに対応する第1のソケット情報及び第2のソケット情報を取得した場合、アプリケーション104Aがローミング可能なアプリケーションであると判定する。アプリケーション104Aはローミング可能なアプリケーションであるため、第1のソケット情報及び第2のソケット情報を取得でき、ローミング可能なアプリケーションであると判定される。なぜならば、アプリケーション104Aに対応する第1および第2のソケット情報を取得できたことは、インターフェース101およびインターフェース102の両方を利用して通信することを示すためである。次に、アプリケーション104Aがローミング可能なアプリケーションと判定された場合、ローミング可能アプリ記憶部108は、アプリケーション104Aのアプリケーション名を記憶する(S34)。 Next, the determination unit 105 determines whether the application 104A is a roamable application from the socket information acquired from the processing unit 103 (S33). That is, first, the determination unit 105 acquires a combination of an application name and a process ID from the application management unit 106, and compares the process information of the socket information with each other, thereby specifying the socket information corresponding to the application 104A. Next, the determination unit 105 determines whether the first socket information (socket information including the IP address of the interface 101 as an IP address) from the IP address of the interface included in the specified socket information or the second socket information (IP Socket information including the IP address of the interface 102 as an address). Next, when the first socket information and the second socket information corresponding to the application 104A are acquired, the determination unit 105 determines that the application 104A is a roamable application. Since the application 104A is a roamable application, the first socket information and the second socket information can be acquired, and it is determined that the application is roamable. This is because the fact that the first and second socket information corresponding to the application 104A can be acquired indicates that communication is performed using both the interface 101 and the interface 102. Next, when it is determined that the application 104A is a roamable application, the roamable application storage unit 108 stores the application name of the application 104A (S34).
 通信装置30は、事前に決められた時間が経過するか、事前に決められた回数実行するまで、ステップS32からステップS34を繰り返す。 The communication device 30 repeats steps S32 to S34 until a predetermined time elapses or until a predetermined number of times are executed.
 また、通信装置30は、新たにアプリケーションが起動されるたびにS32からS34の繰り返しを実行する。そこで、複数のローミング可能なアプリケーションのアプリケーション名がローミング可能アプリ記憶部108に記憶される可能性がある。 The communication device 30 repeats S32 to S34 each time a new application is started. Therefore, there is a possibility that application names of a plurality of roamable applications are stored in the roamable application storage unit 108.
 次に、通信装置30が無線LANの電波が低くなったことを検知し、判定部105が、インターフェース101からインターフェ-ス102への切り替えを指示すると、判定部105は処理部103からソケット情報を取得する(S35)。 Next, when the communication device 30 detects that the radio wave of the wireless LAN has become low and the determination unit 105 instructs switching from the interface 101 to the interface 102, the determination unit 105 receives the socket information from the processing unit 103. Is acquired (S35).
 次に、判定部105は、S35で取得したソケット情報に対応するアプリケーションを特定することで、通信中のアプリケーションを特定する(S36)。 Next, the determination unit 105 specifies an application in communication by specifying an application corresponding to the socket information acquired in S35 (S36).
 次に、判定部105は、S36で特定したアプリケーションがローミング可能なアプリケーションであるか否かを判定する(S37)。即ち、判定部105は、S36で特定したアプリケーションのアプリケーション名がローミング可能アプリ記憶部308に存在するか否かで、動作しているアプリケーションがローミング可能なアプリケーションであるか否かを判定する。ここで、アプリケーション104A、104B両方とも動作している場合、アプリケーション104Aはローミング可能なアプリケーションであると判定され、アプリケーション104Bはローミング不可能なアプリケーションであると判定される。 Next, the determination unit 105 determines whether or not the application specified in S36 is a roamable application (S37). That is, the determination unit 105 determines whether the operating application is a roamable application based on whether or not the application name of the application specified in S36 exists in the roamable application storage unit 308. Here, when both of the applications 104A and 104B are operating, it is determined that the application 104A is an application that can roam, and the application 104B is determined to be an application that cannot be roamed.
  次に、処理部103は、判定部105が動作中のアプリケーションが全てローミング可能なアプリケーションであると判定した場合、判定部105の指示により、インターフェース101からインターフェース102への切り替えを行う(S38)。例えば、アプリケーション104Aが動作し、アプリケーション104Bが動作していない場合、インターフェースを切替える。即ち、インターフェース101を無線LAN80から切断する。一方、判定部105がアプリケーションがローミング不可能なアプリケーションであると判定した場合、処理部103は、インターフェース101からインターフェース102への切り替えを行わない。例えば、アプリケーション104Bが動作している場合、インターフェースを切替えない。 Next, when the determination unit 105 determines that all the running applications are roamable applications, the processing unit 103 switches from the interface 101 to the interface 102 according to an instruction from the determination unit 105 (S38). For example, when the application 104A operates and the application 104B does not operate, the interface is switched. That is, the interface 101 is disconnected from the wireless LAN 80. On the other hand, when the determination unit 105 determines that the application is an application that cannot be roamed, the processing unit 103 does not switch from the interface 101 to the interface 102. For example, when the application 104B is operating, the interface is not switched.
 実施例3に係る通信装置30によれば、実施例1の通信装置10と同様の効果を達成することができる。即ち、インターフェースを切り替える際に、ユーザの意図に反してアプリケーションの通信が停止することを防ぐことができる。 According to the communication device 30 according to the third embodiment, the same effect as that of the communication device 10 according to the first embodiment can be achieved. That is, when switching the interface, it is possible to prevent the communication of the application from being stopped against the user's intention.
 また、実施例3に係る通信装置30は、既に切り替え先インターフェースと切り替え元インターフェースが接続されている状態においてインターフェースを切り替える際に、ユーザの意図に反してアプリケーションの通信が停止することを防ぐことができる。 In addition, the communication device 30 according to the third embodiment prevents the communication of the application from being stopped against the user's intention when the interface is switched in a state where the switching destination interface and the switching source interface are already connected. it can.
 また、実施例3に係る通信装置30は、ローミング可能なアプリケーションか否かを判定後、ローミング可能アプリ記憶部308にローミング可能なアプリケーションを記憶するため、ローミング可能なアプリケーションを特定するタイミングとインターフェースを切り替えるタイミングをずらすことが可能である。したがって、例えば、ローミング可能なアプリケーションか否かを判定時に動作中であったローミング不可能なアプリケーションが、インターフェース切り替え時に動作していなければ、インターフェースを切り替えることが可能となる。 In addition, the communication device 30 according to the third embodiment stores the roamable application in the roamable application storage unit 308 after determining whether or not the application can be roamed. It is possible to shift the switching timing. Therefore, for example, if an application that cannot be roamed and is operating at the time of determining whether or not it is a roamable application is not operating at the time of interface switching, the interface can be switched.
 尚、本発明や上記実施例をそのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施例に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。たとべあ、実施例に示される全構成要素から幾つかの構成要素を削除しても良い。さらに、異なる実施例にわたる構成要素を適宜組み合わせても良い。 It should be noted that the present invention and the above-described embodiments are not limited as they are, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. Various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the above embodiments. As a matter of fact, some components may be deleted from all the components shown in the embodiment. Furthermore, constituent elements over different embodiments may be appropriately combined.
 10、10A、20、30、60、70・・・通信装置、101、102・・・インターフェース、103・・・処理部、104A、104B・・・アプリケーション、105・・・判定部、106・・・アプリケーション管理部、107・・・設定記憶部、120・・・入力部、121・・・表示部、80・・・無線LAN、85・・・インターネット、90・・・セルラネットワーク、308・・・ローミング可能アプリ記憶部 10, 10A, 20, 30, 60, 70 ... communication device, 101, 102 ... interface, 103 ... processing unit, 104A, 104B ... application, 105 ... determination unit, 106 ... Application management unit 107: Setting storage unit 120 ... Input unit 121 ... Display unit 80 ... Wireless LAN 85 ... Internet 90 ... Cellular network 308・ Roamable app storage

Claims (5)

  1.  ネットワークを介して他の装置と通信を行う通信装置であって、
     ネットワークに接続可能な第1のインターフェースと第2のインターフェ-スと、
     アプリケーションを特定するアプリケーション識別子と当該アプリケーションが用いるインターフェースを特定するインターフェース識別子とを含む識別情報を出力するとともに、前記アプリケーションが通信に用いるインターフェースを切り替える処理部と、
     前記処理部が出力する識別情報を基に、アプリケーションが用いるインターフェースを切り替えても通信を継続可能なローミング可能アプリケーションであるか、アプリケーションが用いるインターフェースを切り替えると通信を継続不可能なローミング不可能なアプリケーションであるかを判定する判定部とを備え、
     前記処理部は、アプリケーションが前記第1のインターフェースを用いて通信をしている時、当該アプリケーションを特定するアプリケーション識別子と前記第1のインターフェースを特定する第1のインターフェース識別子を含む第1の識別情報を出力し、前記第2のインターフェ-スをネットワークに接続するとローミング可能なアプリケーションを特定するアプリケーション識別子と第2のインターフェ-スを特定する第2のインターフェース識別子を含む第2の識別情報を出力し、
     前記判定部は、前記第1の識別情報及び前記第2の識別情報いずれにも含まれるアプリケーション識別子により特定されるアプリケーションをローミング可能なアプリケーションであると判定し、前記第1の識別情報に含まれて、前記第2の識別情報に含まれないアプリケーション識別子により特定されるアプリケーションをローミング不可能なアプリケーションであると判定し、
     前記処理部は、アプリケーションがローミング不可能なアプリケーションを含む場合、アプリケーションが通信に用いるインターフェースを前記第1のインターフェースから前記第2のインターフェ-スに切り替えないことを特徴とする通信装置。
    A communication device that communicates with other devices via a network,
    A first interface and a second interface connectable to a network;
    A processing unit that outputs identification information including an application identifier that identifies an application and an interface identifier that identifies an interface used by the application, and switches an interface used by the application for communication;
    Based on the identification information output by the processing unit, it is a roamable application that can continue communication even if the interface used by the application is switched, or an application that cannot continue roaming when the interface used by the application is switched And a determination unit for determining whether or not
    When the application communicates using the first interface, the processing unit includes first identification information including an application identifier that identifies the application and a first interface identifier that identifies the first interface. And when the second interface is connected to the network, second identification information including an application identifier that identifies an application that can roam and a second interface identifier that identifies the second interface Output,
    The determination unit determines that an application specified by an application identifier included in both the first identification information and the second identification information is an application capable of roaming, and is included in the first identification information. Determining that the application specified by the application identifier not included in the second identification information is an application that cannot be roamed,
    When the application includes an application that cannot be roamed, the processing unit does not switch an interface used for communication by the application from the first interface to the second interface.
  2.  前記処理部は、アプリケーションを起動させると、前記第1のインターフェース及び前記第2のインターフェ-スをネットワークに接続している場合、ローミング可能なアプリケーションを特定するアプリケーション識別子と第1のインターフェース識別子とを含む第1の識別情報及び当該ローミング可能なアプリケーションを特定するアプリケーション識別子と第2のインターフェース識別子とを含む第2の識別情報を出力し、又ローミング不可能なアプリケーションを特定するアプリケーション識別子と第1のインターフェース識別子とを含む第1の識別情報、若しくは当該ローミング不可能なアプリケーションを特定するアプリケーション識別子と第2のインターフェース識別子とを含む第2の識別情報いずれか一方の識別情報を出力し、
     前記判定部は、前記第1の識別情報及び前記第2の識別情報いずれにも含まれるアプリケーション識別子により特定されるアプリケーションをローミング可能なアプリケーションであると判定し、前記第1の識別情報と前記第2の識別情報両方の識別情報には含まれないアプリケーション識別子により特定されるアプリケーションをローミング不可能なアプリケーションであると判定することを特徴とする請求項1記載の通信装置。
    When the processing unit starts the application, when the first interface and the second interface are connected to the network, the processing unit identifies an application identifier that identifies a roamable application, a first interface identifier, And second identification information including an application identifier for specifying the roamable application and a second interface identifier, and an application identifier for specifying an application that cannot be roamed and the first 1st identification information including the first interface identifier, or the second identification information including the second interface identifier and the application identifier specifying the application that cannot be roamed is output. ,
    The determination unit determines that an application specified by an application identifier included in both the first identification information and the second identification information is an application capable of roaming, and the first identification information and the first identification information The communication apparatus according to claim 1, wherein an application specified by an application identifier not included in both pieces of identification information is determined as an application that cannot be roamed.
  3.  前記判定部が判定したローミング可能なアプリケーションを特定するアプリケーション識別子に対応するローミング可能アプリケーション名を記憶する第1の記憶部を備え、
    前記判定部は、前記処理部が出力する前記識別情報に含まれるアプリケーション識別子に対応するアプリケーション名が、前記第1の記憶部が記憶するローミング可能アプリケーション名と一致するかを判定し、
    前記処理部は、前記識別情報に含まれるアプリケーション識別子に対応するアプリケーション名が、前記第1の記憶部が記憶するローミング可能アプリケーション名と一致しない場合、アプリケーションが通信に用いるインターフェースを第1のインターフェースから第2のインターフェ-スに切り替えないことを特徴とする請求項2記載の通信装置。
    A first storage unit that stores a roamable application name corresponding to an application identifier that identifies the roamable application determined by the determination unit;
    The determination unit determines whether an application name corresponding to an application identifier included in the identification information output by the processing unit matches a roamable application name stored in the first storage unit,
    When the application name corresponding to the application identifier included in the identification information does not match the roamable application name stored in the first storage unit, the processing unit determines an interface used by the application for communication from the first interface. 3. The communication apparatus according to claim 2, wherein switching to the second interface is not performed.
  4.  ネットワークに接続されたインターフェースを特定するインターフェース識別子と、当該インターフェース識別子に対応して、アプリケーションが当該インターフェースを用いて通信を行う優先度を記憶する第2の記憶部を更に備え、
    前記処理部が、前記第2のインターフェ-スをネットワークに接続する時、前記第2の記憶部に、前記第2のインターフェ-スを特定する第2のインターフェース識別子と、前記第2のインターフェ-ス識別子に対応して、前記第1のインターフェースを用いて通信を行う優先度より低い優先度を記憶することを特徴とする請求項3記載の通信装置。
    An interface identifier that identifies an interface connected to the network; and a second storage unit that stores a priority corresponding to the interface identifier for communication by the application using the interface;
    When the processing unit connects the second interface to a network, the second storage unit stores a second interface identifier for identifying the second interface, and the second interface. 4. The communication apparatus according to claim 3, wherein a priority lower than a priority for performing communication using the first interface is stored in correspondence with an interface identifier.
  5.  前記識別情報は、更にプロトコル種別を含む情報であり
     前記判定部は、前記第1の識別情報に含まれるアプリケーション識別子により特定されるアプリケーションであって、前記プロトコル種別がTCPであるアプリケーション、及び前記第1の識別情報に含まれるアプリケーション識別子により特定されるアプリケーションであって、かつbindシステムコールされた情報であり、かつ前記プロトコル種別がUDPであるアプリケーションのいずれのアプリケーションをローミング可能なアプリケーションであると判定し、
     前記処理部は、前記第1のインターフェース及び前記第2のインターフェ-スがネットワークに接続されたインターフェースである場合、前記第1のインターフェースから前記第2のインターフェ-スへの切り替えを、前記第2のインターフェ-スの優先度を、前記第1のインターフェースの優先度と比べて高くすることにより行うことを特徴とする請求項4記載の通信装置。
     
    The identification information is information including a protocol type, and the determination unit is an application identified by an application identifier included in the first identification information, and the protocol type is TCP, and the first It is determined that any of the applications identified by the application identifier included in the identification information 1 and information that has been called by the bind system call and the protocol type is UDP is a roamable application. And
    When the first interface and the second interface are interfaces connected to a network, the processing unit performs switching from the first interface to the second interface, 5. The communication apparatus according to claim 4, wherein the priority of the second interface is set higher than the priority of the first interface.
PCT/JP2009/004392 2009-09-04 2009-09-04 Communication device WO2011027405A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/004392 WO2011027405A1 (en) 2009-09-04 2009-09-04 Communication device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/004392 WO2011027405A1 (en) 2009-09-04 2009-09-04 Communication device

Publications (1)

Publication Number Publication Date
WO2011027405A1 true WO2011027405A1 (en) 2011-03-10

Family

ID=43648967

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/004392 WO2011027405A1 (en) 2009-09-04 2009-09-04 Communication device

Country Status (1)

Country Link
WO (1) WO2011027405A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013098819A (en) * 2011-11-02 2013-05-20 Buffalo Inc Network communication device, method for selecting use network interface part, method for performing packet transmission/reception, computer program, and computer-readable recording medium
JP2014179927A (en) * 2013-03-15 2014-09-25 Canon Inc Communication device and method of controlling the same, communication system, and program

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003319430A (en) * 2002-04-23 2003-11-07 Matsushita Electric Ind Co Ltd Mobile communication method and radio access system
WO2004105272A1 (en) * 2003-05-20 2004-12-02 Fujitsu Limited Application handover method in mobile communication system, mobile management node used in the mobile communication system, and mobile node
JP2005057551A (en) * 2003-08-06 2005-03-03 Nec Corp Mobile communication system and hand-over method used for the same
JP2005198074A (en) * 2004-01-08 2005-07-21 Mitsubishi Electric Corp Network selection method and network selection system
JP2007521699A (en) * 2003-11-05 2007-08-02 トムソン ライセンシング Mobile device and operation considering the network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003319430A (en) * 2002-04-23 2003-11-07 Matsushita Electric Ind Co Ltd Mobile communication method and radio access system
WO2004105272A1 (en) * 2003-05-20 2004-12-02 Fujitsu Limited Application handover method in mobile communication system, mobile management node used in the mobile communication system, and mobile node
JP2005057551A (en) * 2003-08-06 2005-03-03 Nec Corp Mobile communication system and hand-over method used for the same
JP2007521699A (en) * 2003-11-05 2007-08-02 トムソン ライセンシング Mobile device and operation considering the network
JP2005198074A (en) * 2004-01-08 2005-07-21 Mitsubishi Electric Corp Network selection method and network selection system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013098819A (en) * 2011-11-02 2013-05-20 Buffalo Inc Network communication device, method for selecting use network interface part, method for performing packet transmission/reception, computer program, and computer-readable recording medium
JP2014179927A (en) * 2013-03-15 2014-09-25 Canon Inc Communication device and method of controlling the same, communication system, and program

Similar Documents

Publication Publication Date Title
US9667537B2 (en) Transport system, packet transport apparatus, and packet transport method
US7627290B2 (en) Route convergence monitoring system and method
JP5290359B2 (en) Test apparatus and test method for mobile communication terminal
CN102598599B (en) RSVP-TE graceful restart under fast re-route conditions
US20130107794A1 (en) Network communication device and method of selecting active network interface
JP2009535956A5 (en)
JP5318911B2 (en) Communications system
CN106878072B (en) Message transmission method and device
US7646772B2 (en) Graceful shutdown of LDP on specific interfaces between label switched routers
US11711243B2 (en) Packet processing method and gateway device
US20190109784A1 (en) Packet processing method and apparatus
EP3203685B1 (en) Method and apparatus for implementing operations, administration and maintenance function
US20230300048A1 (en) Tunnel bfd session establishment method and device
Stuedi et al. SIPHoc: Efficient SIP middleware for ad hoc networks
JP3732745B2 (en) Communication connection establishment method
WO2013113241A1 (en) Multi-mode mobile terminal and method for load balancing
WO2011027405A1 (en) Communication device
JP4251646B2 (en) Bridge device, bridge device control method, and control program
JP2009194787A (en) Gateway apparatus
TW200836542A (en) A method of providing a mobility service
CN106105315B (en) Switching method based on seamless mobility condition
JP5880701B2 (en) Communication system, communication control method, communication relay system, and communication relay control method
JP2006333080A (en) Mobile communication terminal, and method and program for communication path selection
US20120188945A1 (en) Route optimization method and access router
CN111934939A (en) Network node fault detection method, device and system

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: 09848936

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: 09848936

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP