JP2019134238A - 通信装置、通信装置の制御方法およびプログラム - Google Patents

通信装置、通信装置の制御方法およびプログラム Download PDF

Info

Publication number
JP2019134238A
JP2019134238A JP2018013010A JP2018013010A JP2019134238A JP 2019134238 A JP2019134238 A JP 2019134238A JP 2018013010 A JP2018013010 A JP 2018013010A JP 2018013010 A JP2018013010 A JP 2018013010A JP 2019134238 A JP2019134238 A JP 2019134238A
Authority
JP
Japan
Prior art keywords
communication
network
packet
header
address
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2018013010A
Other languages
English (en)
Other versions
JP7091078B2 (ja
Inventor
佐々木 章友
Akitomo Sasaki
章友 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2018013010A priority Critical patent/JP7091078B2/ja
Publication of JP2019134238A publication Critical patent/JP2019134238A/ja
Application granted granted Critical
Publication of JP7091078B2 publication Critical patent/JP7091078B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】接続するネットワークに応じて、通信パケットの通信特性に関する設定を適切かつ効率的に実行することができる通信装置を提供する。【解決手段】通信装置は、送信すべきデータに通信ヘッダが付加された通信パケットを取得する取得手段と、取得手段により取得された通信パケットの通信ヘッダ中のIPアドレスを参照して、通信パケットを送信すべきネットワークを判定する判定手段と、判定手段により判定されたネットワークに基づいて、通信パケットの通信ヘッダに、通信パケットの通信特性に関する情報を設定する設定手段と、設定手段により通信特性に関する情報が通信ヘッダに設定された通信パケットを送信する送信手段と、を備える。【選択図】 図1

Description

本発明は、通信装置、通信装置の制御方法およびプログラムに関する。
通信プロトコルにおいて通信パケットを送信する際に、通信機器は、通信パケットがネットワークに対して提供するサービスの品質の水準を示すQoS(Quality of Service)パラメータを設定する。このQoSを通信パケットのヘッダに設定することにより、ネットワーク上に様々な種類の通信が混在している場合であっても、通信内容に応じて、通信パケットの伝送における優先度や帯域幅など所望の通信品質を確保することができる。
TCP(Transmission Control Protocol)/IP(Internet Protocol)やUDP(User Datagram Protocol)等の通信プロトコルを使用する場合、IPヘッダにQoSを設定する。具体的には、IPv4のIPヘッダでは、Type Of Service(TOS)フィールドに、IPv6のIPヘッダでは、Traffic Class(TCLASS)やFlow Labelフィールドに、それぞれQoSが実装されている。
また、IPヘッダ中、Time To Live(TTL)フィールド(IPv4)にパケットの有効期間を、またはHop Limitフィールド(IPv6)に経由するルータ数を設定して、通信パケットのネットワーク上の到達範囲を制限することができる。これらもQoSパラメータの一種である。
通信機器上で動作する通信アプリケーションは、通信パケットのIPヘッダ内のこれらのQoSパラメータの値を変更することで、送信する通信パケットの所望の品質をネットワークや通信相手機器に要求することができる。複数のネットワークを中継するルータやLayer3(L3)スイッチ等は、通信機器から受信するパケットのIPヘッダに設定されたこれらのQoSパラメータを使用して、異なるネットワーク間でのパケットの転送や中継を制御することができる。
例えば、特許文献1は、使用したいネットワークの属性とQoS制御パラメータとの関係を示すプロファイルパラメータを参照して、IPヘッダにQoS制御パラメータを設定する技術を開示する。
具体的には、特許文献1の技術によれば、通信装置のネットワークアプリケーションは、通信装置内部で使用する優先度、帯域、および許容できる最大レイテンシーと、ネットワーク経路でのTOS値等との関係を、プロファイルパラメータとして設定する。通信装置は、このプロファイルパラメータを参照することにより、通信パケットの内容に適したTOS値等のQoS制御パラメータをIPヘッダに可変に設定することができる。
これにより、AVデータ等の広帯域データと、コントロールコマンドのような非常に高いリアルタイム性が要求されるデータとを、それぞれに適した異なるQoS制御パラメータで、1本のネットワークケーブルで混在させて伝送させることができる。
特許文献2は、ネットワークプロトコル処理の一部をハードウエアにオフロードする通信装置において、オフロードエンジンが固定値として保持するIPヘッダ中のTOS等のフィールドを、アプリケーションが指定するTOS値等に書き換える技術を開示する。
これにより、QoS制御を容易化することができる。
特開2009−260460号公報 特開2014−225769号公報
上記の特許文献1および特許文献2に記載の技術ではいずれも、通信装置のアプリケーションが、パケット化されるデータに応じて、通信パケットのIPヘッダのQoSパラメータのフィールドを設定ないし変更している。すなわち、通信パケットのIPヘッダ中の、TOSフィールドやTCLASSフィールド等のQoSパラメータを使用して、通信パケットの品質をネットワークに要求するのは、通信機器のネットワークスタックの上位レイヤにあるアプリケーションであった。
しかしながら、近年では、通信機器が接続するネットワーク側から、当該ネットワークに接続する機器に対し、通信パケットに対する特定のQoSパラメータを要求する場合がある。また、このようなネットワークは、当該ネットワークで使用可能なプロトコル毎に、TOSやTCLASS等の値を設定するよう要求することができる。
また、通信機器が接続するネットワークの規模に応じて、通信パケットのTTLやHop Limitを切り替えたいという要請がある。例えば、SOHOのLANに接続する場合には、インターネットに接続する場合よりネットワークの構成が小さいため、TTLを小さな値に設定したい。また、複雑な構成のネットワークに接続する場合にも、ルータの設定ミスなどの場合のルータの負荷を減らすため、TTLを小さな値に設定したい等である。
この場合、上記の技術のように、通信機器のアプリケーションがIPヘッダのQoSパラメータのフィールドを設定ないし変更しようとすると、アプリケーションが、接続先のネットワークやパケットの送信先のネットワークを参照しなければならない。このため、ネットワーク側から要求されるQoSパラメータをIPヘッダに設定する処理が煩雑となり、またパケット送信における効率性を損なってしまう。
さらに、通信装置上で稼働するアプリケーション毎に、それぞれ、通信パケット用のQoSパラメータを判断して、通信パケットのIPヘッダに設定する機能を実装しなければ、通信パケットの品質等、所望される通信特性の要求に対応することができない。
本発明は、上述の課題に鑑みてなされたものであり、通信パケットを送信すべきネットワークに応じて、通信パケットの通信特性に関する設定を適切かつ効率的に実行することが可能な通信装置、通信装置の制御方法およびプログラムを提供することを目的とする。
上記課題を解決するため、本発明に係る通信装置のある態様によれば、送信すべきデータに通信ヘッダが付加された通信パケットを取得する取得手段と、前記取得手段により取得された前記通信パケットの前記通信ヘッダ中のIPアドレスを参照して、前記通信パケットを送信すべきネットワークを判定する判定手段と、前記判定手段により判定された前記ネットワークに基づいて、前記通信パケットの前記通信ヘッダに、前記通信パケットの通信特性に関する情報を設定する設定手段と、前記設定手段により前記通信特性に関する情報が前記通信ヘッダに設定された通信パケットを送信する送信手段と、を備える通信装置が提供される。
本発明によれば、通信パケットを送信すべきネットワークに応じて、通信パケットの通信特性に関する設定を適切かつ効率的に実行することができる。
実施形態1に係る通信装置1のハードウエアおよび機能構成の一例を示すブロック図 実施形態1において通信装置1が各種ネットワークにそれぞれ接続された状態を示す図 実施形態1において通信装置1が実行する通信パケット生成および送信処理の処理手順の一例を示すフローチャート 実施形態1において通信装置1が参照する接続ネットワークテーブルおよびヘッダ書換テーブルの構成の一例を示す図 通信装置1が備えるネットワークスタック(プロトコルスタック)の一例を示す図 IPv4の場合のIPv4/TCPヘッダのヘッダレイアウトを示す図 IPv4の場合のIPv4/UDPヘッダのヘッダレイアウトを示す図 EthernetヘッダおよびIPヘッダの間でのCOS(Class Of Service)およびTOS(Type Of Service)の関係を示す図 実施形態2に係る通信装置10のハードウエアおよび機能構成の一例を示すブロック図 実施形態2において通信装置10がルータを介して各種ネットワークに接続された状態を示す図 実施形態2において通信装置10が実行する通信パケット生成および送信処理の処理手順の一例を示すフローチャート 実施形態2において通信装置10が参照する送信先ネットワークテーブルおよびヘッダ書換テーブルの構成の一例を示す図 実施形態3に係る通信装置100のハードウエアおよび機能構成の一例を示す図 実施形態3において通信装置100がルータを介して各種ネットワークに接続された状態を示す図 実施形態3において通信装置100が実行する通信パケット生成および送信処理の概略処理手順の一例を示すフローチャート 図15の送信元アドレス選択処理(S152)の詳細処理手順の一例を示すフローチャート 実施形態3において通信装置100が参照する送信元アドレスプレフィクス選択テーブルの構成の一例を示す図 実施形態3において通信装置100が参照する送信先ネットワークテーブルおよびヘッダ書換テーブルの構成の一例を示す図
以下、添付図面を参照して、本発明を実施するための実施形態について詳細に説明する。なお、以下に説明する実施形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されるべきものであり、本発明は以下の実施形態に必ずしも限定されるものではない。また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成については、同じ符号を付して説明する。
(実施形態1)
本実施形態においては、通信パケットを生成および送信可能な通信装置において、通信パケットを送信すべきネットワークを判定し、判定されたネットワークに応じて、通信パケットに、通信パケットの通信特性を設定する。
具体的には、本実施形態において、通信装置は、通信装置が接続する接続先ネットワークの通信プロトコルごとに、通信パケットの通信特性を定義するテーブルを参照する。そして、通信装置は、参照したテーブルに定義された通信パケットの通信特性で、通信パケットのヘッダを書き換える。
これにより、通信装置上で稼働するアプリケーションが接続先のネットワークを参照して、通信パケットの通信特性を都度設定することなく、接続先のネットワークに適した通信パケットの通信特性に関する設定を適切かつ効率的に実行することができる。
また、通信パケットの新たな通信特性を要求するネットワークに新たに接続する必要が生じた場合も、上記テーブルを追加するだけで足り、アプリケーションは何ら変更する必要がない。
ここで、「通信パケットの通信特性」は、通信パケットの通信に関連するあらゆる特性を含み、少なくとも、通信パケットの品質に関する特性の情報を含む。本実施形態では、通信パケットの品質に関する特性の情報は、通信パケットがネットワークに対して提供するサービスの品質の水準を規定するQoS(Quality of Service)パラメータを含む。
このQoSパラメータは、IPv4プロトコルの場合、IPヘッダ中のType Of Service(TOS)フィールドおよびTime to Live(TTL)フィールドを含むフィールドに実装できる。IPv6プロトコルの場合、IPヘッダ中のTraffic Class(TCLASS)、Flow Labelフィールド、およびHop Limitフィールド(IPv6)を含むフィールドに実装できる。
また、「通信パケットを送信すべきネットワーク」とは、本実施形態における通信装置が接続する接続先ネットワークの他、送信先の通信装置が属する送信先ネットワークや中継ネットワークを含む。「接続先ネットワーク」とは、通信装置が接続するネットワークをいう。この接続先ネットワークの識別子は、例えば、通信装置のネットワークインタフェースに割り当てられたアドレスで示すことができ、通信装置のIPアドレスの上位ビットに記述されるネットワークアドレスを参照して取得することができる。
以下、本実施形態では、IPv4プロトコルにおけるQoSパラメータを設定する場合を例として説明するが、本実施形態がIPv6プロトコルにも適用可能であることはいうまでもない。
<本実施形態のハードウエアおよび機能構成>
図1は、本実施形態に係る通信装置のハードウエア構成および機能構成の一例を示す図である。
図1に示す通信装置1の各機能モジュールのうち、ソフトウエアにより実現される機能については、各機能モジュールの機能を提供するためのプログラムがROM等のメモリに記憶され、RAMに読み出してCPUが実行することにより実現される。ハードウエアにより実現される機能については、例えば、所定のコンパイラを用いることで、各機能モジュールの機能を実現するためのプログラムからFPGA上に自動的に専用回路を生成すればよい。FPGAとは、Field Programmable Gate Arrayの略である。また、FPGAと同様にしてGate Array回路を形成し、ハードウエアとして実現するようにしてもよい。また、ASIC(Application Specific Integrated Circuit)により実現するようにしてもよい。なお、図1に示した機能ブロックの構成は一例であり、複数の機能ブロックが1つの機能ブロックを構成するようにしてもよいし、いずれかの機能ブロックが複数の機能を行うブロックに分かれてもよい。
通信装置1は、DRAM(Dynamic Random Access Memory)11と、1つまたは複数のCPU(Central Processing Unit)12と、ROM(Read Only Memory)13とを備える。通信装置1は、さらに、LAN制御部14と、IPヘッダ書換部と、接続ネットワーク判定部16とを備える。通信装置1は、LAN制御部14を介してネットワーク17に接続されて、他の通信装置と相互に通信することができる。DRAM11、CPU12、ROM13、LAN制御部14、IPヘッダ書換部15、および接続ネットワーク判定部16は、システムバスを介して相互に接続される。
DRAM11は、システムバスを介して、通信装置1内の各機能ブロックが共有して利用可能なメインメモリとして動作し、CPU12が利用するワークメモリなどを含む。
CPU12は、通信装置1上で稼働するアプリケーションを実行するとともに、通信装置1全体の制御を実行する。具体的には、CPU12は、アプリケーションを実行する上で必要となるデータなどをDRAM11の内部に記憶し、必要に応じてシステムバスを介して読み出しや書き込みを行う。
ROM13は、CPU12が実行する各種プログラムを格納する不揮発性メモリである。
LAN制御部14は、通信装置1が有線または無線で通信を行うための通信インターフェースである。LAN制御部14は、有線または無線のネットワーク17に接続されている。ネットワーク17は、有線である場合、例えばEthernet(登録商標)規格に準拠してよい。また、無線である場合は、例えばIEEE802.11シリーズ規格に準拠した無線LANであってよい。
ネットワーク17には、他の通信装置が接続されており、ネットワーク17を介して通信装置1が他の通信装置と相互に通信することが可能である。以下、通信装置1は、通信方式としてTCP/IPプロトコルを使用するものとして説明する。
なお、TCP/IPプロトコルは説明を行うために示す一例であり、通信装置1は、その他の通信プロトコルの通信プロトコル処理を実行することができる。以下、TCP/IPプロトコルは、別段の定義のない限り、UDPプロトコルを含むものとして説明する。
IPヘッダ書換部15は、接続ネットワーク判定部16が接続ネットワークテーブルを参照することにより判定する接続先ネットワークに従って、ヘッダ書換テーブルを参照し、通信パケットのIPヘッダ中のQoSパラメータを書き換える。接続ネットワークテーブルおよびヘッダ書換テーブルの詳細は図4を参照して後述する。
接続ネットワーク判定部16は、接続ネットワークテーブルを参照して、通信装置1が接続するネットワークを判定する。本実施形態では、接続ネットワーク判定部16は、通信装置1のネットワークインタフェースに割り当てられたIPアドレスを用いて複数のネットワークから接続先ネットワークを判定する。
<ネットワーク構成例>
図2(a)から図2(c)は、通信装置1が、各種ネットワークにそれぞれ直接接続された状態を示す。
具体的には、図2(a)は、通信装置1が、高品質ネットワークAに直接接続された状態を示す。図2(a)において、通信装置1は、IPアドレス「172.10.10.25」を有し、接続先の高品質ネットワークAへのネットワークインタフェース(I/F)には、IPアドレス「172.10.0.0/16」が割り当てられているものとする。同様に、図2(b)は、通信装置1が、高品質ネットワークBに直接接続された状態を示す。図2(b)において、通信装置1は、IPアドレス「172.240.30.112」を有し、接続先の高品質ネットワークBへのネットワークインタフェースには、IPアドレス「172.240.0.0/16」が割り当てられているものとする。図2(c)は、通信装置1が、通常ネットワークに直接接続された状態を示す。図2(c)において、通信装置1は、IPアドレス「192.168.1.26」を有し、接続先の通常ネットワークへのネットワークインタフェースには、IPアドレス「192.168.1.0/24」が割り当てられているものとする。
なお、以下、「高品質ネットワーク」とは、当該ネットワークに接続する通信装置に対して特定のプロトコルについて所定のQoSパラメータを設定するよう要求することが可能なネットワークをいうものとする。一方、「通常ネットワーク」とは、当該ネットワークに接続する通信装置に対して特定のプロトコルについて所定のQoSパラメータを設定するよう要求しないネットワークをいうものとする。
通信装置1のIPアドレスは、それぞれのネットワークへの接続時に、例えば、DHCP(Dynamic Host Configuration Protocol)サーバ(不図示)により割り当てられることができる。
<接続ネットワークテーブルおよびヘッダ書換テーブルの構成例>
図4は、実施形態1において通信装置1が参照する接続ネットワークテーブルおよびヘッダ書換テーブルの構成の一例を示す。
図4において、接続ネットワークテーブル41は、通信装置1のネットワークインタフェース(I/F)のIPアドレスと、このIPアドレスに対応する接続先ネットワークのヘッダ書換テーブルのIDとを定義する。図4の接続ネットワークテーブル41は、図2(a)の高品質ネットワークAへのネットワークI/FのIPアドレス「172.10.0.0/16」のエントリを含む。さらに、接続ネットワークテーブル41は、図2(b)の高品質ネットワークBへのネットワークI/FのIPアドレス「172.240.0.0/16」のエントリを含む。一方、図2(c)の通常ネットワークへのネットワークI/FのIPアドレス「192.168.1.0/24」は、図4の接続ネットワークテーブル41に登録されていない。
接続ネットワークテーブル41で、図2(a)の高品質ネットワークAへのネットワークI/FのIPアドレス「172.10.0.0/16」が選択された場合、高品質ネットワークA用のヘッダ書換テーブル42が参照される。一方、図2(b)の高品質ネットワークBへのネットワークI/FのIPアドレス「172.240.0.0/16」が選択された場合、高品質ネットワークB用のヘッダ書換テーブル43が参照される。
ヘッダ書換テーブル42、43は、それぞれ、高品質ネットワークに実装されるプロトコル、宛先ポート番号、および送信元ポート番号の組み合わせに対して、IPヘッダに設定すべきQoSパラメータを定義する。図4では、QoSパラメータとして、TOSおよびTTL(IPv4)、またはTCLASSおよびHop Limit(IPv6)が定義されている。
図4に示す接続先ネットワークテーブル41およびヘッダ書換テーブル42、43は、通信装置1が接続される接続先ネットワークが要求する通信パケットの品質に関する特性の仕様に応じて、予め登録しておく。
図5は、通信装置1が備えるネットワークスタックの一例を示す。図5において、LAN制御部14の上位レイヤかつアプリケーションの下位レイヤにネットワークスタック5が位置付けられる。本実施形態において、図1のIPヘッダ書換部15および接続先ネットワーク判定部16は、ネットワークスタック(プロトコルスタック)5に実装される。すなわち、図4のテーブルを参照して通信パケットのIPヘッダを書き換えるプロトコルスタック処理は、最上位レイヤのアプリケーションではなく、ネットワークスタック5により実行される。
ネットワークスタック5は、下位レイヤから順に、イーサネット(登録商標)駆動部、IP、TCP/UDP、ソケット(socket)APIを備える。最上位レイヤのアプリケーションA、Bは、ソケットAPIを呼び出すことにより、ネットワークスタック5に対して、それぞれ、パケット化して送信すべきデータ(ペイロード)を受け渡したり、パケット送信を指示することができる。
トランスポートレイヤに対応するTCPまたはUDPは、アプリケーションから受け渡されたデータ(ペイロード)に対して、TCPヘッダまたはUDPヘッダをそれぞれ付加する。具体的には、TCPは、図6に示すTCPヘッダ62を、UDPは、図7に示すUDPヘッダ72を、それぞれデータ(ペイロード)に付加する。図6のTCPヘッダ62および図7のUDPヘッダ72は、それぞれ送信元ポート番号(Source Port)および宛先ポート番号(Destination Port)フィールドを含む。
インターネットレイヤに対応するIPは、TCPヘッダまたはUDPヘッダが付加されたデータに対して、IPヘッダを付加する。図6および図7のIPヘッダ61は、それぞれTOS(Type Of Service)フィールドおよびTTL(Time To Live)フィールドを含む。また、IPヘッダ61は、送信元IPアドレス(Source Address)および宛先IPアドレス(Destination Address)フィールドを含む。IPヘッダ61のプロトコル(Protocol)フィールドに規定されるプロトコルの値で、IPヘッダをTCPヘッダまたはUDPヘッダのいずれに付加すべきかを区別することができる。IPレイヤは、ICMP(Internet Control Message Protocol)を含んでよい。また、IPおよび下位のイーサネット駆動部は、ARP(Address Resolution Protocol)を含んでよい。
ネットワークアクセスレイヤに対応するイーサネット駆動部は、TCPヘッダまたはUDPヘッダ、およびIPヘッダが付加されたデータに、イーサネットヘッダを付加して、ネットワークに送出される通信パケット(イーサネットフレーム)を生成する。
図8は、TCPヘッダまたはUDPヘッダに対してIPヘッダが付加されたデータに対して付加されるイーサネットヘッダのレイアウトを示す。
図2(a)ないし図2(c)の通信装置1が直接接続されるネットワーク(LAN)がブロードキャストドメインを構成するVLAN(Virtual LAN)を通過する場合、図8に示すVLANタグがイーサネットヘッダに追加される。具体的には、VLAN内で、イーサネットフレーム81中のイーサネットヘッダは、宛先MACアドレス(destination MAC)、送信元MACアドレス(source MAC)、VLANタグ、イーサネットタイプ(Ether Type)を含む。このVLANタグは、IEEE802.1Q規格に準拠し、タグプロトコルID(TPID)およびTCI(Tag Control Information)フィールドから構成される。
VLANタグ中のTCIフィールドは、3ビットのCoS(Class Of Service)フィールドとVLAN ID(VID)フィールドを含む。TCIフィールド中のCoSフィールドは、IEEE802.1p規格に準拠する優先制御で使用されるQoSに関するフィールドであり、IPヘッダ中のTOS(Type Of Service)フィールドから変換して取得できる。CoSおよびTOSフィールドの間では、直接対応付けられた値として、相互に変換することができる。
VLAN内のイーサネットフレーム81がルータを介して(イーサネットフレーム82)VLAN外へ送出される際に、VLANタグはイーサネットヘッダから削除され、イーサネットフレーム83としてVLAN外へ送出される。VLAN外へ送出されるイーサネットフレーム83では、削除されるTCIフィールド中のCoSフィールドは、IPヘッダ中のTOSフィールドに変換されることができる。
<本実施形態における通信ヘッダ生成および通信パケット生成処理の処理フロー>
図3は、本実施形態に係る通信装置1が実行する通信ヘッダ生成および通信パケット生成処理の一例を示すフローチャートである。
図3に示す処理は、例えば、通信装置1の通信機能が起動され、通信装置1がネットワークを介して他の通信装置と通信状態となったことを契機に開始されてよい。ただし、図2に示す処理の開始タイミングは上記に限定されない。
以下では、通信装置1が他の通信装置との間でデータ転送する際に使用する通信プロトコルとしてTCP/IPプロトコルを使用する例を説明するが、本実施形態はTCP/IPプロトコル以外の通信プロトコルも使用することができる。
通信装置1は、CPU12が必要なプログラムをROM13から読み出して実行することにより、ネットワークスタック5に実装されるIPヘッダ書換部15および接続ネットワーク判定部16の動作を制御して図3に示す処理を実行することができる。
まず、通信装置1が図2(a)の高品質ネットワークAに接続され、DHCPサーバ等を介してIPアドレス「172.10.10.25」が割り当てられている場合を例として説明する。図3を参照して、S1で、通信装置1のアプリケーションがソケットAPIを使用してパケット送信要求を呼び出すと、ネットワークスタック5が、TCP/IP等のプロトコルスタック処理を実行して、アプリケーションからの送信データをIPパケット化する。
S2で、通信装置1の接続ネットワーク判定部16は、自ホスト(通信装置1)のIPアドレスを取得し、取得したIPアドレスを用いて図4の接続ネットワークテーブル41を検索する。
S3で、通信装置1の接続ネットワーク判定部16は、S2で取得された自ホストのIPアドレスに対応するエントリが接続ネットワークテーブル41にあるか否かを判定すする。自ホストのIPアドレスに対応するエントリが接続ネットワークテーブル41にある場合(S3:Y)はS4に進んでヘッダ書換テーブルが選択され(S4)、IPヘッダ書換部15は、S4からS8のIPヘッダ書換処理を実行する。一方、自ホストのIPアドレスに対応するエントリが接続ネットワークテーブル41にない場合(S3:N)はS9に進んで、IPヘッダ書換処理は実行されない。
図4の接続ネットワークテーブル41の1番目のエントリ「172.10.0.0/16」は、IPアドレスの上位16ビット(ネットワークアドレス)が「172.10」と一致することを表している。また2番目のエントリ「172.240.0.0/16」は、IPアドレスの上位16ビット(ネットワークアドレス)が「172.240」と一致することを表している。
ここで、通信装置1が図2(a)の高品質ネットワークAに接続されている場合の通信装置1のIPアドレスは「172.10.10.25」である。このため、S3で、接続ネットワークテーブル41の「172.10.0.0/16」のエントリに対応するネットワーク(高品質ネットワークA)であることが分かる。次にS4で、高品質ネットワークAのIPヘッダを書き換えるためのヘッダ書換テーブル42が選択される。
S5で、IPヘッダ書換部15は、S4で選択されたヘッダ書換テーブル42からIPヘッダ書き換えに使用するエントリを選択する。具体的には、IPヘッダ書換部15は、送信すべきIPパケットのIPヘッダからプロトコルフィールドの値を、TCP/UDPヘッダから宛先ポート番号および送信元ポート番号の値をそれぞれ取得する。
S6で、IPヘッダ書換部15は、取得されたプロトコル、宛先ポート番号、および送信元ポート番号をキーとして、ヘッダ書換テーブル42のエントリを検索する。
S7で、IPヘッダ書換部15は、取得されたプロトコル、宛先ポート番号、および送信元ポート番号に一致するエントリが高品質ネットワークAのヘッダ書換テーブル42にあるか否かを判定する。取得されたプロトコル、宛先ポート番号、および送信元ポート番号に対応するエントリがヘッダ書換テーブル42にある場合(S7:Y)、S8に進み、一方、ない場合(S7:N)、S9に進む。
S8で、IPヘッダ書換部15は、S7で選択されたヘッダ書換テーブル42のエントリに規定されるQoSパラメータ(TOS、TTL)の値に従って、通信パケットのIPヘッダの値を書き換える。
S9で、ネットワークスタック5から、LAN制御部14を介して、イーサネットヘッダが付加されたIPパケットが通信パケットとして、ネットワーク17に送出される。S7でヘッダ書換テーブル42に取得されたプロトコル、宛先ポート番号、および送信元ポート番号に対応するエントリがあった場合には、S8で書き換えられたIPヘッダを使用して、IPパケットが送信される。一方、ヘッダ書換テーブル42に取得されたプロトコル、宛先ポート番号、および送信元ポート番号に対応するエントリがない場合には、S1で生成されたIPヘッダのままで、IPパケットが送信される。
ヘッダ書換テーブル42が選択されている場合、例えば、送信するIPパケットのIPヘッダに規定されるプロトコルが「TCP」であり、TCPヘッダに規定される宛先ポート番号が「5060」であるとする。この場合、プロトコルが「TCP」かつ宛先ポート番号が「5060」に一致するエントリは、ヘッダ書換テーブル42の2番目のエントリとなる。ヘッダ書換テーブル42の2番目のエントリには、QoSパラメータの値として、TOSフィールドに「0x80」、TTLフィールドに「無変換」と規定されている。このため、IPヘッダ書換部15は、送信するIPパケットのIPヘッダ中のTOSフィールドの値を、ヘッダ書換テーブル42に規定される値「0x80」で書き換える。
一方、S7で、取得されたプロトコル、宛先ポート番号、および送信元ポート番号に対応するエントリがない場合は、S8でIPヘッダの書き換えは実行されない。例えば、送信するIPパケットのIPヘッダに規定されるプロトコルが「UDP」であり、UDPヘッダに規定される宛先ポート番号が「67」、送信元ポート番号が「68」であるとする。この場合、ヘッダ書換テーブル42には、プロトコルが「UDP」、かつ宛先ポート番号が「67」、送信元ポート番号が「68」に一致するエントリがないため、S8で通信パケットのIPパケットは書き換えられずにS9でIPパケットが送信される。なお、各フィールドの値「any」はあらゆる値を許容する。
次に、通信装置1が図2(b)の高品質ネットワークBに接続され、DHCPサーバ等を介してIPアドレス「172.240.10.25」が割り当てられている場合を例として説明する。図3を参照して、S2で、自ホスト(通信装置1)のIPアドレスは、図2(b)に示すように、「172.240.30.112」となる。このため、S3で、IPアドレスの上位16ビットが「172.240」と一致する、接続ネットワークテーブルの第2のエントリの「172.240.0.0/16」が選択され、S4でヘッダ書換テーブル43が選択される。
一方、通信装置1が図2(c)の通常ネットワークに接続され、DHCPサーバ等を介してIPアドレス「192.168.1.26」が割り当てられている場合を例として説明する。図3を参照して、S2で、自ホスト(通信装置1)のIPアドレスは、図2(c)に示すように、「192.168.1.26」となる。このため、S3で、IPアドレスの上位16ビットが「192.168」である接続ネットワークテーブル41のエントリは存在せず、S9で、IPヘッダが書き換えられずに、IPパケットが送信される。
なお、図3では、S1でIPパケットが生成された後に、IPヘッダを書き換えているが、本実施形態はこれに限定されない。例えば、IPパケットを生成する際に、接続ネットワークテーブル41およびヘッダ書換テーブル42、43を検索(参照)し、取得されたQoSパラメータ(TOS、TTL)の値をIPヘッダに設定してもよい。
また、図1のIPヘッダ書換部15および接続ネットワーク判定部16の少なくとも一方をプログラムに従ってヘッダ書換処理を実行するCPU12により実現してもよく、専用ハードウエアに実装してもよい。
通信装置1が、別のQoSパラメータを要求する新たなネットワークに接続する必要が出てきた場合は、図4の接続ネットワークテーブル41に新たなエントリを追加すればよい。また、既に接続可能なネットワークが、所定のプロトコルに対して、新たにTOSを設定するよう要求した場合は、図4のヘッダ書換テーブル42、43に新たなエントリを追加すればよい。
また、上記ではIPv4プロトコルの例を説明したが、IPv6に対応する場合は、接続ネットワークテーブル41のIPv4でのI/FアドレスをIPv6でのI/アドレスにすればよい。また、ヘッダ書換テーブル42、43のTOSフィールドの値をTCLASS(Traffic Class)の値に、TTLフィールドの値をHop Limitの値に、それぞれ設定すればよい。
以上説明したように、本実施形態では、通信装置は、接続先ネットワークをし、接続先ネットワークの通信プロトコルごとに通信パケットの通信特性を定義するテーブルを参照する。そして、通信装置1は、参照したテーブルに定義された通信パケットの通信特性で、送信すべき通信パケットのヘッダを書き換える。
これにより、通信装置上で稼働するアプリケーションが接続先のネットワークを参照して通信パケットの通信特性を都度設定することなく、接続先のネットワークに適した通信パケットの通信特性に関する設定を適切かつ効率的に実行することができる。
また、通信パケットの新たな通信特性を要求するネットワークに新たに接続する必要が生じた場合も、上記テーブルを追加するだけで足り、アプリケーションは何ら変更する必要がないという利点が得られる。
(実施形態2)
以下、実施形態2を、図9から図12を参照して、上記の実施形態1と異なる点についてのみ詳細に説明する。本実施形態は、通信パケットの送信先ネットワークを判定する。そして本実施形態は、送信先ネットワークの通信プロトコルごとに通信パケットの品質に関する特性を定義するヘッダ書換テーブルを参照し、このテーブルに定義された通信パケットの品質に関する特性で、送信すべき通信パケットのヘッダを書き換える。送信先パケットの判定は、通信装置が、接続ネットワークテーブルを参照して、ヘッダ書換テーブルを示すエントリーが選択されない場合に実行されてよい。
これにより、例えば、家庭内LANやSOHOに接続する通信装置が、ルータを介して高品質ネットワークに接続されている場合に、通信パケットの送信先のネットワークに適した通信パケットの品質に関する設定を適切かつ効率的に実行することができる。
なお、「送信先ネットワーク」とは、通信パケットを送信すべきネットワークのうち、通信パケットの送信先の通信装置が属するネットワークをいう。この送信先ネットワークの識別子は、例えば、通信パケットのIPヘッダ中の送信先IPアドレスの上位ビットに記述されるネットワークアドレスを参照して取得することができる。
以下、本実施形態では、IPv4プロトコルにおけるQoSパラメータを設定する場合を例として説明するが、本実施形態がIPv6プロトコルにも適用可能であることはいうまでもない。
図9は、本実施形態に係る通信装置のハードウエア構成および機能構成の一例を示す図である。
本実施形態に係る通信装置10は、図1に示す実施形態1の通信装置1の構成に加えて、送信先ネットワーク判定部18をさらに備える。
送信先ネットワーク判定部18は、通信パケットの送信先ネットワークを判定して、判定された送信先ネットワークに対応するヘッダ書換テーブルをIPヘッダ書換部15に通知する。この送信先ネットワークは、上記のとおり、送信すべき通信パケットのIPヘッダ中の送信先IPアドレス(図6、図7のIPv4ヘッダ61のDestination Address)から判定することができる。
図10は、通信装置10が、家庭内LANやSOHOを構成する通常ネットワークに直接接続され、さらに、ルータを介して複数の高品質ネットワークに接続された状態を示す。
具体的には、図10において、通信装置10は、IPアドレス「192.168.1.26」(図2(c)と同じIPアドレス)を有する。また、通信装置10において、接続先の通常ネットワークへのネットワークインタフェース(I/F)には、IPアドレス「192.168.1.0/24」が割り当てられているものとする。図10の通常ネットワークには、通信装置10の他、IPアドレス「192.168.1.1」を有する通信装置101が接続されている。
図10において、通信装置10は、ルータ104を介して、高品質ネットワークCに接続され、さらに、ルータ104、高品質ネットワークCを経由し、ルータ105を介して、高品質ネットワークDに接続される。
通信装置10は、同一ネットワークに接続される通信装置101を通信パケットの送信先とすることができる。通信装置10はさらに、高品質ネットワークCに接続される通信装置102、高品質ネットワークDに接続される通信装置103を、それぞれ通信パケットの送信先とすることができる。
通信装置102は、IPアドレス「192.168.91.36」を有し、接続先の高品質ネットワークCへのネットワークインタフェースには、IPアドレス「192.168.91.0/24」が割り当てられているものとする。同様に、通信装置103は、IPアドレス「172.11.55.92」を有し、接続先の高品質ネットワークDへの根とワークインタフェースには、IPアドレス「172.11.0.0/16」が割り当てられているものとする。
図12は、実施形態2において通信装置10が参照する送信先ネットワークテーブルおよびヘッダ書換テーブルの構成の一例を示す。
図10において、送信先ネットワークテーブル121は、通信装置10が通信パケットを送信する送信先IPアドレスと、対応するヘッダ書換テーブルのIDとを定義する。図10の送信先ネットワークテーブル121は、送信先アドレスとして、図10の高品質ネットワークCの送信先IPアドレス「192.168.91.0/24」のエントリを含む。さらに送信先ネットワークテーブル121は、高品質ネットワークDの送信先IPアドレス「172.11.0.0/16」のエントリを含む。なお、送信先ネットワークテーブル121の送信先アドレスは、通信パケットのIPヘッダの宛先アドレス(Destination Address)フィールドから取得することができる。
送信先ネットワークテーブル121で、高品質ネットワークCの送信先IPアドレス「192.168.91.0/24」が選択された場合、高品質ネットワークC用のヘッダ書換テーブル44が参照される。一方、高品質ネットワークDの送信先IPアドレス「172.11.0.0/16」が選択された場合、高品質ネットワークD用のヘッダ書換テーブル45が参照される。
ヘッダ書換テーブル44、45は、図4に示すヘッダ書換テーブルと同様のエントリーを有する。すなわち、ヘッダ書換テーブル44、45は、高品質ネットワークに実装されるプロトコル、宛先ポート番号、および送信元ポート番号の組み合わせに対して、IPヘッダに設定すべきQoSパラメータを定義する。図12では、QoSパラメータとして、TOSおよびTTL(IPv4)、またはTCLASSおよびHop Limit(IPv6)が定義されている。
図10に示す送信先ネットワークテーブル121およびヘッダ書換テーブル44、45は、通信装置10が通信パケットを送信する送信先ネットワークが要求する通信パケットの品質に関する特性の仕様に応じて、予め登録しておく。
図11は、実施形態2に係る通信装置10が実行する通信パケット生成および送信処理の処理手順の一例を示すフローチャートである。図3に示す実施形態1に係る通信装置1が実行する処理に対して、S3で接続ネットワークテーブルに接続先ネットワークへのネットワークインタフェースアドレスがない場合の処理として、S10およびS11が追加されている。
通信装置10が図10に示す複数のネットワークに接続され、DHCPサーバ等を介してIPアドレス「192.168.1.26」が割り当てられている場合を例として説明する。この通信装置10が、ルータ104を介して高品質ネットワークCに接続し、IPアドレス「192.168.91.36」を有する通信装置102と通信するものとする。
図11を参照して、S1で、通信装置10のアプリケーションがソケットAPIを介してパケット送信要求を呼び出すと、ネットワークスタック5が、TCP/IP等の通信プロトコル処理を実行して、アプリケーションからの送信データをIPパケット化する。
S2で、通信装置10の接続ネットワーク判定部16は、自ホスト(通信装置10)のIPアドレス「192.168.1.26」を取得し、取得したIPアドレスを用いて図4の接続ネットワークテーブル41を検索する。
S3で、通信装置1の接続ネットワーク判定部16は、S2で取得された自ホストのIPアドレス「192.168.1.26」に対応するエントリが接続ネットワークテーブル41にないと判定し、S10に進む。
S10で、本実施形態では、接続ネットワークテーブルに自ホスト(通信装置10)のIPアドレスのエントリがない場合、さらに、通信パケットの送信先アドレスをキーとして、図12の送信先ネットワークテーブル121を検索する。
S11で、通信パケットの送信先アドレスに対応するエントリが送信先ネットワークテーブル121にあるか否かを判定する。送信先アドレスに対応するエントリが送信先ネットワークテーブル121にある場合(S11:Y)、S4に進み、図3を参照して説明したS4からS8のIPヘッダ書換処理を実行する。一方、送信先アドレスに対応するエントリが送信先ネットワークテーブル121にない場合(S11:N)、S9に進んで、IPパケット書換処理は実行されない。
ここで、通信装置102を送信先とする通信パケットの送信先アドレスは「192.168.91.36」である。このため、「192.168.91.0/24」のエントリに対応するネットワーク(高品質ネットワークC)であることが分かる。このため、S4で、高品質ネットワークCのIPヘッダを書き換えるためのヘッダ書換テーブル44が選択される。
以下、S4からS9までの処理は、図3と同様である。
次に、図10に示す、IPアドレス「192.168.1.26」を有する通信装置10が、高品質ネットワークDに接続し、IPアドレス「172.11.55.92」を有する通信装置103と通信する場合を説明する。
この場合は、S11で、送信先ネットワークテーブル121から、パケットの送信先アドレス「172.11.55.92」に対応する送信先アドレス「172.11.0.0/16」のエントリが選択され、S4で、ヘッダ書換テーブル45が選択される。
一方、図10に示す、IPアドレス「192.168.1.26」を有する通信装置10が、通信装置10と同一の通常ネットワークに接続し、IPアドレス「192.168.1.1」を有する通信装置101と通信する場合を説明する。
この場合は、S11で、送信先ネットワークテーブル121に、パケットの送信先アドレス「192.168.1.1」に対応するエントリがないため、S9に進み、IPヘッダを書き換えずにIPパケットを送信する。
なお、上記では、通信装置10が図12の送信先ネットワークテーブル121およびヘッダ書換テーブル44、45を参照してヘッダ書換処理を実行する例を説明したが、本実施形態はこれに限定されない。
例えば、ルータ104が、IPヘッダ書換部15および送信先ネットワーク判定部18を備え、図12に示す送信先ネットワークテーブル121およびヘッダ書換テーブル44、45を参照してもよい。この場合、通常ネットワークと高品質ネットワークCとを中継するルータ104が、通信パケットをネットワーク間で中継する際に、送信先ネットワークの判定を実行して、ポート番号やプロトコルに応じてヘッダの書き換えを実行すればよい。
また、図11では、S3で接続先ネットワークテーブル41に自ホスト(通信装置10)のIPアドレスのエントリーがない場合に、S10で送信先ネットワークテーブル121を検索する例を説明したが、本実施形態はこれに限定されない。
例えば、接続先ネットワークテーブル41中での、自ホストのIPアドレスのエントリー有無にかかわりなく送信先ネットワークテーブル121を検索し、ヘッダ書換テーブルの選択の際に、どのヘッダ書換テーブルを優先するかの優先制御を実行してもよい。
以上説明したように、本実施形態では、通信装置は、通信パケットの送信先ネットワークを判定する。そして、通信装置は、送信先ネットワークの通信プロトコルごとに通信パケットの品質に関する特性を定義するヘッダ書換テーブルを参照し、このテーブルに定義された通信パケットの品質に関する特性で、送信すべき通信パケットのヘッダを書き換える。
これにより、例えば、家庭内LANやSOHOに接続する通信装置が、ルータを介して高品質ネットワークに接続されている場合等に、通信パケットの送信先のネットワークに適した通信パケットの品質に関する設定を適切かつ効率的に実行することができる。
(実施形態3)
以下、実施形態3を、図13から図18を参照して、上記の各実施形態と異なる点についてのみ詳細に説明する。本実施形態は、IPv6プロトコルを使用する通信装置において、1つのネットワークI/Fに複数のIPv6グローバルアドレスが割り当てられる場合に、パケット通信の所望の品質を維持可能なグローバルアドレスを選択して通信パケットのヘッダに設定する。
これにより、例えば、高品質ネットワークと通常ネットワークとが混在するネットワーク環境において、動画等の品質を要求するサービスを提供する相手通信装置から送信される応答パケットの取得経路を指示し、応答パケットの品質を維持することができる。
なお、本実施形態において選択される、パケット通信の所望の品質を維持可能な通信装置のグローバルアドレスも、通信パケットの品質に関する情報であって、通信パケットの通信特性に含まれるものとする。
図13は、本実施形態に係る通信装置のハードウエア構成および機能構成の一例を示す図である。
本実施形態に係る通信装置100は、図9に示す実施形態2の通信装置10の構成に加えて、送信元アドレス選択部19をさらに備える。
送信元ネットワーク選択部19は、通信パケットの送信先ネットワークの判定結果から、判定された送信先ネットワークに対応する送信元IPv6グローバルアドレスを、複数のIPv6グローバルアドレスから選択する。IPヘッダ書換部15は、送信元ネットワーク選択部19により選択された送信元IPv6グローバルアドレスを、送信すべき通信パケットのIPヘッダ中の送信元IPアドレスに設定する。
図14は、通信装置100が、高品質ネットワークHに接続され、高品質ネットワークHがルータを介して通常ネットワークおよび高品質ネットワークIにそれぞれ接続された状態を示す。図14に示すネットワークは、IPv6で構成されている。
具体的には、図14において、通信装置100は、DHCPなしでデフォルト使用可能な、かつローカルネットワーク内でのみ有効であるリンクローカルアドレス100a「fe80::200:ff:fe00:112」を有する。通信装置100にはさらに、複数のIPv6グローバルアドレス100b「3ffe:5::200:ff:fe00:112」、「3ffe:4::200:ff:fe00:112」が付与されている。これらのIPv6グローバルアドレス100bは、高品質ネットワークHと通常ネットワークを中継するルータ143および高品質ネットワークHと高品質ネットワークIを中継するルータ144からそれぞれ受信するルータ・アドバタイジングで指定される。
通常ネットワークに接続する通信装置141は、IPv6グローバルアドレス「3ffe:1::200:ff:fe00:1201」を有し、Web等の通常のサービスを提供するものとする。
一方、高品質ネットワークIに接続する通信装置142は、IPv6グローバルアドレス「3ffe:3:200:ff:fe00:1203」を有し、例えば動画配信等、通信パケットに所定の品質を要求するサービスを提供するものとする。通信装置142は、通信パケット(応答パケット)を送信する際に、この通信パケットの送信先IPアドレスのプレフィクスを参照する。この通信パケットの送信先IPアドレスのプレフィクスが、高品質ネットワークを示していればルータ144へ、通常ネットワークを示していればルータ145へ、通信パケットを送信するよう設定されている。このような経路設定は、ルーティングテーブルを利用することで実現することができる。
図17は、実施形態3において通信装置100が参照する送信元アドレスプレフィクステーブルの構成の一例を示す。
図17において、送信元アドレスプレフィクステーブル171は、通信装置100が通信パケットを送信するネットワークのIPv6アドレス(送信先アドレス)と、対応するヘッダ書換テーブルのIDと、対応する送信元アドレスプレフィクスとを定義する。図17の送信元アドレスプレフィクステーブル171は、2つのエントリ「3ffe:5::/64」、「3ffe:3::/64」を有し、それぞれ高品質ネットワークH、Iの送信先アドレスに対応する。
送信元アドレスプレフィクステーブル171は、送信先アドレスが高品質ネットワークを示す場合(「3ffe:5::/64」、「3ffe:3::/64」)に、高品質ネットワークのルータ144から通知されたプレフィクス「3ffe:5::/64」を選択するように登録しておく。
次に、本実施形態の動作を説明する。通信装置100は、ネットワーク起動時、まずIPv6リンクローカルアドレス100a「fe80::200:ff:fe00:112」を自ホストのIPアドレスとして設定する。その後、高品質ネットワークIのルータ144から、IPv6プレフィクスアドレス「3ffe:5::/64」を通知されると、IPv6グローバルアドレス100bの1番目「3ffe:5::200:ff:fe00:112」を、自ホストに設定する。通常ネットワークのルータ143から、IPv6プレフィクスアドレス「3ffe:4::/64」を通知されると、IPv6グローバルアドレス100bの2番目「3ffe:4::200:ff:fe00:112」を、自ホストに設定する。なお、このIPv6アドレス付与の動作詳細は、RFC4862に記述されている。上記の動作の結果、通信装置100は、図17に示すように、1つのリンクローカルアドレス100aと、2つのIPv6グローバルアドレス100bの3つのIPアドレスを持つ。
通信装置100が、IPv6グローバルアドレス「3ffe:3::200:ff:fe00:1203」を有する通信装置142に対してパケットを送信する場合を考える。この場合、送信先アドレスは、IPv6グローバルアドレスである。このため、通信装置100のネットワークスタック5は、自ホストの送信元アドレスとして、IPv6グローバルアドレス100b「3ffe:5::200:ff:fe00:112」および「3ffe:4::200:ff:fe00:112」のうち、本来いずれを選択してもよい。ここで、通信装置100が、2つのIPv6グローバルアドレス100bのうち、「3ffe:4::200:ff:fe00:112」を選択し、自ホストの送信元アドレスとして通信パケットのIPヘッダに設定して通信パケット送信したものと仮定する。
この場合、通信パケットを受信した通信装置142は、通信装置100に対して応答パケットを送信する際、送信すべき応答パケットの送信先アドレスに通信装置100が送信した通信パケットに設定された送信元アドレスを設定することになる。すなわち、通信装置142は、応答パケットの送信先アドレスに、「3ffe:4::200:ff:fe00:112」を設定する。このため、通信装置100への応答パケットは、ルータ145へ送信され、通常ネットワークを経路として高品質ネットワークHに接続されている通信装置100に送信される。その結果、通信装置142からの応答パケットは、高品質なネットワーク環境を利用することができなくなってしまう。本実施形態では、このようなパケット通信における品質劣化を回避するため、高品質なパケット通信を維持可能な送信元アドレスを選択する。
<通信装置100の送信元アドレス選択処理の処理手順>
図15は、実施形態3において通信装置100が実行する通信パケット生成および送信処理の概略処理手順の一例を示すフローチャートであり、図16は、図15の送信元アドレス選択処理(S152)の詳細処理手順の一例を示すフローチャートである。
図15を参照して、S151で、アプリケーションから、TCPまたはUDPパケット送信要求があると、S152で、通信装置100の送信元アドレス選択部19は、通信パケットのIPヘッダに設定すべき送信元アドレスを選択する。この送信元アドレス選択処理の詳細は、図16を参照して後述する。
S153で、通信装置100のネットワークスタック5は、TCPまたはUDPのヘッダを生成し、生成したTCPまたはUDPヘッダをアプリケーションから受け渡されたデータ(ペイロード)に付加して、TCPまたはUDPパケット化する。
S154で、通信装置100のネットワークスタック5は、IPヘッダを生成し、S153で生成されたTCPまたはUDPパケットに付加して、IPパケット化する。このとき、IPヘッダ書換部15は、送信元アドレス選択部19が選択した送信元アドレスを、IPヘッダの送信元アドレスフィールドに設定する。
次に、図16を参照して、図15のS152の送信元アドレス選択処理を詳述する。
送信元アドレス選択処理が開始すると、S1521で、通信装置100の送信元アドレス選択部19は、送信元アドレスがリンクローカルアドレスか否かを判定する。送信元アドレスがリンクローカルアドレスでない場合(S1521:N)、S1522に進む。
一方、送信元アドレスがリンクローカルアドレスである場合(S1521:Y)、S1526に進んでこのリンクローカルアドレス「fe80::200:ff:fe00:112」を選択し、S1528に進んで送信元アドレス選択処理を終了する。
なお、送信元アドレスがユニキャストである場合、送信元アドレスの先頭10ビットをマスクした値が「fe80::」であれば、リンクローカルアドレスであると判定することができる。
S1521で送信元アドレスがリンクローカルアドレスでない場合、S1522で、通信装置100の送信元アドレス選択部19は、送信元アドレスプレフィクステーブル171を検索する。この送信元アドレスプレフィクステーブル171は、送信先ネットワークのアドレスから、送信元アドレスのプレフィクスを選択するためのテーブルである。
S1523で、通信装置100の送信元アドレス選択部19は、送信元アドレスプレフィクステーブル171に、送信先アドレスに対応するエントリがあるか否かを判定する。送信元アドレスプレフィクステーブル171に、送信先アドレスに対応するエントリがある場合(S1523:Y)、S1524に進む。一方、送信元プレフィクステーブル171に、送信先アドレスに対応するエントリがない場合(S1523:N),S1527に進み、複数のIPv6グローバルアドレスの中から、任意の送信元アドレスを選択して、S1528で送信元アドレス選択処理を終了する。
S1523に戻り、送信元アドレスプレフィクステーブル171に、送信先アドレスに対応するエントリがある場合、S1524で、選択されたエントリに対して規定された送信元アドレスのプレフィクスに該当するアドレスがあるか否かを判定する。
選択された送信元アドレスのプレフィクスに該当するアドレスを、通信装置100が有していた場合(S1524:Y)、S1525に進み、プレフィクスに該当する自ホストのアドレスを送信元アドレスとして選択して、送信元アドレス選択処理を終了する。
一方、選択された送信元アドレスのプレフィクスに該当するアドレスを、通信装置100が有していない場合(S1524:N)、S1527に進む。
例えば、送信先アドレスが通信装置142である場合、送信先の高品質ネットワークIのアドレスは「3ffe:3::/64」であるから、送信元アドレスプレフィクステーブル171の2番目のエントリ「3ffe:3::/64」と一致する。このため、通信装置100の送信元アドレス選択部19は、送信元アドレスのプレフィクスを「3ffe:5::/64」とすればよいことが分かる。
通信装置100に付与された3つのアドレス100a、100bのうち、「3ffe:5::/64」と一致するIPv6グローバルアドレスは、「3ffe:5::200:ff:fe00:112」であるので、S1525で、「3ffe:5::200:ff:fe00:112」が送信元アドレスとして選択される。
一方、通信装置100から、IPv6グローバルアドレス「3ffe:1::200:ff:fe00:1201」を有する通信装置141にパケットを送信する場合、図17の送信先アドレスプレフィクステーブルには、該当する送信元アドレスのエントリがない。このため、通信装置100の送信元アドレス選択部19は、通信装置100に付与されたIPv6グローバルアドレスの中から、任意のアドレスを送信元アドレスとして選択する。
例えば、高品質ネットワークHと高品質ネットワークIとが接続されていない場合、通信装置100は、ルータ144からのルータ・アドバタイジング信号を受信しない。このため、通信装置100に付与されるアドレスは、リンクローカルアドレス「fe80::200:ff:fe00:112」とIPv6グローバルアドレス「3ffe:4::200:ff:fe00:112」の2つとなる。
この場合、通信装置100が、IPv6グローバルアドレス「3ffe:3::200:ff:fe00:1203」を有する通信装置142に通信パケットを送信しようとすると、送信元アドレスプレフィクステーブル171には送信先アドレスに該当するエントリ「3ffe:3::/64」がある。しかしながら、この送信先アドレスエントリ「3ffe:3::/64」に対応して規定される送信元アドレスのプレフィクス「3ffe:5::/64」と一致するアドレスを通信装置100は有していない。このため、S1527で、通信装置100の送信元アドレス選択部19は、使用可能なIPv6グローバルアドレスの中から、送信元アドレスを選択する。
ここで、通常ネットワークに接続する通信装置141にパケットを送信する場合、S1527で、通信装置100の高品質ネットワークHのIPv6アドレスが選択されたとしても問題はない。これは、通信装置141から送信される応答パケットが高品質を要求するものではなく、従って、IPv6パケットのTCLASSフィールドを書き換える必要は生じず、通常のパケットとして取り扱われるためである。
通信装置100の送信元アドレス選択部19を上記のように構成することで、通信装置100が高品質ネットワークIに接続された通信装置142にパケットを送信する場合、相手通信装置から送信される応答パケットの所望の品質を維持することができる。
すなわち、高品質ネットワークIへの通信パケットに設定すべき送信元アドレスとして、「3ffe:5::200:ff:fe00:112」が選択されるため、このパケットを受信した通信装置142からの応答パケットを、高品質ネットワークのアドレス宛に送信することができる。
図18は、本実施形態に係る通信装置100が参照する、送信先ネットワークテーブル181と、ヘッダ書換テーブル182〜184の構成の一例を示す。
図14に示すようなネットワーク構成を採用する場合、ルータに設定されるルーティングテーブルの設定をいずれかで誤ってしまうと、パケットが、高品質ネットワークH、I、および通常ネットワークの間で、不所望にループする可能性がある。
これに対して、図18に示すように、ヘッダ書換テーブル182〜184のHop Limitフィールド(IPv4の場合はTTLフィールド)の値を小さく設定して、通信パケットを送信すればよい。これにより、ルータやネットワークの負荷を軽減することができる。
なお、図18に示すように、それぞれの高品質ネットワークに対応するヘッダ書換テーブル182、183に加えて、すべてのネットワークについてQoSパラメータのデフォルト値を規定するデフォルトヘッダ書換テーブル184を別途設けてもよい。
以上説明したように、本実施形態によれば、IPv6プロトコルを使用する通信装置において、1つのネットワークI/Fに複数のIPv6グローバルアドレスが割り当てられる場合に、パケット通信の所望の品質を維持可能なグローバルアドレスを選択する。そして、選択されたグローバルアドレスを通信パケットのヘッダに設定する。
これにより、例えば、高品質ネットワークと通常ネットワークとが混在するネットワーク環境において、動画等の品質を要求するサービスを提供する相手通信装置から送信される応答パケットの取得経路を指示し、応答パケットの品質を維持することができる。
<他の実施形態>
なお、上述した各実施形態は、その複数を組み合わせて実現することが可能である。
また、本発明は、上述の実施形態の一部または1以上の機能を実現するプログラムによっても実現可能である。すなわち、そのプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータ(またはCPUやMPU等)における1つ以上のプロセッサがプログラムを読出し実行する処理により実現可能である。また、そのプログラムをコンピュータ可読な記録媒体に記録して提供してもよい。
また、コンピュータが読みだしたプログラムを実行することにより、実施形態の機能が実現されるものに限定されない。例えば、プログラムの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって上記した実施形態の機能が実現されてもよい。
1、10、100…通信装置、11…DRAM、12…CPU、13…ROM、14…LAN制御部、15…IPヘッダ書換部、16…接続ネットワーク判定部、17…ネットワーク、18…送信先ネットワーク判定部、19…送信元アドレス選択部、41…接続ネットワークテーブル、42、43、44、45…ヘッダ書換テーブル、121…送信先ネットワークテーブル、171…送信元アドレスプレフィクステーブル

Claims (14)

  1. 送信すべきデータに通信ヘッダが付加された通信パケットを取得する取得手段と、
    前記取得手段により取得された前記通信パケットの前記通信ヘッダ中のIPアドレスを参照して、前記通信パケットを送信すべきネットワークを判定する判定手段と、
    前記判定手段により判定された前記ネットワークに基づいて、前記通信パケットの前記通信ヘッダに、前記通信パケットの通信特性に関する情報を設定する設定手段と、
    前記設定手段により前記通信特性に関する情報が前記通信ヘッダに設定された通信パケットを送信する送信手段と、
    を備えることを特徴とする通信装置。
  2. 前記判定手段は、前記通信装置のネットワークインタフェースに割り当てられたアドレスを参照して、前記通信装置が接続されるネットワークを、前記通信パケットを送信すべき前記ネットワークとして判定する、
    ことを特徴とする請求項1に記載の通信装置。
  3. 前記判定手段は、前記通信パケットの送信先アドレスを参照して、前記通信パケットの送信先のネットワークを、前記通信パケットを送信すべき前記ネットワークとして判定する、
    ことを特徴とする請求項1または2に記載の通信装置。
  4. 前記判定手段は、前記通信装置のネットワークインタフェースに割り当てられたアドレスを参照して前記通信装置が接続されるネットワークが判定できない場合に、前記送信先アドレスを参照して前記通信パケットの前記送信先のネットワークを判定する、
    ことを特徴とする請求項3に記載の通信装置。
  5. 前記設定手段により前記通信ヘッダに設定される前記通信特性に関する情報は、前記判定手段により判定された前記ネットワークが要求する前記通信パケットの品質に関する情報を含む、
    ことを特徴とする請求項1から4のいずれか1項に記載の通信装置。
  6. 前記通信パケットの前記品質に関する情報は、IPv4プロトコルにおけるType Of ServiceおよびTime To Liveの少なくとも1つを含む、
    ことを特徴とする請求項5に記載の通信装置。
  7. 前記通信パケットの前記品質に関する情報は、IPv6プロトコルにおけるTraffic Class、Flow Label、およびHop Limitの少なくとも1つを含む、
    ことを特徴とする請求項5に記載の通信装置。
  8. 前記判定手段は、前記通信パケットの送信先アドレスを参照して、前記通信パケットの送信先のネットワークを判定し、
    前記設定手段は、前記判定手段により判定された前記ネットワークの特性に基づいて、前記通信装置に割り当て可能な複数の送信元アドレスから1つの送信元アドレスを選択して、前記通信特性に関する情報として、前記通信ヘッダに設定する、
    ことを特徴とする請求項1から7のいずれか1項に記載の通信装置。
  9. ネットワークごとに、前記通信パケットの通信プロトコル、宛先ポート番号、および送信元ポート番号の少なくとも1つに対して、前記通信パケットの前記通信特性に関する情報をテーブルとして保持する保持手段をさらに備え、
    前記設定手段は、前記保持手段により保持される前記テーブルを参照して、前記通信パケットの前記通信ヘッダに前記通信パケットの前記通信特性に関する情報を設定する、
    ことを特徴とする請求項1から8のいずれか1項に記載の通信装置。
  10. 前記設定手段は、前記通信パケットの前記通信ヘッダから、前記通信パケットの前記通信プロトコル、前記宛先ポート番号、および前記送信元ポート番号の少なくとも1つを取得して、前記テーブルを参照する、
    ことを特徴とする請求項9に記載の通信装置。
  11. 前記取得手段は、前記送信すべきデータを、前記通信装置上で稼働するアプリケーションから取得し、
    少なくとも前記判定手段および前記設定手段は、前記アプリケーションの下位レイヤであるネットワークスタックに実装される、
    ことを特徴とする請求項1から10のいずれか1項に記載の通信装置。
  12. 前記通信装置は、複数のネットワークを接続して前記通信パケットを前記複数のネットワークの間で中継するルータに実装される、
    ことを特徴とする請求項1から11のいずれか1項に記載の通信装置。
  13. 通信パケットを送信する通信装置の制御方法であって、
    送信すべきデータに通信ヘッダが付加された通信パケットを取得するステップと、
    取得された前記通信パケットを送信すべきネットワークを判定するステップと、
    判定された前記ネットワークに基づいて、前記通信パケットの前記通信ヘッダに、前記通信パケットの通信特性に関する情報を設定するステップと、
    前記通信特性に関する情報が前記通信ヘッダに設定された通信パケットを送信するステップと、
    を含むことを特徴とする通信装置の制御方法。
  14. コンピュータを、請求項1から12のいずれか1項に記載の通信装置の各手段として機能させるためのプログラム。
JP2018013010A 2018-01-29 2018-01-29 通信装置、通信装置の制御方法およびプログラム Active JP7091078B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018013010A JP7091078B2 (ja) 2018-01-29 2018-01-29 通信装置、通信装置の制御方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018013010A JP7091078B2 (ja) 2018-01-29 2018-01-29 通信装置、通信装置の制御方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2019134238A true JP2019134238A (ja) 2019-08-08
JP7091078B2 JP7091078B2 (ja) 2022-06-27

Family

ID=67546524

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018013010A Active JP7091078B2 (ja) 2018-01-29 2018-01-29 通信装置、通信装置の制御方法およびプログラム

Country Status (1)

Country Link
JP (1) JP7091078B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006121192A (ja) * 2004-10-19 2006-05-11 Nec Corp データ送信装置、データ送信方法、データ送信プログラムおよび記録媒体
JP2009540627A (ja) * 2006-06-14 2009-11-19 パナソニック株式会社 フロー制御装置
WO2011111105A1 (ja) * 2010-03-10 2011-09-15 富士通株式会社 中継装置および通信プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006121192A (ja) * 2004-10-19 2006-05-11 Nec Corp データ送信装置、データ送信方法、データ送信プログラムおよび記録媒体
JP2009540627A (ja) * 2006-06-14 2009-11-19 パナソニック株式会社 フロー制御装置
WO2011111105A1 (ja) * 2010-03-10 2011-09-15 富士通株式会社 中継装置および通信プログラム

Also Published As

Publication number Publication date
JP7091078B2 (ja) 2022-06-27

Similar Documents

Publication Publication Date Title
US10616108B2 (en) Scalable MAC address virtualization
JP6004405B2 (ja) コントローラでネットワークパケット転送を管理するシステム及び方法
US9215175B2 (en) Computer system including controller and plurality of switches and communication method in computer system
KR20200092431A (ko) 패킷 프로세싱 방법 및 디바이스
US10530736B2 (en) Method and apparatus for forwarding generic routing encapsulation packets at a network address translation gateway
JP4780477B2 (ja) トンネリング装置及びそれに用いるトンネルフレーム振分方法並びにそのプログラム
EP3054634B1 (en) Scheme for performing one-pass tunnel forwarding function on two-layer network structure
JP2007096827A (ja) 情報処理システム、トンネル通信装置、トンネル通信方法、代理応答装置、及び代理応答方法
KR20130109148A (ko) 멀티 인터페이스 시스템 내의 로컬 네트워크 자원들에 액세스
WO2022062506A1 (zh) 一种数据处理方法、装置、存储介质及电子装置
KR100827143B1 (ko) 패킷 스위치 장비 및 그 방법
US20060182120A1 (en) IP to VPLS interworking
CN105813055A (zh) 基于ip的漫游方法和装置
US10637825B2 (en) Router and method for connecting an IPv4 network and an IPv6 network
JP6011762B2 (ja) ラベルスイッチングネットワーク
CN114070770A (zh) 一种收发消息的方法、装置和系统
RU2310994C2 (ru) Фильтр для разделения трафика
Suraci et al. Convergence in home gigabit networks: Implementation of the inter-mac layer as a pluggable kernel module
JP7273125B2 (ja) BIERv6パケットを送信するための方法および第1のネットワークデバイス
JP7091078B2 (ja) 通信装置、通信装置の制御方法およびプログラム
JP2000270004A (ja) ルータ
US20080215754A1 (en) Bridging Data Network Communications
CN113746715A (zh) 通信方法及装置
US11212194B2 (en) Method for negotiating a quality of service offered by a gateway to terminals
JP4660346B2 (ja) ブリッジ装置及びブリッジ装置の制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210928

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220405

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220418

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220517

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220615

R151 Written notification of patent or utility model registration

Ref document number: 7091078

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151