(57)【要約】  【課題】  高速にセッション間の中継処理を行うセッション中継装置を実現する。  【解決手段】  送信端末に向けたセッションと受信端末に向けたセッションの間でトランスポート層以上の処理を伴うデータの中継を行うことにより、送受信端末間の通信を実現するセッション中継装置が、パケットを記憶する記憶部と、ネットワーク入力部と、受信プロトコル処理部と、送信プロトコル処理部と、ネットワーク出力部とから構成され、ネットワーク入力部がネットワークからパケットを受け取り前記記憶部にパケットデータを格納し、受信プロトコル処理部が該格納された位置のデータに対して受信処理を実施し、送信プロトコル処理部が該格納された位置のデータに対して送信処理を実施し、ネットワーク出力部が該データを該格納された位置から読み出し出力する。【選択図】  図３
2005086292.tif 000002
【特許請求の範囲】
【請求項１】
送信端末に向けたセッションと受信端末に向けたセッションの間でトランスポート層以上の処理を伴うデータの中継を行うことにより、送受信端末間の通信を実現するセッション中継装置において、
パケットを記憶する記憶部と、ネットワーク入力処理部と、ネットワーク出力処理部とから構成され、
前記ネットワーク入力処理部は、ネットワークからパケットを受け取り前記記憶部にパケットデータを格納し、前記ネットワーク出力処理部は、該格納された位置のデータに対して送信処理を実施し、さらに、該データを該格納された位置から読み出して出力することを特徴とするセッション中継装置。
【請求項２】
送信端末に向けたセッションと受信端末に向けたセッションの間でトランスポート層以上の処理を伴うデータの中継を行うことにより、送受信端末間の通信を実現するセッション中継装置において、
パケットを記憶する記憶部と、ネットワーク入力部と、受信プロトコル処理部と、送信プロトコル処理部と、ネットワーク出力部とから構成され、
前記ネットワーク入力部がネットワークからパケットを受け取り前記記憶部にパケットデータを格納し、前記受信プロトコル処理部が該格納された位置のデータに対して受信処理を実施し、前記送信プロトコル処理部が該格納された位置のデータに対して送信処理を実施し、前記ネットワーク出力部が該データを該格納された位置から読み出して出力することを特徴とするセッション中継装置。
【請求項３】
前記ネットワーク入力処理部と前記ネットワーク出力処理部が、同一のメモリ管理権限を有することを特徴とする請求項１に記載のセッション中継装置。
【請求項４】
前記受信プロトコル処理部と前記送信プロトコル処理部が、同一のメモリ管理権限を有することを特徴とする請求項２に記載のセッション中継装置。
【請求項５】
オペレーティングシステムが搭載された汎用計算機上で動作し、オペレーティングシステムと同等のメモリ管理権限と処理権限の少なくとも一つを持ちセッション中継処理を実現することを特徴とする請求項１又は請求項２に記載のセッション中継装置。
【請求項６】
処理するプロトコルにIPが含まれる場合において、
IPレイヤの送信処理が必要か不必要かを判断する手段を備えることを特徴とする請求項１又は請求項２に記載のセッション中継装置。
【請求項７】
IPレイヤの処理のうちで、全てのパケットに共通する処理だけを選択的に実施する手段を備えたことを特徴とする請求項６に記載のセッション中継装置。
【請求項８】
IPの送信処理が必要か不必要かを、NATやＩＰマスカレードなどＩＰアドレスの変換を伴う処理が設定されている場合に必要と判断し、これが設定されていない際に不必要と判断することを特徴とする請求項６に記載のセッション中継装置。
【請求項９】
IPの送信処理が必要か不必要かを、ICMPリダイレクトが到着した場合に必要と判断し、該リダイレクトに対するIP送信部の処理を実施した後は再び不必要と判断することを特徴とする請求項６に記載のセッション中継装置。
【請求項１０】
IPの送信処理が必要か不必要かを、通信相手のＩＰアドレスに対応する物理アドレスが既知でない場合は必要と判断し、通信相手のＩＰアドレスに対応する物理アドレスが既知である場合は不必要と判断することを特徴とする請求項６に記載のセッション中継装置。
【請求項１１】
IPレイヤの処理のうちで、IPヘッダのチェックサム計算だけを選択的に実施することを特徴とする請求項７に記載のセッション中継装置。
【請求項１２】
IPレイヤの処理のうちで、NATなどＩＰアドレスの変換を伴う処理だけを選択的に実施することを特徴とする請求項７に記載のセッション中継装置。
【請求項１３】
ペイロード部分のチェックサム値を計算するプロトコル処理を対象とし、前記ネットワーク入力処理部は、セッション中継で対象とするレイヤ以下の受信時のチェックサム計算を実施し、ネットワーク出力処理部が、パケットが更新された場合にヘッダ部分の情報でチェックサム値を計算することを特徴とする請求項１に記載のセッション中継装置。
【請求項１４】
ペイロード部分のチェックサム値を計算するプロトコル処理を対象とし、前記ネットワーク入力処理部は、セッション中継で対象とするレイヤ以下の受信時のチェックサム計算を実施し、前記送信プロトコル処理部が、パケットが更新された場合にヘッダ部分の情報でチェックサム値を計算することを特徴とする請求項２に記載のセッション中継装置。
【請求項１５】
前記ネットワーク入力処理部において、ネットワークから入力されたパケットの属するセッションを判定し、該判定結果に応じてセッション中継を実施することを特徴とする請求項１に記載のセッション中継装置。
【請求項１６】
セッション判定部を備え、
前記セッション判定部において、ネットワークから入力されたパケットの属するセッションを判定し、該判定結果に応じてセッション中継を実施することを特徴とする請求項２に記載のセッション中継装置。
【請求項１７】
前記ネットワーク入力処理部と前記ネットワーク出力処理部が同一のメモリ管理権限を有することを特徴とする請求項１５に記載のセッション中継装置。
【請求項１８】
前記受信プロトコル処理部と前記送信プロトコル処理部が同一のメモリ管理権限を有することを特徴とする請求項１６に記載のセッション中継装置。
【請求項１９】
オペレーティングシステムが搭載された汎用計算機上で動作し、オペレーティングシステムと同等のメモリ管理権限と処理権限の少なくとも一つを持ちセッション中継処理を実現することを特徴とする請求項１５又は請求項１６に記載のセッション中継装置。
【請求項２０】
処理するプロトコルにIPが含まれる場合において、IPレイヤの送信処理が必要か不必要かを判断する手段を備えることを特徴とする請求項１５又は請求項１６に記載のセッション中継装置。
【請求項２１】
IPレイヤの処理のうちで、全てのパケットに共通する処理だけを選択的に実施する手段を備えたことを特徴とする請求項２０に記載のセッション中継装置。
【請求項２２】
IPの送信処理が必要か不必要かを、NATやＩＰマスカレードなどＩＰアドレスの変換を伴う処理が設定されている場合に必要と判断し、これが設定されていない際に不必要と判断することを特徴とする請求項２０に記載のセッション中継装置。
【請求項２３】
IPの送信処理が必要か不必要かを、セッション中継装置にICMPリダイレクトが到着した場合に必要と判断し、該リダイレクトに対するIP送信部の処理を実施した後は再び不必要と判断することを特徴とする請求項２０に記載のセッション中継装置。
【請求項２４】
IPの送信処理が必要か不必要かを、通信相手のＩＰアドレスに対応する物理アドレスが既知でない場合は必要と判断し、通信相手のＩＰアドレスに対応する物理アドレスが既知である場合は不必要と判断することを特徴とする請求項２０に記載のセッション中継装置。
【請求項２５】
IPレイヤの処理のうちで、IPヘッダのチェックサム計算（定義必要）だけを選択的に実施することを特徴とする請求項２１に記載のセッション中継装置。
【請求項２６】
IPレイヤの処理のうちで、NATなどＩＰアドレスの変換を伴う処理だけを選択的に実施することを特徴とする請求項２１に記載のセッション中継装置。
【請求項２７】
ペイロード部分のチェックサム値を計算するプロトコル処理を対象とし、
前記ネットワーク入力処理部は、セッション中継で対象とするレイヤ以下の受信時のチェックサム計算を実施し、
前記送信プロトコル処理部が、パケットが更新された場合にヘッダ部分の情報でチェックサム値を計算することを特徴とする請求項１５に記載のセッション中継装置。
【請求項２８】
ペイロード部分のチェックサム値を計算するプロトコル処理を対象とし、
前記ネットワーク入力部は、セッション中継で対象とするレイヤ以下の受信時のチェックサム計算を実施し、
前記ネットワーク出力処理部が、パケットが更新された場合にヘッダ部分の情報でチェックサム値を計算することを特徴とする請求項１６に記載のセッション中継装置。
【請求項２９】
送信端末に向けたセッションと受信端末に向けたセッションの間でトランスポート層以上の処理を伴うデータの中継を行うことにより、送受信端末間の通信を実現するセッション中継方法であって、
ネットワークからパケットを受け取り前記記憶部にパケットデータを格納するネットワーク入力処理と、該格納された位置のデータに対して送信処理を実施し、さらに、該データを該格納された位置から読み出して出力するネットワーク出力処理を実行することを特徴とするセッション中継方法。
【請求項３０】
送信端末に向けたセッションと受信端末に向けたセッションの間でトランスポート層以上の処理を伴うデータの中継を行うことにより、送受信端末間の通信を実現するセッション中継方法であって、
ネットワークからパケットを受け取り記憶部にパケットデータを格納するネットワーク入力処理と、該格納された位置のデータに対して受信処理を実施する受信プロトコル処理と、該格納された位置のデータに対して送信処理を実施する送信プロトコル処理と、該データを該格納された位置から読み出して出力するネットワーク出力処理を実行することを特徴とするセッション中継方法。
【請求項３１】
処理するプロトコルにIPが含まれる場合において、
IPレイヤの送信処理が必要か不必要かを判断する処理を有することを特徴とする請求項２９又は請求項３０に記載のセッション中継方法。
【請求項３２】
IPレイヤの処理のうちで、全てのパケットに共通する処理だけを選択的に実施する処理を有することを特徴とする請求項３１に記載のセッション中継方法。
【請求項３３】
IPの送信処理が必要か不必要かを、NATやＩＰマスカレードなどＩＰアドレスの変換を伴う処理が設定されている場合に必要と判断し、これが設定されていない際に不必要と判断することを特徴とする請求項３１に記載のセッション中継方法。
【請求項３４】
IPの送信処理が必要か不必要かを、ICMPリダイレクトが到着した場合に必要と判断し、該リダイレクトに対するIP送信部の処理を実施した後は再び不必要と判断することを特徴とする請求項３１に記載のセッション中継方法。
【請求項３５】
IPの送信処理が必要か不必要かを、通信相手のＩＰアドレスに対応する物理アドレスが既知でない場合は必要と判断し、通信相手のＩＰアドレスに対応する物理アドレスが既知である場合は不必要と判断することを特徴とする請求項３１に記載のセッション中継方法。
【請求項３６】
IPレイヤの処理のうちで、IPヘッダのチェックサム計算だけを選択的に実施することを特徴とする請求項３２に記載のセッション中継方法。
【請求項３７】
IPレイヤの処理のうちで、NATなどＩＰアドレスの変換を伴う処理だけを選択的に実施することを特徴とする請求項３２に記載のセッション中継方法。
【請求項３８】
ペイロード部分のチェックサム値を計算するプロトコル処理を対象とし、前記ネットワーク入力処理において、セッション中継で対象とするレイヤ以下の受信時のチェックサム計算を実施し、ネットワーク出力処理において、パケットが更新された場合にヘッダ部分の情報でチェックサム値を計算することを特徴とする請求項２９に記載のセッション中継方法。
【請求項３９】
前記ネットワーク入力処理において、ネットワークから入力されたパケットの属するセッションを判定し、該判定結果に応じてセッション中継を実施することを特徴とする請求項２９に記載のセッション中継方法。
【請求項４０】
処理するプロトコルにIPが含まれる場合において、IPレイヤの送信処理が必要か不必要かを判断することを特徴とする請求項３５又は請求項３６に記載のセッション中継方法。
【請求項４１】
IPレイヤの処理のうちで、全てのパケットに共通する処理だけを選択的に実施することを特徴とする請求項４０に記載のセッション中継方法。
【請求項４２】
IPの送信処理が必要か不必要かを、NATやＩＰマスカレードなどＩＰアドレスの変換を伴う処理が設定されている場合に必要と判断し、これが設定されていない際に不必要と判断することを特徴とする請求項４０に記載のセッション中継方法。
【請求項４３】
IPの送信処理が必要か不必要かを、ICMPリダイレクトが到着した場合に必要と判断し、該リダイレクトに対するIP送信部の処理を実施した後は再び不必要と判断することを特徴とする請求項４０に記載のセッション中継方法。
【請求項４４】
IPの送信処理が必要か不必要かを、通信相手のＩＰアドレスに対応する物理アドレスが既知でない場合は必要と判断し、通信相手のＩＰアドレスに対応する物理アドレスが既知である場合は不必要と判断することを特徴とする請求項４０に記載のセッション中継方法。
【請求項４５】
IPレイヤの処理のうちで、IPヘッダのチェックサム計算だけを選択的に実施することを特徴とする請求項４１に記載のセッション中継方法。
【請求項４６】
IPレイヤの処理のうちで、NATなどＩＰアドレスの変換を伴う処理だけを選択的に実施することを特徴とする請求項４１に記載のセッション中継方法。
【請求項４７】
ペイロード部分のチェックサム値を計算するプロトコル処理を対象とし、
前記ネットワーク入力処理において、セッション中継で対象とするレイヤ以下の受信時のチェックサム計算を実施し、
前記送信プロトコル処理において、パケットが更新された場合にヘッダ部分の情報でチェックサム値を計算することを特徴とする請求項３５に記載のセッション中継方法。
【請求項４８】
ペイロード部分のチェックサム値を計算するプロトコル処理を対象とし、
前記ネットワーク入力処理において、セッション中継で対象とするレイヤ以下の受信時のチェックサム計算を実施し、
前記ネットワーク出力処理において、パケットが更新された場合にヘッダ部分の情報でチェックサム値を計算することを特徴とする請求項３６に記載のセッション中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セッション、特にTCP (Transmission Control Protocol)セッション間でデータの中継を行うセッション中継装置に関する。
【背景技術】
【０００２】
一般的に、通信アプリケーションは、送受信端末間で通信セッションを確立し、確立したセッション上で通信を行う。しかしながら、送受信端末間の伝播遅延時間が非常に長い場合、もしくは有線と無線のように特性の異なるネットワークを横断して通信する場合、送受信端末間の通信のスループットが低下する。
【０００３】
この問題を解決するため、送受信端末間を一つのセッションで通信を行うのではなく、送受信端末間に中継装置を設置し、送信端末から中継装置へのセッションと中継装置から受信端末へのセッションの２つのセッション間でデータの中継を行うことにより通信を行う方式が存在する。このような中継方式の一例としては、Indirect TCP 「文献Ajay Bakre and B.R.Badrinath、“I-TCP; Indirect TCP for Mobile Host”、 Department of Computer Science Rutgers University、 DSC-TR-314、 1994;（http://www.it.iitb.ac.in/it644/papers/i-tcp.pdfより入手可能）（非特許文献１）や、特開平１１−２５２１７９号公報（特許文献１）、特開２００２−２８１１０４号公報（特許文献２）等に示されている方式がある。
【０００４】
セッションの中継を行う場合最も問題となることは、一般的にＴＣＰセッションの処理は処理負荷が高く、高速な中継処理が難しいということである。
【０００５】
ＴＣＰなど第４層以上のプロトコルのセッションを中継するためには、論理的にはＴＣＰ以上のプロトコルの受信処理を実施した後、直ちに送信処理が実施されることになるが、実際の動作は以下の通りである。
【０００６】
ネットワークから入力されたデータがオペレーティングシステムが特権的に管理するメモリに一度格納された後、ＴＣＰ／ＩＰの受信処理をし、一旦ユーザアプリケーションすなわちセッション中継部が管理するメモリへコピーすることによってデータが渡される。その後、このデータを送信するために再びセッション中継部が管理するメモリからオペレーティングシステムが特権的に管理するメモリにデータがコピーされ、ＴＣＰ／ＩＰの送信処理をした後、オペレーティングシステムが特権的に管理するメモリ空間からデータが取り出されてネットワークに出力される。
【０００７】
つまり、ＴＣＰ／ＩＰ受信処理、セッション中継部の処理、ＴＣＰ／ＩＰ送信処理の間で合計２回のデータコピーが行われ、このコピー処理が大きな負荷となる。
【０００８】
図２１を参照して上述した動作を詳しく説明する。
【０００９】
図２１は、従来のセッション中継装置の構成例を示すブロック図であり、このセッション中継装置は、ネットワークからパケットデータを受信し、受信パケット記憶部１３−２へ格納するネットワーク入力部１３−１と、ネットワークから受信したパケットデータが格納される受信パケット記憶部１３−２と、受信パケット記憶部１３−２に格納されたパケットデータに対しＩＰとＴＣＰの受信処理を実施し記憶部１３−４へパケットデータをコピーする受信プロトコル処理部１３−３と、受信プロトコル処理部１３−３がパケットデータをコピーしパケットを格納し、送信プロトコル処理部１３−６がパケットデータを取り出し、セッション中継部が参照・操作可能な記憶部１３−４と、記憶部１３−４に格納されたデータを送信プロトコル処理部に送信することを指示するセッション中継部１３−５と、セッション中継部１３−５の指示に基づき記憶部１３−４に格納されたパケットデータを送信データ記憶部１３−７にコピーし、ＴＣＰとＩＰの送信処理を実施し、ネットワーク出力部１３−８にパケットデータの出力を指示する送信プロトコル処理部１３−６と、送信プロトコル処理部１３−６により記憶部１３−４からコピーされたパケットデータが格納される送信パケット記憶部１３−７と、送信プロトコル出力部１３−６の指示に従いネットワークへ送信パケット記憶部１３−７に格納されたパケットデータを出力するネットワーク出力部１３−８を備えて構成されている。
【００１０】
ネットワークからパケットデータが到着すると、ネットワーク入力部１３−１は受信パケット記憶部１３−２に受信したパケットデータを記憶し、受信プロトコル処理部１３−３にパケットの到着を通知する。受信プロトコル処理部１３−３は、受信パケット記憶部１３−２に格納されたパケットを参照しチェックサム値の計算などを含むＩＰとＴＣＰの受信処理を実施する。
【００１１】
ＩＰとＴＣＰの受信処理が終了すると、受信プロトコル処理部１３−３は、セッション中継部１３−５が参照・操作可能なメモリ空間である記憶部１３−４にパケットデータをコピーし、コピーが完了すると受信パケット記憶部１３−２からパケットデータを消去する。受信パケット記憶部１３−２はオペレーティングシステムが特権的に管理するメモリ空間であるため、セッション中継部１３−５は、受信パケット記憶部１３−２を参照できないため前記パケットデータのコピーが必要となる。
【００１２】
セッション中継処理部１３−５は、記憶部１３−４に格納されたパケットデータをＴＣＰ／ＩＰを利用して送出するよう送信プロトコル処理部１３−６に指示する。指示を受けた送信プロトコル処理部１３−６は、記憶部１３−４からパケットデータを送信パケット記憶部１３−７にコピーし、チェックサム計算などを含むＴＣＰとＩＰの処理を実施し、ネットワーク出力部１３−８にパケットデータを送出するよう指示する。ネットワーク出力部１３−８は、送信パケット記憶部１３−７からパケットデータを読み出し、ネットワークへと出力する。
【００１３】
上記のようにＩＰとＴＣＰの受信処理、セッション中継部１３−５の処理、ＴＣＰとＩＰの送信処理の間でそれぞれ、受信パケット記憶部１３−２から記憶部１３−４、記憶部１３−４から送信パケット記憶部１３−７へのパケットデータのコピーが行われ、この２回のコピー処理が大きな負荷となる。
【００１４】
ＴＣＰセッション中継の処理を高速化する従来の方式としては、以下のような方式が存在する。
【００１５】
第１の方式は、ゼロコピーＴＣＰ方式（ｈｔｔｐ：／／ｗｗｗ．ｆｒｅｅｂｓｄ．ｏｒｇ／ｃｇｉ／ｍａｎ．ｃｇｉ？ｑｕｅｒｙ＝ｚｅｒｏ＿ｃｏｐｙ＆ｓｅｋｔｉｏｎ＝９＆ｍａｎｐａｔｈ＝ＦｒｅｅＢＳＤ＋５．０−ＲＥＬＥＡＳＥから入手可能：非特許文献２）を用いることにより、データコピー回数を減らし、データコピーの処理負荷を下げる方式である。
【００１６】
本方式では、ページマッピングによるデータの仮想的な移動を利用し、ネットワークから受け取ったパケットデータを直接ユーザアプリケーションすなわちセッション中継部が管理するメモリ空間へと格納する。また、同様にページマッピングによる仮想的なデータの移動を利用し、セッション中継部が管理するメモリのデータを直接ネットワークへと送出する。ただし、このとき利用する前記メモリ空間は、セッション中継部とオペレーティングシステムが交渉した特殊なメモリ空間であるため、セッション中継部がネットワークから受信したデータをそのまま送出することはできず、送信する際には、セッション中継部が管理するメモリ空間内で一度データをコピーし、オペレーティングシステムと交渉したメモリ空間へと移動させる。
【００１７】
図２２を参照して上記ゼロコピーＴＣＰ方式による動作を説明する。
【００１８】
図２２は、従来のセッション中継装置の他の構成例を示すブロック図であり、このセッション中継装置は、ネットワークからパケットを受信し、受信パケット記憶部１４−２へ格納するネットワーク入力部１４−１と、ネットワーク入力部から渡されたパケットヘッダを基にＩＰとＴＣＰの受信処理を実施する受信プロトコル処理部１４−２と、セッション中継部と受信プロトコル処理部が交渉したメモリ空間でありネットワークから受信したパケットデータが格納される受信データ記憶部１４−３と、受信プロトコル処理部と交渉したメモリ空間である受信データ記憶部１４−３に格納されたパケットデータを送信プロトコル処理部と交渉したメモリ空間である送信データ記憶部１４−５にコピーし、送信プロトコル処理部にデータの送信を指示するセッション中継部１４−４と、セッション中継部と交渉したメモリ空間でありネットワークに送信するパケットが格納される送信データ記憶部１４−５と、セッション中継部の指示に基づきＴＣＰとＩＰの送信処理を実施し、送信データ記憶部にあるパケットデータにパケットヘッダを付加し、ネットワーク出力部にパケットの送信を指示する送信プロトコル処理部１４−６と、送信プロトコル処理部１４−６の指示を受け送信データ記憶部１４−４からパケットを取り出し、ネットワークへと送出するネットワーク出力部１４−７とを備えて構成される。
【００１９】
ネットワークからパケットデータが到着すると、ネットワーク入力部１４−１はパケットのヘッダ部分を受信プロトコル処理部１４−２に渡す。受信プロトコル処理部１４−２は、受信したパケットデータのパケットヘッダ部分を参照しＩＰとＴＣＰの受信処理を実施し、ＩＰとＴＣＰの受信処理が終了すると、受信プロトコル処理部１４−３は、セッション中継部１４−４と交渉し決定したメモリ空間である受信データ記憶部１４−３にパケットデータを格納するようネットワーク入力部１４−１に指示する。
【００２０】
ネットワーク入力部１４−１は、受信プロトコル処理部１４−２の指示に基づきパケットデータを受信データ記憶部１４−３へ格納する。受信プロトコル処理部１４−２は、ページマッピングにより受信データ記憶部１４−３に格納されたパケットデータの管理権限をセッション中継部１４−４に与える。
【００２１】
セッション中継部１４−４は、送信プロトコル処理部１４−６と交渉し決定したメモリ空間である送信データ記憶部１４−５にパケットデータをコピーし、送信プロトコル処理部１４−６に送信データ記憶部１４−５に格納されたパケットデータをＴＣＰ／ＩＰを利用して送出するよう指示する。
【００２２】
送信プロトコル処理部１４−５は、ＴＣＰとＩＰの送信処理を実施し、送信データ記憶部１４−５に格納されたパケットデータにパケットヘッダを付加したのち、ネットワーク出力部に送信データ記憶部１４−５に格納されたパケットを出力するよう指示する。ネットワーク出力部１４−７は、送信データ記憶部１４−５からパケットを読み出し、ネットワークへと出力する。
【００２３】
このように、データを受信する際には、ネットワーク入力部１４−１に到着したパケットデータを、受信プロトコル処理部１４−２とセッション中継部１４−４が交渉したメモリ空間に直接格納し、セッション中継部１４−４は、セッション中継部１４−４と送信プロトコル処理部１４−６とが交渉したメモリ空間にデータをコピーし、データを送信する祭には、セッション中継部１４−４と送信プロトコル処理部１４−６が交渉したメモリ空間から、ネットワーク出力部１４−７が直接パケットデータを読み出す。これにより、図２２に示す方式では、図２１の方式では２回必要であったデータコピーを１回に減らすことができる。
【００２４】
第２の方式は、セッション中継装置にて、ＴＣＰの処理を簡易化し、もしくは省略して利用し、セッション中継を実現する方法である。例えば、特開２００３−１７９６２６号公報（特許文献３）に開示される方法では、セッション中継装置は片方の端末とのセッションではＴＣＰ／ＩＰにより通信し、この片方の端末からの再送パケットを監視し、再送パケットが到着した回数が所定数に達するまでは、もう片方のセッションは再送パケットをそのまま送信する。また、例えば、特開２０００−１２２９３９号公報（特許文献４）に開示される方式では、セッション中継装置で、ＴＣＰ／ＩＰのヘッダの変換のみを行い、ＴＣＰの処理を受信、送信の両方において省略する。
【特許文献１】特開平１１−２５２１７９号公報
【特許文献２】特開２００２−２８１１０４号公報
【特許文献３】特開２００３−１７９６２６号公報
【特許文献４】特開２０００−１２２９３９号公報
【非特許文献１】Indirect TCP 「文献Ajay Bakre and B.R.Badrinath、“I-TCP; Indirect TCP for Mobile Host”、 Department of Computer Science Rutgers University、 DSC-TR-314、 1994;（http://www.it.iitb.ac.in/it644/papers/i-tcp.pdfより入手可能）
【非特許文献２】ゼロコピーＴＣＰ方式（ｈｔｔｐ：／／ｗｗｗ．ｆｒｅｅｂｓｄ．ｏｒｇ／ｃｇｉ／ｍａｎ．ｃｇｉ？ｑｕｅｒｙ＝ｚｅｒｏ＿ｃｏｐｙ＆ｓｅｋｔｉｏｎ＝９＆ｍａｎｐａｔｈ＝ＦｒｅｅＢＳＤ＋５．０−ＲＥＬＥＡＳＥから入手可能）
【非特許文献３】文献ＴＣＰ／ＩＰ  Ｉｌｌｕｓｔｒａｔｅｄ、  Ｖｏｌｕｍｅ  １：  Ｔｈｅ  Ｐｒｏｔｏｃｏｌｓ、  Ａｄｄｉｓｏｎ−Ｗｅｓｌｅｙ、  １９９４、  ＩＳＢＮ  ０−２０１−６３３４６−９８９
【発明の開示】
【発明が解決しようとする課題】
【００２５】
第１の問題点は、前述した第１方式では、セッション中継部が管理するメモリ空間内でのデータコピー処理が数回必要となり、このコピー処理による負荷が大きく高速な中継処理を実現するうえでボトルネックとなる点である。
【００２６】
また、データコピー回数を減らし、データコピーの処理負荷を下げるゼロコピー方式では、セッション中継部とオペレーティングシステムが交渉した特殊なメモリ空間を利用し、受信のためのメモリ空間と、送信のためのメモリ空間がそれぞれ必要となるため、セッション中継部がネットワークから受信したデータをそのまま送出することはできず、送信する際には、セッション中継部が管理するメモリ空間内で一旦データをコピーし、オペレーティングシステムと交渉したメモリ空間へと移動させる。従って、この方式でも、コピー処理による負荷が大きくなる。
【００２７】
第２の問題点は、第１の方式では、パケット長に制限がある点である。ページマッピングによる仮想的なデータの移動を利用するためには、ＣＰＵの処理するページサイズとパケット長が一致している必要がある。一般的に、セッション中継装置は送受信端末とは独立して存在し、送受信端末が用いるパケット長をあらかじめ想定しておくことはできないため、帯域制御装置のページサイズと異なるパケット長を用いる送受信端末に対しては、ゼロコピーによる処理負荷低減が期待できない。
【００２８】
第３の問題点は、第１の方式では、既存のＴＣＰ／ＩＰプロトコルの受信処理と送信処理をそのまま実施するため、セッション中継処理において１回で充分な処理を２回実施してしまい、この処理コストが高くなる点である。特に、ＴＣＰではパケットのデータ全体に対するチェックサム計算を実施するため、チェックサム計算による処理負荷が大きくなる。
【００２９】
第４の問題点は、第１の方式では、全てのパケットに対してＩＰレイヤの処理を実施するため、ＩＰレイヤの処理負荷が高い点である。
【００３０】
第５の問題点は、第２の方式では、セッション中継装置で動作が簡略化されたセッションが利用するネットワークでのパケット廃棄率が高い場合には、高いスループットを発揮することができないことである。
【課題を解決するための手段】
【００３１】
本発明は以上の問題点を鑑み発案されたものであり、高速にセッション間の中継処理を行うセッション中継装置を実現することを目的とする。
【００３２】
第１の問題点を解決するため、本発明によるセッション中継装置では、セッション中継部へのデータコピーを行わず、そのため送信時にＯＳが指定したアドレスを利用する必要がない。すなわち、受信パケットは、受信バッファに格納された後、ＴＣＰレイヤやその他上位レイヤ、アプリケーションの受信バッファに格納されることなく、また、ＴＣＰレイヤやその他上位レイヤ、アプリケーションの送信バッファに格納に格納されることも無く、処理が実施される。そのため、セッション中継部内のデータの移動がない。
【００３３】
第２の問題点を解決するため、本発明によるセッション中継装置では、セッション中継部へのデータコピーは行わず、そのためページマッピングによるデータの移動の必要がない。すなわち、受信パケットは、受信バッファに格納された後、ＴＣＰレイヤやその他上位レイヤ、アプリケーションの受信バッファに格納されることなく、また、ＴＣＰレイヤやその他上位レイヤ、アプリケーションの送信バッファに格納に格納されることも無く、処理が実施される。そのため、セッション中継装置内のデータの移動は発生せず、ページマッピングによるデータの移動の必要がない。
【００３４】
第３の問題点を解決するため、本発明によるセッション中継装置では、受信時にパケット全体のチェックサム値を計算し、送信時には、パケットのうち、セッション中継処理において更新された部分を対象としてチェックサム値を計算することにより、パケット全体に対するチェックサムを再計算する必要がない。
【００３５】
第４の問題点を解決するため、本発明によるセッション中継装置では、セッション中継処理において、ＩＰ処理のうち全てのパケットに対して必要な処理だけを実施し、ＩＰレイヤを利用せずにパケットを送出することで、ＩＰレイヤの全ての送信処理を全てのパケットに対して実施する必要がない。
【００３６】
第５の問題点を解決するだめ、本発明によるセッション中継装置では、セッション中継処理において、完全なＴＣＰの動作を実現することで、ネットワークのパケット廃棄率が高い場合でも、ＴＣＰのパケット再送の動作が実現され、スループットの低下が少ない。
【発明の効果】
【００３７】
本発明の第１の効果は、複数のレイヤの受信バッファ及び送信バッファをＩＰレイヤの受信バッファに集約することにより、バッファ間でのデータ移動をなくし、セッション中継処理の高速化を実現できることである。
【００３８】
本発明の第２の効果は、受信処理と送信処理におけるチェックサム値の計算回数を必要最低限に少なくすることによって、チェックサム値の計算処理コストを低減し、セッション中継処理の高速化を実現できることである。
【００３９】
本発明の第３の効果は、ＩＰ層の送信処理における処理が必要か判定する手段と、これを省略する手段を持つことにより、ＩＰ層の送信処理コストを低減し、セッション中継処理の高速化を実現できることである。
【００４０】
本発明の第４の効果は、ＩＰ層の送信処理において、全てのパケットに対して必要となる処理と、そうではない処理を分類し、多くの場合では前者のみを処理することによってＩＰ層の送信処理コストを低減し、セッション中継処理の高速化を実現できることである。
【発明を実施するための最良の形態】
【００４１】
以下、本発明の実施例について図面を参照して詳細に説明する。
【実施例１】
【００４２】
図１は、本発明によるセッション中継装置の第１の実施例の構成を示すブロック図である。
【００４３】
本実施例によるセッション中継装置１−０は、ネットワークからパケットを受信し、ＴＣＰ／ＩＰの受信処理をし、記憶部１−２に格納するネットワーク入力処理部１−１、パケットが格納される記憶部１−２、記憶部１−２に格納されネットワーク入力処理部１−１での受信処理が完了したパケットに対してＴＣＰ／ＩＰの送信処理を実施し、記憶部１−２から取り出しネットワークへパケットを出力するネットワーク出力処理部１−３を備える構成である。
【００４４】
この第１の実施例では、図２に示すように送信端末１０から受信端末２０へとデータを送る場合に、セッション中継装置１−０がデータの中継を実現する場合を想定し、この場合の処理を説明する。
【００４５】
図２は、本実施例でセッション中継装置１−０および送信端末１０、受信端末２０間のデータの流れを示したブロック図である。
【００４６】
送信端末１０から受信端末２０へパケットデータを送る場合、送信端末１０はセッション中継装置１−０に向けてデータを格納したパケットを送信する。セッション中継端末１−０は、送信端末１０からのパケットを受信し、セッション中継装置１−０がデータ受信処理を行う。これにより、セッション中継装置１−０は送信端末１０から受け取ったパケットを受信端末２０へと送信する。
【００４７】
なお、ＴＣＰとＩＰの処理に関しては、ＲＦＣ７９３、ＲＦＣ７９１、ＲＦＣ２４６０や、文献ＴＣＰ／ＩＰ  Ｉｌｌｕｓｔｒａｔｅｄ、  Ｖｏｌｕｍｅ  １：  Ｔｈｅ  Ｐｒｏｔｏｃｏｌｓ、  Ａｄｄｉｓｏｎ−Ｗｅｓｌｅｙ、  １９９４、  ＩＳＢＮ  ０−２０１−６３３４６−９８９（非特許文献３）に詳しく記載されている。これら文献の規定を実現した例としてＬｉｎｕｘやＷｉｎｄｏｗｓ(R)などのＴＣＰ／ＩＰプロトコルスタックなど多くの例がある。このため本実施例ではＴＣＰ処理およびＩＰ処理の内容そのものは本質的でないためその説明を省略する。
【００４８】
次いで、図３を参照して第１の実施例によるセッション中継装置１−０による処理について説明する。図３は第１の実施例によるセッション中継装置の処理の概要を示すフローチャートである。
【００４９】
このセッション中継装置１−０は、ネットワーク入力処理部１−１に送信端末１０からのパケットが到着することによって処理を開始する。
【００５０】
ステップ３−１では、ネットワーク入力処理部１−１が記憶部１−２へと該パケットを格納する。
【００５１】
ステップ３−２では、ネットワーク入力処理部１−１が、ＩＰ受信処理を実施する。
【００５２】
ステップ３−３で、ＩＰ受信処理が正常終了した場合、次のステップへ移行し、そうでない場合には処理を終了する。
【００５３】
ステップ３−４では、ネットワーク入力処理部１−１が、記憶部１−２に格納された該パケットを参照し、該パケットに対してＴＣＰの規定に従った受信処理を実施する。
【００５４】
ステップ３−５で、ＴＣＰの受信処理が正常に終了した場合は、ネットワーク出力処理部１−３に該パケットの格納位置を通知し、ステップ３−６に移行する。そうでない場合は処理を終了する。
【００５５】
ステップ３−６では、ネットワーク出力処理部１−３が、ネットワーク入力処理部１−１から通知され記憶部１−２に格納された該パケットを参照し、該パケットに対してＴＣＰとＩＰの送信処理を実施する。ここで、ＴＣＰとＩＰの送信処理においてパケットヘッダを更新する必要がある場合は、記憶部１−２に格納された該パケットヘッダを上書きし更新する。
【００５６】
ステップ３−７で、ＴＣＰとＩＰの送信処理の結果、該パケットの送信が可能と判定された場合は、ステップ３−５へ移行する。そうでない場合は、処理を終了する。
【００５７】
ステップ３−８では、ネットワーク出力処理部１−３が記憶部１−２から該パケットを取り出し、受信端末２０へと送信する。
【００５８】
ステップ３−９で、ネットワーク出力処理部１−３は、受信端末２０へと該パケットを送出し、受信端末２０が該パケットを正常に受信したことを確認した場合には、該パケットを記憶部１−２から削除する。
【００５９】
以上が第１の実施例によるセッション中継装置１−０におけるセッション中継処理の内容である。
【００６０】
従来の技術においては、ネットワーク入力部が受信処理を行った後に、ネットワーク出力部にデータを渡すときに該パケットを記憶部のなかでデータをコピーし、該コピーされたパケットに対してネットワーク出力部が送信処理を行うため、パケットのコピーのオーバヘッドが生じてしまっており、これが性能劣化を引き起こしていた。
【００６１】
一方、上記で述べたように、本実施例では、中継するデータパケットをネットワーク入力処理部１−１の受信時に記憶部１−２へ格納し、送信時これをネットワーク出力処理部１−３が記憶部１−２から取り出すまで一切のコピーを行うことなく、同一のパケットに対して受信および送信処理を行うため、コピー処理によるオーバヘッドを軽減することができる。
【実施例２】
【００６２】
図４は、本発明の第２の実施例によるセッション中継装置の構成を示すブロック図である。第２の本実施例によるセッション中継装置４−０は、ネットワークからパケットを受信し記憶部４−２に格納するネットワーク入力部４−１、到着したパケットが格納される記憶部４−２、記憶部４−２に格納されたパケットに対してＩＰとＴＣＰとの受信処理を実施し、送信プロトコル処理部４−４にパケットの処理を指示する受信プロトコル処理部４−３、記憶部４−２に格納され受信プロトコル処理部４−３での受信処理が完了したパケットに対してＴＣＰとＩＰの送信処理を実施する送信プロトコル処理部４−４、送信プロトコル処理部４−３と受信プロトコル処理部４−４の指示に基づいて記憶部４−２からパケットを取り出しネットワークへと出力するネットワーク出力部４−５を備えた構成となっている。
【００６３】
第２の実施例では、図５に示すように送信端末１０から受信端末２０へとデータを送る場合にセッション中継装置４−０がデータの中継を実現する場合を想定し、このときの処理を説明する。
【００６４】
図５は、本実施例でセッション中継装置および送信端末、受信端末間のデータの流れを示したブロック図である。送信端末１０から受信端末２０へデータを送る場合、送信端末１０はセッション中継装置４−０に向けてデータを格納したパケットを送信する。セッション中継端末４−０は送信端末１０からのパケットを受信し、セッション中継装置４−０がデータ受信処理をおこなう。これにより、セッション中継装置４−０は送信端末１０から受け取ったパケットを受信端末２０へと送信する。
【００６５】
なお、本実施例でも、ＴＣＰとＩＰの処理の内容そのものについては本質的でないため説明を省略する。
【００６６】
次いで、図６を参照して第２の実施例によるセッション中継装置４−０による処理について説明する。図６は第２の実施例によるセッション中継装置の処理の概要を示すフローチャートである。
【００６７】
本セッション中継装置４−０は、ネットワーク入力部４−１に送信端末１０からのパケットが到着することによって処理を開始する。
【００６８】
ステップ６−１では、ネットワーク入力部４−１が記憶部４−２へと該パケットを格納する。ネットワーク入力部４−１は受信プロトコル処理部４−３へ該パケットを格納したことを通知する。
【００６９】
ステップ６−２では、受信プロトコル処理部４−４が、ＩＰの受信処理を実施する。
【００７０】
ステップ６−３で、ＩＰの受信処理が正常終了した場合、ステップ６−４へ移行する。そうでない場合は記憶部４−２から該パケットを削除し処理を終了する。
【００７１】
ステップ６−４では、受信プロトコル処理部４−３が、記憶部４−２に格納された該パケットを参照し、該パケットに対してＴＣＰの規定に従った受信処理を実施する。
【００７２】
ステップ６−５で、ＴＣＰの受信処理が正常に終了した場合は、送信プロトコル処理部４−４に該パケットの格納位置を通知し、ステップ６−６に移行する。そうでない場合は記憶部４−２から該パケットを削除し処理を終了する。
【００７３】
ステップ６−６では、送信プロトコル処理部４−４が、受信プロトコル処理部４−３から通知され記憶部４−２に格納された該パケットを参照し、該パケットに対してＴＣＰとＩＰの送信処理を実施する。ＴＣＰとＩＰの送信処理においてパケットヘッダを更新する必要がある場合は、記憶部４−２に格納された該パケットヘッダを上書きし更新する。
【００７４】
ステップ６−７で、ＴＣＰとＩＰの送信処理の結果、該パケットの送信が可能と判定された場合は、ステップ６−８へ移行する。そうでない場合は、処理を終了する。
【００７５】
ステップ６−８では、送信プロトコル処理部４−４がネットワーク出力部４−５へ該パケットが格納された位置を通知し、該パケットを出力することを指示する。
【００７６】
ステップ６−９で、ネットワーク出力部４−５は、指示に基づき記憶部４−２から該パケットを取り出し、受信端末２０へと送信する。
【００７７】
さらに、ステップ６−１０で、ネットワーク出力部４−５は、受信端末２０へ送信したパケットが、受信端末２０で正常に受信されたことを確認した場合、該パケットの削除を送信プロトコル処理部４−４に依頼する。これを受けて、送信プロトコル処理部４−４は、該パケットを削除する。
【００７８】
以上が第２の実施例によるセッション中継装置４−０におけるセッション中継処理の内容である。
【００７９】
従来の技術においては、受信処理部が受信処理を行った後に、送信処理部に該パケットを記憶部内でコピーし、該コピーされたパケットに対して送信処理部が送信処理を行うため、パケットのコピーのオーバヘッドが生じてしまっており、これが性能劣化を引き起こす。
【００８０】
これに対して、上記で述べたように、本実施例では、中継するデータパケットをネットワーク入力部４−１の受信時に記憶部４−２へ格納し、送信時これを記憶部４−２から取り出すまで一切のコピーを行うことなく、同一のパケットに対して受信および送信処理を行うため、コピーによるオーバヘッドを軽減することができる。
【実施例３】
【００８１】
本発明の第３の実施例によるセッション中継装置の構成は図１に示した第１の実施例と同様であるため、ここでは第１の実施例の構成を示す図１、図２を用いて説明する。以下では、第１の実施例との相違点のみを説明する。
【００８２】
第３の実施例のセッション中継装置においては、ネットワーク入力処理部１−１は到着したＴＣＰとＩＰのチェックサム値をそれぞれ計算し、パケットに格納されているＴＣＰのチェックサム値、ＩＰのチェックサム値と計算結果が一致しなかった場合はパケットを破棄し、パケットに格納されているチェックサム値と計算結果が一致した場合は、記憶部１−２に格納する。
【００８３】
ネットワーク出力処理部１−３では、パケットに更新があった場合のみ、該パケットの更新部分についてのみチェックサム値の差分を計算し、パケット内に格納されているチェックサム値に計算した差分を反映させるよう更新する。もしくは、ネットワーク出力処理部１−３では、チェックサム値の差分を計算する部分の判定を簡単化するため、該パケットのヘッダ部分全体のチェックサム値を計算し、その差分を求める構成とすることも可能である。
【００８４】
次いで、図７を参照して第３の実施例によるセッション中継装置による処理について説明する。図７は第３の実施例によるセッション中継装置の処理の概要を示すフローチャートである。
【００８５】
セッション中継装置１−０は、ネットワーク入力処理部１−１に送信端末１０からのパケットが到着することによって処理を開始する。
【００８６】
ステップ７−１では、ネットワーク入力処理部１−１が該パケットに対してＴＣＰとＩＰのチェックサム値を計算する。
【００８７】
ステップ７−２で、チェックサム値の計算結果がパケットに格納されていたチェックサム値と等しいかどうかを判定し、異なった場合はパケットを廃棄し、処理を終了する。チェックサム値の計算結果がパケットに格納されていたチェックサム値と等しければ、ステップ７−３へ移行する。
【００８８】
ステップ７−３では、ネットワーク入力処理部１−１が記憶部１−２へと該パケットを格納する。
【００８９】
ステップ７−４では、ネットワーク入力処理部１−１が、ＩＰ受信処理を実施する。ただし、ＩＰのチェックサム値の確認は行わない。
【００９０】
ステップ７−５で、ＩＰ受信処理が正常終了した場合、ステップ７−６へ移行する。そうでない場合は記憶部から該パケットを削除し処理を終了する。
【００９１】
ステップ７−６では、ネットワーク入力処理部１−１が、記憶部１−２に格納された該パケットを参照し、該パケットに対してＴＣＰの規定に従った受信処理を実施する。
【００９２】
ステップ７−７で、ＴＣＰの受信処理が正常に終了した場合は、ネットワーク出力処理部１−３に該パケットの格納位置を通知し、次のステップへ進む。そうでない場合は処理を終了する。
【００９３】
ステップ７−８では、ネットワーク出力処理部１−３が、ネットワーク入力処理部１−１から通知され記憶部１−２に格納された該パケットを参照し、該パケットに対してＴＣＰとＩＰの送信処理を実施する。ＴＣＰとＩＰの送信処理においてパケットヘッダを更新する必要がある場合は、記憶部１−２に格納された該パケットヘッダを上書きし更新する。ただし、チェックサムについては該パケットの更新部分についてのみチェックサム値の差分を計算し、パケット内に格納されているチェックサム値に計算した差分を反映させるよう更新する。
【００９４】
ステップ７−９で、ＴＣＰとＩＰの送信処理の結果、該パケットの送信が可能と判定された場合は、ステップ７−１０へ移行する。そうでない場合は、処理を終了する。
【００９５】
ステップ７−１０では、ネットワーク出力処理部１−３は記憶部１−２から該パケットを取り出し、受信端末２０へと送信する。
【００９６】
ステップ７−１１で、ネットワーク出力処理部１−３は、送信したパケットを受信端末２０が正常に受信したことを確認した場合、該パケットを記憶部１−２から削除する。
【００９７】
以上が第３の実施例によるセッション中継装置におけるセッション中継処理の内容である。
【００９８】
以上のように、本実施例では、ネットワーク入力処理部１−２でパケット全体に対するチェックサムの確認をすることにより、送信プロトコル処理部におけるチェックサム値計算の手間を減らすことができ、チェックサム値計算の処理負荷を小さくすることができる。
【実施例４】
【００９９】
本発明の第４の実施例によるセッション中継装置の構成は図４に示した第２の実施例と同様であるため、ここでは第２の実施例の構成を示すブロック図４、図５を用いて説明する。以下では、第２の実施例との相違点のみを説明する。
【０１００】
ここでは、第２の実施例のＴＣＰとＩＰの受信処理と送信処理に含まれるチェックサム計算について述べる。
【０１０１】
ネットワーク入力部４−１は、到着したＴＣＰとＩＰのチェックサム値をそれぞれ計算し、パケットに格納されているＴＣＰのチェックサム値、ＩＰのチェックサム値と計算結果が一致しなかった場合はパケットを破棄し、パケットに格納されているチェックサム値と計算結果が一致した場合は、記憶部４−２に格納する。
【０１０２】
受信プロトコル処理部４−３ではＴＣＰプロトコル、ＩＰプロトコルに含まれるチェックサム計算を省略し、送信プロトコル処理部４−４では、パケットに更新があった場合のみ、該パケットの更新部分についてのみチェックサム値の差分を計算し、パケット内に格納されているチェックサム値に計算した差分を反映させるよう更新する。もしくは、送信プロトコル処理部４−４では、チェックサム値の差分を計算する部分の判定を簡単化するため、該パケットのヘッダ部分全体のチェックサム値を計算し、その差分を求めるように構成することも可能である。
【０１０３】
次いで、図８を参照して第４の実施例によるセッション中継装置による処理について説明する。図８は第４の実施例によるセッション中継装置の処理の概要を示すフローチャートである。
【０１０４】
セッション中継装置はネットワーク入力部４−１に送信端末１０からのパケットが到着することによって処理を開始する。
【０１０５】
ステップ８−１では、ネットワーク入力部４−１が該パケットに対してＴＣＰとＩＰのチェックサム値を計算する。
【０１０６】
ステップ８−２で、チェックサム値の計算結果がパケットに格納されていたチェックサム値と等しいかどうかを判定し、異なった場合はパケットを廃棄し、処理を終了する。チェックサム値の計算結果がパケットに格納されていたチェックサム値と等しければ、ステップ８−３へ移行する。
【０１０７】
ステップ８−３では、ネットワーク入力部４−１が記憶部４−２へと該パケットを格納する。ネットワーク入力部４−１は受信プロトコル処理部４−３へ該パケットを格納したことを通知する。
【０１０８】
ステップ８−４では、受信プロトコル処理部４−４が、ＩＰ受信処理を実施する。ただし、ＩＰのチェックサム値の確認は行わない。
【０１０９】
ステップ８−５で、ＩＰ受信処理が正常終了した場合、ステップ８−６へ移行する。そうでない場合は記憶部４−２から該パケットを削除し処理を終了する。
【０１１０】
ステップ８−６では、受信プロトコル処理部４−３が、記憶部４−２に格納された該パケットを参照し、該パケットに対してＴＣＰの規定に従った受信処理を実施する。
【０１１１】
ステップ８−７で、ＴＣＰの受信処理が正常に終了した場合は、送信プロトコル処理部４−４に該パケットの格納位置を通知し、ステップ８−８に移行する。そうでない場合は記憶部４−２から該パケットを削除し処理を終了する。
【０１１２】
ステップ８−８では、送信プロトコル処理部４−４が、受信プロトコル処理部４−３から通知され記憶部４−２に格納された該パケットを参照し、該パケットに対してＴＣＰとＩＰの送信処理を実施する。ＴＣＰとＩＰの送信処理においてパケットヘッダを更新する必要がある場合は、記憶部に格納された該パケットヘッダを上書きし更新する。ただし、チェックサムについては該パケットの更新部分についてのみチェックサム値の差分を計算し、パケット内に格納されているチェックサム値に計算した差分を反映させるよう更新する。
【０１１３】
ステップ８−９で、ＴＣＰとＩＰの送信処理の結果、該パケットの送信が可能と判定された場合は、ステップ８−１０へ移行する。そうでない場合は、処理を終了する。
【０１１４】
ステップ８−１０では、送信プロトコル処理部４−４がネットワーク出力部４−５へ該パケットが格納された位置を通知し、該パケットを出力することを指示する。
【０１１５】
ステップ８−１１で、ネットワーク出力部４−５は上記指示に基づいて記憶部４−２から該パケットを取り出し、受信端末２０へ送信する。
【０１１６】
ステップ８−１２で、ネットワーク出力部４−５は、送信したパケットを受信端末２０が正常に受信したことを確認した場合に、該パケットの削除を送信プロトコル処理部４−４に依頼する。これを受けて、送信プロトコル処理部４−４は、該パケットを削除する。
【０１１７】
以上が第４の実施例によるセッション中継装置におけるセッション中継処理の内容である。
【０１１８】
以上のように、本実施例では、ネットワーク入力部４−１でパケット全体に対するチェックサムの確認をすることにより、受信プロトコル処理部４−３におけるチェックサム計算を省略でき、送信プロトコル処理部４−４におけるチェックサム値計算の手間を減らすことができ、チェックサム値計算のための処理負荷を小さくすることができる。
【０１１９】
特に、セッション中継装置が汎用計算機を用いて実現されたものであり、ネットワーク入力部４−１がチェックサム計算機能を持つネットワークインタフェースカードである実施例も可能であり、この場合には汎用計算機のＣＰＵが計算するチェックサムの計算が大幅に削減されるため効果が高い。
【実施例５】
【０１２０】
本発明の第５の実施例によるセッション中継装置の構成は図１に示した第１の実施例と同様であるため、ここでは第１の実施例の構成を示す図１、図２を用いて説明する。以下では、第３の実施例との相違点のみを説明する。
【０１２１】
第５の実施例によるセッション中継装置においては、ネットワーク出力処理部１−３が、セッション中継装置と受信端末２０の間の通信設定と通信の状態に基づき、送信処理のうちＩＰの送信処理を実施するか省略するか決定する機能を有する。
【０１２２】
ネットワーク出力処理部１−３は、ＩＰの送信処理が必要と判定した場合は、ＩＰの送信処理を実施し、ＩＰの送信処理を省略可能と判定した場合は、ＩＰの送信処理を省略し、ネットワークにパケットを出力する機能を有する。
【０１２３】
ネットワーク出力処理部１−３がＩＰの送信処理が必要と判定する状況は、ネットワーク出力処理部１−３のＩＰ処理でＮＡＴやＩＰマスカレードといったＩＰアドレスを変換する技術が設定されている場合と、ＡＲＰ、ＩＣＭＰなどの結果設定されネットワークにパケットを出力するために利用するパラメタが保持されていない場合である。
【０１２４】
また、ＩＣＭＰリダイレクトやスパニングツリーにより、ネットワークにパケットを出力するために利用するパラメタが変更された場合も、再度ＩＰ層の処理によりパラメタを取得する必要があるため、ＩＰの送信処理が必要な場合に該当する。チェックサム計算は全てのＩＰ送信処理で必要な処理であるが、本発明の第３の実施例によりＩＰの送信処理では省略しているとし、ここでは対象としない。
【０１２５】
ここで、ＩＰの送信処理が必要か不必要かを判定する手順を簡単化するためには、ネットワーク出力処理部１−３は、送信端末１０とセッション中継装置１−０、セッション中継装置１−０と受信端末２０のセッションが確立されるときに利用されるパケットについては、ＡＲＰやＩＣＭＰなどが利用される可能性が高いため、ＩＰ層の処理が必要であると仮定してＩＰ層の送信処理を実施し、セッションが開設されていくつかのパケットが受信端末２０とやりとりされた後は、ＩＰ層の処理を省略するものとする。
【０１２６】
ただし、ネットワーク出力処理処理部１−３は、ＮＡＴとＩＰマスカレードが送信プロトコル処理のＩＰ処理に設定されている場合はＩＰ層の処理が必要と判定し、常にＩＰ層の送信処理を実施する。ＩＣＭＰリダイレクトや、スパニングツリーにより、下位レイヤの宛先が変更された場合はＩＰ層の送信処理を実施する。
【０１２７】
次いで、図９を参照して第５の実施例によるセッション中継装置による処理について説明する。図９は第５の実施例によるセッション中継装置の処理の概要を示すフローチャートである。
【０１２８】
セッション中継装置１−０は、ネットワーク入力処理部１−１に送信端末１０からのパケットが到着することによって処理を開始する。
【０１２９】
ステップ９−１では、ネットワーク入力処理部１−１が該パケットに対してＴＣＰとＩＰのチェックサム値を計算する。
【０１３０】
ステップ９−２で、チェックサム値の計算結果がパケットに格納されていたチェックサム値と等しいかどうかを判定し、異なった場合はパケットを廃棄し、処理を終了する。チェックサム値の計算結果がパケットに格納されていたチェックサム値と等しければ、ステップ９−３へ移行する。
【０１３１】
ステップ９−３では、ネットワーク入力処理部１−１が記憶部１−２へ該パケットを格納する。
【０１３２】
ステップ９−４では、ネットワーク入力処理部１−１が、ＩＰ受信処理を実施する。ただし、ＩＰのチェックサム値の確認は行わない。
【０１３３】
ステップ９−５で、ＩＰ受信処理が正常終了した場合、ステップ９−６へ移行する。そうでない場合は記憶部から該パケットを削除し処理を終了する。
【０１３４】
ステップ９−６では、ネットワーク入力処理部１−１が、記憶部１−２に格納された該パケットを参照し、該パケットに対してＴＣＰの規定に従った受信処理を実施する。
【０１３５】
ステップ９−７で、ＴＣＰの受信処理が正常に終了した場合は、ネットワーク出力処理部１−３に該パケットの格納位置を通知し、次のステップへ進む。そうでない場合は処理を終了する。
【０１３６】
ステップ９−８では、ネットワーク出力処理部１−３が、ネットワーク入力処理部１−１から通知され記憶部１−２に格納された該パケットを参照し、該パケットに対してＴＣＰの送信処理を実施する。ＴＣＰの送信処理においてパケットヘッダを更新する必要がある場合は、記憶部１−２に格納された該パケットヘッダを上書きし更新する。ただし、チェックサムについては該パケットの更新部分についてのみチェックサム値の差分を計算し、パケット内に格納されているチェックサム値に計算した差分を反映させるよう更新する。
【０１３７】
ステップ９−９で、ＴＣＰの送信処理の結果、該パケットの送信が可能と判定された場合は、ステップ９−１０へ移行する。そうでない場合は、処理を終了する。
【０１３８】
ステップ９−１０では、ネットワーク出力処理部１−３が、ＩＰの送信処理が必要か省略可能かを判定する。ＩＰの送信処理が必要であればステップ９−１１へ移行する。そうでなければステップ９−１２へ移行する。
【０１３９】
ステップ９−１１では、ネットワーク出力処理部１−３が、記憶部１−２に格納された該パケットを参照し、該パケットに対してＩＰの送信処理を実施する。
【０１４０】
ステップ９−１２では、ネットワーク出力処理部１−３が記憶部１−２から該パケットを取り出し、受信端末２０へと該パケットを送出する。
【０１４１】
ステップ９−１３で、送信したパケットを受信端末２０が正常に受信したことを確認した場合、該パケットを記憶部１−２から削除する。
【０１４２】
以上が第５の実施例によるセッション中継装置におけるセッション中継処理の内容である。
【０１４３】
以上のように、本実施例では、ネットワーク出力処理部１−３がＩＰレイヤの処理が省略可能かを判断する機能と、ＩＰレイヤの処理を省略しネットワークへパケットを出力する機能を有することによって、ＩＰレイヤの処理を軽減することができる。
【実施例６】
【０１４４】
本発明の第６の実施例によるセッション中継装置の構成は第２の実施例と同様であるため、ここでは第２の実施例の構成を示すブロック図４、図５を用いて説明する。ここでは第２の実施例との相違点のみを説明する。
【０１４５】
セッション中継装置４−０においては、送信プロトコル処理部４−４は、セッション中継装置４−０と受信端末２０の間の通信設定と通信の状態に基づき、送信処理のうちＩＰの送信処理を実施するか省略するか決定する機能を有する。
【０１４６】
送信プロトコル処理部４−４は、ＩＰの送信処理が必要と判定した場合は、ＩＰの送信処理を実施する。一方、ＩＰの送信処理を省略可能と判定した場合は、ＩＰの送信処理を省略し、ネットワーク出力部４−５にパケットの出力を指示する機能を有する。
【０１４７】
ＩＰの送信処理を省略不可能と判定する状況は、送信プロトコル処理部４−４のＩＰ処理でＮＡＴやＩＰマスカレードといったＩＰアドレスを変換する技術が設定されている場合と、ＡＲＰ、ＩＣＭＰなどの結果設定されネットワークにパケットを出力するために利用するパラメタが保持されていない場合である。
【０１４８】
また、ＩＣＭＰリダイレクトやスパニングツリーにより、下位レイヤの宛先が変更された場合も再度ＩＰ層の処理によりパラメタを取得する必要があるため、ＩＰの送信処理を省略不可能な場合に該当する。チェックサム計算は全てのＩＰ送信処理で必要な処理であるが、本発明の第４の実施例によりＩＰの送信処理では省略しているとし、ここでは対象としない。
【０１４９】
ただし、送信プロトコル処理部４−４は、ＮＡＴとＩＰマスカレードが送信プロトコル処理のＩＰ処理に設定されている場合はＩＰ層の処理が必要と判定し、常にＩＰ層の送信処理を実施する。ＩＣＭＰリダイレクトや、スパニングツリーにより、下位レイヤの宛先が変更された場合はＩＰ層の送信処理を実施する。
【０１５０】
次いで、図１０を参照して第６の実施例によるセッション中継装置による処理について説明する。図１０は第６の実施例によるセッション中継装置の処理の概要を示すフローチャートである。
【０１５１】
セッション中継装置４−０は、ネットワーク入力部４−１に送信端末１０からのパケットが到着することによって処理を開始する。
【０１５２】
ステップ１０−１では、ネットワーク入力部４−１が該パケットに対してＴＣＰとＩＰのチェックサム値を計算する。
【０１５３】
ステップ１０−２で、チェックサム値の計算結果がパケットに格納されていたチェックサム値と等しいかどうかを判定し、異なった場合はパケットを廃棄し、処理を終了する。チェックサム値の計算結果がパケットに格納されていたチェックサム値と等しければ、ステップ１０−３へ移行する。
【０１５４】
ステップ１０−３では、ネットワーク入力部４−１が記憶部４−２へと該パケットを格納する。ネットワーク入力部４−１は受信プロトコル処理部４−３へ該パケットを格納したことを通知する。
【０１５５】
ステップ１０−４では、受信プロトコル処理部４−４が、ＩＰ受信処理を実施する。ただし、ＩＰのチェックサム値の確認は行わない。
【０１５６】
ステップ１０−５では、ＩＰ受信処理が正常終了した場合、ステップ１０−６へ移行する。そうでない場合は記憶部から該パケットを削除し処理を終了する。
【０１５７】
ステップ１０−６では、受信プロトコル処理部４−３が、記憶部４−２に格納された該パケットを参照し、該パケットに対してＴＣＰの規定に従った受信処理を実施する。
【０１５８】
ステップ１０−７では、ＴＣＰの受信処理が正常に終了した場合は、送信プロトコル処理部４−４に該パケットの格納位置を通知し、ステップ１０−８に移行する。そうでない場合は記憶部４−２から該パケットを削除し処理を終了する。
【０１５９】
ステップ１０−８では、送信プロトコル処理部４−４が、受信プロトコル処理部４−３から通知され記憶部４−２に格納された該パケットを参照し、該パケットに対してＴＣＰの送信処理を実施する。ＴＣＰの送信処理においてパケットヘッダを更新する必要がある場合は、記憶部４−２に格納された該パケットヘッダを上書きし更新する。ただし、チェックサムについては該パケットの更新部分についてのみＴＣＰとＩＰのチェックサム値の差分を計算し、パケット内に格納されているチェックサム値に計算した差分を反映させるよう更新する。
【０１６０】
ステップ１０−９で、ＴＣＰの送信処理の結果、該パケットの送信が可能と判定された場合は、ステップ１０−１０へ移行する。そうでない場合は、処理を終了する。
【０１６１】
ステップ１０−１０では、送信プロトコル処理部４−４が、ＩＰの送信処理が必要か省略可能かを判定する。ＩＰの送信処理が必要であればステップ１０−１１へ移行する。そうでなければステップ１０−１２へ移行する。
【０１６２】
ステップ１０−１１では、送信プロトコル処理部４−４が、記憶部４−２に格納された該パケットを参照し、該パケットに対してＩＰの送信処理を実施する。
【０１６３】
ステップ１０−１２では、送信プロトコル処理部４−４がネットワーク出力部４−５へ該パケットが格納された位置を通知し、該パケットを出力することを指示する。
【０１６４】
ステップ１０−１３では、ネットワーク出力部４−５が指示に基づき記憶部４−２から該パケットを取り出し、受信端末２０へ送信する。
【０１６５】
ステップ１０−１４で、ネットワーク出力部４−５は、送信したパケットを、受信端末２０が正常に受信したことを確認した場合、該パケットの削除を送信プロトコル処理部４−４に依頼する。これを受けて、送信プロトコル処理部４−４は、該パケットを削除する。
【０１６６】
以上が第６の実施例によるセッション中継装置におけるセッション中継処理の内容である。
【０１６７】
以上のように、本実施例では、送信プロトコル処理部４−４がＩＰレイヤの処理が省略可能かを判断する機能と、ＩＰレイヤの処理を省略しネットワーク出力部４−５へとパケットの出力を指示する機能を有することによって、ＩＰレイヤの処理を軽減することができる。
【実施例７】
【０１６８】
本発明の第７の実施例によるセッション中継装置の構成は第１及び第５の実施例と同様であるため、ここでは第５の実施例の構成を示すブロック図１、図２を用いて説明する。ここでは第５の実施例との相違点のみを説明する。
【０１６９】
第７の実施例のセッション中継装置１−０においては、ネットワーク出力処理部１−３は、ＩＰレイヤの送信処理のうちで、すべてのパケットに共通する処理を実行する機能を有する。
【０１７０】
ＩＰレイヤ処理のうちで全てのパケットに共通するものは、第３の実施例で説明したチェックサム値の計算と、ＮＡＴ（ネットワークアドレス変換）やＩＰマスカレードなどが設定されている場合は、これも該当する。
【０１７１】
チェックサム値の計算は全てのＩＰ送信処理で必要な処理であるが、本発明の第３の実施例によりＩＰ層の送信処理では省略しているので、ここでは対象としない。
【０１７２】
ネットワーク出力処理部１−３は、ＮＡＴとＩＰマスカレードが設定されている場合はＩＰ層の処理で必ずこれを実行し、ＮＡＴとＩＰマスカレードが設定されていない場合はＩＰ層の処理を省略し、記憶部１−２からパケットを取り出しネットワークへ出力する。
【０１７３】
次いで、図１１を参照して第７の実施例によるセッション中継装置による処理について説明する。図１１は第７の実施例によるセッション中継装置の処理の概要を示すフローチャートである。
【０１７４】
セッション中継装置１−０は、ネットワーク入力処理部１−１に送信端末１０からのパケットが到着することによって処理を開始する。
【０１７５】
ステップ１１−１では、ネットワーク入力処理部１−１が該パケットに対してＴＣＰとＩＰのチェックサム値を計算する。
【０１７６】
ステップ１１−２で、チェックサム値の計算結果がパケットに格納されていたチェックサム値と等しいかどうかを判定し、異なった場合はパケットを廃棄し、処理を終了する。チェックサム値の計算結果がパケットに格納されていたチェックサム値と等しければ、ステップ１１−３へ移行する。
【０１７７】
ステップ１１−３では、ネットワーク入力処理部１−１が記憶部１−２へ該パケットを格納する。
【０１７８】
ステップ１１−４では、ネットワーク入力処理部１−１が、ＩＰ受信処理を実施する。ただし、ＩＰのチェックサム値の確認は行わない。
【０１７９】
ステップ１１−５で、ＩＰ受信処理が正常終了した場合、ステップ１１−６へ移行する。そうでない場合は記憶部から該パケットを削除し処理を終了する。
【０１８０】
ステップ１１−６では、ネットワーク入力処理部１−１が、記憶部１−２に格納された該パケットを参照し、該パケットに対してＴＣＰの規定に従った受信処理を実施する。
【０１８１】
ステップ１１−７で、ＴＣＰの受信処理が正常に終了した場合は、ネットワーク出力処理部１−３に該パケットの格納位置を通知し、次のステップ１１−８に移行する。そうでない場合は処理を終了する。
【０１８２】
ステップ１１−８では、ネットワーク出力処理部１−３が、ネットワーク入力処理部１−１から通知され記憶部１−２に格納された該パケットを参照し、該パケットに対してＴＣＰの送信処理を実施する。ここで、ＩＰの処理のうちＮＡＴが設定されていた場合は、ＮＡＴの処理をする。ＴＣＰの送信処理においてパケットヘッダを更新する必要がある場合は、記憶部１−２に格納された該パケットヘッダを上書きし更新する。ただし、チェックサムについては該パケットの更新部分についてのみチェックサム値の差分を計算し、パケット内に格納されているチェックサム値に計算した差分を反映させるよう更新する。
【０１８３】
ステップ１１−９で、ＴＣＰの送信処理の結果、該パケットの送信が可能と判定された場合は、ステップ１１−１０へ移行する。そうでない場合は、処理を終了する。
【０１８４】
ステップ１１−１０では、ネットワーク出力処理部１−３が、ＩＰの送信処理が必要か省略可能かを判定する。ＩＰの送信処理が必要であればステップ１１−１１へ移行する。そうでなければステップ１１−１２へ移行する。
【０１８５】
ステップ１１−１１では、ネットワーク出力処理部１−３が、記憶部１−２に格納された該パケットを参照し、該パケットに対してＩＰの送信処理を実施する。
【０１８６】
ステップ１１−１２では、ネットワーク出力処理部１−３が記憶部１−２から該パケットを取り出し、受信端末２０へと該パケットを送出する。
【０１８７】
ステップ１１−１３で、送信したパケットを受信端末２０が正常に受信したことを確認した場合、該パケットを記憶部１−２から削除する。
【０１８８】
以上が第７の実施例によるセッション中継装置におけるセッション中継処理の内容である。
【０１８９】
以上のように、本実施例では、ＩＰレイヤの送信処理のうち、全てのパケットに共通する処理だけを実施し、それ以外の処理は省略することによって、ＩＰレイヤの送信処理の全てを実施する確率を低く抑えることができ、ＩＰレイヤの処理を軽減することができる。
【実施例８】
【０１９０】
本発明の第８の実施例によるセッション中継装置の構成は第２実施例及び第６の実施例と同様であるため、第２の実施例の構成を示すブロック図４、図５を用いて説明する。ここでは第６の実施例との相違点のみを説明する。
【０１９１】
第８の実施例のセッション中継装置４−０においては、送信プロトコル処理部４−４は、ＩＰレイヤの送信処理のうちで、すべてのパケットに共通する処理を実施する機能を有する。
【０１９２】
ＩＰレイヤ処理のうちで全てのパケットに共通するものは、第３の実施例で説明したチェックサム値の計算と、ＮＡＴ（ネットワークアドレス変換）やＩＰマスカレードなどが設定されている場合は、これも該当する。
【０１９３】
チェックサム値の計算は全てのＩＰ送信処理で必要な処理であるが、本発明の第３の実施例によりＩＰ層の送信処理では省略しているので、ここでは対象としない。
【０１９４】
送信プロトコル処理部４−４は、ＮＡＴとＩＰマスカレードが設定されている場合はＩＰ層の処理でかならずこれを実施し、  ＮＡＴとＩＰマスカレードが設定されていない場合は、これを省略し、ネットワーク出力部４−５にパケットを出力するよう指示する。
【０１９５】
次いで、図１２を参照して第８の実施例によるセッション中継装置による処理について説明する。図１２は第８の実施例によるセッション中継装置の処理の概要を示すフローチャートである。
【０１９６】
セッション中継装置４−０は、ネットワーク入力部４−１に送信端末１０からのパケットが到着することによって処理を開始する。
【０１９７】
ステップ１２−１では、ネットワーク入力部４−１が該パケットに対してＴＣＰとＩＰのチェックサム値を計算する。
【０１９８】
ステップ１２−２で、チェックサム値の計算結果がパケットに格納されていたチェックサム値と等しいかどうかを判定し、異なった場合はパケットを廃棄し、処理を終了する。チェックサム値の計算結果がパケットに格納されていたチェックサム値と等しければ、ステップ１２−３へ移行する。
【０１９９】
ステップ１２−３では、ネットワーク入力部４−１が記憶部４−２へと該パケットを格納する。ネットワーク入力部４−１は受信プロトコル処理部４−３へ該パケットを格納したことを通知し、ステップ１２−４に移行する。
【０２００】
ステップ１２−４では、受信プロトコル処理部４−４が、ＩＰ受信処理を実施する。ただし、ＩＰのチェックサム値の確認は行わない。
【０２０１】
ステップ１２−５では、ＩＰ受信処理が正常終了した場合、ステップ１２−６へ移行する。そうでない場合は記憶部４−２から該パケットを削除し処理を終了する。
【０２０２】
ステップ１２−６では、受信プロトコル処理部４−３が、記憶部４−２に格納された該パケットを参照し、該パケットに対してＴＣＰの規定に従った受信処理を実施する。
【０２０３】
ステップ１２−７では、ＴＣＰの受信処理が正常に終了した場合は、送信プロトコル処理部４−４に該パケットの格納位置を通知し、ステップ１２−８に移行する。そうでない場合は記憶部４−２から該パケットを削除し処理を終了する。
【０２０４】
ステップ１２−８では、送信プロトコル処理部４−４が、受信プロトコル処理部４−３から通知され記憶部４−２に格納された該パケットを参照し、該パケットに対してＴＣＰの送信処理を実施する。ここで、ＩＰの処理のうちＮＡＴが設定されていた場合は、ＮＡＴの処理をする。ＴＣＰの送信処理においてパケットヘッダを更新する必要がある場合は、記憶部４−２に格納された該パケットヘッダを上書きし更新する。ただし、チェックサムについては該パケットの更新部分についてのみＴＣＰとＩＰのチェックサム値の差分を計算し、パケット内に格納されているチェックサム値に計算した差分を反映させるよう更新する。
【０２０５】
ステップ１２−９で、ＴＣＰの送信処理の結果、該パケットの送信が可能と判定された場合は、ステップ１２−１０へ移行する。そうでない場合は、処理を終了する。
【０２０６】
ステップ１２−１０では、送信プロトコル処理部４−４が、ＩＰの送信処理が必要か省略可能かを判定する。ＩＰの送信処理が必要であればステップ１２−１１へ移行する。そうでなければステップ１２−１２へ移行する。
【０２０７】
ステップ１２−１１では、送信プロトコル処理部４−４が、記憶部４−２に格納された該パケットを参照し、該パケットに対してＩＰの送信処理を実施する。
【０２０８】
ステップ１２−１２では、送信プロトコル処理部４−４がネットワーク出力部４−５へ該パケットが格納された位置を通知し、該パケットを出力することを指示する。
【０２０９】
ステップ１２−１３では、ネットワーク出力部４−５が指示に基づき記憶部４−２から該パケットを取り出し、受信端末２０へ送信する。
【０２１０】
ステップ１２−１４で、ネットワーク出力部４−５は、送信したパケットが、受信端末２０で正常に受信されたことを確認した場合、該パケットの削除を送信プロトコル処理部４−４に依頼する。これを受けて、送信プロトコル処理部４−４は、該パケットを削除する。
【０２１１】
以上が第８の実施例によるセッション中継装置におけるセッション中継処理の内容である。
【０２１２】
以上のように、本実施例では、ＩＰレイヤの送信処理のうち、全てのパケットに共通する処理だけを実施し、それ以外の処理は省略することによって、ＩＰレイヤの送信処理の全てを実施する確率を低く抑えることができ、ＩＰレイヤの処理を軽減することができる。
【実施例９】
【０２１３】
図１３は本発明の第９の実施例によるセッション中継装置の構成を示すブロック図である。この実施例において、セッション中継装置１５−０は、ネットワークからパケットを受信し、ＴＣＰ／ＩＰの受信処理をし、メモリ管理部を利用して取得した記憶部１５−２のアドレスにパケットを格納するネットワーク入力処理部１５−１、メモリ管理部１５−４によって管理されパケットが格納される記憶部１５−２、記憶部１５−２に格納されネットワーク入力処理部１５−１での受信処理が完了したパケットに対してＴＣＰ／ＩＰの送信処理を実施し、記憶部１５−２から取り出しネットワークへパケットを出力するネットワーク出力処理部１５−３、記憶部１５−２のアクセス権限とアドレスを管理するメモリ管理部１５−４を備えて構成される。
【０２１４】
本発明によるセッション中継装置では、送信端末１０と、セッション中継装置１５−０と、受信端末２０との接続は第１の実施例と同様であるため、第１の実施例を示す図１を用いて説明する。ここでは第１の実施例との相違点のみを説明する。
【０２１５】
本実施例のセッション中継装置１５−０は、汎用計算機上で動作し、ネットワーク入力処理部１５−１とネットワーク出力処理部１５−３はオペレーティングシステムと同等のメモリ管理権限と処理権限を持つメモリ管理部１５−４を利用して記憶部１５−２にアクセスする。記憶部１５−２はオペレーティングシステムとメモリ管理部１５−４から特権的にアクセスされるメモリ空間とする。
【０２１６】
次いで、図１４を参照して第９の実施例によるセッション中継装置１５−０による処理について説明する。図１４は第９の実施例によるセッション中継装置の処理の概要を示すフローチャートである。
【０２１７】
このセッション中継装置１５−０は、ネットワーク入力処理部１５−１に送信端末１０からのパケットが到着することによって処理を開始する。
【０２１８】
ステップ１４−１では、ネットワーク入力処理部１５−１が該パケットに対してＴＣＰとＩＰのチェックサム値を計算する。
【０２１９】
ステップ１４−２で、チェックサム値の計算結果がパケットに格納されていたチェックサム値と等しいかどうかを判定し、異なった場合はパケットを廃棄し、処理を終了する。チェックサム値の計算結果がパケットに格納されていたチェックサム値と等しければ、ステップ１４−３へ移行する。
【０２２０】
ステップ１４−３では、ネットワーク入力処理部１５−１が記憶部１４−２の利用可能なアドレスをメモリ管理部１５−４に問い合わせる。これにより、メモリ管理部１５−４は記憶部１５−２のなかで利用可能な空間のアドレスをネットワーク入力処理部１５−１に通知する。
【０２２１】
ステップ１４−４では、ネットワーク入力処理部１４−１はメモリ管理部１５−４から通知された該アドレスへ該パケットを格納し、ステップ１４−５へ移行する。
【０２２２】
ステップ１４−５では、ネットワーク入力処理部１５−１が、ＩＰ受信処理を実施する。ただし、ＩＰのチェックサム値の確認は行わない。
【０２２３】
ステップ１４−６で、ＩＰ受信処理が正常終了した場合、ステップ１４−７へ移行する。そうでない場合はメモリ管理部１５−４に該パケットが格納された空間を開放するよう指示し、メモリ管理部１５−４は記憶部１５−２の該パケットが格納された空間を削除し処理を終了する。
【０２２４】
ステップ１４−７では、ネットワーク入力処理部１５−１が、記憶部１５−２に格納された該パケットを参照し、該パケットに対してＴＣＰの規定に従った受信処理を実施する。
【０２２５】
ステップ１４−８では、ＴＣＰの受信処理が正常に終了した場合は、ネットワーク出力処理部１５−３に該パケットの格納位置を通知し、次のステップへ進む。そうでない場合は処理を終了する。
【０２２６】
ステップ１４−９では、ネットワーク出力処理部１５−３が、ネットワーク入力処理部１５−１から通知され記憶部１５−２に格納された該パケットを参照し、該パケットに対してＴＣＰの送信処理を実施する。ＩＰの処理のうちＮＡＴが設定されていた場合は、ＮＡＴの処理をする。ＴＣＰの送信処理においてパケットヘッダを更新する必要がある場合は、記憶部１５−２に格納された該パケットヘッダを上書きし更新する。ただし、チェックサムについては該パケットの更新部分についてのみチェックサム値の差分を計算し、パケット内に格納されているチェックサム値に計算した差分を反映させるよう更新する。
【０２２７】
ステップ１４−１０では、ＴＣＰの送信処理の結果、該パケットの送信が可能と判定された場合は、ステップ１４−１１へ移行する。そうでない場合は、処理を終了する。
【０２２８】
ステップ１４−１１では、ネットワーク出力処理部１５−３が、ＩＰの送信処理が必要か省略可能かを判定する。ＩＰの送信処理が必要であればステップ１４−１２へ移行する。そうでなければステップ１４−１３へ移行する。
【０２２９】
ステップ１４−１２では、ネットワーク出力処理部１５−３が、記憶部１５−２に格納された該パケットを参照し、該パケットに対してＩＰの送信処理を実施する。
【０２３０】
ステップ１４−１３では、ネットワーク出力処理部１５−３が記憶部１５−２から該パケットを取り出し、受信端末２０へと該パケットを送出する。
【０２３１】
ステップ１４−１４では、受信端末２０で該パケットが正常に受信されたことを確認した場合、該パケットを記憶部１５−２から削除するようメモリ管理部１５−４に依頼する。これを受けて、メモリ管理部１５−４は該パケットが格納された記憶部１５−２の空間を開放し、処理を終了する。
【０２３２】
以上が第９の実施例によるセッション中継装置におけるセッション中継処理の内容である。
【０２３３】
以上のように、本実施例では、ネットワーク入力処理部１５−１とネットワーク出力処理部１５−３が同じメモリ管理部１５−４を利用することにより、パケットが入力された際に確保した記憶部１５−２のメモリ空間を引き続き利用し、受信のプロトコル処理、送信のプロトコル処理、ネットワークへのパケットの出力まで実施する。これにより、処理の手順が複雑化した場合でも、それぞれの処理部などから安全に同じ記憶部を利用することが可能となる。
【実施例１０】
【０２３４】
図１５は本発明の第１０の実施例によるセッション中継装置の構成を示すブロック図である。この実施例において、セッション中継装置１７−０は、ネットワークからパケットを受信し、メモリ管理部を利用して取得した記憶部１７−２の空間にパケットを格納するネットワーク入力部１７−１、到着したパケットが格納される記憶部１７−２、記憶部１７−２に格納されたパケットに対してセッション中継を実現するレイヤまでの受信処理を実施し、送信プロトコル処理部にパケットの処理を指示する受信プロトコル処理部１７−３、記憶部１７−２に格納され受信プロトコル処理部１７−３での受信処理が完了したパケットに対してセッション中継を実現するレイヤまでの送信処理を実施する送信プロトコル処理部１７−４と、送信プロトコル処理部１７−３と受信プロトコル処理部１７−４の指示に基づいて記憶部１７−２からパケットを取り出しネットワークへと出力するネットワーク出力部１７−５、記憶部１７−２のアクセス権限とアドレスを管理するメモリ管理部１７−６を備えて構成される。
【０２３５】
本実施例のセッション中継装置１７−０では、送信端末１０と、セッション中継装置１７−０と、受信端末２０との接続は第２の実施例と同様であるため、第２の実施例を示す図２を用いて説明する。ここでは第２の実施例との相違点のみを説明する。
【０２３６】
本実施例のセッション中継装置１７−０は、汎用計算機上で動作し、ネットワーク入力部１７−１とネットワーク出力部１７−５がネットワークインタフェースカードであり、受信プロトコル処理部１７−３と送信プロトコル処理部１７−４がオペレーティングシステムと同等のメモリ管理権限と処理権限を持つメモリ管理部１７−６を利用して記憶部１７−２を管理する。記憶部１７−２はオペレーティングシステムとメモリ管理部から特権的にアクセスされるメモリ空間とする。
【０２３７】
次いで、図１６を参照して第１０の実施例によるセッション中継装置１５−０による処理について説明する。図１６は第１０の実施例によるセッション中継装置の処理の概要を示すフローチャートである。
【０２３８】
このセッション中継装置１７−０は、ネットワーク入力部１７−１に送信端末１０からのパケットが到着することによって処理を開始する。
【０２３９】
ステップ１６−１では、ネットワーク入力部１７−１が該パケットに対してＴＣＰとＩＰのチェックサム値を計算する。
【０２４０】
ステップ１６−２で、チェックサム値の計算結果がパケットに格納されていたチェックサム値と等しいかどうかを判定し、異なった場合はパケットを廃棄し、処理を終了する。チェックサム値の計算結果がパケットに格納されていたチェックサム値と等しければ、ステップ１６−３へ移行する。
【０２４１】
ステップ１６−３では、ネットワーク入力部１７−１が記憶部１７−２の利用可能なアドレスをメモリ管理部１７−６に問い合わせる。メモリ管理部１７−６は記憶部１７−２のなかで利用可能な空間のアドレスをネットワーク入力部１７−１に通知する。
【０２４２】
ステップ１６−４では、ネットワーク入力部１７−１がメモリ管理部１７−６から通知された記憶部１７−２の該アドレスへと該パケットを格納し、受信プロトコル処理部１７−３へ該パケットを格納したことを通知する。そして、ステップ１６−５へ移行する。
【０２４３】
ステップ１６−５では、受信プロトコル処理部１７−３が、ＩＰ受信処理を実施する。ただし、ＩＰのチェックサム値の確認は行わない。
【０２４４】
ステップ１６−６で、ＩＰ受信処理が正常終了した場合、ステップ１６−７へ移行する。そうでない場合は記憶部１７−２から該パケットを削除し処理を終了する。
【０２４５】
ステップ１６−７では、受信プロトコル処理部１７−３が、記憶部１７−２に格納された該パケットを参照し、該パケットに対してＴＣＰの規定に従った受信処理を実施する。
【０２４６】
ステップ１６−８では、ＴＣＰの受信処理が正常に終了した場合は、送信プロトコル処理部１７−４に該パケットの格納位置を通知し、次のステップへ移行する。そうでない場合は記憶部１７−２から該パケットを削除し処理を終了する。
【０２４７】
ステップ１６−９では、送信プロトコル処理部１７−４が、受信プロトコル処理部１７−３から通知され記憶部１７−２に格納された該パケットを参照し、該パケットに対してＴＣＰの送信処理を実施する。ＩＰの処理のうちＮＡＴが設定されていた場合は、ＮＡＴの処理をする。ＴＣＰの送信処理においてパケットヘッダを更新する必要がある場合は、記憶部１７−２に格納された該パケットヘッダを上書きし更新する。ただし、チェックサムについては該パケットの更新部分についてのみＴＣＰとＩＰのチェックサム値の差分を計算し、パケット内に格納されているチェックサム値に計算した差分を反映させるよう更新する。
【０２４８】
ステップ１６−１０では、ＴＣＰの送信処理の結果、該パケットの送信が可能と判定された場合は、ステップ１６−１１へ移行する。そうでない場合は、処理を終了する。
【０２４９】
ステップ１６−１１では、送信プロトコル処理部１７−４が、ＩＰの送信処理が必要か省略可能かを判定する。ＩＰの送信処理が必要であればステップ１６−１２へ移行する。そうでなければステップ１６−１３へ移行する。
【０２５０】
ステップ１６−１２では、送信プロトコル処理部１７−４が、記憶部１７−２に格納された該パケットを参照し、該パケットに対してＩＰの送信処理を実施する。
【０２５１】
ステップ１６−１３では、送信プロトコル処理部１７−４がネットワーク出力部１７−５へ該パケットが格納された位置を通知し、該パケットを出力することを指示する。
【０２５２】
ステップ１６−１４では、ネットワーク出力部１７−５は記憶部１７−２から該パケットを取り出し、受信端末２０へと送信する。
【０２５３】
ステップ１６−１５では、ネットワーク出力部１７−５は、該パケットが受信端末２０で正常に受信されたことを確認した場合、該パケットの削除を送信プロトコル処理部１７−４に依頼する。これを受けて、送信プロトコル処理部１７−４は、該パケットを記憶部１７−２から削除するようメモリ管理部１７−６に依頼する。メモリ管理部１７−６は該パケットが格納された記憶部の空間を開放し、処理を終了する。
【０２５４】
以上が第１０の実施例によるセッション中継装置におけるセッション中継処理の内容である。
【０２５５】
以上のように、本実施例では、ネットワーク入力部１７−１と、受信プロトコル処理部１７−３と、送信プロトコル処理部１７−４が同じメモリ管理部１７−６を利用することにより、パケットが入力された際に確保した記憶部１７−２のメモリ空間を引き続き利用し、受信のプロトコル処理、送信のプロトコル処理、ネットワークへのパケットの出力まで実施する。これにより、処理の手順が複雑化した場合でも、それぞれの処理部などから安全に同じ記憶部を利用することが可能となる。
【実施例１１】
【０２５６】
図１７は本発明の第１１の実施例によるセッション中継装置の構成を示すブロック図である。本実施例において、セッション中継装置１９−０は、ネットワークからパケットを受信し、パケットが属するセッションを判定しセッション中継を実施するか決定し、ＴＣＰ／ＩＰの受信処理をし、記憶部１９−２もしくはアプリケーションデータ記憶部１９−５にパケットを格納するネットワーク入力処理部１９−１、パケットが格納される記憶部１９−２、記憶部１９−２に格納されネットワーク入力処理部１９−１での受信処理が完了したパケットに対してＴＣＰ／ＩＰの送信処理を実施し、記憶部１９−２から取り出しネットワークへパケットを出力するネットワーク出力処理部１９−３、アプリケーション処理部から参照・操作可能なデータが格納されるアプリケーションデータ記憶部１９−５、任意の処理を実施するアプリケーション処理部１９−４を備えて構成される。
【０２５７】
本実施例のセッション中継装置１９−０では、ネットワーク入力処理部１９−１において、ネットワークから入力されたパケットが属するセッションをＩＰアドレスとポート番号などあらかじめ設定された任意の組み合わせから判定し、ＴＣＰ／ＩＰの受信処理が完了したのち、セッション中継の処理を実行するか、アプリケーション処理部１９−４による処理を実行するかを決定する。
【０２５８】
セッション中継の処理を実施すると決定された場合は、ネットワーク入力処理部１９−１は、記憶部１９−２に格納されたデータに対してネットワーク出力処理部１９−３での送信処理を実施するようネットワーク出力処理部１９−３に指示を出す。ネットワーク入力処理部１９−１がアプリケーション処理部１９−４による処理を実行すると決定した場合は、記憶部１９−２に格納されたパケットデータをアプリケーションデータ記憶部１９−５にコピーし、アプリケーション処理部１９−４にデータの到着を通知する。アプリケーション処理部１９−４では任意の処理を実行する。
【０２５９】
本実施例のセッション中継装置１９−０では、送信端末１０と、セッション中継装置１９−０と、受信端末２０との接続は第１の実施例と同様であるため、第１の実施例を示す図２を用いて説明する。ここでは第１の実施例との相違点のみを説明する。
【０２６０】
次いで、図１８を参照して第１１の実施例によるセッション中継装置１９−０による処理について説明する。図１８は第１１の実施例によるセッション中継装置の処理の概要を示すフローチャートである。
【０２６１】
このセッション中継装置１９−０は、ネットワーク入力処理部１９−１に送信端末１０からのパケットが到着することによって処理を開始する。
【０２６２】
ステップ１８−１では、ネットワーク入力処理部１９−１が該パケットに対してＴＣＰとＩＰのチェックサム値を計算する。
【０２６３】
ステップ１８−２では、チェックサム値の計算結果がパケットに格納されていたチェックサム値と等しいかどうかを判定し、異なった場合はパケットを廃棄し、処理を終了する。チェックサム値の計算結果がパケットに格納されていたチェックサム値と等しければ、ステップ１８−３へ移行する。
【０２６４】
ステップ１８−３では、ネットワーク入力処理部１９−１が記憶部１９−２へと該パケットを格納し、ステップ１８−４へ移行する。
【０２６５】
ステップ１８−４では、ネットワーク入力処理部１９−１が、ＩＰ受信処理を実施する。ただし、ＩＰのチェックサム値の確認は行わない。
【０２６６】
ステップ１８−５では、ＩＰ受信処理が正常終了した場合、ステップ１８−６へ移行する。そうでない場合は記憶部１９−２から該パケットを削除し処理を終了する。
【０２６７】
ステップ１８−６では、ネットワーク入力処理部１９−１が、記憶部１９−２に格納された該パケットを参照し、該パケットに対してＴＣＰの規定に従った受信処理を実施する。
【０２６８】
ステップ１８−７では、ＴＣＰの受信処理が正常に終了した場合は、ステップ１８−８へ移行する。そうでない場合は処理を終了する。
【０２６９】
ステップ１８−８では、ネットワーク入力処理部１９−１が、記憶部１９−２に格納された該パケットに対してセッション中継を実施するかどうかをあらかじめ設定されたＩＰアドレス、ポート番号など組み合わせにより判定する。セッション中継を実施すると決定した場合は、ネットワーク出力処理部１９−３に該パケットの格納位置を通知し、ステップ１８−９へ移行する。
【０２７０】
そうでない場合は、ステップ１８−１５にて、記憶部１９−３に格納された該パケットをアプリケーションデータ記憶部１９−５へコピーし、記憶部１９−２から該パケットを削除する。
【０２７１】
ステップ１８−１６で、アプリケーション処理部１９−４にアプリケーションデータ記憶部１９−５における該パケットの格納位置を通知し、ステップ１８−１７へ移行する。
【０２７２】
ステップ１８−１７では、アプリケーション処理部１９−４がアプリケーションデータ記憶部１９−５を参照し任意の処理を実現する。ここでは、アプリケーション処理部１９−４の処理内容については特に規定しない。その後、処理を終了する。
【０２７３】
ステップ１８−９では、ネットワーク出力処理部１９−３が、ネットワーク入力処理部１９−１から通知され記憶部１９−２に格納された該パケットを参照し、該パケットに対してＴＣＰの送信処理を実施する。ＩＰの処理のうちＮＡＴが設定されていた場合は、ＮＡＴの処理をする。ＴＣＰの送信処理においてパケットヘッダを更新する必要がある場合は、記憶部１９−２に格納された該パケットヘッダを上書きし更新する。ただし、チェックサムについては該パケットの更新部分についてのみチェックサム値の差分を計算し、パケット内に格納されているチェックサム値に計算した差分を反映させるよう更新する。
【０２７４】
ステップ１８−１０では、ＴＣＰの送信処理の結果、該パケットの送信が可能と判定された場合は、ステップ１８−１１へ移行する。そうでない場合は、処理を終了する。
【０２７５】
ステップ１８−１１では、ネットワーク出力処理部１９−３が、ＩＰの送信処理が必要か省略可能かどうかを判定する。ＩＰの送信処理が必要であればステップ１８−１２へ移行する。そうでなければステップ１８−１３へ移行する。
【０２７６】
ステップ１８−１２では、ネットワーク出力処理部１９−３が、記憶部１９−２に格納された該パケットを参照し、該パケットに対してＩＰの送信処理を実施する。
【０２７７】
ステップ１８−１３では、ネットワーク出力処理部１９−３が記憶部１９−２から該パケットを取り出し、受信端末２０へと該パケットを送信する。
【０２７８】
ステップ１８−１４では、受信端末２０が該パケットを正常に受信したことを確認した場合には、該パケットを記憶部１９−２から削除する。
【０２７９】
以上が第１１の実施例によるセッション中継装置におけるセッション中継処理の内容である。
【０２８０】
以上のように、本実施例では、入力されたパケットに対してセッション中継を実施するか、任煮のアプリケーションによる処理を実施するかを決定する機能をもつことにより、高い利便性が得られるようになる。
【実施例１２】
【０２８１】
図１９は本発明の第１２の実施例によるセッション中継装置の構成を示すブロック図である。本実施例において、セッション中継装置２１−０は、ネットワークからパケットを受信し、記憶部２１−２に該パケットを格納するネットワーク入力部２１−１、到着したパケットが格納される記憶部２１−２、記憶部２１−２に格納されたパケットを参照し該パケットが属するセッションを判定し、セッション中継処理を実施するかアプリケーション処理部２１−７による処理を実施するか決定するセッション判定部２１−８、記憶部２１−２に格納されたパケットに対してセッション中継を実現するレイヤまでの受信処理を実施し、送信プロトコル処理部２１−４にパケットの処理を指示する、もしくはアプリケーションデータ記憶部２１−６にデータをコピーし、アプリケーション処理部２１−７にデータの到着を通知する受信プロトコル処理部２１−３、記憶部２１−２に格納され受信プロトコル処理部２１−３での受信処理が完了したパケットに対してセッション中継を実現するレイヤまでの送信処理を実施する送信プロトコル処理部２１−４と、送信プロトコル処理部２１−３と受信プロトコル処理部２１−４の指示に基づいて記憶部２１−２からパケットを取り出しネットワークへと出力するネットワーク出力部２１−５、アプリケーション処理部から参照・操作可能なデータが格納されるアプリケーションデータ記憶部２１−６、任意の処理を実施するアプリケーション処理部２１−７を備えて構成される。
【０２８２】
本実施例のセッション中継装置２１−０は、セッション判定部２１−８において、ネットワークから入力されたパケットが属するセッションをＩＰアドレスとポート番号などあらかじめ設定された任意の組み合わせから判定し、受信プロトコル処理部２１−３でのＴＣＰ／ＩＰの受信処理が完了したのち、セッション中継の処理を実施するか、アプリケーション処理部２１−７による処理を実施するかを決定する。
【０２８３】
セッション中継の処理を実施すると決定された場合は、受信プロトコル処理部２１−３は、記憶部２１−２に格納されたデータに対して送信プロトコル処理部２１−４での送信処理を実施するよう指示を出す。セッション判定部２１−８がアプリケーションによる処理を実施すると決定した場合は、記憶部２１−２に格納されたパケットデータをアプリケーションデータ記憶部２１−６にコピーし、アプリケーション処理部２１−７にデータの到着を通知する。アプリケーション処理部２１−７では任意の処理を実現する。
【０２８４】
次いで、図２０を参照して第１２の実施例によるセッション中継装置２１−０による処理について説明する。図２０は第１２の実施例によるセッション中継装置の処理の概要を示すフローチャートである。
【０２８５】
このセッション中継装置２１−０は、ネットワーク入力部２１−１に送信端末１０からのパケットが到着することによって処理を開始する。
【０２８６】
ステップ２０−１では、ネットワーク入力部２１−１が該パケットに対してＴＣＰとＩＰのチェックサム値を計算する。
【０２８７】
ステップ２０−２では、チェックサム値の計算結果がパケットに格納されていたチェックサム値と等しいかどうかを判定し、異なった場合はパケットを廃棄し、処理を終了する。チェックサム値の計算結果がパケットに格納されていたチェックサム値と等しければ、ステップ２０−３へ移行する。
【０２８８】
ステップ２０−３では、ネットワーク入力部２１−１が記憶部２１−２へと該パケットを格納し、受信プロトコル処理部２１−３へ該パケットを格納したことを通知する。
【０２８９】
ステップ２０−４では、受信プロトコル処理部２１−４が、ＩＰ受信処理を実施する。ただし、ＩＰのチェックサム値の確認は行わない。
【０２９０】
ステップ２０−５では、ＩＰ受信処理が正常終了した場合、ステップ２０−６へ移行する。そうでない場合は記憶部２１−２から該パケットを削除し処理を終了する。
【０２９１】
ステップ２０−６では、セッション判定部２１−８が、記憶部２１−２に格納された該パケットに対してセッション中継を実施するかどうかをあらかじめ設定されたＩＰアドレス、ポート番号など組み合わせにより判定する。セッション中継を実施すると決定した場合は、受信プロトコル処理部２１−３に記憶部２１−２における該パケットの格納位置を通知し、該パケットの送信処理を実施するよう指示する。そうでない場合は、記憶部２１−２に格納された該パケットをアプリケーションデータ記憶部２１−６へコピーするよう指示する。
【０２９２】
ステップ２０−７では、受信プロトコル処理部２１−３が、記憶部２１−２に格納された該パケットを参照し、該パケットに対してＴＣＰの規定に従った受信処理を実施する。
【０２９３】
ステップ２０−８では、ＴＣＰの受信処理が正常に終了した場合は、ステップ２０−９に移行する。そうでない場合は記憶部から該パケットを削除し処理を終了する。
【０２９４】
ステップ２０−９では、ステップ２０−６でセッション判定部２１−８が判定した結果に基づき、セッション判定部２１−８が、記憶部２１−２に格納された該パケットに対してセッション中継を実施することを予め設定されたＩＰアドレス、ポート番号など組み合わせにより判定していた場合は、送信プロトコル処理部２１−４に該パケットの格納位置を通知しステップ２０−１０へ移行する。そうでない場合は、ステップ２０−１７へ移行する。
【０２９５】
ステップ２０−１７では、受信プロトコル処理部２１−３が記憶部２１−２に格納された該パケットをアプリケーションデータ記憶部２１−６へコピーし、記憶部２１−２から該パケットを削除する。
【０２９６】
また、ステップ２０−１８では、アプリケーション処理部２１−７にアプリケーションデータ記憶部２１−６における該パケットの格納位置を通知する。
【０２９７】
ステップ２０−１９では、アプリケーション処理部２１−７がアプリケーションデータ記憶部２１−６を参照し任意の処理を実行する。ここでは、アプリケーション処理部１９−４の処理内容については特に規定しない。その後、処理を終了する。
【０２９８】
ステップ２０−１０では、送信プロトコル処理部２１−４が、受信プロトコル処理部２１−３から通知され記憶部２１−２に格納された該パケットを参照し、該パケットに対してＴＣＰの送信処理を実施する。ＩＰの処理のうちＮＡＴが設定されていた場合は、ＮＡＴの処理をする。ＴＣＰの送信処理においてパケットヘッダを更新する必要がある場合は、記憶部２１−２に格納された該パケットヘッダを上書きし更新する。ただし、チェックサムについては該パケットの更新部分についてのみＴＣＰとＩＰのチェックサム値の差分を計算し、パケット内に格納されているチェックサム値に計算した差分を反映させるよう更新する。
【０２９９】
ステップ２０−１１で、ＴＣＰの送信処理の結果、該パケットの送信が可能と判定された場合は、ステップ２０−１２へ移行する。そうでない場合は、処理を終了する。
【０３００】
ステップ２０−１２では、送信プロトコル処理部２１−４が、ＩＰの送信処理が必要か省略可能かを判定する。ＩＰの送信処理が必要であればステップ２０−１３へ移行する。そうでなければステップ２０−１４へ移行する。
【０３０１】
ステップ２０−１３では、送信プロトコル処理部２１−４が、記憶部２１−２に格納された該パケットを参照し、該パケットに対してＩＰの送信処理を実施する。
【０３０２】
ステップ２０−１４では、送信プロトコル処理部２１−４がネットワーク出力部２１−５へ該パケットが格納された位置を通知し、該パケットを出力することを指示する。
【０３０３】
ステップ２０−１５では、ネットワーク出力部２１−５は記憶部２１−２から該パケットを取り出し、受信端末２０へと送信する。
【０３０４】
ステップ２０−１６では、ネットワーク出力部２１−５は、送信したパケットが受信端末２０で正常に受信されたことを確認した場合、該パケットの削除を送信プロトコル処理部２１−４に依頼する。これを受けて、送信プロトコル処理部２１−４は、該パケットを削除する。
【０３０５】
以上が第１２の実施例によるセッション中継装置におけるセッション中継処理の内容である。
【０３０６】
以上のように、本実施例では、入力されたパケットに対してセッション中継を実施するか、任煮のアプリケーションによる処理を実施するかをセッション判定部２１−８が判定し、送信プロトコル処理部２１−４がセッション判定部２１−８の指示に基づきアプリケーション処理部２１−７に処理を引き継ぐ機能を備えることにより、高い利便性が得られるようになる。
【０３０７】
本実施例によるセッション中継装置は、上記各構成要素をハードウェア的に実現することは勿論として、例えば、プログラム制御可能なコンピュータ処理装置（ＣＰＵ）上で、中継処理を行うセッション中継ログラム（アプリケーション）をロードして実行することにより、上記各構成要素の機能をソフトウェア的に実現し、以下に述べる処理を実行するシステムとして提供することができる。このセッション中継ログラムは、磁気ディスク、半導体メモリその他の記録媒体に格納され、その記録媒体からコンピュータ処理装置にロードされ、コンピュータ処理装置の動作を制御することにより、遅延時間計算を含むタイミング解析に必要な各機能を実現する。
【０３０８】
以上好ましい実施例をあげて本発明を説明したが、本発明は必ずしも上記実施例に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。
【図面の簡単な説明】
【０３０９】
【図１】第１の実施例におけるセッション中継装置の構成を示すブロック図である。
【図２】第１の実施例におけるセッション中継装置及び送信端末、受信端末の間のデータの流れを示したブロック図である。
【図３】第２の実施例におけるセッション中継装置の処理の概要を示すフローチャートである。
【図４】第２の実施例におけるセッション中継装置の構成を示すブロック図である。
【図５】第２の実施例におけるセッション中継装置及び送信端末、受信端末の間のデータの流れを示したブロック図である。
【図６】第２の実施例におけるセッション中継装置の処理の概要を示すフローチャートである。
【図７】第３の実施例におけるセッション中継装置の処理の概要を示すフローチャートである。
【図８】第４の実施例におけるセッション中継装置の処理の概要を示すフローチャートである。
【図９】第５の実施例におけるセッション中継装置の処理の概要を示すフローチャートである。
【図１０】第６の実施例におけるセッション中継装置の処理の概要を示すフローチャートである。
【図１１】第７の実施例におけるセッション中継装置の処理の概要を示すフローチャートである。
【図１２】第８の実施例におけるセッション中継装置の処理の概要を示すフローチャートである。
【図１３】第９の実施例におけるセッション中継装置の構成を示すブロック図である。
【図１４】第９の実施例におけるセッション中継装置の処理の概要を示すフローチャートである。
【図１５】第１０の実施例におけるセッション中継装置の構成を示すブロック図である。
【図１６】第１０の実施例におけるセッション中継装置の処理の概要を示すフローチャートである。
【図１７】第１１の実施例におけるセッション中継装置の構成を示すブロック図である。
【図１８】第１１の実施例におけるセッション中継装置の処理の概要を示すフローチャートである。
【図１９】第１２の実施例におけるセッション中継装置の構成を示すブロック図である。
【図２０】第１２の実施例におけるセッション中継装置の処理の概要を示すフローチャートである。
【図２１】従来におけるセッション中継装置の構成例を示すブロック図である。
【図２２】従来におけるセッション中継装置の他の構成例を示すブロック図である。
【符号の説明】
【０３１０】
１−０、４−０、１５−０、１７−０、１９−０、２１−０：セッション中継装置
１−１、１５−１、１９−１：ネットワーク入力処理部
１−２、４−２、１５−２、１７−２、１９−２、２１−２：記憶部
１−３、１５−３、１９−３：ネットワーク出力処理部
４−１、１７−１、２１−１：ネットワーク入力部
４−３、１７−３、２１−３：受信プロトコル処理部
４−４、１７−４、２１−４：送信プロトコル処理部
４−５、１７−５、２１−５：ネットワーク出力部
１５−４：メモリ管理部
１９−４、２１−７：アプリケーション処理部
１９−５、２１−６：アプリケーションデータ記憶部
２１−８：セッション判定部
【図１】
2005086292.tif 000003
【図２】
2005086292.tif 000004
【図３】
2005086292.tif 000005
【図４】
2005086292.tif 000006
【図５】
2005086292.tif 000007
【図６】
2005086292.tif 000008
【図７】
2005086292.tif 000009
【図８】
2005086292.tif 000010
【図９】
2005086292.tif 000011
【図１０】
2005086292.tif 000012
【図１１】
2005086292.tif 000013
【図１２】
2005086292.tif 000014
【図１３】
2005086292.tif 000015
【図１４】
2005086292.tif 000016
【図１５】
2005086292.tif 000017
【図１６】
2005086292.tif 000018
【図１７】
2005086292.tif 000019
【図１８】
2005086292.tif 000020
【図１９】
2005086292.tif 000021
【図２０】
2005086292.tif 000022
【図２１】
2005086292.tif 000023
【図２２】
2005086292.tif 000024