(57)【特許請求の範囲】
【請求項１】
入出力を選択するスイッチと、
このスイッチに接続され、転送すべきパケットを入力するパケット入力手段と、このパケット入力手段が入力したパケットを一時的に格納するパケット格納手段と、前記パケット入力手段が入力したパケットの宛先の判別を要求する情報を組み込んだ宛先要求情報を作成する宛先要求情報作成手段と、この宛先要求情報作成手段の作成した宛先要求情報を予め選択した転送先にこのスイッチを介して送出する宛先要求情報送出手段と、送出した宛先要求情報に対してこのスイッチを介してパケットの宛先を示す宛先解決情報が返送されてきたときその宛先解決情報の示す宛先の数に応じて必要な数だけ前記パケット格納手段に格納したパケットをコピーして、この宛先解決情報が示すそれぞれの宛先に１つずつ対応付けてこれらを転送するパケット転送手段とを備えた回線インタフェース装置と、
前記スイッチを介してこの回線インタフェース装置からパケットの宛先の判別を要求する前記宛先要求情報が入力されたとき、このパケットがマルチキャスト転送するパケットであるか否かを判別するマルチキャスト転送判別手段と、このマルチキャスト転送判別手段によってマルチキャスト転送するパケットであると判別されたときこのスイッチに接続されたマルチキャスト転送に対応して宛先を判別する装置を選択してこの宛先要求情報をこのスイッチを介して転送送出する転送部と、前記マルチキャスト転送判別手段によってマルチキャスト転送するパケットではないと判別されたときこの宛先要求情報に対して判別した宛先を示す宛先解決情報を作成しこの宛先要求情報を送出元に返送する返送部とを備えた宛先解決選択装置と、
前記スイッチを介してパケットの宛先の判別を要求する前記宛先要求情報が入力されたとき、マルチキャスト転送するパケットの宛先要求情報に対応して判別した宛先を示す前記宛先解決情報を作成しこの宛先要求情報を送出した前記回線インタフェース装置に返送する宛先解決装置
とを具備することを特徴とするパケット処理システム。
【請求項２】
前記宛先解決装置は、判別した宛先それぞれに対応してこれを示す前記宛先解決情報を１つずつ作成して返送し、前記パケット転送手段は、返送された前記宛先解決情報ごとにパケットのコピーを１つずつ作成することを特徴とする請求項１記載のパケット処理システム。
【請求項３】
前記宛先解決装置は複数備えられており、前記回線インタフェース装置はこれらの宛先解決装置のパケットの宛先判別のための負荷をそれぞれ判別する負荷判別手段と、この負荷判別手段の判別結果に応じて各宛先解決装置の負荷が分散するように宛先要求情報を送出する宛先解決装置を選択する宛先解決装置選択手段とを更に具備することを特徴とする請求項１記載のパケット処理システム。
【請求項４】
入出力の選択を行うスイッチと、
このスイッチに接続され、受信回線あるいは受信ポートから転送すべきパケットを入力するパケット入力手段と、このパケット入力手段が入力したパケットの宛先を要求する宛先要求情報を作成する宛先要求情報作成手段と、前記スイッチを介して宛先要求情報を送出する宛先要求情報送出手段と、この宛先要求情報送出手段によって送出された宛先要求情報に対して前記スイッチを介してパケットの送信処理を行う装置を示す送信装置情報とこのパケットの判別された送信先を示す送信先情報を組み込んだ宛先解決情報が入力されたとき、送信装置情報ごとに前記パケット入力手段が入力したパケットのコピーを作成する受信パケットコピー作成手段と、この受信パケットコピー作成手段によって作成されたコピーに前記送信先情報を付加した送信先情報付加パケットを前記送信装置情報が示す装置に向けて前記スイッチを介して送出する送信先情報付加パケット送出手段と、受信回線あるいは受信ポートとを備えたパケット受信装置と、
前記スイッチに接続され、このスイッチを介して前記パケット受信装置から前記宛先要求情報が入力されたとき、これに対応してパケットの送信処理を行う装置を判別しこれを示す宛先解決情報を作成する宛先解決情報作成手段と、前記宛先要求情報を基にしてこのパケットの送信処理を行う装置が送信する送信先を判別してこれを示す前記送信先情報をこの宛先解決情報作成手段が作成した宛先解決情報に組み込む宛先解決情報組込手段と、この宛先解決情報組込手段によって送信先情報が組み込まれた宛先解決情報を前記宛先要求情報の入力元の前記パケット受信装置にこのスイッチを介して送出する宛先解決情報送出手段とを備えた宛先解決装置と、
前記送信先情報に対応した送信回線あるいは送信ポートを示す、送信回線情報あるいは送信ポート情報を記憶する送信回線・ポート記憶手段と、前記スイッチを介して前記送信先情報付加パケットが入力されたとき、この送信先情報付加パケットに組み込まれている送信先情報を基にしてこの送信回線・ポート記憶手段に記憶されている送信回線情報あるいは送信ポート情報を取得する送信回線・ポート情報取得手段と、前記スイッチを介して前記送信先情報付加パケットが入力されたとき、このパケットがマルチキャスト転送するパケットであるか否かを判別するパケット種別判別手段と、前記送信回線・ポート情報取得手段が取得した送信回線情報あるいは送信ポート情報が示す送信回線あるいは送信ポートごとにこの送信先情報付加パケットのパケットが前記パケット種別判別手段によってマルチキャスト転送するパケットであると判別されたときこのパケットをコピーして送出する送信パケット送出手段と、複数の送信回線あるいは複数の送信ポートとを備えたパケット送信装置
とを具備することを特徴とするパケット処理システム。
【請求項５】
前記宛先要求情報作成手段は、前記パケット入力手段が入力したパケットからその宛先を判別するための情報を抜き出してこのパケットの宛先の判別を要求する前記宛先要求情報を作成することを特徴とする請求項１または請求項４記載のパケット処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はパケットを転送するパケット処理システムに係わり、特にパケットをマルチキャスト転送するパケット処理システムに関する。
【０００２】
【従来の技術】
通信ネットワーク内に配置されている複数の端末に同一の送信データを組み込んだパケットを送信するために、マルチキャスト転送が用いられることが多い。マルチキャスト転送では、パケットを転送するパケット処理システムが受信したマルチキャスト用のパケットをコピーし、送信先となる複数の端末それぞれへ向けて送信するようになっている。
【０００３】
図３０は、通信ネットワークに配置されたパケット処理システムとしてのパケット処理装置の構成を表わしたものである。特開２００１−２８６０５号公報に一例として開示されているこのパケット処理装置１１は、第１〜第４の回線１２〜１５と接続されており、これらを介してパケットを入力したりそれぞれの宛先に送出するようになっている。このパケット処理装置１１には、２組の回線インタフェース処理部１６、１７が備えられている。このうちの第１の回線インタフェース処理部１６が第１および第２の回線１２、１３と接続されており、第２の回線インタフェース処理部１７が第３および第４の回線１４、１５と接続されている。これらの回線インタフェース処理部１６、１７は、パケットの各種処理を行う図示しない回路部分とバス１８を介して接続されており、各種のインタフェース処理を行うようになっている。このうちの１つがそれぞれの回線１２〜１５からパケットが送られてきたときの宛先を解析する宛先解決処理である。この図３０ではこの宛先解決処理を行う部分を、便宜上、宛先解決処理部１９、２０として示している。
【０００４】
これらの宛先解決処理部１９、２０は、第１〜第４の回線１２〜１５のうちの対応するものからパケットが送られてきたとき、それらの宛先となる端末に至る転送経路を解析し、この解析結果を基にして各回線インタフェース処理部１６、１７に接続されている回線の中からこのパケットを出力する回線を選択する宛先解決処理を行う。一例として、このようなパケット処理装置１１が、第１の回線１２から入力されたパケットを第２〜第４の回線１３〜１５へ出力することで図示しない宛先へマルチキャスト転送する場合の処理を説明する。
【０００５】
第１の回線１２からパケットを入力された第１の回線インタフェース処理部１６は、このパケットを宛先解決処理部１９で解析し、マルチキャスト転送に対応する回線を示す情報として第２〜第４の回線１３〜１５を示す情報を取得する。この後、取得した情報に従ってパケットのコピーを３つ作成し、第１の回線インタフェース処理部１６から第２の回線１３へコピーを１つ出力する。また、第２の回線インタフェース処理部１７からは、それぞれ回線１４および回線１５へ１つずつパケットを出力する。このようにして、パケット処理装置１１は第１の回線１２から送られてきたパケットを第２〜第４の回線１３〜１５へそれぞれ送り出すことで３箇所の宛先に対してマルチキャスト転送を行うようになっている。
【０００６】
【発明が解決しようとする課題】
ところで図３０に示したパケット処理装置１１では、それぞれの回線インタフェース処理部１６、１７が機能の一部として、あるいは内蔵部品を使用して宛先解決処理部１９、２０を実現している。したがって、使用されるパケット処理装置１１によって宛先解決処理の能力が固定されることになり、その能力が実態に即している場合には問題ないが、能力が足りないような場合にはパケット処理に遅延を生じさせたり、パケット処理装置１１自体の交換が要求されることになった。また、将来のニーズを先取りして十分な能力の回線インタフェース処理部１６、１７を備えたパケット処理装置１１を用意することは経済的な負担を強いることになり、しかもそのようなニーズが現れない場合には結果的に無駄を生じさせることになる。
【０００７】
そこで本発明の目的は、パケットの宛先解決処理についての各種負荷の要求に対応し、マルチキャスト転送を行うことのできるパケット処理システムを提供することにある。
【０００８】
【課題を解決するための手段】
請求項１記載の発明では、（イ）入出力を選択するスイッチと、（ロ）このスイッチに接続され、転送すべきパケットを入力するパケット入力手段と、このパケット入力手段が入力したパケットを一時的に格納するパケット格納手段と、パケット入力手段が入力したパケットの宛先の判別を要求する情報を組み込んだ宛先要求情報を作成する宛先要求情報作成手段と、この宛先要求情報作成手段の作成した宛先要求情報を予め選択した転送先にこのスイッチを介して送出する宛先要求情報送出手段と、送出した宛先要求情報に対してこのスイッチを介してパケットの宛先を示す宛先解決情報が返送されてきたときその宛先解決情報の示す宛先の数に応じて必要な数だけパケット格納手段に格納したパケットをコピーして、この宛先解決情報が示すそれぞれの宛先に１つずつ対応付けてこれらを転送するパケット転送手段とを備えた回線インタフェース装置と、（ハ）スイッチを介してこの回線インタフェース装置からパケットの宛先の判別を要求する宛先要求情報が入力されたとき、このパケットがマルチキャスト転送するパケットであるか否かを判別するマルチキャスト転送判別手段と、このマルチキャスト転送判別手段によってマルチキャスト転送するパケットであると判別されたときこのスイッチに接続されたマルチキャスト転送に対応して宛先を判別する装置を選択してこの宛先要求情報をこのスイッチを介して転送送出する転送部と、マルチキャスト転送判別手段によってマルチキャスト転送するパケットではないと判別されたときこの宛先要求情報に対して判別した宛先を示す宛先解決情報を作成しこの宛先要求情報を送出元に返送する返送部とを備えた宛先解決選択装置と、（ニ）スイッチを介してパケットの宛先の判別を要求する宛先要求情報が入力されたとき、マルチキャスト転送するパケットの宛先要求情報に対応して判別した宛先を示す宛先解決情報を作成しこの宛先要求情報を送出した回線インタフェース装置に返送する宛先解決装置とをパケット処理システムに具備させる。
【００１３】
すなわち請求項１記載の発明では、宛先解決選択装置は入力された宛先要求情報がマルチキャスト転送するパケットの宛先の判別を要求しているか否かを判別するようになっている。そして、マルチキャスト転送するパケットである場合には、これに対応して宛先解決情報を作成する宛先解決装置を選択してこの宛先要求情報を転送する。また、マルチキャスト転送するパケットでなければ、これに対する宛先解決情報を作成して回線インタフェース装置に返送するようになっている。マルチキャスト転送するパケットであるか否かは、たとえばパケットに送信先を示すアドレスとして、マルチキャスト転送するパケットに割り振られるアドレスが組み込まれているか否かを確認することで判別することができる。このようにマルチキャスト転送を行うパケットに対する宛先の判別処理をこれに対応した宛先解決装置に行わせることによって、マルチキャスト転送の宛先を判別する処理の負荷に対応した変更や追加などを宛先解決装置だけで、回線インタフェース装置あるいは宛先解決選択装置と無関係に行うことができる。また、１つの宛先が判別されるユニキャスト転送するパケットに対してのみ宛先解決情報を作成する装置が備えられている場合であっても、マルチキャスト転送判別部および転送部を新たに備えて、スイッチにマルチキャスト転送するパケットに対応した宛先解決装置を接続することで、マルチキャスト転送するパケットに対する宛先要求情報に対応することができる。このように、ユニキャスト転送するパケットに対応していたパケット処理システムをマルチキャスト転送するパケットにも対応させる場合に、既存の宛先を判別する装置も機能を追加して使用することで、既存の装置を有効に活用することができる。
【００１４】
請求項２記載の発明では、請求項１記載のパケット処理システムで、宛先解決装置は、判別した宛先それぞれに対応してこれを示す宛先解決情報を１つずつ作成して返送し、パケット転送手段は、返送された宛先解決情報ごとにパケットのコピーを１つずつ作成することを特徴としている。
【００１５】
すなわち請求項２記載の発明では、宛先解決情報は１つの宛先しか示さないように単純化されており、パケット転送手段は判別された宛先の数に関わらず宛先解決情報が返送されるたびに１つだけパケットのコピーを作成すればよいようになっている。これによって、パケット転送手段は同じ処理を繰り返すことで、判別された宛先の数が単数であっても複数であっても対応することができる。したがって、宛先の数によって対応したパケット転送手段を設ける必要が無いので、これを備える回線インタフェース装置の構造を簡易にすることができる。
【００１６】
請求項３記載の発明では、請求項１記載のパケット処理システムで、宛先解決装置は複数備えられており、回線インタフェース装置はこれらの宛先解決装置のパケットの宛先判別のための負荷をそれぞれ判別する負荷判別手段と、この負荷判別手段の判別結果に応じて各宛先解決装置の負荷が分散するように宛先要求情報を送出する宛先解決装置を選択する宛先解決装置選択手段とを更に具備することを特徴としている。
【００１７】
すなわち請求項３記載の発明では、回線インタフェース装置が入力したパケットの宛先を判別するための宛先要求情報の送出先を、複数の宛先解決装置から選択するようになっている。回線インタフェース装置はそれぞれの宛先解決装置の入力したパケットに対する宛先判別のための負荷を判別するようになっており、判別結果を基にして負荷が分散するように宛先要求情報の送出先を選択する。たとえば、一般的にマルチキャスト転送の場合送信先を示すアドレスは特定の範囲で表わされるため、アドレスがこの範囲であるか否かを確認するだけでマルチキャスト転送が行われるパケットであるか否かを判別することができる。このようなパケットの宛先要求情報は、マルチキャスト転送を行うパケットの宛先判別のための負荷が少ない宛先解決装置に送出することで各宛先解決装置の間の負荷を分散することができる。また、同じ負荷の宛先解決装置を順に選択して宛先要求情報を送出することでも各宛先解決装置間の負荷を分散することができる。更に、宛先解決装置の現在の負荷状況などの情報を取得してこれを加えて送出先となる宛先解決装置を選択してもよい。
【００１８】
請求項４記載の発明では、（イ）入出力の選択を行うスイッチと、（ロ）このスイッチに接続され、受信回線あるいは受信ポートから転送すべきパケットを入力するパケット入力手段と、このパケット入力手段が入力したパケットの宛先を要求する宛先要求情報を作成する宛先要求情報作成手段と、スイッチを介して宛先要求情報を送出する宛先要求情報送出手段と、この宛先要求情報送出手段によって送出された宛先要求情報に対してスイッチを介してパケットの送信処理を行う装置を示す送信装置情報とこのパケットの判別された送信先を示す送信先情報を組み込んだ宛先解決情報が入力されたとき、送信装置情報ごとにパケット入力手段が入力したパケットのコピーを作成する受信パケットコピー作成手段と、この受信パケットコピー作成手段によって作成されたコピーに送信先情報を付加した送信先情報付加パケットを送信装置情報が示す装置に向けてスイッチを介して送出する送信先情報付加パケット送出手段と、受信回線あるいは受信ポートとを備えたパケット受信装置と、（ハ）スイッチに接続され、このスイッチを介してパケット受信装置から宛先要求情報が入力されたとき、これに対応してパケットの送信処理を行う装置を判別しこれを示す宛先解決情報を作成する宛先解決情報作成手段と、宛先要求情報を基にしてこのパケットの送信処理を行う装置が送信する送信先を判別してこれを示す送信先情報をこの宛先解決情報作成手段が作成した宛先解決情報に組み込む宛先解決情報組込手段と、この宛先解決情報組込手段によって送信先情報が組み込まれた宛先解決情報を宛先要求情報の入力元のパケット受信装置にこのスイッチを介して送出する宛先解決情報送出手段とを備えた宛先解決装置と、（ニ）送信先情報に対応した送信回線あるいは送信ポートを示す、送信回線情報あるいは送信ポート情報を記憶する送信回線・ポート記憶手段と、スイッチを介して送信先情報付加パケットが入力されたとき、この送信先情報付加パケットに組み込まれている送信先情報を基にしてこの送信回線・ポート記憶手段に記憶されている送信回線情報あるいは送信ポート情報を取得する送信回線・ポート情報取得手段と、スイッチを介して送信先情報付加パケットが入力されたとき、このパケットがマルチキャスト転送するパケットであるか否かを判別するパケット種別判別手段と、送信回線・ポート情報取得手段が取得した送信回線情報あるいは送信ポート情報が示す送信回線あるいは送信ポートごとにこの送信先情報付加パケットのパケットがパケット種別判別手段によってマルチキャスト転送するパケットであると判別されたときこのパケットをコピーして送出する送信パケット送出手段と、複数の送信回線あるいは複数の送信ポートとを備えたパケット送信装置とをパケット処理システムに具備させる。
【００１９】
すなわち請求項４記載の発明では、パケットの受信処理を行うパケット受信装置と、パケットの送信処理を行うパケット送信装置と、パケットの宛先の解決を行う宛先解決装置がそれぞれスイッチに接続されている。パケット受信装置は、受信回線あるいは受信ポートから入力したパケットの送信処理を行うパケット送信装置に、そこからのパケットを送出する数に関わらず１つずつコピーしたパケットを転送するようになっている。パケットを転送されたパケット送信装置は、スイッチを介して送信先情報付加パケットが入力されたとき、パケット種別判別手段でこのパケットがマルチキャスト転送するパケットであるか否かを判別するようになっている。そして、パケット種別判別手段によってマルチキャスト転送するパケットであると判別されたとき、各送出先に対応した数のパケットのコピーを作成して送出するようになっている。このように、分散してコピーを行うことでスイッチを介してパケット受信装置からパケット送信装置に転送するパケットの量を抑えることができるようになっている。また、このようなコピーの分散を行うために必要な情報は宛先要求情報に対する宛先解決情報として、宛先解決装置からパケット受信装置に返送された後、送信先情報としてパケットと共にパケット送信装置に転送されるようになっている。これによって、実際にパケットを送信するパケット送信装置の数に関わらず、スイッチを介して宛先解決装置が受け取る宛先要求情報の数は変わらないことになる。したがって、受信したパケットをマルチキャスト転送で複数の送信回線あるいは送信ポートに送出する場合でも、スイッチを介して宛先要求情報およびパケットの転送を行う負荷を軽減することができるパケット処理システムを得ることができる。
【００２０】
請求項５記載の発明では、請求項１または請求項４記載のパケット処理システムで、宛先要求情報作成手段は、パケット入力手段が入力したパケットからその宛先を判別するための情報を抜き出してこのパケットの宛先の判別を要求する宛先要求情報を作成することを特徴としている。
【００２１】
すなわち請求項５記載の発明では、外部に配置された宛先解決装置に転送される宛先要求情報の長さについて考慮したものである。パケットに格納されているデータの多くは、このパケットの宛先を判別するための情報ではない場合があり、このような情報は宛先要求情報には含まなくてもよいことを示している。すなわち、判別の対象となるパケットの長さに依存しない長さの宛先要求情報を作成してよいことを示している。この宛先要求情報には、入力したパケット以外から取得した宛先を判別するための情報を組み込んでもよく、この場合でもパケット以外から取得するため、パケットの長さには依存しないことになる。したがって、宛先解決装置を外部に設ける場合これに宛先要求情報を転送する処理の負荷を、パケット全体を含んで転送する場合と比較して軽減させることができる。
【００２２】
【発明の実施の形態】
【００２３】
【実施例】
以下実施例につき本発明を詳細に説明する。
【００２４】
図１は本発明の一実施例におけるパケット処理システムとしてのパケット処理装置の構造を表わしたものである。パケット処理装置２１１には、各種回線メディアを終端しパケットの送受信を行う回線インタフェース装置としての第１〜第Ｎ（Ｎは２以上の整数。）の回線インタフェース処理部２１２1〜２１２Nと、パケットヘッダの加工およびパケットのヘッダ情報からパケットの宛先を決定する宛先解決装置としての第１〜第Ｍ（Ｍは２以上の整数。）の宛先解決処理部２１３1〜２１３Mが備えられている。このように、パケット処理装置２１１では、パケットの宛先を解決する宛先解決処理部２１３が、パケットを送受信する回線インタフェース処理部２１２から独立した構成になっている。これら第１〜第Ｎの回線インタフェース処理部２１２1〜２１２Nおよび第１〜第Ｍの宛先解決処理部２１３1〜２１３Mは、それぞれスイッチ処理部２１４に接続されており、これを介してページとよばれる特定のフォーマットに加工されたデータの転送が可能になっている。
【００２５】
本実施例では、第１〜第Ｎの回線インタフェース処理部２１２1〜２１２Nには、それぞれＫ（Ｋは２以上の整数。）本ずつの回線が接続されていて、これらを通じて他の通信端末とパケットの送受信が行われている。第１の回線インタフェース処理部２１２1には回線２１５11〜２１５1Kが接続されていて、これらに対応してパケットの入出力を行うポート２１６11〜２１６1Kが備えられている。同様にして、第Ｎの回線インタフェース処理部２１２Nには回線２１５N1〜２１５NKが接続されていて、これらに対応してパケットの入出力を行うポート２１６N1〜２１６NKが、それぞれ備えられている。また、第１〜第Ｍの宛先解決処理部２１３1〜２１３Mには、パケットの対応した宛先を示す情報を記憶する第１〜第Ｍの宛先対応テーブル２１７1〜２１７Mと、これを基にしてパケットの宛先を解決しこれを示す情報を作成する第１〜第Ｍの宛先解決情報作成部２１８1〜２１８Mが、それぞれ備えられている。更に、パケット処理装置２１１には、ＣＰＵ（中央演算処理装置）およびＲＯＭ（リード・オンリ・メモリ）等の所定のプログラムを格納した記憶媒体を備えた図示しない制御部が配置されている。このＣＰＵが記憶媒体に格納されているプログラムに従った処理を行うことで、パケット処理装置２１１の制御が行われている。このようなパケット処理装置２１１は、パケットの転送処理を行うルータ装置として、インターネット網などの通信ネットワークで用いられることが多い。
【００２６】
図２は、図１に示したパケット処理装置が設けられている通信ネットワークの一例を表わしたものである。通信ネットワーク２２０には、パケット処理装置２１１と、パケットの送受信を行う通信端末２２１12〜２２１NKと、マルチキャストパケットの送信を行うマルチキャストパケット送信端末２２２が配置されている。パケット処理装置２１１は、回線２１５12〜２１５NKを介して、パケットの送受信を行う通信端末２２１12〜２２１NKと接続されている。また、パケット処理装置２１１は、回線２１５11を介してマルチキャストパケット送信端末２２２と接続されている。ここでは単純化した例として、パケット処理装置２１１にパケットの宛先となる各端末が直接接続されているが、実際にはこれらの端末は最終的なパケットの宛先となる図示しない端末に向けてパケットの転送を行うルータ装置であってもよい。これら各通信端末２２１12〜２２１NKとマルチキャストパケット送信端末２２２はパケット処理装置２１１と協働して、宛先を１つだけ指定したアドレスを組み込んだパケットの送受信であるユニキャスト転送を実現するようになっている。
【００２７】
またマルチキャストパケット送信端末２２２は、パケット処理装置２１１と協働して、マルチキャストパケット送信端末２２２から他の通信端末２２１12〜２２１NKへのマルチキャスト転送を実現するようになっている。マルチキャストパケット送信端末２２２は、各通信端末に同じ資料や画像または音を送信する際に、各通信端末への共通の宛先としてのマルチキャスト用のアドレスと一緒にパケットに組み込んで、パケット処理装置２１１へ送信するようになっている。パケット処理装置２１１は、このようなマルチキャスト用のアドレスが組み込まれたパケットを受信するとこれを基にして、個々の宛先となる通信端末２２１12〜２２１NKそれぞれへ受信したパケットをコピーして送信するようになっている。
【００２８】
再び図１に示したパケット処理装置２１１の説明を行う。パケット処理装置２１１のスイッチ処理部２１４は、第１〜第Ｎの回線インタフェース処理部２１２1〜２１２Nの間でデータの転送を行う際の、転送元と転送先の組み合わせの切り替えを行うようになっている。これは第１〜第Ｎの回線インタフェース処理部２１２1〜２１２Nと第１〜第Ｍの宛先解決処理部２１３1〜２１３Mの間および第１〜第Ｍの宛先解決処理部２１３1〜２１３Mの間でデータの転送を行う際も同様である。また、スイッチ処理部２１４を介してデータの転送を行う際には、ページと呼ばれる固定長のデータを単位として転送が行われる。スイッチ処理部２１４は、転送元と転送先を１つずつ指定された場合のデータ転送の効率を上げるために、転送元と転送先の双方が異なる組み合わせの場合には、複数の組み合わせでデータの転送が同時に行えるようになっている。したがって、ある転送元から複数の転送先へ同じページを同時に転送することは、組み合わせの転送元が重複してしまうために行えない。このため、ある転送元から複数の転送先へ同じページを送信する際には、転送元は転送先を１つずつ指定して順にデータを転送する。スイッチ処理部２１４は、転送元のページ転送要求に対して、データ転送を可能と判別した場合、転送元へページ転送許可を送信し、転送先へページ転送通知を送信するようになっている。
【００２９】
本実施例のパケット処理装置２１１は、以上説明したようなスイッチ処理部２１４へ接続されたパケットに対する各種処理を行う各種処理部が協働して、パケットのユニキャスト転送またはマルチキャスト転送の処理を行うようになっている。本実施例では、パケットの送受信を行う第１〜第Ｎの回線インタフェース処理部２１２1〜２１２Nと、パケットの宛先を判別する宛先解決処理を行う第１〜第Ｍの宛先解決処理部２１３1〜２１３Mが、それぞれスイッチ処理部２１４へ接続されている。このように、回線インタフェース処理部２１２から宛先解決処理部２１３を独立させることによって、宛先解決処理の負荷に応じて宛先解決処理部２１３の数を増減したり、宛先解決処理部２１３自体の規模を回線インタフェース処理部２１２と無関係に自由に設定することができるようになっている。また、スイッチ処理部２１４に接続されたこれら各処理部には、それぞれをパケット処理装置２１１内で識別する情報であるカード番号が割り振られるようになっており、ページの転送先を指定する場合などに使用されるようになっている。
【００３０】
パケット処理装置２１１の図示しない制御部は、受信したパケットに組み込まれている送信先アドレスと、受信した回線インタフェース処理部およびポートの組み合わせに対して、パケット処理装置２１１内で使用する値である出力識別番号を重複しないように割り当てるようになっている。第１〜第Ｍの宛先対応テーブル２１７1〜２１７Mには、これら組み合わせと出力識別番号の関連を記憶した出力識別番号対応表が備えられており、これを検索することで出力識別番号を取得するようになっている。また、出力識別番号に関連してパケットを出力する送信ポートが存在する回線インタフェース処理部を示すカード番号を記憶したカード番号対応表も備えられている。マルチキャスト転送に対応してこの出力識別番号に関連するカード番号が複数存在する場合には、それら全てがこのカード番号対応表に記憶されるようになっている。第１〜第Ｎの回線インタフェース処理部２１２1〜２１２Nには、出力識別番号とその回線インタフェース処理部からパケットを出力する物理的または論理的な送信ポートの関連を記憶した送信ポート対応表が備えられている。マルチキャスト転送に対応してこの出力識別番号に関連するポートが複数存在する場合には、それら全てがこの送信ポート対応表に記憶されるようになっている。この送信ポート対応表については後でも説明を行う。パケット処理装置２１１の図示しない制御部は、パケット処理装置２１１が転送処理するパケットに組み込まれる送信先アドレスと、このパケットを出力するポートの関連を解析して予め各対応表を作成するようになっている。すなわち、本実施例のパケット処理装置２１１では、受信するパケットを出力するポートは、予め定められている。作成されたこれら対応表は、図示しない制御部から第１〜第Ｍの宛先解決処理部２１３1〜２１３Mの第１〜第Ｍの宛先対応テーブル２１７1〜２１７Mおよび第１〜第Ｎの回線インタフェース処理部２１２1〜２１２Nの送信ポート対応表へそれぞれ配布されるようになっている。
【００３１】
次に、パケット処理装置２１１に入力されたパケットの宛先を解決する宛先解決処理部についての説明を行う。なお、第１〜第Ｍの宛先解決処理部２１３1〜２１３Mは同様の宛先解決処理を行うので、ここでは第１の宛先解決処理部２１３1と代表的な第１の回線インタフェース処理部２１２1についてのみ説明を行う。第１の宛先解決処理部２１３1は、第１の回線インタフェース処理部２１２1から受信したパケットの宛先の判別を要求する宛先解決情報が入力されると、この情報から第１の宛先対応テーブル２１７1に備えられた出力識別番号対応表とカード番号対応表を検索し、パケットを宛先へ出力するポートを示す出力識別番号と装置内でのパケットの転送先を示すカード番号を取得する。そして第１の宛先解決情報作成部２１８1で、これら出力識別番号とカード番号を組み込んだ転送指示である宛先解決情報を作成し、宛先要求情報を入力した第１の回線インタフェース処理部２１２1へ返送するようになっている。また、送信先アドレスがマルチキャスト用のアドレスのとき、１つ以上のカード番号を取得する場合がある。この場合は、取得したカード番号ごとにそれぞれ転送指示である宛先解決情報を作成し、宛先要求情報を入力した回線インタフェース処理部へ順に返送するようになっている。このとき、作成するそれぞれの転送指示には、例えば２つのカード番号を取得していれば値“２”のように、取得したカード番号の数をマルチキャスト数として組み込むようになっている。また第１の宛先解決処理部２１３1は、入力されたヘッダ情報を更新するようになっていて、たとえばパケットがネットワーク内でループし続けないように、パケットのヘッダ情報に含まれるＴＴＬ（Time To Leave：生存時間）の減算処理に伴う更新を行う。更新されたヘッダ情報は、転送指示と共に宛先要求情報を入力した第１の回線インタフェース処理部２１２1へ、返送するようになっている。
【００３２】
図３は、図１に示した第１の回線インタフェース処理部の概要を表わしたものである。第１の回線インタフェース処理部２１２1は、パケットを受信し、このパケットの宛先の判別を要求する宛先要求情報を作成するパケット受信部３０１1と、入力された宛先解決情報に従ってパケットの送信を行うパケット送信部３０２1を備えており、パケット受信部３０１1とパケット送信部３０２1は経路３０３1で接続されている。また、第１の回線インタフェース処理部２１２1はポート接続部３０４1を備えており、回線２１５11〜２１５1Kがポート２１６11〜２１６1Kにそれぞれ接続されている。
【００３３】
ポート接続部３０４1とパケット受信部３０１1は、ポート２１６11〜２１６1Kにそれぞれ対応したポート３０５11〜３０５1Kで接続されている。更に、ポート接続部３０４1とパケット送信部３０２1は、ポート２１６11〜２１６1Kにそれぞれ対応したポート３０６11〜３０６1Kで接続されている。ポート２１６11〜２１６1Kから受信したパケットは、パケット受信部３０１1へそれぞれ対応するポート３０５11〜３０５1Kを介して入力されるようになっている。またパケット送信部３０２1からポート接続部３０４1へポート３０６11〜３０６1Kを介して出力されたパケットは、それぞれ対応するポート２１６11〜２１６1Kから送信されるようになっている。本実施例では、ポートを送信と受信に分けてそれぞれ設けられているが、これらを分けずに送受信に使用できるものが設けられていてもよい。
【００３４】
第１の回線インタフェース処理部２１２1は、スイッチ処理部２１４を介するページ転送の方向ごとにパケット受信部３０１1とパケット送信部３０２1に処理を分けることで、ページ転送処理の効率化を図っている。すなわち、パケット受信部３０１1はスイッチ処理部２１４を介してページに加工されたデータの送信を行うようになっているが、スイッチ処理部２１４からページの受信は行えないようになっている。また、パケット送信部３０２1は逆にスイッチ処理部２１４を介してページの受信を行うようになっているが、スイッチ処理部２１４にページの送信は行えないようになっている。パケット受信部３０１1がスイッチ処理部２１４を介してページを受信する場合には、いったんパケット送信部３０２1がスイッチ処理部２１４から受信したページを、経路３０３1を介して転送するようになっている。次に、これらパケット受信部３０１1とパケット送信部３０２1について、詳細に説明を行う。
【００３５】
図４は、図３に示した第１の回線インタフェース処理部２１２1のパケット受信部を表わしたものである。パケット受信部３０１1には、パケットの記憶および管理を行うための各種メモリと、パケットの処理を行う各種制御部とが備えられている。各種メモリとしてパケット受信部３０１1には、パケットを所定長以下に分割したページ単位で記憶するパケットメモリ３１１1が備えられている。また、パケットメモリ３１１1内のアドレスリンクを記憶するパケットリンクメモリ３１２1と、パケットメモリ３１１1の使用可能な記憶領域を記憶するフリーリストメモリ３１３1とが備えられている。ここでアドレスリンクとは、パケットメモリ３１１1内の記憶領域同士のつながりを表わしたものである。更に、パケットメモリ３１１1に格納されているページのマルチキャストでのコピー数をページ単位で記憶するソースマルチキャストメモリ３１４1が備えられている。
【００３６】
また各種制御部としてパケット受信部３０１1には、パケットメモリ３１１1、パケットリンクメモリ３１２1、フリーリストメモリ３１３1、ソースマルチキャストメモリ３１４1それぞれとデータバスおよび制御線で接続され、パケットメモリ３１１1に対してのページ単位での書き込みおよび読み出しに関する制御を行うアクセス制御部３１５1が備えられている。また、アクセス制御部３１５1へページ書き込み要求を行うパケットライト制御部３１６1と、アクセス制御部３１５1へページ読み出し要求を行うパケットリード制御部３１７1とが備えられている。更に、パケットライト制御部３１６1には、ポート３０５11〜３０５1Kから入力されたパケットのスイッチ処理部２１４を介した最初の転送先の選択を行う転送先選択部３１８1が備えられている。
【００３７】
アクセス制御部３１５1は、書き込み要求および読み出し要求に対応したパケットメモリ３１１1へのページ単位の書き込みおよび読み出し処理またはこれらのためのアドレス制御を行うようになっている。また、パケットメモリ３１１1に格納したページをパケット単位で扱うために、ページを格納した領域を示すアドレスのつながりをアドレスリンクとして、パケットリンクメモリ３１２1を用いて管理するようになっている。更に、パケットメモリ３１１1の中でページを格納可能な記憶領域を示す空きアドレス（フリーアドレス）を、フリーリストメモリ３１３1およびソースマルチキャストメモリ３１４1を使用して管理するようになっている。アクセス制御部３１５1は、パケットリード制御部３１７1からページ転送要求を受信すると、これに従って読み出したページを転送するようになっている。このとき、ページの転送先はパケットリード制御部３１７1によってスイッチ処理部２１４に指定されているため、アクセス制御部３１５1はスイッチ処理部２１４に対してページを転送するだけでよいようになっている。
【００３８】
パケットライト制御部３１６1は、ポート３０５11〜３０５1Kを収容し、これらから受信したパケットをページに分割する。そして、このページと書き込み要求であるライトコマンドおよびライトアドレスをアクセス制御部３１５1に送信するようになっている。また、このライトアドレスに使用するフリーアドレスを取得するために、フリーアドレス要求をアクセス制御部３１５1に送信し、これに対応してアクセス制御部３１５1から通知されるフリーアドレスを取得するようになっている。また、パケット送信部３０２1からページがパケットライト制御部３１６1に転送されてきた場合は、同様に書き込み要求を行うようになっている。転送先選択部３１８1は、パケットメモリ３１１1へのパケットを構成する一連のページの書き込み要求が終了すると、パケット処理装置２１１内での次の転送先を選択する。そして、この転送先を示すカード番号と格納したページに関する読み出し用の情報とが組み込まれたパケットオブジェクトを作成する。作成されたパケットオブジェクトは、パケットリード制御部３１７1へ送信するようになっている。ここでは、ポート３０５11〜３０５1Kから受信したパケットに対して作成されたパケットオブジェクトに組み込むカード番号は、たとえば第１の宛先解決処理部２１３1を示すカード番号であり、転送先選択部３１８1によって予め選択されているものとする。また、スイッチ処理部２１４からパケット送信部３０２1を介してパケット受信部３０１1がページを受信する際には、パケットライト制御部３１６1はパケット送信部３０２1からのページの受信と、これを受信するためのページ転送情報の送受信をパケット送信部３０２1と行うようになっている。
【００３９】
パケットリード制御部３１７1は、パケットオブジェクトをパケットライト制御部３１６1から受信すると、これに組み込まれているカード番号を転送先として、スイッチ処理部２１４に対してページ転送要求を送信するようになっている。また、スイッチ処理部２１４から転送先に対するページ転送許可を受信すると、パケットリード制御部３１７1は、パケットメモリ３１１1からのページの読み出し要求であるページ転送要求をアクセス制御部３１５1に送信する。アクセス制御部３１５1は、ページ転送要求を受信すると、スイッチ処理部２１４を介してカード番号が示す転送先へページを転送するようになっている。パケットオブジェクトには、宛先解決処理部にページを転送する宛先解決パケットオブジェクトや、パケット処理装置からパケットを出力する回線インタフェース処理部にページを転送する転送パケットオブジェクト等の幾つかの種類がある。パケットリード制御部３１７1は、このパケットオブジェクトを用いて、ページ単位に転送されるスイッチ処理部２１４を介した転送処理を、パケット単位の処理として制御するようになっている。
【００４０】
図５は、図３に示した第１の回線インタフェース処理部２１２1のパケット送信部を表わしたものである。パケット送信部３０２1には、パケットの記憶および管理を行うための各種メモリと、パケットの処理を行う各種制御部とが備えられている。各種メモリとしてパケット送信部３０２1には、パケットをページ単位で格納するパケットメモリ３３１1が備えられている。また、パケットメモリ３３１1のアドレスリンクを記憶するリンクメモリ３３２1と、パケットメモリ３３１1のフリーアドレスとページ単位でのマルチキャストカウント数を記憶するアカウントメモリ３３３1とが備えられている。リンクメモリ３３２1は、パケットがページに分割された際のページ同士のアドレスリンクおよびページの格納が可能なアドレスリンクの両方を記憶する。更に、マルチキャストカウント数を保存するユーザ設定メモリであるデスティネーションメモリ３３４1が備えられている。
【００４１】
また、各種制御部としてパケット送信部３０２1には、パケットメモリ３３１1、リンクメモリ３３２1、アカウントメモリ３３３1、デスティネーションメモリ３３４1それぞれとデータバスおよび制御線で接続され、パケットメモリ３３１1に対してページ単位での書き込みおよび読み出しに関する制御を行うアクセス制御部３３５1が備えられている。更に、アクセス制御部３３５1へページ書き込み要求を行うパケットライト制御部３３６1と、アクセス制御部３３５1へページ読み出し要求を行うパケットリード制御部３３７1とが備えられている。また、パケットリード制御部３３７1には、出力識別番号とこれに関連したパケットを出力する物理的または論理的な送信ポートを記憶した送信ポート対応表３３８1が備えられている。スイッチ処理部２１４から受信したページをパケット受信部３０１1へ送信する際には、アクセス制御部３３５1はパケット受信部３０１1へページを送信する。パケットライト制御部３３６1、パケットリード制御部３３７1はそれぞれページを送信するためのページ転送情報の送受信をパケット受信部３０１1と行うようになっている。
【００４２】
アクセス制御部３３５1は、書き込み要求および読み出し要求に対応したパケットメモリ３３１1へのページ単位の書き込みおよび読み出し処理、またはこれらのためのアドレス制御を行うようになっている。また、パケットメモリ３３１1に格納したページをパケット単位で扱うため格納した領域を示すアドレスおよびページが格納可能である領域を示す空きアドレスのリンクを、リンクメモリ３３２1を用いて管理するようになっている。更に、パケットメモリ３３１1のフリーアドレスおよび格納されているページごとのマルチキャストカウント数を、アカウントメモリ３３３1を使用して管理するようになっている。
【００４３】
パケットライト制御部３３６1は、スイッチ処理部２１４からページ転送通知を受信すると、アクセス制御部３３５1へフリーアドレス要求を送信し、アクセス制御部３３５1からフリーアドレスを受信する。スイッチ処理部２１４を介してページを受信すると、取得したフリーアドレスをライトアドレスとしてライトコマンドと共にアクセス制御部３３５1へ送信するようになっている。このときページの送信元となる回線インタフェース処理部２１２あるいは宛先解決処理部２１３をライトコマンドと共に送信する。これはページを格納するパケットメモリ３３１1が不足した場合に、送信元にページを送り返すバックプレッシャー制御に使用するためである。受信したページが、宛先解決パケットページである場合には、ライトアドレスを送信した後作成した宛先解決パケットオブジェクトを、パケット受信部３０１1のパケットライト制御部３１６1（図４）へ送信する。また受信したページが、転送パケットページである場合には、パケットを構成するページの格納が全て終了すると、このパケットにアクセスするための情報を格納したパケットオブジェクトを作成し、パケットリード制御部３３７1へ送信する。宛先解決パケットページと転送パケットページのどちらであるかは、受信したページに組み込まれているページの種別を表わす情報であるページ種別を参照することで判別する。転送パケットページを受信した場合は、パケットオブジェクトを作成するのに必要な情報以外を、受信後廃棄するようになっている。
【００４４】
パケットリード制御部３３７1は出力識別番号が格納されているパケットオブジェクトを受信すると、デスティネーションメモリ３３４1の出力識別番号に該当するデータにアクセスしてマルチキャスト数を示す値を取得する。この取得したマルチキャスト数だけパケットオブジェクトをコピーする。また、この出力識別番号で送信ポート対応表３３８1を検索し、取得した出力すべきポート情報から、異なるポート情報を１つずつコピーしたパケットオブジェクトに組み込むようになっている。この後、コピーしたパケットオブジェクトごとにパケットメモリ３３１1からのページ読み出し要求であるページリードコマンドをアクセス制御部３３５1に送信する。アクセス制御部３３５1は、ページリードコマンドを受信すると、ページをパケットリード制御部３３７1へ送信するようになっている。パケットリード制御部３３７1は受け取ったページからパケットを再生しポート情報が示すポート３０６11〜３０６1Kのいずれかから送信するようになっている。また、パケット受信部３０１1のパケットライト制御部３１６1からページの転送要求があった場合には、これに対応してアクセス制御部３３５1へページリードコマンドを送信して、パケットライト制御部３１６1へページを送信させるようになっている。
【００４５】
以上では、図１に示したパケット処理装置２１１に配置された第１の回線インタフェース処理部２１２1の構造について詳細な説明を行ったが、第１〜第Ｎの回線インタフェース処理部２１２1〜２１２Nは同様の構造を持っている。次に、第１の回線インタフェース処理部２１２1に備えられた各種メモリを用いて、パケット処理装置２１１がパケットをページ単位で格納する処理について説明を行う。ここでは、ページを格納可能な記憶領域の管理と、ページの格納と、格納されたページ同士の前後の繋がりがどのように管理されているかを、パケット受信部３０１1とパケット送信部３０２1に備えられている各種メモリを用いて説明する。
【００４６】
各種メモリの説明に使用する用語について説明する。メモリは記憶媒体を指していて、この内部は任意の数のデータを記憶する記憶領域に区切られている。アドレス識別子は、この区切られた記憶領域を固有に識別する識別情報である。また、アドレス領域はこれらのアドレス識別子が割り振られている記憶領域を指している。更に、空きアドレス領域とはデータが格納されていないアドレス領域ではなく、データを格納するために使用可能であるアドレス領域を指している。フリーアドレスはこの空きアドレス領域を指すアドレス識別子である。
【００４７】
図６は図４に示したパケット受信部に配置された各メモリ内部の構成と初期値を対比して表わしたものである。パケット受信部３０１1に配置されたパケットメモリ３１１1、フリーリストメモリ３１３1、ソースマルチキャストメモリ３１４1およびパケットリンクメモリ３１２1は内部に同じアドレス識別子“ａ0〜ａn”で表わされる（ｎ＋１）個のアドレス領域がそれぞれ設けられている。パケットメモリ３１１1、パケットリンクメモリ３１２1には初期状態で全てのアドレス領域に何も格納されないようになっている。ソースマルチキャストメモリ３１４1には全てのアドレス領域に値“０”が格納されるようになっている。フリーリストメモリ３１３1はパケットメモリ３１１1の空きアドレス領域とその順番を示すようになっていて、それぞれのアドレス領域には次に続くアドレス領域を示すアドレス識別子が格納されるようになっている。
【００４８】
図６は初期状態を示しているので、パケットメモリ３１１1の全てのアドレス領域は空きアドレス領域となる。したがって、フリーリストメモリ３１３1には、アドレス識別子を示す値“ａ1〜ａn”までが順番に、アドレス識別子“ａ0〜ａn-1”が指すアドレス領域に格納されている。また、アドレス識別子“ａn”が指すアドレス領域には、なにも格納されていない。ここでは、アドレス識別子相互の順序関係に従って順番に格納されているが、必ずしもこの順番に格納する必要はない。すなわち、アドレス識別子“ａ2”、“ａ1”、“ａ3”、…“ａn”が示す順番で格納しても構わない。
【００４９】
ソースマルチキャストメモリ３１４1のアドレス領域にそれぞれ格納されている値は、パケットメモリ３１１1の同じアドレス識別子が指すアドレス領域に格納されたページがアクセス制御部３１５1に読み出されるたび、“１”ずつ減算されるようになっている。この領域に格納される値はパケットメモリ３１１1の同じアドレス識別子が指す領域に格納されたページを送信する送信先の数から“１”減算したものであり、送信先が１つであれば値“０”が、送信先が７つであれば値“６”が格納されるようになっている。ソースマルチキャストメモリ３１４1の値“０”が格納されているアドレス領域を示すアドレス識別子が、パケットメモリ３１１1で示すアドレス領域は、空きアドレス領域として使用されるようになっている。したがって、複数の転送先へページを送信する場合には、このソースマルチキャストメモリ３１４1のアドレス領域に格納される値が“０”になるまで、アクセス制御部３１５1はパケットメモリ３１１1からの該当するページの読み出しを行うことができる。
【００５０】
図７は、図６に示したフリーリストメモリとソースマルチキャストメモリを用いたパケットメモリのフリーアドレスを管理する処理について表わしたものである。パケット受信部３０１1のフリーリストメモリ３１３1には、フリーリストとしてパケットメモリ３１１1のフリーアドレス同士のリンクが表わされている。フリーアドレス同士のリンクは、格納されたフリーアドレスをアドレス識別子として、これが指すフリーリストメモリ３１３1のアドレス領域に、まだフリーリストに格納されていないフリーアドレスを格納して作成するようになっている。このときパケット受信部３０１1のソースマルチキャストメモリ３１４1のアドレス領域にはそれぞれ初期値が格納されている。パケット受信部３０１1のアクセス制御部３１５1は、アクセス制御部３１５1内で保持するフリーヘッドポインタ４０１とフリーテールポインタ４０２の値を利用して、フリーリストの更新を行うようになっている。フリーヘッドポインタ４０１はこのフリーリストの先頭のアドレス識別子を示す値を保持し、フリーテールポインタ４０２はこのフリーリストの最後のアドレス識別子を示す値を保持するようになっている。図７では、フリーヘッドポインタ４０１には値“ａ0”が、フリーテールポインタ４０２には値“ａn”がそれぞれ保持されている。
【００５１】
図８は、図７に示したフリーヘッドポインタで保持されている値が更新される処理を表わしたものである。図８で図７と同一の部分には同一の符号を付しており、これらの説明を適宜省略する。パケット受信部３０１1のパケットライト制御部３１６1から空きのページアドレスの更新要求を受信すると、アクセス制御部３１５1は、フリーヘッドポインタ４０１に保持されている値の更新処理を行う。フリーヘッドポインタ４０１の更新処理は、まず、フリーヘッドポインタ４０１で保持されている値“ａ0”をアドレス識別子として、フリーリストメモリ３１３1のアドレス領域４０３をリードして、格納されている値“ａ1”を取得する。この値は、次のリンクのフリーアドレス“ａ1”と一致している。この値“ａ1”を新しいフリーヘッドポインタ４０１の値として更新および保持する。パケットライト制御部３１６1からの空きのページアドレスの更新要求は、たとえば、パケットライト制御部３１６1からアクセス制御部３１５1へフリーアドレス要求が送信された場合に送られる。
【００５２】
図９は、図８に示したフリーテールポインタで保持されているアドレス識別子が更新される処理を表わしたものである。図９で図８と同一の部分には同一の符号を付しており、これらの説明を適宜省略する。パケットリード制御部３１７1から、特定のアドレス識別子４０４を示す値“ａ0”のフリーリストへの追加要求を受信するとアクセス制御部３１５1は、フリーテールポインタ４０２の更新処理を行う。フリーテールポインタ４０２の更新処理は、まずソースマルチキャストメモリ３１４1のアドレス識別子“ａ0”で示されるアドレス領域４０５をリードして、格納されている値が値“０”であれば、フリーリストに追加しても良いと判定する。フリーリストに追加する場合、フリーテールポインタ４０２に格納されている値“ａn”をライトアドレスとして、これをアドレス識別子として示すフリーリストメモリ３１３1のアドレス領域４０６にアドレス識別子４０４を示す値“ａ0”をライトする。更に、フリーテールポインタ４０２は、値“ａ0”に更新し保持する。この後フリーテールポインタ４０２が示すフリーリストメモリ３１３1のアドレス領域４０７に格納されている値を削除し、何も格納されていない状態に更新する。
【００５３】
図１０は、図６に示すパケットメモリの領域にパケットを分割したページを格納する場合にパケットリンクメモリが更新される処理を表わしたものである。パケットライト制御部３１６1内部の図示しない一時記憶領域には、リンクヘッドポインタ４１１の値とリンクテールポインタ４１２の値がそれぞれ記憶されている。これらの領域には、初期時には何も記憶されていない。パケットライト制御部３１６1はパケットを受信すると、まずアクセス制御部３１５1からフリーアドレス４１３を取得して図示しない一時記憶領域に保持する。このフリーアドレス４１３は、図７に示したアクセス制御部３１５1のフリーヘッドポインタ４０１が保持している値であり、フリーアドレス４１３が取得されるとアクセス制御部３１５1は、図８で説明したフリーヘッドポインタ４０１の更新処理を行うようになっている。なお、この図では、フリーアドレス４１３として更新処理を行った後の値“ａ1”を取得している。このフリーアドレス４１３の取得はパケットを受信してからでは処理に遅延が発生するので、受信前に予め取得しておくことが望ましい。
【００５４】
パケットライト制御部３１６1はリンクヘッドポインタ４１１とリンクテールポインタ４１２の値を取得したフリーアドレス４１３の値にそれぞれ更新する。ただし、リンクヘッドポインタ４１１の更新を行うのは、これに値が何も記憶されていない場合である。このときアドレス識別子を示す値を格納する領域を２つ持ったライトアドレス４１４を用意して、リンクテールポインタ４１２の更新前の値と、更新後の値をそれぞれ格納する。ここでは説明上、リンクテールポインタ４１２の更新前の値を格納した領域を第１のアドレス領域４１５、更新後の値を格納した領域を第２のアドレス領域４１６とする。したがって、図１０では第１のアドレス領域４１５にはアドレス識別子を示す値は格納されず、第２のアドレス領域４１６にはアドレス識別子を示す値“ａ1”が格納される。
【００５５】
次にパケットライト制御部３１６1は、受信したパケットをページ単位に分割した先頭ページと、このライトアドレス４１４と、ライトコマンドをアドレス制御部３１５1へ送信する。アドレス制御部３１５1はライトコマンドを受信すると、ライトアドレスが有効か否かと、このリンクアドレスが、ライトアドレスと関連し、有効であるか否かを判別するようになっている。これらを受け取ったアドレス制御部３１５1は、まずライトアドレス４１４の第２のアドレス領域４１６に格納された値“ａ1”をアドレス識別子としたときパケットメモリ３１１1の該当するアドレス領域に先頭ページを格納する。また、ライトアドレス４１４の第１のアドレス領域４１５にはアドレス識別子が格納されていないので、第２のアドレス領域４１６に格納された値“ａ1”をアドレス識別子としたときパケットリンクメモリ３１２1の該当するアドレス領域４１７に値“０”を格納する。値“０”が格納されているパケットリンクメモリ３１２1のアドレス領域を示すアドレス識別子は、あるパケットを分割したときの最終ページが格納されているパケットメモリ３１１1のアドレス領域を示すアドレス識別子と同一である。
【００５６】
図１１は図１０で説明した処理の後に続けてページがパケットメモリに格納される場合に、パケットリンクメモリが更新される処理を表わしたものである。図１１で図１０と同一の部分には同一の符号を付しており、これらの説明を適宜省略する。まず、パケットライト制御部３１６1が取得したフリーアドレス４１３の値を取得し、リンクテールポインタ４１２の値を更新する。図１１では、フリーアドレス４１３の値は値“ａ3”であり、リンクテールポインタ４１２の値は値“ａ1”から値“ａ3”に更新される。したがって、ライトアドレス４１４の第１のアドレス領域４１５には値“ａ1”が、第２のアドレス領域４１６には値“ａ3”が格納されている。図１０で説明したと同様に格納するページと、ライトアドレス４１４と、ライトコマンドを受け取ったアドレス制御部３１５1は第２のアドレス領域４１６に格納されている値“ａ3”をアドレス識別子として示すパケットメモリ３１１1のアドレス領域にページを格納する。次に、送信されたライトアドレス４１４の第１のアドレス領域４１５に、値が格納されているので、これをアドレス識別子として示すパケットリンクメモリ３１２1のアドレス領域４１７に第２のアドレス領域４１６に格納されている値“ａ3”を格納する。更に第２のアドレス領域４１６に格納されている値“ａ3”をアドレス識別子として示すパケットリンクメモリ３１２1のアドレス領域４１８に値“０”を格納する。
【００５７】
図１２は図１１で説明した処理の後に続けてページがパケットメモリに格納される場合に、パケットリンクメモリが更新される処理を表わしたものである。図１２で図１１と同一の部分には同一の符号を付しており、これらの説明を適宜省略する。まず、パケットライト制御部３１６1が取得したフリーアドレス４１３の値を取得し、リンクテールポインタ４１２の値を更新する。図１２では、フリーアドレス４１３の値は値“ａ5”であり、リンクテールポインタ４１２の値は値“ａ3”から値“ａ5”に更新される。したがって、ライトアドレス４１４の第１のアドレス領域４１５には値“ａ3”が、第２のアドレス領域４１６には値“ａ5”が格納されている。図１０で説明したと同様に格納するページと、ライトアドレス４１４と、ライトコマンドを受け取ったアドレス制御部３１５1は第２のアドレス領域４１６に格納されている値“ａ5”をアドレス識別子として示すパケットメモリ３１１1のアドレス領域にページを格納する。次に、送信されたライトアドレス４１４の第１のアドレス領域４１５に、値が格納されているので、これをアドレス識別子として示すパケットリンクメモリ３１２1のアドレス領域４１８に第２のアドレス領域４１６に格納されている値“ａ5”を格納する。更に第２のアドレス領域４１６に格納されている値“ａ5”をアドレス識別子として示すパケットリンクメモリ３１２1のアドレス領域４１９に値“０”を格納する。
【００５８】
図１３は図１２で説明した処理の後に続けて最終ページがパケットメモリに格納される場合に、パケットリンクメモリが更新される処理を表わしたものである。図１３で図１２と同一の部分には同一の符号を付しており、これらの説明を適宜省略する。まず、パケットライト制御部３１６1が取得したフリーアドレス４１３の値を取得し、リンクテールポインタ４１２の値を更新する。図１２では、フリーアドレス４１３の値は値“ａ7”であり、リンクテールポインタ４１２の値は値“ａ5”から値“ａ7”に更新される。したがって、ライトアドレス４１４の第１のアドレス領域４１５には値“ａ5”が、第２のアドレス領域４１６には値“ａ7”が格納されている。
【００５９】
ここで図１０で説明したと同様に格納するページと、ライトアドレス４１４およびライトコマンドを受け取ったアドレス制御部３１５1は、第２のアドレス領域４１６に格納されている値“ａ5”をアドレス識別子として示すパケットメモリ３１１1のアドレス領域にページを格納する。次に、送信されたライトアドレス４１４の第１のアドレス領域４１５に、値が格納されているので、これをアドレス識別子として示すパケットリンクメモリ３１２1のアドレス領域４１９に第２のアドレス領域４１６に格納されている値“ａ7”を格納する。更に第２のアドレス領域４１６に格納されている値“ａ7”が示すパケットリンクメモリ３１２1のアドレス領域４２０に値“０”を格納する。リンクヘッドポインタ４１１に保持されているアドレス識別子を先頭にして、アドレス識別子が示すパケットリンクメモリ３１２1のアドレス領域に格納されている値をアドレス識別子として次のアドレス領域に格納されている値を取得することを、値“０”が取得されるまで続けることで、パケットを分割したページがパケットメモリ３１１1に格納されている順番が確認できる。したがって、図１３に示したリンクヘッドポインタ４１１とパケットリンクメモリ３１２1からは、パケットメモリ３１１1のアドレス識別子“ａ1”、“ａ3”、“ａ5”、“ａ7”で示されるアドレス領域を順番に使用して、１つのパケットを分割したページが格納されていることが確認できる。最終的に、このようなアドレス識別子のリンクであるアドレスリンクが形成されることが分かる。
【００６０】
パケットライト制御部３１６1はパケットを分割した最終ページをアクセス制御部３１５1へ送信すると、内部の一次格納領域にパケットオブジェクト４２１を作成し、これをパケットリード制御部３１７1へ送信する。その際に、パケットオブジェクト４２１にはパケットの先頭が格納されているアドレス領域を示すアドレス識別子として、リンクヘッドポインタ４１１が保持しているアドレス識別子を示す値を格納するようになっている。
【００６１】
図１４は図５に示したパケット送信部内に配置された各メモリ内部の構成とその値を対比して表したものである。パケット送信部３０２1には、リンクメモリ３３２1と、アカウントメモリ３３３1が備えられていて、これらにはパケットリンクメモリ３１２1（図４）と同じアドレス識別子“ａ0〜ａn”で表わされる（ｎ＋１）個のアドレス領域がそれぞれ設けられている。リンクメモリ３３２1は全てのアドレス領域が、ラストビット４３１と、リンクアドレス４３２の値を格納するそれぞれのフィールドから構成されている。アカウントメモリ３３３1も同様に全てのアドレス領域が、フリービット４３３と、マルチキャストカウント４３４と、送信元番号４３５の値を格納するそれぞれのフィールドから構成されている。
【００６２】
ラストビット４３１のフィールドの値は、パケットを分割した最終ページのパケットメモリ３３１1への格納状態を示すようになっている。詳細には、このラストビット４３１と同じアドレス領域のリンクアドレス４３２のフィールドに格納されている値をアドレス識別子として指す、パケットメモリ３３１1のアドレス領域にパケットを分割した最終ページが格納されているか否かを示すようになっている。ラストビット４３１のフィールドの値が値“１”の場合は、最終ページが格納されていることを示しており、値“０”の場合は、最終ページが格納されていないことをそれぞれ示す。リンクアドレス４３２のフィールドに格納されている値は、パケットメモリ３３１1のアドレス領域の並び順を示すもので、空きアドレス領域とページに分割されたパケットの格納順番を表わすようになっている。フリービット４３３のフィールドに格納された値は、パケットメモリ３３１1の空き状態を示すものである。これに値“１”が格納されているアドレス領域を示すのと同じアドレス識別子が示すパケットメモリ３３１1のアドレス領域は空きアドレス領域であることを示し、値“０”が格納されている場合には空きアドレス領域ではないことを示す。マルチキャストカウント４３４のフィールドには、パケットメモリ３３１1の対応するアドレス領域に格納されたページをまだ送信していない送信先の数から“１”を減算した値が格納される。送信元番号４３５のフィールドには、バックプレッシャー制御に対応したパケットメモリ３３１1の対応するアドレス領域に格納されたページの転送元を示すカード番号が格納される。このカード番号とは、図１に示した第１〜第Ｎの回線インタフェース処理部２１２1〜２１２N、第１〜第Ｍの宛先解決処理部２１３1〜２１３Mをそれぞれ固有に識別する番号である。
【００６３】
初期状態では、ラストビット４３１、マルチキャストカウント４３４、送信元番号４３５のそれぞれのフィールドおよびパケットメモリ３３１1（図５）の全てのアドレス領域は何も格納されない空きアドレス領域となっている。リンクアドレス４３２のフィールドには図６に示すフリーリストメモリ３１３1のようにアドレス識別子がそれぞれ格納され、先頭と最後のアドレスはアクセス制御部３３５1にフリーヘッドポインタ４３７とフリーテールポインタ４３８として保持されるようになっている。リンクアドレス４３２へのアドレス識別子を示す値の格納方法については、既に図６で説明したフリーリストメモリ３１３1と同様であるので、ここでは説明を省略する。フリービット４３３のフィールドには全て値“１”が格納され、パケットメモリの全てが空きアドレス領域であることを示すようになっている。また、パケット送信部３０２1には、ユーザ設定メモリであるデスティネーションメモリ３３４1が配置されているが他のメモリとはアドレス識別子が関連せず、出力識別番号に対応してマルチキャストカウントの値が保存されている。このマルチキャストカウントの値とは、パケット送信部３０２1の内部で、パケットをコピーする回数であるデスティネーションマルチキャスト数を指している。スイッチ処理部２１４を介して受信したパケットの先頭ページに含まれる出力識別番号が、このメモリをリードする際のアドレス識別子となる。但し、受信したページが宛先解決パケットページと判別された場合には、デスティネーションメモリ３３４1はリードされないようになっている。
【００６４】
図１４ではリンクメモリ３３２1とアカウントメモリ３３３1を使用して、パケットメモリ３３１1にページを格納したときにそれぞれ値が格納された状態を表わしている。パケット送信部３０２1のパケットライト制御部３３６1内部の図示しない一時格納領域にはパケットヘッドポインタ４３６の値が記憶されている。パケットヘッドポインタ４３６にはアドレス識別子を示す値“ａ0”が記憶されていて、パケットメモリ３３１1内のこの値をアドレス識別子として示されるアドレス領域にパケットを分割した際の先頭ページが格納されていることになる。このアドレス領域からリンクアドレス４３２をページの格納順にたどっていくと、アドレス識別子“ａ2”が示すアドレス領域４４１にラストビット４３１として値“１”が格納されている。このとき、このアドレス識別子“ａ2”が示すアドレス領域にリンクアドレス４３２として格納されている値“ａ3”をアドレス識別子として示すパケットメモリ３３１1のアドレス領域にパケットを分割した最終ページが格納されている。よってパケットヘッドポインタ４３６、ラストビット４３１、リンクアドレス４３２を参照することでアドレス識別子“ａ0”、“ａ1”、“ａ2”、“ａ3”の順番で示されるパケットメモリ３３１1のアドレス領域に分割されたページが格納されたことがわかる。
【００６５】
アドレス識別子“ａ0”、“ａ1”、“ａ2”、“ａ3”が示すパケットメモリ３３１1のアドレス領域にはそれぞれページが格納されているので、フリービット４３３には、空き領域ではないことを示す値“０”がそれぞれ設定されている。またこれらのアドレス識別子で示されるアドレス領域には、マルチキャストカウント４３４としてデスティネーションメモリ３３４1から取得したマルチキャスト数が、送信元番号４３５には送信元を示すカード番号がそれぞれ格納されるようになっている。一方アクセス制御部３３５1は、フリーヘッドポインタ４３７の値とフリーテールポインタ４３８の値を保持している。パケットライト制御部３３６1はパケットを分割したページをアクセス制御部３３５1に全て送信すると、図示しない内部の一時格納領域内に図示しないパケットオブジェクトを作成して、これをパケットリード制御部３３７1に送信する。その際、このパケットオブジェクトにパケットの先頭が格納されているアドレス領域を示すアドレス識別子の値として、パケットヘッドポインタ４３６の値を格納する。
【００６６】
以上説明したように、パケット処理装置２１１に受信されたパケットは、所定長のページ単位で管理されるようになっている。ここでは図１に示した第１の回線インタフェース処理部２１２1に配置された各種メモリについて説明したが、第１〜第Ｎの回線インタフェース処理部２１２1〜２１２Nはそれぞれ同様の構造を持っている。
【００６７】
次に、図１に示したスイッチ処理部２１４を介して転送される各ページのデータ構成を説明する。ページには宛先要求情報を格納する宛先要求パケットページ、宛先解決情報を格納する宛先解決パケットページ、分割したパケットを格納する転送パケットページの３種類が存在する。転送パケットページには、更にパケットのヘッダ部分を格納する先頭ページと、それ以降の部分を所定長以下に分割したものを格納するページの２種類が存在する。
【００６８】
図１５は宛先要求パケットページのデータ構成を表わしたものである。宛先要求パケットページ５０１は、このページの用途を示すページ種別５０２と、このページが連続したページの最後であるか否かを示すラストビット５０３と、パケットの全体長を示すパケット長５０４と、パケットが入力された論理ポート番号などを示す入力識別番号５０５と、パケットが入力された物理ポート番号を示す入力ポート５０６と、パケットを受信した回線インタフェース処理部を示す入力カード５０７と、受信したパケットのプロトコル情報を示すパケット種別５０８と、回線インタフェース内でパケットが格納されているアドレス識別子を示すポインタ情報５０９と、パケットのヘッダであるパケットヘッダ５１０とで構成されている。ここで、ページ種別５０２にはこのページが宛先要求パケットページ５０１であることを示す情報が組み込まれている。
【００６９】
図１６は宛先解決パケットページのデータ構造を表わしたものである。図１６で図１５と同一の部分には同一の符号を付しており、これらの説明を適宜省略する。宛先解決パケットページ５２１は、ページ種別５０２と、ラストビット５０３と、パケット長５０４と、パケット種別５０８と、ポインタ情報５０９と、このパケットを出力する回線インタフェース処理部で出力する際の処理番号を示す出力識別番号５２２と、このパケットの転送先を示すカード番号である出力カード５２３と、マルチキャストを行う際にパケットを出力する回線インタフェース処理部の数を示すマルチキャストカウント５２４と、更新されたパケットヘッダである更新パケットヘッダ５２５と、このパケットを出力する回線インタフェース処理部内での転送または廃棄のプライオリティ制御に用いるプライオリティ５２６とで構成されている。ここで、ページ種別５０２にはこのページが宛先解決パケットページ５２１であることを示す情報が組み込まれている。また、更新パケットヘッダ５２５は、図１５で示したパケットヘッダ５１０が更新されたものである。
【００７０】
図１７はパケットのヘッダ部分を格納する転送パケットページのデータ構造を表わしたものである。図１７で図１５および図１６と同一の部分には同一の符号を付しており、これらの説明を適宜省略する。転送パケットページ５３１は、ページ種別５０２と、ラストビット５０３と、パケット長５０４と、パケット種別５０８と、出力識別番号５２２と、更新パケットヘッダ５２５と、プライオリティ５２６とで構成されている。更新パケットヘッダ５２５以外の予め定められた所定の情報は、転送パケットページのページヘッダの情報となっている。
【００７１】
図１８はパケットのヘッダ部分以外を格納する転送パケットページのデータ構成を表したものである。転送パケットページ５４１は、ページ種別５０２と、ラストビット５０３と、パケットデータ５４２とで構成されている。パケットを構成するデータが、パケットデータ５４２を格納する領域として予め用意された領域に満たない場合には、例えば意味のないデータを余った領域に格納するようになっている。このような場合であっても、パケット長５０４（図１７）の値等を用いることによって、ページからパケットを再生することができるようになっている。転送パケットページ５３１、５４１のページ種別５０２にはこのページが転送パケットページ５３１、５４１のいずれかであることを示す情報が組み込まれている。
【００７２】
以上で説明したそれぞれのページは同じ固定長となっており、パケットのヘッダ情報のうちで最大長のものが格納できる長さに設定されている。また、パケットを分割した所定長のページとして扱われる場合等には、これらのいずれかと同様の構成、またはこれと異なる予め定められた構成で格納されるようになっている。
【００７３】
以上説明したパケット処理装置２１１（図１）を使用して、パケットのマルチキャスト転送処理をユニキャスト転送処理と比較して説明を行う。これは、ユニキャスト転送とマルチキャスト転送では送信先の数が異なる場合があるが、処理には共通した部分が多いためである。そこで、まず送信先が常に１つであるユニキャスト転送の一例として、図２に示した通信端末２２１12から、通信端末２２１NKを宛先としたパケットがパケット処理装置２１１へ送信された場合について説明を行う。このパケットのヘッダには通信端末２２１NKを送信先として示すアドレスが格納されている。
【００７４】
図１９は図１に示したパケット処理装置を使用してパケットのユニキャスト転送処理を行う際の処理の概要を表したものである。第１の回線インタフェース処理部２１２1はパケットが入力されると（ステップＳ６０１）、このパケットのヘッダから宛先要求情報として宛先要求パケットページ５０１を作成し第１の宛先解決処理部２１３1に転送する（ステップＳ６０２）。第１の宛先解決処理部２１３1はこの宛先要求パケットページ５０１に含まれるヘッダを有するパケットの宛先の決定およびヘッダの更新処理を行う。次に、このヘッダ処理を行ったヘッダと出力識別番号と装置内での転送先である出力カードの情報を含んだ宛先解決情報として宛先解決パケットページ５２１を作成し、第１の回線インタフェース処理部２１２1へ転送する（ステップＳ６０３）。
【００７５】
このパケットの宛先は、通信端末２２１NKであるため、第Ｎの回線インタフェース処理部２１２Nのポート２１６NKから送信されることになる。したがって、出力識別番号は、第Ｎの回線インタフェース処理部２１２Nのポート２１６NKに対応した値であり、出力カードは第Ｎの回線インタフェース処理部２１２Nを示す値である。宛先解決パケットページ５２１を受け取った第１の回線インタフェース処理部２１２1は出力カードの値が示す第Ｎの回線インタフェース処理部２１２Nへ転送パケットページ５３１、５４１を用いてパケット全体を転送する（ステップＳ６０４）。第Ｎの回線インタフェース処理部２１２Nは、パケットを構成する全ての転送パケットページ５３１、５４１を受信および格納し、出力識別番号に対応するポート２１６NKを選択してパケットを出力する（ステップＳ６０５）。このようにして、通信端末２２１12から通信端末２２１NKへのパケットのユニキャスト転送が完了する。
【００７６】
次に、以上説明したパケットのユニキャスト転送について、更に詳細な処理の流れについて説明する。また、この説明後にマルチキャスト転送の処理の流れおよびユニキャスト転送とマルチキャスト転送との処理の違いについて、説明を行う。
【００７７】
図２０は、図１９に示したステップＳ６０１の処理を詳細に表わしたものである。パケット受信部３０１1（図４）のパケットライト制御部３１６1は、パケットの受信前にアクセス制御部３１５1へフリーアドレスの要求を行い（ステップＳ７０１）、これに対して通知されるフリーアドレスを取得する（ステップＳ７０２）。パケットライト制御部３１６1は、ポート３０５12（図４）から受信したパケットを分割して、ページと呼ばれる固定長のデータを生成する。このときパケット全体を受信しなくとも、ページを１個生成することが可能なだけ受信した段階でページを生成し、ライトコマンドおよびライトアドレスと共にこの生成したページをアクセス制御部３１５1へ送信する（ステップＳ７０３）。ライトアドレスは、予めアクセス制御部３１５1から通知され取得したフリーアドレスを指している。この後、パケットライト制御部３１６1は次のフリーアドレスを取得するためにアクセス制御部３１５1へフリーアドレス要求を行い（ステップＳ７０４）、アクセス制御部３１５1から通知されるフリーアドレスを取得する（ステップＳ７０５）。受信するパケットの最終データを含むページを生成し、ライトコマンドおよびライトアドレスと共にこの生成したページをアクセス制御部３１５1へ送信し（ステップＳ７０６）、要求したフリーアドレスをアクセス制御部３１５1から取得する（ステップＳ７０７、Ｓ７０８）。
【００７８】
パケットライト制御部３１６1は、パケットの最終データを含むページのライト制御が完了すると、宛先要求オブジェクト（パケットオブジェクト）をパケットリード制御部３１７1へ送信する（ステップＳ７０９）。この宛先要求オブジェクトは、図１３で示したパケットオブジェクト４２１と同様の構成である。また、ライト制御の完了とは、たとえばライトコマンドの送信から予め定められた時間が経過した場合である。送信する宛先要求オブジェクトには、パケットのパケット長とパケットの先頭ページと共に送信したライトアドレスが組み込まれている。つまり、このライトアドレスを用いてパケットリンクメモリ３１２1を参照することにより、パケットを構成するページ同士の繋がりを示すリンクリストを知ることが可能になっている。また、宛先要求オブジェクトには予め定められた宛先情報として、第１の宛先解決処理部２１３1を示すカード番号の値が組み込まれるようになっている。
【００７９】
このようにして、パケットを受信すると（ステップＳ９０１）、これに対応した受信パケットの格納処理が行われるようになっている（ステップＳ９０２）。図では、パケットライト制御部３１６1が受信したパケットから２つのページを作成して、アクセス制御部３１５1へそれぞれ送信している（ステップＳ７０３、Ｓ７０６）。しかし、パケットの長さによっては、３つ以上のページに分割される場合がある。このような場合には、ステップＳ７０３〜Ｓ７０５の処理を繰り返すことによって、ページの格納を行うようになっている。またパケットの最終データがページの固定長に満たない場合には、パケットライト制御部３１６1が足りない部分に意味のないデータを挿入して、ページを固定長に合わせるようになっている。
【００８０】
図２１は、パケットリード制御部が宛先要求オブジェクトを受信してから、図１９で示したステップＳ６０２で宛先要求パケットページを第１の宛先解決処理部に転送するまでの処理を詳細に表わしたものである。パケットリード制御部３１７1は、パケットライト制御部３１６1から宛先要求オブジェクト（パケットオブジェクト）を受信すると（ステップＳ７１１）、スイッチ処理部２１４に対して組み込まれている宛先情報の値が示す第１の宛先解決処理部２１３1へのページ転送要求を送信する（ステップＳ７１２）。ここで、宛先情報の値は第１の宛先解決処理部２１３1を示すカード番号である。このページ転送が可能な場合、スイッチ処理部２１４はパケットリード制御部３１７1へページ転送許可を送信し（ステップＳ７１３）、第１の宛先解決処理部２１３1へページ転送通知を送信する（ステップＳ７１４）。ページ転送許可を受信したパケットリード制御部３１７1は、宛先要求パケットのページ転送要求をアクセス制御部３１５1に対して送信する（ステップＳ７１５）。アクセス制御部３１５1は、パケットの先頭ページを含んだ宛先要求情報として宛先要求パケットページ５０１（図１５）を生成し、第１の宛先解決処理部２１３1へ転送する（ステップＳ７１６）。
【００８１】
この宛先要求パケットページ５０１を受信した第１の宛先解決処理部２１３1は、これに含まれているパケットヘッダ５１０（図１５）からパケットの宛先と装置内での転送先を、第１の宛先対応テーブル２１７1（図１）に備えられた出力識別番号対応表とカード番号対応表からそれぞれ検索する。そして、宛先要求情報としての宛先要求パケットページ５０１に対して、１つの宛先解決情報としての宛先解決パケットページ５２１（図１６）を作成する。宛先解決パケットページ５２１には検索された宛先へパケットを送信するポートに対応した出力識別番号５２２と、このポートが存在する装置内での転送先を示すカード番号のである出力カード５２３が組み込まれている。パケットの宛先は通信端末２２１NKであるので、出力識別番号５２２の値はポート３０６NKを示す値であり、出力カード５２３の値は第Ｎの回線インタフェース処理部２１２Nを示す値である。また、これに含まれている更新パケットヘッダ５２５（同図）は、パケットヘッダ５１０が第１の宛先解決処理部２１３1によって更新されたものである。
【００８２】
図２２は、図１９に示したステップＳ６０３の処理の流れを詳細に表わしたものである。第１の宛先解決処理部２１３1は、宛先解決パケットページ５２１を第１の回線インタフェース処理部２１２1へ転送するためのページ転送要求をスイッチ処理部２１４へ送信する（ステップＳ７２１）。このページ転送が可能な場合、スイッチ処理部２１４はパケットライト制御部３３６1へページ転送通知を送信し（ステップＳ７２２）、第１の宛先解決処理部２１３1へページ転送許可を送信する（ステップＳ７２３）。パケットライト制御部３３６1は、スイッチ処理部２１４からページ転送通知を受信するとフリーアドレス要求をアクセス制御部３３５1へ送信し（ステップＳ７２４）、アクセス制御部３３５1からこれに対応したフリーアドレスを受信する（ステップＳ７２５）。パケットライト制御部３３６1は、ページ転送前に通知があるのでこの通知を受信してから実際にページが転送されるまでの間にフリーアドレスを取得すればよい。
【００８３】
第１の宛先解決処理部２１３1は、スイッチ処理部２１４からページ転送許可を受信すると第１の回線インタフェース処理部２１２1へ宛先解決パケットページ５２１（図１６）を転送する（ステップＳ７２６）。この宛先解決パケットページ５２１はアクセス制御部３３５1へ転送されると共に、パケットライト制御部３３６1へも転送される（ステップＳ７２７）。パケットライト制御部３３６1は、ステップＳ７２５で取得したフリーアドレスをライトアドレスとしてアクセス制御部３３５1へ送信する（ステップＳ７２８）。アクセス制御部３３５1は受信したライトアドレスを用いて宛先解決パケットページ５２１をパケットメモリ３３１1（図５）に格納する。更に、パケットライト制御部３３６1は、宛先解決パケット５２５のページ種別５０２の値から、これを宛先解決パケットページ５２１と判別し、受信した宛先解決パケットページ５２１から宛先解決オブジェクト（パケットオブジェクト）を生成する。そして、作成した宛先解決オブジェクトをパケット受信部３０１1（図４）に配置された、パケットライト制御部３１６1に送信する（ステップＳ７２９）。
【００８４】
図２３は、図７のステップＳ７２９に示したパケット送信部に受信された宛先解決パケットページをパケット受信部に転送する処理の流れを表わしたものである。パケット受信部３０１1は、スイッチ処理部２１４を介してページを受信することができないため、パケット送信部３０２1で受信したページが次に説明する処理で転送される。パケット受信部３０１1のパケットライト制御部３１６1は、パケット送信部３０２1のパケットライト制御部３３６1から宛先解決オブジェクト（パケットオブジェクト）を受信すると（ステップＳ７３１）、ページリード要求をパケット送信部３０２1のパケットリード制御部３３７1へ送信する（ステップＳ７３２）。これを受信したパケットリード制御部３３７1は、ページリードコマンドをパケット送信部３０２1のアクセス制御部３３５1に送信する（ステップＳ７３３）。アクセス制御部３３５1は、宛先解決パケットページ５２１をパケット送信部３０２1のパケットメモリ３３１1からリードし、これをパケット受信部３０１1のパケットライト制御部３１６1へ転送する（ステップＳ７３４）。
【００８５】
このようにして、パケット受信部３０１1側で受信した宛先解決パケットページ５２１をパケットライト制御部３１６1は、ライトコマンドおよびライトアドレスと一緒にパケット受信部３０１1のアクセス制御部３１５1へ送信する（ステップＳ７３５）。アクセス制御部３１５1は受信した宛先解決パケットページ５２１を一緒に受信したライトコマンドおよびライトアドレスに従って、パケットメモリ３１１1に格納する。この後、パケットライト制御部３１６1はアクセス制御部３１５1に対してフリーアドレス要求を行い（ステップＳ７３６）、フリーアドレスを取得する（ステップＳ７３７）。更に、宛先解決オブジェクトをパケットリード制御部３１７1へ送信する（ステップＳ７３８）。この宛先解決オブジェクトには、これが関連するパケットの先頭アドレス、宛先解決パケットページが格納されたページアドレス、マルチキャストカウントおよび宛先となる第Ｎの回線インタフェース処理部２１２Nを示すカード番号等が組み込まれている。
【００８６】
図２４は、図１９のステップＳ６０４で示した、第Ｎの回線インタフェース処理部のパケット送信部へパケットを転送する処理を詳細に表わしたものである。パケットリード制御部３１７1は、宛先解決オブジェクト（パケットオブジェクト）を受信すると（ステップＳ７４１）、パケットをパケット送信部３０２Nへ転送するためのページ転送要求を、スイッチ処理部２１４へ送信する（ステップＳ７４２）。このページ転送が可能な場合、スイッチ処理部２１４はパケットリード制御部３１７1へページ転送許可を送信し（ステップＳ７４３）、第Ｎの回線インタフェース処理部２１２Nのパケット送信部３０２Nへページ転送通知を送信する（ステップＳ７４４）。パケットリード制御部３１７1は、ページ転送許可を受信すると宛先解決オブジェクトに含まれる宛先解決パケットページが格納されているページアドレスをリードアドレスとして、パケットの先頭ページの転送要求をアクセス制御部３１５1へ送信する（ステップＳ７４５）。アクセス制御部３１５1は、この要求に従って宛先解決パケットページ５２１に組み込まれた更新パケットヘッダ５２５を組み込んだ転送パケットページ５３１（図１７）を作成し、第Ｎの回線インタフェース処理部２１２Nのパケット送信部３０２Nへ転送する（ステップＳ７４６）。すなわち、パケットのヘッダの代わりに宛先解決パケットページ５２１に組み込まれた更新パケットヘッダ５２５が置き換えられて転送されるようになっている。
【００８７】
このとき、パケットリード制御部３１７1はパケットを構成する全てのページを転送するために、次にリードすべきパケットのページがパケットメモリ３１１1に存在するか否かを判別する。この判別処理については、図２４では図示および説明を省略しているが、パケットリード制御部３１７1は、パケットオブジェクトに格納されているパケットの先頭アドレスでパケットリンクメモリ３１２1へのリード要求を行うことで、アクセス制御部３１５1から次のページのアドレスを示す値を受信する（ステップＳ７４７）。この受信した値が値“０”以外であればまだ次のページが存在すると判別し、値“０”である場合には次のページは存在しないものと判別する。パケットを構成するページが、パケットメモリ３１１1にまだ存在すると判別した場合、パケットリード制御部３１７1およびアクセス制御部３１５1は、受信した値をリードアドレスとして用いて、パケット送信部３０２Nへパケットを構成するページを転送する処理を行う。したがって、パケットリード制御部３１７1はスイッチ処理部２１４へページ転送要求を送信し（ステップＳ９１１）、スイッチ処理部２１４はページ転送許可とページ転送通知を、それぞれパケットリード制御部３１７1とパケット送信部３０２Nへ送信する（ステップＳ９１２、Ｓ９１３）。ページ転送許可を受信したパケットリード制御部３１７1はアクセス制御部３１５1へページ転送要求を送信し（ステップＳ９１４）、アクセス制御部３１５1はこれに従ってパケット送信部３０２Nへページの転送を行う（ステップＳ９１５）。図では、２つのページでパケットが構成される場合を示しているが、３つ以上のページで構成されるパケットの場合は、ステップＳ７４２〜Ｓ７４７の処理を必要な回数繰り返すことで、パケット全体の転送をパケット送信部３０２Nへ行うようになっている。また、リードアドレスを用いてページを読み出す際、パケットオブジェクトに含まれているマルチキャストカウントの値から“１”減算した値をソースマルチキャストメモリ３１４1に格納し、これを読み出して再格納する処理を行う。ここではユニキャスト転送であるため、まずマルチキャストカウントの値“１”から“１”を減算した値“０”が格納され、値“０”が再格納されるようになっている。これについては後ほどマルチキャスト転送の場合と比較して詳細な説明を行う。
【００８８】
図２５は、図１９のステップＳ６０４で示した第Ｎの回線インタフェース処理部のパケット送信部での処理の流れを詳細に表わしたものである。第１の回線インタフェース処理部２１２1のパケット受信部３０１1は第Ｎの回線インタフェース処理部２１２Nへのページ転送要求をスイッチ処理部２１４へ送信する（ステップＳ７５１）。スイッチ処理部２１４はこのページ転送が可能な場合、第Ｎの回線インタフェース処理部２１２Nのパケットライト制御部３３６Nへページ転送通知を送信し（ステップＳ７５２）パケット受信部３０１1へページ転送許可を送信する（ステップＳ７５３）。ページ転送通知を受信したパケットライト制御部３３６Nは、フリーアドレス要求をアクセス制御部３３５Nへ送信し（ステップＳ７５４）、アクセス制御部３３５Nからこれに対応したフリーアドレスを受信する（ステップＳ７５５）。パケット受信部３０１1は、ページ転送許可を受信すると第Ｎの回線インタフェース処理部２１２Nへ転送パケットページ５３１（図１７）を転送する。この転送パケットページはアクセス制御部３３５Nへ転送されると共に（ステップＳ７５６）、パケットライト制御部３３６Nへも転送される（ステップＳ７５７）。
【００８９】
パケットライト制御部３３６Nは、ステップＳ７５５で取得したフリーアドレスをライトアドレスとして、ライトコマンドと共にアクセス制御部３３５Nへ送信する（ステップＳ７５８）。アクセス制御部３３５Nは受信したライトアドレスを用いて転送パケットページ５３１をパケットメモリ３３１N（図５）に格納する。次の転送パケットページ５４１（図１８）も同様にして、パケット受信部３０１1からスイッチ処理部２１４へのページ転送要求が行われ、スイッチ処理部２１４からパケットライト制御部３３６Nとパケット受信部３０１1にそれぞれページ転送通知とページ転送許可が送信される（ステップＳ９２１〜Ｓ９２３）。ページ転送通知を受信したパケットライト制御部３３６Nは、フリーアドレス要求をアクセス制御部３３５Nへ送信し（ステップＳ９２４）、アクセス制御部３３５Nからこれに対応したフリーアドレスを受信する（ステップＳ９２５）。パケット受信部３０１1は、ページ転送許可を受信すると第Ｎの回線インタフェース処理部２１２Nへ転送パケットページ５４１を転送する。この転送パケットページはアクセス制御部３３５Nへ転送されると共に（ステップＳ９２６）、パケットライト制御部３３６Nへも転送される（ステップＳ９２７）。転送パケットページ５４１を受信したパケットライト制御部３３６Nは、ステップＳ９２５で取得したフリーアドレスをライトアドレスとして、ライトコマンドと共にアクセス制御部３３５Nへ送信する（ステップＳ９２８）。
【００９０】
このとき、パケットライト制御部３３６Nは、転送パケットページ５４１のラストビット５０３を参照して、受信した転送パケットページ５４１が最後であるか否かを判別する。ここでは、最後であるとして、パケットライト制御部３３６Nは、受信した転送パケットページ５３１からパケットオブジェクトを生成する。このとき、転送パケットページ５３１のページ種別５０２の値から、これを転送パケットページと判別し、生成したパケットオブジェクトをパケットリード制御部３３７Nに送信する（ステップＳ９２９）。パケットオブジェクトには、パケットの先頭ページが格納されているページアドレスと、パケットを宛先に出力するポートに対応した出力識別番号が含まれている。なお、図では、２つのページでパケットが構成される場合を示しているが、３つ以上のページで構成されるパケットの場合は、ステップＳ９２１〜Ｓ９２８の処理を必要な回数繰り返すことで、パケット全体の転送が行われるようになっている。
【００９１】
図２６は、図１９のステップＳ６０５で示した第Ｎの回線インタフェース処理部からパケットが出力される処理の流れを表わしたものである。第Ｎの回線インタフェース処理部２１２Nのパケット送信部３０２Nに配置されたパケットリード制御部３３７Nは、パケットオブジェクトを受信すると（ステップＳ７６１）、デスティネーションメモリ３３４Nおよび送信ポート対応表３３８Nを出力識別番号で検索する。ここで、デスティネーションメモリ３３４Nから取得するマルチキャスト数は値“１”であるので、受信したパケットオブジェクトのコピーは行われない。また、送信ポート対応表３３８Nからは、出力するポート３０６NKを示すポート情報を取得して、パケットオブジェクトに組み込む。次にこのパケットオブジェクトが示すパケットのページデータをリードするために、ページリードコマンドをアクセス制御部３３５Nへ送信する（ステップＳ７６２）。ページリードコマンドには、リード対象となるパケットメモリ３３１Nのアドレス領域を示すリードアドレスと、リードアドレスに対する処理方法が含まれている。パケットリード制御部３３７Nは、まずパケットオブジェクトに含まれるパケットの先頭ページアドレスをリードアドレスとして、ページリードコマンドをアクセス制御部３３５Nへ送信する。
【００９２】
アクセス制御部３３５Nは、ページリードコマンドに含まれるリードアドレスを用いて、パケットメモリ３３１Nからページをリードして、パケットリード制御部３３７Nへ送信する（ステップＳ７６３）。更に、このリードアドレスを用いてリンクメモリ３３２Nにアクセスし、次にリードすべきパケットのリンクアドレス４３２に値が格納されている場合はこれを取得しネクストアドレスとして、パケットリード制御部３３７Nへ送信する（ステップＳ７６４）。このとき、ネクストアドレスと一緒に、リンクメモリ３３２Nのラストビット４３１の値も、パケットリード制御部３３７Nに返送する。パケットリード制御部３３７Nは、受信したラストビット４３１の値から次のページリードコマンドの内容を決定する。ラストビット４３１の値は次のページの後にリードすべきページが存在するか否かを示す値であり、次のページの後にリードすべきページが存在しなければ、次にリードするページが最後にリードするページとなる。ここでは、次のページが最後にリードするページであると判別し、次にアクセス制御部３３５Nへ送信するページリードコマンドには、ネクストアドレスとラストビットの値を返す処理を行わないように指定する。このようなページリードコマンドをアクセス制御部３３５Nへ送信し（ステップＳ７６５）、アクセス制御部３３５Nからパケットを構成する最後のページを受信する（ステップＳ７６６）。なお、図では２つのページでパケットが構成される場合を示しているが、３つ以上のページで構成されるパケットの場合は、ステップＳ７６２〜Ｓ７６４の処理を必要な回数繰り返すことで、パケットリード制御部３３７Nはパケットを構成する全てのページを受信するようになっている。このようにして取得したページからパケットを再生して、ポート情報が示すポート３０６NKから通信端末２２１NKへパケットの送信を行う（ステップＳ７６７）。
【００９３】
以上本実施例で示したパケット処理装置を用いて通信端末２２１12から通信端末２２１NKへパケットのユニキャスト転送を行う際の処理の説明を行った。次にマルチキャスト転送の処理の概要について説明を行う。ここでは、マルチキャスト転送の一例として、図２に示したマルチキャストパケット送信端末２２２から通信端末２２１12〜２２１NKを共通の宛先として指定するマルチキャスト用のアドレスを組み込んだパケットがパケット処理装置２１１へ送信された場合について説明する。
【００９４】
この例では、第１の回線インタフェース処理部２１２1に入力したパケットが、Ｎ個の回線インタフェース処理部でソースマルチキャスト転送される。更に、第１の回線インタフェース処理部２１２1では、ポート２１６12〜２１６1Kに対して（Ｋ−１）個のデスティネーションマルチキャスト転送を実施する。また第Ｎの回線インタフェース処理部２１２Nでは、ポート２１６N1〜２１６NKに対してＫ個のデスティネーションマルチキャスト転送を予定している。ここでは、図示しない第２〜第（Ｎ−１）の回線インタフェース処理部２１２2〜２１２(N-1)でも、それぞれに備えられたポートに対してのデスティネーションマルチキャスト転送を予定している。しかしここでは、説明を簡易にするために代表的な第１、第Ｎの回線インタフェース処理部２１２1、２１２Nについて説明し、第２〜第（Ｎ−１）の回線インタフェース処理部２１２2〜２１２(N-1)については図示および説明を適宜省略する。
【００９５】
図２７は図１に示したパケット処理装置を使用してパケットのマルチキャスト転送処理を行う際の処理の流れを表したものである。第１の回線インタフェース処理部２１２1のパケット受信部３０１1にパケットが入力されると（ステップＳ８０１）、このパケットのヘッダから宛先要求パケットページ５０１を作成し、第１の宛先解決処理部２１３1に転送する（ステップＳ８０２）。第１の宛先解決処理部２１３1は、宛先要求パケットページ５０１からこのパケットをマルチキャスト転送することを判別し、第１の宛先解決情報作成部２１８1でパケットの宛先を示す情報を含む宛先解決パケットページ５２１をこの転送先ごとに作成する。転送先は第１〜第Ｎの回線インタフェース処理部２１２1〜２１２Nとなり、Ｎ個の宛先解決パケットページ５２１が作成される。ここでは説明を簡易にするために第１および第Ｎの回線インタフェース処理部２１２1、２１２Nに対して作成された宛先解決パケットページ５２１について説明を行う。
【００９６】
第１の宛先解決処理部２１３1は、これら宛先解決パケットページ５２１をそれぞれ第１の回線インタフェース処理部２１２1のパケット受信部３０１1へ転送する（ステップＳ８０３1、Ｓ８０３N）。パケット受信部３０１1は受信した宛先解決パケットページ５２１それぞれに指定された転送先である第１、第Ｎの回線インタフェース処理部２１２1、２１２Nのパケット送信部３０２1、３０２Nへ、転送パケットページ５３１あるいは転送パケットページ５３１、５４１を用いてパケットをそれぞれ転送する。（ステップＳ８０４1、Ｓ８０４N）。パケット送信部３０２1は、受信した転送パケットページ５３１、５４１からパケットを再生し、出力識別番号に対応したポート３０６12〜３０６1Kごとにそれぞれコピーしてパケットを出力する（ステップＳ８０５12〜Ｓ８０５1K）。また、パケット送信部３０２Nは、受信した転送パケットページ５３１、５４１からパケットを再生し、出力識別番号に対応したポート３０６N1〜３０６NKごとにそれぞれコピーしてパケットを出力する（ステップＳ８０５N1〜Ｓ８０５NK）。図示および説明を省略しているが、第２〜第（Ｎ−１）の回線インタフェース処理部２１２2〜２１２(N-1)のパケット送信部３０２2〜３０２(N-1)についても、同様にパケット受信部３０１1から転送されるパケットの出力が行われる。このようにして、マルチキャストパケット送信端末２２２からパケット処理装置２１１を介して、通信端末２２１12〜２２１NKへそれぞれパケットが送信される。
【００９７】
このようにマルチキャスト転送ではパケット受信部３０１1は、宛先解決パケットページ５２１を受信するたびに、パケットをコピーしてパケット送信部３０２1〜３０２Nへパケットを転送するようになっている。これがパケットの受信側で行うソースマルチキャスト処理である。また、転送されたパケットを受信したパケット送信部３０２1〜３０２Nは、それぞれ出力するポートの数だけこのパケットをコピーして、パケットの送信先へ出力するようになっている。これがパケットの送信側で行われるデスティネーションマルチキャスト処理である。本実施例のパケット処理装置２１１では、マルチキャスト転送処理はソースマルチキャスト処理と、デスティネーションマルチキャスト処理に分散するようになっている。
【００９８】
次に、以上説明したパケット処理装置２１１で行われるユニキャスト転送とマルチキャスト転送との処理の違いについて順を追って説明を行う。
【００９９】
以上説明していたマルチキャスト転送では、第１の回線インタフェース処理部２１２1が、入力されたパケットのヘッダ情報を含んだ宛先要求情報としての宛先要求パケットページ５０１を作成し、第１の宛先解決処理部２１３1へ転送するまでは、ユニキャスト転送と同等の処理が行われる。このとき、第１の回線インタフェース処理部２１２1はマルチキャスト転送を意識する必要は無く、ユニキャスト転送とマルチキャスト転送との間に処理の違いはない。
【０１００】
宛先要求パケットページ５０１を受信した第１の宛先解決処理部２１３1は、このページに含まれているパケットヘッダ５１０から、このパケットがマルチキャスト転送を行うマルチキャストパケットであることを検出する。そして、第１の宛先対応テーブル２１７1のカード番号対応表を検索することで、ソースマルチキャスト数を決定しこれをマルチキャストカウント５２４のフィールドにマッピングした宛先解決情報としての宛先解決パケットページ５２１を、第１の宛先解決情報作成部２１８1でその数だけ生成する。これら宛先解決パケットページ５２１のマルチキャストカウント５２４のフィールドには同じ値がマッピングされている。ここでソースマルチキャスト数は、パケットを受信した第１の回線インタフェース処理部２１２1からみて、パケットを転送すべき回線インタフェース処理部の数に一致する。なお、個々の宛先となる回線インタフェース処理部内部で行われるコピー回数は、宛先の回線インタフェース処理部において管理しているため宛先解決パケットページ５２１には表わされない。第１の宛先解決処理部２１３1は、生成したこれら宛先解決パケットページ５２１を順に、宛先要求パケットページ５０１を送信した第１の回線インタフェース処理部２１２1へ返送する。
【０１０１】
宛先解決パケットページ５２１を受信した第１の回線インタフェース処理部２１２1は、受信した宛先解決パケットページ５２１の数だけ、パケットをコピーして、それぞれの宛先解決パケットページ５２１が指定する宛先の回線インタフェース処理部に転送する。但し、宛先の回線インタフェース処理部に転送されるパケットヘッダ５１０は、第１の宛先解決処理部２１３1において更新された更新パケットヘッダ５２５に置き換えられている。この転送処理は、第１の回線インタフェース処理部２１２1からみた場合、受信した宛先解決パケットページ５２１ごとに１個のパケットを転送するので、ユニキャスト転送の処理と比較して何ら変更を必要としない。違いは、ソースマルチキャストメモリ３１４1に書き込まれる値である。
【０１０２】
ソースマルチキャストメモリ３１４1の該当するアドレス領域から値“０”が読み出された場合には、受信した宛先解決パケットページ５２１に含まれるマルチキャストカウント５２４の値から“１”を減算された値が、新たに該当するアドレス領域へ書き込まれる。また、値“０”以外の値が読み出された場合には、この読み出された値から“１”減算された値が、新たに該当するアドレス領域へ格納される。通常、ユニキャスト転送の場合、常に値“０”がリードされ、値“０”が書き込まれるようになっている。一方、マルチキャスト転送の場合、最初に受信した宛先解決パケットページ５２１に含まれるマルチキャストカウント５２４に書き込まれた値から“１”減算された値が書き込まれ、以降受信されるたびに、この値が“１”ずつ減算されていくようになっている。また、この書き込まれた後の値が“０”の場合、パケットメモリ３１１1の該当するアドレス領域がフリーアドレス領域として指定されるようになっている。これによって、マルチキャストカウント５２４に書き込まれた値と同じ回数だけ、ページをリードすることが可能になっている。したがって、ソースマルチキャストメモリ３１４1に書き込まれる値を用いることで、パケットを構成するページの格納に用いたパケットメモリ３１１1のアドレス領域をフリーアドレス領域として解放することなく維持することが可能となっている。
【０１０３】
スイッチ処理部２１４を介してパケットを受信した第１の回線インタフェース処理部２１２1のパケットメモリ３３１1にこのパケットが格納される処理は、ユニキャスト転送の処理と同様である。また、パケットライト制御部３３６1が、受信したパケット１個当たり１個のパケットオブジェクトを生成して、パケットリード制御部３３７1へ転送する処理もユニキャスト転送の処理と同様であり変わらない。
【０１０４】
このパケット送信部３０２1でのマルチキャスト転送とユニキャスト転送の処理の違いを説明する。まず、第１の違いはパケットの先頭ページを受信したとき、そのページヘッダに含まれる出力識別番号をリードアドレスとして、デスティネーションメモリ３３４1にアクセスした結果、リードされる値が“０”でないことである。この情報は、アカウントメモリ３３３1のマルチキャストカウント４３４のフィールドに保存される値であり、このフィールドが値“０”でなければ、該当するアドレス識別子が示すパケットメモリ３３１1のアドレス領域はフリーアドレスにならない。第２の違いは、パケットライト制御部３３６1から受信したパケットオブジェクトのコピーが、パケットリード制御部３３７1において、パケットのコピー回数分作成されることである。このコピー回数は、出力識別番号に対応してデスティネーションメモリ３３４1から検索される値と同一である。したがって、パケットリード制御部３３７1は、パケットのコピー回数にパケットのページ数を乗じた回数分のページリードコマンドをアクセス制御部３３５1へ送信することになる。
【０１０５】
これらページリードコマンドを受信するアクセス制御部３３５1では、マルチキャスト数を考慮する必要はなく、単にページリードコマンドで提供されるリードアドレスを利用してパケットメモリ３３１1に格納されるページをリードすればよい。このとき、このリードアドレスで、アカウントメモリ３３３1のマルチキャストカウント４３４のフィールドをリードして、値“０”でなければデクリメントして書き戻し、値“０”であればそのリードアドレスで示されるパケットメモリ３３１1のアドレス領域をフリーアドレスとして処理する。この２つの違いを除けば、パケット送信部３０２1はユニキャスト転送と同様の処理で、マルチキャスト転送を実現することが可能である。第１〜第Ｎの回線インタフェース処理部２１２1〜２１２Nのパケット受信部３０１1〜３０１Nおよびパケット送信部３０２1〜３０２Nについては同様の構成である。したがって、代表的な第１の回線インタフェース処理部２１２1のパケット受信部３０１1およびパケット送信部３０２1についてのみ説明を行った。
【０１０６】
このように、パケット処理装置２１１でマルチキャスト転送を行う処理は、宛先となる通信端末へ送信するパケット１つ１つに注目すると、既に説明したユニキャスト転送と同じ処理が行われていることになる。また、ソースマルチキャストメモリ３１４1とアカウントメモリ３３３1のマルチキャストカウント４３４で、それぞれマルチキャストカウント数を管理することで、パケットメモリ３１１1およびパケットメモリ３３１1のページが格納されているアドレス領域をコピーが終了するまでフリーアドレスとしないことができる。
【０１０７】
また、パケットのマルチキャスト転送処理であるコピー処理および装置内での転送処理を所定長以下のページ単位で行うため、パケットの長さに関わらず複数の装置内の転送先に対するマルチキャスト転送処理をページ単位で並行して行うことができる。したがって、マルチキャスト転送処理で同一のパケットを異なる複数の宛先に転送する際に発生する装置内遅延のばらつきを低減することができる。また、パケットのコピーを作成する際には、コピー数と同じ個数のパケットオブジェクトが作成され、これらパケットオブジェクトそれぞれに基づいて、パケットのコピー処理が行われるようになっている。このパケットオブジェクトは、パケットそのものではなく、パケットをコピーするために使用する情報が組み込まれていればよいため、パケットオブジェクトの長さをパケットの長さに関わらず固定長とすることもできる。したがって、パケットオブジェクトを用いてパケットのコピーを複数作成する場合、パケットオブジェクトの長さがコピーするパケットの長さよりも短ければ、パケットオブジェクトを作成する負荷はコピーするパケットの長さに影響を受けないという効果を得ることができる。
【０１０８】
更に、パケットの宛先を判別する宛先解決処理部と、パケットのコピー機能を備えていない回線インタフェース処理部とで構成される図示しないパケット処理装置に対して比較的少ない変更を行うことで、複数の宛先へパケットを転送するマルチキャスト転送を実現することができる。このような場合、マルチキャスト転送を行う回線インタフェース処理部には、パケットが格納されたメモリからパケットが必要な回数読み出されてコピーが作成されるまで、このパケットが格納されたメモリの開放を回避する手段をパケット処理装置に備えるようにすればよい。このようなパケットが格納されたメモリの開放を回避する手段を、回線インタフェース処理部に備えることで、マルチキャスト転送のためのコピー処理を行うことが可能となる。たとえば本実施例で示したように、パケットを読み出す残り回数を記憶するソースマルチキャストメモリ３１４と、アカウントメモリ３３３内のフィールドであるマルチキャストカウント４３４を回線インタフェース処理部にそれぞれ備えることで実現できる。
【０１０９】
本実施例では、第１の回線インタフェース処理部２１２1のパケット受信部３０１1が受信したパケットの宛先の判別は、第１の宛先解決処理部２１３1で行うように予め選択されていた。しかしながら、第２〜第Ｎの回線インタフェース処理部２１２2〜２１２Nのパケット受信部３０１2〜３０１Nが、第１の宛先解決処理部２１３1を必ずしも選択する必要はない。宛先解決処理部が複数備えられている場合には、たとえばパケットの宛先を判別する処理の負荷を分散させるように宛先解決処理部２１３1〜２１３Mのいずれかを予め選択させることができる。また、パケットの宛先を判別するための情報を基にして複数の宛先解決処理部からこのパケットの宛先を判別する処理の負荷が少ない宛先解決処理部を選択して、宛先要求パケットページ５０１を送出してもよい。たとえば、マルチキャストアドレスはＩＰアドレスの中でも特定の範囲のアドレスなので、アドレスを見るだけでこれが組み込まれたパケットはマルチキャスト転送するパケットであることが判別できる。したがって、回線インタフェース処理部は、マルチキャスト転送するパケットに対して宛先を判別する処理の負荷が少ない宛先解決装置を予め判別しておいて、回線から受信したパケットに組み込まれている送信先アドレスがマルチキャストアドレスであれば、この宛先解決処理部を宛先要求パケットページ５０１の送出先として指定する。これによって、パケットの宛先を判別する処理の負荷を複数の宛先解決装置に分散することができる。
【０１１０】
発明の変形例
【０１１１】
図２８は、本発明の変形例であるパケット処理装置を表わしたものである。図２８で図１と同一の部分には、同一の符号を付しており、適宜説明を省略する。パケット処理装置１０１には、各種回線メディアを終端しパケットの送受を行う回線インタフェース装置としての第１〜第Ｎの回線インタフェース処理部２１２1〜２１２Nと、パケットヘッダの加工およびパケットのヘッダ情報からパケットの宛先を決定する宛先解決装置としての第１〜第Ｍの宛先解決処理部２１３1〜２１３Mと、スイッチ処理部２１４が備えられている。図１で示した実施例のパケット処理装置２１１と異なる点は、パケットの宛先判別の処理を要求する宛先解決処理部を選択する宛先解決選択処理部１１１1、１１１2が備えられている点である。宛先解決選択処理部１１１1、１１１2は、それぞれ第１〜第Ｎの回線インタフェース処理部２１２1〜２１２Nのいずれかと対応しており、宛先要求パケットページ５０１が送られてくるようになっている。この数は回線インタフェース処理部２１２の数に合わせて増減させてもよい。この変形例では、宛先解決選択処理部１１１1は第１の回線インタフェース処理部２１２1と対応しており、宛先要求パケットページ５０１が送られてくるようになっている。
【０１１２】
宛先解決選択処理部１１１1、１１１2には、回線インタフェース処理部２１２から送られる宛先要求パケットページ５０１に対応する宛先解決パケットページ５２１を作成する処理部を第１〜第Ｍの宛先解決処理部２１３1〜２１３Mの中から選択する選択部１１２1、１１２2がそれぞれ備えられている。また、パケットに対する宛先を示す情報を格納した図示しない宛先対応テーブルと、これを基にしてパケットの宛先を解決しこれを示す宛先解決パケットページ５２１を作成する図示しない宛先解決パケットページ作成部も備えられている。選択部１１２1は、入力された宛先要求パケットページ５０１のパケットヘッダ５１０に格納されている送信先アドレスが、マルチキャストアドレスであるか否かを確認する。これにを基にして、この宛先要求パケットページ５０１がマルチキャスト転送するパケットのものか否かを判別する。マルチキャストアドレスでなければ、この宛先要求パケットページ５０１に対応する宛先解決パケットページ５２１を宛先解決パケットページ作成部で作成して、返送するようになっている。また、マルチキャストアドレスであれば１つ以上の宛先を判別することに対応した第１〜第Ｍの宛先解決処理部２１３1〜２１３Mの中から１つを選択して、入力された宛先要求パケットページ５０１を転送する。このとき、これら第１〜第Ｍの宛先解決処理部２１３1〜２１３Mを均等に選択するために、たとえばそれぞれに対応した転送回数を示すカウンタを備えて、これを基に選択を行うようになっている。
【０１１３】
これによって、宛先解決選択処理部１１１1、１１１2は判別する宛先が１つだけである場合に宛先解決情報を作成して返送すればよいので、判別される宛先の数が複数想定される場合と比較して簡易な構造で実現することができる。ただし、この変形例でこのパケット処理装置１０１はＩＰルータ装置を想定しているため、パケットのブロードキャスト転送は無いものとして考えている。このようにして、装置内で複数の転送先がある可能性を持つマルチキャスト転送するパケットの宛先要求パケットページ５０１を第１〜第Ｍの宛先解決処理部２１３1〜２１３Mに転送するようになっている。ここでは選択部１１２1について説明したが、選択部１１２2についても宛先解決処理部を選択する動作については同様であるため説明を省略する。
【０１１４】
図２９は、この変形例のパケット処理装置の処理の一例を表わしたものである。この例では、回線２１５11から受信したパケットを回線２１５12、２１５1K、２１５N1および２１５NKへマルチキャスト転送する。パケット処理装置１０１の第１の回線インタフェース処理部２１２1は、回線２１５11からパケットが入力されると（ステップＳ１２１）、このパケットのヘッダ情報を含んだ宛先要求パケットページ５０１を宛先解決選択処理部１１１1へ転送する（ステップＳ１２２）。ここでは宛先解決選択処理部１１１1の選択部１１２1は、この宛先要求パケットページ５０１の転送先として第１の宛先解決処理部２１３1を選択し、宛先要求パケットページ５０１を転送する（ステップＳ１２３）。
【０１１５】
第１の宛先解決処理部２１３1は、第１の宛先対応テーブル２１７1を参照して、宛先要求パケットページ５０１に対応する宛先解決パケットページ５２１を２つ、第１の回線インタフェース処理部２１２1および第Ｎの回線インタフェース処理部２１２Nから出力するパケット用に第１の宛先解決情報作成部２１８1で作成する。第１の宛先解決処理部２１３1は、これら作成した２つの宛先解決パケットページ５２１を第１の回線インタフェース処理部２１２1に転送する（ステップＳ１２４1、１２４2）。第１の回線インタフェース処理部２１２1は、宛先解決パケットページ５２１が転送されると、これを基にして転送パケットページ５３１あるいは５４１を作成して、宛先解決パケットページ５２１に対応した第１の回線インタフェース処理部２１２1および第Ｎの回線インタフェース処理部２１２Nに、それぞれ転送する（ステップＳ１２５1、１２５2）。ステップＳ１２５1は、第１の回線インタフェース処理部２１２1（パケット受信部３０１1）からスイッチ２１４を介して第１の回線インタフェース処理部２１２1（パケット送信部３０２1）に転送パケットページが転送されている様子を表わしている。これによって転送パケットページが転送された第１の回線インタフェース処理部２１２1は、これに格納されているパケットを回線２１５12、２１５1Kからそれぞれ出力する（ステップＳ１２６1、１２６2）。また、転送パケットページが転送された第Ｎの回線インタフェース処理部２１２Nは、これに格納されているパケットを回線２１５N1、２１５NKからそれぞれ出力する（ステップＳ１２７1、１２７2）このようにして、パケット処理装置１０１は、回線２１５11から受信したパケットを回線２１５12、２１５1K、２１５N1および２１５NKへマルチキャスト転送するようになっている。
【０１１６】
以上説明した変形例では、マルチキャスト転送するパケットの宛先要求パケットページ５０１が宛先解決選択処理部１１１1に入力された場合を説明しているが、宛先が１つしかないユニキャスト転送するパケットの宛先要求パケットページ５０１であれば、宛先解決選択処理部１１１1は対応する宛先解決パケットページ５２１を作成して返送するようになっている。したがって、第１の回線インタフェース処理部２１２1は、入力されたパケットがマルチキャスト転送するパケットであるか否かに関わらず、宛先要求パケットページ５０１を宛先解決装置１１１1に送出するだけでよいことになる。
【０１１７】
また、実施例および変形例では、パケット処理装置に宛先解決処理部または回線インタフェース処理部が複数備えられているが、宛先解決処理の負荷などに応じて１つだけ備えられてもよい。また、宛先解決処理部はパケットの宛先を判別する手法を複数備えてもよい。たとえば、ＩＰ（Internet Protocol）では、宛先となる端末を示すアドレスの表現手法にＩＰｖ４、ＩＰｖ６等の複数の手法が存在する。したがって、このような宛先となる端末を示すアドレスの表現手法にそれぞれ対応した宛先解決処理を行う宛先解決処理部が備えられてもよい。また、たとえばインターネット網などの大規模な通信ネットワークで使用するグローバルアドレスと、限定された端末間だけで使用するプライベートアドレスとの間の変換機能等を含めた宛先解決処理を行う宛先解決処理部が備えられてもよい。
【０１１８】
更に、実施例ではマルチキャストパケットを送信する端末は、マルチキャストパケット送信端末２２２に限定されている。しかし、マルチキャストアドレスを組み込んだパケットであるマルチキャストパケットを作成し送信する端末は、通信端末２２１12〜２２１NKのいずれかであってもよい。また、既に説明したようにこれらの端末はマルチキャストパケットの最終的な宛先となる図示しない端末との間に配置されたルータ装置であってもよい。この場合、通信端末２２１12〜２２１NKあるいはマルチキャストパケット送信端末２２２は、受信したパケットを更に最終的な宛先に向けて転送するようになっている。
【０１１９】
なお実施例および変形例では回線インタフェース処理部が、各回線を用いてパケットを送受信する際の回線メディアの種類は限定されない。たとえば、回線メディアとしてＡＴＭ（Asynchronous Transfer Mode）回線やＦＲ（Frame Relaying）回線またはＴＤＭ（Time Division Multiplex）回線等が用いられてもよい。また、回線インタフェース処理部が複数備えられている場合、それぞれ回線メディアの種類が異なるものであってもよい。また、本発明の実施例では第１〜第Ｎの回線インタフェース処理部２１２1〜２１２Nに、それぞれＫ本ずつの回線が接続されるようになっているが、これら回線のパケット転送速度などに応じて、接続される回線の本数がそれぞれ異なっていてもよい。
【０１２０】
【発明の効果】
以上説明したように請求項１記載の発明によれば、回線インタフェース装置と宛先解決装置が独立し、これらの間にスイッチが配置されている。したがって、スイッチを介して宛先解決装置を任意の個数だけ回線インタフェース装置と接続することができ、柔軟なパケット処理システムを実現することができる。また、回線インタフェース装置が本来処理してきた他の機能部を独立させてスイッチを介して回線インタフェース装置に接続することも可能になる。
【０１２２】
また請求項２記載の発明によれば、宛先解決装置から返送される宛先解決情報は、判別される宛先の数に関わらず、１つの宛先しか示さないようになっており、宛先解決情報のフォーマットを複数の宛先に対応する宛先解決情報よりも簡易化することができる。
【０１２３】
更に請求項３記載の発明によれば、回線インタフェース装置は宛先解決装置のパケットの宛先判別のための負荷をそれぞれ判別する負荷判別手段を備えており、この判別結果を基にして入力したパケットの宛先要求情報を送出する宛先解決装置を選択するようになっている。これにより、ある宛先解決装置に対して負荷が高い宛先判別処理であれば、これよりも負荷の小さい他の宛先解決装置を選択して宛先要求情報を送出することができる。したがって、たとえば複数備えられた宛先解決装置それぞれのパケットの種別に対応した判別処理の負荷が異なる場合であっても、これら宛先解決装置に負担をかけることなく、負荷の分散を図ることができる。
【０１２４】
更に請求項４記載の発明によれば、パケット受信装置とパケット送信装置が独立しているので、パケットの受信処理と送信処理の処理負担が大きく異なるようなパケットを転送するシステムが存在する場合であっても、システムごとにパケット受信装置あるいはパケット送信装置を変更して対応する柔軟なシステムを構築することができる。
【０１２５】
更に請求項５記載の発明によれば、宛先要求情報作成手段が宛先の判別に必要な情報をパケットから抜き出すようになっている。このようにパケットから必要な情報を抜き出す処理を独立させることで、パケット内での必要な情報の格納位置が変更された場合や扱うパケットの種類が増加した場合であっても、この宛先要求情報作成手段を変更または追加することで対応できる柔軟なパケット処理システムを構築することができる。
【図面の簡単な説明】
【図１】本発明の実施例におけるパケット処理装置の構成の概要を表わしたブロック図である。
【図２】図１で示したパケット処理装置が配置された通信ネットワークの概要を説明する説明図である。
【図３】図１で示した第１の回線インタフェース処理部の構成を表わしたブロック図である。
【図４】第１の回線インタフェース処理部のパケット受信部の構成を表わしたブロック図である。
【図５】第１の回線インタフェース処理部のパケット送信部の構成を表わしたブロック図である。
【図６】図４に示したパケット受信部内に配置されている各種メモリを説明する説明図である。
【図７】フリーリストメモリとソースマルチキャストメモリを使用してフリーアドレスを管理する処理を説明する説明図である。
【図８】フリーヘッドポインタが更新されるときのフリーリストメモリとソースマルチキャストメモリの様子を説明する説明図である。
【図９】フリーテールポインタが更新されるときのフリーリストメモリとソースマルチキャストメモリの様子を説明する説明図である。
【図１０】図４に示したパケットリンクメモリを使用してページリンクの説明を行う説明図である。
【図１１】図１０に示した状態から更にページを格納してリンクする処理を説明する説明図である。
【図１２】図１１に示した状態から更にページを格納してリンクする処理を説明する説明図である。
【図１３】図１２に示した状態から更にページを格納して、これまでに格納されたページを示すオブジェクトを作成する処理を説明する説明図である。
【図１４】図５に示したリンクメモリとアカウントメモリに設定されるフィールドと格納される値を説明する説明図である。
【図１５】宛先要求パケットページの構成を説明する説明図である。
【図１６】宛先解決パケットページの構成を説明する説明図である。
【図１７】パケットの先頭部分を格納する転送パケットページの構成を説明する説明図である。
【図１８】図１７で示したパケットの先頭部分以外を転送するための転送パケットページの構成を説明する説明図である。
【図１９】本発明の実施例で示したパケット処理装置を用いたパケットのユニキャスト転送処理を行う処理の概要を表わした流れ図である。
【図２０】本発明の実施例で示した第１の回線インタフェース処理部に受信されたパケットがパケット受信部に格納される処理を表わした流れ図である。
【図２１】図２０で示したパケットリード制御部に宛先要求オブジェクトが受信されてから宛先要求パケットページが第１の宛先解決処理部に転送されるまでの処理を表わした流れ図である。
【図２２】第１の回線インタフェース処理部のパケット送信部に第１の宛先解決処理部から転送される宛先解決パケットページを格納する処理を表わした流れ図である。
【図２３】第１の回線インタフェース処理部のパケット送信部からパケット受信部へ宛先解決パケットページが転送される処理を表わした流れ図である。
【図２４】第１の回線インタフェース処理部のパケット受信部からパケット送信部へパケットが転送される処理を表わした流れ図である。
【図２５】第１の回線インタフェース処理部のパケット送信部がパケット受信部から転送されるパケットを格納する処理を表わした流れ図である。
【図２６】第１の回線インタフェース処理部のパケット送信部がパケットを出力する処理を表わした流れ図である。
【図２７】本発明の実施例で示したパケット処理装置を用いたパケットのマルチキャスト転送処理の概要を表わした流れ図である。
【図２８】発明の変形例のパケット処理装置の概要を表わしたブロック図である。
【図２９】発明の変形例のパケット処理装置がパケットのマルチキャスト転送を行う処理を表わした流れ図である。
【図３０】従来のパケット処理装置の概要を表わしたブロック図である。
【符号の説明】
１０１、２１１  パケット処理装置
１１１1、１１１2  宛先解決選択処理部
１１２1、１１２2  選択部
２１２1〜２１２N  第１〜第Ｎの回線インタフェース処理部
２１３1〜２１３M  第１〜第Ｍの宛先解決処理部
２１４  スイッチ処理部
２１７1〜２１７M  第１〜第Ｍの宛先対応テーブル
２１８1〜２１８M  第１〜第Ｍの宛先解決情報作成部
２２１12〜２２１NK  通信端末
２２２  マルチキャストパケット送信端末
３０１1  パケット受信部
３０２1  パケット送信部
３１１1、３３１1  パケットメモリ
３１２1  パケットリンクメモリ
３１３1  フリーリストメモリ
３１４1  ソースマルチキャストメモリ
３１５1、３３５1  アクセス制御部
３１６1、３３６1  パケットライト制御部
３１７1、３３７1  パケットリード制御部
３１８1  転送先選択部
３３２1  リンクメモリ
３３３1  アカウントメモリ
３３４1  デスティネーションメモリ
３３８1  送信ポート対応表
【図１】
0003719222.tif 000002
【図２】
0003719222.tif 000003
【図３】
0003719222.tif 000004
【図４】
0003719222.tif 000005
【図５】
0003719222.tif 000006
【図６】
0003719222.tif 000007
【図７】
0003719222.tif 000008
【図８】
0003719222.tif 000009
【図９】
0003719222.tif 000010
【図１０】
0003719222.tif 000011
【図１１】
0003719222.tif 000012
【図１２】
0003719222.tif 000013
【図１３】
0003719222.tif 000014
【図１４】
0003719222.tif 000015
【図１５】
0003719222.tif 000016
【図１６】
0003719222.tif 000017
【図１７】
0003719222.tif 000018
【図１８】
0003719222.tif 000019
【図１９】
0003719222.tif 000020
【図２０】
0003719222.tif 000021
【図２１】
0003719222.tif 000022
【図２２】
0003719222.tif 000023
【図２３】
0003719222.tif 000024
【図２４】
0003719222.tif 000025
【図２５】
0003719222.tif 000026
【図２６】
0003719222.tif 000027
【図２７】
0003719222.tif 000028
【図２８】
0003719222.tif 000029
【図２９】
0003719222.tif 000030
【図３０】
0003719222.tif 000031