JP7091078B2 - 通信装置、通信装置の制御方法およびプログラム - Google Patents
通信装置、通信装置の制御方法およびプログラム Download PDFInfo
- Publication number
- JP7091078B2 JP7091078B2 JP2018013010A JP2018013010A JP7091078B2 JP 7091078 B2 JP7091078 B2 JP 7091078B2 JP 2018013010 A JP2018013010 A JP 2018013010A JP 2018013010 A JP2018013010 A JP 2018013010A JP 7091078 B2 JP7091078 B2 JP 7091078B2
- Authority
- JP
- Japan
- Prior art keywords
- communication
- network
- communication device
- packet
- header
- 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.)
- Active
Links
- 238000004891 communication Methods 0.000 title claims description 450
- 238000000034 method Methods 0.000 title claims description 52
- 230000008569 process Effects 0.000 claims description 34
- 230000005540 biological transmission Effects 0.000 claims description 23
- 230000004044 response Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
また、IPヘッダ中、Time To Live(TTL)フィールド(IPv4)にパケットの有効期間を、またはHop Limitフィールド(IPv6)に経由するルータ数を設定して、通信パケットのネットワーク上の到達範囲を制限することができる。これらもQoSパラメータの一種である。
通信機器上で動作する通信アプリケーションは、通信パケットのIPヘッダ内のこれらのQoSパラメータの値を変更することで、送信する通信パケットの所望の品質をネットワークや通信相手機器に要求することができる。複数のネットワークを中継するルータやLayer3(L3)スイッチ等は、通信機器から受信するパケットのIPヘッダに設定されたこれらのQoSパラメータを使用して、異なるネットワーク間でのパケットの転送や中継を制御することができる。
具体的には、特許文献1の技術によれば、通信装置のネットワークアプリケーションは、通信装置内部で使用する優先度、帯域、および許容できる最大レイテンシーと、ネットワーク経路でのTOS値等との関係を、プロファイルパラメータとして設定する。通信装置は、このプロファイルパラメータを参照することにより、通信パケットの内容に適したTOS値等のQoS制御パラメータをIPヘッダに可変に設定することができる。
これにより、AVデータ等の広帯域データと、コントロールコマンドのような非常に高いリアルタイム性が要求されるデータとを、それぞれに適した異なるQoS制御パラメータで、1本のネットワークケーブルで混在させて伝送させることができる。
これにより、QoS制御を容易化することができる。
また、通信機器が接続するネットワークの規模に応じて、通信パケットのTTLやHop Limitを切り替えたいという要請がある。例えば、SOHOのLANに接続する場合には、インターネットに接続する場合よりネットワークの構成が小さいため、TTLを小さな値に設定したい。また、複雑な構成のネットワークに接続する場合にも、ルータの設定ミスなどの場合のルータの負荷を減らすため、TTLを小さな値に設定したい等である。
さらに、通信装置上で稼働するアプリケーション毎に、それぞれ、通信パケット用のQoSパラメータを判断して、通信パケットのIPヘッダに設定する機能を実装しなければ、通信パケットの品質等、所望される通信特性の要求に対応することができない。
本実施形態においては、通信パケットを生成および送信可能な通信装置において、通信パケットを送信すべきネットワークを判定し、判定されたネットワークに応じて、通信パケットに、通信パケットの通信特性を設定する。
具体的には、本実施形態において、通信装置は、通信装置が接続する接続先ネットワークの通信プロトコルごとに、通信パケットの通信特性を定義するテーブルを参照する。そして、通信装置は、参照したテーブルに定義された通信パケットの通信特性で、通信パケットのヘッダを書き換える。
これにより、通信装置上で稼働するアプリケーションが接続先のネットワークを参照して、通信パケットの通信特性を都度設定することなく、接続先のネットワークに適した通信パケットの通信特性に関する設定を適切かつ効率的に実行することができる。
また、通信パケットの新たな通信特性を要求するネットワークに新たに接続する必要が生じた場合も、上記テーブルを追加するだけで足り、アプリケーションは何ら変更する必要がない。
この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つの機能ブロックを構成するようにしてもよいし、いずれかの機能ブロックが複数の機能を行うブロックに分かれてもよい。
CPU12は、通信装置1上で稼働するアプリケーションを実行するとともに、通信装置1全体の制御を実行する。具体的には、CPU12は、アプリケーションを実行する上で必要となるデータなどをDRAM11の内部に記憶し、必要に応じてシステムバスを介して読み出しや書き込みを行う。
ROM13は、CPU12が実行する各種プログラムを格納する不揮発性メモリである。
ネットワーク17には、他の通信装置が接続されており、ネットワーク17を介して通信装置1が他の通信装置と相互に通信することが可能である。以下、通信装置1は、通信方式としてTCP/IPプロトコルを使用するものとして説明する。
なお、TCP/IPプロトコルは説明を行うために示す一例であり、通信装置1は、その他の通信プロトコルの通信プロトコル処理を実行することができる。以下、TCP/IPプロトコルは、別段の定義のない限り、UDPプロトコルを含むものとして説明する。
接続ネットワーク判定部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」が割り当てられているものとする。
通信装置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に登録されていない。
ヘッダ書換テーブル42、43は、それぞれ、高品質ネットワークに実装されるプロトコル、宛先ポート番号、および送信元ポート番号の組み合わせに対して、IPヘッダに設定すべきQoSパラメータを定義する。図4では、QoSパラメータとして、TOSおよびTTL(IPv4)、またはTCLASSおよびHop Limit(IPv6)が定義されている。
図4に示す接続先ネットワークテーブル41およびヘッダ書換テーブル42、43は、通信装置1が接続される接続先ネットワークが要求する通信パケットの品質に関する特性の仕様に応じて、予め登録しておく。
ネットワークスタック5は、下位レイヤから順に、イーサネット(登録商標)駆動部、IP、TCP/UDP、ソケット(socket)APIを備える。最上位レイヤのアプリケーションA、Bは、ソケットAPIを呼び出すことにより、ネットワークスタック5に対して、それぞれ、パケット化して送信すべきデータ(ペイロード)を受け渡したり、パケット送信を指示することができる。
図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内のイーサネットフレーム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に示す処理を実行することができる。
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ヘッダ書換処理は実行されない。
ここで、通信装置1が図2(a)の高品質ネットワークAに接続されている場合の通信装置1のIPアドレスは「172.10.10.25」である。このため、S3で、接続ネットワークテーブル41の「172.10.0.0/16」のエントリに対応するネットワーク(高品質ネットワークA)であることが分かる。次にS4で、高品質ネットワークAのIPヘッダを書き換えるためのヘッダ書換テーブル42が選択される。
S6で、IPヘッダ書換部15は、取得されたプロトコル、宛先ポート番号、および送信元ポート番号をキーとして、ヘッダ書換テーブル42のエントリを検索する。
S8で、IPヘッダ書換部15は、S7で選択されたヘッダ書換テーブル42のエントリに規定されるQoSパラメータ(TOS、TTL)の値に従って、通信パケットのIPヘッダの値を書き換える。
S9で、ネットワークスタック5から、LAN制御部14を介して、イーサネットヘッダが付加されたIPパケットが通信パケットとして、ネットワーク17に送出される。S7でヘッダ書換テーブル42に取得されたプロトコル、宛先ポート番号、および送信元ポート番号に対応するエントリがあった場合には、S8で書き換えられたIPヘッダを使用して、IPパケットが送信される。一方、ヘッダ書換テーブル42に取得されたプロトコル、宛先ポート番号、および送信元ポート番号に対応するエントリがない場合には、S1で生成されたIPヘッダのままで、IPパケットが送信される。
一方、S7で、取得されたプロトコル、宛先ポート番号、および送信元ポート番号に対応するエントリがない場合は、S8でIPヘッダの書き換えは実行されない。例えば、送信するIPパケットのIPヘッダに規定されるプロトコルが「UDP」であり、UDPヘッダに規定される宛先ポート番号が「67」、送信元ポート番号が「68」であるとする。この場合、ヘッダ書換テーブル42には、プロトコルが「UDP」、かつ宛先ポート番号が「67」、送信元ポート番号が「68」に一致するエントリがないため、S8で通信パケットのIPパケットは書き換えられずにS9でIPパケットが送信される。なお、各フィールドの値「any」はあらゆる値を許容する。
一方、通信装置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パケットが送信される。
また、図1のIPヘッダ書換部15および接続ネットワーク判定部16の少なくとも一方をプログラムに従ってヘッダ書換処理を実行するCPU12により実現してもよく、専用ハードウエアに実装してもよい。
また、上記ではIPv4プロトコルの例を説明したが、IPv6に対応する場合は、接続ネットワークテーブル41のIPv4でのI/FアドレスをIPv6でのI/アドレスにすればよい。また、ヘッダ書換テーブル42、43のTOSフィールドの値をTCLASS(Traffic Class)の値に、TTLフィールドの値をHop Limitの値に、それぞれ設定すればよい。
これにより、通信装置上で稼働するアプリケーションが接続先のネットワークを参照して通信パケットの通信特性を都度設定することなく、接続先のネットワークに適した通信パケットの通信特性に関する設定を適切かつ効率的に実行することができる。
また、通信パケットの新たな通信特性を要求するネットワークに新たに接続する必要が生じた場合も、上記テーブルを追加するだけで足り、アプリケーションは何ら変更する必要がないという利点が得られる。
以下、実施形態2を、図9から図12を参照して、上記の実施形態1と異なる点についてのみ詳細に説明する。本実施形態は、通信パケットの送信先ネットワークを判定する。そして本実施形態は、送信先ネットワークの通信プロトコルごとに通信パケットの品質に関する特性を定義するヘッダ書換テーブルを参照し、このテーブルに定義された通信パケットの品質に関する特性で、送信すべき通信パケットのヘッダを書き換える。送信先パケットの判定は、通信装置が、接続ネットワークテーブルを参照して、ヘッダ書換テーブルを示すエントリーが選択されない場合に実行されてよい。
これにより、例えば、家庭内LANやSOHOに接続する通信装置が、ルータを介して高品質ネットワークに接続されている場合に、通信パケットの送信先のネットワークに適した通信パケットの品質に関する設定を適切かつ効率的に実行することができる。
なお、「送信先ネットワーク」とは、通信パケットを送信すべきネットワークのうち、通信パケットの送信先の通信装置が属するネットワークをいう。この送信先ネットワークの識別子は、例えば、通信パケットのIPヘッダ中の送信先IPアドレスの上位ビットに記述されるネットワークアドレスを参照して取得することができる。
以下、本実施形態では、IPv4プロトコルにおけるQoSパラメータを設定する場合を例として説明するが、本実施形態がIPv6プロトコルにも適用可能であることはいうまでもない。
本実施形態に係る通信装置10は、図1に示す実施形態1の通信装置1の構成に加えて、送信先ネットワーク判定部18をさらに備える。
送信先ネットワーク判定部18は、通信パケットの送信先ネットワークを判定して、判定された送信先ネットワークに対応するヘッダ書換テーブルをIPヘッダ書換部15に通知する。この送信先ネットワークは、上記のとおり、送信すべき通信パケットのIPヘッダ中の送信先IPアドレス(図6、図7のIPv4ヘッダ61のDestination Address)から判定することができる。
具体的には、図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」が割り当てられているものとする。
図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)フィールドから取得することができる。
ヘッダ書換テーブル44、45は、図4に示すヘッダ書換テーブルと同様のエントリーを有する。すなわち、ヘッダ書換テーブル44、45は、高品質ネットワークに実装されるプロトコル、宛先ポート番号、および送信元ポート番号の組み合わせに対して、IPヘッダに設定すべきQoSパラメータを定義する。図12では、QoSパラメータとして、TOSおよびTTL(IPv4)、またはTCLASSおよびHop Limit(IPv6)が定義されている。
図10に示す送信先ネットワークテーブル121およびヘッダ書換テーブル44、45は、通信装置10が通信パケットを送信する送信先ネットワークが要求する通信パケットの品質に関する特性の仕様に応じて、予め登録しておく。
図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に進む。
S11で、通信パケットの送信先アドレスに対応するエントリが送信先ネットワークテーブル121にあるか否かを判定する。送信先アドレスに対応するエントリが送信先ネットワークテーブル121にある場合(S11:Y)、S4に進み、図3を参照して説明したS4からS8のIPヘッダ書換処理を実行する。一方、送信先アドレスに対応するエントリが送信先ネットワークテーブル121にない場合(S11:N)、S9に進んで、IPパケット書換処理は実行されない。
以下、S4からS9までの処理は、図3と同様である。
この場合は、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パケットを送信する。
例えば、ルータ104が、IPヘッダ書換部15および送信先ネットワーク判定部18を備え、図12に示す送信先ネットワークテーブル121およびヘッダ書換テーブル44、45を参照してもよい。この場合、通常ネットワークと高品質ネットワークCとを中継するルータ104が、通信パケットをネットワーク間で中継する際に、送信先ネットワークの判定を実行して、ポート番号やプロトコルに応じてヘッダの書き換えを実行すればよい。
また、図11では、S3で接続先ネットワークテーブル41に自ホスト(通信装置10)のIPアドレスのエントリーがない場合に、S10で送信先ネットワークテーブル121を検索する例を説明したが、本実施形態はこれに限定されない。
例えば、接続先ネットワークテーブル41中での、自ホストのIPアドレスのエントリー有無にかかわりなく送信先ネットワークテーブル121を検索し、ヘッダ書換テーブルの選択の際に、どのヘッダ書換テーブルを優先するかの優先制御を実行してもよい。
これにより、例えば、家庭内LANやSOHOに接続する通信装置が、ルータを介して高品質ネットワークに接続されている場合等に、通信パケットの送信先のネットワークに適した通信パケットの品質に関する設定を適切かつ効率的に実行することができる。
以下、実施形態3を、図13から図18を参照して、上記の各実施形態と異なる点についてのみ詳細に説明する。本実施形態は、IPv6プロトコルを使用する通信装置において、1つのネットワークI/Fに複数のIPv6グローバルアドレスが割り当てられる場合に、パケット通信の所望の品質を維持可能なグローバルアドレスを選択して通信パケットのヘッダに設定する。
これにより、例えば、高品質ネットワークと通常ネットワークとが混在するネットワーク環境において、動画等の品質を要求するサービスを提供する相手通信装置から送信される応答パケットの取得経路を指示し、応答パケットの品質を維持することができる。
なお、本実施形態において選択される、パケット通信の所望の品質を維持可能な通信装置のグローバルアドレスも、通信パケットの品質に関する情報であって、通信パケットの通信特性に含まれるものとする。
本実施形態に係る通信装置100は、図9に示す実施形態2の通信装置10の構成に加えて、送信元アドレス選択部19をさらに備える。
送信元ネットワーク選択部19は、通信パケットの送信先ネットワークの判定結果から、判定された送信先ネットワークに対応する送信元IPv6グローバルアドレスを、複数のIPv6グローバルアドレスから選択する。IPヘッダ書換部15は、送信元ネットワーク選択部19により選択された送信元IPv6グローバルアドレスを、送信すべき通信パケットのIPヘッダ中の送信元IPアドレスに設定する。
具体的には、図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からそれぞれ受信するルータ・アドバタイジングで指定される。
一方、高品質ネットワークIに接続する通信装置142は、IPv6グローバルアドレス「3ffe:3:200:ff:fe00:1203」を有し、例えば動画配信等、通信パケットに所定の品質を要求するサービスを提供するものとする。通信装置142は、通信パケット(応答パケット)を送信する際に、この通信パケットの送信先IPアドレスのプレフィクスを参照する。この通信パケットの送信先IPアドレスのプレフィクスが、高品質ネットワークを示していればルータ144へ、通常ネットワークを示していればルータ145へ、通信パケットを送信するよう設定されている。このような経路設定は、ルーティングテーブルを利用することで実現することができる。
図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」を選択するように登録しておく。
図15は、実施形態3において通信装置100が実行する通信パケット生成および送信処理の概略処理手順の一例を示すフローチャートであり、図16は、図15の送信元アドレス選択処理(S152)の詳細処理手順の一例を示すフローチャートである。
図15を参照して、S151で、アプリケーションから、TCPまたはUDPパケット送信要求があると、S152で、通信装置100の送信元アドレス選択部19は、通信パケットのIPヘッダに設定すべき送信元アドレスを選択する。この送信元アドレス選択処理の詳細は、図16を参照して後述する。
S154で、通信装置100のネットワークスタック5は、IPヘッダを生成し、S153で生成されたTCPまたはUDPパケットに付加して、IPパケット化する。このとき、IPヘッダ書換部15は、送信元アドレス選択部19が選択した送信元アドレスを、IPヘッダの送信元アドレスフィールドに設定する。
送信元アドレス選択処理が開始すると、S1521で、通信装置100の送信元アドレス選択部19は、送信元アドレスがリンクローカルアドレスか否かを判定する。送信元アドレスがリンクローカルアドレスでない場合(S1521:N)、S1522に進む。
一方、送信元アドレスがリンクローカルアドレスである場合(S1521:Y)、S1526に進んでこのリンクローカルアドレス「fe80::200:ff:fe00:112」を選択し、S1528に進んで送信元アドレス選択処理を終了する。
なお、送信元アドレスがユニキャストである場合、送信元アドレスの先頭10ビットをマスクした値が「fe80::」であれば、リンクローカルアドレスであると判定することができる。
S1523で、通信装置100の送信元アドレス選択部19は、送信元アドレスプレフィクステーブル171に、送信先アドレスに対応するエントリがあるか否かを判定する。送信元アドレスプレフィクステーブル171に、送信先アドレスに対応するエントリがある場合(S1523:Y)、S1524に進む。一方、送信元プレフィクステーブル171に、送信先アドレスに対応するエントリがない場合(S1523:N),S1527に進み、複数のIPv6グローバルアドレスの中から、任意の送信元アドレスを選択して、S1528で送信元アドレス選択処理を終了する。
選択された送信元アドレスのプレフィクスに該当するアドレスを、通信装置100が有していた場合(S1524:Y)、S1525に進み、プレフィクスに該当する自ホストのアドレスを送信元アドレスとして選択して、送信元アドレス選択処理を終了する。
一方、選択された送信元アドレスのプレフィクスに該当するアドレスを、通信装置100が有していない場合(S1524:N)、S1527に進む。
通信装置100に付与された3つのアドレス100a、100bのうち、「3ffe:5::/64」と一致するIPv6グローバルアドレスは、「3ffe:5::200:ff:fe00:112」であるので、S1525で、「3ffe:5::200:ff:fe00:112」が送信元アドレスとして選択される。
例えば、高品質ネットワークHと高品質ネットワークIとが接続されていない場合、通信装置100は、ルータ144からのルータ・アドバタイジング信号を受信しない。このため、通信装置100に付与されるアドレスは、リンクローカルアドレス「fe80::200:ff:fe00:112」とIPv6グローバルアドレス「3ffe:4::200:ff:fe00:112」の2つとなる。
ここで、通常ネットワークに接続する通信装置141にパケットを送信する場合、S1527で、通信装置100の高品質ネットワークHのIPv6アドレスが選択されたとしても問題はない。これは、通信装置141から送信される応答パケットが高品質を要求するものではなく、従って、IPv6パケットのTCLASSフィールドを書き換える必要は生じず、通常のパケットとして取り扱われるためである。
すなわち、高品質ネットワークIへの通信パケットに設定すべき送信元アドレスとして、「3ffe:5::200:ff:fe00:112」が選択されるため、このパケットを受信した通信装置142からの応答パケットを、高品質ネットワークのアドレス宛に送信することができる。
図14に示すようなネットワーク構成を採用する場合、ルータに設定されるルーティングテーブルの設定をいずれかで誤ってしまうと、パケットが、高品質ネットワークH、I、および通常ネットワークの間で、不所望にループする可能性がある。
これに対して、図18に示すように、ヘッダ書換テーブル182~184のHop Limitフィールド(IPv4の場合はTTLフィールド)の値を小さく設定して、通信パケットを送信すればよい。これにより、ルータやネットワークの負荷を軽減することができる。
なお、図18に示すように、それぞれの高品質ネットワークに対応するヘッダ書換テーブル182、183に加えて、すべてのネットワークについてQoSパラメータのデフォルト値を規定するデフォルトヘッダ書換テーブル184を別途設けてもよい。
これにより、例えば、高品質ネットワークと通常ネットワークとが混在するネットワーク環境において、動画等の品質を要求するサービスを提供する相手通信装置から送信される応答パケットの取得経路を指示し、応答パケットの品質を維持することができる。
なお、上述した各実施形態は、その複数を組み合わせて実現することが可能である。
また、本発明は、上述の実施形態の一部または1以上の機能を実現するプログラムによっても実現可能である。すなわち、そのプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータ(またはCPUやMPU等)における1つ以上のプロセッサがプログラムを読出し実行する処理により実現可能である。また、そのプログラムをコンピュータ可読な記録媒体に記録して提供してもよい。
また、コンピュータが読みだしたプログラムを実行することにより、実施形態の機能が実現されるものに限定されない。例えば、プログラムの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって上記した実施形態の機能が実現されてもよい。
Claims (11)
- 通信装置であって、
送信すべきデータに通信ヘッダが付加された通信パケットを取得する取得手段と、
前記通信装置のネットワークインタフェースに割り当てられたアドレスを基に、前記通信パケットを送信すべきネットワークを判定する第1の判定手段と、
前記第1の判定手段による判定の結果、前記通信パケットを送信すべきネットワークを判定できなかった場合、前記通信パケットの送信先アドレスを基に、前記通信パケットを送信すべきネットワークを判定する第2の判定手段と、
前記第1の判定手段もしくは前記第2の判定手段により前記通信パケットを送信すべきネットワークを判定できた場合、前記通信パケットの前記通信ヘッダに、前記通信パケットの通信特性に関する情報を設定する設定手段と、
前記設定手段により前記通信特性に関する情報が前記通信ヘッダに設定された通信パケットを送信する送信手段と、
を備え、
前記第2の判定手段でも前記通信パケットを送信すべきネットワークを判定できなかった場合、前記通信パケットの通信特性に関する情報を設定することなく、前記送信手段は前記通信パケットを送信することを特徴とする通信装置。 - 前記設定手段により前記通信ヘッダに設定される前記通信特性に関する情報は、前記第1の判定手段もしくは前記第2の判定手段により判定された前記ネットワークが要求する前記通信パケットの品質に関する情報を含む、
ことを特徴とする請求項1に記載の通信装置。 - 前記通信パケットの前記品質に関する情報は、IPv4プロトコルにおけるType Of ServiceおよびTime To Liveの少なくとも1つを含む、
ことを特徴とする請求項2に記載の通信装置。 - 前記通信パケットの前記品質に関する情報は、IPv6プロトコルにおけるTraffic Class、Flow Label、およびHop Limitの少なくとも1つを含む、
ことを特徴とする請求項2に記載の通信装置。 - 前記第2の判定手段により前記通信パケットを送信すべきネットワークを判定できた場合、
前記設定手段は、前記第2の判定手段により判定された前記ネットワークの特性に基づいて、前記通信装置に割り当て可能な複数の送信元アドレスから1つの送信元アドレスを選択して、前記通信特性に関する情報として、前記通信ヘッダに設定する、
ことを特徴とする請求項1から4のいずれか1項に記載の通信装置。 - ネットワークごとに、前記通信パケットの通信プロトコル、宛先ポート番号、および送信元ポート番号の少なくとも1つに対して、前記通信パケットの前記通信特性に関する情報をテーブルとして保持する保持手段をさらに備え、
前記設定手段は、前記保持手段により保持される前記テーブルを参照して、前記通信パケットの前記通信ヘッダに前記通信パケットの前記通信特性に関する情報を設定する、
ことを特徴とする請求項1から5のいずれか1項に記載の通信装置。 - 前記設定手段は、前記通信パケットの前記通信ヘッダから、前記通信パケットの前記通信プロトコル、前記宛先ポート番号、および前記送信元ポート番号の少なくとも1つを取得して、前記テーブルを参照する、
ことを特徴とする請求項6に記載の通信装置。 - 前記取得手段は、前記送信すべきデータを、前記通信装置上で稼働するアプリケーションから取得し、
少なくとも前記第1の判定手段、前記第2の判定手段、および前記設定手段は、前記アプリケーションの下位レイヤであるネットワークスタックに実装される、
ことを特徴とする請求項1から7のいずれか1項に記載の通信装置。 - 前記通信装置は、複数のネットワークを接続して前記通信パケットを前記複数のネットワークの間で中継するルータに実装される、
ことを特徴とする請求項1から8のいずれか1項に記載の通信装置。 - 通信パケットを送信する通信装置の制御方法であって、
送信すべきデータに通信ヘッダが付加された通信パケットを取得する取得工程と、
前記通信装置のネットワークインタフェースに割り当てられたアドレスを基に、前記通信パケットを送信すべきネットワークを判定する第1の判定工程と、
前記第1の判定工程における判定の結果、前記通信パケットを送信すべきネットワークを判定できなかった場合、前記通信パケットの送信先アドレスを基に、前記通信パケットを送信すべきネットワークを判定する第2の判定工程と、
前記第1の判定工程もしくは前記第2の判定工程において前記通信パケットを送信すべきネットワークを判定できた場合、前記通信パケットの前記通信ヘッダに、前記通信パケットの通信特性に関する情報を設定する設定工程と、
前記通信特性に関する情報が前記通信ヘッダに設定された通信パケットを送信する送信工程と、
を含み、
前記第2の判定工程においても前記通信パケットを送信すべきネットワークを判定できなかった場合、前記通信パケットの通信特性に関する情報を設定することなく、前記送信工程において前記通信パケットを送信することを特徴とする通信装置の制御方法。 - コンピュータを、請求項1から9のいずれか1項に記載の通信装置の各手段として機能させるためのプログラム。
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 JP2019134238A (ja) | 2019-08-08 |
JP7091078B2 true 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)
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 | 富士通株式会社 | 中継装置および通信プログラム |
-
2018
- 2018-01-29 JP JP2018013010A patent/JP7091078B2/ja active Active
Patent Citations (3)
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 |
---|---|
JP2019134238A (ja) | 2019-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6004405B2 (ja) | コントローラでネットワークパケット転送を管理するシステム及び方法 | |
US10616108B2 (en) | Scalable MAC address virtualization | |
CN108092830B (zh) | 在Mesh网络中应用TCP/IP协议的方法 | |
US20140153577A1 (en) | Session-based forwarding | |
US20130170354A1 (en) | Computer system and communication method in computer system | |
US20120281711A1 (en) | Method And System For Network Aware Virtual Machines | |
EP3054634B1 (en) | Scheme for performing one-pass tunnel forwarding function on two-layer network structure | |
JP2003060662A (ja) | 通信装置及び通信方法、並びにプログラム及び記録媒体 | |
KR20130109148A (ko) | 멀티 인터페이스 시스템 내의 로컬 네트워크 자원들에 액세스 | |
JP2018516520A (ja) | データパケット転送 | |
JP2001230818A (ja) | ルート・サーバ | |
US9467367B2 (en) | Universal labels in internetworking | |
US8045566B2 (en) | Automated router load balancing | |
WO2012130083A1 (zh) | 一种配置地址解析协议arp表项的方法和装置 | |
KR100827143B1 (ko) | 패킷 스위치 장비 및 그 방법 | |
CN105813055A (zh) | 基于ip的漫游方法和装置 | |
CN114205297B (zh) | 流量转发处理方法及设备 | |
JP7091078B2 (ja) | 通信装置、通信装置の制御方法およびプログラム | |
JP2013135397A (ja) | ラベルスイッチングネットワーク | |
Suraci et al. | Convergence in home gigabit networks: Implementation of the inter-mac layer as a pluggable kernel module | |
JP2010062757A (ja) | Dnsプロキシ装置及びdns中継方法 | |
JP7273125B2 (ja) | BIERv6パケットを送信するための方法および第1のネットワークデバイス | |
JP2000270004A (ja) | ルータ | |
KR101415978B1 (ko) | 가상랜을 이용한 데이터전송장치에서의 서브넷 디에이치씨피 서버 설정 및 운영 시스템 및 방법 | |
US11212194B2 (en) | Method for negotiating a quality of service offered by a gateway to terminals |
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 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D03 |