JPWO2007052764A1 - セッション中継装置およびセッション中継方法 - Google Patents

セッション中継装置およびセッション中継方法 Download PDF

Info

Publication number
JPWO2007052764A1
JPWO2007052764A1 JP2007542814A JP2007542814A JPWO2007052764A1 JP WO2007052764 A1 JPWO2007052764 A1 JP WO2007052764A1 JP 2007542814 A JP2007542814 A JP 2007542814A JP 2007542814 A JP2007542814 A JP 2007542814A JP WO2007052764 A1 JPWO2007052764 A1 JP WO2007052764A1
Authority
JP
Japan
Prior art keywords
packet
session
transmission
unit
segment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007542814A
Other languages
English (en)
Inventor
崇之 浜
崇之 浜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2007052764A1 publication Critical patent/JPWO2007052764A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/40Flow control; Congestion control using split connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/43Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/166IP fragmentation; TCP segmentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

セグメントの再構成・分割を行うことなく、送信元から再送されたデータパケットを送信先へ確実に送信するセッション中継装置を提供する。送信するセグメントの順番を示すシーケンス番号が付与されたパケットによりデータが送受信される端末間に配置されるセッション中継装置110であって、送信側の端末との間に開設される第1のセッションと、受信側の端末との間に開設される第2のセッションとの間でパケットデータの中継を行うセッション中継部110−3を有する。セッション中継部110−3は、上記送信側の端末から再送セグメントを受信すると、該受信した再送セグメントのセグメントサイズで上記第2のセッションの最大セグメントサイズを更新し、該受信した再送セグメントを上記受信側の端末に向けて送信する。

Description

本発明は、セッション間でデータを中継するセッション中継装置に関する。
一般に、通信アプリケーションは、ネットワークを介して接続された送受信端末間で通信セッションを確立し、確立したセッション上で通信を行う。しかしながら、送受信端末間の伝播遅延時間が非常に長い場合、もしくは有線と無線のように特性の異なるネットワークを横断して通信する場合は、送受信端末間の通信のスループットが低下する。
上記の問題を解決する方法として、送受信端末間の通信を一つのセッションで行うのではなく、送受信端末間に中継装置を設置し、送信端末から中継装置へのセッションと中継装置から受信端末へのセッションの2つのセッション間でデータの中継を行う方法が知られている。このようなセッション中継方式の一例として、非特許文献1(Ajay Bakre and B.R.Badrinath、“I-TCP; Indirect TCP for Mobile Host”、 Department of Computer Science Rutgers University、 DSC-TR-314、 1994)に記載の「Indirect TCP」や、特許文献1(特許第3448481号公報)、特許文献2(特許第3482091号公報)および特許文献3(特許第3494610号公報)に記載の通信方式がある。
以下に、TCPを用いたセッション通信例を説明する。なお、通常のTCPの動作に関しては、非特許文献2(Jon Postel、”Transmission Control Protocol”、IETF、RFC 793、1981)や非特許文献3(W. Richard Stevens、“TCP/IP Illustrated、 Volume 1: The Protocols、 Addison-Wesley”、1994、ISBN 0-201-63346-989)に詳しく記載されている。
図1に、送信端末側および受信端末側の両方から透過的にセッション中継できるようにした両側透過型のセッション中継器を示す。図1を参照すると、両側透過型のセッション中継装置32−0は、ネットワークからのパケットが入力されるパケット入力部32−1と、ネットワーク上にパケットを出力するパケット出力部32−2と、セッションを終端して中継するセッション中継部32−3と、セッション中継部32−3のセッション状態を記憶するセッション状態記憶部32−4と、セッションパケットであるか否かを判断するセッション判定部32−5と、セッション中継するか否かを判断するセッション中継判定部32−6と、セッション開始パケットを監視するセッション開始処理監視部32−7とを備える。
パケット入力部32−1は、ネットワークからパケットを受け取る処理を行う。セッション判定部32−5は、パケット入力部32−1からの入力パケットがセッションパケットであるか否かを判断する。入力パケットがセッションパケットであれば、セッション判定部32−5は、その入力パケットをセッション中継判定部32−6に渡す。入力パケットがセッション以外のパケットであれば、セッション判定部32−5は、その入力パケットをパケット出力部32−2に渡す。
セッション中継判定部32−6は、セッション判定部32−5からのセッションパケットが、セッション状態記憶部32−4に登録されているセッションにおけるパケットであり、かつ、セッション開始・応答パケットより後に送信されたパケットであるか否かを判断する。この条件が成立した場合は、セッション中継判定部32−6は、セッション判定部32−5からのセッションパケットをセッション中継部32−3へ渡す。条件が成立しない場合は、セッション中継判定部32−6は、セッション判定部32−5からのセッションパケットをセッション開始処理監視部32−7へ渡す。
セッション開始処理監視部32−7は、セッション開始パケットを受け取ると、受信シーケンス番号(受信端末から受信すべきシーケンス番号)及び送信シーケンス番号(送信端末に対して送信すべきシーケンス番号)を確定せずに仮に作成したセッション情報を登録し、セッション開始・応答パケットを受け取ると、仮に作成したセッション情報中の受信シーケンス番号及び送信シーケンス番号を確定する。セッション開始処理監視部32−7の処理が終わった後、セッション判定部32−5からのセッションパケットはパケット出力部32−2に渡される。
セッション中継部32−3は、セッション状態記憶部32−4に格納されたセッション状態に基づいてセッション中継処理を行い、更新されたセッション状態をセッション状態記憶部32−4に記憶し、セッション中継判定部32−6からのパケットをパケット出力部32−2に渡す。パケット出力部32−2は、供給されたパケットをネットワーク上に出力する処理を行う。
図1に示したセッション中継装置におけるTCPを用いたセッションについて説明する。TCPを用いたセッションでは、セッション開始パケットおよびセッション開始・応答パケットはそれぞれSYNパケットおよびSYN・ACKパケットとする。
図2は、図1に示したセッション中継器32−0を備えるネットワーク構成のブロック図である。図3は、図2に示したネットワーク構成におけるセッション中継器32−0によるTCP中継のシーケンス図である。図3に示す例は、IPアドレスAを持つ送信端末10からIPアドレスBを持つ受信端末20のポート番号80へデータを転送する場合のシーケンス動作である。
最初に、送信端末10が、受信端末20に対してコネクション開始SYNパケットを送信する。このコネクション開始SYNパケットは、送信元IPアドレス「A」、送信元ポート番号「x」、シーケンス番号「1」、宛先IPアドレス「B」、宛先ポート番号「80」といった情報を含む。
経路途中にあるセッション中継装置32−0では、送信端末10からのコネクション開始SYNパケットがパケット入力部32−1に供給される。パケット入力部32−1は、供給されたSYNパケットをセッション判定部32−5に渡す。セッション判定部32−5は、パケット入力部32−1からのパケットがセッションパケットであると判断し、そのパケットをセッション中継判定部32−6に渡す。セッション中継判定部32−6は、セッション判定部32−5から受け取ったパケットがセッション状態記憶部32−4に登録されているセッションに対応するものではないと判断し、受け取ったパケットをセッション開始処理監視部32−7に渡す。
セッション開始処理監視部32−7は、セッション中継判定部32−6から受け取ったパケットがセッション開始(SYN)パケットであると判断し、セッション状態記憶部1−4に対してセッションの登録を行うとともに、セッション中継を開始して、受け取ったパケットをパケット出力部32−2に渡す。このとき、すくなくとも受信端末20への送信シーケンス番号と送信端末10からの受信シーケンス番号がセッション状態記憶部32−4に登録される。この2つのシーケンス番号は、セッション開始(SYN)パケットのシーケンス番号で初期化される。この段階で登録されるセッションの情報は、送信端末10への送信シーケンス番号と受信端末20からの受信シーケンス番号がいずれも確定していないため、セッション情報全体としては、不完全なものである。
セッション開始処理監視部32−7からパケットを受け取ったパケット出力部1−2は、その受け取ったパケットを受信端末20に向けてネットワーク上に送出する。このとき、セッション中継装置32−0の前後で、SYNパケット内のパケットの情報が異なることはない。
受信端末20は、セッション中継装置32−0からSYNパケットを受け取ると、送信端末10へ向けてSYN・ACKパケットを返す。
経路途中にあるセッション中継装置32−0では、受信端末20からのSYN・ACKパケットがパケット入力部32−1に供給される。パケット入力部32−1は、SYN・ACKパケットをセッション判定部32−5に渡す。セッション判定部32−5は、パケット入力部32−1から受け取ったパケットがセッションパケットであると判断し、受け取ったパケットをセッション中継判定部32−6に渡す。セッション中継判定部32−6は、セッション判定部32−5から受け取ったパケットが、セッション状態記憶部1−4に登録されているセッションに対応するものであり、セッション開始・応答(SYN・ACK)パケットより後のパケットではないと判断し、受け取ったパケットをセッション開始処理監視部32−7に渡す。
セッション開始処理監視部32−7は、セッション中継判定部32−6から受け取ったパケットが、セッション開始(SYN)パケットではなく、セッション開始・応答パケット(SYN・ACK)パケットであると判断して、セッション状態記憶部32−4におけるセッション情報を更新するとともに、セッション中継を開始して、受け取ったパケットをパケット出力部1−2に渡す。このとき、送信端末10への送信シーケンス番号と受信端末20からの受信シーケンス番号が更新される。この2つのシーケンス番号は、セッション開始・応答(SYN・ACK)パケットのシーケンス番号で初期化される。
セッション開始処理監視部32−7からパケットを受け取ったパケット出力部32−2は、その受け取ったパケットを送信端末10に向けてネットワーク上に送出する。このとき、セッション中継装置32−0の前後で、SYN・ACKパケット内のパケットの情報が異なることはない。
その後、セッション中継装置32−0では、セッション中継部32−3によってSYN・ACKパケットに対するACKパケットを受信端末20へ返す。こうして、セッション中継装置32−0により、送信端末10および受信端末20との間にセッションが開設される。
セッション開設後、通信経路上になんらかの障害が発生した場合には、ICMP(Internet control massage Protocol)を用いた状態通知が行われる。ICMPの動作に関しては、非特許文献3や非特許文献4(Jon Postel、”INTERNET CONTROL MESSAGE PROTOCOL”、IETF、RFC 792、1981)に詳しく記載されている。
途中経路にMTU(最大転送単位)が異なる区間が存在する場合、IPヘッダに「Don't Fragment(フラグメント不可)」フラグが立っていると、フラグメント化することができずにデータが転送されないという問題があった。この問題を解決する方法として、非特許文献5(J.Mogul、S.Deering、”Path MTU discovery”、IETF、RFC 1191、1990)には、Path MTU discoveryと呼ばれる手法が提案されている。
図4に、ICMP Destination Unreachable(到達不可)・フラグメント要求メッセージのパケット構成を示し、図5に、ICMP Destination Unreachable(到達不可)・フラグメント要求メッセージに含まれる、エラーを起こしたペット部分の構成を示す。Path MTU discovery手法は、MTUの異なる区間が存在するルータにおいて、「Don’t Fragment」フラグが立っているためにフラグメント化することができず、データの転送を行うことができない場合に、図4に示すようなICMP Destination Unreachable(到達不可)・フラグメント要求メッセージに、次のホップのMTUを入れて、送信元に通知することにより、送信元の端末がMSS(最大セグメントサイズ)を下げてセグメントを再転送するという手法である。図4に示した「Internet Header + 64 bits of Original Data Datagram」には、エラーを起こしたパケットのうち、図5に示した情報が含まれる。
通信経路上にMTUが異なる複数の区間が存在する場合は、それら区間における最小のMTUが検出されるまで、送信元に対してICMPによりMTUを通知してMSSを下げる作業が繰り返し行われる。そして、最も小さいMTUが検出された時点で、送信元と送信先の間で通信が可能となる。同様な手法が、特許文献4(特開2003−18216号公報)に記載されている。
図6は、図1および図2に示した両側透過型のセッション中継装置を有するネットワーク装置におけるPath MTU Discoveryに基づく動作を説明するための図である。以下、図6を参照して、Path MTU Discoveryに基づく動作を、TCPを例に説明する。この例では、IP、TCPのヘッダサイズの合計は40バイトとしている。
SYNの処理の後、送信端末421(アドレス:A、ポート:x)が、受信端末423(アドレス:B、ポート:80)に向けて、セグメントサイズが1460バイト、パケットサイズが1500バイトのデータを送る。送信端末421から出力されたデータは、ルータ422(アドレス:C)に供給される。送信端末421からのデータを受信したルータ422は、次のホップが「MTU=500」の区間であるため、ICMP Destination Unreachable・フラグメント要求メッセージに、次のホップのMTUを入れて送信端末421に向けて送る。ルータ422からのICMP Destination Unreachable・フラグメント要求メッセージは送信端末421に供給される。
送信端末421は、フラグメント要求メッセージに応じてセグメントサイズを460バイト、パケットサイズを500バイトとしてデータを受信端末423に向けて再送する。ルータ422は、送信端末421からの再送データのパケットサイズが500バイトであるため、送信端末421からの再送データを受信端末423へ送信する。この結果、受信端末423に再送データのパケットが届き、送信端末421と受信端末423の間で、引き続きデータのやり取りを行うことが可能となる。
しかしながら、従来の両側透過型のセッション中継装置においては、Path MTU discoveryに基づく動作が実行された場合に、以下のような問題が生じる。
図7は、従来の両側透過型のセッション中継装置における、TCPを用いた場合のPath MTU Discovery問題を説明するための図である。図7に示す例では、送信端末431と受信端末434の間にセッション中継装置432が配置され、さらに受信端末434とセッション中継装置432の間にルータ433が配置されている。送信端末431からルータ433への経路のMTUは1500とされ、ルータ433から受信端末434への経路のMTUは500とされている。IP、TCPのヘッダサイズの合計は40バイトとしている。
送信端末431が、受信端末434に向けて、シーケンス番号1-1460、パケットサイズ1500バイトのデータを送る。経路の途中にあるセッション中継装置432は、ACKを終端して、送信端末431に返す。その後、セッション中継装置432は、受信端末434に向けてシーケンス番号1-1460のデータを送る。
セッション中継装置432から送出されたシーケンス番号1-1460は、MTU=500区間の直前に配置されたルータ433に供給される。ルータ433は、パケットサイズ1500バイトのデータを転送することはできないため、送信端末431に向けてICMP Destination Unreachable・フラグメント要求メッセージ(MTU=500)を送る。
セッション中継装置432は、ICMPパケットを素通しにするため、ルータ433からのICMP Destination Unreachable・フラグメント要求メッセージ(MTU=500)は、そのままの形で送信端末431に届く。送信端末431は、ICMP Destination Unreachable・フラグメント要求メッセージ(MTU=500)に従って、送信するパケットサイズを500バイトに下げたシーケンス番号1501-1960のデータを受信端末434に向けて送信する。
セッション中継装置432では、受信側から応答パケットを未だ受け取っていないため、パケットサイズが1500バイトの、シーケンス番号1-1460のパケットを再送し続ける。このため、送信端末431からのシーケンス番号1501-1960のデータは送信されることなくセッション中継装置432内に蓄積され、シーケンス番号1501-1960のデータをルータ433から先に送ることができない。ルータ433は、セッション中継装置432から再送されたシーケンス番号1-1460のパケットを受信するたびに、再び送信端末431に向けてICMP Destination Unreachable・フラグメント要求メッセージ(MTU=500)を送る。
上述のように、セッション中継装置432は、受信側からの応答パケットを受け取るまでは、シーケンス番号1-1460のパケットをパケットサイズが1500バイトのままで再送し続けるため、送信端末431から最大セグメントサイズを小さくしたシーケンス番号1501-1960のデータを受信しても、その受信したデータをルータ433に向けて送出することはない。この結果、セッション中継装置432に、送信端末431からのデータが溜まってしまい、最終的には通信が完全に止まってしまう。
なお、送信端末431に、ICMP Destination Unreachable・フラグメント要求メッセージ内のエラーを起こしたヘッダ情報にあるセッション情報のシーケンス番号の不整合性をチェックする機能を持たせることが可能である。しかし、この場合は、通知されたシーケンス番号が送信確認済みになっているシーケンス番号であるため、送信端末431は、ICMP Destination Unreachable・フラグメント要求メッセージを受信しても、送信するパケットサイズを下げることはない。
また、特許文献3には、ICMPのエラーパケットを、両側で透過的なTCP中継器で終端させる手法が記載されている。しかし、この場合は、TCP中継器において、セグメントの再構成・分割を行う必要があるため、処理コストが大きくなるという問題がある。
本発明の目的は、上記のPath MTU discoveryに基づく動作の問題を解決し、セグメントの再構成・分割を行うことなく、送信元から再送されたデータパケットを送信先へ確実に送信することのできる、処理コストの低いセッション中継装置を提供することにある。
上記目的を達成するため、本発明は、送信するセグメントの順番を示すシーケンス番号が付与されたパケットによりデータが送受信される端末間に配置され、送信側の端末との間に開設される第1のセッションと、受信側の端末との間に開設される第2のセッションとの間で、前記パケットにより送信されたデータの中継を行うセッション中継装置であって、前記第1および第2のセッションの情報を保持するセッション状態保持部と、前記第1のセッションを通じて前記パケットを受信すると、前記セッション状態保持部に保持されたセッション情報を参照して、該受信したパケットのセグメントが、前記第1のセッションを通じてすでに受信してあるパケットのセグメントとシーケンス番号が同じで、セグメントサイズが異なる再送セグメントであるか否かを判断するセグメント再送判定部と、前記セグメント再送判定部で前記受信したパケットのセグメントが再送セグメントであると判断された場合に、該再送セグメントを前記第2のセッションを通じて送信するセグメント再送部とを有する。この場合、第2のセッションの最大セグメントサイズは、送信側の端末から受信した再送セグメントのセグメントサイズでを更新されてもよく、また、第2のセッションを通じて受信したフラグメント要求メッセージ内の最大転送単位に基づいて更新されてもよい。
上記の本発明のセッション中継装置によれば、送信元からの再送セグメントは送信先に向けて送出されるので、従来のような、再送セグメントがセッション中継装置に蓄積されて、通信が止まってしまう、という問題は生じない。
また、再送セグメントは、送信元においてセグメントの分割がなされているので、セグメントの再構成・分割を行う必要もない。
本発明によれば、送信端末からの再送セグメントは、フラグメント要求メッセージを送出した中継装置に向けて必ず送信されるので、通信不能に陥ることなく、送信端末と受信端末の間で安定した通信状態を維持することができる、という効果がある。
また、Path MTU discoveryが働いても、送信端末側で、フラグメント化要求エラーメッセージに応じて、Path MTUにあったパケットに不整合なく分割されて送出され、セッション中継装置において、そのような分割を行う必要がないので、処理コストを最小限に抑えたセッション中継が可能となる、という効果がある。
従来の両側透過型セッション中継器の構成を示すブロック図である。 図1に示すセッション中継器を備えるネットワーク構成を示すブロック図である。 図2に示すネットワーク構成におけるセッション中継器によるTCP中継のシーケンス動作を説明するための図である ICMP Destination Unreachable(到達不可)・フラグメント要求メッセージのパケット構成を説明するための図である。 ICMP Destination Unreachable(到達不可)・フラグメント要求メッセージに含まれる、エラーを起こしたペット部分の構成を説明するための示す図である。 従来の両側透過型のセッション中継装置におけるPath MTU Discoveryに基づく動作を説明するための図である。 従来の両側透過型のセッション中継装置における、TCPを用いた場合のPath MTU Discovery問題を説明するための図である。 本発明の第1の実施形態であるセッション中継装置の構成を示すブロック図である。 図8に示すセッション中継装置を備えたネットワーク構成を示すブロック図である。 図8に示すセッション中継部のセッション中継処理部の構成を示すブロック図である。 図8に示す送信確認パケット転送・終端判定部の構成を示すブロック図である。 図8に示すセッション中継部の動作を説明するためのフローチャートである。 図8に示す送信確認パケット転送・終端判定部の動作を説明するためのフローチャートである。 本発明の第2の実施形態であるセッション中継装置の構成を示すブロック図である。 図14に示すセッション中継装置を備えたネットワーク構成を示すブロック図である。 図14に示すセッション中継部のセッション中継処理部の構成を示すブロック図である。 図14に示す送信確認パケット転送・終端判定部の構成を示すブロック図である。 図14に示すセッション中継部の動作を説明するためのフローチャートである。 図16に示すSMSS送出シーケンス番号算出部の動作を説明するためのフローチャートである。 図16に示すMTUチェック部の動作を説明するためのフローチャートである。 図14に示す送信確認パケット転送・終端判定部の動作を説明するためのフローチャートである。 本発明の第3の実施形態であるセッション中継装置の構成を示すブロック図である。 図22に示すセッション中継装置を備えたネットワーク構成を示すブロック図である。 図22に示すセッション中継部の構成を示すブロック図である。 図22に示すフラグメント要求メッセージ転送部の構成を示すブロック図である。 図22に示す送信確認パケット転送・終端判定部の構成を示すブロック図である。 図22に示すセッション中継部の動作を説明するためのフローチャートである。 図24に示すSMSS送出シーケンス番号算出部の動作を説明するためのフローチャートである。 図22に示す送信確認パケット転送・終端判定部の動作を説明するためのフローチャートである。 セグメントを破棄する場合の手順を示すフローチャートである。 セグメントを破棄せずに送信端末に送信する場合の手順を示すフローチャートである。
符号の説明
110 セッション中継装置
110−1 パケット入力部
110−3 セッション中継部
110−4 パケット出力部
110−5 パケット入力部
110−6 セッションパケット判定部
110−7 送信確認受信部
110−8 セッション状態保持部
110−9 送信確認パケット転送・終端判定部
110−10 送信確認送信部
110−11 パケット出力部
110−12 エラー報告プロトコル終端部
110−13 フラグメント要求メッセージ転送部
次に、本発明を実施するための最良の形態について図面を参照にして詳細に説明する。
本発明は、送信するセグメントの順番を示すシーケンス番号が付与されたパケットによりデータが送受信される端末間に配置され、送信側の端末との間に開設される第1のセッションと、受信側の端末との間に開設される第2のセッションとの間で、パケットにより送信されたデータの中継を行うセッション中継装置であって、第1および第2のセッションの情報を保持するセッション状態保持部を備え、第1のセッションを通じてパケットを受信すると、セッション状態保持部に保持されたセッション情報を参照して、該受信したパケットのセグメントが、第1のセッションを通じてすでに受信してあるパケットのセグメントとシーケンス番号が同じで、セグメントサイズが異なる再送セグメントであるか否かを判断し、再送セグメントであると判断した場合に、第2のセッションの最大セグメントサイズを変更して、再送セグメントを第2のセッションを通じて送信するように構成されていることを特徴とする。
送信側の端末は、送信端末、ルータ、セッション中継装置などである。受信側の端末は、受信端末、ルータ、セッション中継装置などである。セッション状態保持部は、送信端末と受信端末を接続する複数のネットワークそれぞれにおけるセッションの情報を保持することが可能である。第2のセッションの最大セグメントサイズは、再送セグメントのセグメントサイズで更新してもよく、また、フラグメント要求メッセージ内の「次のホップの最大転送単位」に基づいて更新してもよい。
以下、第1の実施形態として、セッションの最大セグメントサイズを再送セグメントのセグメントサイズにより更新する形態を、第2、第3の実施形態として、セッションの最大セグメントサイズをフラグメント要求メッセージ内の「次のホップの最大転送単位」に基づいて更新する形態をそれぞれ挙げて、本発明の構成を具体的に説明する。
(第1の実施形態)
図8は、本発明の第1の実施形態であるセッション中継装置の構成を示すブロック図である。図9は、図8に示すセッション中継装置を備えたネットワーク構成を示すブロック図である。
図9に示すネットワーク構成では、送信端末10と受信端末20の間に中継装置40が配置され、さらに送信端末10と中継装置40の間にセッション中継装置110が配置されている。中継装置40は、例えばルータである。ここでは、送信端末10から受信端末20へデータを送る場合に、セッション中継装置110がデータの中継を実現する場合を想定して具体的な処理を説明する。説明の簡単化のために、セッション開設に必要な処理および構成は省略し、また、セッションのデータは一方向に流れるものとする。セッション開設処理は、図1に示したセッション中継装置における動作で説明したとおりである。
図8を参照すると、セッション中継装置110の主要部は、パケット入力部110−1、セッション中継部110−3、パケット出力部110−4、パケット入力部110−5、セッションパケット判定部110−6、送信確認受信部110−7、セッション状態保持部110−8、送信確認パケット転送・終端判定部110−9、送信確認送信部110−10、パケット出力部110−11、エラー報告プロトコル終端部110−12およびフラグメント要求メッセージ転送部110−13からなる。
パケット入力部110−1は、送信端末10からのパケットが入力される。セッション中継部110−3は、パケット入力部110−1に入力されたパケットのセッション中継処理を行う。パケット出力部110−4は、セッション中継部110−3からのパケットを受信端末20に向けて出力する。
パケット入力部110−5は、受信端末20からのパケットが入力される。セッションパケット判定部110−6は、パケット入力部110−5に入力されたパケットがセッションパケットであるか否かを判定する。セッションパケットであると判断されたパケットは、セッションパケット判定部110−6から送信確認受信部110−7に供給される。セッションパケットでないと判断されたパケットは、セッションパケット判定部110−6からエラー報告プロトコル終端部110−12に供給される。
送信確認受信部110−7は、受信端末20から送出された、セッションの応答パケットである送信確認パケットを、パケット入力部110−5およびセッションパケット判定部110−6を通じて受信する。セッション状態保持部110−8は、セッション中継部110−3によって中継されたセッションの状態を保持する。
送信確認パケット転送・終端判定部110−9は、送信確認受信部110−7で受信された送信確認パケットに対して、転送するか、終端して通常のセッション中継処理を行うかの判断を行う。送信確認送信部110−10は、送信確認パケットを送信端末10へ送る。パケット出力部110−11は、供給されたパケットを送信端末10に出力する。エラー報告プロトコル終端部110−12は、エラー報告プロトコルを終端する。フラグメント要求メッセージ転送部110−13は、エラー報告プロトコルのフラグメント要求メッセージをエラー報告プロトコル終端部110−12から抜きだして送信端末10へ送出する。
図8に示したセッション中継装置110では、送信端末10から送出されたパケットはパケット入力部110−1を介してセッション中継部110−3に供給される。セッション中継部110−3は、パケット入力部110−1からパケットが入力されると、その入力されたパケットのセッション中継処理を行う。
図10に、セッション中継部110−3のセッション中継処理部の構成を示す。図10を参照すると、セッション中継処理部は、パケット入力部110−1からのパケットをバッファリングするバッファリング部110−3−1、バッファリングされたセグメントがセグメントサイズを変えて再送されたものであるか否かを判断するセグメント再送判定部110−3−2、セグメントサイズを変えて再送されたセグメントである場合に、セッションの最大セグメントサイズ(以下、SMSSと記す)を更新するSMSS更新部110−3−3、セグメントサイズを変えて再送されたセグメントを再送するセグメント再送部110−3−4、セグメントサイズを変えて再送されたものでないセグメントに対して通常の中継処理を行う通常セッション中継部110−3−5を有する。
セッション中継部110−3では、セグメント再送判定部110−3−2によって、送信端末10からのセグメントがセグメントサイズを変えて再送されてきたものか否かが判断される。セグメントサイズを変えて再送されてきたセグメントである場合は、セグメント再送部110−3−4により、その再送セグメントが、無条件もしくは再送を含む任意のタイミングで受信端末20に向けて送出される。ここで、「セグメントサイズを変えて再送」とは、開始シーケンス番号が同じで、セグメントサイズが異なる再送セグメントを指す。「再送を含む任意のタイミング」とは、一定時間またはランダムな時間によって規定されるタイミングである。セグメント再送判定部110−3−2の判定条件に、再送セグメントが受信端末20に未到達である、という条件、または、再送セグメントサイズがSMSS以下である、という条件を加えてもよく、また、これら条件の双方を満たす、という条件を加えてもよい。
また、セッション中継部110−3では、バッファリングされたセグメントがセグメントサイズを変えて再送されてきたものである場合に、SMSS更新部110−3−3により、SMSSがその再送セグメントサイズに更新される。SMSS更新の条件として、送信確認済みの最大セグメントサイズが、セッション状態保持部110−8に登録されている、セッション開設時にネゴシエーションされた最大セグメントサイズに満たない場合という条件を加えてもよい。また、送出されたパケットの時刻スタンプとそのセグメントサイズをセッション状態保持部110−8に保持するようにしてもよい。
なお、SMSSの初期値は、セッションの開設時に受信端末20に通知したセグメントサイズとする。送信確認済みの最大セグメントサイズは、具体的には、送信確認パケット内の送信確認シーケンス番号の増加量の最大値で与えられる。例えば、第1から第4の送信確認パケットを順次受信した場合で、第1の送信確認パケットの送信確認シーケンス番号が0、第2の送信確認パケットの送信確認シーケンス番号が500、第3の送信確認パケットの送信確認シーケンス番号が1500、第4の送信確認パケットの送信確認シーケンス番号が2250である場合は、第2、第3、第4の送信確認パケットにおける送信確認シーケンス番号の増加量はそれぞれ500、1000、750となる。この場合の送信確認済みの最大セグメントサイズは1000となる。
また、図8に示したセッション中継装置110では、受信端末20または中継装置40から送出されたパケットはパケット入力部110−5を通じてセッションパケット判定部110−6に供給される。セッションパケット判定部110−6では、パケット入力部110−5からパケットが入力されると、その入力されたパケットがセッション状態保持部110−8に登録されているセッションパケットであるか否かが判断される。入力されたパケットがセッションパケットである場合は、セッションパケット判定部110−6は、入力されたパケット(送信確認パケット)を送信確認受信部110−7に渡す。入力されたパケットがセッションパケットでない場合は、セッションパケット判定部110−6は、入力されたパケット(エラー報告プロトコル)をエラー報告プロトコル終端部110−12に渡す。
セッションパケット判定部110−6から送信確認受信部110−7にセッションパケット(送信確認パケット)が供給された場合は、送信確認パケット転送・終端判定部110−9が、その送信確認パケットをパケット出力部110−11に転送するか、送信確認パケットを終端して通常のセッション中継を行うかの判断を行う。
図11に、送信確認パケット転送・終端判定部110−9の主要部を示す。図11を参照すると、送信確認パケット転送・終端判定部110−9は、SMSSに基づいて送信確認パケットの終端開始を判断する送信確認パケット終端判定部110−9−1と、送信確認パケットを転送する送信確認パケット転送部110−9−2と、通常のセッション中継処理を開始し、送信確認パケットの転送を止める送信確認パケット終端開始部110−9−3とを備える。
送信確認パケット終端判定部110−9−1は、未確認の送信シーケンス番号(送信端末との間に開設されるセッションの開始パケットのシーケンス番号に対応する)と受信端末20からの送信確認パケットの送信確認シーケンス番号の差分(送信確認済みの最大セグメントサイズに対応する)を取り、このシーケンス番号差分がSMSSのn倍(SMSSの倍数で与えられる設定値)に達するか否かを判断する。セッションプロトコルとして代表的なTCPにおいて、送信確認パケットは、設定によって、受信パケット1個につき1個送られてくる、もしくは、受信パケット2個につき1個送られてくる(所謂、遅延応答)。実装によっては、送信確認パケットは、受信パケットn(nは自然数)個につき1個送られてくるという場合もある。したがって、「SMSSのn倍」のnは、遅延応答の有無により異なる。
セッション開設直後およびシーケンス番号の差分がSMSSのn倍に達するまでの間は、送信確認パケット転送部110−9−2が、送信確認受信部110−7からの送信確認パケットをパケット出力部110−11に転送し、送信確認送信部110−10は、送信確認パケットの送出を行わない。シーケンス番号の差分がSMSSのn倍に達した後は、送信確認パケット転送部110−9−2による送信確認パケットの転送は実行されず、送信確認パケット終端開始部110−9−3が、送信確認受信部110−7からの送信確認パケットを終端して、送信確認送信部110−10による送信確認パケットの送信を開始させる。なお、SMSSが時刻スタンプと関連付けられてセッション状態保持部110−8に格納されている場合は、受信端末20からの送信確認パケット内の時刻スタンプに基づいてセッション状態保持部110−8からその時刻スタンプと関連付けられたSMSSの値を取得し、その取得したSMSSの値をシーケンス番号差分の代わりに使っても良い。
セッションパケット判定部110−6からエラー報告プロトコル終端部110−12にパケット(エラー報告プロトコル)が供給された場合は、エラー報告プロトコル終端部110−12にて、エラー報告プロトコルが終端される。そして、フラグメント要求メッセージ転送部110−13が、エラー報告プロトコルのフラグメント要求メッセージをエラー報告プロトコル終端部110−12から抜きだして送信端末10へ送出する。
次に、本実施形態のセッション中継装置の動作を具体的に説明する。図12に、送信端末10から受信端末20への通信方向での、本実施形態のセッション中継装置の動作を示し、図13に、受信端末20から送信端末10への通信方向での、本実施形態のセッション中継装置の動作を示す。
まず、図12を参照して、セッション開設処理が終わった直後に送信端末10からデータパケットが来た場合のセッション中継装置110の動作を説明する。
セッション開設直後は、送信確認パケット転送部110−9−2が、送信確認受信部110−7からの送信確認パケットをパケット出力部110−11に転送し、送信確認送信部110−10は送信確認パケットの送出を行わない。
パケット入力部110−1から入力されたデータパケットは、セッション中継部110−3に供給される。セッション中継部110−3では、供給されたパケットがバッファリング部110−3−1にてバッファリングされて保持される(ステップA101)。次いで、セグメント再送判定部110−3−2が、バッファリング部110−3−1に保持されたセグメントがセグメントサイズの異なる再送セグメントであるか否かを判断する。この段階では、バッファリング部110−3−1に保持されたセグメントはセグメントサイズの異なる再送セグメントでないため、ステップA102の判断は、「いいえ」となる。
ステップA102の判断が「いいえ」となると、通常セッション中継部110−3−5にて、通常のセッション中継処理が行われる(ステップA105)。この通常のセッション中継処理では、バッファリング部110−3−1に保持されたセグメントがパケット出力部110−4から受信端末20へ向けて出力される。
セッション中継装置110から受信端末20へ向けて送出されたセグメントは、中継装置40に受信される。中継装置40は、受信したセグメントのサイズがMTUより大きな場合は、エラー報告プロトコルのフラグメント要求メッセージを送信端末10に向けて送出する。このエラー報告プロトコルのフラグメント要求メッセージは、セッション中継装置110にて受信される。
次に、図13を参照して、中継装置40からのエラー報告プロトコルのフラグメント要求メッセージを受信した場合の、セッション中継装置110の動作を説明する。
受信端末20側からのパケットがパケット入力部110−5に入力される(ステップA201)。パケット入力部110−5に入力されたパケットはセッションパケット判定部110−6に供給され、セッションパケット判定部110−6において、その入力パケットがセッションパケットであるか否かの判断が行われる(ステップA202)。ここでは、受信端末20側からのパケットは、中継装置40が送信端末10に対して送出したエラー報告プロトコルのフラグメント要求メッセージであるので、ステップA202の判断は「いいえ」となる。
ステップA202の判断が「いいえ」となると、セッションパケット判定部110−6は、パケット入力部110−5からの入力パケットをエラー報告プロトコル終端部110−12に渡し、エラー報告プロトコル終端部110−12にて、その入力パケットがエラー報告プロトコルであるか否かの判断が行われる(ステップA203)。ここでは、入力パケットは、中継装置40が送信端末10に対して送出したエラー報告プロトコルのフラグメント要求メッセージであるので、ステップA203の判断は「はい」となる。
ステップA203の判断が「はい」となると、エラー報告プロトコル終端部110−12はパケット入力部110−5からの入力パケットをフラグメント要求メッセージ転送部110−13に渡し、フラグメント要求メッセージ転送部110−13にて、供給されたパケットがフラグメント要求メッセージであるか否かの判断が行われる(ステップA204)。ここでは、エラー報告プロトコル終端部110−12に供給されたパケットはフラグメント要求メッセージであるので、ステップA204の判断は「はい」となる。
ステップA204の判断が「はい」となると、フラグメント要求メッセージ転送部110−13は、エラー報告プロトコルのフラグメント要求メッセージをエラー報告プロトコル終端部110−12から抜きだしてパケット出力部110−11を通じて送信端末10へ送出する(ステップA205)。
セッション中継装置110からフラグメント要求メッセージを受信した送信端末10は、その受信したフラグメント要求メッセージに従い、セグメントサイズを低くしたパケットを受信端末20に向けて再送する。
次に、図12を参照して、送信端末10からセグメントサイズを低くしたパケットが来た場合の、セッション中継装置110の動作を説明する。
送信端末10からのパケットはパケット入力部110−1からセッション中継部110−3に供給される。セッション中継部110−3では、供給されたパケットがバッファリング部110−3−1にてバッファリングされて保持される(ステップA101)。次いで、セグメント再送判定部110−3−2が、バッファリング部110−3−1に保持されたセグメントがセグメントサイズの異なる再送セグメントであるか否かを判断する。この段階では、バッファリング部110−3−1に保持されたセグメントはセグメントサイズの異なる再送セグメントであるため、ステップA102の判断は「はい」となる。
ステップA102の判断が「はい」となると、SMSS更新部110−3−3がSMSSをその再送セグメントサイズで更新する(ステップA103)。そして、セグメント再送部110−3−4が、再送セグメントをパケット出力部110−4を通じて、無条件もしくは再送を含む任意のタイミングで受信端末に向けて送信する(ステップA104)。
セグメント再送部110−3−4により送信された再送セグメントのサイズは、中継装置40が送信元に対して返したフラグメント要求メッセージ通りのサイズとなっているため、再送セグメントは中継装置40を通過して受信端末20に到達する。受信端末20は、再送セグメントを受信すると、送信確認パケットを送信端末10に向けて送信する。この送信確認パケットは、中継装置40を介してセッション中継装置110にて受信される。
次に、図13を参照して、受信端末20から送信確認パケットを受信した場合の、セッション中継装置110の動作を説明する。
受信端末20側からのパケットがパケット入力部110−5に入力される(ステップA201)。パケット入力部110−5に入力されたパケットはセッションパケット判定部110−6に供給され、セッションパケット判定部110−6において、その入力パケットがセッションパケットであるか否かの判断が行われる(ステップA202)。ここでは、受信端末20側からのパケットは、送信確認パケットであるので、ステップA202の判断は「はい」となる。
ステップA202の判断が「はい」となると、送信確認受信部110−7が、送信確認受信処理を行う(ステップA206)。次いで、送信確認パケット終端判定部110−9−1が、送信確認済みの最大セグメントサイズを算出し(ステップA207)、その算出した送信確認済みの最大セグメントがSMSSのn倍(nは自然数)であるか否かを判断する(ステップA208)。このフローでは、遅延応答は行われていないため、送信済み確認パケットは、設定によって、受信パケット1個につき1個、受信側から返ってくる。よって、このステップA208では、ステップA207で算出した送信確認済みの最大セグメントはSMSSの1倍であるか否かの判断が行われる。送信確認済みの最大セグメントはSMSSの1倍であるので、ステップA208の判断は「はい」となる。
ステップA208の判断が「はい」となると、送信確認パケット終端開始部110−9−2が、受信したパケットに対して送信確認パケットを送出する送信確認処理の開始を送信確認送信部110−10に伝える(ステップA209)。その後、受信側からの送信確認パケットは終端され、送信端末10には転送されない。このようにして、受信側からの送信確認パケットはセッション中継器110で終端され、送信確認送信部110−10による送信確認パケットの送信端末10への送信処理が開始されることになる。
以上説明した本実施形態のセッション中継装置によれば、送信端末10からの再送セグメントは、必ず中継装置40に向けて送信される。よって、通信不能に陥ることなく、送信端末10と受信端末20の間で安定した通信状態を維持することができる。
また、本実施形態のセッション中継装置によれば、セッション開設直後は、受信側からの送信確認パケットをそのまま送信端末に転送するようになっているので、セッション中継装置において、送信端末からのパケットのオーバーフローによるデッドロックを回避することができる。
(第2の実施形態)
図14は、本発明の第2の実施形態であるセッション中継装置の構成を示すブロック図である。図15は、図14に示すセッション中継装置を備えたネットワーク構成を示すブロック図である。
図15に示すネットワーク構成では、送信端末10と受信端末20の間に中継装置40が配置され、さらに送信端末10と中継装置40の間にセッション中継装置120が配置されている。送信端末10、受信端末20および中継装置40は、図9に示したネットワーク構成と同様のものである。前述の第1の実施形態の場合と同様、ここでも、送信端末10から受信端末20へデータを送る場合に、セッション中継装置120がデータの中継を実現する場合を想定して具体的な処理を説明する。説明の簡単化のために、セッション開設に必要な処理および構成は省略し、また、セッションのデータは一方向に流れるものとする。セッション開設処理は、図1に示したセッション中継装置における動作で説明したとおりである。
図14を参照すると、本実施形態のセッション中継装置120は、送信端末10からのパケットが入力されるパケット入力部120−1、パケット入力部120−1からのパケットのセッション中継処理を行うセッション中継部120−3、セッション中継部120−3からのパケットを受信端末20側へ出力するパケット出力部120−4、受信端末20側からのパケットが入力されるパケット入力部120−5、パケット入力部120−5からのパケットがセッションパケットであるか否かを判定するセッションパケット判定部120−6、セッションの応答パケットである送信確認パケットを受信する送信確認受信部120−7、セッションの状態を保持するセッション状態保持部120−8、送信確認パケットを転送するか、送信確認パケットを終端して通常のセッション中継を行うかを判断する送信確認パケット転送・終端判定部120−9、送信確認パケットを送信端末10側へ送る送信確認送信部120−10、送信端末10に向けてパケットを出力するパケット出力部120−11、エラー報告プロトコルを終端するエラー報告プロトコル終端部120−12、エラー報告プロトコルのフラグメント要求メッセージをエラー報告プロトコル終端部120−12から抜きだして送信端末10へ送出するフラグメント要求メッセージ転送部120−13、フラグメント要求メッセージ転送部120−13から通知された最大転送単位を記憶する最大転送単位記憶部120−14を有する。
セッション中継装置120では、送信端末10から送出されたパケットはパケット入力部120−1を介してセッション中継部120−3に供給される。セッション中継部120−3は、パケット入力部120−1からパケットが入力されると、その入力されたパケットのセッション中継処理を行う。
図16に、セッション中継部120−3のセッション中継処理部の構成を示す。図16を参照すると、セッション中継処理部120−3は、MTUチェック部120−3−0、バッファリング部120−3−1、セグメント再送判定部120−3−2、セグメント再送部120−3−3、通常セッション中継部120−3−4およびSMSS送出シーケンス番号算出部120−3−5からなる。
MTUチェック部120−3−0は、セッション状態保持部120−8に保持されている、パケット入力部120−1を通じて入力されたパケットに関するセッション情報と、最大転送単位記憶部120−14に格納されている、送信先以上の情報に対応するMTUとを参照して、SMSSを更新する。ここで、「送信先以上の情報」とは、送信先の情報または送信先および送信元の各情報を指す。セッションプロトコルとして代表的なTCPの場合、送信先の情報は、(A−1)送信アドレス、(A−2)送信先ポートという情報を含み、送信元の情報は、(A−3)送信元アドレス、(A−4)送信元ポートという情報を含む。この場合における「送信先以上の情報」は、少なくとも(A−1)の情報を含むものであって、以下のような9個の組み合わせのいずれかである。
(1)(A−1)の情報のみ。
(2)(A−1)+(A−2)の情報。
(3)(A−1)+(A−2)+(A−3)の情報。
(4)(A−1)+(A−2)+(A−3)+(A−4)の情報
(5)(A−1)+(A−3)の情報。
(7)(A−1)+(A−4)の情報。
(8)(A−1)+(A−2)+(A−4)の情報。
(9)(A−1)+(A−3)+(A−4)の情報。
バッファリング部120−3−1は、パケット入力部120−1からのパケットをバッファリングする。セグメント再送判定部120−3−2は、バッファリング部120−3−1にバッファリングされたセグメントがセグメントサイズを変えて再送されたものか否かを判断する。セグメント再送部120−3−3は、サイズを変えて再送されたセグメントを再送する。通常セッション中継部120−3−4は、サイズを変えて再送されたものでないセグメントを中継する。SMSS送出シーケンス番号算出部120−3−5は、SMSSと等しい最小シーケンス番号を算出・更新する。ここで、「SMSSと等しい最小シーケンス番号」とは、TCPの場合、TCPのセグメントサイズがSMSSに初めて達したときのシーケンス番号を指す。具体的には、SMSSが1400バイトの場合で、
・シーケンス番号=1、セグメントサイズ=500
・シーケンス番号=101、セグメントサイズ=500
・シーケンス番号=601、セグメントサイズ=1000
・シーケンス番号=1601、セグメントサイズ=1400
・シーケンス番号=3001、セグメントサイズ=4401
というセグメントがやり取りされた場合は、「SMSSと等しい最小シーケンス番号」は「シーケンス番号=1601」となる。
上記のように構成されたセッション中継部120−3では、セグメント再送判定部120−3−2にて、送信端末10からのセグメントがセグメントサイズを変えて再送されてきたものか否かが判断される。そして、セグメントサイズを変えて再送されてきたものである場合は、セグメント再送部120−3−4が、その再送セグメントを、無条件もしくは再送を含む任意のタイミングで、受信端末20に向けて送出する。ここで、「セグメントサイズを変えて再送」とは、開始シーケンス番号が同じで、セグメントサイズが異なる再送セグメントを指す。セグメント再送判定部120−3−2の判定条件に、再送セグメントが受信端末20に未到達である、という条件、または、再送セグメントサイズがSMSS以下である、という条件を加えてもよく、また、これら条件の双方を満たす、という条件を加えてもよい。
また、セッション中継部120−3では、SMSS送出シーケンス番号算出部120−3−5により、送出セグメントサイズがSMSSと等しい場合のセグメントサイズで最小の送信シーケンス番号(以後、最大送出セグメントに対応する最小シーケンス番号)がセッション状態保持部120−8に格納される。更新の条件として、送信確認済み最大セグメントサイズが、セッション状態保持部120−8に登録されている、セッション開設時にネゴシエーションされた最大セグメントサイズに満たない場合という条件を加えてもよい。
送出セグメントサイズがSMSSと等しい場合のセグメントサイズで最小の送信シーケンス番号の格納動作を以下に簡単に説明する。
例えば、中継装置40の先の経路のMTUが1000で、送信端末10が、1500バイトのデータを、960バイトのセグメントと、540バイトのセグメントの2つセグメントで送信する場合(この場合のヘッダサイズは40バイト)、送信端末10からは、960バイトのセグメントを含むパケット(シーケンス番号「1」)と、540バイトのセグメントを含むパケット(シーケンス番号「2」)とが順次送出される。セッション中継部120−3において、最初のパケット(シーケンス番号「1」)が受信されると、960バイトのセグメントがバッファリングされ、SMSSは960バイトになるように更新される。そして、バッファリングされた960バイトのセグメントが、受信端末に向けて送出される。この動作において、送出セグメントサイズはSMSSと等しくなる。
次いで、2番目のパケット(シーケンス番号「2」)が受信されると、540バイトのセグメントがバッファリングされるが、SMSSは960のままとされる。これは、SMSSの更新タイミングは、MTUが更新されるタイミングであるためである。そして、バッファリングされた540バイトのセグメントが、受信端末20に向けて送出される。
上記の2つのパケット受信の動作において、送出セグメントサイズがSMSSと等しい場合のセグメントサイズで最小の送信シーケンス番号は、最初のパケット(シーケンス番号「1」)の受信動作の場合における送信シーケンス番号「1」とされ、セッション状態保持部120−8には、送信シーケンス番号「1」が格納される。
また、図14に示したセッション中継装置120では、受信端末20または中継装置40から送出されたパケットは、パケット入力部120−5を通じてセッションパケット判定部120−6に供給される。セッションパケット判定部120−6では、パケット入力部120−5から入力されたパケットがセッション状態保持部120−8に登録されているセッションパケットであるか否かが判断される。入力されたパケットがセッションパケットである場合は、セッションパケット判定部120−6は、入力されたパケット(送信確認パケット)を送信確認受信部120−7に渡す。入力されたパケットがセッションパケットでない場合は、セッションパケット判定部120−6は、入力されたパケット(エラー報告プロトコル)をエラー報告プロトコル終端部120−12に渡す。
セッションパケット判定部120−6から送信確認受信部120−7にセッションパケット(送信確認パケット)が供給された場合は、送信確認パケット転送・終端判定部120−9が、送信確認パケットをパケット出力部120−11に転送するか、送信確認パケットを終端して通常のセッション中継を行うかの判断を行う。
図17に、送信確認パケット転送・終端判定部120−9の主要部を示す。図17を参照すると、送信確認パケット転送・終端判定部120−9は、SMSSに基づいて送信確認パケットの終端開始を判断する送信確認パケット終端判定部120−9−1と、送信確認パケットを転送する送信確認パケット転送部120−9−2と、通常のセッション中継処理を開始し、送信確認パケットの転送を止める送信確認パケット終端開始部120−9−3とを備える。
送信確認パケット終端判定部120−9−1は、受信端末20からの送信確認パケットの送信確認済みの最大シーケンス番号N1が最大送出セグメントに対応する最小シーケンス番号N2以上になったか否かの判断(N1≧N2かの判断)を行う。セッション開設直後は、最大シーケンス番号N1は最小シーケンス番号N2に未だ達していない(N1<N2)ので、送信確認パケット転送部120−9−2が、送信確認受信部120−7からの送信確認パケットをパケット出力部120−11に転送し、送信確認送信部120−10は、送信確認パケットの送出を行わない。最大シーケンス番号N1は最小シーケンス番号N2に達した後(N1≧N2)は、送信確認パケット転送部120−9−2による送信確認パケットの転送は実行されず、送信確認パケット終端開始部120−9−3が、受信側からの送信確認パケットを終端して、送信確認送信部120−10による送信確認パケットの送信を開始させる。
セッションパケット判定部120−6からエラー報告プロトコル終端部120−12にパケット(エラー報告プロトコル)が供給された場合は、エラー報告プロトコル終端部120−12にて、エラー報告プロトコルが終端される。そして、フラグメント要求メッセージ転送部120−13が、エラー報告プロトコルのフラグメント要求メッセージをエラー報告プロトコル終端部120−12から抜きだして送信端末10へ送出するとともに、その抜き出したフラグメント要求メッセージ内の「次のホップの最大転送単位」を読み出し、最大転送単位記憶部120―14に格納されている送信先以上の情報ごとの最大転送単位の情報をその読み出した「次のホップの最大転送単位」で更新する。ここで、「フラグメント要求メッセージ内の最大転送単位」とは、例えばTCP/IPであれば、図4中の「Next-HOP MTU」を指す。また、「送信先以上の情報」は、図4中の「Internet Header + 64 bits of Original Data Datagram」内の情報であり、図5中の最低「Destination Address」を含む、「Source Address」、「Source Port」、「Destination Port」の情報を指す。
セッション中継器120−3では、セッション中継中のセッションの「送信先以上の情報」をキーとして最大転送単位記憶部120−14を検索して、最大転送単位記憶部120−14内の最大転送単位が更新されているか否かが判断される。最大転送単位が更新されている場合は、更新後の最大転送単位に基づいてSMSSを更新する。具体的には、あるセッションが、「Src Addr: 192.168.11」、「Src Port: 1234」、「Dst Addr:192.168.2.1」、「Dst Prot: 5001」であり、送信先以上の情報が、「Dst Addr」のみである場合、最大転送単位記憶部120−14を「192.168.2.1」をキーとして最大転送単位を検索する。最大転送単位記憶部120−14内の「192.168.2.1」の最大転送単位が変更されていた場合は、変更後の情報によりSMSSを更新する。SMSSの更新では、例えば「最大転送単位」−「ヘッダサイズ」とする更新が行われる。セッション中継器120−3において、ヘッダの付け替えを行い、送信端末10側の受信ヘッダサイズと受信端末20側の送信ヘッダサイズが異なる場合は、「ヘッダサイズ」はそれら受信ヘッダサイズおよび送信ヘッダサイズの最大値とされる。
MTUとセグメントサイズの関係は、MTU≧「ヘッダサイズ」+「セグメントサイズ」となっており、ヘッダサイズは、通信の開設時のヘッダサイズで決まる。経路全体のMTUが1000バイトで、送信端末10側の受信ヘッダサイズが50バイトで、受信端末20側の送信ヘッダサイズが60バイトである場合、送信端末10側からのSMSSは940バイトとされる。この場合、送信端末10側からのセグメントが950バイトのときは、セッション中継器120−3によるヘッダ付け替えにより、受信端末20側へのパケットサイズが1010バイトとなって経路全体のMTUを超えてしまい、通信を行うことができないために、SMSSが950バイトとされることはない。反対に、経路全体のMTUが1000バイトで、送信端末10側の受信ヘッダサイズが60バイトで、受信端末20側の送信ヘッダサイズが50バイトである場合、送信端末10側からのSMSSは940バイトとされる。この場合、送信端末10側からのセグメントが950バイトのときは、パケットサイズが1010バイトとなって経路全体のMTUを超えてしまい、その結果、パケットが中継器に到達しないため、SMSSが950バイトとされることはない。
次に、本実施形態のセッション中継装置の動作を具体的に説明する。図18に、送信端末10から受信端末20への通信方向での、本実施形態のセッション中継装置の動作を示し、図19に、SMSS送出シーケンス番号算出処理の動作を示す。また、図20に、MTUチェック処理の動作を示し、図21に、受信端末20から送信端末10への通信方向での、本実施形態のセッション中継装置の動作を示す。
まず、図18を参照して、セッション開設処理が終わった直後に送信端末10からデータパケットが来た場合のセッション中継装置120の動作を説明する。
セッション開設直後は、送信確認パケット転送部120−9−2が、送信確認受信部120−7からの送信確認パケットをパケット出力部120−11に転送し、送信確認送信部120−10は送信確認パケットの送出行わない。この段階におけるSMSSは、セッション開設時にネゴシエーションされた最大セグメントサイズである。送信先の情報ごとのMTUは、通常のパケットの最大サイズである。
送信端末10から送出されたパケットは、パケット入力部120−1を通じてセッション中継部120−3に供給される(ステップB101)。セッション中継部120−3では、送信端末10からパケットが入力されると、MTUチェック部120−3−0にてMTUチェック処理が行われ(ステップB102)、供給されたパケットがバッファリング部120−3−1にてバッファリングされて保持される(ステップB103)。
MTUチェック部120−3−0によるMTUチェック処理では、図20に示すように、まず、送信先の情報ごとのMTUが減少したか否かの判断が行われる(ステップB301)。この段階では、MTUは未だ減少していないため、ステップB201の判断は「いいえ」となり、MTUチェック処理は終了する。
送信端末10からのパケットがバッファリング部120−3−1にてバッファリングされて保持されると、次いで、セグメント再送判定部120−3−2が、バッファリング部120−3−1に保持されたセグメントがセグメントサイズの異なる再送セグメントであるか否かを判断する(ステップB104)。この段階では、バッファリング部120−3−1に保持されたセグメントはセグメントサイズの異なる再送セグメントでないため、ステップB104の判断は「いいえ」となる。
ステップB104の判断が「いいえ」となると、通常セッション中継部120−3−4にて、通常のセッション中継処理が行われる(ステップB109)。この通常のセッション中継処理では、バッファリング部120−3−1に保持されたパケットセグメントがパケット出力部120−4に出力される。そして、パケット出力部120−4に出力されるパケットに対して、SMSS送出シーケンス番号算出処理部120−3−5にて、SMSS送出シーケンス番号算出処理が行われる(ステップB107)。
ステップB107のSMSS送出シーケンス番号算出処理では、図19に示すように、まず、送出セグメントサイズがSMSSに等しいか否かの判断が行われる(ステップB201)。この段階では、送出セグメントサイズがSMSSと等しいため、ステップB201の判断は「はい」となる。ステップB201の判断が「はい」となると、続いて、セグメントサイズに対応した最初のSMSS送出シーケンス番号であるか否かの判断が行われる(ステップB202)。この段階では、セグメントサイズに対応した最初のSMSS送出シーケンス番号であるので、ステップB202の判断は「はい」となる。ステップB202の判断が「はい」となると、次いで、SMSS送出シーケンス番号を送出シーケンス番号で更新する処理を行う(ステップB203)。
上述のようにしてステップB107のSMSS送出シーケンス番号算出処理が行われた後、パケット出力部120−4から受信端末20側へパケットが出力される(ステップB108)。
セッション中継装置120から受信端末20へ向けて送出されたセグメントは、中継装置40に受信される。中継装置40は、受信したセグメントのサイズがMTUより大きな場合は、エラー報告プロトコルのフラグメント要求メッセージを送信端末10に向けて送出する。このエラー報告プロトコルのフラグメント要求メッセージは、セッション中継装置120にて受信される。
次に、図21を参照して、中継装置40からのエラー報告プロトコルのフラグメント要求メッセージを受信した場合の、セッション中継装置120の動作を説明する。
受信端末20側からのパケットがパケット入力部120−5に入力される(ステップB401)。パケット入力部120−5に入力されたパケットはセッションパケット判定部120−6に供給され、セッションパケット判定部120−6において、その入力パケットがセッションパケットであるか否かの判断が行われる(ステップB402)。この段階では、受信端末20側からのパケットは、中継装置40が送信端末10に対して送出したエラー報告プロトコルのフラグメント要求メッセージであるので、ステップB402の判断は「いいえ」となる。
ステップB402の判断が「いいえ」となると、セッションパケット判定部120−6はパケット入力部120−5からの入力パケットをエラー報告プロトコル終端部120−12に渡し、エラー報告プロトコル終端部120−12にて、その入力パケットがエラー報告プロトコルであるか否かの判断が行われる(ステップB403)。この段階では、入力パケットは、中継装置40が送信端末10に対して送出したエラー報告プロトコルのフラグメント要求メッセージであるので、ステップB403の判断は「はい」となる。
ステップB403の判断が「はい」となると、エラー報告プロトコル終端部120−12はパケット入力部120−5からの入力パケットをフラグメント要求メッセージ転送部120−13に渡し、フラグメント要求メッセージ転送部120−13にて、エラー報告プロトコル終端部120−12に供給されたパケットがフラグメント要求メッセージであるか否かの判断が行われる(ステップB404)。この段階では、エラー報告プロトコル終端部120−12に供給されたパケットはフラグメント要求メッセージであるので、ステップB404の判断は「はい」となる。
ステップB404の判断が「はい」となると、フラグメント要求メッセージ転送部120−13は、エラー報告プロトコルのフラグメント要求メッセージをエラー報告プロトコル終端部120−12から抜き出し、その抜き出したフラグメント要求メッセージ内の最大転送単位に基づいて、最大転送単位記憶部120−14に格納されている、送信先以上の情報ごとの最大転送単位を更新する(ステップB410)。そして、フラグメント要求メッセージ転送部120−13は、抜き出したフラグメント要求メッセージをパケット出力部120−11を通じて送信端末10へ送出する(ステップB405)。
セッション中継装置120からフラグメント要求メッセージを受信した送信端末10は、その受信したフラグメント要求メッセージに従い、セグメントサイズを低くしたパケットを受信端末20に向けて再送する。
次に、図18を参照して、送信端末10からセグメントサイズを低くしたパケットが来た場合の、セッション中継装置120の動作を説明する。
送信端末10からのデータパケットは、パケット入力部120−1からセッション中継部120−3に供給される(ステップB101)。セッション中継部120−3では、送信端末10からパケットが入力されると、MTUチェック部120−3−0にてMTUチェック処理が行われ(ステップB102)、供給されたパケットがバッファリング部120−3−1にてバッファリングされて保持される(ステップB103)。
MTUチェック部120−3−0によるMTUチェック処理では、図20に示すように、まず、送信先の情報ごとのMTUが減少したか否かの判断が行われる(ステップB301)。この段階では、MTUは減少しているため、ステップB201の判断は「はい」となる。ステップB201の判断が「はい」となると、続いて、SMMSを[「MTU」−「ヘッダサイズ」]の値とする。その後、MTUチェック処理を終了する。
送信端末10からのパケットがバッファリング部120−3−1にてバッファリングされて保持されると、次いで、セグメント再送判定部120−3−2が、バッファリング部120−3−1に保持されたセグメントがセグメントサイズの異なる再送セグメントであるか否かを判断する(ステップB104)。この段階では、バッファリング部120−3−1に保持されたセグメントはセグメントサイズの異なる再送セグメントであるため、ステップB104の判断は「はい」となる。
ステップB104の判断が「はい」となると、セグメント再送部120−3−3が、無条件もしくは再送を含む任意のタイミングで、バッファリング部120−3−1に保持されたパケットセグメントをパケット出力部120−4に出力する(ステップB106)。そして、パケット出力部120−4に出力されるパケットに対して、SMSS送出シーケンス番号算出処理部120−3−5にて、SMSS送出シーケンス番号算出処理が行われる(ステップB107)。
ステップB107のSMSS送出シーケンス番号算出処理では、図19に示すように、まず、送出セグメントサイズがSMSSに等しいか否かの判断が行われる(ステップB201)。この段階では、送出セグメントサイズがSMSSと等しいため、ステップB201の判断は「はい」となる。ステップB201の判断が「はい」となると、続いて、セグメントサイズに対応した最初のSMSS送出シーケンス番号であるか否かの判断が行われる(ステップB202)。この段階では、セグメントサイズに対応した最初のSMSS送出シーケンス番号であるので、ステップB202の判断は「はい」となる。ステップB202の判断が「はい」となると、次いで、SMSS送出シーケンス番号を送出シーケンス番号で更新する処理を行う(ステップB203)。
上述のようにしてステップB107のSMSS送出シーケンス番号算出処理が行われた後、パケット出力部120−4から受信端末20側へパケットが出力される(ステップB108)。
上記パケット出力部120−4から送信された再送セグメントのサイズは、中継装置40が送信元に対して返したフラグメント要求メッセージ通りのサイズとなっているため、再送セグメントは中継装置40を通過して受信端末20に到達する。受信端末20は、再送セグメントを受信すると、その応答パケットである送信確認パケットを送信端末10に向けて送信する。この送信確認パケットは、中継装置40を介してセッション中継装置120にて受信される。
次に、図21を参照して、受信端末20から送信確認パケットを受信した場合の、セッション中継装置120の動作を説明する。
受信端末20側からのパケットがパケット入力部120−5に入力される(ステップB401)。パケット入力部120−5に入力されたパケットはセッションパケット判定部120−6に供給され、セッションパケット判定部120−6において、その入力パケットがセッションパケットであるか否かの判断が行われる(ステップB402)。この段階では、受信端末20側からのパケットは、受信端末20が送信端末10に向けて送信した送信確認パケット(セッションパケット)であるので、ステップB402の判断は「はい」となる。
ステップB402の判断が「はい」となると、セッションパケット判定部120−6はパケット入力部120−5からの入力パケットを送信確認受信部120−7に渡し、送信確認受信部120−7にて送信確認受信処理が行われる(ステップB406)。次いで、送信確認パケット終端判定部120−9−1が、[「送信確認済みの最大シーケンス番号」≧「最大送出セグメントに対応する最小シーケンス番号」]の条件を満たすか否かの判断を行う(ステップB408)。この段階では、その条件を満たすので、送信確認パケット終端開始部120−9−2が、送信確認処理の開始を送信確認送信部120−10に伝える(ステップB409)。その後、送信確認パケットは、送信端末10には転送されない。
この結果、送信確認パケットはセッション中継器120で終端されることになる。
上述した第2の実施形態のセッション中継装置においても、第1の実施形態の場合と同様、送信端末10からの再送セグメントは、必ず中継装置40に向けて送信される。よって、通信不能に陥ることなく、送信端末10と受信端末20の間で安定した通信状態を維持することができる。
また、セッション開設直後は、受信側からの送信確認パケットをそのまま送信端末に転送するようになっているので、セッション中継装置において、送信端末からのパケットのオーバーフローによるデッドロックを回避することができる。
(第3の実施形態)
図22は、本発明の第3の実施形態であるセッション中継装置の構成を示すブロック図である。図23は、図22に示すセッション中継装置を備えたネットワーク構成を示すブロック図である。
図22に示すネットワーク構成では、送信端末10と受信端末20の間に中継装置40が配置され、さらに送信端末10と中継装置40の間にセッション中継装置130が配置されている。送信端末10、受信端末20および中継装置40は、前述の第1および第2の実施形態におけるネットワーク構成と同様のものである。本実施形態でも、送信端末10から受信端末20へデータを送る場合に、セッション中継装置130がデータの中継を実現する場合を想定して具体的な処理を説明する。説明の簡単化のために、セッション開設に必要な処理および構成は省略し、また、セッションのデータは一方向にながれるものとする。セッション開設処理は、図1に示したセッション中継装置における動作で説明したとおりである。
図22を参照すると、本実施形態のセッション中継装置130は、送信端末10からのパケットが入力されるパケット入力部130−1、パケット入力部130−1からのパケットのセッション中継処理を行うセッション中継部130−3、セッション中継部130−3からのパケットを受信端末20側へ出力するパケット出力部130−4、受信端末20側からのパケットが入力されるパケット入力部130−5、パケット入力部130−5からのパケットがセッションパケットであるか否かを判定するセッションパケット判定部130−6、セッションの応答パケットである送信確認パケットを受信する送信確認受信部130−7、セッションの状態を保持するセッション状態保持部130−8、送信確認パケットを転送するか、送信確認パケットを終端して通常のセッション中継を行うかを判断する送信確認パケット転送・終端判定部130−9、送信確認パケットを送信端末10側へ送る送信確認送信部130−10、送信端末10に向けてパケットを出力するパケット出力部130−11、エラー報告プロトコルを終端するエラー報告プロトコル終端部130−12、エラー報告プロトコルのフラグメント要求メッセージをエラー報告プロトコル終端部130−12から抜きだして送信端末10へ送出するフラグメント要求メッセージ転送部130−13、フラグメント要求メッセージ転送部130−13から通知された最大転送単位を記憶する最大転送単位記憶部130−14を有する。
本実施形態のセッション中継装置130は、セッション中継部130−3およびフラグメント要求メッセージ転送部130−13の構成が異なる以外は、上述の第2の実施形態のものと基本的に同じである。
図24に、セッション中継部130−3の構成を示す。図24を参照すると、セッション中継部130−3は、パケット入力部130−1からのパケットをバッファリングするバッファリング部130−3−1、パケット入力部130−1にバッファリングされたセグメントがセグメントサイズを変えて再送されたものか否かを判断するセグメント再送判定部130−3−2、サイズを変えて再送されたセグメントを再送するセグメント再送部130−3−3、サイズを変えて再送されたものでないセグメントを中継する通常セッション中継部130−3−4、SMSSと等しい最小シーケンス番号を算出・更新するSMSS送出シーケンス番号算出手順130−3−5を備える。
セッション中継部130−3では、セグメント再送判定部130−3−2により、送信端末10からのセグメントがセグメントサイズを変えて再送されてきたものか否かが判断される。送信端末10からのセグメントがセグメントサイズを変えて再送されてきたものである場合は、セグメント再送部130−3−4により、無条件もしくは再送を含む任意のタイミングで、その再送セグメントのパケットが受信端末20に向けて送出される。ここで、「セグメントを変えて再送」とは、開始シーケンス番号が同じで、セグメントサイズが異なる再送セグメントを指す。セグメント再送判定部130−3−2の判定条件に、再送セグメントが受信端末20に未到達である、という条件、または、再送セグメントサイズがSMSS以下である、という条件を加えてもよく、また、これら条件の双方を満たす、という条件を加えてもよい。
また、セッション中継部130−3では、SMSS送出シーケンス番号算出部130−3−5により、送出セグメントサイズがSMSSと等しい場合のセグメントサイズで最小の送信シーケンス番号(以後、最大送出セグメントに対応する最小シーケンス番号)がセッション状態保持部130−8に格納される。更新の条件として、送信確認済み最大セグメントサイズが、セッション状態保持部130−8に登録されたセッション開設時にネゴシエーションされた最大セグメントサイズに満たない場合という条件を加えてもよい。
図25に、フラグメント要求メッセージ転送部130−13の構成を示す。図25を参照すると、フラグメント要求メッセージ転送部130−13は、フラグメント要求メッセージ判定部130−13−1、セッション検索部130−13−2、SMSS更新部130−13−3、通知MTU更新部130−13−4を備える。なお、この通知MTU更新部130−13−4は設けなくてもよい。
フラグメント要求メッセージ判定部130−13−1は、エラー報告プロトコル終端部130−12からのエラー報告プロトコルがフラグメント要求メッセージであるか否かを判定する。フラグメント要求メッセージであれば、セッション検索部130−13−2が、メッセージ内のエラーパケットヘッダにあるポート番号を含む送信先・受信先の情報に基づいてセッション状態保持部130−8内の情報を検索する。セッション情報を検索する際には、セキュリティを高めるため、[「シーケンス番号が受信端末20からの送信確認パケットの送信確認済みの最大シーケンス番号」≦「エラーパケットヘッダにある送信シーケンス番号」≦「送信済みの送信シーケンス番号の最大値」]という条件を満たすか否かのチェックを入れてもよい。
SMSS更新部130−13−3は、フラグメント要求メッセージ内の「次のホップの最大転送単位」を読み出し、中継中のセッションのSMSSを[「次のホップの最大転送単位」−「ヘッダサイズ」]値としてセッション状態保持部130−8に保持されたSMSSを更新する。このヘッダサイズは、送信端末10側と受信端末20側でヘッダサイズが異なる場合、二つのヘッダサイズの最大値となる。「最大転送単位」は、最大転送単位記憶部130−14に格納される。通知MTU更新部130−13−4がない場合は、SMSS更新部130−13−3は、フラグメント要求メッセージをパケット出力130−11へ出力する。
通知MTU更新部130−13−4は、送信端末10側と受信端末20側でヘッダサイズが異なる場合に、送信端末に通知するフラグメント要求メッセージ内の最大転送単位からヘッダサイズを差し引いた値を通知する。
図26に、送信確認パケット転送・終端判定部130−9の主要部を示す。図26を参照すると、送信確認パケット転送・終端判定部130−9は、SMSSに基づいて送信確認パケットの終端開始を判断する送信確認パケット終端判定部130−9−1と、送信確認パケットを転送する送信確認パケット転送部130−9−2と、通常のセッション中継処理を開始し、送信確認パケットの転送を止める送信確認パケット終端開始部130−9−3とを備える。
送信確認パケット終端判定部130−9−1は、受信端末20からの送信確認パケットの送信確認済みの最大シーケンス番号が最大送出セグメントに対応する最小シーケンス番号に達するか否かを判断する。セッション開設直後は、送信確認パケット転送部130−9−2は、送信確認受信部130−7からの送信確認パケットをパケット出力部130−11に転送し、送信確認送信部130−10は、送信確認パケットの送出を行わない。送信確認済みの最大シーケンス番号が最大送出セグメントに対応する最小シーケンス番号に達した後は、送信確認パケット転送部130−9−2による送信確認パケットの転送は実行されず、送信確認パケット終端開始部130−9−3が受信側からの送信確認パケットを終端して、送信確認送信部130−10による送信確認パケットの送信を開始させる。
次に、本実施形態のセッション中継装置の動作を具体的に説明する。図27に、送信端末10から受信端末20への通信方向での、本実施形態のセッション中継装置の動作を示し、図28に、SMSS送出シーケンス番号算出処理の動作を示す。また、図29に、受信端末20から送信端末10への通信方向での、本実施形態のセッション中継装置の動作を示す。
まず、図27を参照して、セッション開設処理が終わった直後に送信端末10からデータパケットが来た場合のセッション中継装置130の動作を説明する。
セッション開設直後は、送信確認パケット転送部130−9−2が、送信確認受信部130−7からの送信確認パケットをパケット出力部130−11に転送し、送信確認送信部130−10は送信確認パケットの送出行わない。この段階におけるSMSSは、セッション開設時にネゴシエーションされた最大セグメントサイズである。
送信端末10から送出されたパケットは、パケット入力部130−1を通じてセッション中継部130−3に供給される(ステップC101)。セッション中継部130−3では、送信端末10からパケットが入力されると、供給されたパケットがバッファリング部130−3−1にてバッファリングされて保持される(ステップC102)。
送信端末10からのパケットがバッファリング部130−3−1にてバッファリングされて保持されると、次いで、セグメント再送判定部130−3−2が、バッファリング部130−3−1に保持されたセグメントがセグメントサイズの異なる再送セグメントであるか否かを判断する(ステップC103)。この段階では、バッファリング部130−3−1に保持されたセグメントはセグメントサイズの異なる再送セグメントでないため、ステップC103の判断は「いいえ」となる。
ステップC103の判断が「いいえ」となると、通常セッション中継部130−3−4にて、通常のセッション中継処理が行われる(ステップC107)。この通常のセッション中継処理では、バッファリング部130−3−1に保持されたパケットセグメントが最初のセグメントであるため、その保持されたパケットセグメントがパケット出力部130−4に出力される。そして、パケット出力部130−4に出力されるパケットに対して、SMSS送出シーケンス番号算出処理部130−3−5にて、SMSS送出シーケンス番号算出処理が行われる(ステップC105)。
ステップC105のSMSS送出シーケンス番号算出処理では、図28に示すように、まず、送出セグメントサイズがSMSSに等しいか否かの判断が行われる(ステップC201)。この段階では、送出セグメントサイズがSMSSと等しいため、ステップC201の判断は「はい」となる。ステップC201の判断が「はい」となると、続いて、セグメントサイズに対応した最初のSMSS送出シーケンス番号であるか否かの判断が行われる(ステップC202)。この段階では、セグメントサイズに対応した最初のSMSS送出シーケンス番号であるので、ステップC202の判断は「はい」となる。ステップC202の判断が「はい」となると、次いで、SMSS送出シーケンス番号を送出シーケンス番号で更新する処理を行う(ステップC203)。
上述のようにしてステップC105のSMSS送出シーケンス番号算出処理が行われた後、パケット出力部130−4から受信端末20側へパケットが出力される(ステップC106)。
セッション中継装置130から受信端末20へ向けて送出されたセグメントは、中継装置40に受信される。中継装置40は、受信したセグメントのサイズがMTUより大きな場合は、エラー報告プロトコルのフラグメント要求メッセージを送信端末10に向けて送出する。このエラー報告プロトコルのフラグメント要求メッセージは、セッション中継装置130にて受信される。
次に、図29を参照して、中継装置40からのエラー報告プロトコルのフラグメント要求メッセージを受信した場合の、セッション中継装置130の動作を説明する。
受信端末20側からのパケットがパケット入力部130−5に入力される(ステップC401)。パケット入力部130−5に入力されたパケットはセッションパケット判定部130−6に供給され、セッションパケット判定部130−6において、その入力パケットがセッションパケットであるか否かの判断が行われる(ステップC402)。この段階では、受信端末20側からのパケットは、中継装置40が送信端末10に対して送出したエラー報告プロトコルのフラグメント要求メッセージであるので、ステップC402の判断は「いいえ」となる。
ステップC402の判断が「いいえ」となると、セッションパケット判定部130−6は、パケット入力部130−5からの入力パケットをエラー報告プロトコル終端部130−12に渡し、エラー報告プロトコル終端部130−12にて、その入力パケットがエラー報告プロトコルであるか否かの判断が行われる(ステップC403)。この段階では、入力パケットは、中継装置40が送信端末10に対して送出したエラー報告プロトコルのフラグメント要求メッセージであるので、ステップC403の判断は「はい」となる。
ステップC403の判断が「はい」となると、エラー報告プロトコル終端部130−12はパケット入力部130−5からの入力パケットをフラグメント要求メッセージ転送部130−13に渡し、フラグメント要求メッセージ転送部130−13にて、フラグメント要求メッセージ判定部130−13−1が、エラー報告プロトコル終端部130−12に供給されたパケットがフラグメント要求メッセージであるか否かの判断が行われる(ステップC404)。この段階では、エラー報告プロトコル終端部130−12に供給されたパケットはフラグメント要求メッセージであるので、ステップC404の判断は「はい」となる。
ステップC404の判断が「はい」となると、フラグメント要求メッセージ転送部130−13は、エラー報告プロトコルのフラグメント要求メッセージをエラー報告プロトコル終端部130−12から抜き出し、その抜き出したフラグメント要求メッセージ内の最大転送単位およびヘッダサイズの情報に基づいて、セッション状態保持部130−8に保持された、セッションごとのSMSSを更新する(ステップC405)。このSMSS更新処理では、SMSSは[「最大転送単位」−「ヘッダサイズ」]の値に更新される。SMSS更新後、フラグメント要求メッセージ転送部130−13は、抜き出したフラグメント要求メッセージをパケット出力部130−11を通じて送信端末10へ送出する(ステップC406)。
セッション中継装置130からフラグメント要求メッセージを受信した送信端末10は、その受信したフラグメント要求メッセージに従い、セグメントサイズを低くしたパケットを受信端末20に向けて再送する。
次に、図27を参照して、送信端末10からセグメントサイズを低くしたパケットが来た場合の、セッション中継装置130の動作を説明する。
送信端末10からのデータパケットは、パケット入力部130−1からセッション中継部130−3に供給される(ステップC101)。セッション中継部130−3では、送信端末10から供給されたパケットがバッファリング部130−3−1にてバッファリングされて保持される(ステップC102)。
送信端末10からのパケットがバッファリング部130−3−1にてバッファリングされて保持されると、次いで、セグメント再送判定部130−3−2が、バッファリング部130−3−1に保持されたセグメントがセグメントサイズの異なる再送セグメントであるか否かを判断する(ステップC103)。この段階では、バッファリング部130−3−1に保持されたセグメントはセグメントサイズの異なる再送セグメントであるため、ステップC103の判断は「はい」となる。
ステップC103の判断が「はい」となると、セグメント再送部130−3−3が、無条件もしくは再送を含む任意のタイミングで、バッファリング部130−3−1に保持されたパケットセグメントをパケット出力部130−4に出力する(ステップC104)。そして、パケット出力部130−4に出力されるパケットに対して、SMSS送出シーケンス番号算出処理部130−3−5にて、SMSS送出シーケンス番号算出処理が行われる(ステップC105)。
ステップC105のSMSS送出シーケンス番号算出処理では、図28に示すように、まず、送出セグメントサイズがSMSSに等しいか否かの判断が行われる(ステップC201)。この段階では、送出セグメントサイズがSMSSと等しいため、ステップC201の判断は「はい」となる。ステップC201の判断が「はい」となると、続いて、セグメントサイズに対応した最初のSMSS送出シーケンス番号であるか否かの判断が行われる(ステップC202)。この段階では、セグメントサイズに対応した最初のSMSS送出シーケンス番号であるので、ステップC202の判断は「はい」となる。ステップC202の判断が「はい」となると、次いで、SMSS送出シーケンス番号を送出シーケンス番号で更新する処理を行う(ステップC203)。
上述のようにしてステップC107のSMSS送出シーケンス番号算出処理が行われた後、パケット出力部130−4から受信端末20側へパケットが出力される(ステップC106)。
上記パケット出力部130−4から送信された再送セグメントのサイズは、中継装置40が送信元に対して返したフラグメント要求メッセージ通りのサイズとなっているため、再送セグメントは中継装置40を通過して受信端末20に到達する。受信端末20は、再送セグメントを受信すると、その応答パケットである送信確認パケットを送信端末10に向けて送信する。この送信確認パケットは、中継装置40を介してセッション中継装置130にて受信される。
次に、図29を参照して、受信端末20から送信確認パケットを受信した場合の、セッション中継装置130の動作を説明する。
受信端末20側からのパケットがパケット入力部130−5に入力される(ステップC401)。パケット入力部130−5に入力されたパケットはセッションパケット判定部130−6に供給され、セッションパケット判定部130−6において、その入力パケットがセッションパケットであるか否かの判断が行われる(ステップC402)。この段階では、受信端末20側からのパケットは、受信端末20が送信端末10に向けて送信した送信確認パケット(セッションパケット)であるので、ステップC402の判断は「はい」となる。
ステップC402の判断が「はい」となると、セッションパケット判定部130−6はパケット入力部130−5からの入力パケットを送信確認受信部130−7に渡し、送信確認受信部130−7にて送信確認受信処理が行われる(ステップC407)。次いで、送信確認パケット終端判定部130−9−1が、[「送信確認済みの最大シーケンス番号」≧「最大送出セグメントに対応する最小シーケンス番号」]の条件を満たすか否かの判断を行う(ステップC408)。この段階では、その条件を満たすので、送信確認パケット終端開始部130−9−2が、送信確認処理の開始を送信確認送信部130−10に伝える(ステップC409)。その後、受信側からの送信確認パケットは、送信端末10には転送されない。この結果、受信側からの送信確認パケットはセッション中継器130で終端され、送信確認送信部130−10による送信確認パケットの送信が開始されることになる。
上述した第3の実施形態のセッション中継装置においても、第1の実施形態の場合と同様、送信端末10からの再送セグメントは、必ず中継装置40に向けて送信される。よって、通信不能に陥ることなく、送信端末10と受信端末20の間で安定した通信状態を維持することができる。
また、セッション開設直後は、受信側からの送信確認パケットをそのまま送信端末に転送するようになっているので、セッション中継装置において、送信端末からのパケットのオーバーフローによるデッドロックを回避することができる。
以上説明した第1乃至第3の実施形態の構成および動作は、本発明の一例であり、適宜変更することが可能である。例えば、第1の実施形態において、送信確認パケット転送・終端判定部が、第2および第3の実施形態における送信確認パケット転送・終端判定部による送信確認パケットの転送・終端の判定と同様な判定を行うようにしてもよい。反対に、第2および第3の実施形態において、送信確認パケット転送・終端判定部が、第1の実施形態における送信確認パケット転送・終端判定部による送信確認パケットの転送・終端の判定と同様な判定を行うようにしてもよい。
また、第2および第3の実施形態において、セッション中継器にて、セグメントサイズがSMSSより大きいかのチェックを行って、セグメントサイズがSMSSより大きい場合に、そのセグメントは破棄するようにしてもよい。図30に、セグメントを破棄する場合の手順を示し、図31に、セグメントを破棄せずに送信端末に送信する場合の手順を示す。
セグメントを破棄する場合の処理は、図30に示すように、送信端末10が受信端末20に向けてパケットサイズが1500バイトのデータを送ると、そのデータはセッション中継装置130を介して中継装置40に到達する。中継装置40は、受信したセグメントのサイズがMTU(=500)より大きいため、エラー報告プロトコルのフラグメント要求メッセージ(次のホップの最大転送単位は500という情報を含む)を送信端末10に向けて送出する。このエラー報告プロトコルのフラグメント要求メッセージは、セッション中継装置130にて受信される。セッション中継装置130では、このフラグメント要求メッセージの受信後に、送信端末10から受信端末20に向けて送出されたパケットサイズが1500バイトのデータを受信した場合は、その受信データを破棄する。これにより、中継装置40からエラー報告プロトコルのフラグメント要求メッセージが送信端末10に向けて送信される回数は1回で済むことになる。
一方、セグメントを破棄せずに送信端末に送信する場合は、図31に示すように、セッション中継装置130は、フラグメント要求メッセージの受信後に、送信端末10から受信端末20に向けて送出されたパケットサイズが1500バイトのデータを受信した場合は、その受信データを受信端末20側のネットワークに送出するため、エラー報告プロトコルのフラグメント要求メッセージが中継装置40から送信端末10に向けて何回も送信されることになる。このようにフラグメント要求メッセージが無駄に送信されてしまう。
また、第1から第3の実施形態では、受信端末側からのエラー報告プロトコルを終端することとしたが、ネットワーク層以下の中継となるパケットのうち、受信端末側からのエラー報告プロトコルのフラグメント要求メッセージを抜き出す処理を行っても問題ない。
また、第1から第3の実施形態では、片方向の通信例で説明したが、双方向の通信であっても問題ない。
また、第1から第3の実施形態では、送信端末、受信端末、中継装置およびセッション中継端末装置がそれぞれ1つとされたネットワーク構成について説明したが、送信端末、受信端末、中継装置およびセッション中継端末装置の数は特にこれに制限されるものではない。
以上、セッション中継器を例に発明の特徴を説明したが、本発明は、その特徴を有するのであれば、他の通信システムに適用することも可能である。例えば、セッションをTCPとし、エラー報告プロトコルをエラー報告するICMPおよびフラグメント要求メッセージをICMP Destination Unreachable Messageのフラグメント化要求、送信確認パケットをTCPのACKパケット、送信シーケンス番号をTCPのシーケンス番号、ヘッダサイズをIP・TCPのヘッダサイズの総和、セグメント分割禁止フラグをIPのDon’t Fragmentフラグと置き換えることで、本発明をTCP/IP上で実施することが可能である。
本発明は、TCP中継器といった用途に適用できる他、プロキシ,暗号化装置といったセッション中継器の用途にも適用可能である。

Claims (14)

  1. 送信するセグメントの順番を示すシーケンス番号が付与されたパケットによりデータが送受信される端末間に配置され、送信側の端末との間に開設される第1のセッションと、受信側の端末との間に開設される第2のセッションとの間で、前記パケットにより送信されたデータの中継を行うセッション中継装置であって、
    前記第1および第2のセッションの状態を保持するセッション状態保持部と、
    前記第1のセッションを通じて前記パケットを受信すると、前記セッション状態保持部に保持されたセッション状態情報を参照して、該受信したパケットのセグメントが、前記第1のセッションを通じてすでに受信してあるパケットのセグメントとシーケンス番号が同じで、セグメントサイズが異なる再送セグメントであるか否かを判断するセグメント再送判定部と、
    前記セグメント再送判定部で前記受信したパケットのセグメントが再送セグメントであると判断された場合に、該再送セグメントを前記第2のセッションを通じて送信するセグメント再送部とを有するセッション中継装置。
  2. 前記セグメント再送判定部で前記受信したパケットのセグメントが再送セグメントであると判断された場合に、該再送セグメントのセグメントサイズで前記第2のセッションの最大セグメントサイズを更新するセッション最大セグメントサイズ更新部をさらに有する、請求の範囲1に記載のセッション中継装置。
  3. 前記受信側の端末に向けて中継した前記パケットのデータのセグメントを分割する旨のフラグメント要求メッセージを前記第2のセッションを通じて受信すると、該受信したフラグメント要求メッセージを前記第1のセッションを通じて前記送信側の端末に向けて送信するとともに、該受信したフラグメント要求メッセージ内に含まれる次ホップの最大転送単位を読み取るフラグメント要求メッセージ転送部と、
    前記フラグメント要求メッセージ転送部で読み取った次ホップの最大転送単位が格納される最大転送単位記憶部と、
    前記最大転送単位記憶部に格納された最大転送単位が、該最大転送単位より小さい最大転送単位に更新されると、該更新された最大転送単位に基づいて前記第2のセッションの最大セグメントサイズを更新する最大転送単位チェック部とをさらに有する、請求の範囲1に記載のセッション中継装置。
  4. 前記受信側の端末に向けて中継した前記パケットのデータのセグメントを分割する旨のフラグメント要求メッセージを前記第2のセッションを通じて受信すると、該受信したフラグメント要求メッセージを前記第1のセッションを通じて前記送信側の端末に向けて送信するとともに、該受信したフラグメント要求メッセージ内に含まれる次ホップの最大転送単位を読み取り、該読み取った次ホップの最大転送単位に基づいて前記第2のセッションの最大セグメントサイズを更新するフラグメント要求メッセージ転送部をさらに有する、請求の範囲1に記載のセッション中継装置。
  5. 前記受信側の端末に向けて中継した前記第1のセッションの開始パケットに対する応答である送信確認パケットを前記第2のセッションを通じて受信する送信確認受信部と、
    前記送信確認受信部で受信した送信確認パケットに対して、該送信確認パケットを転送するか、該送信確認パケットを終端するかの判断を行う送信確認パケット転送・終端判定部と、
    前記送信確認パケット転送・終端判定部で前記送信確認パケットを終端する旨の判断がなされた場合に、前記開始パケットに対する新たな送信確認パケットを生成して前記送信側の端末へ送る送信確認送信部とをさらに有し、
    前記セッション状態保持部は、前記開始パケットの送信シーケンス番号と、前記受信側の端末から受信した送信確認パケットの送信確認シーケンス番号とを前記セッション状態情報として保持し、
    前記送信確認パケット転送・終端判定部は、前記送信シーケンス番号と前記送信確認シーケンス番号の差分で与えられる送信確認済みの最大セグメントサイズが、前記第2のセッションの最大セグメントサイズの倍数で与えられる設定値より小さい場合は、前記送信確認パケットを前記第1のセッションを通じて前記送信側の端末に向けて転送し、前記シーケンス番号の差分が前記設定値に達した場合は、前記送信確認パケットを終端する、請求の範囲1から4のいずれかに記載のセッション中継装置。
  6. 前記受信側の端末に向けて中継した前記第1のセッションの開始パケットに対する応答である送信確認パケットを前記第2のセッションを通じて受信する送信確認受信部と、
    前記送信確認受信部で受信した送信確認パケットに対して、該送信確認パケットを転送するか、該送信確認パケットを終端するかの判断を行う送信確認パケット転送・終端判定部と、
    前記送信確認パケット転送・終端判定部で前記送信確認パケットを終端する旨の判断がなされた場合に、前記開始パケットに対する新たな送信確認パケットを生成して前記送信側の端末へ送る送信確認送信部と、
    前記受信側の端末に向けて中継したパケットの送出セグメントサイズが前記第2のセッションの最大セグメントサイズに達したときのシーケンス番号を算出する最小シーケンス番号算出部とをさらに有し、
    前記セッション状態保持部は、前記開始パケットの送信シーケンス番号と、前記受信側の端末から受信した送信確認パケットの送信確認シーケンス番号を前記セッション状態情報として保持し、
    前記送信確認パケット転送・終端判定部は、前記送信シーケンス番号と前記送信確認シーケンス番号の差分で与えられる送信確認済みの最大セグメントサイズが、前記最小シーケンス番号算出部で算出したシーケンス番号より小さい場合は、前記送信確認パケットを前記第1のセッションを通じて前記送信側の端末に向けて転送し、前記送信確認済みの最大セグメントサイズが前記算出したシーケンス番号に達した場合は、前記送信確認パケットを終端する、請求の範囲1から4のいずれかに記載のセッション中継装置。
  7. 前記第1および第2のセッションがTCPである、請求の範囲1から6のいずれかに記載のセッション中継装置。
  8. 前記フラグメント要求メッセージが、エラーを通知するICMPのメッセージである、請求の範囲3または4に記載のセッション中継装置。
  9. 前記送信確認パケットがTCPのACKパケットである、請求の範囲5または6に記載のセッション中継装置。
  10. 送信するセグメントの順番を示すシーケンス番号が付与されたパケットによりデータが送受信される端末間に配置され、送信側の端末との間に開設される第1のセッションと、受信側の端末との間に開設される第2のセッションとの間で、前記パケットにより送信されたデータの中継を行うセッション中継装置において行われるセッション中継方法であって、
    前記第1および第2のセッションの情報をセッション状態保持部に保持する第1のステップと、
    前記第1のセッションを通じて前記パケットを受信すると、前記セッション状態保持部に保持されたセッション状態情報を参照して、該受信したパケットのセグメントが、前記第1のセッションを通じてすでに受信してあるパケットのセグメントとシーケンス番号が同じで、セグメントサイズが異なる再送セグメントであるか否かを判断する第2のステップと、
    前記第2のステップで前記受信したパケットのセグメントが再送セグメントであると判断された場合に、該再送セグメントを前記第2のセッションを通じて送信する第3のステップとを含むセッション中継方法。
  11. 前記第3のステップは、前記第2のステップで前記受信したパケットのセグメントが再送セグメントであると判断された場合に、該再送セグメントのセグメントサイズで前記第2のセッションの最大セグメントサイズを更新するステップを含む、請求の範囲10に記載のセッション中継方法。
  12. 前記第3のステップは、前記受信側の端末に向けて中継した前記パケットのデータのセグメントを分割する旨のフラグメント要求メッセージを前記第2のセッションを通じて受信すると、該受信したフラグメント要求メッセージ内に含まれる次ホップの最大転送単位を読み取り、該読み取った最大転送単位に基づいて前記第2のセッションの最大セグメントサイズを更新するステップを含む、請求の範囲10に記載のセッション中継方法。
  13. 前記受信側の端末に向けて中継した前記第1のセッションの開始パケットに対する応答である送信確認パケットを前記第2のセッションを通じて受信する第4のステップと、
    前記セッション状態保持部に保持されたセッション状態情報から、前記開始パケットの送信シーケンス番号と、前記受信側の端末から受信した送信確認パケットの送信確認シーケンス番号とを取得し、該取得したシーケンス番号の差分を求める第5のステップと、
    前記第5のステップで求めたシーケンス番号の差分で与えられる送信確認済みの最大セグメントサイズが、前記第2のセッションの最大セグメントサイズの倍数で与えられる設定値より小さい場合は、前記第4のステップで受信した送信確認パケットを前記送信側の端末に向けて転送し、前記送信確認済みの最大セグメントサイズが前記設定値以上である場合は、前記第4のステップで受信した送信確認パケットを終端し、前記開始パケットに対する新たな送信確認パケットを生成して前記送信側の端末へ送る第6のステップとをさらに含む、請求の範囲10から12のいずれかに記載のセッション中継方法。
  14. 前記受信側の端末に向けて中継した前記第1のセッションの開始パケットに対する応答である送信確認パケットを前記第2のセッションを通じて受信する第4のステップと、
    前記セッション状態保持部に保持されたセッション状態情報から、前記開始パケットの送信シーケンス番号と、前記受信側の端末から受信した送信確認パケットの送信確認シーケンス番号とを取得し、該取得したシーケンス番号の差分を求める第5のステップと、
    前記受信側の端末に向けて中継したパケットの送出セグメントサイズが前記第2のセッションの最大セグメントサイズに達したときのシーケンス番号を算出する第6のステップと、
    前記第5のステップで求めたシーケンス番号の差分で与えられる送信確認済みの最大セグメントサイズが、前記第6のステップで算出したシーケンス番号より小さい場合は、前記第4のステップで受信した送信確認パケットを前記送信側の端末に向けて転送し、前記送信確認済みの最大セグメントサイズが前記算出したシーケンス番号以上である場合は、前記第4のステップで受信した送信確認パケットを終端し、前記開始パケットに対する新たな送信確認パケットを生成して前記送信側の端末へ送る第7のステップとをさらに含む、請求の範囲10から12のいずれかに記載のセッション中継方法。
JP2007542814A 2005-11-07 2006-11-02 セッション中継装置およびセッション中継方法 Pending JPWO2007052764A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005322552 2005-11-07
JP2005322552 2005-11-07
PCT/JP2006/322007 WO2007052764A1 (ja) 2005-11-07 2006-11-02 セッション中継装置およびセッション中継方法

Publications (1)

Publication Number Publication Date
JPWO2007052764A1 true JPWO2007052764A1 (ja) 2009-04-30

Family

ID=38005916

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007542814A Pending JPWO2007052764A1 (ja) 2005-11-07 2006-11-02 セッション中継装置およびセッション中継方法

Country Status (4)

Country Link
US (1) US8085669B2 (ja)
JP (1) JPWO2007052764A1 (ja)
CN (1) CN101305583A (ja)
WO (1) WO2007052764A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8009696B2 (en) * 2004-08-06 2011-08-30 Ipeak Networks Incorporated System and method for achieving accelerated throughput
US9189307B2 (en) 2004-08-06 2015-11-17 LiveQoS Inc. Method of improving the performance of an access network for coupling user devices to an application server
US7953114B2 (en) * 2004-08-06 2011-05-31 Ipeak Networks Incorporated System and method for achieving accelerated throughput
US9647952B2 (en) 2004-08-06 2017-05-09 LiveQoS Inc. Network quality as a service
GB2452991B (en) * 2007-09-24 2012-12-26 Plextek Ltd Data ackmowledgement apparatus and method1
JP5241247B2 (ja) * 2008-01-17 2013-07-17 キヤノン株式会社 中継装置および情報通知方法、プログラム
US8886793B2 (en) * 2010-12-28 2014-11-11 Sonus Networks, Inc. Methods and systems for adjusting a traffic rate for a MSRP session
US10951743B2 (en) 2011-02-04 2021-03-16 Adaptiv Networks Inc. Methods for achieving target loss ratio
US8717900B2 (en) 2011-02-07 2014-05-06 LivQoS Inc. Mechanisms to improve the transmission control protocol performance in wireless networks
US9590913B2 (en) 2011-02-07 2017-03-07 LiveQoS Inc. System and method for reducing bandwidth usage of a network
US20120287814A1 (en) * 2011-05-12 2012-11-15 Fluke Corporation Method and apparatus to determine the amount of data outstanding throughout the life of a tcp flow (socket connection)
US8831008B1 (en) * 2013-04-19 2014-09-09 Cubic Corporation Reliable message delivery in mesh networks
US9240939B2 (en) * 2013-10-22 2016-01-19 Cisco Technology, Inc. Detecting packet loss and retransmission in a network environment
US10122642B2 (en) * 2016-09-29 2018-11-06 Intel IP Corporation Managing a data stream in a multicore system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6341129B1 (en) 1998-04-03 2002-01-22 Alteon Networks, Inc. TCP resegmentation
JP3602972B2 (ja) * 1998-07-28 2004-12-15 富士通株式会社 通信性能測定装置及びその測定方法
US6327626B1 (en) 1998-09-15 2001-12-04 Alteon Networks, Inc. Method and apparatus for MSS spoofing
JP3511969B2 (ja) 2000-03-07 2004-03-29 日本電気株式会社 Ipネットワークにおけるpmtu見積もり値検出の方法およびそのシステム
GB0018119D0 (en) * 2000-07-24 2000-09-13 Nokia Networks Oy Flow control
JP2002290459A (ja) 2001-03-27 2002-10-04 Nec Corp パケット転送装置および方法
JP2003018216A (ja) 2001-07-04 2003-01-17 Toyo Commun Equip Co Ltd Ipパケット送信手順
JP2003244194A (ja) 2002-02-18 2003-08-29 Mitsubishi Electric Corp データ暗号装置及び暗号通信処理方法及びデータ中継装置
KR100453056B1 (ko) * 2002-03-29 2004-10-15 삼성전자주식회사 동적 ip 네트워크 상에서의 pmtu 변경 방법 및 그장치
JP4043997B2 (ja) 2003-05-21 2008-02-06 三菱電機インフォメーションシステムズ株式会社 暗号装置及びプログラム
JP4251044B2 (ja) 2003-09-05 2009-04-08 日本電気株式会社 セッション中継装置、セッション中継方法
JP4561980B2 (ja) * 2004-11-08 2010-10-13 日本電気株式会社 セッション中継装置およびセッション中継方法
US8069250B2 (en) * 2005-04-28 2011-11-29 Vmware, Inc. One-way proxy system

Also Published As

Publication number Publication date
CN101305583A (zh) 2008-11-12
WO2007052764A1 (ja) 2007-05-10
US20090268742A1 (en) 2009-10-29
US8085669B2 (en) 2011-12-27

Similar Documents

Publication Publication Date Title
JPWO2007052764A1 (ja) セッション中継装置およびセッション中継方法
US10237153B2 (en) Packet retransmission method and apparatus
KR100785293B1 (ko) 다중 tcp확인응답을 이용한 tcp 혼잡 제어 시스템및 그 방법
CN102143078B (zh) 一种报文处理方法、转发设备及系统
US8462692B2 (en) System and method for reassembling packets in relay node
JP2007189697A (ja) 分散した局のネットワークでデータパケットを交換する方法、データパケットを圧縮する装置及びデータパケットを解凍する装置
US9369392B2 (en) SCTP bundling
JP2009147786A (ja) 通信装置、データフレームの送信制御方法及びプログラム
KR20140062499A (ko) 데이터 전송 방법, 오프로드 포인트 장치, 사용자 단말 및 시스템
JP2006262417A (ja) 通信速度制御方法及びその装置
WO2014079334A1 (zh) 邻居关系处理方法和路由设备
CN100454900C (zh) 快速响应ip分片报文的方法和系统
Thubert IPv6 over low-power Wireless Personal Area network (6LoWPAN) selective fragment recovery
JP4772053B2 (ja) 送信装置および送信レート制御方法
JP2005217626A (ja) 無線アクセスネットワークを介するパケットデータ交換ノード、端末及びそのプログラム
KR20150130628A (ko) 저전력 무선 네트워크에서 패킷 전송 방법
JPWO2004091148A1 (ja) 無線アクセスシステムにおける移動端末と無線アクセスポイント
JP4953965B2 (ja) 通信システム、通信装置およびパケット伝送方法
WO2018097073A1 (ja) 情報通知装置、情報通知方法およびプログラムが記録された記録媒体
JP2009010575A (ja) マルチキャスト通信のための中継装置、並びに端末装置
JP2006333407A (ja) 送信制御装置
JP2008187258A (ja) 通信方法および通信装置
JP2007116411A (ja) データ通信装置およびデータ通信方法
JP2006279867A (ja) Adsl通信装置、プログラム及び方法
JP2009060238A (ja) 送信方法、通信システムおよび通信装置