(57)【要約】【課題】  動的に複数のNICの利用を切り替える。【解決手段】  ドライバラッパ１０７は、インターネット電話アプリケーションプログラム１０１、または、ftpデータ伝送アプリケーションプログラムにより通信されているデータであるかを認識し、要求情報管理部１１１に記憶されている通信経路に関するユーザの要求情報を読み出し、インタフェース１０５，１０６、または、MACドライバ１０８，１０９のそれぞれをアプリケーションプログラム毎に接続し、通信経路を設定することで、アプリケーションプログラム毎に通信に使用するNIC４２−１，４２−２を切り替えて使用する。本発明は、パーソナルコンピュータに適用することができる。【選択図】      図６
2005072759.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続する複数のネットワーク接続装置を有する送信装置において、
前記複数のネットワーク接続装置毎のインタフェースの情報を記憶するインタフェース情報記憶手段と、
前記インタフェース情報記憶手段により記憶されたインタフェース情報に基づいて、前記インタフェースを介した通信経路を設定する通信経路設定手段と、
アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶する接続情報記憶手段と、
前記接続情報記憶手段に記憶された前記接続情報に基づいて、アプリケーションプログラム毎に前記インタフェースと、前記ネットワーク接続装置のMACドライバとの接続を切り替える切替手段と、
前記切替手段により前記アプリケーションプログラム毎に前記インタフェースとの接続が切り替えられた前記ネットワーク接続装置のMACドライバを介して情報を送信する送信手段と
を備えることを特徴とする送信装置。
【請求項２】
前記切替手段は、前記接続情報記憶手段に記憶された前記接続情報に基づいて、前記インタフェースと、前記ネットワーク接続装置のMACドライバとの接続をパケットデータ毎のIPヘッダを書き換えることにより切り替える
ことを特徴とする請求項１に記載の送信装置。
【請求項３】
通信ポートを認識する認識手段と、
前記認識手段により認識された通信ポートに基づいてアプリケーションプログラムを識別する識別手段をさらに備え、
前記切替手段は、前記接続情報記憶手段に記憶された前記接続情報に基づいて、前記識別手段により識別されたアプリケーションプログラム毎に前記インタフェースと、前記ネットワーク接続装置のMACドライバとの接続を切り替える
ことを特徴とする請求項１に記載の送信装置。
【請求項４】
前記アプリケーションプログラムと前記ネットワーク接続装置との対応関係を入力する入力手段をさらに備え、
前記接続情報記憶手段は、前記入力手段により入力された前記アプリケーションプログラムと前記ネットワーク接続装置との対応関係に基づいた、前記アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶する
ことを特徴とする請求項１に記載の送信装置。
【請求項５】
前記ネットワーク接続装置による通信状態を検出する状態検出手段をさらに備え、
前記接続情報記憶手段は、前記状態検出手段により検出される通信状態に基づいた、前記アプリケーションプログラム毎に使用するネットワーク接続装置のMACドライバの接続情報を記憶し、
前記切替手段は、前記状態検出手段により検出される通信状態により、前記接続情報記憶手段に記憶された前記接続情報に基づいて、アプリケーションプログラム毎に前記インタフェースと、前記ネットワーク接続装置のMACドライバとの接続を切り替える
ことを特徴とする請求項１に記載の送信装置。
【請求項６】
前記状態検出手段は、電界強度を検出する電解強度検出手段をさらに備え、
前記電界強度検出手段により検出された電界強度により前記ネットワーク接続装置による通信状態を検出する
ことを特徴とする請求項５に記載の送信装置。
【請求項７】
ネットワークに接続する複数のネットワーク接続装置を有する送信装置の送信方法において、
前記複数のネットワーク接続装置毎のインタフェースの情報を記憶するインタフェース情報記憶ステップと、
前記インタフェース情報記憶ステップの処理で記憶されたインタフェース情報に基づいて、前記インタフェースを介した通信経路を設定する通信経路設定ステップと、
アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶する接続情報記憶ステップと、
前記接続情報記憶ステップの処理で記憶された前記接続情報に基づいて、アプリケーションプログラム毎に前記インタフェースと、前記ネットワーク接続装置のMACドライバとの接続を切り替える切替ステップと、
前記切替ステップの処理で前記アプリケーションプログラム毎に前記インタフェースとの接続が切り替えられた前記ネットワーク接続装置のMACドライバを介して情報を送信する送信ステップと
を含むことを特徴とする送信方法。
【請求項８】
ネットワークに接続する複数のネットワーク接続装置を備える送信装置を制御するコンピュータのプログラムであって、
前記複数のネットワーク接続装置毎のインタフェースの情報の記憶を制御するインタフェース情報記憶制御ステップと、
前記インタフェース情報記憶制御ステップの処理で記憶が制御されたインタフェース情報に基づいて、前記インタフェースを介した通信経路を設定する通信経路設定ステップと、
アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報の記憶を制御する接続情報記憶制御ステップと、
前記接続情報記憶制御ステップの処理で記憶が制御された前記接続情報に基づいて、アプリケーションプログラム毎に前記インタフェースと、前記ネットワーク接続装置のMACドライバとの接続を切り替える切替ステップと、
前記切替ステップの処理で前記アプリケーションプログラム毎に前記インタフェースとの接続が切り替えられた前記ネットワーク接続装置のMACドライバを介して情報の送信を制御する送信制御ステップと
をコンピュータに実行させることを特徴とするプログラム。
【請求項９】
ネットワークに接続する複数のネットワーク接続装置を有する受信装置において、
前記複数のネットワーク接続装置毎のインタフェースの情報を記憶するインタフェース情報記憶手段と、
前記インタフェース情報記憶手段により記憶されたインタフェース情報に基づいて、前記インタフェースを介した通信経路を設定する通信経路設定手段と、
アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶する接続情報記憶手段と、
前記接続情報記憶手段に記憶された前記接続情報に基づいて、アプリケーションプログラム毎に前記インタフェースと、前記ネットワーク接続装置のMACドライバとの接続を切り替える切替手段と、
前記切替手段により前記アプリケーションプログラム毎に前記インタフェースとの接続が切り替えられた前記ネットワーク接続装置のMACドライバを介して情報を受信する受信手段と
を備えることを特徴とする受信装置。
【請求項１０】
前記切替手段は、前記接続情報記憶手段に記憶された前記接続情報に基づいて、前記インタフェースと、前記ネットワーク接続装置のMACドライバとの接続をパケットデータ毎のIPヘッダを書き換えることにより切り替える
ことを特徴とする請求項９に記載の受信装置。
【請求項１１】
通信ポートを認識する認識手段と、
前記認識手段により認識された通信ポートに基づいてアプリケーションプログラムを識別する識別手段をさらに備え、
前記切替手段は、前記接続情報記憶手段に記憶された前記接続情報に基づいて、前記識別手段により識別されたアプリケーションプログラム毎に前記インタフェースと、前記ネットワーク接続装置のMACドライバとの接続を切り替える
ことを特徴とする請求項９に記載の受信装置。
【請求項１２】
前記アプリケーションプログラムと前記ネットワーク接続装置との対応関係を入力する入力手段をさらに備え、
前記接続情報記憶手段は、前記入力手段により入力された前記アプリケーションプログラムと前記ネットワーク接続装置との対応関係に基づいた、前記アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶する
ことを特徴とする請求項９に記載の受信装置。
【請求項１３】
前記ネットワーク接続装置による通信状態を検出する状態検出手段をさらに備え、
前記接続情報記憶手段は、前記状態検出手段により検出される通信状態に基づいた、前記アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶し、
前記切替手段は、前記状態検出手段により検出される通信状態により、前記接続情報記憶手段に記憶された前記接続情報に基づいて、アプリケーションプログラム毎に前記インタフェースと、前記ネットワーク接続装置のMACドライバとの接続を切り替える
ことを特徴とする請求項９に記載の受信装置。
【請求項１４】
前記状態検出手段は、電界強度を検出する電解強度検出手段をさらに備え、
前記電界強度検出手段により検出された電界強度により前記ネットワーク接続装置による通信状態を検出する
ことを特徴とする請求項１３に記載の受信装置。
【請求項１５】
ネットワークに接続する複数のネットワーク接続装置を有する受信装置の受信方法において、
前記複数のネットワーク接続装置毎のインタフェースの情報を記憶するインタフェース情報記憶ステップと、
前記インタフェース情報記憶ステップの処理で記憶されたインタフェース情報に基づいて、前記インタフェースを介した通信経路を設定する通信経路設定ステップと、
アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶する接続情報記憶ステップと、
前記接続情報記憶ステップの処理で記憶された前記接続情報に基づいて、アプリケーションプログラム毎に前記インタフェースと、前記ネットワーク接続装置のMACドライバとの接続を切り替える切替ステップと、
前記切替ステップの処理で前記アプリケーションプログラム毎に前記インタフェースとの接続が切り替えられた前記ネットワーク接続装置のMACドライバを介して情報を受信する受信ステップと
を含むことを特徴とする受信方法。
【請求項１６】
ネットワークに接続する複数のネットワーク接続装置を備える受信装置を制御するコンピュータのプログラムであって、
前記複数のネットワーク接続装置毎のインタフェースの情報の記憶を制御するインタフェース情報記憶制御ステップと、
前記インタフェース情報記憶制御ステップの処理で記憶が制御されたインタフェース情報に基づいて、前記インタフェースを介した通信経路を設定する通信経路設定ステップと、
アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報の記憶を制御する接続情報記憶制御ステップと、
前記接続情報記憶制御ステップの処理で記憶が制御された前記接続情報に基づいて、アプリケーションプログラム毎に前記インタフェースと、前記ネットワーク接続装置のMACドライバとの接続を切り替える切替ステップと、
前記切替ステップの処理で前記アプリケーションプログラム毎に前記インタフェースとの接続が切り替えられた前記ネットワーク接続装置のMACドライバを介して情報の送信を制御する送信制御ステップと、
前記切替ステップの処理で前記アプリケーションプログラム毎に前記インタフェースとの接続が切り替えられた前記ネットワーク接続装置のMACドライバを介した情報の受信を制御する受信制御ステップと
をコンピュータに実行させることを特徴とするプログラム。
【請求項１７】
ネットワークに接続する複数のネットワーク接続装置を有する通信装置において、
前記複数のネットワーク接続装置毎のインタフェースの情報を記憶するインタフェース情報記憶手段と、
前記インタフェース情報記憶手段により記憶されたインタフェース情報に基づいて、前記インタフェースを介した通信経路を設定する通信経路設定手段と、
アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶する接続情報記憶手段と、
前記接続情報記憶手段に記憶された前記接続情報に基づいて、アプリケーションプログラム毎に前記インタフェースと、前記ネットワーク接続装置のMACドライバとの接続を切り替える切替手段と、
前記切替手段により前記アプリケーションプログラム毎に前記インタフェースとの接続が切り替えられた前記ネットワーク接続装置のMACドライバを介して情報を通信する通信手段と
を備えることを特徴とする通信装置。
【請求項１８】
前記切替手段は、前記接続情報記憶手段に記憶された前記接続情報に基づいて、前記インタフェースと、前記ネットワーク接続装置との接続をパケットデータ毎のIPヘッダを書き換えることにより切り替える
ことを特徴とする請求項１７に記載の通信装置。
【請求項１９】
通信ポートを認識する認識手段と、
前記認識手段により認識された通信ポートに基づいてアプリケーションプログラムを識別する識別手段をさらに備え、
前記切替手段は、前記接続情報記憶手段に記憶された前記接続情報に基づいて、前記識別手段により識別されたアプリケーションプログラム毎に前記インタフェースと、前記ネットワーク接続装置のMACドライバとの接続を切り替える
ことを特徴とする請求項１７に記載の通信装置。
【請求項２０】
前記アプリケーションプログラムと前記ネットワーク接続装置との対応関係を入力する入力手段をさらに備え、
前記接続情報記憶手段は、前記入力手段により入力された前記アプリケーションプログラムと前記ネットワーク接続装置との対応関係に基づいた、前記アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶する
ことを特徴とする請求項１７に記載の通信装置。
【請求項２１】
前記ネットワーク接続装置による通信状態を検出する状態検出手段をさらに備え、
前記接続情報記憶手段は、前記状態検出手段により検出される通信状態に基づいた、前記アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶し、
前記切替手段は、前記状態検出手段により検出される通信状態により、前記接続情報記憶手段に記憶された前記接続情報に基づいて、アプリケーションプログラム毎に前記インタフェースと、前記ネットワーク接続装置のMACドライバとの接続を切り替える
ことを特徴とする請求項１７に記載の通信装置。
【請求項２２】
前記状態検出手段は、電界強度を検出する電解強度検出手段をさらに備え、
前記電界強度検出手段により検出された電界強度により前記ネットワーク接続装置による通信状態を検出する
ことを特徴とする請求項２１に記載の通信装置。
【請求項２３】
ネットワークに接続する複数のネットワーク接続装置を有する通信装置の通信方法において、
前記複数のネットワーク接続装置毎のインタフェースの情報を記憶するインタフェース情報記憶ステップと、
前記インタフェース情報記憶ステップの処理で記憶されたインタフェース情報に基づいて、前記インタフェースを介した通信経路を設定する通信経路設定ステップと、
アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶する接続情報記憶ステップと、
前記接続情報記憶ステップの処理で記憶された前記接続情報に基づいて、アプリケーションプログラム毎に前記インタフェースと、前記ネットワーク接続装置のMACドライバとの接続を切り替える切替ステップと、
前記切替ステップの処理で前記アプリケーションプログラム毎に前記インタフェースとの接続が切り替えられた前記ネットワーク接続装置のMACドライバを介して情報を通信する通信ステップと
を含むことを特徴とする通信方法。
【請求項２４】
ネットワークに接続する複数のネットワーク接続装置を備える通信装置を制御するコンピュータのプログラムであって、
前記複数のネットワーク接続装置毎のインタフェースの情報の記憶を制御するインタフェース情報記憶制御ステップと、
前記インタフェース情報記憶制御ステップの処理で記憶が制御されたインタフェース情報に基づいて、前記インタフェースを介した通信経路を設定する通信経路設定ステップと、
アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報の記憶を制御する接続情報記憶制御ステップと、
前記接続情報記憶制御ステップの処理で記憶が制御された前記接続情報に基づいて、アプリケーションプログラム毎に前記インタフェースと、前記ネットワーク接続装置のMACドライバとの接続を切り替える切替ステップと、
前記切替ステップの処理で前記アプリケーションプログラム毎に前記インタフェースとの接続が切り替えられた前記ネットワーク接続装置のMACドライバを介した情報の通信を制御する通信制御ステップと
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信装置および方法、受信装置および方法、通信装置および方法、並びにプログラムに関し、特に、複数のネットワークインタフェースカードを処理に応じて切り替えて使用できるようにした送信装置および方法、受信装置および方法、通信装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータ（以下PCとも称する）が普及し、オフィスや家庭で頻繁に利用されるようになっている。さらに、インターネットの普及に伴い、上述したPCがネットワークに接続される機会も非常に多くなっている。
【０００３】
PCがネットワークに接続される形態としては、様々なものが存在する。世界的に普及しているものとして、イーサネット（登録商標）（Ethernet（Ｒ）：IEEE（Institute of Electrical and Electronic Engineers） 802.3）がある。イーサネット（登録商標）のインタフェース装置が設けられているPCに、イーサネット（登録商標）ケーブルを接続し、各種設定を行なうことでネットワークに接続されたPC間で通信をすることができる。現在では、ほぼ全てのPCにイーサネット（登録商標）インタフェース装置が設けられており、TCP/IP（Transmission Control Protocol/Internet Protocol）を用いてネットワークへのアクセスが行なわれている。
【０００４】
さらに、このイーサネット（登録商標）を用いた新たなネットワークの形態として、無線を媒体として通信する無線LAN（Local Area Network）が開発されている。ノート型のPCなどは子型で持ち歩くことも可能であるため、イーサネット（登録商標）ケーブルを接続するよりも手軽に簡単にネットワークに接続することができる。
【０００５】
オフィスなどでは、旧来からのイーサネット（登録商標）によるネットワークの環境に加えて、無線LANにより構築されるネットワークを新規に導入するケースが増えている。
【０００６】
無線LANの方式には、IEEE (The Institute of Electrical and Electronics Engineers， Inc.)で規定された 802.11b，802.11g、または、802.11aなどの複数の方式がある。これらは、利用する周波数帯域や変復調の方式によって区別して規定されている。
【０００７】
他のネットワーク接続形態として、IEEE 1394やxDSL(x Digital Subscriber Line)、PHS (Personal Handy Phone System)、IDSN (Integrated Services Digital Network) などの電話回線を利用した接続方式がある。このように、ネットワークへの接続形態は様々なものがあるが、例えば、図1に示されるように、１台のPCに複数の接続インタフェース装置が用意されている場合がある。すなわち、図１においては、PC１がイーサネット（登録商標）、IEEE802.11（無線LAN）、IEEE1394、xDSL（x Digital Subscriber Line）、および、ISDN（Integrated Services Digital Network）を介してネットワーク１２に接続されており、それぞれの接続インタフェースを介して、ネットワーク１２に接続されている他のPCと通信することができる。
【０００８】
一方、利用する場所に複数の接続インタフェースが敷設されている場合もある。例えば、図２で示されるように、PC１１には、無線LAN用の通信部１１ａ（IEEE 802.11a）とイーサネット（登録商標）用の通信部１１ｂが設けられており、それぞれ対応するように、アクセスポイント１４（IEEE802.11a）とイーサネット（登録商標）１２が設けられており、それぞれの経路からネットワーク１３に接続できるような場合である。このようなPC１１を利用すれば、ユーザの利用形態に応じて利用するインタフェースを適宜選択して通信することができる。
【０００９】
ここで上位プロトコルである、TCP/IP (Transmission Control Protocol/Internet Protocol) に関して考える。PC１１を一意に識別するためのIPアドレスはそれぞれのインタフェースに静的に、もしくは動的に割り当てられている。例えば、静的に割り当てられるとき、PC１１の「ネットワークの設定」の欄にユーザが設定したものがその都度利用される。
【００１０】
また、動的に割り当てられているとき、DHCP (Dynamic Host Configuration Protocol) などの動的割り当てプロトコルによって割り当てられる。前述のように、複数あるインタフェースのうち、ユーザが一つしか使わない場合は、それぞれのインタフェースでの割り当て方法(静的か動的か)に応じてその都度異なる IP アドレスが利用される。
【００１１】
従来は、ユーザがどちらか一方のインタフェースを自ら明示的に利用することが多かったため、上記手法によって利用していた。これは、例えばデスクトップPCなら持ち運ばないのでイーサネット（登録商標）インタフェースを利用し、様々な場所で利用するノートPCは IEEE802.11bを利用するといった使い分けがされていたためである。
【００１２】
また、IPネットワーク網においてパケット毎にアプリケーションの種別毎にクラスを分けて仮想的な異なったIPアドレスを割り当てることが提案されている。
【特許文献１】特開２００１−１６０８２５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、近年においては、上述したように無線LANの規格が複数規定されたこともあり、ノートPCでも、例えば、IEEE802.11b，IEEE802.11aを同時に搭載することも可能になってきた。このようなPCを使う場合、その通信の特性やそのネットワークのトラフィックなどに応じて適宜通信インタフェースを切り替えることが考えられる。
【００１４】
すなわち、例えば、IEEE802.11aは、通信相手と近距離のとき高速で通信することが可能である。一方、IEEE802.11bは、通信速度は低速であるが通信相手との距離が比較的遠距離であっても伝送が可能である。このような伝送特性の違いや、利用ユーザの増減や環境の変化による伝送速度の変化などに対応して通信インタフェースを切り替えるようにすることで、必要に応じて高速に、または、必要に応じて遠距離の相手との通信に適したものとすることができる。
【００１５】
このような場合、複数のインタフェースを適宜切り替えて利用することが有効となる。すなわち、同時に複数のインタフェースを利用しようとすると、各インタフェースにIPアドレスが割り振られることになるが、複数のインタフェースで同時に同じIPアドレスを使うことはできないため、それぞれ別のIPアドレスが割り当てられる。
【００１６】
各インタフェースが別のブロードキャストドメインにある場合は、それぞれのインタフェースは、各ブロードキャストドメインでネットワークアドレスが異なるため、アドレスは一意になる。(例えば、192.168.1.xと172.16.1.xなど)
【００１７】
一方、各インタフェースが同じブロードキャストドメインにある場合は、ネットワークアドレスが同じであるため、割り当ての際は注意しなければならない。
【００１８】
このような複数のIPアドレスが割り当てられた状態で、別のPCと通信を行なう場合を考える。ここでは、2つのインタフェースが有効なパソコンを想定し、各インタフェースに、「192.168.1.1」と「172.16.1.1」というアドレスが割り当てられているものとする。なお、この例は各インタフェースが「172.16.1.x」と「192.168.1.x」という別々のブロードキャストドメインに存在しているが、同じブロードキャストドメインでも同様である。ここで、それぞれのドメインにおけるゲートウェイを、「172.16.1.254」と、「192.168.1.254」であるものとする。
【００１９】
別のコンピュータと通信する際、どちらのインタフェースを経由してパケットを送出するかについてはルーティングテーブルに従う。例えば、図３で示されるように、ルーティングテーブルが設定されているものとする。
【００２０】
図３においては、図中左側にルーティング情報の番号として１乃至７が示されている。また、その右側には、Network Destinationが示されており、番号１から順に、「0.0.0.0」、「0.0.0.0」、「172.16.1.0」、「172.255. 255. 255」、「192.168.1.0」、「192.168.1.255」、および、「255.255.255.255」とアドレスが示されている。さらに右側には、Netmaskが示されており、番号１から順に、「0.0.0.0」、「0.0.0.0」、「255.255. 255. 0」、「255.255. 255. 255」、「255.255. 255. 0」、「255.255. 255. 255」、および「255.255. 255. 255」とアドレスが示されている。また、Netmaskの右側には、ゲートウェイが示されており番号１から順に「172.16.1.254」、「192.168.1.254」、「172.16.1.1」、「172.16.1.1」、「192.168.1.1」、「192.168.1.1」、および「172.16.1.1」とアドレスが示されている。さらに、右側には、インタフェースが示されており、「172.16.1.1」、「172.16.1.1」、「172.16.1.1」、「172.16.1.1」、「192.168.1.1」、「192.168.1.1」、および「172.16.1.1」とアドレスが示されている。最も右側には、Metricとして個数が示されており、全て１として示されている。
【００２１】
例えば、「192.168.1.10」というアドレスのPCと通信をする場合は、このアドレスが5番目のインタフェースとマッチするため、「192.168.1.1」のインタフェースを通して送信される。この場合、一番マッチするルーティングテーブルは５番のみである。ここで、マッチするとは、Netmask（ネットマスク）の設定に基づいて、最も一致するアドレスを示す。すなわち、ネットマスクでは、「255」で設定された部分が完全一致で求められるのに対して、「０」で設定された部分は、いずれの値であってもよいことを示している。従って、Network Destinationにおいて、5番のものは、「192.168.1.0」のうちネットマスクとして「225.225.225.0」であるため、所望とするアドレス「192.168.1.10」の上位「192.168.1」が一致することになり、残りの「0」は、ネットマスクにおいて「0」として設定されている部分であるため、必ずしも一致することが求められていないので、最も一致するルーティングテーブルとして選択されることになる。
【００２２】
一方、例えば「10.1.1.1」という端末と通信する場合は、このアドレスは、ルーティングテーブルの1番と2番にマッチしている。すなわち、この場合、Network Destinationのいずれにも近いアドレスがないが、ルーティングテーブルの1番、2番は、それぞれのネットマスクがいずれも「0.0.0.0」であるため、いずれの部分も必ずしも一致しなくてもよいことになっている。
【００２３】
このような場合、通常はテーブルの番号の上位が選択されるので、結果として172.16.1.254を経由して通信経路が設定される。ユーザが、もし192.168.1.254を経由して通信したい場合、図３で示されるルーティングテーブルを書き換えることによって、通信経路を変更することが可能である。
【００２４】
しかしながら、ルーティングテーブルを管理するのは、通常OS（Operating System）であるため、このように変更してしまうと、全ての通信経路が変更されてしまうことになるため、例えばアプリケーションプログラムごとに通信経路を指定することはできず、ユーザの意図した通信経路に動的に変化させて通信させることができないという課題があった。
【００２５】
また、上述したように伝送路の特性や通信状況に合わせて通信経路を変更していくことも、実際には、OSで管理されるため動的に変化させて対応させることができず、結果として、伝送路の特性や通信状態に合わせて動的に変化させることができないという課題があった。
【００２６】
本発明はこのような状況に鑑みてなされたものであり、特に、複数のネットワーク接続装置（例えば、ネットワークカードなど）を伝送路の特性や、通信状態に合わせて、動的に切り替えて使用できるようにするものである。
【課題を解決するための手段】
【００２７】
本発明の送信装置は、複数のネットワーク接続装置毎のインタフェースの情報を記憶するインタフェース情報記憶手段と、インタフェース情報記憶手段により記憶されたインタフェース情報に基づいて、インタフェースを介した通信経路を設定する通信経路設定手段と、アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶する接続情報記憶手段と、接続情報記憶手段に記憶された接続情報に基づいて、アプリケーションプログラム毎にインタフェースと、ネットワーク接続装置のMACドライバとの接続を切り替える切替手段と、切替手段によりアプリケーションプログラム毎にインタフェースとの接続が切り替えられたネットワーク接続装置のMACドライバを介して情報を送信する送信手段とを備えることを特徴とする。
【００２８】
前記切替手段には、接続情報記憶手段に記憶された接続情報に基づいて、インタフェースと、ネットワーク接続装置のMACドライバとの接続をパケットデータ毎のIPヘッダを書き換えることにより切り替えるようにさせることができる。
【００２９】
前記通信ポートを認識する認識手段と、認識手段により認識された通信ポートに基づいてアプリケーションプログラムを識別する識別手段をさらに設けるようにさせることができ、切替手段には、接続情報記憶手段に記憶された接続情報に基づいて、識別手段により識別されたアプリケーションプログラム毎にインタフェースと、ネットワーク接続装置のMACドライバとの接続を切り替えるようにさせることができる。
【００３０】
前記アプリケーションプログラムとネットワーク接続装置との対応関係を入力する入力手段をさらに設けるようにさせることができ、接続情報記憶手段には、入力手段により入力されたアプリケーションプログラムとネットワーク接続装置との対応関係に基づいた、アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶させるようにすることができる。
【００３１】
前記ネットワーク接続装置による通信状態を検出する状態検出手段をさらに設けるようにすることができ、接続情報記憶手段には、状態検出手段により検出される通信状態に基づいた、アプリケーションプログラム毎に使用するネットワーク接続装置のMACドライバの接続情報を記憶させるようにすることができ、切替手段には、状態検出手段により検出される通信状態により、接続情報記憶手段に記憶された接続情報に基づいて、アプリケーションプログラム毎にインタフェースと、ネットワーク接続装置のMACドライバとの接続を切り替えるようにさせることができる。
【００３２】
前記状態検出手段には、電界強度を検出する電解強度検出手段をさらに設けるようにさせることができ、電界強度検出手段により検出された電界強度によりネットワーク接続装置による通信状態を検出させるようにすることができる。
【００３３】
本発明の送信方法は、複数のネットワーク接続装置毎のインタフェースの情報を記憶するインタフェース情報記憶ステップと、インタフェース情報記憶ステップの処理で記憶されたインタフェース情報に基づいて、インタフェースを介した通信経路を設定する通信経路設定ステップと、アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶する接続情報記憶ステップと、接続情報記憶ステップの処理で記憶された接続情報に基づいて、アプリケーションプログラム毎にインタフェースと、ネットワーク接続装置のMACドライバとの接続を切り替える切替ステップと、切替ステップの処理でアプリケーションプログラム毎にインタフェースとの接続が切り替えられたネットワーク接続装置のMACドライバを介して情報を送信する送信ステップとを含むことを特徴とする。
【００３４】
本発明の第１のプログラムは、複数のネットワーク接続装置毎のインタフェースの情報の記憶を制御するインタフェース情報記憶制御ステップと、インタフェース情報記憶制御ステップの処理で記憶が制御されたインタフェース情報に基づいて、インタフェースを介した通信経路を設定する通信経路設定ステップと、アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報の記憶を制御する接続情報記憶制御ステップと、接続情報記憶制御ステップの処理で記憶が制御された接続情報に基づいて、アプリケーションプログラム毎にインタフェースと、ネットワーク接続装置のMACドライバとの接続を切り替える切替ステップと、切替ステップの処理でアプリケーションプログラム毎にインタフェースとの接続が切り替えられたネットワーク接続装置のMACドライバを介して情報の送信を制御する送信制御ステップとをコンピュータに実行させることを特徴とする。
【００３５】
本発明の受信装置は、複数のネットワーク接続装置毎のインタフェースの情報を記憶するインタフェース情報記憶手段と、インタフェース情報記憶手段により記憶されたインタフェース情報に基づいて、インタフェースを介した通信経路を設定する通信経路設定手段と、アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶する接続情報記憶手段と、接続情報記憶手段に記憶された接続情報に基づいて、アプリケーションプログラム毎にインタフェースと、ネットワーク接続装置のMACドライバとの接続を切り替える切替手段と、切替手段によりアプリケーションプログラム毎にインタフェースとの接続が切り替えられたネットワーク接続装置のMACドライバを介して情報を受信する受信手段とを備えることを特徴とする。
【００３６】
前記切替手段には、接続情報記憶手段に記憶された接続情報に基づいて、インタフェースと、ネットワーク接続装置のMACドライバとの接続をパケットデータ毎のIPヘッダを書き換えることにより切り替えるようにさせることができる。
【００３７】
前記通信ポートを認識する認識手段と、認識手段により認識された通信ポートに基づいてアプリケーションプログラムを識別する識別手段をさらに設けるようにさせることができ、切替手段には、接続情報記憶手段に記憶された接続情報に基づいて、識別手段により識別されたアプリケーションプログラム毎にインタフェースと、ネットワーク接続装置のMACドライバとの接続を切り替えるようにさせることができる。
【００３８】
前記アプリケーションプログラムとネットワーク接続装置との対応関係を入力する入力手段をさらに設けるようにさせることができ、接続情報記憶手段には、入力手段により入力されたアプリケーションプログラムとネットワーク接続装置との対応関係に基づいた、アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶させるようにすることができる。
【００３９】
前記ネットワーク接続装置による通信状態を検出する状態検出手段をさらに設けるようにさせることができ、接続情報記憶手段には、状態検出手段により検出される通信状態に基づいた、アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶させるようにすることができ、切替手段には、状態検出手段により検出される通信状態により、接続情報記憶手段に記憶された接続情報に基づいて、アプリケーションプログラム毎にインタフェースと、ネットワーク接続装置のMACドライバとの接続を切り替えるようにさせることができる。
【００４０】
前記状態検出手段には、電界強度を検出する電解強度検出手段をさらに設けるようにさせることができ、電界強度検出手段により検出された電界強度によりネットワーク接続装置による通信状態を検出させるようにすることができる。
【００４１】
本発明の受信方法は、複数のネットワーク接続装置毎のインタフェースの情報を記憶するインタフェース情報記憶ステップと、インタフェース情報記憶ステップの処理で記憶されたインタフェース情報に基づいて、インタフェースを介した通信経路を設定する通信経路設定ステップと、アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶する接続情報記憶ステップと、接続情報記憶ステップの処理で記憶された接続情報に基づいて、アプリケーションプログラム毎にインタフェースと、ネットワーク接続装置のMACドライバとの接続を切り替える切替ステップと、切替ステップの処理でアプリケーションプログラム毎にインタフェースとの接続が切り替えられたネットワーク接続装置のMACドライバを介して情報を受信する受信ステップとを含むことを特徴とする。
【００４２】
本発明の第２のプログラムは、複数のネットワーク接続装置毎のインタフェースの情報の記憶を制御するインタフェース情報記憶制御ステップと、インタフェース情報記憶制御ステップの処理で記憶が制御されたインタフェース情報に基づいて、インタフェースを介した通信経路を設定する通信経路設定ステップと、アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報の記憶を制御する接続情報記憶制御ステップと、接続情報記憶制御ステップの処理で記憶が制御された接続情報に基づいて、アプリケーションプログラム毎にインタフェースと、ネットワーク接続装置のMACドライバとの接続を切り替える切替ステップと、切替ステップの処理でアプリケーションプログラム毎にインタフェースとの接続が切り替えられたネットワーク接続装置のMACドライバを介して情報の送信を制御する送信制御ステップと、切替ステップの処理でアプリケーションプログラム毎にインタフェースとの接続が切り替えられたネットワーク接続装置のMACドライバを介した情報の受信を制御する受信制御ステップとをコンピュータに実行させることを特徴とする。
【００４３】
本発明の通信装置は、複数のネットワーク接続装置毎のインタフェースの情報を記憶するインタフェース情報記憶手段と、インタフェース情報記憶手段により記憶されたインタフェース情報に基づいて、インタフェースを介した通信経路を設定する通信経路設定手段と、アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶する接続情報記憶手段と、接続情報記憶手段に記憶された接続情報に基づいて、アプリケーションプログラム毎にインタフェースと、ネットワーク接続装置のMACドライバとの接続を切り替える切替手段と、切替手段によりアプリケーションプログラム毎にインタフェースとの接続が切り替えられたネットワーク接続装置のMACドライバを介して情報を通信する通信手段とを備えることを特徴とする。
【００４４】
前記切替手段には、接続情報記憶手段に記憶された接続情報に基づいて、インタフェースと、ネットワーク接続装置との接続をパケットデータ毎のIPヘッダを書き換えることにより切り替えるようにさせることができる。
【００４５】
前記通信ポートを認識する認識手段と、認識手段により認識された通信ポートに基づいてアプリケーションプログラムを識別する識別手段をさらに設けるようにさせることができ、切替手段には、接続情報記憶手段に記憶された接続情報に基づいて、識別手段により識別されたアプリケーションプログラム毎にインタフェースと、ネットワーク接続装置のMACドライバとの接続を切り替えるようにさせることができる。
【００４６】
前記アプリケーションプログラムとネットワーク接続装置との対応関係を入力する入力手段をさらに設けるようにさせることができ、接続情報記憶手段には、入力手段により入力されたアプリケーションプログラムとネットワーク接続装置との対応関係に基づいた、アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶させるようにすることができる。
【００４７】
前記ネットワーク接続装置による通信状態を検出する状態検出手段をさらに設けるようにさせることができ、接続情報記憶手段には、状態検出手段により検出される通信状態に基づいた、アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶させるようにすることができ、切替手段には、状態検出手段により検出される通信状態により、接続情報記憶手段に記憶された接続情報に基づいて、アプリケーションプログラム毎にインタフェースと、ネットワーク接続装置のMACドライバとの接続を切り替えるようにさせることができる。
【００４８】
前記状態検出手段には、電界強度を検出する電解強度検出手段をさらに設けるようにさせることができ、電界強度検出手段により検出された電界強度によりネットワーク接続装置による通信状態を検出させるようにすることができる。
【００４９】
本発明の通信方法は、複数のネットワーク接続装置毎のインタフェースの情報を記憶するインタフェース情報記憶ステップと、インタフェース情報記憶ステップの処理で記憶されたインタフェース情報に基づいて、インタフェースを介した通信経路を設定する通信経路設定ステップと、アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶する接続情報記憶ステップと、接続情報記憶ステップの処理で記憶された接続情報に基づいて、アプリケーションプログラム毎にインタフェースと、ネットワーク接続装置のMACドライバとの接続を切り替える切替ステップと、切替ステップの処理でアプリケーションプログラム毎にインタフェースとの接続が切り替えられたネットワーク接続装置のMACドライバを介して情報を通信する通信ステップとを含むことを特徴とする。
【００５０】
本発明の第３のプログラムは、複数のネットワーク接続装置毎のインタフェースの情報の記憶を制御するインタフェース情報記憶制御ステップと、インタフェース情報記憶制御ステップの処理で記憶が制御されたインタフェース情報に基づいて、インタフェースを介した通信経路を設定する通信経路設定ステップと、アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報の記憶を制御する接続情報記憶制御ステップと、接続情報記憶制御ステップの処理で記憶が制御された接続情報に基づいて、アプリケーションプログラム毎にインタフェースと、ネットワーク接続装置のMACドライバとの接続を切り替える切替ステップと、切替ステップの処理でアプリケーションプログラム毎にインタフェースとの接続が切り替えられたネットワーク接続装置のMACドライバを介した情報の通信を制御する通信制御ステップとをコンピュータに実行させることを特徴とする。
【００５１】
本発明の送信装置および方法、並びにプログラムにおいては、複数のネットワーク接続装置毎のインタフェースの情報が記憶され、記憶されたインタフェース情報に基づいて、インタフェースを介した通信経路が設定され、アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報が記憶され、記憶された接続情報に基づいて、アプリケーションプログラム毎にインタフェースと、ネットワーク接続装置のMACドライバとの接続が切り替えられ、アプリケーションプログラム毎にインタフェースとの接続が切り替えられたネットワーク接続装置のMACドライバを介して情報が送信される。
【００５２】
本発明の受信装置および方法、並びにプログラムにおいては、複数のネットワーク接続装置毎のインタフェースの情報が記憶され、記憶されたインタフェース情報に基づいて、インタフェースを介した通信経路が設定され、アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報が記憶され、記憶された接続情報に基づいて、アプリケーションプログラム毎にインタフェースと、ネットワーク接続装置のMACドライバとの接続が切り替えられ、アプリケーションプログラム毎にインタフェースとの接続が切り替えられたネットワーク接続装置のMACドライバを介して情報が受信される。
【００５３】
本発明の通信装置および方法、並びにプログラムにおいては、複数のネットワーク接続装置毎のインタフェースの情報が記憶され、記憶されたインタフェース情報に基づいて、インタフェースを介した通信経路が設定され、アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報が記憶され、記憶された接続情報に基づいて、アプリケーションプログラム毎にインタフェースと、ネットワーク接続装置のMACドライバとの接続が切り替えられ、アプリケーションプログラム毎にインタフェースとの接続が切り替えられたネットワーク接続装置のMACドライバを介して情報が通信される。
【００５４】
本発明の送信装置、受信装置、または、通信装置は、それぞれ独立した装置であっても良いし、送信処理、受信処理、または、通信処理を行うブロックであっても良い。
【発明の効果】
【００５５】
本発明によれば、複数のネットワーク接続装置を動的に切り替えてネットワークを介して通信することが可能となる。
【発明を実施するための最良の形態】
【００５６】
以下に本発明の実施の形態を説明するが、本明細書に記載の発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が本明細書に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
【００５７】
さらに、この記載は、本明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、本明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現、追加される発明の存在を否定するものではない。
【００５８】
即ち、本発明の送信装置は、複数のネットワーク接続装置（例えば、図６のNIC４２−１，４２−２）毎のインタフェースの情報を記憶するインタフェース情報記憶手段（例えば、図６のルーティングテーブル１０４ａ）と、インタフェース情報記憶手段により記憶されたインタフェースの情報に基づいて、インタフェースに通信経路を設定する通信経路設定手段（例えば、図６のルーティングテーブル管理部１０４）と、アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶する接続情報記憶手段（例えば、図６の要求情報記憶部１１１）と、接続情報記憶手段に記憶された接続情報に基づいて、アプリケーションプログラム毎にインタフェースと、ネットワーク接続装置のMACドライバとの接続を切り替える切替手段（例えば、図６のドライバラッパ１０７）と、切替手段によりアプリケーションプログラム毎にインタフェースとの接続が切り替えられたネットワーク接続装置のMACドライバを介して情報を送信する送信手段（例えば、図６のMACドライバ１０８，１０９）とを備えることを特徴とする。
【００５９】
また、本発明の送信方法は、複数のネットワーク接続装置毎のインタフェースの情報を記憶するインタフェース情報記憶ステップ（例えば、図８のフローチャートのステップＳ２の処理）と、インタフェース情報記憶ステップの処理で記憶されたインタフェース情報に基づいて、インタフェースに通信経路を設定する通信経路設定ステップ（例えば、図１１のフローチャートのステップＳ２３の処理）と、アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶する接続情報記憶ステップ（例えば、図９のフローチャートのステップＳ１４の処理）と、接続情報記憶ステップの処理で記憶された接続情報に基づいて、アプリケーションプログラム毎にインタフェースと、ネットワーク接続装置との接続を切り替える切替ステップ（例えば、図１１のフローチャートのステップＳ２８の処理）と、切替ステップの処理でアプリケーションプログラム毎にインタフェースとの接続が切り替えられたネットワーク接続装置を介して情報を送信する送信ステップ（例えば、図１１のフローチャートのステップＳ３０の処理）とを含むことを特徴とする。
【００６０】
さらに、本発明の受信装置は、複数のネットワーク接続装置（例えば、図６のNIC４２−１，４２−２）毎のインタフェースの情報を記憶するインタフェース情報記憶手段（例えば、図６のルーティングテーブル１０４ａ）と、インタフェース情報記憶手段により記憶されたインタフェース情報に基づいて、インタフェースに通信経路を設定する通信経路設定手段（例えば、図６のルーティングテーブル管理部１０４）と、アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶する接続情報記憶手段（例えば、図６の要求情報記憶部１１１）と、接続情報記憶手段に記憶された接続情報に基づいて、アプリケーションプログラム毎にインタフェースと、ネットワーク接続装置との接続を切り替える切替手段（例えば、図６のドライバラッパ１０７）と、切替手段によりアプリケーションプログラム毎にインタフェースとの接続が切り替えられたネットワーク接続装置を介して情報を受信する受信手段（例えば、図６のMACドライバ１０８，１０９）とを備えることを特徴とする。
【００６１】
本発明の受信方法は、複数のネットワーク接続装置毎のインタフェースの情報を記憶するインタフェース情報記憶ステップ（例えば、図８のフローチャートのステップＳ２の処理）と、インタフェース情報記憶ステップの処理で記憶されたインタフェース情報に基づいて、インタフェースに通信経路を設定する通信経路設定ステップ（例えば、図１４のフローチャートのステップＳ４２の処理）と、アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶する接続情報記憶ステップ（例えば、図９のフローチャートのステップＳ１４の処理）と、接続情報記憶ステップの処理で記憶された接続情報に基づいて、アプリケーションプログラム毎にインタフェースと、ネットワーク接続装置との接続を切り替える切替ステップ（例えば、図１４のフローチャートのステップＳ４７の処理）と、切替ステップの処理でアプリケーションプログラム毎にインタフェースとの接続が切り替えられたネットワーク接続装置を介して情報を受信する受信ステップ（例えば、図１１のフローチャートのステップＳ２９の処理）とを含むことを特徴とする。
【００６２】
本発明の通信装置は、複数のネットワーク接続装置（例えば、図６のNIC４２−１，４２−２）毎のインタフェースの情報を記憶するインタフェース情報記憶手段（例えば、図６のルーティングテーブル１０４ａ）と、インタフェース情報記憶手段により記憶されたインタフェース情報に基づいて、インタフェースに通信経路を設定する通信経路設定手段（例えば、図６のルーティングテーブル管理部１０４）と、アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶する接続情報記憶手段（例えば、図６の要求情報記憶部１１１）と、接続情報記憶手段に記憶された接続情報に基づいて、アプリケーションプログラム毎にインタフェースと、ネットワーク接続装置との接続を切り替える切替手段（例えば、図６のドライバラッパ１０７）と、切替手段によりアプリケーションプログラム毎にインタフェースとの接続が切り替えられたネットワーク接続装置を介して情報を通信する通信手段（例えば、図６のMACドライバ１０８，１０９）とを備えることを特徴とする。
【００６３】
本発明の通信方法は、複数のネットワーク接続装置毎のインタフェースの情報を記憶するインタフェース情報記憶ステップ（例えば、図８のフローチャートのステップＳ２の処理）と、インタフェース情報記憶ステップの処理で記憶されたインタフェース情報に基づいて、インタフェースを通信経路に設定する通信経路設定ステップ（例えば、図１１のフローチャートのステップＳ２２の処理、または、図１４のフローチャートのステップＳ４２の処理）と、アプリケーションプログラム毎に使用するネットワーク接続装置の接続情報を記憶する接続情報記憶ステップ（例えば、図９のフローチャートのステップＳ１４の処理）と、接続情報記憶ステップの処理で記憶された接続情報に基づいて、アプリケーションプログラム毎にインタフェースと、ネットワーク接続装置との接続を切り替える切替ステップ（例えば、図１１のフローチャートのステップＳ２８の処理、または、図１４のフローチャートのステップＳ４７の処理）と、切替ステップの処理でアプリケーションプログラム毎にインタフェースとの接続が切り替えられたネットワーク接続装置を介して情報を通信する通信ステップ（例えば、図１１のフローチャートのステップＳ３０の処理、または、図１４のフローチャートのステップＳ４９の処理）とを含むことを特徴とする。
【００６４】
図１は、本発明を適用したPC４１を用いた通信システムの一実施の形態の構成を示す図である。
【００６５】
PC（パーソナルコンピュータ）４１は、複数のカードスロットを備えており、図１においては、NIC（Network Interface Card）４２−１，４２−２が装着されている。このNIC４２−１，４２−２は、それぞれゲートウェイ４４，４６に接続されており、それぞれネットワーク４５，４７を介してPC４３と通信することができる。以下においては、PC４１は、NIC４２−１、ゲートウェイ４４、および、ネットワーク４５を介して、PC４３とVoIP（Voice over IP）によるインターネット電話による通信を行うと共に、NIC４２−２、ゲートウェイ４６、および、ネットワーク４７を介して、PC４３とftp（File Transfer Protocol）データ伝送による通信を行う。尚、もちろんそれぞれの通信経路においても、インターネット電話の通信、および、ftpデータ伝送の通信処理を実行することは可能である。
【００６６】
NIC４２−１，４２−２は、何れもイーサネット（登録商標）（IEEE 802.3）による通信を行うインタフェースカードであり、それぞれIP（Internet Protocol）アドレスとして「172.16.1.1」および「192.168.1.1」が設定されている。また、ゲートウェイ４４，４６は、IPアドレスとして「172.16.1.254」および「192.168.1.254」が設定されている。また、PC４３は、IPアドレスとして「10.1.1.1」が設定されている。尚、NIC４２−１，４２−２は、イーサネット（登録商標）対応のものに限らず、その他のLANを構成するものであってもよく、例えば、FDDI（Fiber-Distributed Data Interface）、Token Ring（IEEE 802.5）などに対応するものであってもよいし、有線LANに限らず、無線LANなどであってもよいことは言うまでもない。
【００６７】
次に、図５を参照して、PC４１の構成を説明する。
【００６８】
CPU（Central Processing Unit）５１は、ROM（Read Only Memory）５２、または記憶部５８に記憶されているプログラムに従って各種の処理を実行する。RAM（Random Access Memory）５３には、CPU５１が実行するプログラムやデータなどが適宜記憶される。これらのCPU５１、ROM５２、およびRAM５３は、バス５４により相互に接続されている。
【００６９】
CPU５１にはまた、バス５４を介して入出力インタフェース５５が接続されている。入出力インタフェース５５には、キーボード、マウス、マイクロフォンなどよりなる入力部５６、ディスプレイ、スピーカなどよりなる出力部５７が接続されている。CPU５１は、入力部５６から入力される指令に対応して各種の処理を実行する。そして、CPU５１は、処理の結果得られた画像や音声等を出力部５７に出力する。
【００７０】
入出力インタフェース５５に接続されている記憶部５８は、例えばハードディスクなどで構成され、CPU５１が実行するプログラムや各種のデータを記憶する。通信部５９は、例えば、図示せぬインターネット、その他のネットワークを介して外部の装置と通信する。
【００７１】
カードスロット６０は、所定のインタフェースカードを接続することが可能であり、接続されたインタフェースカードの機能をさらに備えることができる。図５においては、NIC４２−１，４２−２が接続されており、上述したように、NIC４２−１，４２−２のそれぞれに接続されたゲートウェイ４４，４６に接続されている。尚、以下において、NIC４２−１，４２−２を特に区別する必要がない場合、単に、NIC４２と称するものとし、その他の構成についても同様とする。
【００７２】
また、記憶部５８は、図６以降において後述するインターネット電話アプリケーションプログラム１０１、ftpデータ転送アプリケーションプログラム１０２、TCP/UDPソケットライブラリ１０３、ルーティングテーブル管理部１０４（ルーティングテーブル１０４ａ含む）、インタフェース１０５，１０６、ドラバラッパ１０７、MACドライバ１０８，１０９、通信状態検出部１１０、および、要求情報管理部１１１をソフトウェアプログラム（ドライバなどを含む）、または、それらのソフトウェアプログラムが所定の処理を実行する際に必要とするデータとして記憶している。尚、以上のソフトウェアプログラムの動作については、図６以降を参照して後述する。
【００７３】
また、記憶部５８に記憶されるプログラムは、上述のほかにも、通信部５９、または、カードスロット６０に装着されているNIC４２−１または４２−２を介してプログラムを取得し、記憶部５８に記憶してもよい。
【００７４】
入出力インタフェース５５に接続されているドライブ７０は、磁気ディスク８１、光ディスク８２、光磁気ディスク８３、或いは半導体メモリ８４などが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部５８に転送され、記憶される。
【００７５】
尚、図４のPC４３については、カードスロット６０が設けられておらず、通信部５９でインターネット電話、および、ftpデータ通信を行っている点が異なるが、基本的にPC４１と同様の構成であるので、その説明は省略する。
【００７６】
次に、図６を参照して、図５のPC４１により実現される機能について説明する。
【００７７】
インターネット電話アプリケーションプログラム１０１は、図１で示されるNIC４２−１、ゲートウェイ４４、および、ネットワーク４５を介してPC４３とインターネット電話による通信処理を実行し、マイクロフォンなどからなる入力部５６より入力される音声データを所定の形式に変換してPC４３に送出すると共に、PC４３より送信されてくる音声データを受信して、スピーカなどからなる出力部５７に出力して、音声として出力させ、PC４１，４３のそれぞれのユーザ間の通話を可能にする。より詳細には、インターネット電話アプリケーションプログラム１０１は、TCP/UDPソケットライブラリ１０３に対して、通信先となるPC４３のIPアドレスを供給し、インターネット電話の通信経路を初期化して設定するように求め、設定された経路を用いて、音声データの授受を行い、PC４３のユーザとの通話を可能にする。
【００７８】
ftpデータ伝送アプリケーションプログラム１０２は、NIC４２−２、ゲートウェイ４６、および、ネットワーク４７を介してPC４３とのデータ通信処理を実行し、記憶部５８に記憶されている所定のデータをftpでPC４３に送出すると共に、PC４３よりftpで送信されてくるデータを受信する。より詳細には、ftpデータ伝送アプリケーションプログラム１０２は、通信先となるPC４３のIPアドレスを供給し、TCP/UDPソケットライブラリ１０３に対して、ftpデータ伝送処理を行うための通信経路を初期化して設定するように求め、設定された経路を用いて、ftpによるデータの授受を行い、PC４３とのftpデータ伝送を可能にする。
【００７９】
インターネット電話アプリケーションプログラム１０１、および、ftpデータ伝送アプリケーションプログラム１０２は、それぞれOSI（Open Systems Interconnection）参照モデルの通信機能階層でいうところのアプリケーション層に相当する。また、アプリケーションプログラムは、上述したインターネット電話アプリケーションプログラム１０１、および、ftpデータ伝送アプリケーションプログラム１０２に限るものではなく、その他のアプリケーションプログラムであってもよい。
【００８０】
TCP/UDP（Transmission Control Protocol/User Datagram Protocol）ソケットライブラリ１０３は、インターネット電話アプリケーションプログラム１０１、または、ftpデータ伝送アプリケーションプログラム１０２からの通信の要求を受けるとルーティングテーブル管理部１０４に問い合わせて、予め設定されたルーティングテーブル１０４ａのルーティングに基づいて、NIC４２−１，４２−２に対応するインタフェース１０５，１０６を選択して通信できる状態に設定する。また、TCP/UDPソケットライブラリ１０３は、アプリケーションプログラムに応じてポートが予め設定されており（どのアプリケーションプログラムに対してどのポートを使用するかがポート番号により設定されている）、信号が供給されたポート番号からアプリケーションプログラムを認識して（例えば、ポート番号２０番，２１番は一般にftpデータ伝送ように設定されている）、ルーティングテーブル管理部１０４のルーティングテーブル１０４ａに基づいてインタフェース１０５，１０６を介してドライバラッパ１０７に供給する。尚、TCP/UDPソケットライブラリ１０３は、OS上で実行されるプログラムであって、同ようにOSで管理されるルーティングテーブル管理部１０４により管理されているルーティングテーブル１０４ａの情報に基づいて、インタフェース１０５，１０６の何れかに対して通信状態を確保できるように設定する。
【００８１】
TCP/UDPソケットライブラリ１０３は、それぞれOSI参照モデルの通信機能階層でいうところのトランスポート層に相当する。
【００８２】
ルーティングテーブル管理部１０４は、実際には、OS上で管理されるルーティングテーブル１０４ａを管理するプログラムであって、OSそのものであってもよいものである。
【００８３】
インタフェース１０５，１０６は、それぞれNIC４２−１，４２−２に対応して設定されたIPアドレスにより設定されたインタフェースであって、ドライバラッパ１０７によりMACドライバ１０８または１０９のいずれかを介してNIC４２−１または４２−２よりインターネット電話の音声データ、または、ftpデータの通信を可能にする。
【００８４】
インタフェース１０５，１０６は、それぞれOSI参照モデルの通信機能階層でいうところのネットワーク層（IPレイヤ）に相当する。
【００８５】
ドライバラッパ１０７は、要求情報管理部１１１に記憶されたユーザの接続に関する要求情報に基づいて、インタフェース１０５，１０６と、MACドライバ１０８，１０９とを接続し、NIC４２−１，４２−２による通信を可能にする。また、ドライバラッパ１０７は、要求情報の要求により通信状態検出部１１０により検出される通信状態の情報に基づいて、インタフェース１０５，１０６と、MACドライバ１０８，１０９とを接続する事も可能である。
【００８６】
さらに、通常の接続と異なる場合、すなわち、インタフェース１０５とMACドライバ１０９を接続したり、または、インタフェース１０６とMACドライバ１０８を接続したような場合、通信に際して、パケットのヘッダに記録される、送信元を示すアドレスをMACドライバに対応するインタフェースのIPアドレスに書き換えてデータを通信させる。すなわち、インタフェース１０５とMACドライバ１０９を接続したNIC４２−２より送信されるパケットのパケットヘッダの送信元を示すIPアドレスは、通信にNIC４２−２に対応するインタフェース１０６に対応するIPアドレスに書き換えられる。また、インタフェース１０６とMACドライバ１０８を接続したNIC４２−１より送信されるパケットのパケットヘッダの送信元を示すIPアドレスは、通信にNIC４２−１に対応するインタフェース１０５に対応するIPアドレスに書き換えられる。すなわち、常に、最終的にパケット単位でデータを送信するNIC４２に対応するインタフェース１０５，１０６のIPアドレスが使用される。
【００８７】
要求情報管理部１１１は、要求情報をユーザに設定させるアプリケーションプログラムであり、要求情報を入力させる処理を実行した後、その際入力された要求情報を記憶する。要求情報は、それぞれのアプリケーションプログラムにより実行される処理に応じて通信に利用されるNICの種類を設定するものであり、例えば、インターネット電話アプリケーションプログラム１０１の通信においては、NIC４２−１を利用し、ftpデータ伝送アプリケーションプログラム１０２においては、NIC４２−２を用いるようにすると言ったものである。より具体的には、インターネット電話アプリケーションプログラム１０１の通信においては、PHS（Personal Handy-Phone System）に対応したNICを利用し、ftpデータ伝送アプリケーションプログラムにおいては、IEEE802.11bに対応したNICを用いるようにするといった設定とするようにしてもよい。また、要求情報においては、自動という設定も可能であり、このような場合、通信状態検出部１１０により検出される通信状態に応じて、通信経路を設定する。例えば、通信状態検出部１１０が通信レートに基づいて通信状態を監視するような場合、ドライバラッパ１０７は、NIC４２−１，４２−２のそれぞれの通信状態に応じて、通信状態が良好なNICを選択して接続するように設定する。
【００８８】
通信状態検出部１１０は、NIC４２−１，４２−２のそれぞれについて通信レートを検出し、通信状態を検出し、ドライバラッパ１０７に供給する。尚、通信状態検出部１１０は、ソフトウェアにより通信レートを検出する構成とするのみならず、例えば、ハードウェアにより構成し、電界強度などを検出するようにすることで、通信状態を検出するようにしてもよい。
【００８９】
MAC（Media Access Control）ドライバ１０８，１０９は、それぞれNIC４２−１，４２−２に対応するドライバであり、実際にドライバラッパ１０７により接続されたインタフェースを経由して通信経路を形成し、実際にNIC４２−１，４２−２を介してデータの通信を行う。
【００９０】
MACドライバ１０８，１０９は、それぞれOSI参照モデルの通信機能階層でいうところの物理層（MAC層）に相当する。
【００９１】
次に、図７のフローチャートを参照して、ルーティングテーブル生成処理について説明する。尚、この処理は、OS上に存在するルーティングテーブル管理部１０４により実行され、OSにより管理されるルーティングテーブル１０４ａを生成するものである。
【００９２】
ステップＳ１において、ルーティングテーブル管理部１０４は、入力部５６に問い合わせて、ユーザよりルーティングテーブルの情報が入力されたか否かを判定し、ルーティングテーブルの情報が入力されてくるまで、その処理を繰り返す。そして、ステップＳ１において、何らかのルーティングテーブルの情報が入力されたと判定された場合、ステップＳ２において、ルーティングテーブル管理部１０４は、入力されたルーティングテーブルの情報を記憶して、ルーティングテーブル１０４ａに記憶させる。ここで、ルーティングテーブルの情報は、Network Destination、Netmask、Gateway、InterfaceのそれぞれのIPアドレス、および、Metricである。
【００９３】
ステップＳ３において、ルーティングテーブル管理部１０４は、ルーティングテーブルの設定処理の終了が指示されたか否かを判定し、終了が指示されていないと判定した場合、その処理は、ステップＳ１に戻り、それ以降の処理が繰り返される。ステップＳ３において、終了が指示されたと判定された場合、その処理は終了する。尚、以上においては、ルーティングテーブルの情報が入力された場合に新たに追記する状態について説明したが、言うまでもなく、入力の代わりに更新（書き換え）や削除なども同様にすることができる。
【００９４】
すなわち、この処理により、OSで管理されるルーティングテーブル１０４ａが設定されることになる。このルーティングテーブル１０４ａに関する情報が、図７のフローチャートを参照して説明したように生成されると（または、書き換えられると）、OSは、以降の処理を書き換えられたルーティングテーブル１０４ａに基づいて実行するため、再起動などを実行し、起動時にOS上のプログラムで、そのルーティングテーブル１０４ａに対応した設定がなされる。すなわち、ルーティングテーブル１０４ａの設定内容を書き換える処理を行っても、リアルタイムで変更されたルーティングテーブル１０４ａの内容を反映させることは事実不可能である。
【００９５】
尚、図７のフローチャートを参照して説明した処理により、例えば、図８で示されるようなルーティングテーブル１０４ａが設定されたものとして、以下の説明を進める。
【００９６】
ここで、図８のルーティングテーブル１０４ａの設定内容は、図中左側にルーティング情報の番号として１乃至７が示されている。また、その右側には、Network Destinationが示されており、番号１から順に、「0.0.0.0」、「0.0.0.0」、「172.16.1.0」、「172.255. 255. 255」、「192.168.1.0」、「192.168.1.255」、および、「255.255.255.255」とアドレスが示されている。さらに右側には、Netmaskが示されており、番号１から順に、「0.0.0.0」、「0.0.0.0」、「255.255. 255. 0」、「255.255. 255. 255」、「255.255. 255. 0」、「255.255. 255. 255」、および「255.255. 255. 255」とアドレスが示されている。また、Netmaskの右側には、ゲートウェイ（Gateway）が示されており番号１から順に「172.16.1.254」、「192.168.1.254」、「172.16.1.1」、「172.16.1.1」、「192.168.1.1」、「192.168.1.1」、および「172.16.1.1」とアドレスが示されている。さらに、右側には、インタフェース（Interface）が示されており、「172.16.1.1」、「172.16.1.1」、「172.16.1.1」、「172.16.1.1」、「192.168.1.1」、「192.168.1.1」、および「172.16.1.1」とアドレスが示されている。最も右側には、Metricとして個数が示されており、図８においては、全て１として示されている。
【００９７】
すなわち、ルーティングテーブル１０４ａの番号１のルーティングテーブルの情報は、Network Destinationが「0.0.0.0」、Netmaskが「0.0.0.0」、ゲートウェイが「172.16.1.254」、インタフェースが「172.16.1.1」、Metricが１であることが示されている。同ように、番号２のルーティングテーブルの情報は、Network Destinationが「0.0.0.0」、Netmaskが「0.0.0.0」、ゲートウェイが「192.16.1.254」、インタフェースが「172.16.1.1」、Metricが１であることが示されている。番号３のルーティングテーブルの情報は、Network Destinationが「172.16.1.0」、Netmaskが「255.255.255.0」、ゲートウェイが「172.16.1.1」、インタフェースが「172.16.1.1」、Metricが１であることが示されている。番号４のルーティングテーブルの情報は、Network Destinationが「172.255.255.255」、Netmaskが「255.255.255.255」、ゲートウェイが「172.16.1.1」、インタフェースが「172.16.1.1」、Metricが１であることが示されている。番号５のルーティングテーブルの情報は、Network Destinationが「192.168.1.0」、Netmaskが「255.255.255.0」、ゲートウェイが「192.16.1.1」、インタフェースが「192.16.1.1」、Metricが１であることが示されている。番号６のルーティングテーブルの情報は、Network Destinationが「192.168.1.255」、Netmaskが「255.255.255.255」、ゲートウェイが「192.16.1.1」、インタフェースが「192.16.1.1」、Metricが１であることが示されている。番号７のルーティングテーブルの情報は、Network Destinationが「255.255.255.255」、Netmaskが「255.255.255.255」、ゲートウェイが「172.16.1.1」、インタフェースが「172.16.1.1」、Metricが１であることが示されている。
【００９８】
次に、図９のフローチャートを参照して、要求情報管理部１１１による要求情報入力処理について説明する。
【００９９】
ステップＳ１１において、要求情報管理部１１１は、要求情報の入力が指示されたか否かを判定し、要求情報の入力が要求されるまでその処理を繰り返す。例えば、ステップＳ１１において、要求情報の入力が指示されたと判定された場合、ステップＳ１２において、要求情報管理部１１１は、要求情報を入力する入力画面を表示する。例えば、要求情報の入力画面は、図１０で示されるような入力画面である。
【０１００】
図１０においては、最上部に「MACドライバラッパ設定」と表示されており、右側の下に「利用中のプロトコル」と表示され、上から「VoIP（インターネット電話）」、および、「ftp」と表示されており、それぞれインターネット電話アプリケーションプログラム１０１のプロトコルと、ftpデータ伝送アプリケーションプログラム１０２のプロトコルとが示されている。さらに、それぞれのプロトコルに対して、「NIC４２−１を使う」、「NIC４２−２を使う」、および、「自動」と表示されており、各項目に対して、プロトコル毎にそれぞれマーク欄１２１乃至１２６が設けられており、それぞれ設定したい内容のマーク欄を選択すると丸印が表示される（マークされる）。マーク欄１２１，１２４が選択されると、「NIC４２−１を使う」設定され、NIC４２−１が通信に使用されるように設定され、マーク欄１２２，１２５が選択されると、「NIC４２−２を使う」が設定され、NIC４２−２が通信に使用されるように設定される。また、「自動」が設定されると、通信状態検出部１１０の通信状態に応じて、通信状態が良好なNIC４２−１または４２−２が通信に使用される。
【０１０１】
図１０の場合、VoIPに対しては、マーク欄１２１が選択されており、インターネット電話アプリケーションプログラム１０１に対してはNIC４２−１を使うことがユーザにより設定されていることが示されている。同ようにして、ftpデータ伝送アプリケーションプログラム１０２に対しては、マーク欄１２１が選択されており、VoIPに対してはNIC４２−１を使うことがユーザにより設定されていることが示されている。要求情報管理部１１１は、デフォルトで各プロトコル毎にいずれかのマーク欄が選択されるた状態で要求情報を管理している。
【０１０２】
「OK」と表示されたボタン１２７は、要求情報の入力処理が終了されるとき、押下されるボタンである。
【０１０３】
ステップＳ１２において、要求情報管理部１１１は、入力部５６に問い合わせて、要求情報の入力操作がなされたか否かを判定し、入力操作がなされていると判定した場合、ステップＳ１４において、入力操作に応じて入力画面の表示を切り替えて、同時に、入力操作に応じた要求情報を設定し、記憶する。
【０１０４】
ステップＳ１５において、要求情報管理部１１１は、入力部５６に問い合わせて要求情報の入力処理の終了が指示されたか否かを判定し、終了が指示されていないと判定した場合、その処理は、ステップＳ１３の処理に戻る。すなわち、要求情報の入力処理の終了が指示されるまでステップＳ１３乃至Ｓ１５の処理が繰り返される。また、例えば、ボタン１２７が押下されて、終了が指示されたと判定された場合、その処理は、ステップＳ１１に戻り、それ以降の処理を繰り返す。
【０１０５】
ステップＳ１３において、入力操作がなされていないと判定された場合、ステップＳ１４の処理がスキップされる。すなわち、入力画面として表示している状態で、要求情報を保持し、記憶する。
【０１０６】
要求情報管理部１１１で管理する要求情報は、ルーティングテーブル１０４ａのようにOSで直接管理されていないので、図９のフローチャートの処理は、いつでも実行し、要求情報の変更については、再起動などの処理を必要とすることなく、リアルタイムで要求情報の変更を反映させることが可能である。
【０１０７】
次に、以上の処理により設定されたルーティングテーブル１０４ａと要求情報に基づいた送信処理について説明する。
【０１０８】
ステップＳ２１において、TCP/UDPソケットライブラリ１０３は、通信の要求があったか否かを判定する。すなわち、インターネット電話アプリケーションプログラム１０１、または、ftpデータ伝送アプリケーションプログラム１０２のいずれかから通信が要求されたか否かを判定し、要求されたと判定されるまで、その処理を繰り返す。
【０１０９】
ステップＳ２１において、いずれかのアプリケーションプログラムより通信が要求されたと判定された場合、ステップＳ２２において、通信の要求があったポート番号を確認する。このポート番号の確認により、通信を要求したアプリケーションプログラムが認識される。
【０１１０】
ステップＳ２３において、TCP/UDPソケットライブラリ１０３は、ルーティングテーブル管理部１０４に問い合わせて、アプリケーションプログラムより通信が要求された送信相手のIPアドレスをルーティングテーブル１０４ａに照会して、対応するインタフェース１０５または１０６に接続する。
【０１１１】
例えば、図１２で示されるように、インターネット電話アプリケーションプログラム１０１より、IPアドレスが「10.1.1.1」のPC４３に対して通信が要求された場合、TCP/UDPソケットライブラリ１０３は、Network DestinationとNetmaskの関係から最も近いルーティングテーブルを選択する。今の場合、「10.1.1.1」に、番号１，２のいずれかが近いルーティングとして選択されることになるが、このように複数のルーティングが選択される場合、番号が上位となるルーティングが選択されることになる。従って、今の場合、番号１のルーティングが選択されることになる。そこで、TCP/UDPソケットライブラリ１０３は、IPアドレスが「172.16.1.1」のインタフェース１０５に対して通信経路を設定する。この処理により、インターネット電話アプリケーションプログラム１０１において授受される通信データがインタフェース１０５を介してドライバラッパ１０７に供給される。尚、図１２においては、通信状態検出部１１０と要求情報管理部１１１からの矢印を除く、実線の矢印は、設定された通信経路を示している。
【０１１２】
ステップＳ２４においてドライバラッパ１０７は、要求情報管理部１１１に問い合わせて要求情報を読み出し、ステップＳ２５において、ポート番号から認識されるアプリケーションプログラムのプロトコルにおける通信の設定が「自動」にされているか否かを判定する。
【０１１３】
例えば、図１０において、マーク欄１２３にマークが設定された場合、自動が選択されていると判定され、その処理は、ステップＳ２６に進む。
【０１１４】
ステップＳ２６において、ドライバラッパ１０７は、通信状態検出部１１０に問い合わせて通信状態を検出させ、通信状態の情報を取得する。
【０１１５】
ステップＳ２７において、ドライバラッパ１０７は、経路の変更が必要であるか否かを判定する。すなわち、IPアドレスが「172.16.1.1」のインタフェース１０５は、通常NIC４２−１のMACドライバ１０８に対して通信の経路が設定されるが、自動が設定されている場合、通信状態検出部１１０により検出された通信状態に対応してNIC４２−２に接続を切り替える。例えば、NIC４２−１の通信状態がNIC４２−２の通信状態よりも良好である場合、ステップＳ３１において、MACドライバ１０８がドライバラッパ１０７を介して供給されるパケット化されたデータを、図１２で示されるように、標準のMACドライバ１０８に対して出力する。このときパケット化されているデータのパケットヘッダには、送信元となるインタフェースのIPアドレスが記録されている。
【０１１６】
ステップＳ３０において、NIC４２−１が、インターネット電話アプリケーションプログラム１０１の通信に係るデータを送信する。
【０１１７】
一方、ステップＳ２５において、例えば、図１０で示されるようにインターネット電話においては、マーク欄１２１がマークされて「NIC４２−１を使用する」が選択されている、すなわち、「自動」は選択されていないので、自動ではないと判定され、ステップＳ２６の処理がスキップされて、その処理は、ステップＳ２７に進む。
【０１１８】
図１０の場合、マーク欄１２１がマークされて「NIC４２−１を使用する」が選択されているので、ステップＳ２７において、標準となるNIC４２−１が使用されることになるので、経路の変更は必要ないと判定され、その処理は、ステップＳ３１に進む。
【０１１９】
ステップＳ２７において、例えば、図１０のマーク欄１２３がマークされ、「自動」が選択されて、かつ、通信状態がNIC４２−２の方が良好である場合、または、マーク欄１２２が選択されて、NIC４２−２の使用が要求されている場合、ステップＳ２８において、ドライバラッパ１０７は、インターネット電話アプリケーションプログラム１０１より供給されるパケット化されたデータのパケットヘッダの送信元を示すIPアドレスをインタフェース１０５のIPアドレスである「172.16.1.1」から、NIC４２−２の標準となるインタフェース１０６の「192.168.1.1」に書き換える。
【０１２０】
ステップＳ２９において、ドライバラッパ１０７は、パケット化されているデータをMACドライバ１０９に出力する。そして、ステップＳ３０において、NIC４２−２よりインターネット電話アプリケーションプログラム１０１からのデータがPC４３に送信される。
【０１２１】
また、例えば、ftpデータ伝送アプリケーションプログラム１０２からのftpデータ伝送を実行する場合、図１０で示されるように要求情報が設定されているとき、通信相手として、選択されるPC４３のIPアドレスは、上述と同ように、「10.1.1.1」であるので、図８で示されるルーティングテーブル１０４ａの設定に従うと、図１３で示されるように、やはり、インタフェース１０５が選択されることになる（尚、図１３においては、通信状態検出部１１０と要求情報管理部１１１からの矢印を除く、実線の矢印は、設定された通信経路を示している。）。しかしながら、要求情報管理部１１１に記憶されている要求情報の設定に基づいて、ドライバラッパ１０７が通信経路を切り替えて（ステップＳ２７において、経路の変更が必要であると判定される）、NIC４２−２よりftpデータ伝送アプリケーションプログラム１０２によるftpデータ伝送が実現される。
【０１２２】
すなわち、上述したように、これまでは、OSで管理されていたルーティングテーブル１０４ａに基づいて経路が設定されることにより、複数のNIC４２が存在しても、一定のルーティングしか選択されないので、事実上１個のNIC４２にしかこれまでは通信に使用することができなかった（動的に通信に使用するNIC４２を切り替えることができなかった）が、ドライバラッパ１０７を設けることにより、ユーザの要求情報に基づいて、経路を変更させることが可能となるため、例えば、経路の設定を変更する度に再起動する必要が無くなるので、リアルタイムで通信経路を変更させることが可能になると共に、さらに、通信状態に応じて動的に通信経路を変更させるようにすることも可能となる。
【０１２３】
従って、今の例においては、NIC４２−１，４２−２は、いずれもイーサネット（登録商標）対応の同様の仕様のものが用いられる例について説明してきたが、NIC４２−１を低速だが遠距離でも通信が可能なIEEE802.11aに準拠したものとし、NIC４２−２を高速通信が可能なIEEE802.11bに準拠したものとすることにより、インターネット電話アプリケーションプログラム１０１の場合、NIC４２−１を、ftpデータ伝送アプリケーションプログラム１０２の場合、NIC４２−２を、それぞれ選択することによって、それぞれの特性に対応したNICに切り替えて送信することが可能となる。
【０１２４】
次に、以上の処理により設定されたルーティングテーブル１０４ａと要求情報に基づいた受信処理について説明する。
【０１２５】
ステップＳ４１において、ドライバラッパ１０７は、MACドライバ１０８，１０９のいずれからデータ入力されたか否か（PC４３より送信されてきたデータがNIC４２−１，４２−２のいずれを介して受信されたか否か）を判定する。すなわち、インターネット電話アプリケーションプログラム１０１、または、ftpデータ伝送プログラム１０２のいずれかのデータが入力されたと判定されるまで、その処理を繰り返す。
【０１２６】
ステップＳ４１において、いずれかのMACドライバ１０８，１０９よりデータが入力されたと判定された場合、ドライバラッパ１０７は、ステップＳ４２において、データの入力があった通信経路のポート番号を確認する。
【０１２７】
ステップＳ４３においてドライバラッパ１０７は、要求情報管理部１１１に問い合わせて要求情報を読み出し、ステップＳ４４において、ポート番号から認識されるアプリケーションプログラムのプロトコルにおける通信の設定が「自動」にされているか否かを判定する。
【０１２８】
例えば、インターネット電話アプリケーションプログラム１０１のデータが受信された場合、図１０において、マーク欄１２３にマークが設定されているとき、「自動」が選択されていると判定され、その処理は、ステップＳ４５に進む。
【０１２９】
ステップＳ４５において、ドライバラッパ１０７は、通信状態検出部１１０に問い合わせて通信状態を検出させ、通信状態の情報を取得する。
【０１３０】
ステップＳ４６において、ドライバラッパ１０７は、経路の変更が必要であるか否かを判定する。すなわち、IPアドレスが「172.16.1.1」のインタフェース１０５は、通常NIC４２−１のMACドライバ１０８に対して通信の経路が設定されるが、自動が設定されている場合、通信状態検出部１１０により検出された通信状態に対応してNIC４２−２に接続を切り替える。例えば、NIC４２−１の通信状態がNIC４２−２の通信状態よりも良好である場合、経路の変更は不要であると判定され、ステップＳ５０において、MACドライバ１０８より供給される受信データをドライバラッパ１０７を介して、図１５で示されるように、標準のインタフェース１０５に対して出力する。
【０１３１】
ステップＳ４９において、インタフェース１０５が、インターネット電話アプリケーションプログラム１０１に、通信に係るデータを出力する。
【０１３２】
一方、ステップＳ４４において、例えば、図１０で示されるようにインターネット電話においては、マーク欄１２１がマークされて「NIC４２−１を使用する」が選択されている、すなわち、「自動」は選択されていないので、自動ではないと判定され、ステップＳ４５の処理がスキップされて、その処理は、ステップＳ４６に進む。
【０１３３】
図１０の場合、マーク欄１２１がマークされて「NIC４２−１を使用する」が選択されているので、ステップＳ４６において、標準となるNIC４２−１が使用されることになるので、経路の変更は必要ないと判定され、その処理は、ステップＳ５０に進む。
【０１３４】
ステップＳ４６において、例えば、図１０のマーク欄１２３がマークされ、「自動」が選択されて、かつ、通信状態がNIC４２−２の方が良好である場合、または、マーク欄１２２が選択されて、NIC４２−２の使用が要求されている場合、NIC４２−２によりPC４３のインターネット電話アプリケーションプログラムの通信データを受信していることになるので、ステップＳ４７において、ドライバラッパ１０７は、NIC４２−２のMACドライバ１０９より供給された、PC４３からのインターネット電話アプリケーションプログラム１０１のパケット化されたデータのパケットヘッダの受信元を示すIPアドレスをNIC４２−２の標準となるインタフェース１０６のIPアドレスである「192.168.1.1」から、インタフェース１０５の「172.16.1.1」に書き換える。
【０１３５】
ステップＳ４８において、ドライバラッパ１０７は、MACドライバ１０９からのパケット化されているデータをインタフェース１０５に出力する。そして、ステップＳ４９において、インタフェース１０５よりインターネット電話アプリケーションプログラム１０１にインターネット電話の音声データが出力される。
【０１３６】
また、例えば、ftpデータ伝送アプリケーションプログラム１０２に対するftpデータ伝送によるデータがNIC４２−２を介してMACドライバ１０９に受信された場合、図１０で示されるように要求情報が設定されているとき、通信相手として、選択されるPC４３のIPアドレスは、上述と同ように、「10.1.1.1」であるので、図８で示されるルーティングテーブル１０４ａの設定に従うと、図１６で示されるように、やはり、インタフェース１０５が選択されることになる。しかしながら、要求情報管理部１１１に記憶されている要求情報の設定に基づいて、ドライバラッパ１０７が通信経路を切り替えて（ステップＳ４６において、経路の変更が必要であると判定される）、MACドライバ１０９から供給されるftpデータ伝送アプリケーションプログラム１０２にPC４３より送信されてきたパケット化されたftpデータのパケットヘッダのIPアドレスを、受信されたNIC４２−２のインタフェース１０６のIPアドレスとは異なる、指定されたインタフェース１０５のIPアドレスに書き換えて、インタフェース１０５に供給するようにすることで、ftpデータ伝送を実現させることが可能となる。
【０１３７】
すなわち、上述したように、これまでは、OSで管理されていたルーティングテーブル１０４ａに基づいて経路が設定されることにより、複数のNIC４２が存在しても、一定のルーティングしか選択されないので、事実上１個のNIC４２にしかこれまでは通信に使用することができなかった（動的に通信に使用するNIC４２を切り替えることができなかった）が、ドライバラッパ１０７を設けることにより、ユーザの要求情報に基づいて、経路を変更させることが可能となるため、例えば、経路の設定を変更する度に再起動する必要が無くなるので、リアルタイムで通信経路を変更させることが可能になると共に、さらに、通信状態に応じて動的に通信経路を変更させてデータを受信することも可能となる。
【０１３８】
従って、今の例においても、NIC４２−１，４２−２は、いずれもイーサネット（登録商標）対応の同様の仕様のものが用いられる例について説明してきたが、NIC４２−１を低速だが遠距離でも通信が可能なIEEE802.11aに準拠したものとし、NIC４２−２を高速通信が可能なIEEE802.11bに準拠したものとすることにより、インターネット電話アプリケーションプログラム１０１の場合、NIC４２−１を、ftpデータ伝送アプリケーションプログラム１０２の場合、NIC４２−２を、それぞれ選択することによって、それぞれの特性に対応したNICに切り替えて受信することが可能となる。
【０１３９】
上述した、送信処理、または、受信処理についてまとめると、インターネット電話アプリケーションプログラム１０１やftpデータ伝送アプリケーションプログラム１０２などのアプリケーション層から、インタフェース１０５，１０６などのネットワーク層までの処理については、従来通りルーティングテーブル１０４ａの情報に基づいて通信経路を設定するが、本発明を適用することにより、従来、NIC４２単位で１対１で設定されたインタフェースとMACドライバとの接続関係を、ドライバラッパ１０７を設けるようにしたことで、インタフェースとMACドライバとの接続関係を要求情報に基づいて切り替えるようにすることができるので、これまでのルーティングテーブル１０４ａの設定により固定されていた通信経路を、変化させることが可能とすることができ、結果として、仕様の異なるNICを複数に設けるようにした場合でも、ユーザの要求に応じて、または、通信状態に応じて切り替えて仕様することが可能となる。
【０１４０】
以上においては、送信処理、および、受信処理のそれぞれについて説明してきたが、送信処理と受信処理を組み合わせた通信処理を実行することも可能である。
【０１４１】
図１７は、この通信処理を説明するフローチャートである。
【０１４２】
ステップＳ６１において、ドライバラッパ１０７は、インタフェース１０５，１０６、または、MACドライバ１０８，１０９のいずれかからデータが入力されたか否かを判定する。ステップＳ６１の処理は、いずれかからデータ入力されたと判定されるまで繰り返され、データが入力された場合、その処理は、ステップＳ６２に進む。
【０１４３】
ステップＳ６２において、ドライバラッパ１０７は、入力されたデータが上位層からの入力であったか否か、すなわち、ドライバラッパ１０７は、OSI参照モデルの通信機能階層でいうところの自らよりも上位であるインタフェース１０５または１０６からの入力データであったか否かを判定する。すなわち、ステップＳ６２において、入力されたデータが、上位であるインタフェース１０５または１０６からの入力データであるということは、アプリケーション層からデータが供給されている送信状態であるとみなされるので、その処理は、ステップＳ６３に進む。
【０１４４】
ステップＳ６３において、ドライバラッパ１０７は、送信処理を実行する。尚、送信処理は、図１１を参照して説明したステップＳ２２乃至Ｓ３１の処理（図１１のフローチャートの処理におけるステップＳ２１の処理を削除した処理）であるので、その説明は省略する。
【０１４５】
また、ステップＳ６２において、入力されたデータが、上位であるインタフェース１０５または１０６からの入力データではない、すなわち、下位となるMAC層であるMACドライバ１０８または１０９からデータが供給されていると判定された場合、受信状態であるとみなされるので、その処理は、ステップＳ６４に進む。
【０１４６】
ステップＳ６４において、ドライバラッパ１０７は、受信処理を実行する。尚、受信処理は、図１４を参照して説明したステップＳ４２乃至Ｓ５０の処理（図１４のフローチャートの処理におけるステップＳ４１の処理を削除した処理）であるので、その説明は省略する。
【０１４７】
以上の通信処理においても、上述した送信処理、または、受信処理により得られる効果と同様の効果が得られる。
【０１４８】
以上においては、インタフェース１０５，１０６の階層と、MACドライバ１０８，１０９の階層の間で、接続を切り替えるようにしていたが、例えば、図１８で示されるように、ドライバラッパ１０７に特有のインタフェース１５１を専用のIPアドレス（図１８においては、「20.0.0.1」）と共に設けるようにして、ルーティングテーブル１０４ａにおいて、常にインタフェース１５１が選択されるように設定することで、常にドラバラッパ１０７と接続するようにし、接続されたドライバラッパ１０７がインタフェース１０５，１０６、および、MACドライバ１０８，１０９の接続（の切替）を行うようにさせてもよい。尚、この場合、通信経路を設定するための処理を開始するために最初にドライバラッパ１０７に入力されるデータが、インタフェース１０５，１０６からインタフェース１５１に変更されるのみであるため、送信処理、受信処理、および、通信処理は、図６における場合と実質的に変わるものではないので、その説明は省略する。
【０１４９】
以上によれば、複数のネットワークインタフェースを具備する機器において、TCP/IPのプロトコルスタックの流れを損なうことなく、ユーザからの要求に応じて、経路を動的に変更することが可能となる。また、これにより、例えば、リアルタイム性が必要なアプリケーションを、混雑していないネットワークへと動的に経路変更することが可能となる。
【０１５０】
さらに、IEEE802.11a, b, gなどの伝送特性が時々刻々と変化するような無線LANに対応するNICを用いた場合、通信状態によりNICを使い分けることができるので、そのタイミングで最も高いスループットを得るように通信することができる。
【０１５１】
また、本発明で述べた実現方法はOSが持つ機能を変更せずに構成することが可能なため、OSに含まれる様々なネットワークに関する機能(例えば、firewall機能や、高度な認証／暗号化機能など)をそのまま利用しつつ、NICを適宜、切り替えて使用することが可能となる。
【０１５２】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行させることが可能な、例えば汎用のパーソナルコンピュータなどに記録媒体からインストールされる。
【０１５３】
この記録媒体は、図５に示すようにPC４１に予め組み込まれた状態でユーザに提供される、プログラムが記録されている記憶部５８だけではなく、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク８１（フレキシブルディスクを含む）、光ディスク８２（CD-ROM(Compact Disk-Read Only Memory)，DVD（Digital Versatile Disk）を含む）、光磁気ディスク８３（MD（Mini-Disc）（登録商標）を含む）、もしくは半導体メモリ８４（Memory Stickを含む）などよりなるパッケージメディアにより構成される。
【０１５４】
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
【０１５５】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【図面の簡単な説明】
【０１５６】
【図１】従来のPCにおける複数のNICを用いた場合のネットワークに対する接続例を示す図である。
【図２】従来のPCによる複数のNICを用いた場合の通信を説明する図である。
【図３】ルーティングテーブルの例を説明する図である。
【図４】本発明を適用したPCを用いた通信システムの構成を説明する図である。
【図５】本発明を適用したPCの一実施の形態の構成を示す図である。
【図６】図５のPCにより実現される機能を説明する機能ブロック図である。
【図７】図５のPCによるルーティングテーブルを生成する処理を説明するフローチャートである。
【図８】図５のPCで用いられるルーティングテーブルの例を説明する図である。
【図９】図５のPCによる要求情報入力処理を説明するフローチャートである。
【図１０】要求情報入力処理において表示される入力画面を説明する図である。
【図１１】送信処理を説明するフローチャートである。
【図１２】送信処理を説明する図である。
【図１３】送信処理を説明する図である。
【図１４】受信処理を説明するフローチャートである。
【図１５】受信処理を説明する図である。
【図１６】受信処理を説明する図である。
【図１７】通信処理を説明するフローチャートである。
【図１８】図５のPCにより実現されるその他の機能を説明する機能ブロック図である。
【符号の説明】
【０１５７】
４１  PC，  ４２，４２−１，４２−２  NIC，  ４４  ゲートウェイ，  ４５  ネットワーク，  ４６  ゲートウェイ，  ４７  ネットワーク，  １０１  インターネット電話アプリケーションプログラム，  １０２  ftpデータ伝送アプリケーションプログラム，  １０３  TCP/UDPソケットライブラリ，  １０４  ルーティングテーブル管理部，  １０４ａ  ルーティングテーブル，  １０５，１０６  インタフェース，  １０７  ドライバラッパ，  １０８，１０９  MACドライバ，  １１０  通信状態検出部，  １１１  要求情報管理部，  １５１  インタフェース
【図１】
2005072759.tif 000003
【図２】
2005072759.tif 000004
【図３】
2005072759.tif 000005
【図４】
2005072759.tif 000006
【図５】
2005072759.tif 000007
【図６】
2005072759.tif 000008
【図７】
2005072759.tif 000009
【図８】
2005072759.tif 000010
【図９】
2005072759.tif 000011
【図１０】
2005072759.tif 000012
【図１１】
2005072759.tif 000013
【図１２】
2005072759.tif 000014
【図１３】
2005072759.tif 000015
【図１４】
2005072759.tif 000016
【図１５】
2005072759.tif 000017
【図１６】
2005072759.tif 000018
【図１７】
2005072759.tif 000019
【図１８】
2005072759.tif 000020