説明

TCP送信制御装置及びTCP送信制御方法

【課題】ホームネットワーク上の機器連携サービスにおける、TCP送信処理の効率化を実現することができるTCP送信制御装置及びTCP送信制御方法を提供すること。
【解決手段】送信端末200(TCP送信制御装置)のTCP宛先キャッシュ制御部206は、受信端末が内部パケット網に位置する場合に、受信端末との間で確立するTCPコネクションで用いられるTCP送信制御情報を、内部パケット網向けに設定する。また、TCP宛先キャッシュ制御部206が、TCPデータ送信で実現されるサービス種別に応じて前記TCP送信制御情報を設定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、TCP(Transport Control Protocol)送信制御装置及びTCP送信制御方法に関し、特に、IP(Internet Protocol)ネットワークを介してTCPを利用して家電連携サービスを行う場合の効率的な送信制御方法の改良に関する。
【背景技術】
【0002】
インターネット上でTCPによるデータ配信を行う場合、遅延やジッタ、パケットロス等の様々な要因によるネットワーク状況の変化・差異を考慮しなければならない。また、受信側端末に関しても、能力の高いものから低いものまで、幅広い範囲の端末への対応を想定する必要がある。これまでの一般的なTCPスタックは、通信端末としてPC(Personal Computer)を想定した送信制御パラメータを用いて、ベストエフォート(Best Effort)でのデータ配信を実現していた。
【0003】
図9は、従来のデータ通信システムの構成を示す図である。
【0004】
図9において、データ通信システム10は、サーバ11、インターネット12、及びインターネット12に接続された複数のクライアント13を備えて構成される。
【0005】
図9a.に示すサーバ11、インターネット12乃至クライアント13間は、ネットワーク(以下、NWと略記する)状況の変動が大きく、遅延・ジッタ・パケットロスが発生する。またパケット毎の配送経路が特定できず、パケットの到着順序の入れ替わりが生じる。
【0006】
また、図9b.に示すクライアント13は、基本的にはPC端末であり、能力が高いものの差が大きい。また、ベストエフォート前提のサービスとして受け止められている。
【0007】
従来のデータ通信システム10は、インターネット上の、様々なNW状況や端末を考慮しなければならないため、TCPによるデータ配信を行う場合に、最大公約数的な設定が用いられ、ベストエフォートによるサービスが実現されていた。
【0008】
図10は、従来のホームネットワーク(ホームNW)システムの構成を示す図である。
【0009】
図10において、ホームNWシステム20は、組込型のサーバ21、ホームNW22、及びホームNW22に接続された複数の組込端末23を備えて構成される。
【0010】
図10a.に示す組込型のサーバ21、ホームNW22乃至組込端末23間は、殆どが1ホップであり、遅延が少なくパケットの入れ替わりも生じない。
【0011】
また、図10b.に示す組込端末23は、基本的に能力が低い。しかし、AV再生等の機能に対しては要求が厳しい。
【0012】
今後普及が予想されるホームNWにおけるストリーミングサービスでは、インターネット上でのサービスに比べ、想定されるNW状況が大きく異なる。またPCに比べて性能の低い組み込み端末で、ベストエフォートではなく家電製品としての品質が要求される。通常の処理では、パケットロストにより200ms以上のリカバリ時間がかかるため、AVストリーミングを行う場合に、途切れが発生する可能性が高い。
【0013】
TCPにおける送信制御パラメータの一例として、パケットロストが発生した場合の再送処理に関するパラメータが挙げられる。
【0014】
TCPでは、ネットワーク上でパケットが失われた場合、2通りの方法でそれを検知し、再送を試みる。
【0015】
1つはタイムアウトにより再送を行う方法である。送信端末がパケットを送信後、再送タイムアウト時間(RTO:Retransmission Time Out)と呼ばれるパラメータにおいて規定される時間の間に、受信端末からの確認応答(ACK)が受信できない場合、送信端末はパケットがロストしたと判断し、該当パケットの再送を行う。一般的なTCPスタックではこの再送タイムアウト時間に最小値が設けられており、200ms以上の値が用いられる。これは、受信端末側で遅延ACK処理を行う場合に生じる遅れを、パケットロストと判断して、無駄な再送処理を行うのを防ぐためである。
【0016】
図11は、従来のTCPを用いたタイムアウトによる再送処理動作を示す制御シーケンス図である。
【0017】
図11に示すように、同一コネクション上で双方向のデータ転送を行う場合、TCPスタックはパケットを受信してもすぐにはACKを返さず、上位アプリケーションから送信するデータが入力されるのを一定時間待ち、できる限りACKとそのデータを同じパケットで送ることにより通信の効率化を図る処理(piggyback)を行うことがある。これにより、受信側でACK送信までの遅延が生じうるため、送信端末はこの受信端末側での遅延分を考慮して再送タイムアウト時間を設定しなければならない。
【0018】
もう1つは、早期再送(Fast Retransmission)と呼ばれる仕組みであり、受信端末が受信パケットのシーケンス番号からパケットの抜けを検出した場合に送信する重複確認応答(Duplicate ACK)により、送信端末がパケットロスを検知するものである。
【0019】
図12は、従来のTCPを用いた早期再送機能による再送処理動作を示す制御シーケンス図である。
【0020】
図12に示すように、シーケンス番号3のパケットがネットワーク上においてロストした場合、受信端末はシーケンス番号4以降の後続パケットを受信する度に重複確認応答を送信端末へ返す。通常送信端末は、重複確認応答を3つ受け取るとパケットがロストしたと判断し、該当パケットの再送を行う。送信端末が3つの重複確認応答を受けるまで再送を行わないのは、インターネット上では各パケットが異なる経路を通って順序の入れ替わりが発生する可能性があり、この順序の入れ替わりとパケットロストを混同して無駄な再送処理が発生するのを防ぐためである。
【0021】
ところで、今後普及が予想されるホームネットワークにおける機器連携サービスでは、インターネット上でのサービスに比べ、想定されるネットワーク状況が大きく異なる。特に、AVストリーミングのような実時間性の高い通信を実現する場合には、PCに比べて性能の低い組込端末(図10参照)で、ベストエフォートでなく家電製品としての品質が要求される。そのため、インターネット上でおける通信を想定したTCP送信制御ではなく、ホームネットワーク上でのサービスに適した送信制御を行う必要がある。
【0022】
特許文献1には、再送タイムアウト時間の情報を、移動端末からサーバに与える移動通信システムが記載されている。特許文献1記載の装置は、TCPコネクション確立時に、TCPデータ配信の受信側である移動機から送信側サーバに対して、再送タイムアウト時間を通知することで、ネットワークベアラに適した再送処理を実現する。
【0023】
また、特許文献2には、再送タイムアウト時間を変更するオプションを付加したセグメントをサーバに送る移動通信システムが記載されている。特許文献2記載の装置は、TCPコネクション確立中に、TCPデータ配信の受信側である移動機から送信側サーバに対して、再送タイムアウト時間を通知することで、通信中にハンドオーバ等によりネットワークベアラが変化した場合でも適切な再送処理パラメータを設定する。
【0024】
図13は、従来のNW種別に応じた送信側再送タイムアウト時間の制御を説明する図である。
【0025】
図13において、移動通信システム30は、携帯電話機などの移動機31と、移動機31と図示しない基地局間における移動通信網に無線通信回線により接続されたサーバ32とを備えて構成される。
【0026】
図13a.に示すサーバ32と移動機31間は、TCPコネクション確立時に、ベアラ種別に応じた再送タイムアウト時間を移動機31からサーバ32へ通知し、サーバ32はその値を用いてTCP送信を行う。
【0027】
図13b.に示すように、ハンドオーバ等によりベアラが変化した場合(例えば、回線交換⇔パケット交換等)に、コネクション確立中に移動機31からサーバ32へ再送タイムアウト時間の変更を通知し、変更する。
【0028】
このように、TCPによるデータ送信時の再送タイムアウト時間をベアラ種別毎に設定することにより、通信回線の使用効率を向上させることが可能になる。
【特許文献1】特開2003−102057号公報
【特許文献2】特開2003−224619号公報
【発明の開示】
【発明が解決しようとする課題】
【0029】
しかしながら、このような従来の移動通信システムにあっては、以下の課題があった。
【0030】
(1)TCPの送信端末は独自のプロトコルを使用して受信端末から指示されなければ再送タイムアウト時間を設定できない。すなわち、受信側から毎回設定を指示されなければ実現できない。
【0031】
(2)また、送信端末が再送タイムアウト時間を設定できるのは端末毎であり、同じ受信端末との間で複数のTCPコネクションを確立している場合に、それぞれのTCPコネクション上で異なるサービスが行われていて、それぞれのサービスに対する最適な再送タイムアウト時間が異なる場合でも、サービス毎個別の設定ができない。換言すれば、相手毎の設定であり、コネクション毎の設定ができない。これでは、柔軟に再送関連パラメータを設定することができない。
【0032】
本発明はかかる点に鑑みてなされたものであり、ホームネットワーク上の機器連携サービスにおける、TCP送信処理の効率化を実現するTCP送信制御装置及びTCP送信制御方法を提供することを目的とする。
【課題を解決するための手段】
【0033】
本発明のTCP送信制御方法は、パケット網を介して受信端末に対してTCPデータ送信を行うTCP送信制御装置であって、前記受信端末が内部パケット網上に存在するか否かを判定する受信ネットワーク判定手段と、前記受信端末が前記内部パケット網に位置する場合に、前記受信端末との間で確立するTCPコネクションで用いられるTCP送信制御情報を、前記内部パケット網向けに設定するTCP送信制御情報設定手段と、を備える構成を採る。
【0034】
本発明のTCP送信制御方法は、パケット網を介して受信端末に対してTCPデータ送信を行うTCP送信制御方法であって、前記受信端末が内部パケット網上に存在するか否かを判定するステップと、前記受信端末が前記内部パケット網に位置する場合に、前記受信端末との間で確立するTCPコネクションで用いられるTCP送信制御情報を、前記内部パケット網向けに設定する設定ステップとを有する。
【発明の効果】
【0035】
本発明によれば、受信端末との間で確立するTCPコネクションで用いられるTCP送信制御情報を受信端末の属するネットワークに応じて設定することにより、送信側が、通信相手端末が属するパケット網に応じて適切なTCP送信制御情報を設定することで、効率的なTCP通信を行うことができ、パケットロスト時の再送時間が大幅に改善される。また、TCPスタック・プロトコルに変更を加えることなく、既存の仕組みでTCPコネクション毎に適切なTCPパラメータを設定することが可能となる。その結果、ホームネットワークサービスにおけるTCP通信の効率化を図ることができる。
【発明を実施するための最良の形態】
【0036】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【0037】
(実施の形態)
図1は、本発明の一実施の形態に係るTCP送信制御装置が用いられる通信システムの構成を示す図である。本実施の形態のTCP送信制御装置は、ホームNWの送信端末に適用した例である。
【0038】
図1において、通信システム100は、TCP送信制御装置である送信端末200と、受信端末210と、送信端末200と受信端末210とを接続する内部パケット網220と、受信端末240と、送信端末200と受信端末240とを接続する外部パケット網250とを備えて構成される。
【0039】
上記送信端末200、受信端末210、及び内部パケット網220は、ホームNW230を構成する。
【0040】
送信端末200は、ホームNW230内にあり、内部パケット網220と外部パケット網250を介して他の通信端末に対してTCPを用いたデータ配信を行う。
【0041】
受信端末210は、ホームNW230内にあり、内部パケット網220を介してTCPによるデータ配信を受信する。受信端末210は、例えば、PCなどに比べて性能の低い組込端末又は家電端末である。家電端末は、一般的にベストエフォートではなく家電製品としての品質が要求される。
【0042】
内部パケット網220は、単独又は少数のサブネットを含む構内のパケット交換網である。具体的には、内部パケット網220は、ハブ(hub)、スイッチや無線LAN(Wireless LAN)のAP(Access Point)から構成されるネットワークである。本実施の形態では、内部パケット網220として家庭内のホームNWを想定している。
【0043】
受信端末240は、外部パケット網250を介してTCPによるデータ配信を受信する。受信端末210と受信端末240を総称する場合には、受信端末260と呼ぶ。
【0044】
外部パケット網250は、インターネットや、パケット交換を用いたセルラ網等の広域網/公衆のパケット交換網であり、インターネットを介した仮想LAN(Virtual LAN)等も含む。また、これらのうち複数が組み合わさった網であってもよい。内部パケット網220と外部パケット網250を総称する場合には、パケット網270と呼ぶ。
【0045】
図2は、上記送信端末200の構成を示す図である。
【0046】
図2において、送信端末200は、ユーザインターフェース制御部201、機器連携サービス制御部202、TCP設定情報格納部203、NW種別判定部204、サービス種別判定部205、TCP宛先キャッシュ制御部206、ネットワークプロトコル制御部207、及びネットワークインターフェース制御部208を備えて構成される。
【0047】
ユーザインターフェース制御部201は、ユーザに対する情報の入出力の制御を行う。ユーザインターフェース制御部201は、ユーザからの指示機能、音声や動画等のメディアデータの入力を受け付けて機器連携サービス制御部202へ受け渡す機能、機器連携サービス制御部202から受けた音声や動画及びテキストデータなどの情報をユーザへ出力する。ユーザインターフェース制御部201は、マウスやボタン、カメラ、マイク等の入力デバイス、及びディスプレイやスピーカ、LED等の出力デバイスから構成される。
【0048】
機器連携サービス制御部202は、機器連携サービスの制御を行う。機器連携サービス制御部202は、ユーザからの指示の受け付け機能、ユーザへのサービス状態の表示機能、音声や映像等のメディアデータの入出力をユーザインターフェース制御部201を介して行う機能を有する。また、機器連携サービス制御部202は、NW種別判定部204及びサービス種別判定部205に機器連携の制御データを出力する。機器連携サービス制御部202は、受信側端末との間でネットワークプロトコル制御部207とネットワークインターフェース制御部208とパケット網270を介し、機器連携の制御データの送受信や音声・映像等の送信を行う機能を持つ。
【0049】
TCP設定情報格納部203は、TCP送信制御情報を格納する。TCP送信制御情報は、TCPの輻輳制御アルゴリズムに関係し、TCPの送信側が制御する設定であり、宛先キャッシュ機能により変更可能なものである。この内容を示す送信制御情報であれば、名称はどのようなものも含まれる。例えば、TCPパラメータ,設定パラメータと呼ぶ場合もある。TCP設定情報格納部203は、NW種別判定部204及びサービス種別判定部205によりアクセスされ、TCP設定情報格納部203に格納されたTCP送信制御情報は、NW種別判定部204及びサービス種別判定部205によるNW種別及びサービス種別判定の際に参照される。
【0050】
また、TCP送信制御情報は、タイミングパターンとして、基本的に以下のタイミングパターンで使用される。
【0051】
1.サービス開始時
2.間欠トラフィック発生時
2.の間欠トラフィックを発生させるサービスの例としては、HTTP(Hyper Text Transfer Protocol)ストリーミングやWebトラフィック等があげられる。TCP送信制御情報の例については図3及び図4により後述する。
【0052】
NW種別判定部204は、ネットワークの種別からTCPパラメータを決定する。
【0053】
サービス種別判定部205は、サービスの種別からTCPパラメータを決定する。
【0054】
TCP宛先キャッシュ制御部206は、NW種別判定部204若しくはサービス種別判定部205から指示を受けて、ネットワークプロトコル制御部207のTCP宛先キャッシュ情報を設定する。
【0055】
ネットワークプロトコル制御部207は、TCP/IP(Transmission Control Protocol/Internet Protocol)の制御を行うプロトコルスタックである。ネットワークプロトコル制御部207は、TCP/IPのプロトコルスタックであり、機器連携サービス制御部202から渡される配信データを、TCP/IPの仕組みに従って制御し、ネットワークインターフェース制御部208及びパケット網270を介して受信側端末へ配信する。ネットワークプロトコル制御部207は一般的に、TCP制御機能としてスロースタートや輻輳回避、早期再送、早期回復といったアルゴリズムを備えており、ネットワーク状況の変動やパケットのロスへの対応を可能としている。
【0056】
またネットワークプロトコル制御部207は、宛先キャッシュ(destinatio cache)と呼ばれる機能を備えており、ある宛先に対しての1度目のTCP送信処理で使用したTCPの制御情報を保存しておき、同じ宛先に対して再度TCP送信処理行う場合にその情報を使用することで、同じ宛先に対する2度目以降のTCP通信の効率化を実現している。宛先キャッシュとして保存される情報の例としては、最大転送サイズ(MTU)、輻輳ウインドウサイズの最大値(CWND)や初期値(INITCWIND)、スロースタート閾値(SSTHRESH)、ラウンドトリップ時間(RTT)、再送タイムアウト時間の最小値(RTO_MIN)、許可される最大のパケット順序入れ替わり数(REORDERING)などがある。
【0057】
ネットワークインターフェース制御部208は、パケット網270との間で通信を行う。ネットワークインターフェース制御部208は、ネットワークプロトコル制御部207から受けたデータをパケット網270へ送信する機能、及びパケット網270から受信したデータをネットワークプロトコル制御部207へ渡す。
【0058】
図3及び図4は、TCP設定情報格納部203に格納されるTCP送信制御情報の例を示す図である。図3は、ネットワーク種別毎のTCP送信制御情報の設定例、図4は、サービス種別毎のTCP送信制御情報の設定例である。
【0059】
図3に示すTCP送信制御情報は、輻輳回避(Congestion Avoidance)、早期再送(Fast Retransmit)、早期回復(Fast Recovery)、スロースタート(Slow Start)等のTCP輻輳制御アルゴリズムに関係するTCP設定情報である。このネットワーク種別毎のTCP送信制御情報は、TCPデータの送信側が制御する。このネットワーク種別毎のTCP送信制御情報は、宛先キャッシュ機能により変更することができる。
【0060】
また、ホームNW230等の近隣ネットワークの場合には、パケットの順序入れ替わりの発生確率が少ないと判断し、送信側で許可される最大のパケット順序入れ替わり数(REORDERING)を1に設定している。それ以外のネットワークに対してはシステムのデフォルト値を用いるようにしており、一般的にこの値は3となる。本実施の形態では、この値を1に変更することにより、送信端末200は、受信端末260から重複確認応答を1つ受けた時点で該当パケットの再送を行うことが可能となる。
【0061】
図4に示すサービス種別毎のTCP送信制御情報は、以下の意味を持つ。音声若しくは映像のストリーミングは実時間性が高く、遅延ACKを考慮した再送タイムアウト時間を用いると、ストリーミングの途切れが発生する可能性がある。そのため、これらのサービスに対しては再送タイムアウト時間の最小値(RTO_MIN)を短い値に設定することで、タイムアウトによる再送を早期に行うことができる。しかし、全ての通信が再送タイムアウト時間の最小値を小さくすると、無駄な再送が行われてネットワーク帯域を圧迫することがある。そのため、図4に示すサービス種別毎のTCP送信制御情報は、ファイルダウンロードのように、実時間性が低く、受信端末側にて多少の受信入れ替わりに対応することができるサービスに対しては、システムのデフォルト値を用いることにしている。一般的にこのデフォルト値は200ms以上の値となる。
【0062】
以下、上述のように構成された送信端末200を有する通信システムの動作を説明する。
【0063】
本発明者らは、インターネット・携帯電話網などの宅外NWは、遅延・ジッタが大きく変動するのに対し、ホームNWは、遅延・ジッタが小さいことに着目した。また宅外NWは、パケットの配信経路が特定できず、パケットの到着順序の入れ替わりが生じる。ホームNWでは、遅延・ジッタが少なくパケットの入れ替わりも生じない。しかし従来技術では、ホームNWは遅延・ジッタが小さいという特性上の差異は考慮されておらず、ホームNWを構成するサーバ端末は、宅外NWとしてのサーバ機能を、いわば流用する形となっている。すなわち、従来技術の送信(サーバ)端末は、ホームNWに用いる場合であっても一般的なTCPの送信制御パラメータを用いて、ベストエフォートでデータ配信を行う構成となっていた。
【0064】
このため、ホームNW上の機器連携サービスにおいてTCP送信処理が最適化されたものとなっておらず、効率化が実現されていない。例えば、独自のプロトコルを使用して受信端末から指示されなければ再送タイムアウト時間を設定できない、またそれぞれのサービスに対する最適な再送タイムアウト時間が異なる場合でも、サービス毎個別の設定ができないなど、ホームNW上でTCP送信処理が最適化されていないといった課題があった。
【0065】
そこで、本発明のTCP送信制御装置は、受信端末との通信内容からNW・サービスを判断し、ホームNW内のストリーミングサービス実行(送信)時には、受信端末との間で確立するTCPコネクションで用いられるTCP送信制御情報を、受信端末の属するネットワークに応じて設定する。
【0066】
ここで、NW・サービスの判断は、機器連携プロトコルの内容等から判別することができる。
【0067】
また、設定するTCP送信制御情報の例としては、再送タイムアウト値(RTO)、又は再送開始閾値(Reordering)等が挙げられる。
【0068】
まず、送信端末200が、受信端末210に対して、TCPを用いて映像や音声等のストリーミング配信を行う場合の動作について説明する。
【0069】
図5は、送信端末200、受信端末210、及び受信端末240からなる通信システムの動作を示す制御シーケンス図である。
【0070】
ホームNW230上の受信端末210は、最初に機器発見を要求するメッセージを内部パケット網220上にブロードキャストする(S100参照)。このメッセージは、例えばUPnP(Universal Plug and Play)のSSDPプロトコルによるサービスディスカバリメッセージである。
【0071】
このメッセージを受信した内部パケット網220上の送信端末200は、受信端末210から機器発見要求メッセージを受信したことを、受信端末210のIPアドレス情報と共に、NW種別判定部204へ通知する。この通知を受けたNW種別判定部204は、機器発見要求のような機器連携に使用されるメッセージはサブネット外に転送されることはないことから、受信端末210が同一のサブネット上にある端末であると判定する(S102参照)。
【0072】
次いで、NW種別判定部204は、この判定に基づき、以下のNW種別判定を行う(S101参照)。すなわち、NW種別判定部204は、この判定に基づき、TCP設定情報格納部203に登録されている情報からネットワーク種別が近隣ネットワークである端末に対する設定を取得し、これをTCP宛先キャッシュ制御部206へ通知する。通知を受けたTCP宛先キャッシュ制御部206は、ネットワークプロトコル制御部207に対して、受信端末210のIPアドレスに対応するTCP宛先キャッシュの設定を行う。この設定方法の例として、Linux OSにおいて利用可能なiproute2コマンドによるものが挙げられる。図3に示すネットワーク種別毎のTCP送信制御情報の設定例では、近隣ネットワーク上の端末に対しては、REORDERING(許容される最大のパケット順序入れ替わり数)を1に設定するという情報が登録されており、この設定がネットワークプロトコル制御部207、つまりTCPプロトコルスタックに設定されることになる。この場合、以後受信端末210との間でTCP接続を確立する場合に、この設定が反映された状態でTCP通信が開始されることになる。具体的には、送信端末200は、受信端末210とのTCP通信中に受信端末210から重複確認応答を1つ受けた時点でパケットロスが発生したと判断し、早期に再送処理を行うことが可能となる。
【0073】
この後、受信端末210と送信端末200の間で、UPnP等の機器連携プロトコルを用いた各種制御処理が行われる(S103参照)。具体的には、受信端末210は、送信端末200の機器情報を取得して送信端末200がストリーミング配信機能を持つことを検知し、さらにその後受信端末210のユーザの指示に基づき、送信端末200の持つコンテンツリストを取得する。そして受信端末210のユーザが送信端末200からのコンテンツのストリーミングの開始を受信端末210に要求すると、受信端末210は、コンテンツの送信を開始するメッセージを送信端末200へ発行する(S104参照)。このメッセージは具体的には、HTTP GETメソッド等により実現され、コンテンツの全体若しくは一部分の転送を送信端末200に要求する。
【0074】
この要求を受けた送信端末200は、開始するサービスの内容、つまり映像若しくは音声のストリーミングサービスであること、及びサービスの相手先、つまり受信端末210のアドレス情報(IPアドレス及びポート番号)、をサービス種別判定部205へ通知する。この通知を受けたサービス種別判定部205は、TCP設定情報格納部203からストリーミングサービスに関する設定を取得し、指定されたアドレス情報に対する宛先キャッシュの設定を行うようTCP宛先キャッシュ制御部206へ指示する(S105参照)。
【0075】
指示を受けたTCP宛先キャッシュ制御部206は、指定されたアドレス情報、つまり受信端末240がこのストリーミングサービスを受信するのに使用するIPアドレスとポート番号、に対する宛先キャッシュの内容を、指示された内容に変更する。図4に示すサービス種別毎のTCP送信制御情報の設定例では、ストリーミングサービスの場合には、再送タイムアウト時間の最小値(RTO_MIN)を従来のTCPで用いられる値に比べて小さい値、具体的には音声の場合には30ms、映像の場合には50msに設定するという内容になっている。受信端末240がこのストリーミングサービスを受信するのに使用するIPアドレスとポート番号に関する宛先キャッシュのうち、再送タイムアウト時間の最小値がこの値に設定されることになる。
【0076】
上記の処理により、この後開始される送信端末200から受信端末240へのストリーミングサービス(S106参照)では、再送タイムアウト時間が従来のTCPに比べて短くなり、タイムアウト発生時の再送処理が高速化されることになる。
【0077】
次に、送信端末200が、受信端末240に対して、TCPを用いてファイルデータを転送する場合の動作について、図5のシーケンス図を用いて説明する。
【0078】
送信端末200は、自身を操作するユーザからの指示、若しくは内部パケット網上の他端末からの制御によって、インターネット上のサーバ、ここでは外部パケット網上の受信端末240へのファイルアップロードが指示される(S107参照)。
【0079】
指示を受けた送信端末200は、開始するサービスの内容、つまりファイル転送であること、及びサービスの相手先、つまり受信端末240のアドレス情報(IPアドレス及びポート番号)、をサービス種別判定部205へ通知する。この通知を受けたサービス種別判定部205は、TCP設定情報格納部203からファイル転送サービスに関する設定を取得する(S108参照)。ここで、図4に示すサービス種別毎のTCP送信制御情報から、ファイル転送の場合特別な設定は行わず、再送タイムアウト時間の最小値はデフォルトの値を用いることとなっている。このため、TCP宛先キャッシュ制御部206への指示は行わず、TCPを用いた受信端末240へのファイル転送のサービスを開始する(S109、S110参照)。
【0080】
この結果、受信端末240へのファイル転送サービスにおいては、受信端末240のIPアドレス、及びサービスに用いるプロトコル番号に対して特別な設定が行われない状態で、従来のTCPと同様の再送処理パラメータ(許可される最大のパケットの順序入れ替わり数、再送タイムアウトの最小値)が用いられる。
【0081】
以上、送信端末200が、内部パケット網上の受信端末210に対して、TCPを用いて映像や音声等のストリーミング配信を行う場合、及び外部パケット網上の受信端末240に対して、TCPを用いてファイルデータを転送する場合の動作について説明した。
【0082】
次に、送信端末200が、端末からメッセージを受けた場合に行われるネットワーク種別判定(S102)と、サービス開始時に行われるサービス種別判定(S105、S107)の内部処理フローを、図6及び図7を用いて詳細に説明する。
【0083】
図6及び図7は、送信端末200の内部処理を示すフローチャートである。
【0084】
図6に示すように、ステップS11では、送信端末200は、受信端末210からのパケットを受信する。
【0085】
ステップS12では、送信端末200は、受信端末210のネットワーク種別が判定可能かどうかの判断を行い、判定が不可能であると判断した場合は処理を終了する。ここでは受信端末260から受信したパケットがUPnPのサービスディスカバリメッセージであることから、受信端末210が内部パケット網220上にあると判断する(ステップS12のYES)。
【0086】
ステップS13では、送信端末200は、TCP設定情報格納部203の内容から、受信端末210のネットワーク種別に該当するTCP送信制御情報が存在するかどうかを確認し、該当するTCP送信制御情報が存在しない場合には処理を終了する。ここでは受信端末210のネットワーク種別に該当するTCP送信制御情報が存在すると判断する(ステップS13のYES)。
【0087】
ステップS14では、送信端末200は、TCP設定情報格納部203に内部パケット網220に該当する情報としてREORDERINGの値を1に設定する必要があるため、この内容をTCP宛先キャッシュとして設定して本フローを終了する。
【0088】
図7に示すように、ステップS21では、送信端末200は、受信端末210からの要求若しくは自端末のユーザの指示によって、TCP送信によるサービスの開始指示を受け付ける。
【0089】
ステップS22では、送信端末200は、開始するサービスの種別に該当するTCP送信制御情報が存在するか否かをTCP設定情報格納部203の内容から判断する。送信端末200は、開始するサービスの種別に該当するTCP送信制御情報が存在する場合は、ステップS23に進み、開始するサービスの種別に該当するTCP送信制御情報が存在しない場合は本フローを終了する。
【0090】
ここでは、受信端末210からのコンテンツ取得要求(図5のS104参照)を受けてストリーミングサービスを開始する。
【0091】
ステップS23では、送信端末200は、TCP設定情報格納部203からRTO_MINの値を取得し、この内容をTCP宛先キャッシュとして設定する。また、送信端末200は、自端末のユーザからの指示を受けて受信端末240へのファイルダウンロードサービスを開始する場合には、TCP設定情報格納部203を参照することによって設定する内容がないことが分かるため、何もせず処理を終了する。
【0092】
以上詳細に説明したように、本実施の形態によれば、送信端末200(TCP送信制御装置)のTCP宛先キャッシュ制御部206は、受信端末210が内部パケット網220に位置する場合に、受信端末210との間で確立するTCPコネクションで用いられるTCP送信制御情報を、内部パケット網220向けに設定するので、送信側が、通信相手端末が属するパケット網に応じて適切なTCP送信制御情報を設定し、効率的なTCP通信を行うことができる。
【0093】
また、TCP宛先キャッシュ制御部206が、TCPデータ送信で実現されるサービス種別に応じて前記TCP送信制御情報を設定するので、送信側が、通信相手端末が属するパケット網及び通信相手端末との通信種別に応じて適切なTCP送信制御情報を設定し、効率的なTCP通信を行うことができる。
【0094】
また、NW種別判定部204が、受信端末からの機器連携メッセージの受信から判断するので、送信側が、受信端末からの指示パケットを要することなく、通信相手端末が属するパケット網に応じて適切なTCP送信制御情報を設定し、効率的なTCP通信を行うことができる。
【0095】
また、NW種別判定部204が、受信端末からの機器連携メッセージを受信して受信端末が内部パケット網上に存在するか否かを判定するので、送信側が、受信端末からの指示パケットを要することなく、通信相手端末が属するパケット網に応じて適切なTCP送信制御情報を設定し、効率的なTCP通信を行うことができる。
【0096】
また、TCP送信制御情報が再送タイムアウト時間の最小値であるようにしたことで、同一パケット網におけるTCPデータの再送待ち時間を大幅に短縮することができる。
【0097】
また、TCP送信制御情報が許容される最大のパケット順序入れ替わり数であるように設定したことで、同一パケット網におけるTCPデータの再送待ち時間を大幅に短縮することができる。
【0098】
このように、本実施の形態では、受信端末210との間で行われる通信処理及び実現するサービス内容から、内部パケット網220上にある受信端末260へのストリーミングを行うために最適なTCPの再送処理パラメータを設定することが可能となる。その結果、送信端末200から受信端末210へのTCPを用いたストリーミングサービスにおいて、パケットロスト発生時の再送処理の高速化を実現することができる。
【0099】
以上の説明は本発明の好適な実施の形態の例証であり、本発明の範囲はこれに限定されることはない。
【0100】
上記実施の形態では、TCP送信制御情報として、再送タイムアウト時間(RTO)と許可される最大のパケット順序入れ替わり数(REORDERING)のみを扱ったが、TCPの宛先キャッシュ機能で設定できる他のパラメータを設定してもよい。例えば、受信端末210への送信では、スロースタート閾値(SSTHRESH)の初期値として通常よりも大きな値を設定する。これにより、帯域が広くかつパケットロスの発生率が低い内部パケット網220上の通信において、TCPスロースタートによるスループット上昇を早めることが可能となる。
【0101】
また、本実施の形態では、ネットワーク種別判定を行うタイミングを受信端末260からのパケット受信時としたが、他のタイミングでネットワーク種別判定を行ってもよい。例えばTCP送信開始時に、自端末若しくは自端末が使用するゲートウェイの保持するルーティングテーブルから、ホップ数(Metric値)が一定数以下の場合に、送信先が内部パケット網220上の端末であると判断してもよい。あるいは送信先アドレスが自端末と同じサブネットであることから、送信先が内部パケット網220上の端末であることを判断してもよい。
【0102】
また、本実施の形態では、ネットワーク種別判定とサービス種別判定を異なるタイミングで行う形態をとったが、これらの判定が同時に行われてもよい。
【0103】
また、本実施の形態では、送信端末200と受信端末260の間でのサービス開始時にTCP送信制御情報を設定する形態を取ったが、間欠的にTCPトラフィックが発生するようなサービスの場合、TCPトラフィック発生時に毎回TCP送信制御情報を設定する形態をとってもよい。
【0104】
例えば、HTTPを用いたストリーミングでは、送信端末200は通常、数百ms程度の一定区間毎にまとまったデータを送信し、そのデータサイズの送信後は次の区間まで送信を停止するという動作を繰り返す。このようなサービスの場合、ある区間でのデータ転送開始時と、次の区間でのデータ転送の開始時とでは、その間にTCP送信制御情報が再計算されてしまうため、異なる値が用いられることになる。一例を挙げると、連続したデータ転送中は、送信側TCPスタックはパケットロスが発生しない限り徐々に輻輳ウインドウサイズを上昇さる。逆にデータ転送終了後の無通信区間では、送信側TCPスタックは輻輳ウインドウサイズを徐々に減らす(Congestion Window Validation)といった処理が行うのが一般的である。
【0105】
そのため、各区間の送信開始のタイミングで輻輳ウインドウが大きくなりすぎているために、送信端末200から受信端末260に対して、バースト的に大量のデータが受信側に送られたり、逆に輻輳ウインドウが小さくなりすぎているために想定したスループットが得られないといった問題が発生することが考えられる。
【0106】
図8は、上記のようなHTTPを用いたストリーミングにおける間欠トラフィックを説明する図である。30Mbpsストリーミングの場合を例に採る。図8(a)は、30Mbpsストリーミングの場合に、500ms間隔で約1920Kbyteのデータを間欠的に送信する例、図8(b)は図8(a)のデータ送信状況の詳細を示す。
【0107】
図8に示すように、HTTP(Hyper Text Transfer Protocol)を用いたストリーミングでは、通常一定間隔毎(500ms等)にある程度まとまったデータを送信し、そのデータサイズの送信後は次のタイミングまで送信を停止するという動作を繰り返す。そのため、各送信タイミングでは、前回終了時点でのウインドウサイズ分のデータが一度に送られることになり、受信側はバースト的にパケットを受け取ることになる。例えば図8(b)a.に示すように、送信側では、前回終了時点のWS分のパケットを連続送出することが有り得る。この場合、図8(b)b.に示すように、受信側では、大量のパケットを連続で送りつけられることにより、処理負荷が増大し、AV再生機能等に影響を与えることが考えられる。
【0108】
本発明を、ストリーミングにおける間欠トラフィックに応用する場合、図1において、送信端末200と受信端末260の間でのサービス開始時に設定されるTCP送信制御情報を、各区間の送信開始のタイミングで毎回設定することにより、適切な設定を反映した状態で各区間のTCP送信を開始することができる。
【0109】
この設定を実施する場合には、機器連携サービス制御部202が毎回NW種別判定部204及びサービス種別判定部205を介してTCP宛先キャッシュ制御部に設定内容を指示する形態を取ってもよいし、NW種別判定部204とサービス種別判定部205に初回の設定内容を機器連携サービス制御部202に通知する機能を追加することにより、2回目以降の設定では、機器連携サービス制御部202が通知された設定内容を直接TCP宛先キャッシュ制御部206に指示する形態を取ってもよい。
【0110】
このようにサービスの開始時だけでなく、TCPトラフィックが発生するタイミングで、毎回TCP送信制御情報を設定する形態を取ることにより、前述のような問題を回避し、HTTPによるストリーミングやWebサービスのように間欠的なトラフィックを発生させるサービスに対して適切なTCP送信制御を実現することが可能となる。
【0111】
また、TCP送信制御情報が輻輳ウインドウサイズ及びスロースタート閾値であるように設定したことで、同一パケット網上で間欠的に発生するTCP送信において、バースト的なパケット送信を防ぎ、かつ適切なスループットを確保することが可能となる。
【0112】
また、本実施の形態ではTCP送信制御装置及びTCP送信制御方法という名称を用いたが、これは説明の便宜上であり、装置の名称は送信端末装置、サーバ端末、通信システム、また方法の名称は送信制御方法等であってもよいことは勿論である。
【0113】
また、上記TCP送信制御装置を構成する各部、例えばネットワークプロトコル制御部の種類、その数及び接続方法などはどのようなものでもよい。
【0114】
また、以上説明したTCP送信制御方法は、このTCP送信制御方法を機能させるためのプログラムでも実現される。このプログラムはコンピュータで読み取り可能な記録媒体に格納されている。
【0115】
また、送信端末200の各機能ブロックは、集積回路であるLSIとして実現されてもよい。これらは個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されてもよい。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
【0116】
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用してもよい。
【0117】
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適応等が可能性としてありえる。
【0118】
本発明を詳細にまた特定の実施態様を参照して説明したが、本発明の精神と範囲を逸脱することなく様々な変更や修正を加えることができることは当業者にとって明らかである。
【産業上の利用可能性】
【0119】
本発明に係るTCP送信制御装置及びTCP送信制御方法は、ホームNW等の内部パケット網においてTCPを用いたストリーミングサービス行う場合の、TCP送信処理の効率化を実現する効果を有し、TCP/IP通信機能を有した家電機器等に対して有効である。また、車載LAN内に接続されTCP/IP通信を行う車載通信機器、家庭内ネットワーク用通信インタフェースを搭載した携帯電話等の用途にも応用できる。
【図面の簡単な説明】
【0120】
【図1】本発明の実施の形態に係るTCP送信制御装置が用いられる通信システムの構成を示す図
【図2】本実施の形態に係るTCP送信制御装置の構成を示す図
【図3】本実施の形態に係るTCP送信制御装置のネットワーク種別毎のTCP送信制御情報の設定例を示す図
【図4】本実施の形態に係るTCP送信制御装置のサービス種別毎のTCP送信制御情報の設定例を示す図
【図5】本実施の形態に係るTCP送信制御装置の通信システムの動作を示す制御シーケンス図
【図6】本実施の形態に係るTCP送信制御装置の内部処理を示すフロー図
【図7】本実施の形態に係るTCP送信制御装置の内部処理を示すフロー図
【図8】本実施の形態に係るTCP送信制御装置のストリーミングにおける間欠トラフィックを説明する図
【図9】従来のデータ通信システムの構成を示す図
【図10】従来のホームネットワークシステムの構成を示す図
【図11】従来のTCPを用いたタイムアウトによる再送処理動作を示す制御シーケンス図
【図12】従来のTCPを用いた早期再送機能による再送処理動作を示す制御シーケンス図
【図13】従来のNW種別に応じた送信側再送タイムアウト時間の制御を説明する図
【符号の説明】
【0121】
100 通信システム
200 送信端末
201 ユーザインターフェース制御部
202 機器連携サービス制御部
203 TCP設定情報格納部
204 ネットワーク種別判定部
205 サービス種別判定部
206 TCP宛先キャッシュ制御部
207 ネットワークプロトコル制御部
208 ネットワークインターフェース制御部
210,240,260 受信端末
220 内部パケット網
230 ホームNW
250 外部パケット網
270 パケット網


【特許請求の範囲】
【請求項1】
パケット網を介して受信端末に対してTCPデータ送信を行うTCP送信制御装置であって、
前記受信端末が内部パケット網上に存在するか否かを判定する受信ネットワーク判定手段と、
前記受信端末が前記内部パケット網に位置する場合に、前記受信端末との間で確立するTCPコネクションで用いられるTCP送信制御情報を、前記内部パケット網向けに設定するTCP送信制御情報設定手段と、
を備えるTCP送信制御装置。
【請求項2】
前記TCP送信制御情報設定手段は、前記TCPデータ送信により実現されるサービス種別に基づいて前記TCP送信制御情報を設定する請求項1記載のTCP送信制御装置。
【請求項3】
前記TCP送信制御情報設定手段は、サービス開始時、又は間欠トラフィック発生時に、前記TCP送信制御情報を設定する請求項1記載のTCP送信制御装置。
【請求項4】
前記受信ネットワーク判定手段は、前記受信端末からの機器連携メッセージを受信して前記受信端末が内部パケット網上に存在するか否かを判定する請求項1記載のTCP送信制御装置。
【請求項5】
前記受信ネットワーク判定手段は、前記受信端末のアドレスのルーティング情報を基に前記受信端末が内部パケット網上に存在するか否かを判定する請求項1記載のTCP送信制御装置。
【請求項6】
前記内部パケット網は、単独又は少数のサブネットを含む構内のパケット網である請求項1記載のTCP送信制御装置。
【請求項7】
前記TCP送信制御情報は、TCPの輻輳制御アルゴリズムに関係しTCPの送信側が制御する設定情報、かつ宛先キャッシュ機能により変更可能な情報である請求項1記載のTCP送信制御装置。
【請求項8】
前記TCP送信制御情報は、再送タイムアウト時間の最小値である請求項1記載のTCP送信制御装置。
【請求項9】
前記TCP送信制御情報は、許容される最大のパケット順序入れ替わり数である請求項1記載のTCP送信制御装置。
【請求項10】
前記TCP送信制御情報は、輻輳ウインドウサイズである請求項1記載のTCP送信制御装置。
【請求項11】
前記TCP送信制御情報は、スロースタート閾値である請求項1記載のTCP送信制御装置。
【請求項12】
パケット網を介して受信端末に対してTCPデータ送信を行うTCP送信制御方法であって、
前記受信端末が内部パケット網上に存在するか否かを判定するステップと、
前記受信端末が前記内部パケット網に位置する場合に、前記受信端末との間で確立するTCPコネクションで用いられるTCP送信制御情報を、前記内部パケット網向けに設定する設定ステップと
を有するTCP送信制御方法。
【請求項13】
前記設定ステップでは、前記TCPデータ送信により実現されるサービス種別に基づいて前記TCP送信制御情報を設定する請求項12記載のTCP送信制御方法。
【請求項14】
前記設定ステップでは、サービス開始時、又は間欠トラフィック発生時に、前記TCP送信制御情報を設定する請求項12記載のTCP送信制御方法。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2010−35033(P2010−35033A)
【公開日】平成22年2月12日(2010.2.12)
【国際特許分類】
【出願番号】特願2008−196874(P2008−196874)
【出願日】平成20年7月30日(2008.7.30)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】