説明

通信システム、データ送信装置、データ受信装置、パケット再送制御方法、パケット再送制御プログラム

【課題】 データフレームの自動再送制御を行う通信システムにおいて、レイヤ3スイッチに手を加える事無く、データ送信装置とデータ受信装置に機能配備することで、容易に下位層でのデータフレームの再送制御を実現する。
【解決手段】 通信システム100が、データ送信装置1−1とデータ受信装置20−1とを含み、データ送信装置1−1が、データ受信装置20−1に出力するIPデータグラムのIPv6ヘッダに付加した拡張ヘッダ領域に再送ヘッダを付与する手段を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、可変長フレームの再送制御を行う通信システムに関し、特に、IPヘッダに再送ヘッダを設けた再送方式におおける送受信装置での再送制御方式及びその実現手段に関する。
【背景技術】
【0002】
データ送信装置(以降、送信側とも称す)とデータ受信装置(以降、受信側とも称す)との間で、信頼性のデータ通信を行う際の誤り制御方式に、自動再送制御方式(ARQ:Automatic Repeat reQuest)がある。自動再送制御方式のプロトコルの代表例には、Stop−and−Wait ARQ方式、Go−Back−N ARQ方式、Selective Repeat ARQ方式がある。
【0003】
Stop−And−Wait ARQ方式は、送信側から一度に1つのフレームのみを送信し、受信側からACK(Acknowledgment)が帰るまで送信しない方式である。
【0004】
Go−Back−N ARQ方式は、送信側からデータフレームにシーケンス番号を付与し、定められたウィンドウサイズまでデータフレームを送信し続ける。受信側はデータフレームのシーケンス番号を確認し、ACK(Acknowledgment)フレームにその番号を付与して返送するが、フレーム欠落やビットエラーの発生によって期待したシーケンス番号でない場合は、フレームを廃棄する。
【0005】
送信側は、ウィンドウサイズ上限までデータフレームを送信した後、最後に受信したACKのシーケンス番号まで送信完了したと判断する。一方、ACKが返送されない場合は、ACK未受信のシーケンス番号のデータフレームに遡って、シーケンス番号順にデータフレームを再送する。
【0006】
なお、受信側で、誤りデータフレームを受信時した場合に、送信側に対し、NAK(Negative Acknowledgment)フレームを返送する方法もある。
【0007】
Serective Repeat ARQ方式でも、送信側からデータフレームにシーケンス番号を付与し、定められたウィンドウサイズまでデータフレームを送信し続け、受信側はデータフレームのシーケンス番号を確認し、ACK(Acknowledgment)フレームにその番号を付与して返送するが、期待したシーケンス番号でない場合はフレームを廃棄する。
【0008】
送信側はウィンドウサイズ上限までデータフレームを送信した後、最後に受信したACKのシーケンス番号まで送信完了したと判断する。一方、ACKが返送されない場合は、ACK未受信のシーケンス番号のデータフレームを再送する。
【0009】
本方式でも、受信側で誤りデータフレームを受信時した場合に、送信側にNAK(Negative Acknowledgment)フレームを返送する方法もある。
【0010】
これらの自動再送制御方式で重要な点は、データ受信装置からデータ送信装置へのACK/NAKの返送、および、Go−Back−N ARQ方式やSelective Repeat ARQ方式でのデータフレームへのシーケンス番号の付与である。
【0011】
自動再送制御の代表例である、OSI(Open Systems Interconnection)参照モデルのトランスポート層プロトコルのTCP(Transmission Control Protocol)では、TCPヘッダ内にシーケンス番号領域を設けており、ACKもTCPヘッダ内で転送する事が可能である。他の自動再送制御の代表例である無線通信への適用では、物理層フレーム内に再送ヘッダとACK/NAK領域を設ける方法がある。
【0012】
次に、近年、トラフィック増加に伴い、データ送信装置とデータ受信装置との間で、10ギガビット以上の帯域で接続する適用例が実用化されているほか、今後、40ギガビットや100ギガビットの高速帯域で接続される事が予想される。
【0013】
しかしながら、データ通信で代表的に使用されるTCPは、10ギガビット超の帯域では、その輻輳制御によってスループット性能が向上し辛い問題点が指摘されている。例えば、100ギガビットTCPで、送受信装置間距離1,000kmにおいて、BER(Bit Error Rate)=10−12でも、TCPスループットが60ギガビット未満に抑圧される例がある。
【0014】
また、TCPの短距離区間への適用においても、輻輳やビット誤りによりTCPセグメントのロスが発生した際、再送タイムアウト時間RTO(Retransmission Time Out)を経過してからTCP再送が行われるため、スループットが低下する場合がある。
【0015】
後者のTCPの短距離区間への適用における、スループット低下を抑制する方式例として、R2D2:RAPID AND RELIABLE DATA DELIVERY IN DATA CENTERS(非特許文献1)がある。これは、主にデータセンタ内の短距離区間において1ギガビット以上の帯域で高速データ通信を行う際のスループット向上を目的としている。
【0016】
具体的には、図18のプロトコルスタック図に示すように、ネットワーク層(レイヤ3とも呼ぶ)プロトコルのIP(Internet Protocol)層と、データリンク層(レイヤ2とも呼ぶ)プロトコルのIEEE802.3委員会で規定されるイーサネットMAC(Media Access Control)層の間に、2.5層(レイヤ2.5とも呼ぶ)を定義し、2.5層において新規に自動再送制御を実施し、トランスポート層に対して輻輳やビット誤りが無い高信頼な通信を提供する事で、TCPの輻輳制御や再送タイムアウト時間RTOによるスループット低下を抑制するものである。
【0017】
より具体的には、図17のフレームフォーマットに示すように、IPデータグラムと、MACフレームとの間に2.5層ヘッダを定義し、これを利用して送信側から受信側への自動再送制御のためのシーケンス番号の転送や、受信側から送信側へのACKの転送を行う。
【0018】
図16は、R2D2を用いた送受信端末の構成を示す図である。図16では、データ送信装置16−1とデータ受信装置21−1が、データセンタ内のイーサネット網等のレイヤ2網21−20を介して通信を行う。
【0019】
データ送信装置16−1は、トランスポート層以上の上位層処理16−6と、IP送信回路16−2と、送信側レイヤ2.5再送回路16−14と、データリンク層送信回路16−8と、物理層送信回路16−9と、物理層受信回路16−13と、データリンク層受信回路16−12と、IP受信回路16−10と、を備える。
【0020】
データ受信装置21−1は、物理層受信回路21−13と、データリンク層受信回路21−12と、受信側レイヤ2.5再送回路21−14と、IP受信回路21−10と、トランスポート層以上の上位層処理21−6と、IP送信回路21−2と、データリンク層送信回路21−8と、物理層送信回路21−9と、を備える。
【0021】
IP送信回路16−2、21−2、及びIP受信回路16−10、21−10は一般的なIP層処理である。データリンク層送信回路16−8、21−8、データリンク層受信回路16−12、21−12はイーサネットMAC等の一般的なレイヤ2処理である。物理層送信回路16−9、21−9及び物理層受信回路16−13、21−13はイーサネット物理層やOTN(Optical Transport Network)などの一般的なレイヤ1処理である。これらは、本発明の内容とは直接は関係しないため、説明は省略する。
【0022】
送信側レイヤ2.5再送回路16−14は、レイヤ2.5ヘッダ生成回路16−15と、送信側再送制御回路16−3と、送信側再送メモリ16−5と、タイマ回路16−4と、レイヤ2.5ヘッダ終端回路16−11と、を含む。
【0023】
一方、受信側レイヤ2.5再送回路21−14は、レイヤ2.5ヘッダ終端回路21−11と、ACK生成回路21−15と、選択回路21−7と、を含む。
【0024】
送信側レイヤ2.5再送回路16−15では、IP送信回路162が出力するデータグラムに対して2.5層ヘッダを付与する。レイヤ2.5ヘッダ終端回路16−11は、データリンク層受信回路16−12が出力するレイヤ2.5フレームから、レイヤ2.5ヘッダを終端する。
【0025】
送信側レイヤ2.5再送回路16−14において、IP送信回路16−2よりIPデータグラムが入力されると、タイマ回路16−4をスタートさせる。
【0026】
次にIPデータグラム毎にレイヤ2.5ヘッダ生成回路16−15でレイヤ2.5ヘッダを付与する。付与する情報には、シーケンス番号が含まれる。シーケンス番号は0〜最大値を周回する正の整数であり、TCP等のセッションを区別する事無く、到着順に付与する。
【0027】
レイヤ2.5ヘッダを付与されたIPデータグラムは送信側再送制御回路16−3に入力されて、16−3からデータリンク層送信回路16−8に転送されるとともに、16−3内でコピーされて送信側再送メモリ16−5に書き込まれる。送信側再送メモリ16−5も、セッションを区別無く到着順に書き込む。
【0028】
上述の送信側再送制御回路16−3の送信側再送メモリへの書き込み動作を、図19(a)にまとめる。
【0029】
図19(a)に示すように、まず、タイマ回路16−4をスタートさせる(図19のS85)。そしてデータフレーム(レイヤ2.5ヘッダを付与されたIPデータグラム)が入力されると(図19のS81)、それをデータリンク層送信回路16−8に転送する(図19のS82)とともに、送信側再送メモリ16−5のライトアドレスWADRを直前のデータフレームの最終アドレスから求めて準備する(図19のS83)。そして、該WADRに該データフレームを書き込む(図19のS84)。
【0030】
次に、図20を用いて、図17の受信側レイヤ2.5再送回路21−14の動作を説明する。
【0031】
データリンク層受信回路21−12から、データフレーム(レイヤ2.5ヘッダを付与されたIPデータグラム)が入力されると(図20のS93)、まず、レイヤ2.5ヘッダ終端回路21−11は、IPv6受信回路21−10に対して、IPデータグラム部分を出力する(図20のS94)。
【0032】
一方、レイヤ2.5ヘッダ部分はACK生成回路21−15に入力されて、ヘッダ内のシーケンス番号を用いて、該データフレーム(レイヤ2.5ヘッダを付与されたIPデータグラム)に対するACKパケットを生成する(図20のS95)。
【0033】
そして、選択回路21−7よりデータリンク層送信回路21−8に対してACKパケットを送出し(図20のS96)、データ送信装置16−1にACKを返送する。
【0034】
図16に戻り、データ送信装置16−1に入力されたACKパケットはレイヤ2.5ヘッダ終端回路16−11に入力される。レイヤ2.5ヘッダ終端回路16−11では、ACKパケットを受信したならば、それを送信側再送制御回路16−3に転送する。送信側再送制御回路16−3にACKが入力される際の処理を、図19(b)に示す。
【0035】
送信側再送制御回路16−3にACKが入力されると(図19のS87の‘Y’)、タイマ回路16−4を0クリアする(図19のS90)とともに、該ACK中のシーケンス番号に該当するデータフレームは正常にデータ受信装置に到着したとして、送信側再送メモリ16−5から削除する(図19のS91)。
【0036】
一方、図19のS87でACKが未到着ならば(図19のS87の‘N’)、タイマ回路16−4がタイムアウトしているか調査し(図19のS88)、タイムアウト時には(図19のS88の‘Y’)、送信側再送メモリ16−5内のACK未受信フレームを読み出して、データ受信装置21−1に対して再送する。
【0037】
このように、R2D2を用いた方法では、ある端末からの複数セッションデータを到着順に一つの再送パスのデータとみなし、レイヤ2.5の再送ヘッダを用いて自動再送制御を行う。
【先行技術文献】
【特許文献】
【0038】
【特許文献1】特開2009−021781号公報
【特許文献2】特開2010−074854号公報
【非特許文献】
【0039】
【非特許文献1】Berk Atikoglu, Mohammad Alizadeh, Jia Shuo Yue, Balaji Prabhakar, Mendel Rosenblum、”R2D2: RAPID AND RELIABLE DATA DELIVERY IN DATA CENTERS”、2010年5月、http://forum.stanford.edu/events/posterslides/R2D2RapidandReliableDataDeliveryinDataCenters.pdf
【発明の概要】
【発明が解決しようとする課題】
【0040】
TCPに起因するスループット劣化を抑制するために行うレイヤ2.5ヘッダを用いた自動再送制御は、広域網への適用が難しい、もしくは困難であるという問題点を有する。
【0041】
その理由は、レイヤ2.5ヘッダを用いたデータフレームは、イーサネットスイッチ等のレイヤ2スイッチは透過するが、レイヤ3スイッチ(ルータ装置)は透過しないため、網経路上の全レイヤ3スイッチに対しレイヤ2.5ヘッダを用いた自動再送制御機能を配備する必要があるためである。
【0042】
例えば図18のプロトコルスタックに示すように、レイヤ2.5ヘッダを用いたデータフレームはレイヤ2スイッチ184や185は透過するものの、レイヤ3スイッチ183ではレイヤ2.5フレーム内のIPヘッダを参照する必要があり、レイヤ2.5の終端が必要である。したがって、データ送信装置181からデータ受信装置182まで直接の再送パスの設定が不可能であり、レイヤ3スイッチ183にも、レイヤ2.5ヘッダによる自動再送制御機能を配備する必要がある。
【0043】
データセンタ内のLAN(Local Area network)では、レイヤ2スイッチのみで網を構成できる場合があるが、広域網では、レイヤ3スイッチ(ルータ網)の配備は必須であり、全レイヤ3スイッチに対するレイヤ2.5ヘッダを用いた自動再送制御機能の配備は現実的ではない。
【0044】
(発明の目的)
本発明の目的は、データフレームの自動再送制御を行う通信システムにおいて、レイヤ3スイッチに手を加える事無く、データ送信装置とデータ受信装置に機能配備することで、容易に下位層でのデータフレームの再送制御を実現することができる通信システム、データ送信装置、データ受信装置、パケット再送制御方法、パケット再送制御プログラムを提供することである。
【課題を解決するための手段】
【0045】
本発明の第1の通信システムは、データ送信装置とデータ受信装置とを含む通信システムであって、データ送信装置が、データ受信装置に出力するIPデータグラムのIPv6ヘッダに付加した拡張ヘッダ領域に再送ヘッダを付与する手段を備える。
【0046】
本発明の第1のデータ送信装置は、データ受信装置に出力するIPデータグラムのIPv6ヘッダに付加した拡張ヘッダ領域に再送ヘッダを付与する手段を備える。
【0047】
本発明の第1のデータ受信装置は、データ送信装置から、IPv6ヘッダに付加した拡張ヘッダ領域に再送ヘッダが付与されたIPデータグラムを受信する手段と、当該IPデータグラムの再送ヘッダ内のシーケンス番号を含むACKパケット又はNAKパケットを、データ送信装置に送信する手段とを備える。
【0048】
本発明の第1のパケット再送制御方法は、データ送信装置とデータ受信装置とを含む通信システムによるパケット再送制御方法であって、データ送信装置が、データ受信装置に出力するIPデータグラムのIPv6ヘッダに付加した拡張ヘッダ領域に再送ヘッダを付与するステップを有する。
【0049】
本発明の第1のパケット再送制御プログラムは、データ送信装置とデータ受信装置とを含む通信システムによるパケット再送制御プログラムであって、データ送信装置に、データ受信装置に出力するIPデータグラムのIPv6ヘッダに付加した拡張ヘッダ領域に再送ヘッダを付与する処理を実行させる。
【発明の効果】
【0050】
本発明によれば、データフレームの自動再送制御を行う通信システムにおいて、レイヤ3スイッチに手を加える事無く、データ送信装置とデータ受信装置に機能配備することで、容易に下位層でのデータフレームの再送制御を実現することができる。
【図面の簡単な説明】
【0051】
【図1】本発明の第1の実施の形態による、IPレイヤ再送制御機能を有する通信システムの構成を説明する図である。
【図2】本発明の第1の実施の形態における、IPv6拡張ヘッダを用いた再送制御用コマンドを含むIPv6データグラムのフォーマットを説明する図である。
【図3】本発明の第1の実施の形態における、転送パケットフォーマットを説明する図である。
【図4】本発明の第1の実施の形態における、IP網中をパケット転送する場合のプロトコルスタックの一例を説明する図である。
【図5】本発明の第1の実施の形態における、送信側再送制御回路の動作を説明するフローチャートである。
【図6】本発明の第1の実施の形態における、受信側再送制御回路の動作を説明するフローチャートである。
【図7】本発明の第1の実施の形態における、IPレイヤ再送制御におけるGBN−ARQ方式の動作を説明する図である。
【図8】本発明の第1の実施の形態における、ウィンドウフロー制御を用いた再送制御方式を説明する図である。
【図9】本発明の第2の実施の形態における、IPレイヤ再送制御機能を有するスイッチ装置の構成を説明する図である。
【図10】本発明の第2の実施の形態における、送信側再送メモリのアドレス割り当てを説明する図である。
【図11】本発明の第2の実施の形態における、IPv6パケットサイズ過大通知制御コマンドのフォーマットを説明する図である。
【図12】本発明の第2の実施の形態におけるパスkの送信側再送メモリ領域算出回路の動作を説明するフローチャートである。
【図13】本発明の第2の実施の形態におけるパスkの受信側再送メモリ領域算出回路の動作を説明するフローチャートである。
【図14】本発明の第2の実施の形態において、レイヤ3スイッチに適用する場合のプロトコルスタックの一例を説明する図である。
【図15】本発明の第2の実施の形態において、IPv6拡張ヘッダを用いた再送制御用コマンドを含むIPv6データグラムのフォーマットを説明する図である。
【図16】背景技術によるパケット再送制御機能を有する通信システムの構成を説明する図である。
【図17】背景技術によるパケット再送制御機能を有する通信システムにおける、転送フレームフォーマットを説明する図である。
【図18】背景技術によるパケット再送制御機能を有する通信システムにおける、プロトコルスタックの一例を説明する図である。
【図19】背景技術によるパケット再送制御機能を有する通信システムにおける、送信側再送制御回路16−3の動作の一例を説明する図である。
【図20】背景技術によるパケット再送制御機能を有する通信システムにおける、受信側レイヤ2.5再送回路21−14の動作の一例を説明する図である。
【発明を実施するための形態】
【0052】
本発明は、上述の目標を達成するため、IP規格のうちのIPv6(Internet Protocol Version 6)を使用し、データ送信装置で、IPv6ヘッダに対して拡張ヘッダ領域を使用した再送ヘッダを付与する手段と、該IPデータグラムをパス(セッションやフロー)別に蓄積する送信側再送メモリとを備えている。また、データ受信装置より送付されるIPv6拡張ヘッダを用いたACK/NAKを抽出する手段と、該ACK/NAKにしがたって、再送メモリにアクセスして自動再送制御を行う手段を備えている。
【0053】
また、データ受信装置で、データ送信装置より送付されるIPv6拡張ヘッダを利用した再送ヘッダを抽出する手段と、該IPデータグラムをパス(セッションやフロー)別に蓄積する受信側再送メモリとを備えており、受信IPデータグラムの正常性検査から再送要否を判定し、受信側再送メモリに蓄積されたIPデータグラムを読み出して出力するとともに、ACK/NAK生成を指示する手段と、ACK/NAK生成指示に基づき、IPv6ヘッダの拡張ヘッダを用いたACKパケットもしくはNAKパケットを生成する手段、ならびに、データ受信装置からデータ送信装置へのパスにACK/NAKパケットを出力する選択手段とを備える。
【0054】
データ送信装置のIPv6ヘッダに対して拡張ヘッダ領域を使用した再送ヘッダを付与する手段と、データ受信装置におけるIPv6拡張ヘッダを利用した再送ヘッダを抽出する手段によって、データ送信装置からデータ受信装置に対して、直接再送ヘッダを転送することが可能となる。
【0055】
また、データ受信装置におけるIPv6ヘッダの拡張ヘッダを用いたACKパケットもしくはNAKパケットを生成する手段と、データ送信装置におけるIPv6拡張ヘッダを用いたACK/NAKを抽出する手段によって、データ受信装置からデータ送信装置に対して、直接ACK/NAK情報を転送することが可能である。
【0056】
つまり、データ送信装置とデータ受信装置との間で、網の途中にレイヤ3スイッチが配備されていても、セッションやフロー毎に直接に自動再送制御を実施するための経路(以降では再送パスと称す)を設ける事が可能となる。そして、再送メモリとその制御手段とをデータ送信装置とデータ受信装置にそれぞれ配備することによって、ネットワーク層(レイヤ3)でエンド・ツー・エンドでの自動再送制御を行うことが可能となる。
【0057】
このように、データ送信装置からデータ受信装置までの再送ヘッダにIPv6ヘッダの拡張ヘッダを用いることで、網の途中にレイヤ3スイッチが配備されていてもそれを透過して行くため、網中のレイヤ3スイッチに新規に機能を追加する必要がなく、容易に下位層での自動再送制御の実現が可能である。
【0058】
本発明の上記及び他の目的、特徴及び利点を明確にすべく、添付した図面を参照しながら、本発明の実施形態を以下に詳述する。なお、上述の本願発明の目的のほか、他の技術的課題、その技術的課題を解決する手段及びその作用効果についても、以下の実施形態による開示によって明らかとなるものである。
【0059】
なお、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【0060】
(第1の実施の形態)
本発明の第1の実施の形態について、図1および、図4を参照して詳細に説明する。
【0061】
図1は、本発明の第1の実施の形態による通信システム100の構成を示すブロック図である。通信システム100は、データ送信装置1−1と、データ受信装置20−1から構成される。データ送信装置1−1とデータ受信装置20−1は、IP網22を介して通信を行う。
【0062】
通信システム100は、IPv6ヘッダの拡張ヘッダを再送ヘッダに使用することで、セッションやフロー毎に、データ送信装置1−1とデータ受信装置20−1との間で再送制御を実施するための経路(再送パス)を設けて、自動再送制御を実施する。
【0063】
自動再送制御方式は、何れの方式とする事ができるが、Go−Back−N ARQ方式を適用する場合で説明する。また、以降では、データ送信装置からデータ受信装置への方向を下り方向、データ受信装置からデータ送信装置への向きを上り方向と称す。
【0064】
データ送信装置1−1は、トランスポート層以上の上位層処理1−6と、IPv6送信回路1−2と、送信側IP再送回路1−14と、データリンク層送信回路1−8と、物理層送信回路1−9と、物理層受信回路1−13と、データリンク層受信回路1−12と、IPv6受信回路1−10と、を含む。
【0065】
送信側IP再送回路1−14は、IPv6拡張ヘッダ内再送ヘッダ生成回路1−15と、送信側再送制御回路1−3と、送信側再送メモリ1−5と、タイマ回路1−4と、IPv6拡張ヘッダ内再送ヘッダ抽出回路1−11と、を含む。
【0066】
データ受信装置20−1は、物理層受信回路20−13と、データリンク層受信回路20−12と、受信側IP再送回路20−14と、IPv6受信回路20−10と、トランスポート層以上の上位層処理20−6と、IP送信回路20−2と、データリンク層送信回路20−8と、物理層送信回路20−9と、を含む。
【0067】
受信側IP再送回路20−14は、IPv6拡張ヘッダ内再送ヘッダ抽出回路20−11と、受信側再送制御回路20−3と、受信側再送メモリ20−5と、タイマ回路20−4と、ACK/NAK生成回路20−15と、選択回路20−7と、を含む。
【0068】
IPv6送信回路1−2、20−2、およびIPv6受信回路1−10、20−10は一般的なIPv6層処理である。データリンク層送信回路1−8、20−8、データリンク層受信回路1−12、20−12はイーサネットMAC等の一般的なレイヤ2処理、物理層送信回路1−9、20−9および物理層受信回路1−13、20−13はイーサネット物理層やOTN(Optical Transport Network)などの一般的なレイヤ1処理である。
【0069】
また、IP網22は、レイヤ3スイッチやレイヤ2スイッチにより構成される一般的なIP網であり、一例として図4のレイヤ2スイッチ44、45の他、レイヤ3スイッチ43を複数台配備した、一般的なIP網である。想定するネットワーク規模は、LAN〜広域網である。
【0070】
(第1の実施の形態の動作の説明)
次に、本実施の形態による通信システム100の動作について、図1、図2、図3、図4、図5、図6、図7、図8を参照して詳細に説明する。
【0071】
なお、前述のように、図1において、IPv6送信回路1−2、20−2およびIPv6受信回路1−10、20−10は一般的なIPv6層処理であり、データリンク層送信回路1−8、20−8、データリンク層受信回路1−12、20−12はイーサネットMAC等の一般的なレイヤ2処理、物理層送信回路1−9、20−9および物理層受信回路1−13、20−13はイーサネット物理層やOTNなどの一般的なレイヤ1処理であり、本発明の内容と直接には関係しないため、説明は省略する。
【0072】
(各ブロックの動作説明)
図1で、上位層処理1−6から下り方向にTCPセグメントが生成され、IPv6送信回路1−2より送信側IP再送回路1−14にIPデータグラムが入力されると、まずIPv6ヘッダ生成回路1−15が、IPデータグラム毎にIPv6ヘッダの拡張ヘッダを用いて再送ヘッダを付与する。後述のように、再送ヘッダには、シーケンス番号(SQN(k);SQN:SeQuence Numberで、0から最大値まで1ずつ増加して周回する正の整数。また、kは再送パス番号を示す正の整数。)、再送ヘッダの正常性チェック用チェックサム領域、該IPデータグラムの正常性チェック用のCRC領域を含むほか、該IPデータグラムが通常のデータグラムかACKかNAKか或いは再送データグラムかを表示する領域を含む。
【0073】
再送ヘッダを付与されたIPデータグラムは、送信側再送制御回路1−3に入力される。該IPデータグラムが、再送パスkの最初のIPデータグラムならば、送信側再送制御回路1−3は、タイマ回路1−4の再送パスk用カウンタタイマ(k)のカウントアップを開始させる。
【0074】
次いで、送信側再送制御回路1−3は、該IPデータグラムを、送信側再送メモリ1−5に、付与されたシーケンス番号SQN(k)、および該IPデータグラム長MTU(K)(Maximum Transmission Unit)、タイマ(k)値とともに書き込む。送信側再送メモリ1−5内は再送パス毎に領域分割され、送信側再送制御回路1−3は、該当するメモリ領域内にシーケンス番号SQN(k)の若番から順に書き込む。
【0075】
送信側再送メモリ1−5に書き込まれたIPデータグラムは、送信側再送制御回路1−3より、全再送パスを公平もしくは予め定めた頻度順序に従って、定めされたウィンドウサイズの分だけ読みだされる。
【0076】
その際に、同一の再送パスk内では、上り回線で当該再送パスkのACKパケット(ACK(k))を受信し、当該再送パスkのNAKパケット(NAK(k))を受信しない限りは該SQN(k)の順序で読みだされ、NAKパケット受信時は、NAK(k)で指示されたシーケンス番号SQN(k)値にさかのぼり読み出しが開始される。
【0077】
また、送信側再送制御回路1−3は、ACK(k)を受信していないシーケンス番号SQN(k)値のうち、最も若番の値について、常時送信側再送メモリ1−5にライトした時のタイマ値と、タイマ回路1−4の現タイマ(k)値とを比較して、その差が予め定めた閾値以上ならば、対SQN(k)値のIPデータグラムはタイムアウトしたと判定し、該タイムアウトしたSQN(k)値にさかのぼり読み出しを行う機能も持つ。
【0078】
こうして送信側再送メモリ1−5より読みだされたIPデータグラムは、データリンク層送信回路1−8および物理層送信回路1−9を通してIP網22に出力され、データ受信装置20−1で受信する。
【0079】
データ受信装置20−1では、IPデータグラムは、まず物理層受信回路20−13、データリンク層受信回路20−12を通して受信側IP再送回路20−14に入力される。そして、IPv6拡張ヘッダ内再送ヘッダ抽出回路20−11は、IPデータグラムからIPv6拡張ヘッダを取り出し、IPデータグラム本体と共に受信側再送制御回路20−3に出力する。
【0080】
受信側再送制御回路20−3は、再送ヘッダ内にある正常性チェック用チェックサムを使用して、再送ヘッダ自体の誤りの有無を確認する。誤りがある場合は、正常に自動再送制御が期待できないため、受信側再送制御回路20−3は該IPデータグラムを廃棄し、データ送信装置へのNAK返送も行わない。
【0081】
一方、チェックサム検査の結果、再送ヘッダ自体に誤りが無い場合、受信側再送制御回路20−3は、該IPデータグラムの正常性検査を行う。これには、再送ヘッダ内のCRC領域を使用するが、自動再送制御の処理時間を短縮するために、データリンク層受信回路20−12よりデータリンク層でのフレーム検査結果が出力される場合はそれを使用しても良い。データリンク層でのフレーム検査の一例に、イーサネットにおけるFCS(Frame Check Sequence)演算がある。
【0082】
IPデータグラムの正常性検査の結果、正常なIPデータグラムの場合は、ACK/NAK生成回路20−15で、該IPデータグラムのシーケンス番号SQN(k)値等のヘッダ情報を含むACKパケット(ACK(k))を、該データ受信装置20−1が起点、データ送信装置1−1が受信点となるように生成し、選択回路20−7で、生成したACKパケット(ACK(k))を上り側回線に挿入することでデータ送信装置1−1に返送する。
【0083】
一方、IPデータグラムの正常性検査の結果、受信したIPデータグラムに誤りがあると判定した場合は、ACK/NAK生成回路20−15で、該IPデータグラムのシーケンス番号SQN(k)値等のヘッダ情報を含むNAKパケット(NAK(k))を、該データ受信装置20−1が起点、データ送信装置1−1が受信点となるように生成し、選択回路20−7で、生成したNAKパケット(NAK(k))を上り側回線に挿入することでデータ送信装置1−1に返送する。
【0084】
また、受信側再送制御回路20−3は、正常受信したIPデータグラムを、受信側再送メモリ20−5に、付与されたシーケンス番号SQN(k)、および該IPデータグラム長MTU(K)とともに書き込む。受信側再送メモリ20−5内は再送パス毎に領域分割され、受信側再送制御回路20−3は、送信元IPアドレスとフローラベルから該再送パスを判別し、該当する再送パスのメモリ領域内にシーケンス番号SQN(k)の若番から順に書き込む。
【0085】
なお、受信側再送制御回路20−3内では、再送パスk別にウィンドウサイズW_R(k)を計算する。ウィンドウサイズは、受け取る事ができるデータ量を送信側に通知するための値であり、ACK返送時はウィンドウサイズW_R(k)から該受信IPデータグラム長を減算して送信側に通知し、NAK返送時はウィンドウサイズは変更せずに送信側に通知する。
【0086】
次に、受信側再送メモリ20−5の読み出し動作を示す。受信側再送メモリ20−5の読み出しも、受信側再送制御回路20−3が行う。
【0087】
受信側再送制御回路20−3は、再送パスk別に読み出し用シーケンス番号カウンタSQN_RR(k)を備える。受信側再送制御回路20−3は、受信側再送メモリ20−5の各再送パスを、全再送パスを公平もしくは予め定めた頻度順位に従ってチェックし、同一再送パス内で前のIPデータグラムと連続したシーケンス番号SQN(k)値が書き込まれているか確認する。
【0088】
同一再送パス内で前のIPデータグラムと連続したシーケンス番号SQN(k)値が書き込まれているならば、受信側再送制御回路20−3は、該SQN(k)値のIPデータグラムを読み出し、IPv6受信回路20−10に出力する。IPv6受信回路20−10に出力されたIPデータグラムは上位層処理20−6に入力され、上位層処理20−6で、トランスポート層以上の上位層処理を行う。
【0089】
一方、IPデータグラムの欠落や遅延によってSQN(k)値に不連続が発生して、同一再送パス内のメモリ領域に歯抜けが発生しているならば、受信側再送制御回路20−3は、タイマ回路20−4の再送パスk用のタイマ(k)を0から一定時刻毎にカウントアップを開始する。そして、タイマ(k)値が設定閾値を超過する場合は、タイムアウトが発生したと判断し、SQN(k)値の不連続が発生している最も若番のSQN(k)値をACK/NAK番号SQN_AN(K)にセットしたNAKパケット(NAK(k))を、送信側に返送する。
【0090】
なお、受信側再送制御回路20−3は、該再送パスk用メモリ領域からのIPデータグラムの読み出しを行う度に、該タイマ(k)を0にクリアする。これによって、再送パス別に、SQN(k)値が不連続な場合のタイムアウトを検出し、未到着IPデータグラムのうち、最も若番のシーケンス番号SQN(k)に対するNAK(k)を送信側に返送する。以上がデータ受信装置内の動作である。
【0091】
データ受信装置20−1から出力されたACKパケットもしくはNAKパケットは、IP網22を通り、データ送信装置1−1に返送される。
【0092】
以上が、図1によるデータ送信装置1−1とデータ受信装置20−1との間での自動再送制御の動作である。
【0093】
次に、図1内の各ブロックの動作、および、使用するヘッダフォーマットについて、詳細に述べる。
【0094】
(再送ヘッダフォーマットの説明)
図2に、図1のIPv6拡張ヘッダ内再送ヘッダ抽出回路1−15で付与する、再送ヘッダの一例を示す。これは、インターネット技術タスクフォース(IETF:Internet Engineering Task Force)が公開する技術仕様RFC(Request for Comments)2460で規程される、IPv6拡張ヘッダを利用するものである。
【0095】
IPv6のヘッダ長は40バイトの固定長であるが、ヘッダの2ワード目にあるネクストヘッダ値により、可変長の拡張ヘッダを設定できる。ネクストヘッダ値が“59”ならば、その後に拡張ヘッダが続かない事を示す。その他の値の場合は、その拡張ヘッダを受け取った終点ノードが値に応じた処理を行う。
【0096】
例えば、ネクストヘッダ値が“0”ならばIPv6ホップバイホップオプション、“6”ならばTCP、“17”ならばUDP(User Datagram Protocol)、“58”ならばICMPv6(Internet Control Message Protocol for IPv6)と規程されている。ネクストヘッダ値のうち、未使用値をIPv6再送ヘッダに割り当てる。ここでは“31”とするが、定義値はこの値でなくても良い。
【0097】
図2では、24バイトの拡張ヘッダを付与し、これを再送ヘッダに用いる。再送ヘッダの中で、ネクストヘッダは、該再送ヘッダの次に続く拡張ヘッダ種別を示す領域である。拡張ヘッダ長領域は“24”である。オプション領域は任意値である。
【0098】
シーケンス番号SQN(k)とACK/NAK番号SQN_AN(k)は、0から最大値まで1ずつ増加して周回する正の整数であり、それぞれ、再送パスk毎に付与される送信シーケンス番号と、ACKパケットもしくはNAKパケットに付与する受信SQN値である。
【0099】
なお、再送パスkは、セッションやフロー毎に設定されるものであり、一例として、IPアドレスとIPv6ヘッダ中のフローラベル値から区別する。
【0100】
コードビットは図2中に示すように、そのRT(Re−Transmission)ビット、NAKビット、ACKビット、SN(Sequence Number enable)ビットの値の組み合わせにより、該フレームが送信IPデータグラムであるか、ACKパケットであるか、NAKパケットであるか、あるいは再送IPデータグラムであるかを表示する。
【0101】
ウィンドウサイズは、データ受信装置がデータ送信装置に指定する、ウィンドウサイズ値である。
【0102】
ヘッダ用チェックサムは、11ワード目から14ワード目までの再送ヘッダの前半16バイト分のチェックサムの演算結果であり、再送ヘッダの正常性をデータ受信装置側で確認するためのものである。チェックサムの演算方式は、IPv4でのチェックサム演算方式と同等で良い。
【0103】
そして、最後にIPv6パケット・データ領域のCRC(Cyclic Redundancy Check)領域は、データ受信装置での該IPデータグラムの受信データの正常性検査用である。ここではCRC−32演算とするが、他の方法でも良い。このような再送ヘッダをIPv6データグラムの拡張ヘッダに付与する。
【0104】
なお、図3に、再送ヘッダ付与後のデータフレームフォーマット例(物理層まで含む)を示す。図3では、レイヤ2(データリンク層)はイーサネットとし、レイヤ1(物理層)もイーサネットとする例である。
【0105】
(送信側再送制御回路1−3のライト動作の説明)
図5(a)に、送信側再送制御回路1−3での、再送パスkのIPデータグラムを、送信側再送メモリ1−5へライトする際のフローチャートの一例を示す。
【0106】
まず、送信側再送制御回路1−3は、タイマ回路1−4の再送パスkに該当するタイマ(k)を0からスタートさせる(図5(a)のS2)。タイマ(k)は0から最大値まで1ずつインクリメントし、周回する正の整数である。
【0107】
そして、IPv6拡張ヘッダ内再送ヘッダ生成回路1−15からIPデータグラムが入力されたならば(図5(a)のS3の‘Y’)、送信側再送制御回路1−3は、該IPヘッダの宛先IPアドレスとフローラベルから再送パス番号kを判定し(図5(a)のS4)、該再送パス番号kの送信側再送メモリ1−5でのライトアドレスADR_WT(k)を、直前の同再送パス番号kのライトアドレスから判定する(図5(a)のS5)。
【0108】
併せて、送信側再送制御回路1−3は、該IPデータグラムのIPヘッダ内にあるペイロード長領域を読み出す(図5(a)のS6)。これは、IPv6送信回路1−2により付与された領域であり、該データグラムのユーザデータ格納部分であるペイロード領域の長さをバイトで示す。
【0109】
そして、送信側再送制御回路1−3は、ペイロード長と、該IPヘッダ長(40バイト)と、再送ヘッダとして用いるIPヘッダ拡張ヘッダ長の和により、IPデータグラム長MTU(K)を算出する(図5(a)のS7)。
【0110】
また、送信側再送制御回路1−3は、再送ヘッダの2ワード目にあるシーケンス番号領域から該データグラムのSQN(k)値を読み出し(図5(a)のS8)、送信側再送メモリ1−5のADR_WT(k)より、該IPデータグラム全体をライトする(図5(a)のS9)。その際にあわせてSQN(k)値、IPデータグラム長MTU(K)、ライト時のタイマ(k)値もライトするが、これらはデータグラムが格納されているメモリ領域とは別の領域としても良い。
【0111】
以上が、送信側再送制御回路1−3より送信側再送メモリ1−5にライトする際の処理である。
【0112】
(送信側再送制御回路1−3のリード動作の説明)
図5(b)に、送信側再送制御回路1−3での、再送パスkのIPデータグラムを、送信側再送メモリ1−5よりリードする際のフローチャートの一例を示す。
【0113】
送信側再送制御回路1−3は、全再送パスを公平もしくは予め定めた頻度順序に従って読みだすが、本フローチャートでは、動作を明確化するために、読み出す再送パスを、パス番号=kのある1つのパスとする場合の動作を示す。
【0114】
まず、パス番号kの読み出し用シーケンス番号SQN_RT(k)値と、ACK未受信データグラムのうちSQN(k)値が最も若番のものを示すSQN_UT(k)値とをカウントするカウンタを、送信側再送制御回路1−3内に設け、それぞれ初期値を0とする(図5(b)のS11)。
【0115】
SQN_RT(k)とSQN_UT(k)は値の範囲はSQN(k)と等しく、それぞれ0と最大値を1ずつインクリメントし、周回する正の整数である。また、送信側で管理するウィンドウサイズW_T(k)は、予め定めた初期値を設定する。
【0116】
次に、送信側再送制御回路1−3は、SQN_UT(k)値と等しい値のシーケンス番号SQN(k)を有するIPデータグラムがライトされている、送信側再送メモリ1−5のアドレスを調べ、これを再送パスk用のリードアドレス値ADR_RT(k)に設定する(図5(b)のS12)。
【0117】
データが全てリード済みの場合など、SQN_UT(k)値に該当するアドレス領域ADR_RT(k)にIPデータグラムが蓄積されていない場合は(図5(b)のS13の‘N’)はS12の入力に戻るが、IPデータグラムがある場合は(図5(b)のS13の‘Y’)、該データグラムと同時にライトされているタイマ(k)値とデータグラム長MTU(K)を送信側再送メモリ1−5から読み出す(図5(b)のS14)。
【0118】
そして、送信側再送制御回路1−3は、読み出したタイマ(k)値と、その時点のタイマ回路1−4の現タイマ(k)値とから、「『現タイマ(k)値』−『ライト時のタイマ(k)値』>『事前に定めた閾値』」であるか否かを判定し、これが真ならば(図5(b)のS13の‘Y’)、該USQR(k)のデータグラムはACK受信のタイムアウトが発生したと判定し、該USQR(k)にさかのぼった再送とするために、RSQR(k)値をUSQR(k)値に置き換える(図5(b)のS16)。
【0119】
一方、「『現タイマ(k)値』−『ライト時のタイマ(k)値』>『事前に定めた閾値』」が偽ならば(図5(b)のS13の‘N’)、タイムアウトではないと判定して、RSQR(k)値は元のままの値とする。
【0120】
次に、送信側再送制御回路1−3は、上り回線にACKパケットが到着しているか否かを判定する。到着時は(図5(b)のS100の‘Y’)、送信側再送制御回路1−3は、該ACKパケットの送信元IPアドレスとフローラベルから、該再送パス番号kを判定する(図5(b)のS106)。そして、送信側再送制御回路1−3は、該再送パスkの読み出しシーケンス番号SQN_RT(k)と等しい値のシーケンス番号SQN(k)を有するIPデータグラムがライトされている、送信側再送メモリ1−5のアドレスを調べ、これを再送パスk用のリードアドレス値ADR_RT(k)に設定する(図5(b)のS107)。
【0121】
また、送信側再送制御回路1−3は、ACKパケット中の再送ヘッダであるIPヘッダの拡張ヘッダ領域から、該ACKパケットで返送されてきたACK/NAK番号SQN_AN(k)、並びに返送されてきたウィンドウサイズW_R(k)を読み出し(図5(b)のS108)、送信側再送制御回路1−3内で管理するW_T(k)値と置き換える(図5(b)のS109)。
【0122】
そして、送信側再送制御回路1−3は、S107で特定した読み出しアドレスADR_RT(k)より始まるメモリ領域に、IPデータグラムが蓄積されているかを調べる。
【0123】
蓄積されている場合は(図5(b)のS110の‘Y’)、該メモリ領域からIPデータグラム長MTU(K)を読み出す(図5(b)のS111)とともに、送信側再送制御回路1−3内で管理するACK未受信の最若番SQN値であるSQN_UT(k)が、ACK/NAK番号ADR_RT(k)に一致するか確認する。一致するならば、該SQN_UT(k)値のACKパケットは受信したため、二番目に若番のSQN(k)値に更新する(図5(b)のS112)。
【0124】
一方、S110で蓄積データが無い場合は(図5(b)のS110の‘N’)、読み出すIPデータグラムが無い為、S12に戻る。
【0125】
また、S100で上り回線にACKパケットが到着していない場合は(図5(b)のS100の‘N’)、送信側再送制御回路1−3は、上り回線のNAKパケットの到着を調べる。
【0126】
到着しているならば(図5(b)のS101の‘Y’)、送信側再送制御回路1−3は、該NAKパケットの送信元IPアドレスとフローラベルから、該再送パス番号kを判定し(図5(b)のS113)、NAKパケット中の再送ヘッダであるIPヘッダの拡張ヘッダ領域から、該NAKパケットで返送されてきたACK/NAK番号SQN_AN(k)、並びに返送されてきたウィンドウサイズW_R(k)を読み出す(図5(b)のS114)。そして、送信側再送制御回路1−3内で管理するリードアドレスSQN_RT(k)を、ACK/NAK番号SQN_AN(k)と置き換える(図5(b)のS115)。
【0127】
S101でNAKパケットが到着していない場合(図5(b)のS101の‘N’)、あるいは、S112でSQN_UT(k)値を二番目に若番のSQN(k)値に更新後、あるいは、S115でSQN_RT(k)値を更新した後は、送信側再送制御回路1−3は、送信側で管理するウィンドウ値W_T(k)と読み出すIPデータグラム長MTU(K)との大小比較を行う。
【0128】
W_T(k)≧MTU(K)ならば(図5(b)のS102の‘Y’)、受信側で許容されるウィンドウ値よりも、読み出しIPデータグラム長が短いため、送信側再送制御回路1−3は、送信側再送メモリ1−5のリードアドレスWDR_RT(k)を先頭アドレスとしてIPデータグラムを読み出す(図5(b)のS103)す。
【0129】
そして、読みだしたIPデータグラムをデータリンク層送信回路1−8に出力する(図5(b)のS104)。また、送信側で管理するウィンドウサイズW_T(k)から読み出したIPデータグラム長を減算してW_T(k)=W_T(k)−MTU(K)とする。また、読み出しシーケンス番号SQN_RT(k)を1だけインクリメントする(図5(b)のS105)。そして、S12に戻る。
【0130】
以上が、送信側再送制御回路1−3より送信側再送メモリ1−5をリードする際の処理である。
【0131】
(受信側再送制御回路20−3のライト動作の説明)
次に、図6(a)に、受信側再送制御回路20−3での、再送パスkのIPデータグラムを、受信側再送メモリ20−5へライトする際のフローチャートの一例を示す。
【0132】
IPv6拡張ヘッダ内再送ヘッダ抽出回路20−11より、IPデータグラムと読み出した再送ヘッダが入力されると(図6(a)のS31の‘Y’)、受信側再送制御回路20−3は、まず、再送ヘッダ内のチェックサム領域を用いて、再送ヘッダの誤り検査を行う(図6(a)のS32)。
【0133】
その結果、再送ヘッダに誤りが無いならば(図6(a)のS33の‘Y’)、受信側再送制御回路20−3は、該IPデータグラムが正常受信できているか、該IPデータグラム全体のビット誤りの検査を行う。具体的には、再送ヘッダ内に設けたCRC領域を用いる。CRC演算法は送信側のIPv6拡張ヘッダ内再送ヘッダ生成回路1−15と一致させ、CRC−32とする。または、自動再送制御の処理時間を短縮するために、データリンク層受信回路20−12より、イーサネットのFCS検査結果などのデータリンク層でのフレーム検査結果が出力される場合はそれを使用する。
【0134】
該IPデータグラムが正常受信できている場合(図6(a)のS34の‘Y’)、受信側再送制御回路20−3は、該IPヘッダの送信元IPアドレスとフローラベルから再送パス番号kを判定し(図6(a)のS35)、該再送パス番号kの受信側再送メモリ20−5でのライトアドレスADR_WR(k)を直前の同再送パス番号kのライトアドレスから特定する(図6(a)のS36)。併せて、受信側再送制御回路20−3は、該IPデータグラムのIPヘッダ内にあるペイロード長領域を読み出す(図6(a)のS37)。
【0135】
そして、受信側再送制御回路20−3は、ペイロード長と、該IPヘッダ長(40バイト)と、再送ヘッダとして用いるIPヘッダ拡張ヘッダ長の和により、IPデータグラム長MTU(K)を算出する(図6(a)のS38)。
【0136】
受信側再送制御回路20−3は、このIPデータグラム長MTU(K)と、再送ヘッダの2ワード目にあるシーケンス番号領域から該データグラムのSQN(k)値、ならびに、該IPデータグラム全体を、受信側再送メモリ20−5のADR_WR(k)よりライトする(図6(a)のS39)。SQN(k)値、IPデータグラム長MTU(K)は、データグラムが格納されているメモリ領域とは別の領域としても良い。
【0137】
S34のIPデータグラムの正常性検査でフレームに誤りがある場合(図6(a)のS34の‘N’)、受信側再送制御回路20−3は、やはり該IPヘッダの送信元IPアドレスとフローラベルから再送パス番号kを判定するが(図6(a)のS40)、該再送パス番号kの受信側再送メモリ20−5でのライトアドレスADR_WR(k)は変更しない(図6(a)のS41)。
【0138】
そして、受信側再送制御回路20−3は、再送ヘッダより取りだしたSQN(k)値をACK/NAK番号SQN_AN(k)とするNAKパケットの生成を、ACK/NAK生成回路20−15に指示する(図6(a)のS42)とともに、該受信IPデータグラムを廃棄する(図6(a)のS43)。
【0139】
また、S33で、再送ヘッダのチェックサム検査結果に誤りがあり、再送ヘッダ自体にエラーがあると判断する場合には(図6(a)のS33の‘N’)、受信側再送制御回路20−3は、該受信IPデータグラムをそのまま廃棄する(図6(a)のS43)。
【0140】
以上が、受信側再送制御回路20−3より受信側再送メモリ20−5にライトする際の処理である。
【0141】
(受信側再送制御回路20−3のリード動作の説明)
次に、受信側再送制御回路20−3での、再送パスkのIPデータグラムを受信側再送メモリ20−5からリードする際のフローチャートの一例を、図6(b)に示す。受信側再送制御回路20−3は、全再送パスを、公平もしくは予め定めた頻度順序に従って読みだすが、本フローチャートでは、動作を明確化するために、読み出す再送パスを、パス番号=kのある1つのパスとする場合の動作を示す。
【0142】
まず、受信側再送制御回路20−3内で管理する、再送パスkの読み出しシーケンス番号SQN_RR(k)の初期値を0、受信ウィンドウサイズW_R(k)の初期値は事前に設定した値とする(図6(b)のS45)。
【0143】
次いで、該データ受信装置20−1に再送パスkのIPデータグラムが到着し、SQN_RR(k)の初期アドレスにIPデータグラムがライトされたなら(図6(b)のS46の‘Y’)、受信側再送制御回路20−3は、まずタイマ回路20−4の、再送パスkに該当するタイマ(k)を0からスタートさせる(図6(b)のS57)。タイマ(k)は0から最大値まで1ずつインクリメントし、周回する正の整数である。また、S57以降の処理は、再送パスkに二番目以降のIPデータグラムが到着し、読み出しアドレスSQN_RR(k)から始まるメモリ領域にIPデータグラムがライトされた場合(図6(b)のS53の‘Y’)も同一のため、併せて説明する。
【0144】
S57でタイマ(k)を0クリアして再度カウントアップ開始後、受信側再送制御回路20−3は、該再送パス番号kの受信側再送メモリ20−5でのリードアドレスADR_RR(k)を直前の同再送パス番号kのリードアドレスから特定する(図6(b)のS47)。次いで、受信側再送制御回路20−3は、受信側再送メモリ20−5のリードアドレスADR_RR(k)から、同領域にライトされているIPデータグラムと、IPデータグラム長MTU(K)を読み出す(図6(b)のS48)。
【0145】
次いで、受信側再送制御回路20−3は、読み出したIPデータグラムをIPv6受信回路20−10に対して出力する(図6(b)のS49)。
【0146】
次いで、受信側再送制御回路20−3は、SQN_RR(k)と同じ値をACK/NAK番号SQN_AN(k)とするACKパケット生成を、ACK/NAK生成回路20−15に指示する(図6(b)のS50)とともに、ウィンドウサイズW_R(k)を、読み出したIPデータグラム分だけ増加させる(図6(b)のS51)。
【0147】
次いで、受信側再送制御回路20−3は、再送パスkの読み出しシーケンス番号SQN_RR(k)を+1インクリメントして(図6(b)のS52)、S53に移る。
【0148】
なお、S53において、読み出しアドレスSQN_RR(k)から始まるメモリ領域にIPデータグラムがまだライトされない場合は(図6(b)のS53の‘N’)、タイマ回路のタイマ(k)は一定時刻毎にカウントアップする(図6(b)のS54)。その結果、タイマ(k)が予め設定した閾値を超過し、すなわち予め設定した閾値時間の間、フレームロスやフレーム誤りによって、読み出しアドレスSQN_RR(k)から始まるメモリ領域にIPデータグラムがライトされない場合には(図6(b)のS55の‘Y’)、SQN_RR(k)と同じ値をACK/NAK番号SQN_AN(k)とするNAKパケット生成を、ACK/NAK生成回路20−15に指示し(図6(b)のS56)、S53に移る。
【0149】
以上が、受信側再送制御回路20−3によって、受信側再送メモリ20−5よりリードする際の処理である。
【0150】
(データパケットと、ACKパケット、NAKパケットの流れの説明)
次に、図7に、データ送信装置1−1とデータ受信装置20−1との間で、IPv6拡張ヘッダを再送ヘッダに用いた自動再送制御を行う場合のデータパケットと、ACKパケット、NAKパケットの流れを示す。図1と同じように、再送パスとして、データ送信装置1−1からデータ受信装置20−1の方向にデータ用パス(下り方向)、その逆方向をACK/NAK用パス(上り方向)とする場合である。また、自動再送制御方式はGo−Back−N ARQ方式である。
【0151】
まず、上位層1−6より、上位層およびTCP等のトランスポート層処理を行ったパケットが出力されて、IPv6送信回路1−2に入力される。その出力データグラムに対して、IPv6拡張ヘッダ内再送ヘッダ生成回路1−15で再送ヘッダを付与する。
【0152】
図中では、再送ヘッダ中のSQN(k)値をシーケンス番号SQNとして付与し、SQN=1〜SQN=4のIPデータグラムが正常にデータ受信装置20−1に到着し、IPv6拡張ヘッダ内再送ヘッダ抽出回路20−11で再送ヘッダを読み出して処理した後、ACK/NAKパケット生成回路20−7よりSQN_AN(k)値=1〜4の「ACK(k)1」〜「ACK(k)4」を返送する。
【0153】
そして、SQN=5のIPデータグラムが、IP網22中で輻輳等で消失すると、データ受信装置20−1内で、SQN=5のIPデータグラムの到着タイムアウトとなり、データ送信装置に対してSQN_AN(k)値=5の「NAK(k)5」を返送する。
【0154】
送信側ではウィンドウ値に基づきSQN=7のデータグラムまで出力しているが、上り回線での「NAK(k)5」の受信によって、SQN=5のIPデータグラムにさかのぼり自動再送制御を行う。
【0155】
受信側で正常にSQN=5のIPデータグラムを受信すると、上り回線に「ACK(k)5」を返送し、それ以降、連続するSQN値のIPデータグラムを送信する。
【0156】
このように、途中のIP網22でIPデータグラムのパケットロスが発生しても、IPv6拡張ヘッダを再送ヘッダに用いた自動再送制御によって、そのパケットロスはデータ受信装置20−1の上位層20−6にまでは伝わらず、トランスポート層プロトコルがTCPであっても、その輻輳制御を回避する事ができるほか、TCPのタイムアウト時間に起因するTCP層での再送時間の増加を防ぐ事が可能である。
【0157】
(再送メモリ量)
なお、図1に示す本実施の形態は、データ送信装置1−1とデータ受信装置20−1にそれぞれ十分大きな再送メモリを持つ場合の実施の形態である。再送メモリの必要量は次のように求められる。
【0158】
図8は、データ送信装置1−1とデータ受信装置20−1で、再送パスkを用いて、Go−Back−N ARQ方式やSelective Repeat ARQ方式のウィンドウフロー制御を行う場合のデータとACK、NAKの転送の様子を説明する図である。その往復遅延時間をRTT(k)(Round Trip Time)、ウィンドウサイズをW_R(k)、再送パスkのデータのスループットをTH(k)とすると、
W_R(k)≧TH(k)×RTT(k) ・・・(式1)
である。
【0159】
再送メモリには、送信側と受信側の双方とも、ウィンドウサイズ以上のデータを蓄積する可能性があり、送信側再送メモリと受信側再送メモリとしては、それぞれウィンドウサイズW_R(k)=TH(k)×RTT(k)以上のIPデータグラムを蓄積できるだけのメモリ量を、再送パス別に配備する。したがって、再送パスの距離が異なり、RTTに差がある場合には、必要なメモリ量も異なる。
【0160】
(その他の条件への適用)
以上では、IPv6を用いる場合に、その拡張ヘッダを再送ヘッダに用いているが、IPv4のIPヘッダ中に定義されている20バイトのオプション領域を再送ヘッダに使用しても良い。オプション領域長は固定長のため、図1における24バイトの再送ヘッダの中から計32ビットのオプション領域を削除した計20バイトを、IPv4ヘッダのオプション領域に割り当てる。これによって、IPv6のみでなく、IPv4での自動再送制御を行う事ができる。
【0161】
また、図1に示す本実施の形態では、自動再送制御方式としてGo−Back−N ARQ方式としているが、より再送効率の高いSelective Repeat ARQ方式としても良い。その場合には、図5の送信側再送制御回路1−3のメモリへのライト・リード処理フローと、図6の受信側再送制御回路20−3のメモリへのライト・リード処理フローを、Selective Repeat ARQ方式に対応する処理に変更する必要があるが、その変更のみでSelective Repeat ARQ方式とする事ができる。
【0162】
また、図1に示す本実施の形態では、上り回線において、ACKのほかに、NAKを使用しているが、TCPと同様に返送するのはACKのみとしても良い。
【0163】
また、図1に示す本実施の形態では、該IPv6拡張ヘッダを再送ヘッダに用いた自動再送制御を、データ送信装置とデータ受信装置の送受信機能に適用しているが、LANのエッジに配備されるレイヤ3スイッチ(ルータ)の、広域網側のラインカードに適用しても良い。具体的には、データ送信装置1−1の上位層処理1−6と、データ受信装置20−1の上位層処理20−6のかわりに、レイヤ3スイッチが配備される構成であって良い。
【0164】
(第1の実施の形態による効果)
本実施の形態に寄れば、データ送信装置からデータ受信装置までの再送ヘッダにIPv6ヘッダの拡張ヘッダを用いることで、網の途中にレイヤ3スイッチが配備されていてもそれを透過して行くため、網中のレイヤ3スイッチに新規に機能を追加する必要がなく、容易に下位層での自動再送制御の実現が可能となる。
【0165】
また、本実施の形態に寄れば、データ送信装置とデータ受信装置の間のIP網でIPデータグラムのパケットロスが発生しても、そのパケットロスをデータ受信装置20−1の上位層20−6にまでは伝えずに、TCPの輻輳制御の発生と、輻輳制御に起因するTCPスループットの低下、ならびに、TCPのタイムアウト時間に起因するTCP層での再送時間の増加を防ぐ事が可能なネットワークを容易に構築する事ができる。
【0166】
その理由は、該IPv6拡張ヘッダを再送ヘッダに用いた自動再送制御は、データ送信装置とデータ受信装置に配備するだけで良く、途中のIP網のレイヤ3スイッチの変更は不要であり、これだけで上位層に対してパケットロスが発生していないように見せる事が可能なためである。
【0167】
なお、本発明の課題を解決できる最小限の構成をとして、通信システム100が、データ送信装置1−1とデータ受信装置20−1とを含み、データ送信装置1−1が、データ受信装置20−1に出力するIPデータグラムのIPv6ヘッダに付加した拡張ヘッダ領域に再送ヘッダを付与する手段を備えることで、上述した本発明の課題を解決することができる。
【0168】
(第2の実施の形態)
次に、図9、図2、図10、図11、図12、図13、図14を用いて、本発明の第2の実施の形態について説明を行う。
第2の実施の形態は、IPv6拡張ヘッダを再送ヘッダに用いたセッションやフロー毎の自動再送制御を、レイヤ3スイッチのラインカードに適用する事を目的に、その再送パス毎の再送メモリ量が端末装置ほど十分に確保できず、再送パス別に通信開始時にメモリ領域を確保する場合に、効率的な再送メモリ領域の割り当てを行うものである。
【0169】
図9は、本発明の第2の実施の形態による、IPv6ヘッダの拡張ヘッダを再送ヘッダに使用する自動再送制御を実施する通信システム200の構成を示すブロック図である。
【0170】
自動再送制御方式は、何れの方式とする事ができるが、Go−Back−N ARQ方式を適用する場合で説明する。また、以降では、データ送信装置からデータ受信装置への方向を下り方向、データ受信装置からデータ送信装置への向きを上り方向と称す。
【0171】
本実施の形態のM×Nポートスイッチ94は、LAN側ラインカード90−1〜90−M(Mは正の任意の整数)と、スイッチ回路92と、広域網側ラインカード9−1〜9−N(Nは正の任意の整数)とから構成される。
【0172】
ラインカード9−1は、送信側IP再送回路9−1−14と、データリンク層送信回路9−1−8と、物理層送信回路9−1−9と、物理層受信回路9−1−13と、データリンク層受信回路9−1−12とを有する。
【0173】
送信側IP再送回路9−14は、IPv6拡張ヘッダ内再送ヘッダ生成回路9―1―15と、送信側再送制御回路9−1−3と、送信側再送メモリ9−1−5と、タイマ回路9−1−4と、IPv6拡張ヘッダ内再送ヘッダ抽出回路9−1−11と、ICMPv6モニタ回路9−1−16と、送信側再送メモリ領域算出回路9−1−17とから構成される。
【0174】

M×Nポートスイッチ234は、物理層受信回路23−1−13と、データリンク層受信回路23−1−12と、受信側IP再送回路23−1−14と、スイッチ回路232と、ラインカード230−1と、データリンク層送信回路23−1−8と、物理層送信回路23−1−9とを有する。
【0175】
受信側IP再送回路23−1−14は、IPv6拡張ヘッダ内再送ヘッダ抽出回路23−1−11と、受信側再送制御回路23−1−3と、受信側再送メモリ23−1−5と、タイマ回路23−1−4と、ACK/NAK生成回路23−1−15と、選択回路23−1−7と、受信側再送メモリ領域算出回路23−1−3とから構成される。
【0176】
データリンク層送信回路9−1−8、23−1−8、データリンク層受信回路9−1−12、23−1−12はイーサネットMAC等の一般的なレイヤ2処理である。物理層送信回路9−1−9、23−1−9および物理層受信回路9−1−13、23−1−13はイーサネット物理層やOTNなどの一般的なレイヤ1処理である。
【0177】
IP網24は、レイヤ3スイッチやレイヤ2スイッチにより構成される一般的なIP網であり、レイヤ2スイッチやレイヤ3スイッチを1台〜複数台配備した、一般的なIP網である。想定するネットワーク規模は、LAN〜広域網である。
【0178】
ここで、図14にプロトコルスタック例を示す。図14は、LAN144内にデータ送信装置141と、エッジスイッチとしてレイヤ3スイッチ94を配備し、広域網146内には複数のレイヤ2スイッチやレイヤ3スイッチ(図14ではレイヤ3スイッチ143のみ図示)を配備し、LAN145内にデータ受信装置143と、エッジスイッチとしてレイヤ3スイッチ234を配備する例である。
【0179】
自動再送制御区間は、LANのエッジスイッチの広域網側ラインカード間としている。つまり、LAN内の輻輳が軽微であり、広域網で輻輳が発生しやすく、それをIPv6拡張ヘッダを再送ヘッダに用いた自動再送制御によって隠ぺいし、データ送信装置141とデータ受信装置142のTCPでの輻輳制御や、TCPタイムアウトによるスループット低下の影響を、低減する事が目的である。この構成では、データ送信装置141やデータ受信装置142は変更せずに、エッジスイッチであるレイヤ3スイッチのみに機能追加を行えばよいというメリットがある。
【0180】
(各ブロックの構成)
次に、図9の動作を詳細に説明する。
【0181】
前述のように、図9において、データリンク層送信回路9−1−8、23−1−8、データリンク層受信回路9−1−12、23−1−12はイーサネットMAC等の一般的なレイヤ2処理であり、物理層送信回路9−1−9、23−1−9および物理層受信回路9−1−13、23−1−13はイーサネット物理層やOTNなどの一般的なレイヤ1処理であり、本発明の内容とは直接は関係しないため、説明は省略する。また、以下では主にラインカード9−1と23−1の動作を説明しているが、他のラインカードでの動作は同様である。
【0182】
図9で、M×Nポートスイッチ94のラインカード9−1がスイッチ回路92からIPデータグラムを受け取ると、IPv6ヘッダ生成回路9−1−15が、IPデータグラム毎にIPv6ヘッダの拡張ヘッダを用いて再送ヘッダを付与する。
【0183】
(再送ヘッダ)
再送ヘッダは、シーケンス番号(SQN(k);0から最大値まで1ずつ増加して周回する正の整数。また、kは再送パス番号を示す正の整数。)、再送ヘッダの正常性チェック用チェックサム領域、該IPデータグラムの正常性チェック用のCRC領域を含む。
【0184】
また、再送ヘッダは、該IPデータグラムが通常のデータグラムかACKかNAKか或いは再送データグラムかを表示する領域と、更に該再送パスkのRTT値であるRTT(k)を受信側に通知する領域(4バイト)と、該再送パスkで転送可能な最大のIPデータグラム長(再送ヘッダ長も含む)である最大MTU(k)を通知する領域(4バイト)も含む。
【0185】
再送ヘッダは、計32バイトの領域である。
【0186】
図2に、再送ヘッダのフォーマットの一例を示す。再送ヘッダのうちの5ワード目と6ワード目にRTT(k)領域と、最大MTU(k)領域を追加している。
【0187】
その他の領域は、図1の第1の実施例と比較して、RTT(k)と最大MTU(k)領域の計8バイトを追加している。その理由は、再送パス毎の再送メモリ量が端末装置ほど十分に確保できない場合に、再送パス別に通信開始時にメモリ領域を確保する際に、効率的な再送メモリ領域の割り当てを行うためである。
【0188】
(効率的メモリ割り当て)
送信側の再送メモリ量に制限があり、全再送パスの再送メモリを式1で示される十分な量を確保できない場合は、ウィンドウフロー制御におけるスループットに制限を設ける。再送パスkの最低保証スループットをTHmin(k)として、
W_R(k)≧THmin(k)×RTT(k) ・・・(式2)
となり、再送パス毎にTHminとRTTによって変わる。このウィンドウサイズW_R(k)を格納可能なメモリ量MEM(k)が、送信側での最小の再送メモリ量、および、受信側での最小の再送メモリ量となる。
【0189】
しかしながら、式2に基づく場合は再送メモリを効率的に使用できず、スループットが下がる可能性がある。そのために、再送パスkの最大MTUサイズMTU(k)を考慮し、再送パスk毎のMTU(k)を基準にして、メモリ量MEM(k)を計算する必要がある。
【0190】
これは、連続して最大MTU(k)のIPデータグラムを送受信する場合に、送信側メモリ量MEM(k)が、MTU(k)の整数倍で無い場合に、式2に基づく量のIPデータグラムを送信側再送メモリMEM(k)に格納できず、再送制御に使用できない場合があるためである。
【0191】
これを図10を用いて説明する。図10(a)は、式2に基づき求めた送信側再送メモリの各再送パスに対するメモリ領域の割り当て例である。
【0192】
メモリ領域サイズは、再送パス毎に、最低保証スループットTHmin(k)×RTT(k)により算出する。このため、メモリ領域サイズは最大MTU(k)とは関係なく決まる。
【0193】
図10(a)に示すように、その値が最大MTU(k)の整数倍ではない場合に、101のように最長MTU長のIPデータグラムを格納するには十分でない領域が生まれ、その分スループットが低下する、もしくはIPデータグラム廃棄の可能性がある。
【0194】
具体的には、最大MTU(k)=1,500バイト、THmin(k)=10Gbps、RTT(k)=5μsecの時に、式2に基づくメモリ量MEM(k)は6,250バイトである。
【0195】
MEM(k)に最大MTU(k)分のIPデータグラムを格納してゆくと、4フレーム分(6、000バイト)は格納できるが、残り250バイト分にIPデータグラムを格納すると、該IPデータグラムの全データを格納できず、廃棄が起こり、最低保証スループットTHmin(k)も保証できない。
【0196】
これを避けるために、図10(b)のように、式2を満たす、最大MTU(k)の整数倍にMEM(k)を設定することで、102の領域にもIPデータグラムをメモリ領域を無駄なく使用する事が可能であり、最低保証スループットTHmin(k)を満たすことも可能である。そこで、
MEM(k)≧最大MTU(k)×Z ≧ THmin(k)×RTT(k) ・・・(式2)
(Zは1以上の正の整数)
となる再送メモリ量を送信側、受信側の双方で確保するために、送信側から該再送パスkのRTT値であるRTT(k)を受信側に通知する領域(4バイト)と該再送パスkで転送可能な最大のIPデータグラム長(再送ヘッダ長も含む)である最大MTU(k)を通知する領域(4バイト)を設ける。
【0197】
(最大MTU値)
通信機器別に、送受信可能なIPデータグラム長MTU(k)は異なる。これは、内蔵するメモリ量や設計仕様によって異なるためである。そこで、IPv6では、通信開始時において、送信側より大きなMTU値で送出を開始し、該MTU値を受信できない機器が、上り回線を用いて、制御用パケットであるICMPv6(Internet Control Message Protocol for IPv6)を返送し、パケットサイズ過大エラーを通知する機能を有する。
【0198】
具体的には、送信側から送付されたMTUサイズのIPデータグラムを受信できない機器は、上り回線を利用して、図11に示される、パケットサイズ過大エラーを示すICMPv6パケットを送信側に返送する。
【0199】
該パケット過大エラーを受信した送信側では、MTU値を少しずつ小さくして送出し、該パケットサイズ過大エラーが返送されないMTU値を見つける。これが最大MTU値となる。これはIETFが定める技術仕様のRFC4443で規程されている。
【0200】
そこで、送信側ラインカード9−1内で再送パスk別に、ICMPv6を用いたパケット過大エラーをモニタし、パケット過大エラーが発生するデータグラム長と、発生しないデータグラム長の閾値を判定し、最大MTU(k)値を求める。
【0201】
(第2の実施の形態の動作の説明)
次に、本実施の形態による通信システム200の動作について、図面を参照して詳細に説明する。
【0202】
(各ブロックの動作説明)
図9を参照すると、IPv6ヘッダ生成回路9−1−15で再送ヘッダを付与されたIPデータグラムは、送信側再送制御回路9−1−3に入力される。
【0203】
該IPデータグラムが、再送パスkの最初のIPデータグラムならば、送信側再送制御回路9−1−3は、タイマ回路9−1−4の再送パスk用カウンタタイマ(k)のカウントアップを開始させる。
【0204】
そして、送信側再送制御回路9−1−3は、送信側再送メモリ9−1−5に、該IPデータグラムを、付与されたシーケンス番号SQN(k)、および該IPデータグラム長MTU(K)、タイマ(k)値とともに書き込む。
【0205】
送信側再送メモリ9−1−5内を再送パス毎に領域分割され、送信側再送制御回路9−1−3は、送信側再送制御回路9−1−3から該当するメモリ領域内にシーケンス番号SQN(k)の若番から順に書き込む。本動作は図1の送信側再送制御回路1−3と同一である。
【0206】
送信側再送メモリ9−1−5に書き込まれたIPデータグラムは、送信側再送制御回路9−1−3によって、全再送パスを公平もしくは予め定めた頻度順序に従って、定めされたウィンドウサイズの分だけ読みだされる。
【0207】
その際に、同一の再送パスk内では、上り回線で当該再送パスkのACKパケット(ACK(k))を受信し、当該再送パスkのNAKパケット(NAK(k))を受信しない限りは該SQN(k)の順序で読みだされ、NAKパケット受信時は、NAK(k)で指示されたシーケンス番号SQN(k)値にさかのぼり読み出しを開始する。
【0208】
また、送信側再送制御回路9−1−3は、ACK(k)を受信していないシーケンス番号SQN(k)値のうち、最も若番の値について、常時送信側再送メモリ9−1−5にライトした時のタイマ値と、タイマ回路9−1−4の現タイマ(k)値とを比較して、その差が予め定めた閾値以上ならば、対SQN(k)値のIPデータグラムはタイムアウトしたと判定し、該タイムアウトしたSQN(k)値にさかのぼり読み出しを行う機能も持つ。本動作は図1の送信側再送制御回路1−3と同一である。
【0209】
こうして送信側再送メモリ9−1−5より読みだされたIPデータグラムは、データリンク層送信回路9−1−8および物理層送信回路9−1−9を通してIP網24に出力し、M×Nポートスイッチ234のラインカード23−1で受信する。
【0210】
受信側では、まず物理層受信回路23−1−13、データリンク層受信回路23−1−12を通して受信側IP再送回路23−1−14にIPデータグラムが入力される。
【0211】
そして、IPv6拡張ヘッダ内再送ヘッダ抽出回路23−1−11でIPv6拡張ヘッダを取り出し、IPデータグラム本体と共に受信側再送制御回路23−1−3に入力する。
【0212】
受信側再送制御回路23−1−3は、再送ヘッダ内にある正常性チェック用チェックサムを使用して、再送ヘッダ自体の誤りの有無を確認する。誤りがある場合は、正常に自動再送制御が期待できないため、受信側再送制御回路23−1−3は、該IPデータグラムを廃棄し、データ送信装置へのNAK返送も行わない。
【0213】
一方、チェックサム検査の結果、再送ヘッダ自体に誤りが無い場合、受信側再送制御回路23−1−3は、該IPデータグラムの正常性検査を行う。
【0214】
正常性検査には、再送ヘッダ内のCRC領域を使用するが、自動再送制御の処理時間を短縮するために、データリンク層受信回路23−1−12よりデータリンク層でのフレーム検査結果が出力される場合はそれを使用しても良い。データリンク層でのフレーム検査の一例に、イーサネットにおけるFCS(Frame Check Sequence)演算がある。本動作は図1の受信側再送制御回路20−3と同一である。
【0215】
IPデータグラムの正常性検査の結果、正常なIPデータグラムであった場合、受信側再送制御回路23−1−3は、該IPデータグラムのシーケンス番号SQN(k)値等のヘッダ情報を含むACKパケット(ACK(k))を、該M×Nポートスイッチ234のラインカード23−1が起点、M×Nポートスイッチ94のラインカード9−1が受信点となるようにACK/NAK生成回路23−15で生成し、生成したACKパケット(ACK(k))を、選択回路23−7で上り側回線に挿入することでデータ送信装置9−1に返送する。
【0216】
一方、IPデータグラムの正常性検査の結果、受信したIPデータグラムに誤りがあると判定した場合、受信側再送制御回路23−1−3は、該IPデータグラムのシーケンス番号SQN(k)値等のヘッダ情報を含むNAKパケット(NAK(k))を、該M×Nポートスイッチ234のラインカード23−1が起点、M×Nポートスイッチ94のラインカード9−1が受信点となるようにACK/NAK生成回路23−1−15で生成し、生成したACKパケット(ACK(k))を、選択回路23−1−7で上り側回線に挿入することでM×Nポートスイッチ94のラインカード9−1に返送する。
【0217】
また、受信側再送制御回路23−1−3は、正常受信したIPデータグラムを、付与されたシーケンス番号SQN(k)、および該IPデータグラム長MTU(K)とともに、受信側再送メモリ23−1−5に書き込む。受信側再送制御回路23−1−3は、受信側再送メモリ23−5内を再送パス毎に領域分割し、送信元IPアドレスとフローラベルから該再送パスを判別し、該当する再送パスのメモリ領域内にシーケンス番号SQN(k)の若番から順に書き込む。
【0218】
なお、受信側再送制御回路23−1−3内では、再送パスk別にウィンドウサイズW_R(k)を計算する。ウィンドウサイズは、受け取る事ができるデータ量を送信側に通知するための値であり、ACK返送時はウィンドウサイズW_R(k)から該受信IPデータグラム長を減算して送信側に通知し、NAK返送時はウィンドウサイズは変更せずに送信側に通知する。
【0219】
次に、受信側再送メモリ23−1−5の読み出し動作を示す。読み出しも受信側再送制御回路23−1−3で行う。
【0220】
受信側再送制御回路23−1−3内に、再送パスk別に読み出し用シーケンス番号カウンタSQN_RR(k)を設ける。受信側再送制御回路23−1−3は、受信側再送メモリ23−1−5の各再送パスを、全再送パスを公平もしくは予め定めた頻度順位に従ってチェックし、同一再送パス内で前のIPデータグラムと連続したシーケンス番号SQN(k)値が書き込まれているならば、該SQN(k)値のIPデータグラムを読み出し、スイッチ回路232に出力する。
【0221】
一方、IPデータグラムの欠落や遅延によってSQN(k)値に不連続が発生して、同一再送パス内のメモリ領域に歯抜けが発生しているならば、受信側再送制御回路23−1−3は、タイマ回路23−1−4の再送パスk用のタイマ(k)を0から一定時刻毎にカウントアップを開始する。
【0222】
そして、タイマ(k)値が設定閾値を超過する場合は、受信側再送制御回路23−1−3は、タイムアウトが発生したと判断し、SQN(k)値の不連続が発生している最も若番のSQN(k)値をACK/NAK番号SQN_AN(K)にセットしたNAKパケット(NAK(k))を、送信側に返送する。
【0223】
一方、受信側再送制御回路23−1−3は、該再送パスk用メモリ領域からのIPデータグラムの読み出しを行う度に、該タイマ(k)を0にクリアする。これによって、再送パス別に、SQN(k)値が不連続な場合のタイムアウトを検出し、未到着IPデータグラムのうち、最もシーケンス番号SQN(k)に対するNAK(k)を送信側に返送する。
【0224】
本動作は図1の受信側再送制御回路20−3と同一である。また、以上がデータ受信装置内の動作である。
【0225】
データ受信装置から出力されたACKパケットもしくはNAKパケットは、IP網24を通り、M×Nポートスイッチ94のラインカード9−1に返送される。
【0226】
なお、送信側ラインカード9−1の送信側IP再送回路9−1−14において、ICMPv6モニタ回路9−1−16は、再送パスk毎に、通信開始時に上り回線によって送付されるICMPv6のパケットサイズ過大エラー(Packet Too Big)パケットをモニタし、そのパケットサイズ過大エラーの発生を送信側再送メモリ領域算出回路9−1−17と、送信側再送制御回路9−1−3に通知する。
【0227】
また、送信側再送制御回路9−1−3は、再送パスkの通信開始時に、そのRTT(k)をタイマ回路9−1−4を用いて測定し、測定結果のRTT(k)を送信側再送メモリ領域算出回路9−1−17と、IPv6拡張ヘッダ内再送ヘッダ生成回路9−1−15に転送する。
【0228】
送信側再送メモリ領域算出回路9−1−17は、ICMPv6モニタ回路9−1−16より入力されるパケットサイズ過大エラーが発生するMTU値と、それが発生しないMTU値との閾値を監視し、該再送パスkが透過可能な最大MTU(k)値を求めるとともに、RTT(k)値とから、式2を用いて、「MEM(k)≧最大MTU(k)×Z ≧ THmin(k)×RTT(k)」(Zは正の整数)となるメモリサイズを算出する。
【0229】
該メモリサイズは、送信側再送制御回路9−1−3に転送されて、再送パスkのIPデータグラムを送信側再送メモリ9−1−5にライトする際のアドレス値上限の決定に使用される。
【0230】
また、最大MTU(k)は、送信側再送メモリ領域算出回路9−1−17から送信側再送制御回路9−1−3経由でIPv6拡張ヘッダ内再送ヘッダ生成回路9−1−15に転送される。
【0231】
IPv6拡張ヘッダ内再送ヘッダ生成回路9−1−15は、再送ヘッダに該RTT(k)値と、最大MTU(k)値も付与し、受信側に転送する。
【0232】
そして、受信側ラインカード23−1の受信用IP再送回路23−1−14において、IPv6拡張ヘッダ内再送ヘッダ抽出回路23−1−11で、送信側で付与されたRTT(k)と最大MTU(k)を読み出し、受信側再送メモリ領域算出回路23−1−17に入力する。
【0233】
受信側再送メモリ領域算出回路23−1−17は、やはり式2に従って、「MEM(k)≧最大MTU(k)×Z ≧ THmin(k)×RTT(k)」(Zは正の整数)となるメモリサイズを算出する。
【0234】
該メモリサイズは、受信側再送制御回路23−1−3に転送されて、再送パスkのIPデータグラムを受信側再送メモリ23−1−5にライトする際のアドレス値上限の決定に使用される。
【0235】
以上が、図9による該M×Nポートスイッチ94のラインカード9−1とM×Nポートスイッチ234のラインカード23−1との間での自動再送制御の動作である。
【0236】
(送信側再送メモリ領域算出)
図12は、送信側再送メモリ領域算出回路9−1−17における、再送パスk毎の送信側再送メモリ領域算出演算の処理フローを説明する図である。
【0237】
再送パスk別に、目標とする最低保証スループットTHmin(k)を外部より設定する(図12のS61)。
【0238】
次に、送信側再送制御回路9−1−3が、タイマ回路9−1−4を用いて計測した再送パスkのRTT(k)値を入手する(図12のS62)。
【0239】
そして、送信側再送メモリ領域算出回路9−1−17が、ICMPv6モニタ回路9−1−16より入力されるICMPv6によるパケットサイズ過大エラーが発生するMTU値と、それが発生しないMTU値との閾値の監視結果から、該再送パスkが透過可能な最大MTU(k)値を決定する(図12のS63)。
【0240】
次いで、送信側再送メモリ領域算出回路9−1−17は、最低保証スループットTHmin(k)とRTT(k)値とから、ウィンドウサイズW_T(k)を算出する(図12のS64)。更に、送信側再送メモリ領域算出回路9−1−17は、W_T(k)を上回り、かつ、最大MTU(k)のZ倍(Zは正の整数)となるMEM(k)を決定する(図12のS65)。
【0241】
(受信側再送メモリ領域算出)
図13は、受信側再送メモリ領域算出回路23−1−17における、再送パスk毎の受信側再送メモリ領域算出演算の処理フローを説明する図である。
【0242】
まず、再送パスk別に、目標とする最低保証スループットTHmin(k)を外部より設定する(図12のS71)。次に、IPv6拡張ヘッダ内再送ヘッダ抽出回路23−1−11が、再送ヘッダ中よりリードしたRTT(k)値を入手する(図13のS72)。また、IPv6拡張ヘッダ内再送ヘッダ抽出回路23−1−11は、再送ヘッダ中よりリードした最大MTU(k)値を入手する(図13のS73)。
【0243】
そして、送信側と同様に、まず、受信側再送メモリ領域算出回路23−1−17は、最低保証スループットTHmin(k)とRTT(k)値とから、ウィンドウサイズW_R(k)を算出する(図13のS74)。更に、受信側再送メモリ領域算出回路23−1−17は、W_R(k)を上回り、かつ、最大MTU(k)のZ倍(Zは正の整数)となるMEM(k)を決定する(図12のS75)。
【0244】
(その他の条件への適用)
図9に示す本実施の形態では、自動再送制御方式としてGo−Back−N ARQ方式としているが、より再送効率の高いSelective Repeat ARQ方式としても良い。その場合には、図1と同様に、図9の送信側再送制御回路9−1−3のメモリへのライト・リード処理フローと、受信側再送制御回路23−1−3のメモリへのライト・リード処理フローを、Selective Repeat ARQ方式に対応する処理に変更する必要があるが、その変更のみでSelective Repeat ARQ方式とする事ができる。
【0245】
また、図9に示す本実施の形態では、上り回線において、ACKのほかに、NAKを使用しているが、TCPと同様に返送するのはACKのみとしても良い。
【0246】
また、図9に示す本実施の形態は、該IPv6拡張ヘッダを再送ヘッダに用いた自動再送制御を、LANのエッジに配備されるレイヤ3スイッチ(ルータ)の、広域網側のラインカードに適用しているが、データ送信装置とデータ受信装置の送受信機能に適用しても良い。
【0247】
以上が詳細動作である。
【0248】
(第2の実施の形態による効果)
本実施の形態によれば、再送パス毎の再送メモリ量が端末装置ほど十分に確保できず、再送パス別に通信開始時にメモリ領域を確保する場合に、効率的な再送メモリ領域の割り当てを行うことができる。
【0249】
また、本実施の形態に寄れば、該IPv6拡張ヘッダを再送ヘッダに用いた自動再送制御を、広域網に接続されるLAN網のエッジノードに実装すれことにより、データ送受信装置に手を加える事無く、LAN間の広域網での輻輳に起因する、TCPスループットの低下を回避と、TCPのタイムアウト時間に起因するTCP層での再送時間の増加の回避を、容易に構築できる事が可能にある。
【0250】
本発明のデータ送信装置1−1、データ受信装置20−1の各機能は、プログラムを組み込んだ、LSI(Large Scale Integration)等のハードウェア部品である回路部品を実装することにより、その動作をハードウェア的に実現することは勿論として、その機能を提供するプログラムを、記憶装置807に格納し、そのプログラムを主記憶部802にロードしてCPU801で実行することにより、ソフトウェア的に実現することも可能である。
【0251】
以上、好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
【0252】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【0253】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
【0254】
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施する時には、その複数の手順の順番は内容的に支障しない範囲で変更することができる。
【0255】
また、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
【0256】
さらに、上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、これに限定されない。
【0257】
(付記1)
データ送信装置とデータ受信装置とを含む通信システムであって、
前記データ送信装置が、
データ受信装置に出力するIPデータグラムのIPv6ヘッダに付加した拡張ヘッダ領域に再送ヘッダを付与する手段を備える
ことを特徴とする通信システム。
【0258】
(付記2)
前記再送ヘッダは、少なくとも前記IPデータグラムのシーケンス番号を含み、
前記シーケンス番号を、セッションやフロー別で区別される再送パス別に付与し、
前記データ受信装置が、
前記データ送信装置から受信した前記IPデータグラムの再送ヘッダ内のシーケンス番号を含むACKパケット又はNAKパケットを、前記データ送信装置に送信する手段を備える
ことを特徴とする付記1に記載の通信システム。
【0259】
(付記3)
前記データ送信装置が、
再送パス別に分割した送信側再送メモリに対して、前記再送ヘッダを付与した前記IPデータグラムを、当該再送パス別に、前記再送ヘッダ内に付与したシーケンス番号順に格納する送信側データ蓄積手段と、
前記データ受信装置より返送されるACKパケット又はNAKパケットに含まれる前記シーケンス番号に対応する前記IPデータグラムを、前記送信側再送メモリから読み出してデータ受信装置に対して出力する送信側再送制御手段とを備え、
前記データ受信装置が、
前記データ送信装置から受信した前記IPデータグラムの再送ヘッダ内の正常性チェック要チェックサムを使用して、当該IPデータグラムの正常性を検査する手段と、
正常性検査の結果、IPデータグラムに誤りが無いと判定した場合に、再送パス別に分割した受信側再送メモリに対して、当該IPデータグラムを、当該再送パス別に、前記再送ヘッダ内に含まれる前記シーケンス番号順に格納する受信側データ蓄積手段と、
正常性検査の結果に基づいて、当該IPデータグラムの前記シーケンス番号を少なくとも含むACKパケット又はNAKパケットの生成をパケット送出手段に指示する受信側再送制御手段と、
前記受信側再送制御手段の指示にしたがって、ACKパケット又はNAKパケットを生成し、対向するデータ送信装置への回線に対して送出するパケット送出手段とを備える
ことを特徴とする付記2に記載の通信システム。
【0260】
(付記4)
前記受信側再送制御手段は、
正常性検査の結果、IPデータグラムに誤りが無いと判定された場合、当該IPデータグラムの前記シーケンス番号を少なくとも含むACKパケットの生成をパケット送出手段に指示し、
正常性検査の結果、IPデータグラムに誤りがあると判定された場合、当該IPデータグラムの前記シーケンス番号を少なくとも含むNAKパケットの生成をパケット送出手段に指示する
ことを特徴とする付記3に記載の通信システム。
【0261】
(付記5)
前記受信側再送制御手段は、
再送パス別に前記受信側再送メモリに格納されているIPデータグラムのうち、シーケンス番号が連続する部分のデータグラムを外部に出力し、
再送パス別に前記受信側再送メモリに格納されているIPデータグラムのシーケンス番号に不連続が発生している場合、前記シーケンス番号の不連続が発生している最も若番のシーケンス番号をセットしたNAKパケットの生成を前記パケット送出手段に指示する
ことを特徴とする付記3又は付記4に記載の通信システム。
【0262】
(付記6)
前記受信側再送制御手段は、
再送パス別に前記受信側再送メモリに格納されているIPデータグラムのシーケンス番号に不連続が発生している場合、タイマにより一定時刻毎にカウントアップを開始し、
タイマの値が予め設定した閾値を超えた場合、タイムアウトが発生したと判断し、前記シーケンス番号の不連続が発生している最も若番のシーケンス番号をセットしたNAKパケットの生成を前記パケット送出手段に指示する
ことを特徴とする付記5に記載の通信システム。
【0263】
(付記7)
前記データ送信装置が、
前記データ受信装置より返送されるACKパケットの往復遅延時間を、再送パス別に判定する手段と、
IPv6で規定される制御用ICMPv6のパケット過大エラーから、再送パス別に、当該再送パスで転送可能な最大のIPデータグラム長である最大MTU値を算出する手段と、
再送パスの最低保証目標スループットと前記往復遅延時間の積と、最大MTU値とから、当該再送パスの最低保証スループットを満たすために必要な再送メモリ量を算出する手段とを含み、
前記送信側データ蓄積手段が、
前記送信側再送メモリに前記IPデータグラムを格納する際のアドレス上限値を、算出した前記再送メモリ量を用いて決定する
ことを特徴とする付記3から付記6の何れか1項に記載の通信システム。
【0264】
(付記8)
前記再送ヘッダを付与する手段が、
前記往復遅延時間、前記最大MTU値とを含む再送ヘッダを、前記IPデータグラムのIPv6ヘッダに付加した拡張ヘッダ領域に付与し、
前記データ受信装置が、
正常性検査の結果、IPデータグラムに誤りが無いと判定された場合、
受信したIPデータグラムの再送ヘッダ内の前記往復遅延時間、前記最大MTU値を読み出す手段と、
再送パスの最低保証目標スループットと前記往復遅延時間の積と、前記最大MTU値とから、当該再送パスの最低保証スループットを満たすために必要な再送メモリ量を算出する手段とを含み、
前記受信側データ蓄積手段が、
前記受信側再送メモリに前記IPデータグラムを格納する際のアドレス上限値を、算出した前記再送メモリ量を用いて決定する
ことを特徴とする付記7に記載の通信システム。
【0265】
(付記9)
前記データ送信装置及び前記データ受信装置が、パケットスイッチ装置であることを特徴とする付記1から付記8に記載の通信システム。
【0266】
(付記10)
データ受信装置に出力するIPデータグラムのIPv6ヘッダに付加した拡張ヘッダ領域に再送ヘッダを付与する手段を備える
ことを特徴とするデータ送信装置。
【0267】
(付記11)
前記再送ヘッダは、少なくとも前記IPデータグラムのシーケンス番号を含み、
前記シーケンス番号を、セッションやフロー別で区別される再送パス別に付与する
ことを特徴とする付記11に記載のデータ送信装置。
【0268】
(付記12)
前記データ送信装置が、
再送パス別に分割した送信側再送メモリに対して、前記再送ヘッダを付与した前記IPデータグラムを、当該再送パス別に、前記再送ヘッダ内に付与したシーケンス番号順に格納する送信側データ蓄積手段と、
前記データ受信装置より返送されるACKパケット又はNAKパケットに含まれる前記シーケンス番号に対応する前記IPデータグラムを、前記送信側再送メモリから読み出してデータ受信装置に対して出力する送信側側再送制御手段と
を備えることを特徴とする付記11に記載のデータ送信装置。
【0269】
(付記13)
前記データ送信装置が、
前記データ受信装置より返送されるACKパケットの往復遅延時間を、再送パス別に判定する手段と、
IPv6で規定される制御用ICMPv6のパケット過大エラーから、再送パス別に、当該再送パスで転送可能な最大のIPデータグラム長である最大MTU値を算出する手段と、
再送パスの最低保証目標スループットと前記往復遅延時間の積と、最大MTU値とから、当該再送パスの最低保証スループットを満たすために必要な再送メモリ量を算出する手段とを含み、
前記送信側データ蓄積手段が、
前記送信側再送メモリに前記IPデータグラムを格納する際のアドレス上限値を、算出した前記再送メモリ量を用いて決定する
ことを特徴とする付記12に記載のデータ送信装置。
【0270】
(付記14)
前記データ送信装置及び前記データ受信装置が、パケットスイッチ装置であることを特徴とする付記11から付記13に記載のデータ送信装置。
【0271】
(付記15)
データ送信装置から、IPv6ヘッダに付加した拡張ヘッダ領域に再送ヘッダが付与されたIPデータグラムを受信する手段と、
当該IPデータグラムの再送ヘッダ内のシーケンス番号を含むACKパケット又はNAKパケットを、前記データ送信装置に送信する手段と
を備えることを特徴とするデータ受信装置。
【0272】
(付記16)
前記データ送信装置から受信した前記IPデータグラムの再送ヘッダ内の正常性チェック要チェックサムを使用して、当該IPデータグラムの正常性を検査する手段と、
正常性検査の結果、IPデータグラムに誤りが無いと判定した場合に、再送パス別に分割した受信側再送メモリに対して、当該IPデータグラムを、当該再送パス別に、前記再送ヘッダ内に含まれる前記シーケンス番号順に格納する受信側データ蓄積手段と、
正常性検査の結果に基づいて、当該IPデータグラムの前記シーケンス番号を少なくとも含むACKパケット又はNAKパケットの生成をパケット送出手段に指示する受信側再送制御手段と、
前記受信側再送制御手段の指示にしたがって、ACKパケット又はNAKパケットを生成し、対向するデータ送信装置への回線に対して送出するパケット送出手段と
を備えることを特徴とする付記15に記載のデータ受信装置。
【0273】
(付記17)
前記受信側再送制御手段は、
正常性検査の結果、IPデータグラムに誤りが無いと判定された場合、当該IPデータグラムの前記シーケンス番号を少なくとも含むACKパケットの生成をパケット送出手段に指示し、
正常性検査の結果、IPデータグラムに誤りがあると判定された場合、当該IPデータグラムの前記シーケンス番号を少なくとも含むNAKパケットの生成をパケット送出手段に指示する
ことを特徴とする付記16に記載のデータ受信装置。
【0274】
(付記18)
前記受信側再送制御手段は、
再送パス別に前記受信側再送メモリに格納されているIPデータグラムのうち、シーケンス番号が連続する部分のデータグラムを外部に出力し、
再送パス別に前記受信側再送メモリに格納されているIPデータグラムのシーケンス番号に不連続が発生している場合、前記シーケンス番号の不連続が発生している最も若番のシーケンス番号をセットしたNAKパケットの生成を前記パケット送出手段に指示する
ことを特徴とする付記16又は付記17に記載のデータ受信装置。
【0275】
(付記19)
前記受信側再送制御手段は、
再送パス別に前記受信側再送メモリに格納されているIPデータグラムのシーケンス番号に不連続が発生している場合、タイマにより一定時刻毎にカウントアップを開始し、
タイマの値が予め設定した閾値を超えた場合、タイムアウトが発生したと判断し、前記シーケンス番号の不連続が発生している最も若番のシーケンス番号をセットしたNAKパケットの生成を前記パケット送出手段に指示する
ことを特徴とする付記18に記載のデータ受信装置。
【0276】
(付記20)
前記データ送信装置から、
前記データ受信装置より返送されるACKパケットの往復遅延時間と、再送パス別に、IPv6で規定される制御用ICMPv6のパケット過大エラーから算出された、当該再送パスで転送可能な最大のIPデータグラム長である最大MTU値とを含む再送ヘッダが付与されたIPデータグラムを受信し、
正常性検査の結果、IPデータグラムに誤りが無いと判定された場合、
受信したIPデータグラムの再送ヘッダ内の前記往復遅延時間、前記最大MTU値を読み出す手段と、
再送パスの最低保証目標スループットと前記往復遅延時間の積と、前記最大MTU値とから、当該再送パスの最低保証スループットを満たすために必要な再送メモリ量を算出する手段とを含み、
前記受信側データ蓄積手段が、
前記受信側再送メモリに前記IPデータグラムを格納する際のアドレス上限値を、算出した前記再送メモリ量を用いて決定する
ことを特徴とする付記16から付記19の何れか1項に記載のデータ受信装置。
【0277】
(付記21)
前記データ送信装置及び前記データ受信装置が、パケットスイッチ装置であることを特徴とする付記15から付記20に記載のデータ受信装置。
【0278】
(付記22)
データ送信装置とデータ受信装置とを含む通信システムによるパケット再送制御方法であって、
前記データ送信装置が、
データ受信装置に出力するIPデータグラムのIPv6ヘッダに付加した拡張ヘッダ領域に再送ヘッダを付与するステップを有する
ことを特徴とするパケット再送制御方法。
【0279】
(付記23)
前記再送ヘッダは、少なくとも前記IPデータグラムのシーケンス番号を含み、
前記シーケンス番号を、セッションやフロー別で区別される再送パス別に付与し、
前記データ受信装置が、
前記データ送信装置から受信した前記IPデータグラムの再送ヘッダ内のシーケンス番号を含むACKパケット又はNAKパケットを、前記データ送信装置に送信するステップを有する
ことを特徴とする付記22に記載のパケット再送制御方法。
【0280】
(付記24)
前記データ送信装置が、
再送パス別に分割した送信側再送メモリに対して、前記再送ヘッダを付与した前記IPデータグラムを、当該再送パス別に、前記再送ヘッダ内に付与したシーケンス番号順に格納する送信側データ蓄積ステップと、
前記データ受信装置より返送されるACKパケット又はNAKパケットに含まれる前記シーケンス番号に対応する前記IPデータグラムを、前記送信側再送メモリから読み出してデータ受信装置に対して出力する送信側再送制御ステップとを有し、
前記データ受信装置が、
前記データ送信装置から受信した前記IPデータグラムの再送ヘッダ内の正常性チェック要チェックサムを使用して、当該IPデータグラムの正常性を検査するステップと、
正常性検査の結果、IPデータグラムに誤りが無いと判定した場合に、再送パス別に分割した受信側再送メモリに対して、当該IPデータグラムを、当該再送パス別に、前記再送ヘッダ内に含まれる前記シーケンス番号順に格納する受信側データ蓄積ステップと、
正常性検査の結果に基づいて、当該IPデータグラムの前記シーケンス番号を少なくとも含むACKパケット又はNAKパケットの生成をパケット送出ステップに指示する受信側再送制御ステップと、
前記受信側再送制御ステップの指示にしたがって、ACKパケット又はNAKパケットを生成し、対向するデータ送信装置への回線に対して送出するパケット送出ステップとを有する
ことを特徴とする付記23に記載のパケット再送制御方法。
【0281】
(付記25)
前記受信側再送制御ステップで、
正常性検査の結果、IPデータグラムに誤りが無いと判定された場合、当該IPデータグラムの前記シーケンス番号を少なくとも含むACKパケットの生成をパケット送出ステップに指示し、
正常性検査の結果、IPデータグラムに誤りがあると判定された場合、当該IPデータグラムの前記シーケンス番号を少なくとも含むNAKパケットの生成をパケット送出ステップに指示する
ことを特徴とする付記24に記載のパケット再送制御方法。
【0282】
(付記26)
前記受信側再送制御ステップで、
再送パス別に前記受信側再送メモリに格納されているIPデータグラムのうち、シーケンス番号が連続する部分のデータグラムを外部に出力し、
再送パス別に前記受信側再送メモリに格納されているIPデータグラムのシーケンス番号に不連続が発生している場合、前記シーケンス番号の不連続が発生している最も若番のシーケンス番号をセットしたNAKパケットの生成を前記パケット送出ステップに指示する
ことを特徴とする付記24又は付記25に記載のパケット再送制御方法。
【0283】
(付記27)
前記受信側再送制御ステップで、
再送パス別に前記受信側再送メモリに格納されているIPデータグラムのシーケンス番号に不連続が発生している場合、タイマにより一定時刻毎にカウントアップを開始し、
タイマの値が予め設定した閾値を超えた場合、タイムアウトが発生したと判断し、前記シーケンス番号の不連続が発生している最も若番のシーケンス番号をセットしたNAKパケットの生成を前記パケット送出ステップに指示する
ことを特徴とする付記26に記載のパケット再送制御方法。
【0284】
(付記28)
前記データ送信装置が、
前記データ受信装置より返送されるACKパケットの往復遅延時間を、再送パス別に判定するステップと、
IPv6で規定される制御用ICMPv6のパケット過大エラーから、再送パス別に、当該再送パスで転送可能な最大のIPデータグラム長である最大MTU値を算出するステップと、
再送パスの最低保証目標スループットと前記往復遅延時間の積と、最大MTU値とから、当該再送パスの最低保証スループットを満たすために必要な再送メモリ量を算出するステップとを有し、
前記送信側データ蓄積ステップで、
前記送信側再送メモリに前記IPデータグラムを格納する際のアドレス上限値を、算出した前記再送メモリ量を用いて決定する
ことを特徴とする付記24から付記27の何れか1項に記載のパケット再送制御方法。
【0285】
(付記29)
前記再送ヘッダを付与するステップで、
前記往復遅延時間、前記最大MTU値とを含む再送ヘッダを、前記IPデータグラムのIPv6ヘッダに付加した拡張ヘッダ領域に付与し、
前記データ受信装置が、
正常性検査の結果、IPデータグラムに誤りが無いと判定された場合、
受信したIPデータグラムの再送ヘッダ内の前記往復遅延時間、前記最大MTU値を読み出すステップと、
再送パスの最低保証目標スループットと前記往復遅延時間の積と、前記最大MTU値とから、当該再送パスの最低保証スループットを満たすために必要な再送メモリ量を算出するステップとを有し、
前記受信側データ蓄積ステップで、
前記受信側再送メモリに前記IPデータグラムを格納する際のアドレス上限値を、算出した前記再送メモリ量を用いて決定する
ことを特徴とする付記28に記載のパケット再送制御方法。
【0286】
(付記30)
前記データ送信装置及び前記データ受信装置が、パケットスイッチ装置であることを特徴とする付記22から付記29に記載のパケット再送制御方法。
【0287】
(付記31)
データ送信装置とデータ受信装置とを含む通信システムによるパケット再送制御プログラムであって、
前記データ送信装置に、
データ受信装置に出力するIPデータグラムのIPv6ヘッダに付加した拡張ヘッダ領域に再送ヘッダを付与する処理を実行させる
ことを特徴とするパケット再送制御プログラム。
【0288】
(付記32)
前記再送ヘッダは、少なくとも前記IPデータグラムのシーケンス番号を含み、
前記シーケンス番号を、セッションやフロー別で区別される再送パス別に付与し、
前記データ受信装置に、
前記データ送信装置から受信した前記IPデータグラムの再送ヘッダ内のシーケンス番号を含むACKパケット又はNAKパケットを、前記データ送信装置に送信する処理を実行させる
ことを特徴とする付記31に記載のパケット再送制御プログラム。
【0289】
(付記33)
前記データ送信装置に、
再送パス別に分割した送信側再送メモリに対して、前記再送ヘッダを付与した前記IPデータグラムを、当該再送パス別に、前記再送ヘッダ内に付与したシーケンス番号順に格納する送信側データ蓄積処理と、
前記データ受信装置より返送されるACKパケット又はNAKパケットに含まれる前記シーケンス番号に対応する前記IPデータグラムを、前記送信側再送メモリから読み出してデータ受信装置に対して出力する送信側再送制御処理とを実行させ、
前記データ受信装置に、
前記データ送信装置から受信した前記IPデータグラムの再送ヘッダ内の正常性チェック要チェックサムを使用して、当該IPデータグラムの正常性を検査する処理と、
正常性検査の結果、IPデータグラムに誤りが無いと判定した場合に、再送パス別に分割した受信側再送メモリに対して、当該IPデータグラムを、当該再送パス別に、前記再送ヘッダ内に含まれる前記シーケンス番号順に格納する受信側データ蓄積処理と、
正常性検査の結果に基づいて、当該IPデータグラムの前記シーケンス番号を少なくとも含むACKパケット又はNAKパケットの生成をパケット送出処理に指示する受信側再送制御処理と、
前記受信側再送制御処理の指示にしたがって、ACKパケット又はNAKパケットを生成し、対向するデータ送信装置への回線に対して送出するパケット送出処理とを実行させる
ことを特徴とする付記32に記載の通信システム。
【0290】
(付記34)
前記受信側再送制御処理で、
正常性検査の結果、IPデータグラムに誤りが無いと判定された場合、当該IPデータグラムの前記シーケンス番号を少なくとも含むACKパケットの生成をパケット送出処理に指示し、
正常性検査の結果、IPデータグラムに誤りがあると判定された場合、当該IPデータグラムの前記シーケンス番号を少なくとも含むNAKパケットの生成をパケット送出処理に指示する
ことを特徴とする付記33に記載のパケット再送制御プログラム。
【0291】
(付記35)
前記受信側再送制御処理で、
再送パス別に前記受信側再送メモリに格納されているIPデータグラムのうち、シーケンス番号が連続する部分のデータグラムを外部に出力し、
再送パス別に前記受信側再送メモリに格納されているIPデータグラムのシーケンス番号に不連続が発生している場合、前記シーケンス番号の不連続が発生している最も若番のシーケンス番号をセットしたNAKパケットの生成を前記パケット送出処理に指示する
ことを特徴とする付記33又は付記34に記載のパケット再送制御プログラム。
【0292】
(付記36)
前記受信側再送制御処理で、
再送パス別に前記受信側再送メモリに格納されているIPデータグラムのシーケンス番号に不連続が発生している場合、タイマにより一定時刻毎にカウントアップを開始し、
タイマの値が予め設定した閾値を超えた場合、タイムアウトが発生したと判断し、前記シーケンス番号の不連続が発生している最も若番のシーケンス番号をセットしたNAKパケットの生成を前記パケット送出処理に指示する
ことを特徴とする付記35に記載のパケット再送制御プログラム。
【0293】
(付記37)
前記データ送信装置に、
前記データ受信装置より返送されるACKパケットの往復遅延時間を、再送パス別に判定する処理と、
IPv6で規定される制御用ICMPv6のパケット過大エラーから、再送パス別に、当該再送パスで転送可能な最大のIPデータグラム長である最大MTU値を算出する処理と、
再送パスの最低保証目標スループットと前記往復遅延時間の積と、最大MTU値とから、当該再送パスの最低保証スループットを満たすために必要な再送メモリ量を算出する処理とを実行させ、
前記送信側データ蓄積処理で、
前記送信側再送メモリに前記IPデータグラムを格納する際のアドレス上限値を、算出した前記再送メモリ量を用いて決定する
ことを特徴とする付記33から付記36の何れか1項に記載のパケット再送制御プログラム。
【0294】
(付記38)
前記再送ヘッダを付与する処理で、
前記往復遅延時間、前記最大MTU値とを含む再送ヘッダを、前記IPデータグラムのIPv6ヘッダに付加した拡張ヘッダ領域に付与し、
前記データ受信装置に、
正常性検査の結果、IPデータグラムに誤りが無いと判定された場合、
受信したIPデータグラムの再送ヘッダ内の前記往復遅延時間、前記最大MTU値を読み出す処理と、
再送パスの最低保証目標スループットと前記往復遅延時間の積と、前記最大MTU値とから、当該再送パスの最低保証スループットを満たすために必要な再送メモリ量を算出する処理とを実行させ、
前記受信側データ蓄積処理で、
前記受信側再送メモリに前記IPデータグラムを格納する際のアドレス上限値を、算出した前記再送メモリ量を用いて決定する
ことを特徴とする付記37に記載のパケット再送制御プログラム。
【0295】
(付記39)
前記データ送信装置及び前記データ受信装置が、パケットスイッチ装置であることを特徴とする付記31から付記38に記載のパケット再送制御プログラム。
【符号の説明】
【0296】
100、200:通信システム
1−1、16−1、181:データ送信装置
1−2、20−2:IPv6送信回路
16−2、21−2:IP送信回路
1−3、16−3:送信側再送制御回路
1−4、20−4、16−4:タイマ回路
1−5、16−5:送信側再送メモリ
1−6、20−6、16−6:上位層処理
20−7:選択回路
1−8、20−8、16−8:データリンク層送信回路
1−9、20−9、16−9:物理層送信回路
1−10、20−10:IPv6受信回路
16−10、21−10:IP受信回路
1−11、20−11:IPv6拡張ヘッダ内再送ヘッダ抽出回路
1−12、20−12、16−12、21−12:データリンク層受信回路
1−13、20−13、16−13、21−13:物理層受信回路
1−14:送信側IP再送回路
1−15:IPv6拡張ヘッダ内再送ヘッダ生成回路
20−1、182:データ受信装置
20−3:受信側再送制御回路
20−5:受信側再送メモリ
20−14:受信側IP再送回路
20−15:ACK/NAKパケット生成回路
43、143、183:レイヤ3スイッチ
44、45、184、185:レイヤ2スイッチ(イーサネットスイッチ)
22、24:IP網
101、102:メモリ領域
9−1〜9−N:送信側再送制御機能を有するラインカード
9−1−3:送信側再送制御回路
9−1−4、23−1−4:タイマ回路
9−1−5:送信側再送メモリ
23−1−7:選択回路
9−1−8、23−1−8:データリンク層送信回路
9−1−9、23−1−9:物理層送信回路
9−1−11、23−1−11:IPv6拡張ヘッダ内再送ヘッダ抽出回路
9−1−12、23−1−12:データリンク層受信回路
9−1−13、23−1−13:物理層受信回路
9−1−14:送信側IP再送回路
9−1−15:IPv6拡張ヘッダ内再送ヘッダ生成回路
9−1−16:ICMPv6モニタ回路
9−1−17:送信側再送メモリ領域算出回路
92、232:スイッチ回路
90−1〜90−M、230−1〜230−M:ラインカード
94、234:M×Nポートスイッチ装置
23−1〜23−N:受信側再送制御機能を有するラインカード
23−1−5〜23−1−N:受信側再送メモリ
23−1−14:受信側IP再送回路
23−1−17:受信側再送メモリ領域算出回路
141:データ送信装置
142:データ受信装置
144、145:LAN
146:広域網
16−14:送信側レイヤ2.5再送回路
16−15:レイヤ2.5ヘッダ生成回路
21−11:レイヤ2.5ヘッダ終端回路
21−14:受信側レイヤ2.5再送回路
21−15:ACKパケット生成回路
21−20:レイヤ2網

【特許請求の範囲】
【請求項1】
データ送信装置とデータ受信装置とを含む通信システムであって、
前記データ送信装置が、
データ受信装置に出力するIPデータグラムのIPv6ヘッダに付加した拡張ヘッダ領域に再送ヘッダを付与する手段を備える
ことを特徴とする通信システム。
【請求項2】
前記再送ヘッダは、少なくとも前記IPデータグラムのシーケンス番号を含み、
前記シーケンス番号を、セッションやフロー別で区別される再送パス別に付与し、
前記データ受信装置が、
前記データ送信装置から受信した前記IPデータグラムの再送ヘッダ内のシーケンス番号を含むACKパケット又はNAKパケットを、前記データ送信装置に送信する手段を備える
ことを特徴とする請求項1に記載の通信システム。
【請求項3】
前記データ送信装置が、
再送パス別に分割した送信側再送メモリに対して、前記再送ヘッダを付与した前記IPデータグラムを、当該再送パス別に、前記再送ヘッダ内に付与したシーケンス番号順に格納する送信側データ蓄積手段と、
前記データ受信装置より返送されるACKパケット又はNAKパケットに含まれる前記シーケンス番号に対応する前記IPデータグラムを、前記送信側再送メモリから読み出してデータ受信装置に対して出力する送信側再送制御手段とを備え、
前記データ受信装置が、
前記データ送信装置から受信した前記IPデータグラムの再送ヘッダ内の正常性チェック要チェックサムを使用して、当該IPデータグラムの正常性を検査する手段と、
正常性検査の結果、IPデータグラムに誤りが無いと判定した場合に、再送パス別に分割した受信側再送メモリに対して、当該IPデータグラムを、当該再送パス別に、前記再送ヘッダ内に含まれる前記シーケンス番号順に格納する受信側データ蓄積手段と、
正常性検査の結果に基づいて、当該IPデータグラムの前記シーケンス番号を少なくとも含むACKパケット又はNAKパケットの生成をパケット送出手段に指示する受信側再送制御手段と、
前記受信側再送制御手段の指示にしたがって、ACKパケット又はNAKパケットを生成し、対向するデータ送信装置への回線に対して送出するパケット送出手段とを備える
ことを特徴とする請求項2に記載の通信システム。
【請求項4】
前記受信側再送制御手段は、
再送パス別に前記受信側再送メモリに格納されているIPデータグラムのうち、シーケンス番号が連続する部分のデータグラムを外部に出力し、
再送パス別に前記受信側再送メモリに格納されているIPデータグラムのシーケンス番号に不連続が発生している場合、前記シーケンス番号の不連続が発生している最も若番のシーケンス番号をセットしたNAKパケットの生成を前記パケット送出手段に指示する
ことを特徴とする請求項3に記載の通信システム。
【請求項5】
前記データ送信装置が、
前記データ受信装置より返送されるACKパケットの往復遅延時間を、再送パス別に判定する手段と、
IPv6で規定される制御用ICMPv6のパケット過大エラーから、再送パス別に、当該再送パスで転送可能な最大のIPデータグラム長である最大MTU値を算出する手段と、
再送パスの最低保証目標スループットと前記往復遅延時間の積と、最大MTU値とから、当該再送パスの最低保証スループットを満たすために必要な再送メモリ量を算出する手段とを含み、
前記送信側データ蓄積手段が、
前記送信側再送メモリに前記IPデータグラムを格納する際のアドレス上限値を、算出した前記再送メモリ量を用いて決定する
ことを特徴とする請求項3又は請求項4に記載の通信システム。
【請求項6】
前記再送ヘッダを付与する手段が、
前記往復遅延時間、前記最大MTU値とを含む再送ヘッダを、前記IPデータグラムのIPv6ヘッダに付加した拡張ヘッダ領域に付与し、
前記データ受信装置が、
正常性検査の結果、IPデータグラムに誤りが無いと判定された場合、
受信したIPデータグラムの再送ヘッダ内の前記往復遅延時間、前記最大MTU値を読み出す手段と、
再送パスの最低保証目標スループットと前記往復遅延時間の積と、前記最大MTU値とから、当該再送パスの最低保証スループットを満たすために必要な再送メモリ量を算出する手段とを含み、
前記受信側データ蓄積手段が、
前記受信側再送メモリに前記IPデータグラムを格納する際のアドレス上限値を、算出した前記再送メモリ量を用いて決定する
ことを特徴とする請求項5に記載の通信システム。
【請求項7】
データ受信装置に出力するIPデータグラムのIPv6ヘッダに付加した拡張ヘッダ領域に再送ヘッダを付与する手段を備える
ことを特徴とするデータ送信装置。
【請求項8】
データ送信装置から、IPv6ヘッダに付加した拡張ヘッダ領域に再送ヘッダが付与されたIPデータグラムを受信する手段と、
当該IPデータグラムの再送ヘッダ内のシーケンス番号を含むACKパケット又はNAKパケットを、前記データ送信装置に送信する手段と
を備えることを特徴とするデータ受信装置。
【請求項9】
データ送信装置とデータ受信装置とを含む通信システムによるパケット再送制御方法であって、
前記データ送信装置が、
データ受信装置に出力するIPデータグラムのIPv6ヘッダに付加した拡張ヘッダ領域に再送ヘッダを付与するステップを有する
ことを特徴とするパケット再送制御方法。
【請求項10】
データ送信装置とデータ受信装置とを含む通信システムによるパケット再送制御プログラムであって、
前記データ送信装置に、
データ受信装置に出力するIPデータグラムのIPv6ヘッダに付加した拡張ヘッダ領域に再送ヘッダを付与する処理を実行させる
ことを特徴とするパケット再送制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2013−78004(P2013−78004A)
【公開日】平成25年4月25日(2013.4.25)
【国際特許分類】
【出願番号】特願2011−217068(P2011−217068)
【出願日】平成23年9月30日(2011.9.30)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】