(57)【特許請求の範囲】
【請求項１】
送信対象のパケットがその送信順に書き込まれる送信キューと、
前記送信キューに格納されているパケットをその書き込み順に読み出し、その宛先へ送信する送信手段と、
時間の経過とともに前記送信手段によるパケットの送信速度を最大速度まで徐々に引き上げる一方、前記パケットの送信先からパケットロスの発生を通知されたことを契機として、前記送信速度が最小速度を上回っているか否かを判定し、上回っている場合には前記送信速度を引き下げ、その逆の場合には、前記送信速度を前記最小速度に等しくする送信速度制御手段と、
時間の経過とともに前記最小速度を徐々に引き下げ、前記送信キュー内の滞留パケット数が所定の閾値に達した場合、または前記送信キューへのパケットの書き込みに失敗したことを検知した場合に、前記最大速度を上回らない範囲で前記最小速度を引き上げる最小速度調整手段と、
を有することを特徴とする通信装置。
【請求項２】
各々異なる優先順位を割り当てられた複数の送信キューであって、送信対象である複数種のパケットが各パケットの優先順位に応じたものに順次書き込まれる複数の送信キューと、
前記複数の送信キューのうちで最も高い優先順位を有するものに格納されているパケットのうちで最も古いものを読み出し、その宛先へ送信する処理を前記複数の送信キューの全てが空になるまで繰り返し実行する送信手段と、
時間の経過とともに前記送信手段によるパケットの送信速度を最大速度まで徐々に引き上げる一方、前記パケットの送信先からパケットロスの発生を通知されたことを契機として、前記送信速度が最小速度を上回っているか否かを判定し、上回っている場合には前記送信速度を引き下げ、その逆の場合には、前記送信速度を前記最小速度に等しくする送信速度制御手段と、
時間の経過とともに前記最小速度を徐々に引き下げ、前記複数の送信キューのうちで最も優先順位が高いものの滞留パケット数が所定の閾値に達した場合、または当該送信キューへのパケットの書き込みに失敗したことを検知した場合に、前記最大速度を上回らない範囲で前記最小速度を引き上げる最小速度調整手段と、
を有することを特徴とする通信装置。
【請求項３】
第１の通信網と前記第１の通信網とは異なる第２の通信網とに接続され、
予め優先順位付けされているとともに前記第２の通信網内の通信装置へ宛てて送信されてくる複数種類のパケットを前記第１の通信網を介して受信し、前記複数の送信キューのうちでそのパケットの優先順位に応じたものに書き込む受信手段を有する中継装置であることを特徴とする請求項２に記載の通信装置。
【請求項４】
コンピュータ装置を、
送信対象のパケットを送信キューへその送信順に書き込むとともに、前記送信キューに格納されているパケットをその書き込み順に読み出し、その宛先へ送信する送信手段と、
時間の経過とともに前記送信手段によるパケットの送信速度を最大速度まで徐々に引き上げる一方、前記パケットの送信先からパケットロスの発生を通知されたことを契機として、前記送信速度が最小速度を上回っているか否かを判定し、上回っている場合には前記送信速度を引き下げ、その逆の場合には、前記送信速度を前記最小速度に等しくする送信速度制御手段と、
時間の経過とともに前記最小速度を徐々に引き下げ、前記送信キュー内の滞留パケット数が所定の閾値に達した場合、または前記送信キューへのパケットの書き込みに失敗したことを検知した場合に、前記最大速度を上回らない範囲で前記最小速度を引き上げる最小速度調整手段
として機能させることを特徴とするプログラム。
【請求項５】
コンピュータ装置を、
送信対象である複数種のパケットの各々を、各々異なる優先順位を割り当てられた複数の送信キューのうちでそのパケットの優先順位に応じたものに書き込むとともに、最も優先順位の高いものから最も古いパケットを読み出し、その宛先へ送信する処理を前記複数の送信キューの全てが空になるまで繰り返し実行する送信手段と、
時間の経過とともに前記送信手段によるパケットの送信速度を最大速度まで徐々に引き上げる一方、前記パケットの送信先からパケットロスの発生を通知されたことを契機として、前記送信速度が最小速度を上回っているか否かを判定し、上回っている場合には前記送信速度を引き下げ、その逆の場合には、前記送信速度を前記最小速度に等しくする送信速度制御手段と、
時間の経過とともに前記最小速度を徐々に引き下げ、前記複数の送信キューのうちで最も優先順位が高いものの滞留パケット数が所定の閾値に達した場合、または当該送信キューへのパケットの書き込みに失敗したことを検知した場合に、前記最大速度を上回らない範囲で前記最小速度を引き上げる最小速度調整手段
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信網を介したデータ通信に関し、特に、限られた帯域幅を有効利用する技術に関する。
【背景技術】
【０００２】
インターネットなどの広域網を介して提供されるＩＰ電話通信や映像のストリーミング配信などの通信サービスにおいて、通話音声や映像に途切れが生じることを回避する技術の一例としてＱｏＳ（Quality of Service）が挙げられる。ＱｏＳとは、ＬＡＮ（Local
Area Network）と、このＬＡＮよりも利用可能帯域の狭い広域網とを接続する中継装置で実行される通信制御である。ＱｏＳは、ＬＡＮから広域網へ向けて送信される複数種類のパケットの各々にその種類に応じた優先順位を予め割り当てておき、優先順位の高いパケットほど広域網にて充分な帯域幅が割り当てられるようにする通信制御であり、以下のようにして実現される。すなわち、ＬＡＮと広域網とを接続する中継装置に各々互いに異なる優先順位を有する複数の送信キューを設け、ＬＡＮから送信されてくる上記複数種のパケットの各々をその優先順位に応じた送信キューへ蓄積する処理を実行させる。そして、パケットが蓄積されている送信キューのうちで最も優先順位が高いものが空になるまで、その送信キューからパケットを読み出し、その宛先へと送信する処理を上記中継装置に実行させるのである。
【０００３】
上記のようなＱｏＳを行うことによって、優先順位の高いパケットについての通信ほど広域網で利用可能な帯域幅を無駄なく利用し、パケットロスなどの不具合が発生しにくくなる。ここで、パケットロスとは、データ通信に係るパケットに欠落が生じることであり、その発生原因としては、通信網の輻輳や、受信側の通信装置の処理能力不足（或いは過剰に高い処理負荷がかかっている）によりその受信に失敗すること（図９参照）が挙げられる。後者のタイプのパケットロスを前者のタイプと区別する必要がある場合には、内部パケットロスと呼ぶ。
【０００４】
前述したＱｏＳは、前者のタイプのパケットロス（すなわち、通信網の輻輳に起因したパケットロス）の発生を回避するための技術である。一方、内部パケットロスの発生を回避するための技術も種々提案されており、その一例としては、非特許文献１に開示された技術が挙げられる。この非特許文献１に開示された技術では、パケットの受信側の通信装置に、自装置に掛かっている負荷を検出させ、所定の閾値を超える負荷が掛かっていることが検出された場合には、パケットの送信速度を抑制することをその送信側の通信装置へ通知させる。一方、送信側の通信装置では、上記通知に応じてパケットの送信速度を引き下げることにより、受信側の通信装置において、その処理能力不足等に起因したパケットロスの発生が回避される。
【非特許文献１】ヤマハ、インターネット、［online］、<URL:http://www.rtpro.yamaha.co.jp/RT/docs/load-watch/index.html>
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、非特許文献１に開示されたようにパケットロスの発生を通知される度にパケットの送信速度を引き下げる態様では、送信速度を引き下げるにつれて最も優先順位の高い送信キューについても多数のパケットが滞留するようになる。そして、送信キューが満杯になると、送信キューへの新たなパケットの書き込みに失敗し、図１０に示すように、送信側の通信装置において内部パケットロスが発生する。このように送信側の通信装置で内部パケットロスが発生すると、送信キューに蓄積されているパケットの全てが支障なくその宛先へ到達した（つまり、通信網内でパケットロスが発生しない）としても、図１０に示すように受信側へ送信されるパケットに不連続（シーケンス番号の不連続）が生じ、受信側の通信装置は、自装置内にて内部パケットロスが発生したものとみなして、前述した抑制通知を返信する。この抑制通知を受信した送信側の通信装置では、さらにパケットの送信速度を引き下げるため、送信キュー内のパケットの滞留が解消せず、事態がさらに悪化する。
【０００６】
このような悪循環の発生を回避するためには、パケット送信についての最小速度を予め定め、その最小速度を下回って送信速度が引き下げられないようにする必要がある。かかる最小速度を定めるにあたっては、最も優先順位の高いパケットについて送信側の通信装置で内部パケットロスが発生しないように定める必要があることは勿論であるが、その値が大きすぎると、パケット通信を仲介する通信網に輻輳を生じさせ易いといった問題や、受信側での内部パケットロスを解決できなくなるといった問題が生じる。このため、上記最小速度を定めるにあたっては、パケットの送出先の通信網にて利用可能な帯域幅や、パケット通信の両端に位置する通信装置の処理能力等をシステム構築に先立って綿密に調査する必要がある。しかし、上記通信網がインターネットなどの広域網である場合には、このような調査には大変な手間がかかる。
本発明は、上記課題に鑑みて為されたものであり、システム構築の際に特段の調査を行わなくても、利用可能な帯域幅を無駄なく利用し、かつ、適切な最小速度を設定してパケット通信を行うことを可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために本発明は、送信対象のパケットがその送信順に書き込まれる送信キューと、前記送信キューに格納されているパケットをその書き込み順に読み出し、その宛先へ送信する送信手段と、時間の経過とともに前記送信手段によるパケットの送信速度を最大速度まで徐々に引き上げる一方、前記パケットの送信先からパケットロスの発生を通知されたことを契機として、前記送信速度が最小速度を上回っているか否かを判定し、上回っている場合には前記送信速度を引き下げ、その逆の場合には、前記送信速度を前記最小速度に等しくする送信速度制御手段と、時間の経過とともに前記最小速度を徐々に引き下げ、前記送信キュー内の滞留パケット数が所定の閾値に達した場合、または前記送信キューへのパケットの書き込みに失敗したことを検知した場合に、前記最大速度を上回らない範囲で前記最小速度を引き上げる最小速度調整手段とを有することを特徴とする通信装置、およびコンピュータ装置を上記各手段として機能させることを特徴とするプログラムを提供する。
【０００８】
このような通信装置およびプログラムによれば、最小速度を時間の経過とともに徐々に引き下げる処理が実行される一方、当該通信装置で内部パケットロスが発生した場合、または、送信キュー内の滞留パケット数が所定の閾値（例えば、送信キューに格納可能なパケット数の最大値やその最大値よりも若干小さい値）に達し、内部パケットロスの発生が懸念される場合に、上記最小速度を引き上げる処理が実行され、その引き上げ後の最小速度と送信速度との大小関係が逆転した状態で抑制通知を受信すると、送信速度を当該引き上げ後の最小速度に等しくする処理が実行される。つまり、本発明によれば、パケットを送信する際の最小速度として、その送信側の通信装置で内部パケットロスが発生するかしないかのぎりぎりの値が自動的に設定されることになる。
【０００９】
また、別の好ましい態様においては、各々異なる優先順位を割り当てられた複数の送信キューであって、送信対象である複数種のパケットが各パケットの優先順位に応じたものに順次書き込まれる複数の送信キューと、前記複数の送信キューのうちで最も高い優先順位を有するものに格納されているパケットのうちで最も古いものを読み出し、その宛先へ送信する処理を前記複数の送信キューの全てが空になるまで繰り返し実行する送信手段と、時間の経過とともに前記送信手段によるパケットの送信速度を最大速度まで徐々に引き上げる一方、前記パケットの送信先からパケットロスの発生を通知されたことを契機として、前記送信速度が最小速度を上回っているか否かを判定し、上回っている場合には前記送信速度を引き下げ、その逆の場合には、前記送信速度を前記最小速度に等しくする送信速度制御手段と、時間の経過とともに前記最小速度を徐々に引き下げ、前記複数の送信キューのうちで最も優先順位が高いものの滞留パケット数が所定の閾値に達した場合、または当該送信キューへのパケットの書き込みに失敗したことを検知した場合に、前記最大速度を上回らない範囲で前記最小速度を引き上げる最小速度調整手段とを有することを特徴とする通信装置、およびコンピュータ装置を上記各手段として機能させるプログラムを提供する。
【００１０】
このような通信装置およびプログラムによれば、各々異なる優先順位を割り当てられた複数の送信キューを用いてＱｏＳを行いつつパケット送信を行う際の最小速度を、最も優先順位の高い送信キューについて内部パケットロスが発生するかしないかのぎりぎりの値に自動設定することが可能になる。
【００１１】
より好ましい態様においては、上記通信装置は、第１の通信網と前記第１の通信網とは異なる第２の通信網とに接続される中継装置であり、予め優先順位付けされているとともに前記第２の通信網内の通信装置へ宛てて送信される複数種類のパケットを前記第１の通信網を介して受信し、前記複数の送信キューのうちでそのパケットの優先順位に応じたものに書き込む受信手段を備えていることを特徴とする。
【発明を実施するための最良の形態】
【００１２】
以下、本発明を実施する際の最良の形態について説明する。
（Ａ：構成）
図１は、本発明に係る通信装置の一実施形態に係る中継装置を含む通信システム１の構成例を示すブロック図である。図１に示すように、通信システム１には、中継装置１０Ａを介して例えばインターネットなどの広域網である通信網２０に接続されるクライアント側ＬＡＮ３０と、中継装置１０Ｂを介して通信網２０に接続されるサーバ側ＬＡＮ４０とが含まれている。クライアント側ＬＡＮ３０には、例えばパーソナルコンピュータなどのコンピュータ装置であるクライアント装置３１Ａおよび３１Ｂが接続されており、サーバ側ＬＡＮ４０には、同じくコンピュータ装置であるサーバ装置４１が接続されている。
【００１３】
図１に示す通信システム１では、クライアント装置３１Ａや３１Ｂからサーバ装置４１へ宛てて送信されるパケットは、中継装置１０Ａ、通信網２０、中継装置１０Ｂをこの順に経てその宛先であるサーバ装置４１へと到達する。不特定多数のユーザによって利用される広域網である通信網２０でクライアント装置３１Ａや３１Ｂのユーザが利用可能な帯域幅は、クライアント側ＬＡＮ３０で利用可能な帯域幅よりも狭いため、中継装置１０Ａでは、前述したＱｏＳが実行される。すなわち、クライアント装置３１Ａや３１Ｂから広域網２０へ向けて送信されるパケットに各々異なる優先順位が割り当てられている場合には、各々の優先順位に応じた転送制御が中継装置１０Ａで行われる。加えて、本実施形態では、中継装置１０Ａおよび１０Ｂに本発明に係る通信装置に特徴的な処理を行わせることによって、システム構築の際に特段の調査を行わなくても、通信網２０にて利用可能な帯域幅を無駄なく利用し、かつ、適切な最小速度を設定してパケット通信を行うことを可能にしているのである。
以下、本発明の特徴を顕著に示す中継装置１０Ａおよび１０Ｂを中心に説明する。以下では、中継装置１０Ａおよび１０Ｂの各々を区別する必要がない場合には、「中継装置１０」と表記する。
【００１４】
図２は、中継装置１０の構成例を示すブロック図である。
図２に示すように中継装置１０は、制御部１１０、第１通信インタフェース（以下、「Ｉ／Ｆ」）部１２０、第２通信Ｉ／Ｆ部１３０、記憶部１４０およびこれら構成要素間のデータ授受を仲介するバス１５０を含んでいる。
【００１５】
制御部１１０は、例えばＣＰＵ（Central Processing Unit）である。制御部１１０は、記憶部１４０に格納されている通信制御プログラムを実行することにより、中継装置１０の制御中枢として機能する。この通信制御プログラムにしたがって制御部１１０が実行する処理の詳細については後に明らかにする。
【００１６】
第１通信Ｉ／Ｆ部１２０と第２通信Ｉ／Ｆ部１３０とは、共にＮＩＣ（Network Interface Card）であり、各々異なる通信網に接続されている。より詳細に説明すると、第２通信Ｉ／Ｆ部１３０は通信網２０に接続されており、第１通信Ｉ／Ｆ部１２０は他方の通信網に接続されている。例えば、中継装置１０Ａの第１通信Ｉ／Ｆ部１２０は、クライアント側ＬＡＮ３０に接続されており、中継装置１０Ｂの第１通信Ｉ／Ｆ部１２０は、サーバ側ＬＡＮ４０に接続されている。第１通信Ｉ／Ｆ部１２０と第２通信Ｉ／Ｆ部１３０の各々は、その接続先である通信網から受信したパケットを制御部１１０へ引渡す一方、制御部１１０から引渡されたパケットを各々の接続先である通信網へと送出する。
【００１７】
記憶部１４０は、図１に示すように、揮発性記憶部１４１と不揮発性記憶部１４２とを含んでいる。揮発性記憶部１４１は、例えばＲＡＭ（Random Access Memory）であり、各種プログラムを実行する際のワークエリアとして利用される。パケットの送信側の中継装置１０においては、前述したＱｏＳで使用する複数の送信キューの各々の役割を果たすバッファ領域が揮発性記憶部１４１内に確保される。
【００１８】
一方、不揮発性記憶部１４２は、ＦｌａｓｈＲＯＭ（Flash Read Only Memory）やハードディスクである。この不揮発性記憶部１４２には、通信網２０へパケットを送信する際の送信速度の上限（最大速度）および下限（最小速度）の初期値を示すデータが格納されている。これら初期値については、通信網２０にて利用可能な帯域幅の理論値や中継装置１０の処理性能についての理論値を参考にして定めても良く、また、経験則にしたがって定めても良い。このように、パケット通信の最小速度を特段の調査を行うことなく理論値等に基づいて定めても、最適な値が自動的に再設定される点に本実施形態の特徴がある。この点については後に詳細に説明する。
【００１９】
また、不揮発性記憶部１４２には、ルータなどの一般的な中継装置が行うデータ転送処理やキュー制御処理（図２では、何れも図示省略）の他に、本発明に係る通信装置に特徴的な受信側制御処理１４２Ｒや送信側制御処理１４２Ｓを制御部１１０に実行させる通信制御プログラムが格納されている。ここで、受信側制御処理１４２Ｒは、インターネットなどの広域網を介して送信されてくるパケットを受信する側の通信装置で実行される処理であり、送信側制御処理１４２Ｓは、広域網へパケットを送出する側の通信装置で実行される処理である。以下、クライアント側ＬＡＮ３０からサーバ側ＬＡＮ４０へパケットが送信される場合（すなわち、中継装置１０Ａが送信側の通信装置となり、中継装置１０Ｂが受信側の通信装置となる場合）を例にとって、受信側制御処理１４２Ｒおよび送信側制御処理１４２Ｓについて詳細に説明する。
【００２０】
（Ｂ：受信側制御処理１４２Ｒ）
受信側制御処理１４２Ｒには、第２通信Ｉ／Ｆ部１３０により受信したパケットをその宛先へと転送するパケット中継処理の他、図３に示す抑制通知送信処理が含まれる。図３に示すように、この抑制通知送信処理では、何らかの原因（例えば、中継装置１０Ｂやサーバ装置４１の処理能力不足や通信網２０における輻輳）によるパケットロスが検出されると（ステップＲ０１０）、パケットの送信側の通信装置（本実施形態では、中継装置１０Ａ）がパケット送信速度の抑制を行う機能を有しているか否かを判定する処理（ステップＲ０２０）が実行される。そして、ステップＲ０２０の判定結果が“Ｙｅｓ”である場合にのみ、パケットの送信速度の抑制を要請する旨の通信メッセージ（以下、抑制通知）を送信する処理（ステップＲ０３０）が実行されるのである。このようにして中継装置１０Ｂから送信される抑制通知は通信網２０を介して中継装置１０Ａに送り届けられる。
【００２１】
（Ｃ：送信側制御処理１４２Ｓ）
一方、送信側制御処理１４２Ｓには、図４（Ａ）に示すように、抑制通知受信処理１４２１とタイマ処理１４２２とが含まれる。
【００２２】
図４（Ｂ）は、抑制通知受信処理１４２１の流れを示すフローチャートである。
図４（Ｂ）に示すように、この抑制通知受信処理１４２１では、前述した抑制通知の受信（ステップＳ０１０）を契機として、その時点で設定されているパケットの送信速度がその時点の最小速度（例えば、前述した初期値の表す最小速度）を上回っているか否かを判定する処理（ステップＳ０２０）が実行される。そして、ステップＳ０２０の判定結果が“Ｙｅｓ”である場合には、パケットの送信速度を予め定められた減分だけ引き下げる処理（ステップＳ０３０）が実行され、逆に、その判定結果が“Ｎｏ”である場合には、上記送信速度をその時点の最小速度に等しくする処理（ステップＳ０４０）が実行される。このような抑制通知受信処理１４２１が実行される結果、中継装置１０Ａから通信網２０へパケットを送信する際の送信速度は図４（Ｃ）に示すように変化する。すなわち、送信速度が最小速度を上回っている状況下で中継装置１０Ａが抑制通知を受信すると、送信速度は、抑制通知の受信の度に所定の減分ずつ徐々に引き下げられ、その送信速度がその時点の最小速度を下回っている状態で抑制通知を受信すると、その送信速度はその時点の最小速度まで引き上げられるのである。
【００２３】
以上に説明した抑制通知受信処理１４２１が実行される結果、本実施形態に係る中継装置１０Ａでは、中継装置１０Ｂから送信されてくる抑制通知に応じて、最小速度を超えて際限なく送信速度が引き下げられることが回避される。なお、非特許文献１に開示された技術では、送信速度が予め定めた最小速度を下回るといった事態が発生することはなかったが、本実施形態では、後述するタイマ処理１４２２にて最小速度が適宜更新される。このため、本実施形態に係る抑制通知受信処理１４２１では、ステップＳ０２０およびステップＳ０４０の実行が必要になるのである。
【００２４】
図４（Ｄ）は、タイマ処理１４２２の流れを示すフローチャートである。このタイマ処理１４２２は、一定の時間間隔Ｔ（例えば、１０秒間隔など）で実行される処理である。このタイマ処理１４２２では、図４（Ｄ）に示すように、送信キュー状態監視処理１４２２Ａ、内部パケットロス監視処理１４２２Ｂ、最小速度変更処理１４２２Ｃ、および送信速度リカバリ処理１４２２Ｄの４つの処理がこの順に実行される。本実施形態に係る中継装置１０の特徴は、図４（Ｄ）に示すタイマ処理１４２２を一定の時間間隔で実行することにある。以下、タイマ処理１４２２を構成する上記各４つの処理について図面を参照しつつ詳細に説明する。
【００２５】
図５（Ａ）は、送信キュー状態監視処理１４２２Ａの流れを示すフローチャートであり、図５（Ｂ）は、内部パケットロス監視処理１４２２Ｂの流れを示すフローチャートである。
図５（Ａ）に示すように、送信キュー状態監視処理１４２２Ａでは、前述した複数の送信キューのうちで最も優先順位が高いものの滞留パケット数（その送信キューに格納され、送信待ちとなっているパケットの数）が所定の閾値（例えば、その送信キューに格納可能なパケット数の最大値、またはその最大値よりも若干小さい値、）に達しているか否かを判定し（ステップＡ０１０）、その判定結果が“Ｙｅｓ”である場合（すなわち、送信キューが満杯となり内部パケットロスの発生が懸念される場合）には、速度警告フラグの値をＯＮにする処理（ステップＡ０２０）が実行される。一方、内部パケットロス監視処理１４２２Ｂでは、図５（Ｂ）に示すように、上記送信キューへのパケットの書き込みに失敗した回数を示すカウンタ値（すなわち、上記送信キューについての内部パケットロスの発生回数を示すカウンタ値、図５（Ｂ）では、エンキュー失敗カウンタ値）を参照し（ステップＢ０１０）、そのカウンタ値が前回の参照時に比較して増加しているか否かが判定される（ステップＢ０２０）。そして、ステップＢ０２０の判定結果が“Ｙｅｓ”である場合（すなわち、内部パケットロスが発生した場合）には、速度警告フラグの値をＯＮにし（ステップＢ０３０）、その時点の上記カウンタ値を記憶する処理（ステップＢ０４０）が実行される。このステップＢ０４０で記憶したカウンタ値は、所定時間経過後に実行される内部パケットロス監視処理１４２２ＢのステップＢ０２０において、その時点のカウンタ値との比較に使用される。
【００２６】
図６（Ａ）は、送信キュー状態監視処理１４２２Ａおよび内部パケットロス監視処理１４２２Ｂに後続して実行される最小速度変更処理１４２２Ｃの流れを示すフローチャートである。図６（Ａ）に示すように、この最小速度変更処理１４２２Ｃでは、前述した速度警告フラグの値に応じて最小速度を変更する処理が実行される。より詳細に説明すると、この最小速度変更処理１４２２Ｃでは、まず、速度警告フラグの値が“ＯＮ”であるか否かを判定する処理（ステップＣ０１０）が実行される。そして、ステップＣ０１０の判定結果が“Ｙｅｓ”である場合には、最小速度を、前述した最大速度を超えない範囲で予め定められた増分だけ増加させ（ステップＣ０２０）、さらに速度警告フラグをＯＦＦにリセットする処理（ステップＣ０３０）が実行される。逆に、ステップＣ０１０の判定結果が“Ｎｏ”である場合には、最小速度を予め定められた減分だけ引き下げる処理（ステップＣ０４０）が実行される。
【００２７】
本実施形態では、送信キュー状態監視処理１４２２Ａ、内部パケットロス監視処理１４２２Ｂおよび最小速度変更処理１４２２Ｃの３つの処理がこの順に一定時間間隔Ｔで実行されることによって、通信網２０へパケットを送信する際の送信速度の下限を示す最小速度は、概ね図６（Ｂ）に示すように、時間の経過とともに徐々に引き下げられ、内部パケットロスの発生が懸念されること、または実際に内部パケットロスが発生したことを契機に引き上げられる。これにより、本実施形態では、上記最小速度の適切な値（最も優先順位の高い送信キューについて内部パケットロスを発生させないぎりぎり値）が自動的に探し出され、その値が設定されるのである。なお、本実施形態では、内部パケットロスが発生する懸念の有無を判定する処理（送信キュー状態監視処理１４２２Ａ）、および実際に内部パケットロスの発生状況を監視する処理（内部パケットロス監視処理１４２２Ｂ）の両方の処理を一定時間間隔で実行したが、両処理の一方のみを実行して速度警告フラグの更新を行っても良い。
【００２８】
図７（Ａ）は、送信速度リカバリ処理１４２２Ｄの流れを示すフローチャートである。
図７（Ａ）に示すように、この送信速度リカバリ処理１４２２Ｄでは、まず、その時点の送信速度が予め定められた上限（最大速度）に達しているか否かを判定する処理（ステップＤ０１０）が実行され、その判定結果が“Ｎｏ”である場合にのみ、送信速度を引き上げる処理（ステップＤ０２０）が実行される。この送信速度リカバリ処理１４２２Ｄは、前述したタイマ処理１４２２の一部として一定の時間間隔Ｔで実行されるのであるから、パケットの受信側の中継装置（本実施形態では、中継装置１０Ｂ）から抑制通知が送信されてこなければ、中継装置１０Ａが通信網２０へパケットを送信する際の送信速度は図７（Ｂ）に示すように、時間の経過とともに予め定められた上限（最大速度）まで徐々に増加することになる。このように、時間の経過とともに送信速度を徐々に引き上げるのは通信網２０にて利用可能な帯域幅を無駄なく利用するためである。
【００２９】
上記各処理が実行される結果、中継装置１０Ａが通信網２０へパケットを送信する際の送信速度およびその送信速度の下限（最小速度）は、時間の経過とともに概ね図８に示すように変化する。すなわち、パケット通信を開始してから時刻ｔ１に最初の抑制通知を受信するまでの間は、送信速度は送信速度リカバリ処理１４２２Ｄによって予め定められた最大速度まで時間の経過とともに徐々に引き上げられ、時刻ｔ１以降は抑制通知を受信する度に抑制通知受信処理１４２１によって一定量ずつ引き下げられる。時刻ｔ１以降は、送信速度が徐々に引き下げられるのであるから、送信キュー内の滞留パケット数が時間の経過とともに増加する。一方、最小速度については、時刻ｔ２（ｔ１＜ｔ２）において速度警告フラグがＯＮになるまで、最小速度変更処理１４２２Ｃによって時間の経過とともに徐々に引き下げられ、時刻ｔ２以降は、送信キューにおけるパケットの滞留が解消するまでは速度警告フラグの値はＯＮに保持されるため、徐々に引き上げられる。そして、時刻ｔ３において送信速度と最小速度との大小関係が逆転すると、抑制通知の受信（時刻ｔ４）を契機に送信速度の値をその時点の最小速度まで引き上げる処理が実行される（抑制通知受信処理１４２１：ステップＳ０４０）。以降、中継装置１０Ｂから抑制通知が送信されてこなくなると、送信速度は再び時間の経過とともに徐々に増加し、送信キュー内のパケットの滞留が解消すると最小速度は再び時間の経過とともに徐々に減少するのである。以上に説明したように、本実施形態によれば、システム構築の際に特段の調査を行わず、パケット通信の最小速度を理論値や経験則に基づいて初期設定しても、適切な値に自動的に更新される。このため、本実施形態によれば、適切な送信速度の範囲（最大速度と最小速度とで定まる範囲）を自動的に定め、その範囲内の送信速度でパケット通信を行うことが可能になる。
【００３０】
（Ｃ：その他の実施形態）
以上、本発明の実施形態について説明したが、かかる実施形態を以下に述べるように変形しても良いことは勿論である。
（１）上述した実施形態では、本発明に係る通信装置に特徴的な通信制御処理をソフトウェアモジュールで実現したが、ハードウェアモジュールで実現しても勿論良い。また、上述した実施形態では複数の送信キューを用いてＱｏＳを行ったが、ＱｏＳを行う必要がない場合には、送信キューの数を１つにし、その送信キューについて状態監視や内部パケットロス監視を行えば良い。
【００３１】
（２）上述した実施形態では、インターネットなどの広域網とローカルエリアネットワークとを接続する中継装置に本発明を適用した。しかし、本発明の適用対象は中継装置に限定されるものではなく、データ通信の両端に位置する通信装置（すなわち、送信装置や受信装置）であっても良い。例えば、データ通信の両端に位置する通信装置に本発明を適用する場合には、パケットロスを検出して抑制通知を送信する処理を受信装置に実行させれば良く、送信装置には、送信対象のパケットがその送信順に書き込まれる送信キューと、前記送信キューに格納されているパケットをその書き込み順に読み出し、その宛先へ送信する送信手段と、時間の経過とともに前記送信速度を最大速度まで徐々に引き上げる一方、前記パケットの送信先からパケットロスの発生を通知されたことを契機として、前記送信速度が最小速度を上回っているか否かを判定し、上回っている場合には前記送信速度を引き下げ、その逆の場合には、前記送信速度を前記最小速度に等しくする送信速度制御手段と、時間の経過とともに前記下限を徐々に引き下げ、前記送信キュー内の滞留パケット数が所定の閾値に達した場合、または前記送信キューへのパケットの書き込みに失敗しことを検知した場合に、前記最大速度を上回らない範囲で前記最小速度を引き上げる速度範囲調整手段と、を設ければ良い。また、かかる送信装置に複数の送信キューを設けるとともに、送信対象のパケット（例えば、その送信装置で実行されるアプリケーションプログラムにより生成されるパケット）についてその種類毎に優先順位を定めておき、それら複数の送信キューを用いてＱｏＳを実行しつつ、それらパケットを送信するようにしても良い。
【００３２】
（３）上述した実施形態では、第１の通信網であるＬＡＮと、その第１の通信網よりも利用可能帯域の狭い第２の通信網である広域網とに接続され、ＱｏＳを実行する中継装置に本発明を適用した。しかし、本発明の適用対象となる中継装置は、上記のように利用可能帯域幅に差のある通信網間の境界に位置する中継装置に限定されるものではない。例えば、利用可能帯域幅に差のない第１および第２の通信網に接続される中継装置について本発明を適用し、一方の通信網から他方の通信網へのパケットの転送を行う際にパケットの優先順位に応じた転送制御を行わせつつ、上記他方の通信網へパケットを送信する際の送信速度範囲の自動設定を行わせても良い。
【００３３】
（４）上述した実施形態では、本発明に係る通信装置に特徴的な通信制御処理（受信側制御処理１４２Ｒや送信側制御処理１４２Ｓ）を制御部１１０に実行させる通信制御プログラムが中継装置１０の不揮発性記憶部１４２に予め格納されていた。しかし、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）などのコンピュータ装置読み取り可能な記録媒体に上記通信制御プログラムを書き込んで配布しても良く、また、インターネットなどの電気通信回線経由のダウンロードにより上記通信制御プログラムを配布しても良い。このようにして配布される通信制御プログラムを、既存の通信装置へインストールし、その通信制御プログラムにしたがってその通信装置の制御部を作動させることによって、既存の通信装置に本発明に係る通信装置と同一の機能を付与することが可能になるからである。
【図面の簡単な説明】
【００３４】
【図１】本発明の一実施形態に係る中継装置１０を含む通信システムの構成例を示す図である。
【図２】同中継装置１０の構成例を示すブロック図である。
【図３】中継装置１０Ｂの制御部１１０が通信制御プログラムにしたがって実行する受信側制御処理１４２Ｒの流れを示すフローチャートである。
【図４】中継装置１０Ａの制御部１１０が通信制御プログラムにしたがって実行する送信側制御処理１４２Ｓの内容および抑制通知受信処理１４２１による送信速度の時間変化の様子を示す図である。
【図５】送信キュー状態監視処理１４２２Ａおよび内部パケットロス監視処理１４２２Ｂの流れを示すフローチャートである。
【図６】最小速度変更処理１４２２Ｃおよびこの処理による最小速度の時間変化の様子を示す図である。
【図７】送信速度リカバリ処理１４２２Ｄおよびこの処理による送信速度の時間変化の様子を示す図である。
【図８】中継装置１０Ａにおける送信速度および最小速度の時間変化の様子を示す図である。
【図９】従来の通信装置（データの受信側）にて発生する内部パケットロスを説明するための図である。
【図１０】従来の通信装置（データの送信側）にて発生する内部パケットロスを説明するための図である。
【符号の説明】
【００３５】
１０Ａ，１０Ｂ，１０…中継装置、２０…通信網、３０…クライアント側ＬＡＮ、３１Ａ，３１Ｂ，３１…クライアント装置、４０…サーバ側ＬＡＮ、４１…サーバ装置、１１０…制御部、１２０…第１通信Ｉ／Ｆ部、１３０…第２通信Ｉ／Ｆ部、１４０…記憶部、１４１…揮発性記憶部、１４２…不揮発性記憶部、１５０…バス。
【図１】
0004930388.tif 000002
【図２】
0004930388.tif 000003
【図３】
0004930388.tif 000004
【図４】
0004930388.tif 000005
【図５】
0004930388.tif 000006
【図６】
0004930388.tif 000007
【図７】
0004930388.tif 000008
【図８】
0004930388.tif 000009
【図９】
0004930388.tif 000010
【図１０】
0004930388.tif 000011