説明

TCPセッション管理方法及びTCPプロキシ装置

【課題】複数のセッション間でウィンドウ用メモリを共通化した場合であっても、共通メモリ領域におけるバッファあふれの発生を防止でき、かつ、メモリ利用効率の向上を図ることができるTCPセッション管理方法を提供する。
【解決手段】各セッションのウィンドウ用として複数のセッションに対して共通にコンテンツ単位で設定されるメモリ領域である共通バッファ31と、各セッションごとにそのセッションのACK番号とウィンドウサイズとを管理するウィンドウ管理テーブル32とを用いる。ウィンドウ管理テーブル32を参照して、共通バッファ31内に存在する複数のセッションにおける最大となるACK番号と最小となるACK番号との差に基づいて残メモリ量を算出し、しきい値を下回るときに、ACK番号が最小であるセッションを切断する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、1対多ライブ型のデータ配信サービスに適したセッション管理方法と、そのようなセッション管理方法によってセッションを管理するプロキシ装置と、に関する。
【背景技術】
【0002】
昨今、IP(インターネット・プロトコル;Internet Protocol)網を用いて、多数のユーザに対してラジオ番組を配信したりスポーツ中継などのTV(テレビジョン)ライブ配信を行ったりするライブ配信型あるいはライブストリーミング型のIPデータサービスが普及しつつある。これらのサービスは、単一のデータ配信サーバから多数のユーザー端末に対してほぼ同時に同一コンテンツを配信しようとするものである。そしてこれらのサービスは、ネットワーク層でのプロトコルとしてIPを用いるとともに、トランスポート層のプロトコルとして、RFC 793(非特許文献1)に規定されたTCP(伝送制御プロトコル:Transmission Control Protocol)を用いている。したがって、このようなIPデータサービスでは、ユーザ端末とデータ配信サーバとの間にTCPセッションを確立し、データ配信サーバのメモリ上に、TCPセッションごとにそのセッションの最大ウィンドウサイズ分の領域を確保し、TCPヘッダに記録されているシーケンス番号とACK(肯定確認応答;acknowledgement)番号を管理しながらパケットの再送制御を行っている。多数のユーザへのライブ型データ配信を前提とすると、IPネットワーク上においてユーザ端末とデータ配信サーバとの間にTCPプロキシ装置が設けられ、TCPプロキシ装置を介してユーザ端末へのデータ配信が行われる場合も多いが、その場合は、TCPプロキシ装置と各ユーザ端末との間でTCPセッションが確立され、TCPプロキシ装置のメモリ上に上記と同様にセッションごとに最大ウィンドウサイズ分の領域が確保され、パケット再送制御が行われることになる。
【0003】
多数のユーザ端末に対してセッションを確立してライブ型データ配信を行うという点では、ライブ配信用のデータ配信サーバもTCPプロキシ装置も変わるところがなく、TCPプロキシ装置に、さらに、ライブ型データ配信に適した形態にデータを加工する機能や、ユーザが配信コンテンツを選択できるようにする機能、ユーザアカウントの管理機能を設けたものがデータ配信サーバであるので、以下では、ライブ型データ配信に用いるTCPプロキシ装置について説明する。
【0004】
図1は、一般的なTCPプロキシ装置のハードウェア構成を示すブロック図である。TCPプロキシ装置10は、IP網であるネットワーク20を介して多数のユーザ端末21と接続してTCPセッションを確立するものである。TCPプロキシ装置10には、高速かつ広帯域のバス11と、ネットワーク20との接続に用いられるネットワークインタフェース12と、バス11とネットワークインタフェース12との間に設けられてネットワーク20との通信を制御するネットワークコントローラ13と、プログラムやデータなどを格納するディスク装置14と、バス11とディスク装置14との間に設けられてディスク装置14に対するアクセス制御などを行うディスクコントローラ15と、バス11に接続するメモリ16と、バス11に接続するCPU(中央処理装置)17と、を備えている。TCPセッションごとのウィンドウ用バッファはメモリ16上に確保され、また、CPU17は、各TCPセッションについてのTCPステート管理を行う。
【0005】
例えば、ネットワークインタフェース12の帯域幅が10Gbps(ギガビット/秒)であり、コンテンツの配信に必要な帯域幅が1ユーザあたり(すなわち1セッションあたり)100kbps(キロビット/秒)であるとする。10Gbps/100kbps=100000であるから、10Gbpsのネットワークインタフェース12を用いれば、必要帯域が100kbpsであるコンテンツを10万人のユーザが同時に視聴できることになる。このようにライブ型データ配信により10万ユーザが同じコンテンツを同時視聴する場合、各セッションごとに必要なウィンドウサイズが64KB(キロバイト)であるとすると、全セッションについてのウインドウサイズ分のデータを貯めるためのメモリ量は、64KB×100000=6.4GB(ギガバイト)であって、メモリ16の容量としては少なくとも6.4GBが必要となる。各セッションがウィンドウスケーリングを適用している場合には、10GB以上のメモリを必要とする。高速なCPU17や高速なバス11を備えることにより10万セッションに対してTCPのステート管理が可能な場合、この必要メモリサイズの大きさが問題となる。
【0006】
ところでライブ型データ配信の場合、ユーザごとに全く異なるデータを送信するわけではなく、各TCPセッションでのRTT(往復伝搬遅延時間;Round-Trip Time)差のずれこそ生じるものの、同一コンテンツのデータをほぼ同じタイミングで各ユーザがダウンロードしている。そこで、セッション単位でメモリ領域を確保するのではなくてコンテンツ単位でメモリ領域を確保し、この確保されたメモリ領域を複数のセッションで共通に使用するものとして各セッションからこの共通メモリ領域を参照し、セッションごとにシーケンス番号とACK番号を管理して再送制御を行えば、必要メモリサイズが大きくなりすぎるという問題は回避することができる。
【0007】
しかしながら、このようにデータを保持するメモリ領域を複数のセッション間で共通化した場合、ダウンロード速度あるいはデータ転送速度の差により共通メモリ領域においてバッファあふれが発生する可能性がある。例えば、ダウンロード速度の遅いセッションAが10秒前のデータを視聴中である場合、セッションAのために10秒前から現時点までのデータをメモリ上に保持する必要があり、その結果、確保したメモリ領域を使い果して、他のセッションに新しいデータを提供できない問題が生じる。
【先行技術文献】
【非特許文献】
【0008】
【非特許文献1】RFC 793 "Transmission Control Protocol",IETF (Internet Engineering Task Force),1981年9月
【発明の概要】
【発明が解決しようとする課題】
【0009】
上述のように、トランスポート層のプロトコルとしてTCPを用いてライブ型のデータ配信を行う際に複数セッションでウィンドウ用メモリを共通に用いることは、同時配信数すなわちセッション数が大きいときにメモリサイズが大きくなることを抑制することに効果があるが、接続相手となるユーザ端末ごとのデータ転送速度差に伴って共通メモリ領域におけるバッファあふれが発生するおそれがある。
【0010】
そこで本発明の目的は、複数のセッション間でウィンドウ用メモリを共通化した場合であっても、共通メモリ領域におけるバッファあふれの発生を防止でき、かつ、メモリ利用効率の向上を図ることができ、これによってライブ型データ配信サービスにおける収容ユーザ数を増加させることができるTCPセッション管理方法と、そのようなTCPセッション管理方法を実行するTCPプロキシ装置とを提供することになる。
【課題を解決するための手段】
【0011】
本発明の第1のTCPセッション管理方法は、TCPにより配信すべきコンテンツに対応する複数のセッションを管理するTCPセッション管理方法であって、各セッションのウィンドウ用として複数のセッションに対して共通にコンテンツ単位で設定されるメモリ領域である共通バッファと、各セッションごとにそのセッションのACK番号とウィンドウサイズとを管理するウィンドウ管理テーブルとを保持し、ウィンドウ管理テーブルを参照して、共通バッファ内に存在する複数のセッションにおける最大となるACK番号をMax_ACKとし、最小となるACK番号をMin_ACKとし、最大セグメント長の倍数である所定の数をαとし、ウィンドウサイズをWとして、Max_ACKとMin_ACKとの差を用いて、{確保メモリサイズ<(Max_ACK−Min_ACK)+W+α}を満たすときに、共通バッファ内に存在する複数のセッションのうちACK番号が最小であるセッションを切断する。
【0012】
本発明の第2のTCPセッション管理方法は、TCPにより配信すべきコンテンツに対応する複数のセッションを管理するTCPセッション管理方法であって、各セッションのウィンドウ用として複数のセッションに対して共通にコンテンツ単位で設定されるメモリ領域である共通バッファと、各セッションごとにそのセッションのACK番号とウィンドウサイズとを管理するウィンドウ管理テーブルとを保持し、ウィンドウ管理テーブルを参照して、共通バッファ内に存在する複数のセッションに関してセッションごとに往復伝搬遅延時間を測定し、複数のセッションのうちの最も大きいACK番号を有するセッションと最も小さいACK番号を有するセッションとの間での往復伝搬遅延時間の差とウィンドウサイズの差を求め、往復伝搬遅延時間の差をΔRTTとし、ウィンドウサイズの差をΔWとし、時間に関する予め定めたしきい値をβとして、{(残メモリ量÷ΔW)×ΔRTT<β}を満たすときに、共通バッファ内に存在する複数のセッションのうちACK番号が最小であるセッションを切断する。
【0013】
本発明の第1のTCPプロキシ装置は、ネットワークに接続し、コンテンツに対応する複数のセッションを管理して、ネットワークに接続した各端末に対してTCPによりコンテンツを配信するTCPプロキシ装置であって、各セッションのウィンドウ用として複数のセッションに対して共通にコンテンツ単位で設定されるメモリ領域である共通バッファと、各セッションごとにそのセッションのACK番号とウィンドウサイズとを管理するウィンドウ管理テーブルと、共通バッファ内のデータを各端末に送信するためにウィンドウ管理テーブルを参照してTCPによるプロトコル処理を実行するTCP処理部と、ウィンドウ管理テーブルを参照して、共通バッファ内に存在する複数のセッションにおける最大となるACK番号をMax_ACKとし、最小となるACK番号をMin_ACKとし、最大セグメント長の倍数である所定の数をαとし、ウィンドウサイズをWとして、Max_ACKとMin_ACKとの差を用いて、{確保メモリサイズ<(Max_ACK−Min_ACK)+W+α}を満たすときに、共通バッファ内に存在する複数のセッションのうちACK番号が最小であるセッションを切断するようにTCP処理部に指示するセッション切断判定部と、を有する。
【0014】
本発明の第2のTCPプロキシ装置は、ネットワークに接続し、コンテンツに対応する複数のセッションを管理して、ネットワークに接続した各端末に対してTCPによりコンテンツを配信するTCPプロキシ装置であって、各セッションのウィンドウ用として複数のセッションに対して共通にコンテンツ単位で設定されるメモリ領域である共通バッファと、各セッションごとにそのセッションのACK番号とウィンドウサイズとを管理するウィンドウ管理テーブルと、共通バッファ内のデータを各端末に送信するためにウィンドウ管理テーブルを参照してTCPによるプロトコル処理を実行するTCP処理部と、共通バッファ内に存在する複数のセッションに関してセッションごとに、TCP処理部を介して往復伝搬遅延時間を測定するRTT測定部と、ウィンドウ管理テーブルを参照し、RTT測定部での測定結果に基づき、複数のセッションのうちの最も大きいACK番号を有するセッションと最も小さいACK番号を有するセッションとの間での往復伝搬遅延時間の差とウィンドウサイズの差を求め、往復伝搬遅延時間の差をΔRTTとし、ウィンドウサイズの差をΔWとし、時間に関する予め定めたしきい値をβとして、{(残メモリ量÷ΔW)×ΔRTT<β}を満たすときに、共通バッファ内に存在する複数のセッションのうちACK番号が最小であるセッションを切断するようにTCP処理部に指示するセッション切断判定部と、を有する。
【発明の効果】
【0015】
本発明では、複数のTCPセッションでウィンドウ用メモリを共通化した場合に、ある判断基準を用いて低速セッションの切断を行うようにする。その結果、共通メモリ内から古いデータを削除することが可能となり、バッファあふれを未然に防止することができるようになるとともに、TCPプロキシ装置やライブ型データ配信サーバにおけるメモリ利用効率が向上する。切断したセッションについては、再度、セッションを確立することもできる。
【図面の簡単な説明】
【0016】
【図1】TCPプロキシ装置の一般的なハードウェア構成を示すブロック図である。
【図2】本発明の第1の実施形態のTCPプロキシ装置の要部の論理的な構成を示すブロック図である。
【図3】メモリ管理を説明する図であって、(a)は従来のTCPプロキシ装置におけるメモリ管理を示し、(b)は本発明に基づくTCPプロキシ装置でのメモリ管理を示す図である。
【図4】本発明の第2の実施形態のTCPプロキシ装置の要部の論理的な構成を示すブロック図である。
【図5】TCPプロキシ装置の動作の概要を説明する図である。
【発明を実施するための形態】
【0017】
次に、本発明の好ましい実施の形態について、図面を参照して説明する。
【0018】
本発明に基づくTCPセッション管理方法は、トランスポート層のプロトコルとしてTCPを用いてコンテンツを配信する1対多ライブ型のデータ配信サービスに適したものである。TCPを用いた場合、複数のユーザ端末に対してほぼ同じタイミングで同じコンテンツを配信する場合、各ユーザ端末に対応した複数のTCPセッションを管理する必要がある。そこで本発明に基づくTCPセッション管理方法では、セッションごとにウィンドウ用バッファを設定することに伴うメモリサイズの増大を防ぐために、各セッションのウィンドウ用として複数のセッションに対して共通にコンテンツ単位で設定されるメモリ領域を共通バッファとして用いる。そして、配信すべきコンテンツに対応する複数のセッションを管理するために、さらに、各セッションごとに当該セッションのACK番号とウィンドウサイズとを管理するウィンドウ管理テーブルを使用し、共通バッファでのバッファあふれを防ぎメモリ利用効率を高めるために、ある判断基準を用いて、ダウンロード速度(転送速度)が低速であるセッションを切断し、共通バッファにおいてその切断されたセッションのみに使用されていた領域を解放して新たなデータを書き込めるようにする。
【0019】
セッション切断のための判断基準は、確保したメモリ利用率に従うものであるが、具体的には、例えば、ACK番号しきい値設定方式と、ダウンロード速度差しきい値設定方式がある。ACK番号しきい値設定方式では、ウィンドウ管理テーブルを参照することにより共通バッファ中の各セクションのACK番号を調べ、これらのACK番号のうちの最大のものと最小のものとの差から残メモリ量を算出し、しきい値と比較して、残メモリ量がしきい値を下回った時に、低速セクションすなわちACK番号が最小であるセクションを切断するものである。一方、ダウンロード速度差しきい値設定方式は、ウィンドウ管理テーブルを参照し、セクションごとの往復伝搬遅延時間(RTT)を調べ、現状のデータ送信状況の下で残メモリ量が何秒後にゼロになってしまうかを予測して、ゼロとなるまでの時間がしきい値を下回る場合に、ACK番号が最小であるセクションを切断するものである。
【0020】
以下、このようなTCPセッション管理方法を実行する本発明のTCPプロキシ装置について説明する。なお、上述したように、多数のユーザ端末に対してセッションを確立してライブ型データ配信を行うという点では、ライブ配信用のデータ配信サーバもTCPプロキシ装置も変わるところがないので、データ配信サーバそれ自体も本発明のTCPプロキシ装置の範疇に含まれるものである。
【0021】
図2は、本発明の第1の実施形態のTCPプロキシ装置における要部の論理的な構成を示すブロック図である。本実施形態のTCPプロキシ装置は、ハードウェア構成としては図1に示したものと同様のものであるが、セッション切断のための判断基準としてACK番号しきい値設定方式を用いて本発明に基づくTCPセッション管理方法を実行するために、論理的構成として、共通バッファ31、ウィンドウ管理テーブル32、セッション切断判定部33、TCP処理部34及びIP処理部35を備えている。共通バッファ31及びウィンドウ管理テーブル32は、図1に示したハードウェア構成におけるメモリ16上の領域として確保され、セッション切断判定部33、TCP処理部34及びIP処理部35は、CPU17がソフトウェアプログラムを実行することによって実現されるものである。セッション切断判定部33、TCP処理部34及びIP処理部35をそれぞれハードウェア構成により実現することもできる。
【0022】
共通バッファ31は、ソケットバッファとして、各セッションのウィンドウ用として複数のセッションに対して共通にコンテンツ単位で設定されるバッファ領域であり、例えばデータ配信サーバからのコンテンツのデータが供給される。ウィンドウ管理テーブル32は、各セッションごとにそのセッションのACK番号とウィンドウサイズとを管理するテーブルである。
【0023】
TCP処理部34は、共通バッファ31内のデータを各端末に送信するためにウィンドウ管理テーブル32を参照してTCPによるプロトコル処理を実行し、生成したTCPセグメントをIP処理部34に送出する。IP処理部35は、TCP処理部34からのTCPセグメントをIPパケットに組み込んでネットワークインタフェースに送出し、これにより、各ユーザ端末にコンテンツのデータが配信されるようにする。
【0024】
セッション接断判定部33は、ウィンドウ管理テーブル32を参照して、共通バッファ31内に存在する複数のセッションにおける最大となるACK番号をMax_ACKとし、最小となるACK番号をMin_ACKとし、TCPにおける最大セグメント長(MSS)の倍数である所定の数をαとし、ウィンドウサイズをWとして、Max_ACKとMin_ACKとの差を用いて、{確保メモリサイズ<(Max_ACK−Min_ACK)+W+α}を満たすときに、共通バッファ31内に存在する複数のセッションのうちACK番号が最小であるセッションを切断するようにTCP処理部34に指示し、さらに切断したセッションのみに関係するメモリ領域を解放(クリア)するように共通バッファ31に指示する。
【0025】
ここでαは、低速セッションを切断する際のしきい値に対応するものである。αをMSSの倍数としていることから、αは、TCPセグメントが最長であるという最悪条件のもとでTCPセグメント何個分の余裕をもたせて低速セッションを切断するかを示していると言える。ウィンドウサイズは、セッションごとに異なる可能性があるが、例えば、ウィンドウサイズが最大のセッションのウィンドウサイズをWとすればよい。
【0026】
図3は、セッション単位でメモリを確保する従来のTCPプロキシ装置におけるメモリ管理と本発明のTCPプロキシ装置におけるメモリ管理とを対比して示している。
【0027】
図3(a)に示すように、従来のTCPプロキシ装置では、セッションごとにウィンドウ用メモリ領域を確保する必要があり、概算で言えば、ウィンドウサイズ×セッション数だけのメモリ領域が必要となり、セッション数が多大である場合には、極めて多量のメモリ領域を必要とする。これに対して本発明に基づくプロキシ装置では、図3(b)に示すように、ライブ型配信を行うことを前提としてコンテンツごとにメモリ領域を確保する。したがって、配信すべきコンテンツが1つであるとすると、低速セッション切断に用いるしきい値にも依存するが、TCPプロキシ装置で必要となるバッファサイズを、従来のものと比較して、{(同一映像視聴ユーザ数−1)×TCPウィンドウサイズ}だけ削減することが可能となり、1セッションあたりに必要なメモリサイズ削減による初期コストの低下・低電力化が期待できる。
【0028】
図3には、ウィンドウ管理テーブル32の内容の一例も示されている。ここではユーザ端末ごとにTCPプロキシ装置からTCPセッションが確立されるとして、ユーザ端末ごとに、すなわちセッションごとに、そのセッションの現在のACK番号とウィンドウサイズとがウィンドウ管理テーブル32に格納されていることが示されている。また、図3(b)において、符号51で示した破線の矢印は、複数のセッション(図示した例ではセッション1〜3)の中で最大のACK番号と最小のACK番号との間のメモリ部分を示しており、第1の実施形態では、このメモリ部分でのメモリ容量を残メモリ量として算出し、セッション切断のための判断に用いている。
【0029】
次に、本発明の第2の実施形態のTCPプロキシ装置について説明する。図4は、本発明の第2の実施形態のTCPプロキシ装置の要部の論理的な構成を示すブロック図である。図4に示したTCPプロキシ装置は図2に示したものと同様のものであるが、セッション切断のための判断基準としてダウンロード速度差しきい値設定方法を用いるものであり、そのため、RTT測定部を備えるとともに、セッション切断判定部及びTCP処理部の動作の点で図2に示したものと異なっている。図4に示したTCPプロキシ装置においても、共通バッファ31及びウィンドウ管理テーブル32は、図1に示したハードウェア構成におけるメモリ16上の領域として確保され、セッション切断判定部36、TCP処理部37、IP処理部35及びRTT測定部38は、例えば、CPU17がソフトウェアプログラムを実行することによって、あるいはハードウェア構成によって実現されるものである。以下、図4に示すTCPプロキシ装置について、図2に示したものと異なる点を説明する。
【0030】
RTT測定部38は、共通バッファ31内に存在する複数のセッションに関してセッションごとに、TCP処理部37を介して往復伝搬遅延時間(RTT)を測定する。RTTの測定方法としては、スリー・ウェイ・ハンドシェーク・パケットを用いて実行する方法がある。あるいは、送信するデータパケット内のシーケンス番号とそのデータパケットを送信した時刻と、データパケットに対応して受信するACKパケット内のACK番号とそのACKパケットが到着した時刻を用い、最大セグメント長をMSSとして、{ACK番号>シーケンス番号+MSS}を満たすときの(受信時刻−送信時刻)をRTTとする方法がある。
【0031】
TCP処理部37は、共通バッファ31内のデータを各端末に送信するためにウィンドウ管理テーブル32を参照してTCPによるプロトコル処理を実行し、生成したTCPセグメントをIP処理部34に送出し、さらに、スリー・ウェイ・ハンドシェーク・パケットを用いてRTT測定を行う場合にはスリー・ウェイ・ハンドシェークの処理を実行し、データパケットと対応するACKパケットの時刻に応じてRTTを測定する場合には、必要な情報をRTT測定部38に伝達する。
【0032】
セッション切断判定部36は、ウィンドウ管理テーブル32を参照し、RTT測定部38での測定結果に基づき、複数のセッションのうちの最も大きいACK番号を有するセッションと最も小さいACK番号を有するセッションとの間での往復伝搬遅延時間の差(ΔRTT)とウィンドウサイズの差(ΔW)を求め、時間に関する予め定めたしきい値をβとして、{(残メモリ量÷ΔW)×ΔRTT<β}を満たすときに、共通バッファ31内に存在する複数のセッションのうちACK番号が最小であるセッションを切断するようにTCP処理部37に指示し、さらに切断したセッションのみに関係するメモリ領域を解放(クリア)するように共通バッファ31に指示する。
【0033】
図3(b)において符号52で示す破線の矢印は、現時点で未使用となっているメモリ部分を示しており、第2の実施形態では、この未使用部分があと何秒後に使い切られてしまうかを予想して、セッション切断のための判断に利用している。
【0034】
図5は、上述した各実施形態のTCPプロキシ装置をデータ配信サーバと複数のユーザ端末との間に配置した場合の動作を示している。ここで、サーバには複数の映像コンテンツ(例えば、ビデオ1とビデオ2)が格納されているものとする。図2及び図4ではTCPプロキシ装置におけるユーザ端末側へのセッションに関する構成のみが示されているが、図5では、配信サーバ側とのTCP処理及びユーザ端末側とのTCP処理の両方が示されている。図には示されていないが、ユーザのアカウント管理などのためにユーザ管理テーブルが設けられているものとする。
【0035】
ビデオ1及びビデオ2の両方についてソケットバッファ(共通バッファ)が設定されており、配信サーバ側との処理においては、IP処理、ヘッダを分類するクラシファイア処理及びTCP処理を経て、各コンテンツのデータが対応するソケットバッファに格納される。コンテンツの識別は、クラシファイアからHTTP Get requestパケットを抜き出し、HTTPヘッダ処理を行って含まれるURI(uniform resource identifier)に基づいて行うことができる。また、新規コンテンツの場合であれば、TCP処理において新規セッションを確立し、既存コンテンツであれば、TCPのいわゆる5タプル(5-tuple)とコンテンツ情報とをひもづける。
【0036】
ユーザ端末側との処理においては、まず、ユーザ端末からHTTP Get requestパケットが到着した際に、宛先IPアドレス、送信元IPアドレス及びURIを確認し、ユーザ管理テーブル内で設定されたアドレスであって、かつ、TCPプロキシ内に該当映像が存在する場合にそのユーザ端末をセッションに参加させる。そして、その時点からユーザ端末にライブ配信を行うために、現在のソケットバッファ内に存在する最も知さなシーケンス番号をSYN/ACKパケット内に記述してユーザ端末に送信する。これにより、ユーザは、その指定したコンテンツのライブ配信を受けられるようになる。
【0037】
なお、サーバが単一の映像のみを配信する場合には、ユーザ端末からSYNパケットをが到着した際に、その宛先IPアドレス及び送信元IPアドレスを確認し、ユーザ管理テーブル内で設定されたアドレスである場合にそのユーザ端末をセッションに参加させる。そして、その時点からユーザ端末にライブ配信を行うために、現在のソケットバッファ内に存在する最も知さなシーケンス番号をSYN/ACKパケット内に記述してユーザ端末に送信する。これにより、ユーザは、コンテンツのライブ配信を受けられるようになる。
【符号の説明】
【0038】
10 TCPプロキシ装置
11 バス
12 ネットワークインタフェース
13 ネットワークコントローラ
14 ディスク装置
15 ディスクコントローラ
16 メモリ
17 CPU
20 ネットワーク
21 ユーザ端末
31 共通バッファ
32 ウィンドウ管理テーブル
33,36 セッション切断判定部
34,37 TCP処理部
35 IP処理部
38 RTT測定部

【特許請求の範囲】
【請求項1】
TCPにより配信すべきコンテンツに対応する複数のセッションを管理するTCPセッション管理方法であって、
各セッションのウィンドウ用として前記複数のセッションに対して共通に前記コンテンツ単位で設定されるメモリ領域である共通バッファと、各セッションごとに当該セッションのACK番号とウィンドウサイズとを管理するウィンドウ管理テーブルとを保持し、前記メモリ領域において記憶されている、前記ACK番号からウィンドウサイズの範囲内のデータを各セッションに対して配布することを特徴とするTCPセッション管理方式。
【請求項2】
前記ウィンドウ管理テーブルを参照して、前記共通バッファ内に存在する複数のセッションにおける最大となるACK番号をMax_ACKとし、最小となるACK番号をMin_ACKとし、最大セグメント長の倍数である所定の数をαとし、ウィンドウサイズをWとして、Max_ACKとMin_ACKとの差を用いて、{確保メモリサイズ<(Max_ACK−Min_ACK)+W+α}を満たすときに、前記共通バッファ内に存在する複数のセッションのうちACK番号が最小であるセッションを切断する、請求項1に記載のTCPセッション管理方法。
【請求項3】
前記ウィンドウ管理テーブルを参照して、前記共通バッファ内に存在する複数のセッションに関してセッションごとに往復伝搬遅延時間を測定し、前記複数のセッションのうちの最も大きいACK番号を有するセッションと最も小さいACK番号を有するセッションとの間での往復伝搬遅延時間の差とウィンドウサイズの差を求め、前記往復伝搬遅延時間の差をΔRTTとし、前記ウィンドウサイズの差をΔWとし、時間に関する予め定めたしきい値をβとして、{(残メモリ量÷ΔW)×ΔRTT<β}を満たすときに、前記共通バッファ内に存在する複数のセッションのうちACK番号が最小であるセッションを切断する、請求項1に記載のTCPセッション管理方法。
【請求項4】
送信するデータパケット内のシーケンス番号と該データパケットを送信した時刻と、前記データパケットに対応して受信するACKパケット内のACK番号と該ACKパケットが到着した時刻を用い、最大セグメント長をMSSとして、{ACK番号>シーケンス番号+MSS}を満たすときの(受信時刻−送信時刻)を前記往復伝搬遅延時間とする、請求項3に記載のTCPセッション管理方法。
【請求項5】
ネットワークに接続し、コンテンツに対応する複数のセッションを管理して、前記ネットワークに接続した各端末に対してTCPにより前記コンテンツを配信するTCPプロキシ装置であって、
各セッションのウィンドウ用として前記複数のセッションに対して共通に前記コンテンツ単位で設定されるメモリ領域である共通バッファと、
各セッションごとに当該セッションのACK番号とウィンドウサイズとを管理するウィンドウ管理テーブルと、
前記共通バッファ内のデータを各端末に送信するために前記ウィンドウ管理テーブルを参照してTCPによるプロトコル処理を実行するTCP処理部と、
を有するTCPプロキシ装置。
【請求項6】
前記ウィンドウ管理テーブルを参照して、前記共通バッファ内に存在する複数のセッションにおける最大となるACK番号をMax_ACKとし、最小となるACK番号をMin_ACKとし、最大セグメント長の倍数である所定の数をαとし、ウィンドウサイズをWとして、Max_ACKとMin_ACKとの差を用いて、{確保メモリサイズ<(Max_ACK−Min_ACK)+W+α}を満たすときに、前記共通バッファ内に存在する複数のセッションのうちACK番号が最小であるセッションを切断するように前記TCP処理部に指示するセッション切断判定部をさらに有する、請求項5に記載のTCPプロキシ装置。
【請求項7】
前記共通バッファ内に存在する複数のセッションに関してセッションごとに、前記TCP処理部を介して往復伝搬遅延時間を測定するRTT測定部と、
前記ウィンドウ管理テーブルを参照し、前記RTT測定部での測定結果に基づき、前記複数のセッションのうちの最も大きいACK番号を有するセッションと最も小さいACK番号を有するセッションとの間での往復伝搬遅延時間の差とウィンドウサイズの差を求め、前記往復伝搬遅延時間の差をΔRTTとし、前記ウィンドウサイズの差をΔWとし、時間に関する予め定めたしきい値をβとして、{(残メモリ量÷ΔW)×ΔRTT<β}を満たすときに、前記共通バッファ内に存在する複数のセッションのうちACK番号が最小であるセッションを切断するように前記TCP処理部に指示するセッション切断判定部と、
を有する、請求項5に記載のTCPプロキシ装置。
【請求項8】
前記RTT測定部は、送信するデータパケット内のシーケンス番号と該データパケットを送信した時刻と、前記データパケットに対応して受信するACKパケット内のACK番号と該ACKパケットが到着した時刻を用い、最大セグメント長をMSSとして、{ACK番号>シーケンス番号+MSS}を満たすときの(受信時刻−送信時刻)を前記往復伝搬遅延時間とする、請求項7に記載のTCPプロキシ装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2013−34101(P2013−34101A)
【公開日】平成25年2月14日(2013.2.14)
【国際特許分類】
【出願番号】特願2011−169230(P2011−169230)
【出願日】平成23年8月2日(2011.8.2)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】