JP2007180686A - 中継通信装置、記憶媒体、集積回路および通信システム - Google Patents

中継通信装置、記憶媒体、集積回路および通信システム Download PDF

Info

Publication number
JP2007180686A
JP2007180686A JP2005374415A JP2005374415A JP2007180686A JP 2007180686 A JP2007180686 A JP 2007180686A JP 2005374415 A JP2005374415 A JP 2005374415A JP 2005374415 A JP2005374415 A JP 2005374415A JP 2007180686 A JP2007180686 A JP 2007180686A
Authority
JP
Japan
Prior art keywords
packet
communication
communication device
pmtu
size
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
JP2005374415A
Other languages
English (en)
Inventor
Keiichi Takagaki
景一 高垣
Yoshinori Okazaki
芳紀 岡崎
Atsuhiro Tsuji
敦宏 辻
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2005374415A priority Critical patent/JP2007180686A/ja
Publication of JP2007180686A publication Critical patent/JP2007180686A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】本発明は、ブラックホール問題により端末通信装置が通信不可能となることを防ぐ、中継通信装置、および通信システムを提供することを目的とする。
【解決手段】ブラックホールルータ708を含むインターネット703を経由して、送信元端末通信装置701と相手端末通信装置704が通信705を行う場合に、本発明の中継通信装置702が、通信705の通信データおよび応答確認を利用して、通信経路上の最大MTUを調査し、通信705のデータサイズを調査した最大MTU値以下にするような制御を行うことにより、通信705を正常に行わせることができる。本発明によれば、各端末通信装置や全ての中継通信装置で対応を行わなくても、単一の中継通信装置のみが対応することで、その中継通信装置を経由する通信を行う複数の端末通信装置がブラックホール問題に陥り通信不能となることを防ぐことができる。
【選択図】図10

Description

本発明は、Path MTU Discoveryに関する機能を持つ中継通信装置、記憶媒体、集積回路および通信システムに関する。
近年、インターネットを含めてTCP/IP(Transmission Control Protocol/Internet Protocol)を利用したネットワークが広く普及している。
このTCP/IPネットワークを模式的に示したのが図1である。図1にあるように、TCP/IPネットワークは単純化すると以下の代表的な3種類の構成要素からなるネットワークとみなすことができる。
端末通信装置(101):アプリケーションレベルでの通信を行う通信装置。Webブラウザを登載したPCや、IP電話、IPネットワークカメラなどがこれにあたる。
中継通信装置(102):一方の端末通信装置から送信されたデータを他方の端末通信装置に届けるための役割を持つ通信装置。IPルータ、もしくは単にルータなどと呼ぶ。また、広義にはIP層での中継のみならず、データリンク層での中継を行うブリッジ(HUBや無線アクセスポイントなど)などさまざまなレイヤでの中継を行う装置を含むものとする。
リンク(103):隣接する上記通信装置同士の間の通信路。例えばEthernet(登録商標)などが用いられる。
本発明はTCP/IPネットワークでの通信においてやりとりされるIPパケットのデータサイズに関する発明であるため、図1のネットワーク上で行われている一つのアプリケーションレベルでの通信(104a)を例にとり、その通信データを搬送するIPパケットのサイズに関して次に説明する。
各リンクを通過する際のIPパケットの最大サイズは、通過する各リンクで定義された最大データサイズ(MTU:Maximum Transfer Unit)を越えることはできない。このMTUの値はリンクの種類ごとに規定されており、例えばEthernet(登録商標)の場合は1500バイトとなっている。なお、物理的に規定されたリンク以外にも、論理的にリンクとみなせる経路がIPsecやPPPoEなどを含む任意のカプセル化プロトコルなどにより形成される場合があり、本発明においてはこれらの論理的なリンクもMTUを持つ一種のリンクとしてみなせるものとして考える。
ここで、端末通信装置101aから端末通信装置101bにパケットを送信する場合を考える。まず101aは101bへ向かうための経路であるリンク103aにIPパケットを送信する。このときのIPパケットのサイズはリンク103aのMTU(例えば1500)に収まるようにアプリケーションデータを分割して各IPパケットを構築し、リンク103aに送信する。
次にこのIPパケットを受信した中継通信装置102aは、リンク103bに転送しようとする。しかし、リンク103bのMTU値が1500より小さかった場合(例えば1000)であった場合、1500バイトのIPパケットをそのまま転送することはできない。このため、中継通信装置102aはこのパケットを1000バイト以下の複数のIPパケットにIPフラグメントした上で転送する。これを受信した中継通信装置102bはこれらのIPフラグメントされたIPパケットをリンク103cにそのまま(MTU値が1500とすると、さらにIPフラグメントを行う必要はないため)送信する。最後に、IPパケットの宛先である端末通信装置101bにおいてもとの1500バイトのIPパケットに復元され受信される。なお、以降では101aのようにパケットを送信する側の端末通信装置を送信元端末通信装置、101bのようにパケットを受信する側の端末通信装置を相手端末通信装置と呼ぶものとする。
上記の説明から分かるようにIPパケットがその通信経路上でIPフラグメントされるのは、通信経路上の各リンクのMTU値の最大値(以降、これをPath MTU値または、略してPMTU値と呼ぶ)を超えるサイズのIPパケットを送信元端末通信装置が送信した場合である。
しかし、上記の場合のように通信経路上でIPフラグメントが発生した場合、以下のような問題が発生する。
・中継通信装置におけるIPフラグメント処理、相手端末通信装置における復元処理など、各通信装置の処理負荷が増加する。
・IPフラグメントされることによりIPパケット数が必要以上に増加し、中継通信装置において転送する際の処理負荷が増加する。
・IPフラグメントの際に発生するMTU値より小さなサイズの各パケットにおいてもIPヘッダが必要となるため、IPフラグメントされない場合と比較して通信帯域の利用効率が低下する。
これらの問題の発生を避けるため、送信元端末通信装置が通信経路のPMTU値を知り、始めからそのサイズのIPパケットを送信することにより通信経路上でIPフラグメントを発生させないための方法が従来から考えられてきた。このような方法の実現する従来技術のひとつとしてRFC1191(タイトル:Path MTU Discovery)(非特許文献1)について次に説明する。なお、RFC1191はIPv4を対象としたものであるが、IPv6を対象としたRFC1981(非特許文献2)も存在する。
RFC1191ではIPヘッダのDF(Don‘t Fragment)フラグおよび、ICMP宛先到達不能要断片化パケット(図5:Typeフィールドの値が0x03、Codeフィールドの値が0x04であるICMPパケット)を用いて送信元端末通信装置がPMTU値を知るための方法が記述されている。以下では図4を参照しながらこの方法について説明する。
なお、実施シーケンスの説明の前に、前提知識としてIPパケットのフォーマットを図2を用いて、IPフラグメントされたIPパケットのフォーマットを図3を用いて簡単に説明しておく。図2のようにIPパケットはIPヘッダ201(最低20バイト)と、そのデータ部分からなり、このIPのデータ部分にはTCPやUDPなどのヘッダ202(TCPヘッダの場合は最低20バイト)とTCPやUDPのデータ203、即ちアプリケーションデータが含められる。このIPパケットがフラグメントされると図3のようになる。即ち、フラグメントされた各IPパケットにはそれぞれIPヘッダが含まれ、IPのデータ部分は複数に分割され順に各IPフラグメントされたIPパケット(b−1、b−2)に含められる。ここで、TCP/UDPヘッダ212は先頭のIPパケット(b−1)のみに含まれることに注意されたい。
さて、図4は図1における通信104aに関連する通信装置(101a、102a、102b、101b)およびリンク(103a、103b、103c)のみを抽出し、通信104aを用いてRFC1191による方法の実施シーケンス例を示したものである。
まず、送信元端末通信装置101aは自身が直接送出するリンク103aのMTU値である1500バイトのパケット301を送信する。このときパケット301では中継装置におけるIPフラグメントを許可しないことを意味するIPヘッダ内のDFフラグ(図2の2021)を設定した状態にしておく必要がある。次に中継通信装置102aはこれを受信し、102bに転送しようとする(S311)。しかし、リンク103bのMTU値は1000であるためそのまま送信することはできない。また、前述したIPフラグメント処理は、DFフラグが設定されているパケットに対しては行えないため、101aに対してICMP宛先到達不能要断片化パケット302を返信する。このICMP宛先到達不能要断片化パケットは、図5のようなフォーマットであり、そのMTU値フィールド(403)にリンク103bのMTU値である1000(即ち、IPフラグメントせずに送出先リンク103bに送出可能なサイズ)を入れて通知する機能を持つ。
次に送信元端末通信装置101aは、このICMP宛先到達不能要断片化パケット302を受信すると、以降のIPパケットの送信サイズをMTU値フィールド(403)により通知された1000バイトに変更する(S312)。以降、送信元端末通信装置101aが送信するIPパケット(302、304)のサイズは1000バイトとなる。このサイズのパケットは102aから103bにそのまま送信できるサイズであるため、相手端末通信装置である101bまで到達することができ、通信系路上でIPフラグメントを発生させることなく通信(104a)を行うことが可能となる。
なお、IPv6でのPath MTU Discovery方法がRFC1981に記載されているが、ここでは、ICMP宛先到達不能要断片化パケットが、同様の機能を持つICMPv6パケット過大パケットになることを除いてはRFC1191と同様の方法を用いている。
しかし、最近のインターネットでは、ここまでに説明したRFC1191の方法を適用することにより通信自体が行えなくなる場合が多く存在するという問題が、RFC2923(タイトル:TCP Problem with Path MTU Discovery)(非特許文献3)において指摘されている。ここで指摘されている問題はブラックホール問題と呼ばれる。以下では、ブラックホール問題の概要に関して説明する。
ブラックホール問題はICMPパケットを送信もしくは転送しないルータ(ブラックホールルータと呼ばれる)が存在することにより発生する。例えばRFC1891の説明で用いた図4における通信中継装置102aがブラックホールルータであった場合、中継通信装置102aはDFフラグのついた1500バイトのIPパケット301を転送しない上に、ICMP宛先到達不能要断片化パケット(302)を返信することもしない。即ち、何もせずに単にIPパケット301を破棄する。このため、送信元端末通信装置101aは変更すべきパケットサイズ(PMTU値に等しい)を知ることができず、以降も1500バイトのパケットを送信するため、このパケットが相手端末通信装置101bに到達することができず、通信104aを行うことができない。また、中継通信装置がICMP宛先到達不能要断片化パケットを送信したとしても、送信元端末通信装置までに到達する経路に別のルータが存在し、そのルータがICMPパケットを転送しなかった場合にも変更すべきパケットサイズを知ることができないため、同様の問題が発生する。
なお、ブラックホールルータが存在する理由は、ネットワーク管理者がICMPによるネットワーク情報(存在する端末通信装置のアドレス情報など)の流出を防ぐというセキュリティ上のものや、単なる設定忘れ、設定間違いなどがあると考えられる。
〔ブラックホール問題を回避する従来技術(PLPMTUD)の説明〕
上記ブラックホール問題を発生させるブラックホールルータが通信経路上に存在する場合でも、送信元端末通信装置が通信経路のPMTU値を知ることができ、IPフラグメントなしに相手端末通信装置との間で通信することを可能とする方法も考案されている。
そのような方法のひとつがIETFにI−D(Internet Draft)として提案されたことのあるPLPMTUD(Packetization Layer Path MTU Discovery)という方法である。この方法について記述した文書(非特許文献4)はインターネット上で公開されている。以下ではPLPMTUDの概要について説明する。
RFC1191の方法でブラックホール問題が発生した原因は、RFC1191の方法が通信経路上の中継通信装置(ブラックホールルータの可能性がある)との協調動作により送信元端末通信装置がPMTU値を知るという方法だったからである。これに対し、PLPMTUDでは中継通信装置に依存せず、送信元端末通信装置と相手端末通信装置のみが協調して動作することによりPMTU値を知ることができる方法を用いることでブラックホールルータが存在しても利用可能となっている。
具体的なPLPMTUDの手順(特にTCPの性質を利用した効率的な方法の概略手順)について図6、図7、図8、図9を用いて説明する。
図6はPLPMTUDにおけるPMTU探索処理のフローチャートの一例である。なお、PMTUの探索のための処理は、送信元端末通信装置において主に行われ、相手端末通信装置は単に通常のTCPのアルゴリズムに基づいてACK(応答確認)を行うだけでよいため、ここでは送信元端末通信装置の処理について主に説明する。
PLPMTUDでは、実際にアプリケーションが行うTCP通信の通信データを用いてPMTU探索を行うため、まずTCP通信開始処理(S501)を行う。具体的には、SYNパケットの送信、SYN ACKパケットの受信、ACKパケットの送信からなる3ウェイハンドシェイクを行う。次に、試行を行う際のパケット(以降PMTU調査パケットと呼ぶ)のサイズSp(以降PMTU調査パケットサイズと呼ぶ)の初期設定を行う(S502)。ここでは、通常インターネットにおいて通過可能とされている最小サイズである576バイトを設定するとする。以降、PMTU調査パケットサイズSpのPMTU調査パケットが相手端末通信装置に到着可能かを試行し、到達不可能になるまでSpをインクリメント(S504)しながら試行(S503)を繰り返す。試行後の到達可能判定処理(S505)において到達不可能となった時点でそのサイズ−1がPMTU値であると決定する(S504)。図6のPMTU探索処理完了以降は、送信側端末通信装置が、処理S506で決定したPMTU値を越えないサイズでパケットを送信することによって、正常に通信を行うことができる。
次に、PMTU調査パケットサイズSpのサイズのPMTU調査パケットが相手端末通信装置に到着可能かの試行(S503)における具体的な処理について図7のフローチャートおよび図8、図9のシーケンス図を用いて説明する。PLPMTUDでは、まずSpのサイズのTCPパケットをPMTU調査パケットとして生成して送信する(S511)。このPMTU調査パケットに含まれるTCPデータのシーケンス番号はN−SP+40〜N−1であるとする。なお、+40となっているのは、SpバイトのIPパケットに含まれるTCPデータのサイズは、SpからIPヘッダサイズ(例えば20バイト)およびTCPヘッダサイズ(例えば20バイト)を引いたSp−40となるためである。また、このとき送信したデータの最終シーケンス番号の値、即ちN−1を記憶しておく。次に、S511で送信したTCPデータと重複するTCPデータ(シーケンス番号がN−Sp+40以降のデータ)をサイズがSmのIPパケットに収まるようにSm−40のサイズの複数のTCPデータに分割し、それらを含むサイズがSmのIPパケットを連続的に送信する(S512)。ここで、Smは相手端末通信装置に到達可能であることが既に分かっているサイズであり、当然Spよりも小さな値となる(Spに関する詳細な条件として、TCPの高速再送機構(Fast Retransmission)を発動させないために3Sm>Spであること、PMTU調査パケットに含まれるTCPデータの最終シーケンス番号と、各Smサイズのパケットに含まれるTCPデータの最終シーケンス番号が一致しないような値であること、がさらに必要である。)。
図8、図9は、上記の処理(S511、S512)を含めて、相手端末通信装置との間のパケットのシーケンスを示す図である。図8はS511で送信したPMTU調査パケット611が相手端末通信装置へ到達可能な場合(即ち、PMTU値がSpの場合)の図である。この場合、相手端末通信装置はPMTU調査パケット611に続いて、IPパケット612を受信する。TCPのアルゴリズムによれば、このような場合611と612の少なくとも一方に対してACKを応答する(図8では612に対してACK614を応答する場合を示している)が、その際のACK番号はその時点までに受け取ったTCPデータの最終シーケンス番号+1となるため、611、612のいずれに対するACKであってもそのACK番号はNとなる。
一方図9はS511で送信したPMTU調査パケット611が相手端末通信装置へ到達不可能な場合(即ち、PMTU値がSp未満の場合)の図である。この場合、相手端末通信装置はIPパケット612に続いて、IPパケット613を受信する。TCPのアルゴリズムによれば、このような場合612と613の少なくとも一方に対してACKを応答する(図9では613に対してACK615を応答する場合を示している)が、その際のACK番号は612に対するACKの場合はN−Sp+40+Sm、613に対するACKの場合はN−Sp+40+2Smとなるため、612、613のいずれに対するACKであってもそのACK番号はNとは異なるものとなる。
以降、再び図7に戻って説明する。送信元端末通信装置は上記の説明において相手端末通信装置から返信されたACK(614もしくは615)を受信する(S513)。そして、そのACK番号がNに等しいかどうかを判定する(S514)。ACK番号がNであった場合は、PMTU調査パケットサイズSpのパケットが宛先通信端末に到達可能ことを示していることになるため、そのことを記憶しておき(S515)、S505の判定時に利用する。また、ACK番号がNでなかった場合は、到達不可能であることを示しているため、同様にそのことを記憶しておく(S516)。
このように、PLPMTUDは送信元端末通信装置において送信するIPパケットに含めるTCPデータの分割サイズを調整することによりPMTU値を調査する方法である。
また、送信元端末通信装置がPMTU値を知るための別の方法が特許文献1において開示されている。
特許文献1の方法は、ネットワーク中(少なくとも通信経路上)の各通信中継装置が、予め通信経路上の各リンクのMTU値情報を交換しておくことによりPMTU値を常時管理しておく方法である。この方法を用いれば、送信元端末通信装置は相手端末通信装置への経路のPMTU値を、隣接する中継通信装置から通知してもらうだけでよい。
特開平5−22345号公報 IETF RFC1191:Path MTU Discovery <http://www.ietf.org/rfc/rfc1191.txt>、検索日2005年9月13日 IETF RFC1981:Path MTU Discovery for IP version 6 <http://www.ietf.org/rfc/rfc1981.txt>、検索日2005年9月13日 IETF RFC2923:TCP Problem with Path MTU Discovery <http://www.ietf.org/rfc/rfc2923.txt>、検索日2005年9月13日 draft−ietf−PMTUd−method−04:Path MTU Discovery <http://www.watersprings.org/pub/id/draft―ietf―PMTUd―method―04.txt>、検索日2005年9月13日
前述のPLPMTUD(非特許文献4)のように端末通信装置においてPMTUを調査する方法を用いる場合、各送信元端末通信装置がこの方法を実装している必要がある。しかし既存の端末通信装置は、このような方法を実装していない、もしくは実装していても設定を行わなければ有効にならないものがほとんどである。このため、これらの既存の端末通信装置はブラックホール問題に陥る可能性があるという問題がある。また、今後もこの方法を実装しない端末通信装置が流通した場合、それらの端末通信装置に関してもやはり同様の問題が発生する。
また、特許文献1の方法では経路上の全ての中継通信装置がこの方法に対応している必要がある。しかし、インターネット上の全ての中継通信装置をこの方法に対応させるのは非現実的であるため、この方法の実施は困難である。
そこで、本発明は各端末通信装置や全ての中継通信装置で対応を行わなくても、単一の中継通信装置のみが対応することで、その中継通信装置を経由する通信を行う複数の端末通信装置がブラックホール問題に陥り通信不能となることを防ぐ方法を提供することを目的とする。
上記課題を解決するために、本願第1発明は、第1の通信装置と第2の通信装置が行っている第1の通信を中継する中継通信装置であって、PMTU調査パケットのサイズを決定するPMTU調査サイズ決定手段と、前記第1の通信装置が送信した前記第1の通信に属する第1のデータパケットを受信し、前記第2の通信装置に向けて転送する際に、第1のサイズ調整方法を用いて前記第1のデータパケットを前記PMTU調査パケットサイズ決定手段が決定したサイズに調整し、前記PMTU調査パケットとして送信するPMTU調査パケット生成手段と、前記第2の通信装置が送信した前記第1の通信に属する応答確認パケットを受信し、前記第1の通信装置に向けて転送する際に、応答確認されたデータを示す情報を前記応答確認パケットから取得し、取得した情報に基づいて前記PMTU調査パケットが前記第2の通信装置に到達したかどうかを判定するPMTU調査パケット到達判定手段と、前記PMTU調査パケット到達判定手段の判定結果に基づいて、前記中継通信装置と前記第2の通信装置間における前記第1の通信もしくは前記第1の通信以降に前記中継通信装置を経由して行われる第2の通信に属する第2のデータパケットのサイズを変更する中継通信データサイズ変更手段と、を備えることを特徴とする中継通信装置を提供する。
これにより、実際にアプリケーションの通信を行う端末通信装置において特別な機能を追加することなく、単一の中継通信装置が本発明の機能を持つだけで、ブラックホール問題に陥ることなく、この中継通信装置を経由する複数の端末通信装置が行うアプリケーションの通信を成功させることができる。また、またこの方法によれば、経路上の中継通信装置全てが連携して動作する必要もない。
本願第2発明は、第1発明において、前記第1の通信がTCPを用いた通信であることを特徴とする、請求項1に記載の中継通信装置を提供する。
これにより、広く一般に利用されているTCP通信を用いるアプリケーションの通信が、ブラックホール問題に陥ることなく正常に通信を行うことができる。
本願第3発明は、第1発明において、前記第1の通信がDCCPを用いた通信であることを特徴とする、請求項1に記載の中継通信装置を提供する。
これにより、広く一般に利用されているUDP通信の代替プロトコルとして利用される可能性のあるDCCP通信を用いるアプリケーションの通信が、ブラックホール問題に陥ることなく正常に通信を行うことができる。
本願第4発明は、第1発明において、前記PMTU調査パケット到達判定手段は、前記PMTU調査パケットが前記第2の通信装置に到達したかどうかの判定を、前記PMTU調査パケットを送信後の第1のタイミングで行い、前記第1のタイミングは、前記中継通信装置と前記第2の通信装置との間のRTTの推定値から決定されることを特徴とする、請求項1に記載の中継通信装置を提供する。
これにより、相手端末通信装置にPMTU調査パケットが到達しなかった場合に、そのことを判定する処理の完了までの時間を短くしつつ、判定精度を高めることができる。
本願第5発明は、第4発明において、前記第1の通信装置が、前記第1のデータパケットに対する応答確認が得られなかった場合に、前記第1のデータパケットに対する再送パケットを送信する第2のタイミングを、前記第1の通信装置と前記第2の通信装置との間のRTTの推定値から決定する通信装置であった場合に、前記第1のタイミングは、前記中継通信装置が前記再送パケットを受信したタイミングに基づいて決定されることを特徴とする、請求項4に記載の中継通信装置を提供する。
これにより、中継通信装置においてRTT計測に基づくタイムアウト値計算処理、タイムアウト制御処理などを行う必要がなく、実装を容易にすることができる。
本願第6発明は、第4発明において、前記第1のタイミングは、前記中継通信装置が計測した前記中継通信装置と前記第2の通信装置との間のRTTに基づいて推定されることを特徴とする、請求項4に記載の中継通信装置を提供する。
これにより、相手端末通信装置にPMTU調査パケットが到達しなかった場合に、そのことを判定する処理の完了までの時間を短くしつつ、判定精度を高めることができる。
本願第7発明は、第1発明において、前記第1の通信がIP(Internet Protocol)を用いた通信であった場合に、前記第1のサイズ調整方法は、前記第1のデータパケットをIPフラグメントする処理を含むことを特徴とする、請求項1に記載の中継通信装置を提供する。
これにより、中継通信装置が通常有するIPフラグメント機能を流用することができ、実装が容易となる。
本願第8発明は、第7発明において、前記第1の通信がさらにTCPを用いた通信であった場合に、前記第1のサイズ調整方法は、前記第1のデータパケットと、前記第1のデータパケットに続くTCPデータを含む第3のデータパケットをさらに前記PMTU調査パケットサイズ決定手段が決定したサイズ以下のサイズにIPフラグメントする処理を含むことを特徴とする、請求項7に記載の中継通信装置を提供する。
これにより、TCPの遅延応答確認機能のために応答確認の送信が遅延することがなく、到達可能な場合の判定完了までの時間を短縮することができる。
本願第9発明は、第1発明において、前記第1の通信がTCPを用いた通信であった場合に、前記第1のサイズ調整方法は、前記第1のデータパケットからTCPデータの一部を抽出し、前記TCPデータの一部を含む、IPフラグメントされていない一つのIPパケットとして前記PMTU調査パケットを構成することを特徴とする、請求項1に記載の中継通信装置を提供する。
これにより、相手端末通信装置にPMTU調査パケットが到達しなかったことを、即座に返される確認応答パケットから判定することができ、判定完了までの時間を短縮することができる。
本願第10発明は、第1発明において、前記第1のサイズ調整方法は、前記第1のデータパケットのサイズを保ったまま前記PMTU調査パケットを構成することを特徴とする、請求項1に記載の中継通信装置を提供する。
これにより、中継通信装置においてパケットサイズ変更処理を行う必要がなく実装が容易となる。
本願第11発明は、第1発明において、前記第2の通信がTCPを用いた通信であった場合に、前記中継通信データサイズ変更手段は、前記第2の通信におけるSYNパケットに含まれるMSSオプションの値を変更することにより、前記第2の通信に属する第2のデータパケットのサイズを変更することを特徴とする、請求項1に記載の中継通信装置を提供する。
これにより、第1の端末通信装置からのデータパケットだけでなく、第2の端末通信装置からのデータパケットのサイズも変更することができる。
本願第12発明は、第1発明において、前記第2の通信がIPを用いた通信であった場合に、前記中継通信データサイズ変更手段は、前記第1の通信装置に対して、ICMP宛先到達不能要断片化パケットもしくは、ICMPv6パケット過大パケットを送信することを特徴する、請求項1に記載の中継通信装置を提供する。
これにより、任意のタイミング以降に第1の端末通信装置から送信されるデータパケットのサイズを変更することができる。
本願第13発明は、第1発明において、前記第2の通信がIPを用いた通信であった場合に、前記中継通信データサイズ変更手段は、前記第2の通信のデーパケットをIPフラグメントすることを特徴する、請求項1に記載の中継通信装置を提供する。
これにより、第1の端末通信装置からのデータパケットのサイズを、任意のタイミングで確実に変更することができる。
本願第14発明は、第1発明において、前記PMTU調査パケットサイズ決定手段は、前記PMTU調査パケットのサイズを変更して請求項1に記載の処理を複数回繰り返すことにより、前記中継通信装置から前記第2の通信装置へ到達可能なデータパケットのサイズの最大値を調査し、前記中継通信データサイズ変更手段は前記中継通信装置と前記第2の通信装置間における前記第1の通信もしくは第2の通信に属する第2のデータパケットのサイズを前記最大値のサイズに変更することを特徴する、請求項1に記載の中継通信装置を提供する。
これにより、データパケットのサイズを、変更後の通信が最も低遅延、高スループットで行うことのできる最適な値に変更することができる。
本願第15発明は、第1の通信装置と第2の通信装置が行っている第1の通信を中継する中継通信装置が実行するプログラムを記録した、コンピュータ読み取り可能な記録媒体であって、PMTU調査パケットのサイズを決定するPMTU調査サイズ決定手段及び、第1の通信装置が送信した第1の通信の第1のデータパケットを受信し前記第2の通信装置に向けて転送する際に、第1のサイズ調整方法を用いて前記第1のデータパケットを前記PMTU調査パケットサイズ決定手段が決定したサイズに調整しPMTU調査パケットとして送信するPMTU調査パケット生成手段及び、第2の通信装置が送信した第1の通信に属する応答確認パケットを受信し、前記第1の通信装置に向けて転送する際に、応答確認されたデータを示す情報を取得し、取得した情報に基づいて前記PMTU調査パケットが前記第2の通信装置に到達したかどうかを判定するPMTU調査パケット到達判定手段及び、前記PMTU調査パケット到達判定手段の判定結果に基づいて、前記中継通信装置と前記第2の通信装置間における前記第1の通信もしくは前記第1の通信以降に前記中継通信装置を経由して行われる第2の通信の第2のデータパケットのサイズを変更する中継通信データサイズ変更手段としてコンピュータを機能させるプログラムを記録したことを特徴とする、コンピュータ読み取り可能な記録媒体を提供する。本プログラムが記載された記録媒体を用いることで、本願第1発明と同様の作用効果を有する。
本願第16発明は、第1の通信装置と第2の通信装置が行っている第1の通信を中継する中継通信装置において用いられる集積回路であって、PMTU調査パケットのサイズを決定するPMTU調査サイズ決定手段と、第1の通信装置が送信した第1の通信の第1のデータパケットを受信し前記第2の通信装置に向けて転送する際に、第1のサイズ調整方法を用いて前記第1のデータパケットを前記PMTU調査パケットサイズ決定手段が決定したサイズに調整しPMTU調査パケットとして送信するPMTU調査パケット生成手段と、第2の通信装置が送信した第1の通信の応答確認パケットを受信し、前記第1の通信装置に向けて転送する際に、応答確認されたデータを示す情報を前記応答確認パケットから取得し、取得した情報に基づいて前記PMTU調査パケットが前記第2の通信装置に到達したかどうかを判定するPMTU調査パケット到達判定手段と、前記PMTU調査パケット到達判定手段の判定結果に基づいて、前記中継通信装置と前記第2の通信装置間における前記第1の通信もしくは前記第1の通信以降に前記中継通信装置を経由して行われる第2の通信の第2のデータパケットのサイズを変更する中継通信データサイズ変更手段と、を備えることを特徴とする集積回路を提供する。上記集積回路は、本願第1発明と同様の作用効果を有する。
本願第17発明は、第1の通信装置と第2の通信装置、および前記第1の通信装置と前記第2の通信を行っている第1の通信を中継する中継通信装置とが接続されている通信システムであって、前記第1の通信装置は第1のデータパケットを送信し、前記中継通信装置は、PMTU調査パケットのサイズを決定するPMTU調査パケットサイズ決定手段を有し、第1の通信装置が送信した第1の通信の第1のデータパケットを受信し前記第2の通信装置に向けて転送する際に、第1のサイズ調整方法を用いて前記第1のデータパケットを前記PMTU調査パケットサイズ決定手段が決定したサイズに調整しPMTU調査パケットとして送信し、前記第2の通信装置は、前記PMTU調査パケットを受信すると応答確認パケットを送信し、前記中継通信装置は、さらに第2の通信装置が送信した前記PMTU調査パケットに対する前記応答確認パケットを受信し、前記第1の通信装置に向けて転送する際に、応答確認されたデータを示す情報を前記応答確認パケットから取得し、取得した情報から前記PMTU調査パケットが前記第2の通信装置に到達したかどうかを判定し、前記判定結果に基づいて、前記中継通信装置と前記第2の通信装置間における前記第1の通信もしくは前記第1の通信以降に前記中継通信装置を経由して行われる第2の通信の第2のデータパケットのサイズを変更する中継通信データサイズ変更することを特徴とする通信システムを提供する。上記通信システムは、本願第1発明と同様の作用効果を有する。
本発明によれば、各端末通信装置や全ての中継通信装置に特別な機能を追加する必要がなく、単一の中継通信装置のみに本発明の機能を追加することで、その中継通信装置を経由して通信を行う複数の端末通信装置がブラックホール問題に陥り通信不能となることを防ぐことができる。
(実施の形態1)
実施の形態1では、PMTU調査パケットを生成するためにIPフラグメントを用い、また、PMTU調査パケットに対する相手通信端末からの応答確認があったかどうかの判断を、送信元端末通信装置からの再送TCPパケットを受信するタイミングで行う場合について説明する。
以下本発明の実施の形態1について、図面を参照しながら説明する。図10は、第1実施形態例に係るネットワーク構成図である。図10では、ホームネットワーク710に、送信元端末通信装置701(例えばPCなど)、および送信元端末通信装置701をインターネット703に接続するための本発明の中継通信装置702(例えばブロードバンドルータなど)を含んでいる。このネットワークにおいて、送信元端末通信装置701はインターネット上の相手端末通信装置704(例えばWebサーバなど)との間でTCP通信705(例えばWebアクセス)を行うときには、中継通信装置702およびインターネット703を経由することになる。
ここで、インターネット703内におけるTCP通信705の通信経路上には、各端末通信装置(701、704)に隣接するリンク(706、707)のどちらのMTU値よりも小さなMTU値を持つリンク709が存在し、かつブラックホールルータ708が存在しているものとする。なお、リンク709はTCP通信705の経路上で最小のMTU値を持つリンクであるとする。例えば、リンク706、707のMTU値を1500、リンク709のMTU値を1300とすると、TCP通信705の経路におけるPMTU値は1300バイトとなる。
もしこのような状況において、仮に中継通信装置702が本発明の機能を有していない単なる中継通信装置であったとすると、TCPのMSS(Maximum Segment Size)決定機能(詳細は後述)により送信元端末通信装置701が送信するパケットのサイズは、各端末通信装置(701、704)が隣接するリンク(706、707)のMTU値の小さいほう(例えばどちらも1500バイトであれば1500バイト)となる。このため、送信元端末通信装置701が送信したパケットは中継通信装置708において破棄されるため、通信相手端末通信装置704に到達できずTCP通信705を行うことができない。
中継通信装置702が本発明の中継通信装置の場合は、以下のようにTCP通信705が行えるようになる。
まずここでは、本発明の中継通信装置702の内部構成について説明する。図11は中継通信装置702の内部構成を示したブロック図である。図11に示すように中継通信装置702は、PMTU調査パケットサイズ決定部801、PMTU調査パケット生成部802、中継通信処理部803、PMTU調査パケット到達判定部804、中継通信データサイズ変更部805からなる。
次にこれら中継通信装置の各機能部がどのように動作するかを含めて、TCP通信705が開始してから正常に通信できるようになるまでのシーケンスを図12〜図19を用いて順に説明する。図12はシステム全体におけるシーケンスを示している。
図12に示すように本発明にかかわるシーケンスは大きく分けて以下の4つフェーズからなる。
(1)送信元端末通信装置701と相手端末通信装置704の間でのTCP通信開始フェーズ(3ウェイハンドシェーク)(S901)。
(2)中継通信装置702が、中継通信装置702と相手端末通信装置との間のPMTU値を調査するPMTU調査フェーズ(S902)。
(3)中継通信装置702が、TCP通信705のデータパケットサイズをPMTU調査フェーズ(S902)で決定された値に変更するフェーズ(S903)。
(4)中継通信データサイズ変更後に、通信705が正常に行われるフェーズ(S904)。
以下では、これらの各処理の詳細について説明する。
(1)TCP通信開始フェーズの説明
まず、(1)のTCP通信開始フェーズのシーケンスを表すのが図13である。なお、本シーケンスは一般のTCP通信が通信開始時に必ず行うシーケンスであり、本発明に特有のものではない。まず、送信元端末通信装置701が相手端末通信装置704に対してSYNパケット(1011)を送信する。このSYNパケットには、送信元端末通信装置701が隣接するリンク(706)のMTU値(1500バイト)から計算された値である1460バイトがMSSオプションとして含まれている。このMSSは、TCPのデータを一つのIPパケットに含める際の最大データサイズであり、MTU値から40バイト(IPヘッダおよびTCPヘッダのサイズの合計値)を引いた値とするのが一般的である。このため、ここでは1500のMTU値に対してMSSは1460となっている。次に、このSYNパケット(1011)を受信した相手端末通信装置704はSYN ACKパケット(1012)を送信元端末通信装置701に返信する。このパケットにもMSSオプションが含まれており、その値は先ほどと同様に相手端末通信装置704に隣接するリンク(707)のMTU値(1500バイト)から40バイトを引いた値(1460バイト)となる。最後にこのSYN ACKパケット(1012)に対してACKパケット(1013)を返信してTCP通信開始処理は終了する。なお、各端末通信装置(701、704)においては、自身が送信したSYN(もしくはSYN ACK)パケットに含まれるMSS値と、相手から受信したSYN(もしくはSYN ACK)パケットに含まれるMSS値の小さい方の値を以降のデータ送信時のパケットサイズをけっている際に用いるMSS値とするため、この場合はどちらもMSS値を1460に設定する(S1001、S1002)。
(2)PMTU調査フェーズの説明
次に(2)のPMTU調査フェーズにおける中継通信装置702の処理のフローチャートを表すのが図14である。まず、PMTU調査パケットサイズ決定部(図11の801)はPMTU調査パケットのサイズであるSpの初期値を576バイト(通常インターネットにおいて通過可能と言われている最小サイズ)に設定する。なお、この初期値の値はこの値に限る必要はなく、IPパケットの最小値として規定されている64バイトでもよいし、既に通信経路を通過可能と分かっているサイズであればこれより大きいサイズでもよい(S1101)。次に、PMTU調査パケット生成部、PMTU調査パケット到達判定部が連携して、サイズがSpのPMTU調査パケットが宛先に到達可能かの判定処理を行う(S1102)。S1102の処理の詳細については以降で説明する。次にS1102での判定結果が「到達可能」であった場合は(S1104)、さらに大きなサイズのパケットが到達可能かを判定するために、PMTU調査パケットサイズ決定部がSpの値をインクリメントし(S1103)、再度S1102を行い、S1104での判定結果が到達可能でなくなるまで、これらの処理を繰り返し行う。S1104において到達可能でなくなった場合はSp−1が到達可能な最大サイズ(即ちPMTU値)であるためPMTU値としてSp−1を採用する(S1105)。なお、ここでは、簡単のため上記のように小さい値から大きい値へ変化させる探索方法を説明したが、本発明ではこの方法に限る必要はなく、大きいほうから小さい方へ変化させる方法、大きくしたり小さくしたりしながら2分探索方などのアルゴリズムを用いて探索する方法など何を用いてもかまわない。また、到達可能な最大値を完全に求め切る必要はなく、適当な基準を満たす到達可能なサイズが見付かれば、その時点でその値を以降の中継パケットサイズ変更時に利用する値として採用してもよい。
次に、S1102の処理(サイズがSpのPMTU調査パケットが宛先に到達可能かの判定処理)の詳細について説明する。以降、到達可能な場合[A]、到達不可能な場合[B]について順に説明する。
[A:到達可能な場合]
S1102の処理においてPMTU調査パケットが相手に到達した場合のシーケンスを図示したのが図15である。まず、送信元端末通信装置701は1500バイトのパケット1201(IPヘッダ20バイト、TCPヘッダ20バイト、TCPデータ1460バイト)を送信する。このパケットを受信した中継通信装置702において、PMTU調査パケット到達判定部は、まずIPパケット1201に含まれていたTCPデータの最終シーケンス番号(N−1とする)を記憶しておく(S1221)。
次に、中継通信装置702のPMTU調査パケット生成部はこのパケット1201をIPフラグメント処理し転送する(S1222)。このときのSpの値がPMTU値(1300バイト)より小さい600であったとすると、このパケットは3つのIPパケット(600バイトのPMTU調査パケット1202、およびその他のIPフラグメントパケット1203、1204)に分割される)(S1221)。なお、パケット1201にDFフラグが設定されている場合(もしくはIPv6パケットの場合)は中継通信装置においてIPフラグメントを行ってはいけないことになっているが、ここでは調査のために強制的にIPフラグメントを行うものとする。また、調査を行うためには中継通信装置702から相手端末通信装置704までの経路上でIPフラグメントされないように、PMTU調査パケット1202にDFフラグを設定しておく必要がある。一方、パケット1201にDFフラグが設定されていなかった場合は、IPフラグメントによる性能劣化が起きてもよいフローであると判断し、PMTU調査自体を行わずそのまま転送してもよいし、またPMTU調査を行うためにIPフラグメントした上でDFフラグを設定して転送してもよい。
相手端末通信装置704はこれらの3つの分割されたパケットを受信すると、まず元の1500バイトのIPパケット1201を再構築する。その後、TCP処理においてシーケンス番号がN−1までのデータ受信を行い、ACK番号がNであるACKパケット1205を返信する。このACKパケット1205を受信すると、中継通信装置702のPMTU調査パケット到達判定部はそのACK番号(N)と、S1222で記憶したシーケンス番号(N−1)を比較し、ACK番号の方が1大きいことを確認することにより、PMTU調査パケット1202が相手端末通信装置704に到達したと判定することができる(S1223)。
なお、ここではPMTU調査パケットに対するACKパケット1205が即座に返される場合について述べたが、TCPのACK返信機構においては、単独のデータ受信ではすぐにACKが返信されない(一定時間後に返信される)場合がある。この場合でも相手端末通信装置704は複数のデータを連続して受信すると、少なくとも一方には即座にACKを返信する。この機構を考慮し、中継通信装置702が送信元端末通信装置701からパケット1201に続くパケット(シーケンス番号がN〜M―1のTCPデータを含む)を受信した場合、このパケットをSpもしくはそれ以下のサイズにIPフラグメントして、PMTU調査パケットに続き連即して転送することにより(この際M−1も記憶しておく)、PMTU調査パケットが相手端末通信装置704に到達した場合は、そのことをNもしくはMのACK番号を持つACKパケット受信により、即座に確認することができる。
[B:到達不可能な場合]
S1102の処理においてPMTU調査パケットが相手に到達しない場合のシーケンスを図示したのが図16である。まず、送信元端末通信装置701は1500バイトのパケット1211を到達可能な場合と同様送信する。このパケットを受信した中継通信装置702において、PMTU調査パケット到達判定部は、まずIPパケット1211に含まれていたTCPデータの最終シーケンス番号(N’−1とする)を記憶しておく(S1221)。
次に、中継通信装置702のPMTU調査パケット生成部はこのパケット1211をIPフラグメント処理し転送する。このときのSpの値がPMTU値(1300バイト)より小さい1400であったとすると、このパケットは2つのIPパケット(1400バイトのPMTU調査パケット1212、およびその他のIPフラグメントパケット1213に分割される)(S1222)。なお、DFフラグに関する説明は前述の到達可能な場合と同様のことがいえるためここでは省略する。
ここで、PMTU調査パケット1212を受け取ったブラックホールルータ708は、そのパケットサイズが隣接するリンク709のMTU値(1300)を越えており、またDFフラグが設定されていることから、PMTU調査パケット1212を破棄する。また、ブラックホールルータであるためICMP宛先到達不能要断片化パケットを送信することもない。一方、その他のIPフラグメントパケット1213はサイズが1300以下であるためそのまま転送される。
したがって、相手端末通信装置704はPMTU調査パケットを受けとることができないため、その他のIPフラグメントパケット1213を受け取ったとしても元のIPパケット1211を再構築することができない。このため、TCP処理を行うことができずACK番号がNのACKを返信することはない。
その後、送信元端末通信装置701は送信したパケット1211に対するACKを受信できないため、タイムアウトを発生させIPパケット1211に対する再送パケット1214を送信する(S1223)。中継通信装置702のPMTU調査パケット到達判定部はこの再送パケット1214を受信すると、そこに含まれるTCPデータの最終シーケンス番号がS1221で記憶したシーケンス番号(既にPMTU調査パケットとして送信したパケット1213のIPフラグメント前のパケット1211に含まれるTCPデータの最終シーケンス番号(N−1))と同じかどうかをチェックする。これらが同じ値(N−1)であった場合、再送が発生した、即ちPMTU調査パケットが相手端末通信装置に到達しなかったと判定する。
ここで、PMTU調査パケットが到達しなかったことを判定するためのトリガ(上記では再送パケットの受信を利用)について説明する。まず、このトリガが発行されるまでの時間は少なくとも中継通信装置702がPMTU調査パケットを送信してからそれに対するACKパケットを受信するまでの時間よりも長く設定する必要がある。この時間は一般に中継通信装置702と相手端末通信装置704との間のRTT(Round Trip Time)値と呼ばれる。RTT値は、経路上にある中継通信装置の数、処理速度、輻輳状態に応じた待ち時間、各リンクの帯域(通信速度)、パケットサイズなど様々な要素により変化するため、トリガが発生するまでの時間を決定するにはRTT値を動的に計測する必要がある。一つの方法として、中継通信装置702自身が動的にRTT値を計測しておき、PMTU調査パケットを送信してから、さきほど計測したRTT値に基づいて計算されたタイムアウト時間以内にACKパケットを受信しなかった場合は、到達不可能と判定する方法がある。なお、ここで用いるRTT計測およびタイムアウト値を決定するアルゴリズムはTCPの再送タイムアウト処理と同様のアルゴリズムを用いることができる。
しかし、中継通信装置702は通常TCP処理を行う機能は持たないため、この方法ではPMTU調査を行うために新たに上記アルゴリズムの実装を行わなければならず、実装が複雑になるという問題がある。
最初に説明した、トリガとして再送パケット1223を利用する方法は、送信元端末通信装置701が行っているRTT値計測処理、タイムアウト値計算処理、タイムアウト処理などを間接的に利用することで、中継通信装置においてこれらの処理を行う必要がないため実装が容易になるという点で、より好ましいといえる。
(3)中継通信データサイズ変更フェーズ、および(4)中継通信データサイズ変更後の正常通信フェーズの説明
次に、(3)TCP通信705のデータパケットサイズをPMTU調査フェーズ(S902)で決定された値に変更するフェーズ(S903)、および(4)その後正常通信を行うフェーズ、について説明する。中継通信のデータサイズを変更する方法はいくつか考えられ、その方法によってその後の正常通信のシーケンスも異なるため、ここではそれぞれの方法に対して(3)、(4)をまとめて説明する。なお、(2)ではPMTU値が1300に決定されたものとして説明する。
[A:SYNパケットのMSSオプションを変更する方法]
この方法は、TCPの3ウェイハンドシェークのSYNパケットに含まれるMSSオプションの値を変更することにより、送信元端末通信装置701と相手端末通信装置704から送信されるパケットのサイズを小さくさせる方法である。
ただし、この方法はTCP通信が開始するタイミングでしか行えないため、PMTU調査に用いたTCP通信ではなく、以降の同経路を通るTCP通信(つまり相手端末通信装置が同じサブネットに含まれる)に対して有効である。PMTU調査に用いたTCP通信自身を正常に行わせるためには、後述する方法B、Cなどを用いるか、もしくはパケット転送時にDFフラグを外すことで以降の経由する中継通信装置(例えば708)などでIPフラグメント可能にさせるなどの方法を用いる必要がある。
さて、図17を用いて3ウェイハンドシェークを行う際にMSSオプションを変更するシーケンスについて説明する。まず、送信元端末通信装置701は新たにTCP通信を開始するためSYNパケット1301を送信する。(2)の処理によりPMTU値が1300であることが決定されている状態で、SYNパケット1301を受信した場合、中継通信装置702の中継通信データサイズ変更部(図11の805)はSYNパケット1301に含まれるMSSオプションの値を1260(PMTU値−40(IPヘッダサイズ20バイト+TCPヘッダサイズ20バイト))に書き換えて転送する(S1311)。相手端末通信装置704はMSSを書き換えられたSYNパケット1302を受信すると、SYN ACKパケット1303を返信する。ここで、相手端末通信装置704ではMSS値を送信したSYN ACKパケットと受信したSYNパケットに含まれるMSS値の小さい方を選択するため、以降のTCPデータ送信時に利用するMSS値は1260となる(S1313)。次にSYN ACKパケット1303を受信した中継通信装置702は、SYNパケットの場合と同様にMSSオプションの値を1260に変更し転送する(S1312)。MSSを変更されたSYN ACKパケット1304を受信した送信元端末通信装置701はACKパケット(1013)を返信し、やはり以降のTCPデータ送信時に利用するMSS値を1260にする(S1314)。これにより、TCPデータ通信時のIPパケットサイズは1300(1260+40)バイトとなり、IPフラグメントを発生させることなくTCP通信を行うことができる。
[B:ICMP宛先到達不能パケットを利用する方法]
この方法は、ICMP宛先到達不能要断片化パケット(IPv6の場合はICMPv6パケット過大パケット)を送信元端末通信装置701に対して送信し、送信元端末通信装置701から送信されるパケットのサイズを小さくさせる方法である。
図18はこの方法を用いた場合のシーケンスを示している。中継通信装置702において(2)の処理によりPMTU値が分かると、中継通信装置702の中継通信データサイズ変更部(図11の805)は、ICMP宛先到達不能要断片化パケット1321を生成し送信元端末通信装置701に送信する。なお、このパケット1321に含まれるMTU値フィールドの値(図5の403)はPMTU値である1300とする。送信元端末通信装置701はこのパケット1321を受信すると、指定されたMTU値−40(即ち、1260)をTCP通信に利用するMSS値として設定する(S1331)。ここで設定されたMSS値は、以降(直後も含む)に送信されるTCPデータのパケットサイズにも反映されるため、送信データパケット1321のサイズは1300となる。これにより、送信元端末通信装置701から送信されたTCP通信のパケットは相手端末通信装置704まで到達可能となる。また、一旦MSS値が1260に設定されると、以降送信元端末通信装置701が開始するSYNパケットに含まれるMSSオプションの値も1260となるため、これらの通信も正常に行えるようになる。
[C:IPフラグメントを利用する方法]
この方法は、送信元端末通信装置701から送信されるパケットのサイズは変更せずに、中継通信装置702においてIPフラグメントを行う方法である。
図19はこの方法を用いた場合のシーケンスを示している。中継通信装置702において(2)の処理よりPMTU値が分かると、中継通信装置702の中継通信データサイズ変更部(図11の805)は、送信元端末通信装置701から送信されてきた1500バイトのパケット1341を、PMTU値である1300バイトでIPフラグメントし、1300バイトのパケット1342と、残りのデータを含むパケット1343の2つを転送する。これにより、送信元端末通信装置701から送信されたTCP通信のパケットは相手端末通信装置704まで到達可能となる。
なお、ここまでの説明ではTCP(Transmission Control Protocol)を例として説明したが、データ受信に対して応答確認(ACK)を返信する機構を持つプロトコルであれば、UDPの代替プロトコルとして提案されているDCCP(Datagram Congestion Control Protocol)など他のプロトコルに対しても本発明を適用可能である。なお、DCCPに関するドキュメントは2005年9月22日現在では、<http://www.watersprings.org/pub/id/draft―ietf―dccp―spec―11.txt>から入手可能である。
(実施の形態2)
実施の形態1では、PMTU調査パケットを生成するためにIPフラグメントを用いていたが、実施の形態2ではPMTU調査パケット生成時にパケットサイズの変更を行わない方法について説明する。この方法では、中継通信装置702がPMTU調査パケットのサイズを自由に選択することができないため、正確なPMTU値を調査することはできないが、IPフラグメントなどの処理を行う場合に比べさらに実装が容易になるという利点がある。
ネットワーク構成図(図10)、中継通信装置の内部構成図(図11)、全体の処理の流れ(図12)に関しては実施の形態1と同様であるため、ここでは説明を省略する。また、図12のTCP通信開始フェーズ(S901)も実施の形態1と同様であるためここでは説明を省略する。
次に実施の形態2におけるPMTU調査フェーズ(S902)について図20のフローチャート、および図21(到達可能な場合のシーケンス図)、図22(到達不可能な場合のシーケンス図)を用いて説明する。
図20にあるように、まず、転送したPMTU調査パケットが相手端末通信装置704に到達可能かの判定処理を行う(S1401)。S1401の到達可能な場合のシーケンスを示したのが図21である。図21では、送信元端末通信装置701から送信された1500バイトのパケット1501を受信した中継通信装置702は、パケット1501に含まれるTCPデータの最終シーケンス番号(N−1とする)を記憶し(S1511)、その内容およびサイズは変更せずにPMTU調査パケット1502としてそのまま転送する。ここではリンク709におけるMTU値も1500バイトであるとし、PMTU調査パケット1502は相手端末通信装置704まで到達するものとする。PMTU調査パケットに対するACKパケット1503(ACK番号N)を受信した中継通信装置702は到達判定処理(S1512)においてACK番号の確認により到達可能であるとの判定を行い、ACKパケット1503はそのまま転送する。一方、S1401の到達不可能な場合のシーケンス図を示したのが図22である。図22では、送信元端末通信装置701から送信された1500バイトのパケット1521を受信した中継通信装置702は、パケット1521に含まれるTCPデータの最終シーケンス番号(N−1とする)を記憶し(S1531)、その内容およびサイズは変更せずにPMTU調査パケット1522としてそのまま転送する。ここではリンク709におけるMTU値は1300バイトであるとし、PMTU調査パケットはその直前のルータ708において破棄される。このためPMTU調査パケット1522に対するACKパケットは返信されず、送信元端末通信装置701は再送パケット1523を送信する(S1532)。再送パケット1523(最終シーケンス番号N−1)を受信した中継通信装置702はそのシーケンス番号を確認することにより、到達不可能であるとの判定を行う。
再び図20に戻り、上記の判定処理(S1401)により到達可能と判定された場合(S1402)は、PMTU値をそのサイズSpに設定する(S1404)。また、到達不可能と判定された場合はPMTU値を相手通信端末に到達可能であることが分かっている既定値(例えば576)に設定する(S1403)。なお、Spのサイズは送信元端末通信装置701が送信したパケットのサイズに依存するため、到達可能かの判定後に中継通信装置702がSpのサイズを変更して再調査を行うことはできないため、ここではこの判定処理(S1401)は1回のみ行うものとしている。なお、以降送信元端末通信装置701が送信したパケットのサイズがここで判定したサイズSpと異なる場合は、再度調査を行っても良い。
以降の中継通信データサイズ変更フェーズ(S903)および中継通信データサイズ変更後の正常通信フェーズ(S904)での処理に関しては、実施の形態1と同様であるため、ここでは省略する。
(実施の形態3)
実施の形態1ではPMTU調査パケットを生成するためにIPフラグメントを行う方法、実施の形態2ではサイズの変更を行わない方法を述べたが、実施の形態3ではTCPデータの分割を行う方法について説明する。
ネットワーク構成図(図10)、中継通信装置の内部構成図(図11)、全体の処理の流れ(図12)に関しては実施の形態1と同様であるため、ここでは説明を省略する。また、図12の各フェーズのうち、TCP通信開始フェーズ(S901)、中継通信データサイズ変更フェーズ(S903)、中継通信データサイズ変更後の正常通信フェーズ(S904)も実施の形態1と同様であるためここでは説明を省略する。実施の形態3が実施の形態1と異なるのはPMTU調査フェーズ(S902)の処理のうち、サイズがSpのPMTU調査パケットが相手端末通信装置704に到達可能かの判定処理(図14のS1102)のみであるため、以降ではこの処理の詳細についてのみ説明する。
[A:到達可能な場合]
到達可能な場合のシーケンス図は図23である。まずS1611のTCPデータ分割処理について説明する。送信元端末通信装置701が送信した1500バイトのパケット1601を受信した中継通信装置702は、そのパケットからTCPデータ1460バイトを抽出する。次に抽出したTCPデータの先頭からSp(例えばここでは1200バイトとする)−40バイトのTCPデータを抽出し、Sp(1200)バイトのPMTU調査パケット1622を構築する。このパケットはIPフラグメントの行われていないTCPパケットであり、最終シーケンス番号がN−1のTCPデータを含むとする。また、抽出した1460バイトのTCPデータを、到達可能であることが分かっているサイズ(例えば576バイト)の複数のパケットに収まるように分割し、3つのIPフラグメントされていない通常のTCPパケット(1603(576バイト)、1604(576バイト)、1605(428バイト))を構築する。これらのTCPパケットに含まれるTCPデータの最終シーケンス番号はいずれもN−1とは異なる値になる。
次にシーケンス番号記憶処理S1612において、先ほど構築したPMTU調査パケットに含まれるTCPデータの最終シーケンス番号N−1を記憶しておく。そして、先ほど構築したTCPパケットを、PMTU調査パケット(1602)、到達可能なパケット(1603、1604、1605)の順に送信する。
これらのパケットを受信した相手端末通信装置704は、少なくとも1602もしくは1603のいずれかに対してACKパケット1606を返信する。このとき、このACKパケット1606に含まれるACK番号は受信したTCPデータの最終シーケンス番号であるNとなる。次に中継通信装置702はこのACKパケット1606を受信するとそのACK番号Nが、S1612で記憶したシーケンス番号N−1より1大きいことを確認すると、到達可能であると判定する(S1613)。
[B:到達不可能な場合]
一方、到達不可能な場合のシーケンス図は図24である。TCPデータ分割処理(S1631)およびシーケンス番号記憶処理(S1632)までは到達可能な場合と同様なのでここでは説明を省略する。ここで、到達可能な場合と異なるのはPMTU調査パケット1622のサイズがPMTU値(1300バイト)よりも大きい1400バイトであることである。このため、PMTU調査パケットはブラックホールルータ708により破棄され、その他のパケット(1623、1624、1625)のみが相手端末通信装置704に到着する。この場合、返信されるACKパケット1626に含まれるシーケンス番号はNとは異なる値になる。したがってこのACKパケット1626を受信した中継通信装置702は到達判定処理(S1633)において到達不可能であると判定する。
なお、ここで述べた方法は、送信元端末通信装置701から送信されたIPパケットからTCPデータを抽出して、中継通信装置702において新たに複数のTCPパケットを構築することを除いては、PLPMTUDと同様の処理を行っている。
以上のような動作を行う本発明の中継通信装置702を利用することによって、送信元端末装置に特別な機能を追加することなく、ブラックホールルータの存在するネットワークを介して、複数の送信元端末装置が正常に通信を行うことができる。
なお、本発明で説明した各実施の形態は、上述の処理手順をCPUに実行させるためのプログラムをCPUに実行させることによっても実現することが出来る。この場合、当該プログラムを記録媒体に格納し、その内容を記憶した装置の記憶装置(ハードディスクなど)から実行させても良いし、記録媒体から直接実行しても良い。ここでの記録媒体は、ROMやRAM、フラッシュメモリなどの半導体メモリ、フレキシブルディスクやハードディスクなどの磁気ディスクメモリ、CD−ROMやDVD、BDなどの光ディスク、メモリカードなどの記録媒体をいう。
また、各実施の形態で説明した中継通信装置の機能を集積回路であるLSIとして実現しても良い。
ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
本発明の中継通信装置は、ホームネットワークや社内LAN、ISP内のネットワークなどブラックホールルータが存在しない小規模もしくは中規模ネットワークにおいて、外部ネットワークと接続する境界や小規模ネットワーク内の任意の中継点において適用できる。例えば、ブロードバンドルータや、無線アクセスポイント、中継機能と端末機能の両方を有する通信装置などに対して適用できる。
TCP/IPネットワークのモデル図 IPパケットフォーマット(IPフラグメント前)を示す図 IPパケットフォーマット(IPフラグメント後)を示す図 RFC1191におけるPath MTU Discoveryのシーケンス図 ICMP宛先到達不能要断片化パケットを示す図 PLPMTUDの全体を示すフローチャート PLPMTUDの到達判定処理の詳細を示すフローチャート PLPMTUDの到達可能な場合を示すシーケンス図 PLPMTUDの到達不可能な場合を示すシーケンス図 実施形態例におけるネットワーク図 本発明の中継通信装置の内部構成図 実施形態例における処理シーケンス図 TCP通信開始フェーズにおける処理シーケンス図 第1実施形態例におけるPMTU調査フェーズのフローチャート 第1実施形態例におけるPMTU調査フェーズの到達可能な場合を示す処理シーケンス図 第1実施形態例におけるPMTU調査フェーズの到達不可能な場合を示す処理シーケンス図 SYNパケットのMSSオプションを変更する方法による中継通信データサイズ変更フェーズおよび中継通信データサイズ変更後の正常通信フェーズのシーケンス図 ICMP宛先到達不能要断片化パケットを利用する方法による中継通信データサイズ変更フェーズおよび中継通信データサイズ変更後の正常通信フェーズのシーケンス図 IPフラグメントを利用する方法による中継通信データサイズ変更フェーズおよび中継通信データサイズ変更後の正常通信フェーズのシーケンス図 第2実施形態例におけるPMTU調査フェーズのフローチャート 第2実施形態例におけるPMTU調査フェーズの到達可能な場合を示す処理シーケンス図 第2実施形態例におけるPMTU調査フェーズの到達不可能な場合を示す処理シーケンス図 第3実施形態例におけるPMTU調査フェーズの到達可能な場合を示す処理シーケンス図 第3実施形態例におけるPMTU調査フェーズの到達不可能な場合を示す処理シーケンス図
符号の説明
101 端末通信装置
102 中継通信装置
103 リンク
104 アプリケーションレベルでの通信
710 ホームネットワーク
701 送信元端末通信装置
702 本発明の中継通信装置
703 インターネット
704 相手端末通信装置
705 TCP通信
706,707,708 リンク
708 ブラックホールルータ
801 PMTU調査パケットサイズ決定部
802 PMTU調査パケット生成部
803 中継通信処理部
804 PMTU調査パケット到達判定部
805 中継通信データサイズ変更部

Claims (17)

  1. 第1の通信装置と第2の通信装置が行っている第1の通信を中継する中継通信装置であって、
    PMTU(Path Maximum Transfer Unit)調査パケットのサイズを決定するPMTU調査サイズ決定手段と、
    前記第1の通信装置が送信した前記第1の通信に属する第1のデータパケットを受信し、前記第2の通信装置に向けて転送する際に、第1のサイズ調整方法を用いて前記第1のデータパケットを前記PMTU調査パケットサイズ決定手段が決定したサイズに調整し、前記PMTU調査パケットとして送信するPMTU調査パケット生成手段と、
    前記第2の通信装置が送信した前記第1の通信に属する応答確認パケットを受信し、前記第1の通信装置に向けて転送する際に、応答確認されたデータを示す情報を前記応答確認パケットから取得し、取得した情報に基づいて前記PMTU調査パケットが前記第2の通信装置に到達したかどうかを判定するPMTU調査パケット到達判定手段と、
    前記PMTU調査パケット到達判定手段の判定結果に基づいて、前記中継通信装置と前記第2の通信装置間における前記第1の通信もしくは前記第1の通信以降に前記中継通信装置を経由して行われる第2の通信に属する第2のデータパケットのサイズを変更する中継通信データサイズ変更手段と、
    を備えることを特徴とする中継通信装置。
  2. 前記第1の通信がTCP(Transmission Control Protocol)を用いた通信であることを特徴とする、請求項1に記載の中継通信装置。
  3. 前記第1の通信がDCCP(Datagram Congestion Control Protocol)を用いた通信であることを特徴とする、請求項1に記載の中継通信装置。
  4. 前記PMTU調査パケット到達判定手段は、前記PMTU調査パケットが前記第2の通信装置に到達したかどうかの判定を、前記PMTU調査パケットを送信後の第1のタイミングで行い、
    前記第1のタイミングは、前記中継通信装置と前記第2の通信装置との間のRTT(Round Trip Time)の推定値から決定されることを特徴とする、請求項1に記載の中継通信装置。
  5. 前記第1の通信装置が、前記第1のデータパケットに対する応答確認が得られなかった場合に、前記第1のデータパケットに対する再送パケットを送信する第2のタイミングを、前記第1の通信装置と前記第2の通信装置との間のRTTの推定値から決定する通信装置であった場合に、
    前記第1のタイミングは、前記中継通信装置が前記再送パケットを受信したタイミングに基づいて決定されることを特徴とする、請求項4に記載の中継通信装置。
  6. 前記第1のタイミングは、前記中継通信装置が計測した前記中継通信装置と前記第2の通信装置との間のRTTに基づいて推定されることを特徴とする、請求項4に記載の中継通信装置。
  7. 前記第1の通信がIP(Internet Protocol)を用いた通信であった場合に、
    前記第1のサイズ調整方法は、前記第1のデータパケットをIPフラグメントする処理を含むことを特徴とする、請求項1に記載の中継通信装置。
  8. 前記第1の通信がさらにTCPを用いた通信であった場合に、
    前記第1のサイズ調整方法は、前記第1のデータパケットと、前記第1のデータパケットに続くTCPデータを含む第3のデータパケットをさらに前記PMTU調査パケットサイズ決定手段が決定したサイズ以下のサイズにIPフラグメントする処理を含むことを特徴とする、請求項7に記載の中継通信装置。
  9. 前記第1の通信がTCPを用いた通信であった場合に、
    前記第1のサイズ調整方法は、前記第1のデータパケットからTCPデータの一部を抽出し、前記TCPデータの一部を含む、IPフラグメントされていない一つのIPパケットとして前記PMTU調査パケットを構成することを特徴とする、請求項1に記載の中継通信装置。
  10. 前記第1のサイズ調整方法は、前記第1のデータパケットのサイズを保ったまま前記PMTU調査パケットを構成することを特徴とする、請求項1に記載の中継通信装置。
  11. 前記第2の通信がTCPを用いた通信であった場合に、
    前記中継通信データサイズ変更手段は、前記第2の通信におけるSYNパケットに含まれるMSS(Maximum Segment Size)オプションの値を変更することにより、前記第2の通信に属する第2のデータパケットのサイズを変更することを特徴とする、請求項1に記載の中継通信装置。
  12. 前記第2の通信がIPを用いた通信であった場合に、
    前記中継通信データサイズ変更手段は、前記第1の通信装置に対して、ICMP(Internet Control Message Protocol)宛先到達不能要断片化パケットもしくは、ICMPv6パケット過大パケットを送信することを特徴とする、請求項1に記載の中継通信装置。
  13. 前記第2の通信がIPを用いた通信であった場合に、
    前記中継通信データサイズ変更手段は、前記第2の通信のデータパケットをIPフラグメントする処理を含むことを特徴する、請求項1に記載の中継通信装置。
  14. 前記PMTU調査パケットサイズ決定手段は、前記PMTU調査パケットのサイズを変更しつつ請求項1に記載の処理を複数回繰り返すことにより、前記中継通信装置から前記第2の通信装置へ到達可能なデータパケットのサイズの最大値を調査し、前記中継通信データサイズ変更手段は前記中継通信装置と前記第2の通信装置間における前記第1の通信もしくは第2の通信に属するデータパケットのサイズを前記最大値のサイズに変更することを特徴する、請求項1に記載の中継通信装置。
  15. 第1の通信装置と第2の通信装置が行っている第1の通信を中継する中継通信装置が実行するプログラムを記録した、コンピュータ読み取り可能な記録媒体であって、
    PMTU調査パケットのサイズを決定するPMTU調査サイズ決定手段及び、
    第1の通信装置が送信した第1の通信の第1のデータパケットを受信し前記第2の通信装置に向けて転送する際に、第1のサイズ調整方法を用いて前記第1のデータパケットを前記PMTU調査パケットサイズ決定手段が決定したサイズに調整しPMTU調査パケットとして送信するPMTU調査パケット生成手段及び、
    第2の通信装置が送信した第1の通信に属する応答確認パケットを受信し、前記第1の通信装置に向けて転送する際に、応答確認されたデータを示す情報を取得し、取得した情報に基づいて前記PMTU調査パケットが前記第2の通信装置に到達したかどうかを判定するPMTU調査パケット到達判定手段及び、
    前記PMTU調査パケット到達判定手段の判定結果に基づいて、前記中継通信装置と前記第2の通信装置間における前記第1の通信もしくは前記第1の通信以降に前記中継通信装置を経由して行われる第2の通信の第2のデータパケットのサイズを変更する中継通信データサイズ変更手段としてコンピュータを機能させるプログラムを記録したことを特徴とする、コンピュータ読み取り可能な記録媒体。
  16. 第1の通信装置と第2の通信装置が行っている第1の通信を中継する中継通信装置において用いられる集積回路であって、
    PMTU調査パケットのサイズを決定するPMTU調査サイズ決定手段と、
    第1の通信装置が送信した第1の通信の第1のデータパケットを受信し前記第2の通信装置に向けて転送する際に、第1のサイズ調整方法を用いて前記第1のデータパケットを前記PMTU調査パケットサイズ決定手段が決定したサイズに調整しPMTU調査パケットとして送信するPMTU調査パケット生成手段と、
    第2の通信装置が送信した第1の通信の応答確認パケットを受信し、前記第1の通信装置に向けて転送する際に、応答確認されたデータを示す情報を前記応答確認パケットから取得し、取得した情報に基づいて前記PMTU調査パケットが前記第2の通信装置に到達したかどうかを判定するPMTU調査パケット到達判定手段と、
    前記PMTU調査パケット到達判定手段の判定結果に基づいて、前記中継通信装置と前記第2の通信装置間における前記第1の通信もしくは前記第1の通信以降に前記中継通信装置を経由して行われる第2の通信の第2のデータパケットのサイズを変更する中継通信データサイズ変更手段と、
    を備えることを特徴とする集積回路。
  17. 第1の通信装置と第2の通信装置、および前記第1の通信装置と前記第2の通信を行っている第1の通信を中継する中継通信装置とが接続されている通信システムであって、
    前記第1の通信装置は第1のデータパケットを送信し、
    前記中継通信装置は、PMTU調査パケットのサイズを決定するPMTU調査パケットサイズ決定手段を有し、
    第1の通信装置が送信した第1の通信の第1のデータパケットを受信し前記第2の通信装置に向けて転送する際に、第1のサイズ調整方法を用いて前記第1のデータパケットを前記PMTU調査パケットサイズ決定手段が決定したサイズに調整しPMTU調査パケットとして送信し、
    前記第2の通信装置は、前記PMTU調査パケットを受信すると応答確認パケットを送信し、
    前記中継通信装置は、さらに第2の通信装置が送信した前記PMTU調査パケットに対する前記応答確認パケットを受信し、前記第1の通信装置に向けて転送する際に、応答確認されたデータを示す情報を前記応答確認パケットから取得し、取得した情報から前記PMTU調査パケットが前記第2の通信装置に到達したかどうかを判定し、
    前記判定結果に基づいて、前記中継通信装置と前記第2の通信装置間における前記第1の通信もしくは前記第1の通信以降に前記中継通信装置を経由して行われる第2の通信の第2のデータパケットのサイズを変更することを特徴とする通信システム。
JP2005374415A 2005-12-27 2005-12-27 中継通信装置、記憶媒体、集積回路および通信システム Pending JP2007180686A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005374415A JP2007180686A (ja) 2005-12-27 2005-12-27 中継通信装置、記憶媒体、集積回路および通信システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005374415A JP2007180686A (ja) 2005-12-27 2005-12-27 中継通信装置、記憶媒体、集積回路および通信システム

Publications (1)

Publication Number Publication Date
JP2007180686A true JP2007180686A (ja) 2007-07-12

Family

ID=38305446

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005374415A Pending JP2007180686A (ja) 2005-12-27 2005-12-27 中継通信装置、記憶媒体、集積回路および通信システム

Country Status (1)

Country Link
JP (1) JP2007180686A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009231986A (ja) * 2008-03-19 2009-10-08 Fujitsu Ltd 通信装置
JP2010050606A (ja) * 2008-08-20 2010-03-04 Nec Corp 無線基地局、無線通信システム、パス接続方法およびプログラム
JP2012502544A (ja) * 2009-03-20 2012-01-26 ネットマン カンパニー リミテッド IPv6ネットワーク内ホスト遮断及び探索方法
JP2013219481A (ja) * 2012-04-06 2013-10-24 Nippon Telegr & Teleph Corp <Ntt> 中継装置、中継方法及び中継プログラム
US8767736B2 (en) 2010-08-09 2014-07-01 Nec Corporation Communication device, communication method, and recording medium for recording communication program
JP2016213778A (ja) * 2015-05-13 2016-12-15 株式会社デンソー 中継装置、電子装置および通信システム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009231986A (ja) * 2008-03-19 2009-10-08 Fujitsu Ltd 通信装置
JP2010050606A (ja) * 2008-08-20 2010-03-04 Nec Corp 無線基地局、無線通信システム、パス接続方法およびプログラム
JP2012502544A (ja) * 2009-03-20 2012-01-26 ネットマン カンパニー リミテッド IPv6ネットワーク内ホスト遮断及び探索方法
US8767736B2 (en) 2010-08-09 2014-07-01 Nec Corporation Communication device, communication method, and recording medium for recording communication program
JP2013219481A (ja) * 2012-04-06 2013-10-24 Nippon Telegr & Teleph Corp <Ntt> 中継装置、中継方法及び中継プログラム
JP2016213778A (ja) * 2015-05-13 2016-12-15 株式会社デンソー 中継装置、電子装置および通信システム

Similar Documents

Publication Publication Date Title
US9641650B2 (en) TCP proxy server
US9906630B2 (en) Processing data packets in performance enhancing proxy (PEP) environment
US9118717B2 (en) Delayed network protocol proxy for packet inspection in a network
CN108111509B (zh) 数据传输方法
US20070171828A1 (en) Method of determining a maximum transmission unit value of a network path using transport layer feedback
US10158570B2 (en) Carrying TCP over an ICN network
US9832276B2 (en) Dynamic disabling of multi-step transport layer handshake spoofing in performance enhancing proxies (PEPs) in broadband networks
WO2017198285A1 (en) Transporting udp packets over an mptcp connection
JP4222353B2 (ja) Ip通信装置およびip通信システム
US10361921B2 (en) Method and apparatus for managing connections in a communication network
JP6541697B2 (ja) トランスペアレント性能拡張プロキシを動作させるための方法およびコンピュータ・プログラム、ならびにトランスペアレント性能拡張プロキシ
CN104025550B (zh) 从数据项获得信息的方法及装置
JP2007180686A (ja) 中継通信装置、記憶媒体、集積回路および通信システム
CN112838966A (zh) 一种udp链路监控方法、系统及电子设备
CN114631297B (zh) 用于多路径通信的方法和网络设备
JP3999785B2 (ja) 通信方法
Gomez et al. Tcp usage guidance in the internet of things (iot)
US11522979B2 (en) Transmission control protocol (TCP) acknowledgement (ACK) packet suppression
JP2005085284A (ja) フェイルオーバーイベントをサポートするネットワーク状態オブジェクトの多重オフロード
US8639822B2 (en) Extending application-layer sessions based on out-of-order messages
US8676993B1 (en) Bundled transmission control protocol connections
Moritz et al. A coap based soap transport binding
JP2005012698A (ja) データ中継方法、データ中継装置およびその装置を用いたデータ中継システム
EP3525413A1 (en) Connectionless protocol with bandwidth and congestion control
EP3525419A1 (en) Connectionless protocol with bandwidth and congestion control