JP2007174293A - 通信装置 - Google Patents

通信装置 Download PDF

Info

Publication number
JP2007174293A
JP2007174293A JP2005369637A JP2005369637A JP2007174293A JP 2007174293 A JP2007174293 A JP 2007174293A JP 2005369637 A JP2005369637 A JP 2005369637A JP 2005369637 A JP2005369637 A JP 2005369637A JP 2007174293 A JP2007174293 A JP 2007174293A
Authority
JP
Japan
Prior art keywords
pmtu
communication device
communication
investigation
packet
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
JP2005369637A
Other languages
English (en)
Inventor
Takeshi Ogose
剛 生越
Yoshinori Okazaki
芳紀 岡崎
Keiichi Takagaki
景一 高垣
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 JP2005369637A priority Critical patent/JP2007174293A/ja
Publication of JP2007174293A publication Critical patent/JP2007174293A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】通信装置間での通信において、上り方向と下り方向とではPMTUが異なる場合があり、可能な限り下り方向のスループットの低下を防ぐ必要がある。
【解決手段】通信装置は、指定したIPパケットサイズでIPパケットを送信するように相手通信装置に指示し、相手通信装置が送信したIPパケットを受信できるかどうかを判定することにより下りPMTUを調査する。
【選択図】図1

Description

本発明は、TCP/IP通信を用いたネットワークに接続される通信装置の下りPMTU調査に関するものである。
近年、インターネットをはじめとするTCP/IP(Transmission Control Protocol/Internet Protocol)を用いたネットワークが広く普及してきた。これらのネットワークでは、IPパケットという単位でデータの送受信を行っており、IPパケット長は、送信元の通信装置が送信するデータ量等に合わせて決定する。一方、通信装置や中継通信装置の各装置間のリンクには1回に送信できる長さの最大値が最大転送単位(MTU:Maximum Transfer Unit)として規定されている。このMTUの値はリンクの種類ごとに規定されており、例えばEthernet(登録商標)の場合は1500バイトとなっている。送信元の通信装置(送信元通信装置)から送信されたIPパケットは、経路上のいくつかの中継通信装置を経由して宛先の通信装置(相手通信装置)で受信される。通常、送信元通信装置は直接接続されているリンクのMTUに合わせて送信するIPパケット長の最大値を決定し、送信するデータ量がリンクのMTUより大きい場合は複数のIPパケットに分割して送信する。また、中継通信装置は、転送されてきたIPパケットが、転送先のリンクのMTUを越えたIPパケット長の場合、複数のIPパケットに分割(IPフラグメント)して転送する。分割されたIPパケットは、相手通信装置で再構築されて受信される。
このように、IPフラグメントによって、異なるMTUで構成される複数のリンクを経由する通信経路による通信が可能となるが、一方で、下記の問題が発生する。
・中継通信装置におけるフラグメント処理、相手通信装置における復元処理など、各通信装置の処理負荷が増加する。
・フラグメントされることによりIPパケット数が必要以上に増加し、中継通信装置において転送する際の処理負荷が増加する。
・フラグメントの際に発生するMTUより小さなサイズの各パケットにおいてもIPヘッダーが必要となるため、フラグメントされない場合と比較して通信帯域の利用効率が低下する。
このような問題の発生を避けるために、送信元通信装置が通信経路上の各リンクのMTUの最小値(以降、これをPMTU:Path MTUと呼ぶ)を調査し、始めからPMTUのIPパケットサイズで送信することにより通信経路上でIPフラグメントを発生させない方法が従来技術として開示されている。そのひとつであるRFC1191(タイトル:Path MTU Discovery)(非特許文献1)について次に説明する。なお、RFC1191はIPv4を対象としたものであるが、IPv6を対象としたRFC1981(非特許文献2)も存在する。
RFC1191ではIPヘッダーのDon’t Fragment(DF)フラグ及び、ICMPパケット(タイプ:Destination Unreachable(0x03)、コード:fragment needed and DF set(0x04)のICMP宛先到達不能メッセージ:以下、FN ICMPパケットと記載する)を用いて送信元通信装置がPMTUを調査するための方法が記述されている。以下では図2を参照しながらこの方法について説明する。
図2は、RFC1191による方法の実施シーケンスの一例を示した図である。図2において、201は送信元通信装置、202は送信元通信装置201と通信を行なう相手通信装置、203及び204は中継通信装置、211〜213はそれぞれの通信装置間のリンクである。なお、リンク211及びリンク213のMTUは、それぞれ1500であり、リンク212のMTUは1000である。
まず、送信元通信装置201は自身が直接送信するリンク211のMTUである1500バイトのIPパケットサイズで、DFフラグを設定したパケット221を送信する。次に中継通信装置203はこのパケット221を受信し、中継通信装置204に転送しようとする。しかし、リンク212のMTUは1000であるため、IPフラグメントを行なわないと転送することはできない。しかしながら、中継通信装置203では、DFフラグが設定されているIPパケットに対してIPフラグメントは行なえないため、送信元通信装置201に対してFN ICMPパケット222を送信する。また、FN ICMPパケット222には、リンク212のMTUである1000(即ち、IPフラグメントせずに送信先のリンク212に送信可能なサイズ)が設定してある。送信元通信装置201がこのFN ICMPパケット222を受信すると、これ移行に送信するIPパケットは、FN ICMPパケット222により通知されたMTU(=1000)に合わせたIPパケットサイズで送信する。このサイズのIPパケットは中継通信装置203から中継通信装置204へIPフラグメントなしで転送できるサイズであるため、相手通信装置202まで転送でき、通信経路上でIPフラグメントすることなく通信を行なうことが可能となる。
次に、ICMPを使用した他のPMTU調査方法(特許文献1)について説明する。
特許文献1によれば、送信元通信装置が、DFフラグを設定したICMPechoを、IPパケットサイズを変えながら送信し、ICMPechoに対応する相手通信装置からのICMPreplyを送信元通信装置で受信できるかを判定することによりPMTUを調査する。ここで、ICMPecho及びICMPreplyは、ネットワーク上の通信装置と通信が可能であるかどうかを確認するものであり、既定されているプロトコルであるため、一般的な通信装置の機能として実装されているものである。
また、ICMPecho及びICMPreplyのパケットサイズは自由に変えても一般的に動作可能であり、特許文献1は、この機能を用いてPMTUの調査を行なうものである。
しかしながら、最近では、ここまでに説明したPMTUの調査方法が適用できないネットワークが存在するという問題が、RFC2923(タイトル:TCP Problem with Path MTU Discovery)(非特許文献3)において指摘されている。ここで指摘されている問題はブラックホール問題と呼ばれる。次に、ブラックホール問題の概要について説明する。ブラックホール問題はICMPパケットを送信もしくは転送しないルータ(ブラックホールルータと呼ばれる)が存在することにより発生する。例えばRFC1191の説明で用いた図2における中継通信装置203がブラックホールルータであった場合、中継通信装置203はDFフラグのついた1500バイトのIPパケット221を中継通信装置204に転送しない上に、FN ICMPパケット222を送信元通信装置201宛てに送信することもしない。即ち、何もせずに単にIPパケット221を破棄する。このため、送信元通信装置201は変更すべきパケットサイズ(PMTUに等しい)を知ることができず、以降も1500バイトのパケットを送信する。このため、送信元通信装置201が送信したパケットが相手通信装置202に到達することができず、通信を行なうことができない。また、中継通信装置203がFN ICMPパケットを送信したとしても、送信元通信装置201までの通信経路に別のブラックホールルータが存在した場合、FN ICMPパケットが送信元通信装置201まで到達できず、同様の問題が発生する。
このため、上記ブラックホール問題を発生させるブラックホールルータが通信経路上に存在する場合でも、送信元通信端末装置が通信経路のPMTUを知ることができ、フラグメントなしに相手通信装置との間で通信することを可能とする方法も考案されている。
その方法のひとつがIETFにInternet Draftとして提案されたことのあるPLPMTUD(Packetization Layer Path MTU Discovery)である。この方法について記述した文書(非特許文献4)はインターネット上で公開されている。
PLPMTUDは、PLPMTUDを搭載している送信元通信装置が相手通信装置にTCPデータを送信する際に、送信するTCPデータの分割サイズを調整(つまり、IPパケットサイズを調整)し送信する。その後、相手通信装置は送信元通信装置からのIPパケット(TCPデータ)を受信すると、受信したことを示すために送信元通信装置に対してTCP ACKパケットを送信する。送信元通信装置は、相手通信装置からのTCP ACKパケットを受信することにより、送信したIPパケット(TCPデータ)が、相手通信装置に届いたことを検知し、PMTUを調査する。上記処理を、送信するIPパケットサイズを変化させながら繰り返すことによりPMTUを調査することができる。
ところで、本発明はTCP通信のパケットサイズを変更することに関係するため、TCP通信においてパケットサイズを調整する方法に関してここで説明しておく。
TCP通信ではIPパケット長を調整する方法として主に二つがある。
一つ目は、TCPの標準機能であるMSS値(Maximum Segment Size)を用いた方法である。図7は、TCPコネクションの確立における、MSS値の決定方法の一例を示したシーケンス図である。図7において、901は送信元通信装置、902は相手通信装置、903は中継通信装置、904及び905はリンクである。このとき、リンク904のMTUは1500、リンク905のMTUは1300である。送信元通信装置901及び相手通信装置902は、それぞれMSS値を保持している。MSS値は、各通信装置が接続されているリンクのMTUから40バイトを引いた値である。つまり、送信元通信装置901のリンク904に対応するMSS値は1460であり、相手通信装置902のリンク905に対応するMSS値は1260である。送信元通信装置901から相手通信装置902へTCPコネクションの確立を行なう場合、送信元通信装置901は保持しているMSS値(=1460)を設定したSYNパケット911を相手通信装置902に宛てて送信する。SYNパケット911は、中継通信装置903を経由して相手通信装置902に到達する。相手通信装置902はSYNパケット911を受け取ると、保持しているMSS値(=1260)を設定したSYN ACKパケット912を送信元通信装置901に宛てて送信する。SYN ACKパケット912は、中継通信装置903を経由して送信元通信装置901に到達する。送信元通信装置901はSYN ACKパケット912を受け取ると、ACKパケット913を相手通信装置902に宛てて送信する。ACKパケット913は中継通信装置903を経由して相手通信装置902に到達する。相手通信装置902は、ACKパケット913を受け取ると、送信元通信装置901と相手通信装置902との間でTCPコネクションが確立される。TCPコネクションが確立されると、送信元通信装置901と相手通信装置902は、TCPコネクションで使用するMSS値をそれぞれで決定する(914及び915)。具体的には、自通信装置が保持しているMSS値とSYNパケットもしくはSYN ACKパケットに設定されているMSS値のうち、より小さい方のMSS値に決定する。TCPコネクションで使用するMSS値が決定されると、それ以降、TCPコネクションでは、決定されたMSS値に基づいたIPパケットサイズでIPパケットが送受信される。
二つ目は、TCPの標準機能であるウィンドウサイズを用いた方法である。TCP通信においては、自通信装置が受信可能なTCPデータサイズをウィンドウサイズとして通信相手の通信装置に広告する。例えば、送信元通信装置から相手通信装置にTCPデータを送信する処理において、相手通信装置が送信元通信装置に広告したウィンドウサイズが500であったとすると、送信元通信装置は、TCPデータサイズが500バイトになるようにIPパケットサイズを決定し、IPパケット(TCPデータ)を送信する。
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日 特開2003−18216号公報
しかし、前記従来のPLPMTUDは、調査可能な方向に関して制約があるという問題がある。以下、この問題の詳細に関して説明する。
TCP/IP通信を用いたネットワークでは、送信元通信装置から相手通信装置への経路(上り経路)と、その逆方向の相手通信装置から送信元通信装置への経路(下り経路)が、同じであるとは限らない。従って、経路により決定されるPMTUは、上り経路のPMTU(上りPMTU)と、下り経路のPMTU(下りPMTU)とでは、必ずしも同じになるとは限らない。
図3は、上りPMTUと下りPMTUが異なる一例を示した図である。401及び402は通信装置、403〜406は中継通信装置、411〜416はリンクである。なお、リンク411〜415のMTUは、1500であり、リンク416のMTUは1200である。送信元通信装置401が送信元であり、相手通信装置402が通信相手である場合、上り経路は、送信元通信装置401−中継通信装置403−中継通信装置404−中継通信装置405−相手通信装置402であり。逆に下り経路は、相手通信装置402−中継通信装置405−中継通信装置406−中継通信装置403−送信元通信装置401であったとする。このとき、上りPMTUは1500であり、下りPMTUは1200である。
前記従来のPLPMTUDでは、送信元通信装置がPLPMTUDを搭載しているとすると、上りPMTUを調査することはできるが、下りPMTUを調査することはできない。これは、PLPMTUDによってPMTUを調査する場合に、送信元通信装置が送信するIPパケットサイズは調整できるが、相手通信装置が送信するIPパケットサイズを調整することができないためである。従って、PLPMTUDを使用して送信元通信装置と相手通信装置との間の正確なPMTU(上りPMTUと下りPMTUの両方)を調査する場合には、送信元通信装置と相手通信装置の両方がPLPMTUDを搭載する必要がある。しかしながら、相手通信装置となりうるすべての通信装置がPLPMTUDを搭載することは不可能であるため、送信元通信装置だけで正確なPMTUを調査できる必要がある。
例えば、図3において、リンク411、412、414〜416のMTUが1500であり、リンク413のMTUが1200であった場合、前記従来のPLPMTUDでは、PMTUは1200となる。従って、送信元通信装置401、402は、IPパケット長を1200に合わせてIPパケットを送信する。しかしながら、実際の下りPMTUは1500であるため、下り経路では転送効率の良いIPパケットサイズでIPパケットが送信されない。この結果、余計な下りスループットの低下を発生させることになる。
本発明は、前記従来の課題を解決するもので、送信元通信装置のみが本発明を搭載することで適用可能な下りPMTUの調査方法を提供することを目的とする。
上記課題を解決するために、第1の発明は、通信アプリケーションがTCP/IPによる通信を相手通信装置との間で行なう通信装置あって、前記通信装置は、PMTU調査パケットサイズ決定手段と、PMTU調査パケット要求生成手段と、PMTU調査パケット到達判定手段とを備え、前記PMTU調査パケットサイズ決定手段は、PMTU調査パケットサイズを決定し、前記PMTU調査パケット要求生成手段に通知し、前記PMTU調査パケット要求生成手段は、前記PMTU調査パケットサイズ決定手段から通知されたサイズのPMTU調査パケットを、前記通信装置に向けて送信することを前記相手通信装置に要求し、前記PMTU調査パケット到達判定手段は、前記相手通信装置が送信した前記PMTU調査パケットが前記通信装置に到達したかどうかを判定する、ことを特徴としている。
上記第1の発明によれば、相手通信装置からサイズを変化させながらIPパケットを送信させることにより下りPMTUを調査することが可能である通信装置が実現できる。
第2の発明は、第1の発明において、さらにPMTU調査実施判定手段を備え、前記PMTU調査実施判定手段は、第1の発明に記載の各手段を用いて行なう下りPMTU調査を実施するかどうかを第1の判定方法を用いて判定するものである。
上記第2の発明によれば、下りPMTUの調査が必要な場合にのみ調査を実施でき、効率の良い通信を行なえる通信装置が実現できる。
第3の発明は、第2の発明において、前記第1の判定方法は、前記通信アプリケーションが使用するプロトコル、もしくは、サービスにより前記相手通信装置との前記下りPMTU調査を実施するかどうかを判定する、ものである。
上記第3の発明によれば、下りPMTUを調査した結果がより有効に利用できるプロトコルやサービスを使用する場合にのみ、下りPMTUを調査することができ、より効率の良い通信を行なえる通信装置が実現できる。
第4の発明は、第3の発明において、前記第1の判定方法は、前記通信アプリケーションが使用する前記プロトコル、もしくは、前記サービスが、前記相手通信装置からデータを取得するために使用するものである場合に、前記下りPMTU調査を実施するかどうかを判定する、ものである。
上記第4の発明によれば、下り方向にデータを転送するプロトコル、もしくは、サービスの場合にのみ、下りPMTUを調査することができ、下りPMTUが有効に利用できる場合にのみ、下りPMTUを調査することができる通信装置が実現できる。
第5の発明は、第4の発明において、前記プロトコルは、FTPである。
第6の発明は、第4の発明において、前記プロトコルは、HTTPである。
第7の発明は、第3の発明において、前記第1の判定方法は、前記通信アプリケーションが使用する前記プロトコル、もしくは、前記サービスが、制御系プロトコル、もしくは、制御系サービスである場合に、前記下りPMTU調査を実施しないことに決定する、ものである。
上記第7の発明によれば、制御系プロトコル、もしくは、制御系サービスを使用する場合は、下りPMTUの調査を行なわない。これは、制御系プロトコル、もしくは、制御系サービスが比較的小さなIPパケットで通信されるため、下りPMTUを調査したとしても、下りPMTUを有効に利用した通信ができない場合があるためである。
第8の発明は、第2の発明において、前記第1の判定方法は、前記通信アプリケーションが前記相手通信装置から取得するデータの種類により、前記下りPMTU調査を実施するかどうかを判定する、ものである。
上記第8の発明によれば、相手通信装置から取得するデータが大きい場合に、下りPMTUの調査を行なうことができる。例えば、画像データや動画データなどは、比較的大きなデータとして知られている。この場合、下りPMTUを調査し、下りPMTUを有効に利用した通信が可能な通信装置が実現できる。
第9の発明は、第2の発明において、前記第1の判定方法は、前記通信アプリケーションが前記相手通信装置から取得するデータのサイズにより、前記下りPMTU調査を実施するかどうかを判定する、ものである。
上記第9の発明によれば、相手通信装置から取得するデータのサイズが規定値以上のデータサイズであった場合に、下りPMTUを調査でき、より下りPMTUを有効に利用した通信が可能な通信装置が実現できる。
第10の発明は、第9の発明において、前記第1の判定方法は、前記通信アプリケーションが前記相手通信装置から取得するデータのサイズを前記相手通信装置から予め取得し、前記下りPMTU調査を実施するかどうかの判定に使用する、ものである。
上記第10の発明によれば、相手通信装置から取得するデータのサイズを相手通信装置から予め取得し、規定値以上のデータサイズであった場合に、下りPMTUを調査でき、より下りPMTUを有効に利用した通信が可能な通信装置が実現できる。
第11の発明は、第10の発明において、前記第1の判定方法は、前記相手通信装置からデータのサイズを取得するのに、HTTPのHEADメソッドを使用する、ものである。
第12の発明は、第2の発明において、前記PMTU調査パケットサイズ決定手段は、前記下りPMTU調査に使用するデータを選択し、前記選択したデータを前記PMTU調査パケット要求生成手段に通知する、ものである。
上記第12の発明によれば、下りPMTUの調査に使用するデータを、より調査に適したデータを用いることができ、よりよい下りPMTU調査を実施可能な通信装置が実現できる。
第13の発明は、第12の発明において、前記PMTU調査パケットサイズ決定手段は、前記下りPMTU調査に使用するデータとして前記通信アプリケーションが指定したデータを選択する、ものである。
上記第13の発明によれば、通信アプリケーションが指定したデータは相手通信装置が保持している可能性が高いため、そのデータを下りPMTU調査に使用することにより、より確実な下りPMTU調査が実施可能な通信装置が実現できる。
第14の発明は、第2の発明において、前記PMTU調査パケット要求生成手段は、前記相手通信装置が送信するPMTU調査パケットのサイズを指定するのに、MSS値を用いる、ものである。
上記第14の発明によれば、TCPの標準機能であるMSS値を用いることにより相手通信装置が送信するPMTU調査パケットのサイズを変更可能な通信装置が実現できる。
第15の発明は、第2の発明において、前記PMTU調査要求生成手段は、前記相手通信装置が送信するPMTU調査パケットのサイズを指定するのに、ウィンドウサイズを用いる、ものである。
上記第15の発明によれば、TCPの標準機能であるウィンドウサイズを用いることにより相手通信装置が送信するPMTU調査パケットのサイズを変更可能な通信装置が実現できる。
第16の発明は、第2の発明において、前記PMTU調査パケット到達判定手段は、一定期間経過しても、前記相手通信装置からのPMTU調査パケットが到達しない場合、到達不可と判定する、ものである。
上記第16の発明によれば、相手通信装置からPMTU調査パケットが到達しない場合でも、下りPMTU調査を継続できる通信装置が実現できる。
第17の発明は、第2の発明において、前記PMTU調査パケットサイズ決定手段は、前記PMTU調査パケット到達判定手段からの判定結果を受けて、PMTU調査パケットサイズを変更し、前記PMTU調査パケット要求生成手段に再度通知する、ものである。
上記第17の発明によれば、複数のPMTU調査パケットサイズを用いて下りPMTUを調査することができ、より最適な下りPMTUを調査可能な通信装置が実現できる。
本発明は、前記従来の課題を解決するもので、送信元通信装置に搭載するだけで下りPMTUを調査でき、送信元通信装置と相手通信装置は、正確な下りPMTUを用いた通信を行なうことにより効率の良いパケットサイズで送受信できるため、ネットワークトラフィックの増加やスループットの低下を防ぐことが可能となる。なお、モバイルIPにおいては、上り経路と下り経路が異なる場合が発生しやすいため、本発明が特に有効である。
以下本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
以下、本発明の実施の形態1における下りPMTU調査について、図面を参照しながら説明する。図3において、送信元通信装置401は、本発明が係わる通信装置である。なお、相手通信装置402は、本発明の通信装置である必要はなく、従来の通信装置でもよい。また、リンク411〜415のMTUは1500であり、リンク416のMTUは1200である。
図1は、本発明が係わる送信元通信装置401の機能構成を示すブロック図である。図1において、送信元通信装置401は、PMTU調査実施判定手段を実行するPMTU調査実施判定部501と、PMTU調査パケットサイズ決定手段を実行するPMTU調査パケットサイズ決定部502と、PMTU調査パケット要求生成手段を実行するPMTU調査パケット要求生成部503と、通信処理部504と、PMTU調査パケット到達判定手段を実行するPMTU調査パケット到達判定部505と、通信データサイズ変更部506と、通信アプリケーション507と、を備えている。
図6は、通信元となる送信元通信装置401と通信相手となる相手通信装置402との間の下りPMTU調査を行なう場合に処理される図1に示した各部の一連の動作を時系列に表した一例を示した図である。ここで、送信元通信装置401はHTTP(HyperText Transfer Protocol)クライアントの機能を、相手通信装置402はHTTPサーバの機能をそれぞれ装備しており、送信元通信装置401は、HTTPを用いて相手通信装置402からデータを取得する。以降、図6を用いて、送信元通信装置401が相手通信装置402とのHTTP通信を開始する場合の、下りPMTU調査処理の概略を説明する。なお、ここではHTTPを用いるとしているが、送信元通信装置が相手通信装置からデータを取得する要求を送信できるようなプロトコルであれば、HTTPに限る必要はなく、FTPやその他任意のプロトコルでも構わない。
〔下りPMTU調査処理の概略〕
通信アプリケーション507は、通信相手である相手通信装置402と、相手通信装置402から取得するデータAを指定した通信開始要求802(HTTPの通信開始)を、PMTU調査実施判定部501に通知する。PMTU調査実施判定部501は、通信アプリケーション507からの通信開始要求802で指定されているパラメータから下りPMTUを調査するかどうかの調査実施の判定803を行なう(詳細は後述)。調査実施の判定803の結果、調査を行なう場合、PMTU調査パケットサイズ決定部502にPMTU調査実施要求804を通知する。次に、調査処理801を行なう。調査処理801の詳細については後述する。調査処理801が完了すると、その結果により、その調査処理において使用された調査パケットサイズaがPMTU以下か否かが判断できる。PMTU調査パケットサイズ決定部502は、すでに調査済みの調査パケットサイズとは違うサイズで調査を繰り返すかどうかを判定する(811)。調査を繰り返す場合、調査処理801を最初から繰り返す。調査を繰り返すか否かの判定方法は、例えば、(1)下りPMTU以下と判断される値と下りPMTUより大きいと判断される値の境界が判明するまで行なう方法、(2)(1)の条件に加え、予め決定された調査回数を最大とする方法、などが上げられる。ただし、本発明においてこの判定方法は上記方法に限る必要はなく、どのような方法を用いてもかまわない。
一方、811において調査を繰り返さないと判定した場合、それまで実施された1回、あるいは複数回の調査処理801で得られた結果から下りPMTUを決定する。この下りPMTUの決定方法としては、例えば、得られたPMTU以下と判断された複数の調査パケットサイズのうち、一番大きな値を下りPMTUとして決定することが有効である。その後、決定した下りPMTUを指定して、通信データサイズ変更部506にデータサイズ変更を指示する(812)。通信データサイズ変更部506は、PMTU調査パケットサイズ決定部502からのデータサイズ変更の指示で指定された下りPMTUを基にしてMSS値を求め、MSS変更要求813を通信処理部504に通知する。通信装置401は、これ以降の相手通信装置402とのTCP通信では、PMTU調査パケットサイズ決定部502からのMSS変更要求で指定されたMSS値を用いて通信を行なう。その後、PMTU調査パケットサイズ決定部502は、PMTU調査完了通知814をPMTU調査実施判定部501に通知する。PMTU調査実施判定部501は、PMTU調査完了通知814を受信すると、通信処理部504を用いて、通信アプリケーション507の通信開始要求802に応じた、相手通信装置402との間のHTTP通信815を開始する。なお、通信開始要求802で指定された取得するデータAを調査処理801において、すでに相手通信装置402から取得してある場合、改めてデータAを取得する処理を行なわなくても良い。
なお、上記では、調査処理801を一回ごと行なっているが、調査処理801を並列して複数回行なってもよい。
〔調査処理801〕
次に、調査処理801について図面を参照しながら説明する。
図8は、調査処理801を時系列に表した一例を示した図である。
PMTU調査パケットサイズ決定部502は、調査処理801で使用する調査パケットサイズaを選択(805)し、PMTU調査パケット要求生成部503にPMTU調査要求806を通知する。調査パケットサイズaの選択方法については後述する。PMTU調査パケット要求生成部503は、調査処理801で使用する調査用HTTPリクエスト808を生成(807)し、通信処理部504に調査用HTTPリクエスト808を通知する。通信処理部504は、PMTU調査パケット要求生成部503から通知された調査用HTTPリクエスト808に基づいて、相手通信装置402との調査用HTTP通信を行なう。この動作について次に説明する。
通信処理部504は、調査用HTTP通信に使用する相手通信装置402との間のTCPコネクションを確立するために、TCP SYNパケット820を相手通信装置402に宛てて送信する。このとき、TCP SYNパケット820のMSS値に、調査パケットサイズaから求めたMSS値を設定する。相手通信装置402は、TCP SYNパケット820を受信すると、相手通信装置402が保持しているMSS値を設定したTCP SYN ACKパケット821を送信元通信装置401に送信する。送信元通信装置401は、TCP SYN ACKパケット821を受信すると、TCP ACKパケット822を相手通信装置402に宛てて送信する。相手通信装置402がTCP ACKパケット822を受信すると、送信元通信装置401と相手通信装置402との間の調査用HTTP通信で使用するTCPコネクションが確立されたことになり、TCP SYNパケット820とTCP SYN ACKパケット821にそれぞれ設定されているMSS値のうち小さな方を基にして、このTCPコネクションで使用するIPパケットサイズが決定される。次に、送信元通信装置401は、HTTPリクエスト823を相手通信装置402に宛てて送信する。HTTPリクエスト823には、送信元通信装置401が要求するデータ名(URI:Uniform Resource Identifiers)が設定されている。相手通信装置402がHTTPリクエスト823を受信すると、HTTPリクエスト823で要求されているデータをHTTPレスポンス824として送信元通信装置401に宛てて送信する。相手通信装置402がHTTPレスポンス824の送信を完了すると、調査用HTTP通信で使用するTCPコネクションを切断するために、相手通信装置402がTCP FINパケット825を送信元通信装置401に宛てて送信する。送信元通信装置401がTCP FINパケット825を受信すると、その応答としてTCP FIN ACKパケット826を送信する。なお、TCPコネクションの切断方法は別の方法でもよく、本発明の範囲外で実現される。通信処理部504は、調査用HTTP通信が完了すると、HTTPレスポンス824を受信していた場合は、PMTU調査パケット到達判定部505に正常受信を設定した調査用HTTPリクエスト結果809を通知する。一方、通信処理部504がHTTPレスポンス824を所定時間内に受信できなかった場合、通信処理部504は、調査用HTTP通信で使用するTCPコネクションを切断し、PMTU調査パケット到達判定部505にエラーを設定した調査用HTTPリクエスト結果809を通知する。
次に、PMTU調査パケット到達判定部505は、通信処理部504から通知された調査用HTTPリクエスト結果809に基づいて、相手通信装置402との間で、今回の調査パケットサイズaを用いてHTTP通信が行なえたかどうかを判定し、PMTU調査パケットサイズ決定部502に到達判定結果810を通知する。
〔各部の詳細な動作の説明〕
次に、送信元通信装置401の各機能部について、それぞれの役割と動作の詳細を説明する。
<通信アプリケーション507>
通信アプリケーション507は、相手通信装置402との通信が必要になった場合、通信相手となる相手通信装置402を指定して通信の開始要求をPMTU調査実施判定部501に通知する。例えば、通信アプリケーション507がHTTPクライアントの機能を持っており、HTTPサーバとの通信が必要になった場合には、そのHTTPサーバを指定して、PMTU調査実施判定部501に通信の開始要求を通知する。なお、通信アプリケーション507が備える機能は、FTPクライアントの機能などのように、通信アプリケーション507が通信を開始するものであればよい。
<PMTU調査実施判定部501>
PMTU調査実施判定部501は、通信アプリケーション507からの通信の開始要求の通知を受け取ると、下りPMTU調査を実施するかどうかを判定する。図4は、PMTU調査実施判定部501が行なう判定処理の一例を示すフローチャート図である。以下、図4の各ステップに関して説明する。
S601:通信アプリケーション507が使用するサービスやプロトコルで下りPMTU調査の実施の有無を判定する。実施する場合は、ステップS606に移行する。逆に実施しない場合は、ステップS602に移行する。例えば、通信アプリケーション507がストリーミングサービスを使用している場合は、下りPMTU調査を実施する。また、比較的短い制御情報を扱うサービスやプロトコルの場合は、下りPMTU調査は実施しない。
S602:通信アプリケーション507が相手通信装置402に要求するデータの種類により下りPMTU調査の実施の有無を判定する。実施する場合は、ステップS606に移行する。逆に実施しない場合は、ステップS603に移行する。例えば、通信アプリケーション507が要求するデータが動画データである場合、そのデータ名(ファイル拡張子名)から、動画データ(例えば、ファイル拡張子名が”.mov”など)であることが推測できる。動画データなどのようにデータサイズが比較的大きいと判定される場合は、下りPMTU調査を行なう。先の判定が困難な場合は、ステップS603に移行する。
S603:通信アプリケーション507が相手通信装置402に要求するデータのサイズを相手通信装置402と通信を行なうことにより取得する。例えば、通信アプリケーション507が使用するプロトコルがHTTPの場合、HTTP HEADメソッドを使用することにより、相手通信装置402からデータのサイズを取得する。なお、FTPの場合は、LISTコマンドを使用することにより、相手通信装置402からデータのサイズを取得する。
S604:S603で入手したデータのサイズを用いて下りPMTU調査の実施の有無を判定する。この閾値は、例えば、データサイズが1MBytesを越える場合など、予め決定された所定の値とする方法が考えられる。実施する場合は、ステップS606に移行する。逆に実施しない場合は、ステップS605に移行する。
S605:下りPMTU調査を実施しないことに決定し、通信処理部504を使用して相手通信装置402との下りPMTUを考慮しない通信を行なう。
S606:下りPMTU調査を実施することに決定し、PMTU調査パケットサイズ決定部502にPMTU調査実施要求を通知する。
<PMTU調査パケットサイズ決定部502>
PMTU調査パケットサイズ決定部502は、調査に使用する調査パケットサイズaを決定し、PMTU調査パケット要求生成部503にPMTU調査を要求する。なお、調査パケットサイズaを決める方法としては、送信元通信装置401が保持しているMTUを使用したり、予め設定された初期値を用いることなどが考えられる。その後、PMTU調査パケット到達判定部505からの到達判定結果の通知を受ける。これら一連の処理を繰り返すことにより、相手通信装置402との下りPMTUを決定する。図5は、PMTU調査パケットサイズ決定部502が行なう処理の一例を示すフローチャート図である。
S701:PMTU調査に使用する最初の調査パケットサイズaを決める。
S702:PMTU調査パケット要求生成部503に調査パケットサイズaを指定してPMTU調査要求を通知する。
S703:PMTU調査パケット到達判定部505から相手通信装置402からの判定結果の通知を待ち、その後、正常受信を示す通知を受信した場合は、ステップS704に移行し、異常受信を示す通知を受信した場合は、ステップS706に移行する。
S704:調査を繰り返すかどうかを判定する。調査パケットサイズを変更して調査を繰り返す場合は、ステップS707に移行し、調査を繰り返さない場合は、ステップS705に移行する。なお、判定基準としては、規定回数の調査を行なった場合は調査を終了したり、100バイト単位の最適な下りPMTUを調査できた場合に終了する、などが考えられる。
S705:調査パケットサイズaを相手通信装置402との通信に使用する下りPMTUとして採用し、通信データサイズ変更部506に調査パケットサイズaを通知する。
S706:調査パケットサイズaよりも小さい値を調査パケットサイズaに設定する。
S707:調査パケットサイズaよりも大きい値と調査パケットサイズaに設定する。
<PMTU調査パケット要求生成部503>
PMTU調査パケット要求生成部503は、相手通信装置402に相手通信装置402から送信元通信装置401へのIPパケットを送信させるためのPMTU調査パケット要求を生成する。さらに、PMTU調査パケットサイズ決定部からのPMTU調査要求で指定された調査パケットサイズaを指定して、PMTU調査パケット要求を通信処理部504に通知する。例えば、HTTPの場合、データを送信するように要求を設定したHTTPリクエストを通信処理部504に通知する。なお、要求するデータには、通信アプリケーション507が通知した通信開始要求に設定されているデータや、調査専用に用意されているデータを用いてもよく、相手通信装置402が送信することができるデータであればよい。
<通信処理部504>
通信処理部504は、PMTU調査パケット要求生成部503からの要求に応じて、相手通信装置402との間の、TCPコネクションの確立やデータの送受信を行なう。TCPコネクションを確立する際には、PMTU調査パケット要求生成部503からの要求で指定された調査パケットサイズからMSS値を求め、求めたMSS値を設定したSYNパケットを送信することにより、相手通信装置402が送信するIPパケットのサイズを変更させる。なお、調査パケットサイズは、MTUと同じサイズを意味するため、MSSは、調査パケットサイズから40バイトを引いた値となる。
また、通信処理部504は、PMTU調査実施判定部501からの要求に応じて、相手通信装置402との間のTCPコネクションの確立やデータの送受信を行なう。この場合のMSS値は、送信元通信装置401が保持するMSS値を用いる。
相手通信装置402からIPパケットを受信した場合、必要に応じて、PMTU調査実施判定部501、もしくは、PMTU調査パケット到達判定部505にデータ受信を通知する。なお、一定期間内にIPパケットを受信できない場合は、エラーを設定したデータ受信を通知してもよい。
また、通信処理部504は、通信データサイズ変更部506からのMSS変更要求の通知を受信すると、通知に指定してあるMSS値を相手通信装置ごとに保持しておき、これ移行、TCPコネクションを確立する場合は、相手通信装置ごとに保持してあるMSS値を用いる。例えば、送信元通信装置401が相手通信装置402のMSS値として1160を保持してあり、相手通信装置402とTCPコネクションを確立する場合、MSS値に1160を設定したSYNパケットを相手通信装置402に送信する。
<PMTU調査パケット到達判定部505>
PMTU調査パケット到達判定部505は、通信処理部504からのデータ受信の通知により、相手通信装置402からIPパケットを正しく受信したかどうかを判定する。例えば、データ受信の通知で、エラーが設定されていなかった場合は、正しく受信できたと判定する。判定した結果、正しく受信できたと判定した場合は、正常受信の到達判定結果をPMTU調査パケットサイズ決定部502に通知する。逆に、正しく受信できなかったと判定した場合は、異常受信の到達判定結果をPMTU調査パケットサイズ決定部502に通知する。
<通信データサイズ変更部506>
通信データサイズ変更部506は、PMTU調査パケットサイズ決定部からのデータ受信の通知を受信すると、通知で指定されている調査パケットサイズを、相手通信装置402との通信で使用する下りPMTUとして決定し、決定した下りPMTUからMSS値を求める。その後、求めたMSS値を設定したMSS変更要求を通信処理部504に通知する。
以上の処理により、PMTUや上りPMTUではなく、下りPMTUを調査することができる。正確な下り方向のみのPMTUを調査することにより、下り方向のブラックホール問題を解決でき、さらに、下り方向のスループットの低下を防ぐことができるという効果が得られる。
(実施の形態2)
以下、本発明の実施の形態2における下りPMTU調査について説明する。
実施の形態1では、相手通信装置が送信するIPパケットのサイズを指定するのにTCPのMSS値を用いたが、本実施の形態では、TCPのウィンドウサイズを用いる。
実施の形態2においては、通信処理部504における処理以外は実施の形態1と同様であるため、ここでは説明を省略する。
〔通信処理部504〕
通信処理部504の処理のうち、調査処理(図6の801)にかかわる処理以外は実施の形態1と同様であるため、ここでは省略する。
本実施の形態における調査処理に(図6の801)にかかわる通信処理部504の処理についてのみ以下で説明する。
通信処理部504は、PMTU調査パケット要求生成部503からの要求に応じて、相手通信装置402との間の、TCPコネクションの確立やデータの送受信を行なう。TCPコネクションを確立する際には、PMTU調査パケット要求生成部503からの要求で指定された調査パケットサイズからウィンドウサイズを求め、求めたウィンドウサイズをTCPパケットのウィンドウサイズフィールドに設定して広告することで、相手通信装置402が送信するIPパケットのサイズを変更させる。なお、調査パケットサイズは、MTUと同じサイズを意味するため、ウィンドウサイズは、調査パケットサイズからIPヘッダーサイズとTCPヘッダーサイズを引いた値となる。
なお、ここでは実施の形態1と同様に一つのTCPコネクションに対して1回のウィンドウサイズ変更処理を行うものとしているが、一つのTCPコネクションに対して、複数回ウィンドウサイズ変更処理を行っても構わない。
以上の処理により、TCPのウィンドウサイズを用いて相手通信装置が送信するIPパケットサイズを変更することにより、PMTUや上りPMTUではなく、下りPMTUを調査することができる。
本発明の下りPMTU調査を行なう通信装置は、相手通信装置との間の下りPMTUを調査でき、調査の結果得られた下りPMTUを用いることにより、下り方向のブラックホール問題の回避や、下り方向のスループットの低下を防ぐという効果を有し、相手通信装置が本発明を搭載していなくても下りPMTU調査ができる通信装置として有用である。
本発明の一実施の形態に係る通信装置の機能構成例を示すブロック図 従来技術におけるPMTU調査方法の一例を示したシーケンス図 本発明の一実施の形態に係るネットワーク構成例を示すブロック図 本発明の一実施の形態に係るPMTU調査実施判定部が行なう処理の一例を示すフローチャート 本発明の一実施の形態に係るPMTU調査パケットサイズ決定部が行なう処理の一例を示すフローチャート 本発明の一実施の形態に係る下りPMTU調査の一連の動作を時系列に表した一例を示す図 従来技術のTCPコネクションの確立におけるMSS値の決定方法の一例を示したシーケンス図 調査処理801を時系列に表した一例を示した図
符号の説明
501 本発明の一実施の形態に係わるPMTU調査実施判定部
502 本発明の一実施の形態に係わるPMTU調査パケットサイズ決定部
503 本発明の一実施の形態に係わるPMTU調査パケット要求生成部
504 本発明の一実施の形態に係わる通信処理部
505 本発明の一実施の形態に係わるPMTU調査パケット到達判定部
506 本発明の一実施の形態に係わる通信データサイズ変更部
507 本発明の一実施の形態に係わる通信アプリケーション
201,401 送信元通信装置
202,402 相手通信装置
203,204,403,404 中継通信装置
211〜213,411〜416 リンク
901,902 通信装置
903 中継通信装置

Claims (17)

  1. 通信アプリケーションがTCP/IPによる通信を相手通信装置との間で行なう通信装置あって、
    前記通信装置は、PMTU調査パケットサイズ決定手段と、PMTU調査パケット要求生成手段と、PMTU調査パケット到達判定手段とを備え、
    前記PMTU調査パケットサイズ決定手段は、PMTU調査パケットサイズを決定し、前記PMTU調査パケット要求生成手段に通知し、
    前記PMTU調査パケット要求生成手段は、前記PMTU調査パケットサイズ決定手段から通知されたサイズのPMTU調査パケットを、前記通信装置に向けて送信することを前記相手通信装置に要求し、
    前記PMTU調査パケット到達判定手段は、前記相手通信装置が送信した前記PMTU調査パケットが前記通信装置に到達したかどうかを判定する、
    ことを特徴とする通信装置。
  2. 前記通信装置は、さらにPMTU調査実施判定手段を備え、
    前記PMTU調査実施判定手段は、請求項1に記載の各手段を用いて行なう下りPMTU調査を実施するかどうかを第1の判定方法を用いて判定する、
    ことを特徴とする請求項1に記載の通信装置。
  3. 前記第1の判定方法は、前記通信アプリケーションが使用するプロトコル、もしくは、サービスにより前記相手通信装置との前記下りPMTU調査を実施するかどうかを判定する、
    ことを特徴とする請求項2に記載の通信装置。
  4. 前記第1の判定方法は、前記通信アプリケーションが使用する前記プロトコル、もしくは、前記サービスが、前記相手通信装置からデータを取得するために使用するものである場合に、前記下りPMTU調査を実施するかどうかを判定する、
    ことを特徴とする請求項3に記載の通信装置。
  5. 前記プロトコルは、FTPである、
    ことを特徴とする請求項4に記載の通信装置。
  6. 前記プロトコルは、HTTPである、
    ことを特徴とする請求項4に記載の通信装置。
  7. 前記第1の判定方法は、前記通信アプリケーションが使用する前記プロトコル、もしくは、前記サービスが、制御系プロトコル、もしくは、制御系サービスである場合に、前記下りPMTU調査を実施しないことに決定する、
    ことを特徴とする請求項3に記載の通信装置。
  8. 前記第1の判定方法は、前記通信アプリケーションが前記相手通信装置から取得するデータの種類により、前記下りPMTU調査を実施するかどうかを判定する、
    ことを特徴とする請求項2に記載の通信装置。
  9. 前記第1の判定方法は、前記通信アプリケーションが前記相手通信装置から取得するデータのサイズにより、前記下りPMTU調査を実施するかどうかを判定する、
    ことを特徴とする請求項2に記載の通信装置。
  10. 前記第1の判定方法は、前記通信アプリケーションが前記相手通信装置から取得するデータのサイズを前記相手通信装置から予め取得し、前記下りPMTU調査を実施するかどうかの判定に使用する、
    ことを特徴とする請求項9に記載の通信装置。
  11. 前記第1の判定方法は、前記相手通信装置からデータのサイズを取得するのに、HTTPのHEADメソッドを使用する、
    ことを特徴とする請求項10に記載の通信装置。
  12. 前記PMTU調査パケットサイズ決定手段は、前記下りPMTU調査に使用するデータを選択し、前記選択したデータを前記PMTU調査パケット要求生成手段に通知する、
    ことを特徴とする請求項2に記載の通信装置。
  13. 前記PMTU調査パケットサイズ決定手段は、前記下りPMTU調査に使用するデータとして前記通信アプリケーションが指定したデータを選択する、
    ことを特徴とする請求項12に記載の通信装置。
  14. 前記PMTU調査パケット要求生成手段は、前記相手通信装置が送信するPMTU調査パケットのサイズを指定するのに、MSS値を用いる、
    ことを特徴とする請求項2に記載の通信装置。
  15. 前記PMTU調査要求生成手段は、前記相手通信装置が送信するPMTU調査パケットのサイズを指定するのに、ウィンドウサイズを用いる、
    ことを特徴とする請求項2に記載の通信装置。
  16. 前記PMTU調査パケット到達判定手段は、一定期間経過しても、前記相手通信装置からのPMTU調査パケットが到達しない場合、到達不可と判定する、
    ことを特徴とする請求項2に記載の通信装置。
  17. 前記PMTU調査パケットサイズ決定手段は、前記PMTU調査パケット到達判定手段からの判定結果を受けて、PMTU調査パケットサイズを変更し、前記PMTU調査パケット要求生成手段に再度通知する、
    ことを特徴とする請求項2に記載の通信装置。
JP2005369637A 2005-12-22 2005-12-22 通信装置 Pending JP2007174293A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005369637A JP2007174293A (ja) 2005-12-22 2005-12-22 通信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005369637A JP2007174293A (ja) 2005-12-22 2005-12-22 通信装置

Publications (1)

Publication Number Publication Date
JP2007174293A true JP2007174293A (ja) 2007-07-05

Family

ID=38300265

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005369637A Pending JP2007174293A (ja) 2005-12-22 2005-12-22 通信装置

Country Status (1)

Country Link
JP (1) JP2007174293A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012205248A (ja) * 2011-03-28 2012-10-22 Brother Ind Ltd 通信装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012205248A (ja) * 2011-03-28 2012-10-22 Brother Ind Ltd 通信装置

Similar Documents

Publication Publication Date Title
US8406240B2 (en) Packet fragmentation prevention
EP3075110B1 (en) Controlling a transmission control protocol window size
US8537710B2 (en) Maximum transfer unit (MTU) optimization for advanced wireless networks
US7042907B2 (en) Packet transfer apparatus and method
JP4430597B2 (ja) ネットワークシステム、送信側振分装置、パケット通信方法、および、パケット通信プログラム
EP2903192B1 (en) Packet handling method and forwarding device
US8085669B2 (en) Session relay device and session relay method
US8484331B2 (en) Real time protocol packet tunneling
JP2009525708A (ja) プロトコルリンクレイヤ
TWI701920B (zh) 封包傳送方法以及系統
US8898466B1 (en) Secure block acknowledgement mechanism for use in communication networks
CN114631297B (zh) 用于多路径通信的方法和网络设备
CA2668611A1 (en) Selective session interception method
WO2017107148A1 (zh) 一种数据传输方法及网络侧设备
JP2006191354A (ja) データ配信管理装置およびデータ配信管理方法
JP2007174293A (ja) 通信装置
CN103581137A (zh) Ecn代理设备和ecn通知方法
WO2020154872A1 (zh) 一种传输控制协议加速方法和装置
JP2009060238A (ja) 送信方法、通信システムおよび通信装置
JP2004140596A (ja) Tcp上のデータ転送における品質を推定する方法およびシステム
JP5112249B2 (ja) 不安定な通信品質の通信リンクを介して移動端末と接続されるプロキシサーバ、プログラム及び代理接続方法
JP2015091015A (ja) パケット制御方法、パケット制御システム及びパケット制御プログラム
Thornburgh RFC 7016: Adobe's Secure Real-Time Media Flow Protocol
KR20070081810A (ko) 이동통신 시스템에서 패킷혼잡 제어 장치 및 방법
JP2005020116A (ja) IPv6/IPv4パケット変換システム