(57)【特許請求の範囲】
【請求項１】
データを送受信する対象となる他の送受信回路と接続可能な送受信回路において、
送信するデータの送信順序を示す第１の順序情報を管理する第１の管理部と、送信するデータの一部と前記第１の管理部が管理する第１の順序情報とに基づき、送信するデータの誤りを検出する第１の検出情報を生成する第１の生成部と、生成された第１の検出情報をデータに付加して送信する送信部とを備える送信回路と、
前記他の送受信回路の送信部から送信されるデータを受信する受信部と、受信したデータの受信順序を示す第２の順序情報を管理する第２の管理部と、受信したデータの一部と前記第２の管理部が管理する第２の順序情報とに基づき、受信したデータの誤りを検出する第２の検出情報を生成する第２の生成部と、受信したデータに付加された第１の検出情報と前記第２の生成部が生成した第２の検出情報とを比較して、受信したデータの誤りを検出する検出部とを備える受信回路と、
を有することを特徴とする送受信回路。
【請求項２】
前記検出部は、受信したデータにビット誤りがある場合、受信したデータの誤りを検出することを特徴とする請求項１記載の送受信回路。
【請求項３】
前記検出部は、受信したデータに付加された第１の検出情報に含まれる第１の順序情報と前記第２の管理部が管理する第２の検出情報とが一致しない場合、受信したデータの誤りを検出することを特徴とする請求項１又は２に記載の送受信回路。
【請求項４】
前記検出部は、受信したデータに付加された第１の検出情報に含まれる第１の順序情報にビット誤りがある場合、受信したデータの誤りを検出することを特徴とする請求項１ないし３のいずれか一項に記載の送受信回路。
【請求項５】
前記検出部は、受信したデータの誤りを検出した場合、前記他の送受信回路の送信回路にデータの再送を要求することを特徴とする請求項１ないし４のいずれか１項に記載の送受信回路。
【請求項６】
前記検出部は、受信したデータに付加された第１の検出情報に含まれる、受信したデータのビット誤りを検出する第１のビット誤り検出情報をビット反転した反転ビット誤り検出情報と、前記第２の生成部が生成した第２の検出情報に含まれる、受信したデータのビット誤りを検出する第２のビット誤り情報とが、一致しない場合、前記反転ビット誤り検出情報を含むデータを前記他の送受信回路に送信し、
前記受信部は、前記反転ビット誤り検出情報に基づき、前記他の送受信回路の送信部から送信されるデータを無効にすることを特徴とする請求項５記載の送受信回路。
【請求項７】
データを受信する対象となる送信回路と接続可能な受信回路において、
前記送信回路の送信部から送信されるデータを受信する受信部と、受信したデータの受信順序を示す順序情報を管理する管理部と、受信したデータの一部と前記管理部が管理する順序情報とに基づき、受信したデータの誤りを検出する検出情報を生成する生成部と、受信したデータに付加された検出情報と前記第２の生成部が生成した検出情報とを比較して、受信したデータの誤りを検出する検出部と
を備える受信回路。
【請求項８】
データを送受信する対象となる他の送受信回路と接続可能な送受信回路の制御方法において、
送信するデータの一部と、送信するデータの送信順序を示す第１の順序情報とに基づき、送信するデータの誤りを検出する第１の検出情報を生成し、
生成された第１の検出情報をデータに付加して送信し、
前記他の送受信回路の送信部から送信されるデータを受信し、
受信したデータの一部と、受信したデータの受信順序を示す第２の順序情報とに基づき、受信したデータの誤りを検出する第２の検出情報を生成し、
受信したデータに付加された第１の検出情報と前記生成した第２の検出情報とを比較して、受信したデータの誤りを検出する
ことを特徴とする送受信回路の制御方法。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データとヘッダ情報を有するパケットを送信する送信回路と、パケットを受信する受信回路とを有する送受信回路に関する。
【背景技術】
【０００２】
パケットの送受信回路において、パケットは分割されたデータと、当該分割されたデータに付加されたヘッダ情報とを備える。ヘッダ情報は、パケットの宛先情報、シーケンス番号及びヘッダ誤り検出符号等、パケットが宛先に到着するまでに必要な情報を有している。誤り検出符号は、パケットに誤りが発生したことを検出するために付加されている符号である。受信回路は、パケットを受信するとデータから生成した誤り検出符号とデータに付加された誤り検出符号とが一致するか否かを判定することで、パケットの誤りを検出する。
【０００３】
ここで、パケットに誤りがある場合は、受信回路は、パケットの再送を送信回路に要求する。パケットの再送を行う場合、受信回路がどのパケットまで正常に受信できており、送信回路にどのパケットの再送を要求するかについての情報が必要である。送受信回路では、当該情報としてシーケンス番号を用いている。シーケンス番号は、パケットの順番や、パケットの欠落の有無を確認するために、パケット毎に付加される。送信回路が送信するパケットのシーケンス番号と、受信回路が受信すべきパケットのシーケンス番号とは一致するように制御される。送信回路はシーケンス番号をカウントする送信カウンタを有しており、受信回路もシーケンス番号をカウントする受信カウンタを有している。受信回路は、送信回路から送信されるパケットを正常に受信すると、受信カウンタをインクリメントし、送信回路にパケットを正常に受信できた旨を表す信号を送信する。送信回路は、当該信号を受信すると送信カウンタをインクリメントする。送信回路がパケットを送信する際に、送信カウンタの値と受信カウンタの値とは一致している。
【０００４】
パケットの送受信確認とパケット再送制御を実現するためには、誤り検出符号とシーケンス番号が必要である。しかし、上述したように送信回路、受信回路それぞれにおいて、送信すべきパケットのシーケンス番号と、受信すべきシーケンス番号とを管理しているにも関わらず、シーケンス番号を冗長な情報としてヘッダ情報に付加していた。
【０００５】
先行技術文献としては、下記のものがある。
【特許文献１】特開２００２−０２６９６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の課題は、パケットに冗長な情報を付加することなく、送受信を行うことのできる送受信回路を提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、データを送受信する対象となる他の送受信回路と接続可能な送受信回路は、送信するデータの送信順序を示す第１の順序情報を管理する第１の管理部と、送信するデータの一部と前記第１の管理部が管理する第１の順序情報とに基づき、送信するデータの誤りを検出する第１の検出情報を生成する第１の生成部と、生成された第１の検出情報をデータに付加して送信する送信部とを備える送信回路と、
前記他の送受信回路の送信部から送信されるデータを受信する受信部と、受信したデータの受信順序を示す第２の順序情報を管理する第２の管理部と、受信したデータの一部と前記第２の管理部が管理する第２の順序情報とに基づき、受信したデータの誤りを検出する第２の検出情報を生成する第２の生成部と、受信したデータに付加された第１の検出情報と前記第２の生成部が生成した第２の検出情報とを比較して、受信したデータの誤りを検出する検出部とを備える受信回路とを有する。 
【発明の効果】
【０００８】
本実施形態の一側面によれば、パケットにシーケンス番号を含めることなく、送受信を行うことができる。
【発明を実施するための最良の形態】
【０００９】
以下に図面を用いて本実施形態について説明する。
【００１０】
（実施例１）
図１に本実施形態におけるネットワークシステム０の構成図を表す。ネットワーク３０と各ノード１０の送受信装置２０を介して、ノード間でデータを送受信する。本実施形態におけるネットワークシステム０は、パケット順序保障がある。また、本実施形態におけるネットワーク３０は、データリンク層レベルで送信確認と、再送制御を行うネットワークである。
【００１１】
送受信装置２０は、パケット送信回路２００、ネットワークインタフェース回路４００及びパケット受信回路３００を有する。パケット送信回路２００は、パケットをネットワーク３０を介して、別のノード１０の送受信装置２０に送信する。パケット受信回路３００は、別のノード１０の送受信装置２０からネットワーク３０を介してパケットを受信する。ネットワークインタフェース回路４００はノード１０との間でパケットの送受信を行う。
【００１２】
本実施形態では、パケットの転送速度を向上させるために、カットスルー転送が用いられる。カットスルー転送では、パケットをさらに分割したフリットという単位で転送を行う。送受信装置２０は、フリットを順次受信する。送受信装置２０は、パケットのヘッダを全て取得すると、当該ヘッダを参照し、パケットの転送先に関する情報を取得する。そして、送受信装置２０はパケットの転送先へのパケット転送を開始する。
【００１３】
図２にノード１０の構成の一例を表す。ノード１０は、システム制御部１２、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ、中央処理装置）１４、メモリ１６及びＩｎｐｕｔ／Ｏｕｔｐｕｔ（Ｉ／Ｏ、入出力）インタフェース１８を有する。ＣＰＵ１４は、データ処理を行う。メモリ１６は、データを格納する。システム制御部１２は、送受信装置２０と接続され、パケットの送受信を行う。Ｉ／Ｏインタフェース１８は、他の装置との接続に用いられる。
【００１４】
図３は、本実施形態において送受信するパケット５００のパケットフォーマットを表す。パケット通信方式では、まず送受信するデータをパケットと呼ぶ小さなデータに分割する。次にパケットを送信元のノードから送信先のノードに転送する。
【００１５】
パケット５００は、ヘッダ誤り検出符号５０２、ヘッダ５０４、データ５０６及びパケット誤り検出符号５０８を有する。ヘッダ誤り検出符号５０２は、本実施形態の手法で生成するシーケンス番号を畳み込んだ誤り検出符号である。ヘッダ誤り検出符号５０２はヘッダの誤りを検出するために用いられる。ヘッダ５０４は、パケットの送信元アドレス、パケットの送信先アドレス、パケットタイプ及びパケット長等の情報を有している。データ５０６には、任意の情報が含まれる。パケット誤り検出符号５０８は、データ５０６の誤りを検出するために用いられる。パケット５００の各フィールド長は、例えば次の通りである。ヘッダ誤り検出符号５０２が２Ｂｙｔｅ、ヘッダ５０４が５Ｂｙｔｅ、データ５０６が８Ｂｙｔｅ単位の可変長及びパケット誤り検出符号５０８が４Ｂｙｔｅである。
【００１６】
また、本実施形態におけるパケット５００の先頭８Ｂｙｔｅには、パケットの先頭であることを表すＳＴＰコードが、パケットの末尾８Ｂｙｔｅには、パケットの末尾であることを表すＥＮＤコードが付加されている。ＥＮＤコードには、正常なパケットであることを表すＥＮＤ、または、エラーを含んだパケットであることを表すＥＤＢのいずれかの情報が書き込まれている。受信回路３０２は、ＥＮＤコードを参照することで、パケットの末尾を検出し、さらにパケットが正常なパケットであるか否かを判定することができる。
【００１７】
図４は、本実施形態におけるパケット送信回路２００の構成を表す。パケット送信回路２００は、送信回路２０２、ヘッダ誤り検出符号生成回路２０４、パケット誤り検出符号生成回路２０３及び送信シーケンス番号制御回路２０７を有する。
【００１８】
パケット送信回路２００には、図１において説明したネットワークインタフェース回路４００を経由し、ヘッダとデータが入力する。送信シーケンス番号制御回路２０７は、次に送信するパケットのシーケンス番号を管理する第一送信カウンタ２０５と受信側で正常受信できたパケットのシーケンス番号を管理する第二送信カウンタ２０６を有しており、送信するパケットのシーケンス番号を管理している。第一送信カウンタ２０５は、パケット送信回路２００がパケットを送信するとインクリメントされる。第二送信カウンタ２０６はパケット受信回路３００が正常に受信できたパケットのシーケンス番号にインクリメントされる。
【００１９】
ヘッダ誤り検出符号生成回路２０４は、ネットワークインタフェース回路４００からパケット送信回路２００に入力するヘッダと、第一送信カウンタ２０５が示しているシーケンス番号とからヘッダ誤り検出符号を生成する。パケット誤り検出符号生成回路２０３は、ネットワークインタフェース回路４００からパケット送信回路２００に入力するデータからパケット誤り検出符号を生成する。なお、ヘッダ誤り検出符号生成回路２０４及びパケット誤り検出符号生成回路２０３は、誤り検出符号の生成アルゴリズムとして、例えばＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）アルゴリズム等の任意のアルゴリズムを使用すれば良い。送信回路２０２は、パケットフォーマットに従って、ヘッダ誤り検出符号生成回路２０４が生成したヘッダ誤り検出符号、ヘッダ、データ及びパケット誤り検出符号生成回路２０３が生成したパケット誤り検出符号をネットワーク３０を経由して宛先のノードに送信する。
【００２０】
以下、図５を用いてパケット送信の処理について説明する。ステップＳ１０１において、送信回路２０２は、ヘッダとデータを受信する。処理はステップＳ１０２へ移行する。
【００２１】
ステップＳ１０２において、ヘッダ誤り検出符号生成回路２０４は、第一送信カウンタ２０５が示すシーケンス番号と、送信回路２０２が受信したヘッダとからヘッダ誤り検出符号を生成する。処理はステップＳ１０３へ移行する。
【００２２】
ステップＳ１０３において、パケット誤り検出符号生成回路２０３は、送信回路２０２が受信したデータからパケット誤り検出符号を生成する。処理はステップＳ１０４へ移行する。
【００２３】
ステップＳ１０４において、送信回路２０２は、パケットフォーマットに従い、ヘッダ誤り検出符号、ヘッダ、データ及びパケット誤り検出符号をネットワーク３０に送信する。処理は終了する。
【００２４】
図６は、本実施形態におけるヘッダ誤り検出符号の生成方法を表した概念図である。図６に表すように本実施形態におけるヘッダ誤り検出符号は、シーケンス番号とパケットヘッダ情報を用いて演算することによって生成される。
【００２５】
図７は、本実施形態におけるパケット受信回路３００の構成を表す。パケット受信回路３００は、受信回路３０２、バッファ３０４、ヘッダ誤り検出符号生成回路２０４、パケット誤り検出符号生成回路２０３、受信シーケンス番号制御回路３０８、ヘッダ誤り検出符号比較回路３１０、パケット誤り検出符号比較回路３０６、及び再送制御回路３１２を有する。
【００２６】
パケット受信回路３００には、ネットワーク３０を経由してパケット送信回路２００が送信したパケットが入力する。受信回路３０２は、パケットを受信する。受信回路３０２は、受信したパケットをバッファ３０４に出力する。また、受信回路３０２は、受信したパケットのヘッダをヘッダ誤り検出符号生成回路２０４に出力し、受信したパケットの誤り検出符号をヘッダ誤り検出符号比較回路３１０に出力し、受信したパケットのデータをパケット誤り検出符号比較回路３０６に出力する。
【００２７】
バッファ３０４は、受信回路３０２から入力するパケットを格納する。受信シーケンス番号制御回路３０８は、受信カウンタ３０５を有しており、受信するパケットのシーケンス番号を管理している。初期状態では、受信カウンタ３０５は第一送信カウンタ２０５と同じ値を示している。
【００２８】
ヘッダ誤り検出符号生成回路２０４は、受信回路３０２から入力するヘッダと、受信カウンタ３０５が示しているシーケンス番号とからヘッダ誤り検出符号を生成する。
【００２９】
パケット誤り検出符号生成回路２０３は、受信回路３０２から入力するデータからパケット誤り検出符号を生成する。なお、ヘッダ誤り検出符号生成回路２０４及びパケット誤り検出符号生成回路２０３は、誤り検出符号の生成アルゴリズムとして、例えばＣＲＣアルゴリズム等の任意のアルゴリズムを使用すれば良い。
【００３０】
ヘッダ誤り検出符号生成回路２０４は、生成したヘッダ誤り検出符号をヘッダ誤り検出符号比較回路３１０に出力する。ヘッダ誤り検出符号比較回路３１０は、受信回路３０２から入力するヘッダ誤り検出符号と、ヘッダ誤り検出符号生成回路２０４から入力するヘッダ誤り検出符号とを比較する。ヘッダ誤り検出符号比較回路３１０は、比較の結果、受信回路３０２から入力するヘッダ誤り検出符号と、ヘッダ誤り検出符号生成回路２０４から入力するヘッダ誤り検出符号とが一致した場合、一致したことを表す信号をバッファ３０４、受信シーケンス番号制御回路３０８に出力する。さらに、ヘッダ誤り検出符号が一致した場合、ヘッダ誤り検出符号比較回路３１０は、正常なパケットを受信したことを表すＡＣＫパケットをパケットの送信元のノード１０の送受信装置２０の送信シーケンス番号制御回路２０７に送信する。
【００３１】
受信シーケンス番号制御回路３０８に、ヘッダ誤り検出符号比較回路３１０から一致したことを表す信号が入力すると、受信カウンタ３０５はインクリメントされる。また、送信シーケンス番号制御回路２０７がＡＣＫパケットを受信すると、第二送信カウンタ２０６はＡＣＫパケット中のシーケンス番号にインクリメントされる。パケットが正常に送受信されている場合、パケット送信時に第一送信カウンタ２０５がインクリメントされ、パケット受信時に受信カウンタ３０５がインクリメントされる。よって第一送信カウンタ２０５及び受信カウンタ３０５は同じ値を示す。
【００３２】
一方、ヘッダ誤り検出符号比較回路３１０は、比較の結果、受信回路３０２から入力するヘッダ誤り検出符号と、ヘッダ誤り検出符号生成回路２０４から入力するヘッダ誤り検出符号とが一致しない場合、一致しないことを表す信号を再送制御回路３１２に出力する。再送制御回路３１２は、当該信号を受信すると、正常なパケットを受信できなかったことを表すＮＡＫパケットを送信元のノード１０の送受信装置２０の送信シーケンス番号制御回路２０７に送信する。送信シーケンス番号制御回路２０７がＮＡＫパケットを受信すると、第二送信カウンタ２０６はＮＡＫパケット中の正常に受信できたパケットのシーケンス番号にインクリメントされる。送信回路２０２は第二送信カウンタ２０６が示すシーケンス番号＋１のパケット以降から第一送信カウンタ２０５が示すシーケンス番号のパケットの再送処理を行う。
【００３３】
パケットの再送を要求する場合としては以下の場合がある。例えば、パケットのヘッダにビット誤りを検出した場合、パケットのヘッダのシーケンス番号がパケット受信回路３００で期待するシーケンス番号と一致しない場合、シーケンス番号にビット誤りはないが、前のパケットが欠落していた場合、シーケンス番号にビット誤りがある場合、パケットのデータ本体にビット誤りがあった場合等である。パケット本体のデータにビット誤りがある場合だけでなく、ヘッダにビット誤りがある場合やシーケンス番号が不連続の場合も、再送の対象になる。
【００３４】
パケット誤り検出符号生成回路２０３は、生成したパケット誤り検出符号をパケット誤り検出符号比較回路３０６に出力する。パケット誤り検出符号比較回路３０６は、受信回路３０２から入力するパケット誤り検出符号と、パケット誤り検出符号生成回路２０３から入力するパケット誤り検出符号とを比較する。比較の結果、受信回路３０２から入力するパケット誤り検出符号と、パケット誤り検出符号生成回路２０３から入力するパケット誤り検出符号とが一致した場合、一致したことを表す信号をバッファ３０４に出力する。一方、比較の結果、受信回路３０２から入力するパケット誤り検出符号と、パケット誤り検出符号生成回路２０３から入力するパケット誤り検出符号とが一致しない場合、一致しないことを表す信号をバッファ３０４に出力する。バッファ３０４に一致しないことを表す信号が入力すると、バッファ３０４に格納されているパケットが破棄される。
【００３５】
また、パケット誤り検出符号比較回路３０６は、パケット誤り検出符号生成回路２０３が生成したパケット誤り検出符号と、受信回路３０２が受信したパケットのパケット誤り検出符号のビット反転とが一致しない場合、一致しないことを表す信号をパケットの送信先のノード１０に接続された送受信装置２０のパケット送信回路２００に出力する。
【００３６】
パケットの送信先のノード１０に接続された送受信装置２０の送信回路２０２は、当該信号を受信すると、パケットのＥＮＤコードにパケットがエラーを含んでいることを表すＥＤＢを書き込む。さらに、送信回路２０２は、当該信号を受信すると、パケット誤り検出符号生成回路２０３に正常なパケットのパケット誤り検出符号をビット反転したパケット誤り検出符号を生成させる。そして、送信回路２０２は、ＥＮＤコードがＥＤＢであり、かつ、正常なパケットの誤り検出符号をビット反転したパケット誤り検出符号が付加されたパケットをネットワークに送信する。受信回路３０２は、ＥＮＤコードを参照することで、パケットの末尾の検出及びパケットが正常なパケットであるか否かを判定することができる。また、受信回路３０２は、受信したパケットのパケット誤り検出符号がビット反転したものであるか否かを判定することにより、パケットを無効にすべきか否かを判定することができる。
【００３７】
カットスルー転送では、転送中にエラーを検出しても、転送をキャンセルすることができないため、転送中のパケットがエラーを含むことをパケットの送信先のノード１０に通知する必要がある。そのため、エラーを含むパケットのＥＮＤコードをＥＤＢに、誤り検出符号をビット反転したものにしている。
【００３８】
以下、図８を用いてパケット受信の処理について説明する。ステップＳ２０１において、ヘッダ誤り検出符号生成回路２０４、パケット誤り検出符号生成回路２０３はそれぞれ、ヘッダ誤り検出符号、パケット誤り検出符号を生成する。処理はステップＳ２０２へ移行する。
【００３９】
ステップＳ２０２において、受信回路３０２は、パケットの末尾がＥＮＤであるか否かを判定する。パケットの末尾がＥＮＤである場合、処理はステップＳ２０３へ移行する。一方、パケットの末尾がＥＮＤでない場合、処理はステップＳ２０７へ移行する。
【００４０】
ステップＳ２０３において、ヘッダ誤り検出符号比較回路３１０、パケット誤り検出符号比較回路３０６はそれぞれ、ステップＳ２０１において生成した誤り検出符号と、受信したパケットの誤り検出符号とが一致するか否かを判定する。生成した誤り検出符号と、受信したパケットの誤り検出符号とが一致する場合、処理はステップＳ２０４へ移行する。一方、生成した誤り検出符号と、受信したパケットの誤り検出符号とが一致しない場合、処理はステップＳ２０９へ移行する。ステップＳ２０９において、バッファ３０４に格納されたパケットは破棄される。
【００４１】
ステップＳ２０４において、ヘッダ誤り検出符号比較回路３１０は、シーケンス番号制御回路３０８に、誤り検出符号が一致したことを表す信号を出力する。受信カウンタ３０５はインクリメントされる。処理はステップＳ２０５へ移行する。
【００４２】
ステップＳ２０５において、ヘッダ誤り検出符号比較回路３１０は、正常なパケットを受信したことを表すＡＣＫパケットをパケット送信回路２００のシーケンス番号制御回路２０７に送信する。シーケンス番号制御回路２０７がＡＣＫパケットを受信すると、第二送信カウンタ２０６はインクリメントされる。処理はステップＳ２０６へ移行する。
【００４３】
ステップＳ２０６において、バッファ３０４は、ヘッダとデータを出力する。処理は終了する。
【００４４】
続いて、ステップＳ２０２からステップＳ２０７に移行した場合の処理について説明する。ステップＳ２０７において、パケット誤り検出符号比較回路３００は、パケット誤り検出符号生成回路２０３が生成したパケット誤り検出符号と、受信回路３０２が受信したパケットのパケット誤り検出符号のビット反転とが一致するか否かを判定する。生成したパケット誤り検出符号と、受信したパケット誤り検出符号のビット反転とが一致する場合、受信回路３０２が受信したパケットは無効パケットであり、処理はステップＳ２０８へ移行する。一方、生成したパケット誤り検出符号と、受信したパケット誤り検出符号のビット反転とが一致しない場合、処理はステップＳ２０９へ移行する。
【００４５】
ステップＳ２０８において、バッファ３０４に格納された無効パケットは破棄される。処理はステップＳ２１０へ移行する。
【００４６】
ステップＳ２１０において、ヘッダ誤り検出符号比較回路３１０は、再送制御回路３１２にパケットの再送を指示する。再送制御回路３１２は、ヘッダ誤り検出符号比較回路３１０からの指示を受け、正常なパケットを受信できなかったことを表すＮＡＫパケットをパケット送信回路２００に送信し、パケット再送をパケット送信回路２００に要求する。処理は終了する。
【００４７】
図９は、本実施形態におけるヘッダ誤りとシーケンス番号の検査方法を表した概念図である。受信回路で保持しているシーケンス番号と、受信したパケットのヘッダから本実施形態におけるヘッダ誤り検出符号を生成する。そして、生成したヘッダ誤り検出符号と、受信したヘッダ誤り検出符号とを比較する。シーケンス番号の不一致、パケットのヘッダにエラーがあると２つの誤り検出符号は一致しない。
【００４８】
カットスルー転送ではヘッダを全て取得しなければ、転送開始できないため、ヘッダのデータ量によっては、受信するフリットにヘッダが全て含まれていない場合もある。受信するフリットにヘッダが全て含まれていないと、次のフリットの受信を待って、ヘッダを全て取得しなければならず、次のフリットの受信を待つ時間だけ、パケットの転送開始が遅れてしまう。ゆえに、本実施形態によれば、ヘッダにシーケンス番号を含めないため、ヘッダのデータ量を小さくすることができ、受信するフリットにヘッダを含めることができる確率が向上する。
【００４９】
（実施例２）
図１０は、本実施形態において送受信するパケット５００のパケットフォーマットを表す。パケット５００は、ヘッダ５０４、データ５０６及びパケット誤り検出符号５０８を有する。ヘッダ５０４は、パケットの送信元アドレス、パケットの送信先アドレス、パケットタイプ及びパケット長等の情報を有している。
【００５０】
図１１は、本実施形態におけるパケット送信回路２００の構成を表す。パケット送信回路２００は、送信回路２０２、パケット誤り検出符号生成回路３１４及び送信シーケンス番号制御回路２０７を有する。送信シーケンス番号制御回路２０７は、次に送信するパケットのシーケンス番号を管理する第一送信カウンタ２０５と受信側で正常受信できたパケットのシーケンス番号を管理する第二送信カウンタ２０６を有する。
【００５１】
以下、図１２を用いてパケット送信の処理について説明する。ステップＳ３０１において、送信回路２０２は、ノード１０から送信されるヘッダとデータを受信する。処理はステップＳ３０２へ移行する。
【００５２】
ステップＳ３０２において、パケット誤り検出符号生成回路３１４は、第一送信カウンタ２０５が示すシーケンス番号と、送信回路２０２が受信したヘッダ及びデータとからヘッダ誤り検出符号を生成する。なお、パケット誤り検出符号生成回路３１４によるパケット誤り検出符号の生成アルゴリズムとしては、ＣＲＣアルゴリズム等の任意のアルゴリズムが使用されれば良い。処理はステップＳ３０３へ移行する。
【００５３】
ステップＳ３０３において、送信回路２０２は、パケットフォーマットに従い、パケット誤り検出符号、ヘッダ及びデータをネットワーク３０に送信する。処理は終了する。
【００５４】
図１３は、本実施形態におけるパケット受信回路３００の構成を表す。パケット受信回路３００は、受信回路３０２、バッファ３０４、パケット誤り検出符号生成回路３１４、シーケンス番号制御回路３０８、パケット誤り検出符号比較回路３１６及び再送制御回路３１２を有する。シーケンス番号制御回路３０８は、受信カウンタ３０５を有する。
【００５５】
以下、図１４を用いてパケット受信の処理について説明する。ステップＳ４０１において、パケット誤り検出符号生成回路３１４は、パケット誤り検出符号を生成する。処理はステップＳ４０２へ移行する。
【００５６】
ステップＳ４０２において、受信回路３０２は、パケットの末尾がＥＮＤであるか否かを判定する。パケットの末尾がＥＮＤである場合、処理はステップＳ４０３へ移行する。一方、パケットの末尾がＥＮＤでない場合、処理はステップＳ４０７へ移行する。
【００５７】
ステップＳ４０３において、パケット誤り検出符号比較回路３１６は、ステップＳ４０１において生成したパケット誤り検出符号と、受信したパケットの誤り検出符号とが一致するか否かを判定する。生成したパケット誤り検出符号と、受信したパケットのパケット誤り検出符号とが一致する場合、処理はステップＳ４０４へ移行する。一方、生成したパケット誤り検出符号と、受信したパケットのパケット誤り検出符号とが一致しない場合、処理はステップＳ４０９へ移行する。ステップＳ４０９において、バッファ３０４に格納されたパケットは破棄される。
【００５８】
ステップＳ４０４において、パケット誤り検出符号比較回路３１６は、シーケンス番号制御回路３０８に、誤り検出符号が一致したことを表す信号を出力する。受信カウンタ３０５はインクリメントされる。処理はステップＳ４０５へ移行する。
【００５９】
ステップＳ４０５において、パケット誤り検出符号比較回路３１６は、正常なパケットを受信したことを表すＡＣＫパケットをパケット送信回路２００のシーケンス番号制御回路２０７に送信する。シーケンス番号制御回路２０７がＡＣＫパケットを受信すると、第二送信カウンタ２０６はインクリメントされる。処理はステップＳ４０６へ移行する。
【００６０】
ステップＳ４０６において、バッファ３０４は、ヘッダとデータを出力する。処理は終了する。
【００６１】
続いて、ステップＳ４０２からステップＳ４０７に移行した場合の処理について説明する。ステップＳ４０７において、パケット誤り検出符号比較回路３００は、パケット誤り検出符号生成回路３１４が生成したパケット誤り検出符号と、受信回路３０２が受信したパケットのパケット誤り検出符号のビット反転とが一致するか否かを判定する。生成したパケット誤り検出符号と、受信したパケット誤り検出符号のビット反転とが一致する場合、受信回路３０２が受信したパケットは無効パケットであり、処理はステップＳ４０８へ移行する。一方、生成したパケット誤り検出符号と、受信したパケット誤り検出符号のビット反転とが一致しない場合、処理はステップＳ４０９へ移行する。
【００６２】
ステップＳ４０８において、バッファ３０４に格納された無効パケットは破棄される。処理はステップＳ４１０へ移行する。
【００６３】
ステップＳ４１０において、パケット誤り検出符号比較回路３１６は、再送制御回路３１２にパケットの再送を指示する。再送制御回路３１２は、パケット誤り検出符号比較回路３１６からの指示を受け、正常なパケットを受信できなかったことを表すＮＡＫパケットをパケット送信回路２００に送信し、パケット再送をパケット送信回路２００に要求する。処理は終了する。
【００６４】
（本実施形態の有効性）
図１５は、送受信するデータとパケット構造の対応を表す。図１５に表すように、パケットは分割したデータのそれぞれにヘッダという情報を付加したデータである。図１５に表すパケットでは、ヘッダにはシーケンス番号が含まれている。本実施形態における送受信回路では、送信回路が送信するパケットのシーケンス番号と、受信回路が受信するパケットのシーケンス番号とは一致するように制御されている。そのため、送信回路、受信回路それぞれで管理しているシーケンス番号を用いて誤り検出符号を生成すれば、シーケンス番号をパケットに含めなくても良くなる。ゆえに、送受信回路の通信帯域を有効活用することができる。
【００６５】
以上の説明は、本実施形態をより良く理解させるために具体的に説明したものであって、別形態を制限するものではない。従って、趣旨を変更しない範囲で変更可能である。
【図面の簡単な説明】
【００６６】
【図１】ネットワークシステムの構成を表した図である。
【図２】ノードの構成を表した図である。
【図３】実施例１におけるパケットフォーマットを表した図である。
【図４】実施例１における送信回路の構成を表した図である。
【図５】実施例１における送信処理を表したフローチャートである。
【図６】ヘッダ誤り検出符号の生成方法を表した図である。
【図７】実施例１における受信回路の構成を表した図である。
【図８】実施例１における受信処理を表したフローチャートである。
【図９】ヘッダ誤り検出符号を用いた検査方法を表した図である。
【図１０】実施例２におけるパケットフォーマットを表した図である。
【図１１】実施例２における送信回路の構成を表した図である。
【図１２】実施例２における送信処理を表したフローチャートである。
【図１３】実施例２における受信回路の構成を表した図である。
【図１４】実施例２における受信処理を表したフローチャートである。
【図１５】送受信データとパケット構造との対応を表した図である。
【符号の説明】
【００６７】
０  ネットワークシステム
１０  ノード
１２  システム制御部
１４  ＣＰＵ
１６  メモリ
１８  Ｉ／Ｏインタフェース
２０  送受信装置
３０  ネットワーク
２００  送信回路
２０２  パケット送信回路
２０４  ヘッダ誤り検出符号生成回路
２０５  第一送信カウンタ
２０６  第二送信カウンタ
２０７  送信シーケンス番号制御回路
２０８  パケット誤り検出符号生成回路
３００  受信回路
３０２  パケット受信回路
３０４  バッファ
３０６  ヘッダ誤り検出符号生成回路
３０８  受信シーケンス番号制御回路
３１０  ヘッダ誤り検出符号比較回路
３１２  再送制御回路
３１４  パケット誤り検出符号生成回路
３１６  パケット誤り検出符号比較回路
４００  ネットワークインタフェース回路
５００  パケット
５０２  ヘッダ誤り検出符号
５０４  ヘッダ
５０６  データ
５０８  パケット誤り検出符号
【図１】
0004985565.tif 000002
【図２】
0004985565.tif 000003
【図３】
0004985565.tif 000004
【図４】
0004985565.tif 000005
【図５】
0004985565.tif 000006
【図６】
0004985565.tif 000007
【図７】
0004985565.tif 000008
【図８】
0004985565.tif 000009
【図９】
0004985565.tif 000010
【図１０】
0004985565.tif 000011
【図１１】
0004985565.tif 000012
【図１２】
0004985565.tif 000013
【図１３】
0004985565.tif 000014
【図１４】
0004985565.tif 000015
【図１５】
0004985565.tif 000016