[go: up one dir, main page]

JP2013034101A - Tcp session management method and tcp proxy device - Google Patents

Tcp session management method and tcp proxy device Download PDF

Info

Publication number
JP2013034101A
JP2013034101A JP2011169230A JP2011169230A JP2013034101A JP 2013034101 A JP2013034101 A JP 2013034101A JP 2011169230 A JP2011169230 A JP 2011169230A JP 2011169230 A JP2011169230 A JP 2011169230A JP 2013034101 A JP2013034101 A JP 2013034101A
Authority
JP
Japan
Prior art keywords
session
ack
tcp
sessions
window
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.)
Withdrawn
Application number
JP2011169230A
Other languages
Japanese (ja)
Inventor
Kyota Hattori
恭太 服部
Akinori Isogai
彰則 磯貝
Isao Miyazawa
功 宮澤
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.)
NTT Inc
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2011169230A priority Critical patent/JP2013034101A/en
Publication of JP2013034101A publication Critical patent/JP2013034101A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

【課題】複数のセッション間でウィンドウ用メモリを共通化した場合であっても、共通メモリ領域におけるバッファあふれの発生を防止でき、かつ、メモリ利用効率の向上を図ることができるTCPセッション管理方法を提供する。
【解決手段】各セッションのウィンドウ用として複数のセッションに対して共通にコンテンツ単位で設定されるメモリ領域である共通バッファ31と、各セッションごとにそのセッションのACK番号とウィンドウサイズとを管理するウィンドウ管理テーブル32とを用いる。ウィンドウ管理テーブル32を参照して、共通バッファ31内に存在する複数のセッションにおける最大となるACK番号と最小となるACK番号との差に基づいて残メモリ量を算出し、しきい値を下回るときに、ACK番号が最小であるセッションを切断する。
【選択図】図2
A TCP session management method capable of preventing occurrence of buffer overflow in a common memory area and improving memory utilization efficiency even when a window memory is shared among a plurality of sessions. provide.
A window for managing a ACK number and a window size of each session for each session, and a common buffer 31 which is a memory area set in units of contents in common for a plurality of sessions as a window for each session The management table 32 is used. When the remaining memory amount is calculated based on the difference between the maximum ACK number and the minimum ACK number in a plurality of sessions existing in the common buffer 31 with reference to the window management table 32 and falls below the threshold value Then, the session with the smallest ACK number is disconnected.
[Selection] Figure 2

Description

本発明は、1対多ライブ型のデータ配信サービスに適したセッション管理方法と、そのようなセッション管理方法によってセッションを管理するプロキシ装置と、に関する。   The present invention relates to a session management method suitable for a one-to-many live data distribution service, and a proxy device that manages a session by such a session management method.

昨今、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プロキシ装置のメモリ上に上記と同様にセッションごとに最大ウィンドウサイズ分の領域が確保され、パケット再送制御が行われることになる。   Recently, a live distribution type or a live streaming type that uses an IP (Internet Protocol) network to distribute radio programs to a large number of users or to perform TV (television) live distribution such as sports broadcasts. IP data services are becoming popular. These services attempt to distribute the same content from a single data distribution server to a large number of user terminals almost simultaneously. These services use IP as a protocol in the network layer, and use TCP (Transmission Control Protocol) defined in RFC 793 (Non-Patent Document 1) as a protocol in the transport layer. . Therefore, in such an IP data service, a TCP session is established between the user terminal and the data distribution server, and an area for the maximum window size of the session is secured for each TCP session on the memory of the data distribution server. The packet retransmission control is performed while managing the sequence number and ACK (acknowledgement) number recorded in the TCP header. Assuming live data distribution to a large number of users, a TCP proxy device is provided between the user terminal and the data distribution server on the IP network, and data distribution to the user terminal is performed via the TCP proxy device. In many cases, in that case, a TCP session is established between the TCP proxy device and each user terminal, and an area for the maximum window size is secured for each session on the memory of the TCP proxy device in the same manner as described above. Packet retransmission control is performed.

多数のユーザ端末に対してセッションを確立してライブ型データ配信を行うという点では、ライブ配信用のデータ配信サーバもTCPプロキシ装置も変わるところがなく、TCPプロキシ装置に、さらに、ライブ型データ配信に適した形態にデータを加工する機能や、ユーザが配信コンテンツを選択できるようにする機能、ユーザアカウントの管理機能を設けたものがデータ配信サーバであるので、以下では、ライブ型データ配信に用いるTCPプロキシ装置について説明する。   In terms of performing live data distribution by establishing sessions for a large number of user terminals, neither the data distribution server for live distribution nor the TCP proxy device is changed, and the TCP proxy device is further used for live data distribution. Since a data distribution server is provided with a function for processing data into a suitable form, a function that allows a user to select distribution contents, and a user account management function, a TCP used for live data distribution will be described below. The proxy device will be described.

図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ステート管理を行う。   FIG. 1 is a block diagram showing a hardware configuration of a general TCP proxy device. The TCP proxy device 10 establishes a TCP session by connecting to a large number of user terminals 21 via a network 20 that is an IP network. The TCP proxy device 10 includes a high-speed and wide-band bus 11, a network interface 12 used for connection to the network 20, and a network that is provided between the bus 11 and the network interface 12 and controls communication with the network 20. A controller 13; a disk device 14 for storing programs and data; a disk controller 15 provided between the bus 11 and the disk device 14 for controlling access to the disk device 14; and a memory 16 connected to the bus 11. And a CPU (central processing unit) 17 connected to the bus 11. A window buffer for each TCP session is secured on the memory 16, and the CPU 17 performs TCP state management for each TCP session.

例えば、ネットワークインタフェース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のステート管理が可能な場合、この必要メモリサイズの大きさが問題となる。   For example, it is assumed that the bandwidth of the network interface 12 is 10 Gbps (gigabit / second) and the bandwidth necessary for content distribution is 100 kbps (kilobit / second) per user (ie, per session). Since 10 Gbps / 100 kbps = 100000, if the 10 Gbps network interface 12 is used, 100,000 users can simultaneously view content having a required bandwidth of 100 kbps. In this way, when 100,000 users simultaneously view the same content by live data distribution, if the required window size for each session is 64 KB (kilobytes), data for the window size for all sessions is stored. Is 64 KB × 100,000 = 6.4 GB (gigabytes), and the capacity of the memory 16 is required to be at least 6.4 GB. If each session applies window scaling, 10 GB or more of memory is required. When TCP state management is possible for 100,000 sessions by providing the high-speed CPU 17 and the high-speed bus 11, the size of the necessary memory becomes a problem.

ところでライブ型データ配信の場合、ユーザごとに全く異なるデータを送信するわけではなく、各TCPセッションでのRTT(往復伝搬遅延時間;Round-Trip Time)差のずれこそ生じるものの、同一コンテンツのデータをほぼ同じタイミングで各ユーザがダウンロードしている。そこで、セッション単位でメモリ領域を確保するのではなくてコンテンツ単位でメモリ領域を確保し、この確保されたメモリ領域を複数のセッションで共通に使用するものとして各セッションからこの共通メモリ領域を参照し、セッションごとにシーケンス番号とACK番号を管理して再送制御を行えば、必要メモリサイズが大きくなりすぎるという問題は回避することができる。   By the way, in the case of live-type data distribution, data that is not completely different for each user is transmitted, and although there is a difference in RTT (Round-Trip Time) difference in each TCP session, Each user is downloading at almost the same time. Therefore, instead of allocating a memory area for each session, a memory area is allocated for each content, and this common memory area is referred to by each session as a shared memory area used by multiple sessions. If the retransmission control is performed by managing the sequence number and the ACK number for each session, the problem that the required memory size becomes too large can be avoided.

しかしながら、このようにデータを保持するメモリ領域を複数のセッション間で共通化した場合、ダウンロード速度あるいはデータ転送速度の差により共通メモリ領域においてバッファあふれが発生する可能性がある。例えば、ダウンロード速度の遅いセッションAが10秒前のデータを視聴中である場合、セッションAのために10秒前から現時点までのデータをメモリ上に保持する必要があり、その結果、確保したメモリ領域を使い果して、他のセッションに新しいデータを提供できない問題が生じる。   However, when the memory area for holding data is shared among a plurality of sessions in this way, there is a possibility that a buffer overflow occurs in the common memory area due to a difference in download speed or data transfer speed. For example, when session A having a slow download speed is viewing data 10 seconds ago, it is necessary to store data from 10 seconds ago to the present time in memory for session A. As a result, the secured memory A problem arises where the space is exhausted and new data cannot be provided to other sessions.

RFC 793 "Transmission Control Protocol",IETF (Internet Engineering Task Force),1981年9月RFC 793 "Transmission Control Protocol", IETF (Internet Engineering Task Force), September 1981

上述のように、トランスポート層のプロトコルとしてTCPを用いてライブ型のデータ配信を行う際に複数セッションでウィンドウ用メモリを共通に用いることは、同時配信数すなわちセッション数が大きいときにメモリサイズが大きくなることを抑制することに効果があるが、接続相手となるユーザ端末ごとのデータ転送速度差に伴って共通メモリ領域におけるバッファあふれが発生するおそれがある。   As described above, when live data distribution is performed using TCP as a transport layer protocol, the memory for a window is commonly used for a plurality of sessions. Although it is effective in suppressing the increase, there is a possibility that a buffer overflow in the common memory area may occur due to a difference in data transfer speed for each user terminal as a connection partner.

そこで本発明の目的は、複数のセッション間でウィンドウ用メモリを共通化した場合であっても、共通メモリ領域におけるバッファあふれの発生を防止でき、かつ、メモリ利用効率の向上を図ることができ、これによってライブ型データ配信サービスにおける収容ユーザ数を増加させることができるTCPセッション管理方法と、そのようなTCPセッション管理方法を実行するTCPプロキシ装置とを提供することになる。   Therefore, the object of the present invention is to prevent the occurrence of buffer overflow in the common memory area even when the window memory is shared among a plurality of sessions, and to improve the memory utilization efficiency. This provides a TCP session management method capable of increasing the number of accommodated users in the live data distribution service, and a TCP proxy device that executes such a TCP session management method.

本発明の第1のTCPセッション管理方法は、TCPにより配信すべきコンテンツに対応する複数のセッションを管理するTCPセッション管理方法であって、各セッションのウィンドウ用として複数のセッションに対して共通にコンテンツ単位で設定されるメモリ領域である共通バッファと、各セッションごとにそのセッションのACK番号とウィンドウサイズとを管理するウィンドウ管理テーブルとを保持し、ウィンドウ管理テーブルを参照して、共通バッファ内に存在する複数のセッションにおける最大となるACK番号をMax_ACKとし、最小となるACK番号をMin_ACKとし、最大セグメント長の倍数である所定の数をαとし、ウィンドウサイズをWとして、Max_ACKとMin_ACKとの差を用いて、{確保メモリサイズ<(Max_ACK−Min_ACK)+W+α}を満たすときに、共通バッファ内に存在する複数のセッションのうちACK番号が最小であるセッションを切断する。   A first TCP session management method of the present invention is a TCP session management method for managing a plurality of sessions corresponding to contents to be distributed by TCP, and is a content common to a plurality of sessions for a window of each session. A common buffer, which is a memory area set in units, and a window management table that manages the ACK number and window size of each session for each session are stored, and exists in the common buffer by referring to the window management table The maximum ACK number in a plurality of sessions is Max_ACK, the minimum ACK number is Min_ACK, a predetermined number that is a multiple of the maximum segment length is α, the window size is W, and the difference between Max_ACK and Min_ACK is Use { When satisfying resize <(Max_ACK-Min_ACK) + W + α}, disconnects the session ACK number is smallest among the plurality of sessions are present in the common buffer.

本発明の第2のTCPセッション管理方法は、TCPにより配信すべきコンテンツに対応する複数のセッションを管理するTCPセッション管理方法であって、各セッションのウィンドウ用として複数のセッションに対して共通にコンテンツ単位で設定されるメモリ領域である共通バッファと、各セッションごとにそのセッションのACK番号とウィンドウサイズとを管理するウィンドウ管理テーブルとを保持し、ウィンドウ管理テーブルを参照して、共通バッファ内に存在する複数のセッションに関してセッションごとに往復伝搬遅延時間を測定し、複数のセッションのうちの最も大きいACK番号を有するセッションと最も小さいACK番号を有するセッションとの間での往復伝搬遅延時間の差とウィンドウサイズの差を求め、往復伝搬遅延時間の差をΔRTTとし、ウィンドウサイズの差をΔWとし、時間に関する予め定めたしきい値をβとして、{(残メモリ量÷ΔW)×ΔRTT<β}を満たすときに、共通バッファ内に存在する複数のセッションのうちACK番号が最小であるセッションを切断する。   The second TCP session management method of the present invention is a TCP session management method for managing a plurality of sessions corresponding to content to be distributed by TCP, and is a content common to a plurality of sessions for a window of each session. A common buffer, which is a memory area set in units, and a window management table that manages the ACK number and window size of each session for each session are stored, and exists in the common buffer by referring to the window management table The round trip propagation delay time is measured for each session with respect to a plurality of sessions, and the difference between the round trip propagation delay time and the window between the session having the largest ACK number and the session having the smallest ACK number among the plurality of sessions. Find the size difference and round-trip propagation When the difference in total time is ΔRTT, the difference in window size is ΔW, and a predetermined threshold value for time is β, when {(remaining memory amount ÷ ΔW) × ΔRTT <β} is satisfied, The session having the smallest ACK number is disconnected from the plurality of existing sessions.

本発明の第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処理部に指示するセッション切断判定部と、を有する。   A first TCP proxy device of the present invention is a TCP proxy device that connects to a network, manages a plurality of sessions corresponding to the content, and distributes the content to each terminal connected to the network by TCP, A common buffer that is a memory area that is set for each session in common for multiple sessions and a window management table that manages the ACK number and window size for each session. A TCP processing unit that performs protocol processing by TCP with reference to the window management table to transmit data in the buffer to each terminal, and a maximum in a plurality of sessions that exist in the common buffer with reference to the window management table Set the ACK number to Max_A Let K be the smallest ACK number, Min_ACK, α be a predetermined number that is a multiple of the maximum segment length, W be the window size, and use the difference between Max_ACK and Min_ACK to {reserve memory size <(Max_ACK− (Min_ACK) + W + α}, a session disconnection determination unit that instructs the TCP processing unit to disconnect a session having the smallest ACK number among a plurality of sessions existing in the common buffer.

本発明の第2のTCPプロキシ装置は、ネットワークに接続し、コンテンツに対応する複数のセッションを管理して、ネットワークに接続した各端末に対してTCPによりコンテンツを配信するTCPプロキシ装置であって、各セッションのウィンドウ用として複数のセッションに対して共通にコンテンツ単位で設定されるメモリ領域である共通バッファと、各セッションごとにそのセッションのACK番号とウィンドウサイズとを管理するウィンドウ管理テーブルと、共通バッファ内のデータを各端末に送信するためにウィンドウ管理テーブルを参照してTCPによるプロトコル処理を実行するTCP処理部と、共通バッファ内に存在する複数のセッションに関してセッションごとに、TCP処理部を介して往復伝搬遅延時間を測定するRTT測定部と、ウィンドウ管理テーブルを参照し、RTT測定部での測定結果に基づき、複数のセッションのうちの最も大きいACK番号を有するセッションと最も小さいACK番号を有するセッションとの間での往復伝搬遅延時間の差とウィンドウサイズの差を求め、往復伝搬遅延時間の差をΔRTTとし、ウィンドウサイズの差をΔWとし、時間に関する予め定めたしきい値をβとして、{(残メモリ量÷ΔW)×ΔRTT<β}を満たすときに、共通バッファ内に存在する複数のセッションのうちACK番号が最小であるセッションを切断するようにTCP処理部に指示するセッション切断判定部と、を有する。   A second TCP proxy device of the present invention is a TCP proxy device that connects to a network, manages a plurality of sessions corresponding to the content, and distributes the content by TCP to each terminal connected to the network, A common buffer that is a memory area that is set for each session in common for multiple sessions and a window management table that manages the ACK number and window size for each session. A TCP processing unit that executes TCP protocol processing with reference to the window management table to transmit data in the buffer to each terminal, and a plurality of sessions existing in the common buffer for each session via the TCP processing unit R to measure round-trip propagation delay time Reciprocal propagation between a session having the largest ACK number and a session having the smallest ACK number among a plurality of sessions based on the measurement result of the RTT measurement unit with reference to the T measurement unit and the window management table The difference between the delay time and the window size is obtained, the difference between the round trip propagation delay times is ΔRTT, the window size difference is ΔW, and a predetermined threshold value for time is β, {(remaining memory amount ÷ ΔW) A session disconnection determination unit that instructs the TCP processing unit to disconnect the session with the smallest ACK number among a plurality of sessions existing in the common buffer when × ΔRTT <β} is satisfied.

本発明では、複数のTCPセッションでウィンドウ用メモリを共通化した場合に、ある判断基準を用いて低速セッションの切断を行うようにする。その結果、共通メモリ内から古いデータを削除することが可能となり、バッファあふれを未然に防止することができるようになるとともに、TCPプロキシ装置やライブ型データ配信サーバにおけるメモリ利用効率が向上する。切断したセッションについては、再度、セッションを確立することもできる。   In the present invention, when a window memory is shared by a plurality of TCP sessions, a low-speed session is disconnected using a certain criterion. As a result, it becomes possible to delete old data from the common memory, and it becomes possible to prevent the buffer from overflowing, and the memory utilization efficiency in the TCP proxy device and the live data distribution server is improved. A session can be established again for the disconnected session.

TCPプロキシ装置の一般的なハードウェア構成を示すブロック図である。It is a block diagram which shows the general hardware constitutions of a TCP proxy apparatus. 本発明の第1の実施形態のTCPプロキシ装置の要部の論理的な構成を示すブロック図である。It is a block diagram which shows the logical structure of the principal part of the TCP proxy apparatus of the 1st Embodiment of this invention. メモリ管理を説明する図であって、(a)は従来のTCPプロキシ装置におけるメモリ管理を示し、(b)は本発明に基づくTCPプロキシ装置でのメモリ管理を示す図である。It is a figure explaining memory management, Comprising: (a) shows the memory management in the conventional TCP proxy apparatus, (b) is a figure which shows the memory management in the TCP proxy apparatus based on this invention. 本発明の第2の実施形態のTCPプロキシ装置の要部の論理的な構成を示すブロック図である。It is a block diagram which shows the logical structure of the principal part of the TCP proxy apparatus of the 2nd Embodiment of this invention. TCPプロキシ装置の動作の概要を説明する図である。It is a figure explaining the outline | summary of operation | movement of a TCP proxy apparatus.

次に、本発明の好ましい実施の形態について、図面を参照して説明する。   Next, a preferred embodiment of the present invention will be described with reference to the drawings.

本発明に基づくTCPセッション管理方法は、トランスポート層のプロトコルとしてTCPを用いてコンテンツを配信する1対多ライブ型のデータ配信サービスに適したものである。TCPを用いた場合、複数のユーザ端末に対してほぼ同じタイミングで同じコンテンツを配信する場合、各ユーザ端末に対応した複数のTCPセッションを管理する必要がある。そこで本発明に基づくTCPセッション管理方法では、セッションごとにウィンドウ用バッファを設定することに伴うメモリサイズの増大を防ぐために、各セッションのウィンドウ用として複数のセッションに対して共通にコンテンツ単位で設定されるメモリ領域を共通バッファとして用いる。そして、配信すべきコンテンツに対応する複数のセッションを管理するために、さらに、各セッションごとに当該セッションのACK番号とウィンドウサイズとを管理するウィンドウ管理テーブルを使用し、共通バッファでのバッファあふれを防ぎメモリ利用効率を高めるために、ある判断基準を用いて、ダウンロード速度(転送速度)が低速であるセッションを切断し、共通バッファにおいてその切断されたセッションのみに使用されていた領域を解放して新たなデータを書き込めるようにする。   The TCP session management method according to the present invention is suitable for a one-to-many live data distribution service that distributes content using TCP as a transport layer protocol. When TCP is used and the same content is distributed to a plurality of user terminals at almost the same timing, it is necessary to manage a plurality of TCP sessions corresponding to each user terminal. Therefore, in the TCP session management method according to the present invention, in order to prevent an increase in the memory size associated with setting a window buffer for each session, it is set for each session window in common for each session. This memory area is used as a common buffer. In order to manage a plurality of sessions corresponding to the content to be distributed, a window management table for managing the ACK number and window size of the session is used for each session, and buffer overflow in the common buffer is prevented. To prevent memory usage efficiency, use a certain criterion to disconnect a session with a low download speed (transfer speed) and release the area used only for the disconnected session in the common buffer. Allow new data to be written.

セッション切断のための判断基準は、確保したメモリ利用率に従うものであるが、具体的には、例えば、ACK番号しきい値設定方式と、ダウンロード速度差しきい値設定方式がある。ACK番号しきい値設定方式では、ウィンドウ管理テーブルを参照することにより共通バッファ中の各セクションのACK番号を調べ、これらのACK番号のうちの最大のものと最小のものとの差から残メモリ量を算出し、しきい値と比較して、残メモリ量がしきい値を下回った時に、低速セクションすなわちACK番号が最小であるセクションを切断するものである。一方、ダウンロード速度差しきい値設定方式は、ウィンドウ管理テーブルを参照し、セクションごとの往復伝搬遅延時間(RTT)を調べ、現状のデータ送信状況の下で残メモリ量が何秒後にゼロになってしまうかを予測して、ゼロとなるまでの時間がしきい値を下回る場合に、ACK番号が最小であるセクションを切断するものである。   Judgment criteria for session disconnection are in accordance with the reserved memory utilization rate. Specifically, for example, there are an ACK number threshold value setting method and a download speed difference threshold value setting method. In the ACK number threshold setting method, the ACK number of each section in the common buffer is checked by referring to the window management table, and the remaining memory amount is determined from the difference between the largest and smallest of these ACK numbers. Is compared with the threshold value, and when the remaining memory amount falls below the threshold value, the low speed section, that is, the section with the smallest ACK number is cut off. On the other hand, the download speed difference threshold setting method refers to the window management table, checks the round-trip propagation delay time (RTT) for each section, and the remaining memory amount becomes zero after how many seconds under the current data transmission status. The section with the smallest ACK number is cut when the time until it becomes zero falls below the threshold.

以下、このようなTCPセッション管理方法を実行する本発明のTCPプロキシ装置について説明する。なお、上述したように、多数のユーザ端末に対してセッションを確立してライブ型データ配信を行うという点では、ライブ配信用のデータ配信サーバもTCPプロキシ装置も変わるところがないので、データ配信サーバそれ自体も本発明のTCPプロキシ装置の範疇に含まれるものである。   The TCP proxy device of the present invention that executes such a TCP session management method will be described below. As described above, there is no change in the data distribution server for live distribution and the TCP proxy device in terms of establishing live sessions and distributing live data to a large number of user terminals. The device itself is also included in the category of the TCP proxy device of the present invention.

図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をそれぞれハードウェア構成により実現することもできる。   FIG. 2 is a block diagram illustrating a logical configuration of a main part of the TCP proxy device according to the first embodiment of this invention. The TCP proxy device of the present embodiment has the same hardware configuration as that shown in FIG. 1, but is based on the present invention using an ACK number threshold setting method as a criterion for session disconnection. In order to execute the TCP session management method, a logical buffer includes a common buffer 31, a window management table 32, a session disconnection determination unit 33, a TCP processing unit 34, and an IP processing unit 35. The common buffer 31 and the window management table 32 are secured as areas on the memory 16 in the hardware configuration shown in FIG. 1, and the session disconnection determination unit 33, the TCP processing unit 34, and the IP processing unit 35 are stored in the CPU 17 by the software program. It is realized by executing. The session disconnection determination unit 33, the TCP processing unit 34, and the IP processing unit 35 can each be realized by a hardware configuration.

共通バッファ31は、ソケットバッファとして、各セッションのウィンドウ用として複数のセッションに対して共通にコンテンツ単位で設定されるバッファ領域であり、例えばデータ配信サーバからのコンテンツのデータが供給される。ウィンドウ管理テーブル32は、各セッションごとにそのセッションのACK番号とウィンドウサイズとを管理するテーブルである。   The common buffer 31 is a buffer area that is set as a socket buffer in common for a plurality of sessions as a window for each session, and is supplied with content data from a data distribution server, for example. The window management table 32 is a table for managing the ACK number and window size of each session for each session.

TCP処理部34は、共通バッファ31内のデータを各端末に送信するためにウィンドウ管理テーブル32を参照してTCPによるプロトコル処理を実行し、生成したTCPセグメントをIP処理部34に送出する。IP処理部35は、TCP処理部34からのTCPセグメントをIPパケットに組み込んでネットワークインタフェースに送出し、これにより、各ユーザ端末にコンテンツのデータが配信されるようにする。   The TCP processing unit 34 refers to the window management table 32 to perform data processing in the TCP in order to transmit data in the common buffer 31 to each terminal, and sends the generated TCP segment to the IP processing unit 34. The IP processing unit 35 incorporates the TCP segment from the TCP processing unit 34 into an IP packet and sends it to the network interface, so that the content data is distributed to each user terminal.

セッション接断判定部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に指示する。   The session connection determination unit 33 refers to the window management table 32, sets the maximum ACK number in a plurality of sessions existing in the common buffer 31 to Max_ACK, sets the minimum ACK number to Min_ACK, and sets the maximum segment in TCP. When the predetermined number that is a multiple of the length (MSS) is α, the window size is W, and the difference between Max_ACK and Min_ACK is used to satisfy {reserved memory size <(Max_ACK−Min_ACK) + W + α}, the common buffer 31. Instruct the TCP processing unit 34 to disconnect the session with the smallest ACK number among the plurality of sessions existing in 31, and further release (clear) the memory area related only to the disconnected session. 31 is instructed.

ここでαは、低速セッションを切断する際のしきい値に対応するものである。αをMSSの倍数としていることから、αは、TCPセグメントが最長であるという最悪条件のもとでTCPセグメント何個分の余裕をもたせて低速セッションを切断するかを示していると言える。ウィンドウサイズは、セッションごとに異なる可能性があるが、例えば、ウィンドウサイズが最大のセッションのウィンドウサイズをWとすればよい。   Here, α corresponds to a threshold value for disconnecting the low-speed session. Since α is a multiple of MSS, it can be said that α indicates how many TCP segments allow a low-speed session to be disconnected under the worst condition that the TCP segment is the longest. Although the window size may vary from session to session, for example, the window size of the session with the largest window size may be W.

図3は、セッション単位でメモリを確保する従来のTCPプロキシ装置におけるメモリ管理と本発明のTCPプロキシ装置におけるメモリ管理とを対比して示している。   FIG. 3 shows a comparison between memory management in a conventional TCP proxy device that secures memory in session units and memory management in the TCP proxy device of the present invention.

図3(a)に示すように、従来のTCPプロキシ装置では、セッションごとにウィンドウ用メモリ領域を確保する必要があり、概算で言えば、ウィンドウサイズ×セッション数だけのメモリ領域が必要となり、セッション数が多大である場合には、極めて多量のメモリ領域を必要とする。これに対して本発明に基づくプロキシ装置では、図3(b)に示すように、ライブ型配信を行うことを前提としてコンテンツごとにメモリ領域を確保する。したがって、配信すべきコンテンツが1つであるとすると、低速セッション切断に用いるしきい値にも依存するが、TCPプロキシ装置で必要となるバッファサイズを、従来のものと比較して、{(同一映像視聴ユーザ数−1)×TCPウィンドウサイズ}だけ削減することが可能となり、1セッションあたりに必要なメモリサイズ削減による初期コストの低下・低電力化が期待できる。   As shown in FIG. 3A, in the conventional TCP proxy device, it is necessary to secure a memory area for a window for each session, and roughly speaking, a memory area corresponding to the window size × the number of sessions is required. When the number is large, a very large amount of memory area is required. On the other hand, as shown in FIG. 3B, the proxy device according to the present invention secures a memory area for each content on the assumption that live distribution is performed. Therefore, if there is only one content to be distributed, the buffer size required in the TCP proxy device is compared with the conventional one, although it depends on the threshold used for the low-speed session disconnection, {(same The number of video viewing users-1) × TCP window size} can be reduced, and a reduction in initial cost and a reduction in power can be expected due to a reduction in memory size required per session.

図3には、ウィンドウ管理テーブル32の内容の一例も示されている。ここではユーザ端末ごとにTCPプロキシ装置からTCPセッションが確立されるとして、ユーザ端末ごとに、すなわちセッションごとに、そのセッションの現在のACK番号とウィンドウサイズとがウィンドウ管理テーブル32に格納されていることが示されている。また、図3(b)において、符号51で示した破線の矢印は、複数のセッション(図示した例ではセッション1〜3)の中で最大のACK番号と最小のACK番号との間のメモリ部分を示しており、第1の実施形態では、このメモリ部分でのメモリ容量を残メモリ量として算出し、セッション切断のための判断に用いている。   FIG. 3 also shows an example of the contents of the window management table 32. Here, assuming that a TCP session is established from the TCP proxy device for each user terminal, the current ACK number and window size of the session are stored in the window management table 32 for each user terminal, that is, for each session. It is shown. In FIG. 3B, a broken-line arrow denoted by reference numeral 51 indicates a memory portion between a maximum ACK number and a minimum ACK number among a plurality of sessions (sessions 1 to 3 in the illustrated example). In the first embodiment, the memory capacity in this memory portion is calculated as the remaining memory amount and used for determination for session disconnection.

次に、本発明の第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に示したものと異なる点を説明する。   Next, a TCP proxy device according to the second embodiment of this invention will be described. FIG. 4 is a block diagram illustrating a logical configuration of a main part of the TCP proxy device according to the second embodiment of this invention. The TCP proxy device shown in FIG. 4 is the same as that shown in FIG. 2, but uses the download speed difference threshold value setting method as a criterion for session disconnection. 2 and differs from that shown in FIG. 2 in the operation of the session disconnection determination unit and the TCP processing unit. Also in the TCP proxy device shown in FIG. 4, the common buffer 31 and the window management table 32 are secured as areas on the memory 16 in the hardware configuration shown in FIG. 1, and a session disconnection determination unit 36, a TCP processing unit 37, The IP processing unit 35 and the RTT measurement unit 38 are realized, for example, by the CPU 17 executing a software program or by a hardware configuration. In the following, the TCP proxy device shown in FIG. 4 will be described while referring to differences from the one shown in FIG.

RTT測定部38は、共通バッファ31内に存在する複数のセッションに関してセッションごとに、TCP処理部37を介して往復伝搬遅延時間(RTT)を測定する。RTTの測定方法としては、スリー・ウェイ・ハンドシェーク・パケットを用いて実行する方法がある。あるいは、送信するデータパケット内のシーケンス番号とそのデータパケットを送信した時刻と、データパケットに対応して受信するACKパケット内のACK番号とそのACKパケットが到着した時刻を用い、最大セグメント長をMSSとして、{ACK番号>シーケンス番号+MSS}を満たすときの(受信時刻−送信時刻)をRTTとする方法がある。   The RTT measurement unit 38 measures the round-trip propagation delay time (RTT) via the TCP processing unit 37 for each session regarding a plurality of sessions existing in the common buffer 31. As an RTT measurement method, there is a method of executing using a three-way handshake packet. Alternatively, using the sequence number in the data packet to be transmitted and the time at which the data packet was transmitted, the ACK number in the ACK packet to be received corresponding to the data packet and the time at which the ACK packet arrived, the maximum segment length is set to MSS. As such, there is a method in which RTT is (reception time−transmission time) when {ACK number> sequence number + MSS} is satisfied.

TCP処理部37は、共通バッファ31内のデータを各端末に送信するためにウィンドウ管理テーブル32を参照してTCPによるプロトコル処理を実行し、生成したTCPセグメントをIP処理部34に送出し、さらに、スリー・ウェイ・ハンドシェーク・パケットを用いてRTT測定を行う場合にはスリー・ウェイ・ハンドシェークの処理を実行し、データパケットと対応するACKパケットの時刻に応じてRTTを測定する場合には、必要な情報をRTT測定部38に伝達する。   The TCP processing unit 37 refers to the window management table 32 in order to transmit the data in the common buffer 31 to each terminal, executes the protocol processing by TCP, sends the generated TCP segment to the IP processing unit 34, and When performing RTT measurement using three-way handshake packets, it is necessary to perform three-way handshake processing and to measure RTT according to the time of the ACK packet corresponding to the data packet. This information is transmitted to the RTT measurement unit 38.

セッション切断判定部36は、ウィンドウ管理テーブル32を参照し、RTT測定部38での測定結果に基づき、複数のセッションのうちの最も大きいACK番号を有するセッションと最も小さいACK番号を有するセッションとの間での往復伝搬遅延時間の差(ΔRTT)とウィンドウサイズの差(ΔW)を求め、時間に関する予め定めたしきい値をβとして、{(残メモリ量÷ΔW)×ΔRTT<β}を満たすときに、共通バッファ31内に存在する複数のセッションのうちACK番号が最小であるセッションを切断するようにTCP処理部37に指示し、さらに切断したセッションのみに関係するメモリ領域を解放(クリア)するように共通バッファ31に指示する。   The session disconnection determination unit 36 refers to the window management table 32 and, based on the measurement result of the RTT measurement unit 38, between the session having the largest ACK number and the session having the smallest ACK number among the plurality of sessions. When the difference between the round-trip propagation delay time (ΔRTT) and the window size difference (ΔW) is calculated and a predetermined threshold value for time is β, and {(remaining memory amount / ΔW) × ΔRTT <β} is satisfied In addition, the TCP processing unit 37 is instructed to disconnect the session having the smallest ACK number among a plurality of sessions existing in the common buffer 31, and the memory area related only to the disconnected session is released (cleared). The common buffer 31 is instructed as follows.

図3(b)において符号52で示す破線の矢印は、現時点で未使用となっているメモリ部分を示しており、第2の実施形態では、この未使用部分があと何秒後に使い切られてしまうかを予想して、セッション切断のための判断に利用している。   A broken arrow indicated by reference numeral 52 in FIG. 3B indicates a memory portion that is unused at the present time. In the second embodiment, the unused portion is used up after several seconds. In anticipation of this, it is used to judge for session disconnection.

図5は、上述した各実施形態のTCPプロキシ装置をデータ配信サーバと複数のユーザ端末との間に配置した場合の動作を示している。ここで、サーバには複数の映像コンテンツ(例えば、ビデオ1とビデオ2)が格納されているものとする。図2及び図4ではTCPプロキシ装置におけるユーザ端末側へのセッションに関する構成のみが示されているが、図5では、配信サーバ側とのTCP処理及びユーザ端末側とのTCP処理の両方が示されている。図には示されていないが、ユーザのアカウント管理などのためにユーザ管理テーブルが設けられているものとする。   FIG. 5 shows an operation when the TCP proxy device according to each of the above-described embodiments is arranged between the data distribution server and a plurality of user terminals. Here, it is assumed that a plurality of video contents (for example, video 1 and video 2) are stored in the server. 2 and 4 only show the configuration related to the session to the user terminal side in the TCP proxy device, FIG. 5 shows both the TCP processing with the distribution server side and the TCP processing with the user terminal side. ing. Although not shown in the figure, it is assumed that a user management table is provided for user account management and the like.

ビデオ1及びビデオ2の両方についてソケットバッファ(共通バッファ)が設定されており、配信サーバ側との処理においては、IP処理、ヘッダを分類するクラシファイア処理及びTCP処理を経て、各コンテンツのデータが対応するソケットバッファに格納される。コンテンツの識別は、クラシファイアからHTTP Get requestパケットを抜き出し、HTTPヘッダ処理を行って含まれるURI(uniform resource identifier)に基づいて行うことができる。また、新規コンテンツの場合であれば、TCP処理において新規セッションを確立し、既存コンテンツであれば、TCPのいわゆる5タプル(5-tuple)とコンテンツ情報とをひもづける。   A socket buffer (common buffer) is set for both video 1 and video 2, and in processing with the distribution server, each content data is handled through IP processing, classifier processing for classifying headers, and TCP processing. Stored in the socket buffer. Content identification can be performed based on a URI (uniform resource identifier) that is extracted by extracting an HTTP Get request packet from a classifier and performing HTTP header processing. In the case of new content, a new session is established in the TCP process, and in the case of existing content, a so-called 5-tuple of TCP and content information are linked.

ユーザ端末側との処理においては、まず、ユーザ端末からHTTP Get requestパケットが到着した際に、宛先IPアドレス、送信元IPアドレス及びURIを確認し、ユーザ管理テーブル内で設定されたアドレスであって、かつ、TCPプロキシ内に該当映像が存在する場合にそのユーザ端末をセッションに参加させる。そして、その時点からユーザ端末にライブ配信を行うために、現在のソケットバッファ内に存在する最も知さなシーケンス番号をSYN/ACKパケット内に記述してユーザ端末に送信する。これにより、ユーザは、その指定したコンテンツのライブ配信を受けられるようになる。   In the process with the user terminal side, first, when the HTTP Get request packet arrives from the user terminal, the destination IP address, the source IP address and the URI are confirmed, and the address set in the user management table is When the corresponding video exists in the TCP proxy, the user terminal is allowed to participate in the session. Then, in order to perform live delivery to the user terminal from that point, the most known sequence number existing in the current socket buffer is described in the SYN / ACK packet and transmitted to the user terminal. As a result, the user can receive live distribution of the designated content.

なお、サーバが単一の映像のみを配信する場合には、ユーザ端末からSYNパケットをが到着した際に、その宛先IPアドレス及び送信元IPアドレスを確認し、ユーザ管理テーブル内で設定されたアドレスである場合にそのユーザ端末をセッションに参加させる。そして、その時点からユーザ端末にライブ配信を行うために、現在のソケットバッファ内に存在する最も知さなシーケンス番号をSYN/ACKパケット内に記述してユーザ端末に送信する。これにより、ユーザは、コンテンツのライブ配信を受けられるようになる。   When the server delivers only a single video, when the SYN packet arrives from the user terminal, the destination IP address and the source IP address are confirmed, and the address set in the user management table If so, the user terminal is allowed to participate in the session. Then, in order to perform live delivery to the user terminal from that point, the most known sequence number existing in the current socket buffer is described in the SYN / ACK packet and transmitted to the user terminal. As a result, the user can receive live distribution of the content.

10 TCPプロキシ装置
11 バス
12 ネットワークインタフェース
13 ネットワークコントローラ
14 ディスク装置
15 ディスクコントローラ
16 メモリ
17 CPU
20 ネットワーク
21 ユーザ端末
31 共通バッファ
32 ウィンドウ管理テーブル
33,36 セッション切断判定部
34,37 TCP処理部
35 IP処理部
38 RTT測定部
10 TCP Proxy Device 11 Bus 12 Network Interface 13 Network Controller 14 Disk Device 15 Disk Controller 16 Memory 17 CPU
20 Network 21 User Terminal 31 Common Buffer 32 Window Management Table 33, 36 Session Disconnection Determination Unit 34, 37 TCP Processing Unit 35 IP Processing Unit 38 RTT Measurement Unit

Claims (8)

TCPにより配信すべきコンテンツに対応する複数のセッションを管理するTCPセッション管理方法であって、
各セッションのウィンドウ用として前記複数のセッションに対して共通に前記コンテンツ単位で設定されるメモリ領域である共通バッファと、各セッションごとに当該セッションのACK番号とウィンドウサイズとを管理するウィンドウ管理テーブルとを保持し、前記メモリ領域において記憶されている、前記ACK番号からウィンドウサイズの範囲内のデータを各セッションに対して配布することを特徴とするTCPセッション管理方式。
A TCP session management method for managing a plurality of sessions corresponding to content to be distributed by TCP,
A common buffer that is a memory area set in units of contents in common for the plurality of sessions as a window for each session; a window management table that manages the ACK number and window size of the session for each session; And distributing data within a window size range from the ACK number stored in the memory area to each session.
前記ウィンドウ管理テーブルを参照して、前記共通バッファ内に存在する複数のセッションにおける最大となるACK番号をMax_ACKとし、最小となるACK番号をMin_ACKとし、最大セグメント長の倍数である所定の数をαとし、ウィンドウサイズをWとして、Max_ACKとMin_ACKとの差を用いて、{確保メモリサイズ<(Max_ACK−Min_ACK)+W+α}を満たすときに、前記共通バッファ内に存在する複数のセッションのうちACK番号が最小であるセッションを切断する、請求項1に記載のTCPセッション管理方法。   Referring to the window management table, the maximum ACK number in a plurality of sessions existing in the common buffer is Max_ACK, the minimum ACK number is Min_ACK, and a predetermined number that is a multiple of the maximum segment length is α And the window size is W, and the difference between Max_ACK and Min_ACK is used, and when {reserved memory size <(Max_ACK−Min_ACK) + W + α} is satisfied, the ACK number of the plurality of sessions existing in the common buffer is The TCP session management method according to claim 1, wherein the session that is the minimum is disconnected. 前記ウィンドウ管理テーブルを参照して、前記共通バッファ内に存在する複数のセッションに関してセッションごとに往復伝搬遅延時間を測定し、前記複数のセッションのうちの最も大きいACK番号を有するセッションと最も小さいACK番号を有するセッションとの間での往復伝搬遅延時間の差とウィンドウサイズの差を求め、前記往復伝搬遅延時間の差をΔRTTとし、前記ウィンドウサイズの差をΔWとし、時間に関する予め定めたしきい値をβとして、{(残メモリ量÷ΔW)×ΔRTT<β}を満たすときに、前記共通バッファ内に存在する複数のセッションのうちACK番号が最小であるセッションを切断する、請求項1に記載のTCPセッション管理方法。   Referring to the window management table, the round trip propagation delay time is measured for each of the plurality of sessions existing in the common buffer, and the session having the largest ACK number and the smallest ACK number among the plurality of sessions. A difference between the round-trip propagation delay time and the window size between the sessions having the same, and the difference between the round-trip propagation delay times is ΔRTT, the difference between the window sizes is ΔW, and a predetermined threshold for time 2, the session having the smallest ACK number is disconnected from the plurality of sessions existing in the common buffer when {(remaining memory amount / ΔW) × ΔRTT <β} is satisfied. TCP session management method. 送信するデータパケット内のシーケンス番号と該データパケットを送信した時刻と、前記データパケットに対応して受信するACKパケット内のACK番号と該ACKパケットが到着した時刻を用い、最大セグメント長をMSSとして、{ACK番号>シーケンス番号+MSS}を満たすときの(受信時刻−送信時刻)を前記往復伝搬遅延時間とする、請求項3に記載のTCPセッション管理方法。   Using the sequence number in the data packet to be transmitted, the time at which the data packet was transmitted, the ACK number in the ACK packet received corresponding to the data packet and the time at which the ACK packet arrived, the maximum segment length as MSS , {TCP number> sequence number + MSS} (reception time−transmission time) is set as the round-trip propagation delay time, the TCP session management method according to claim 3. ネットワークに接続し、コンテンツに対応する複数のセッションを管理して、前記ネットワークに接続した各端末に対してTCPにより前記コンテンツを配信するTCPプロキシ装置であって、
各セッションのウィンドウ用として前記複数のセッションに対して共通に前記コンテンツ単位で設定されるメモリ領域である共通バッファと、
各セッションごとに当該セッションのACK番号とウィンドウサイズとを管理するウィンドウ管理テーブルと、
前記共通バッファ内のデータを各端末に送信するために前記ウィンドウ管理テーブルを参照してTCPによるプロトコル処理を実行するTCP処理部と、
を有するTCPプロキシ装置。
A TCP proxy device that connects to a network, manages a plurality of sessions corresponding to the content, and distributes the content by TCP to each terminal connected to the network,
A common buffer that is a memory area set in units of contents in common for the plurality of sessions for a window of each session;
A window management table for managing the ACK number and window size of the session for each session;
A TCP processing unit that performs protocol processing by TCP with reference to the window management table to transmit data in the common buffer to each terminal;
A TCP proxy device.
前記ウィンドウ管理テーブルを参照して、前記共通バッファ内に存在する複数のセッションにおける最大となるACK番号をMax_ACKとし、最小となるACK番号をMin_ACKとし、最大セグメント長の倍数である所定の数をαとし、ウィンドウサイズをWとして、Max_ACKとMin_ACKとの差を用いて、{確保メモリサイズ<(Max_ACK−Min_ACK)+W+α}を満たすときに、前記共通バッファ内に存在する複数のセッションのうちACK番号が最小であるセッションを切断するように前記TCP処理部に指示するセッション切断判定部をさらに有する、請求項5に記載のTCPプロキシ装置。   Referring to the window management table, the maximum ACK number in a plurality of sessions existing in the common buffer is Max_ACK, the minimum ACK number is Min_ACK, and a predetermined number that is a multiple of the maximum segment length is α And the window size is W, and the difference between Max_ACK and Min_ACK is used, and when {reserved memory size <(Max_ACK−Min_ACK) + W + α} is satisfied, the ACK number of the plurality of sessions existing in the common buffer is The TCP proxy device according to claim 5, further comprising a session disconnection determination unit that instructs the TCP processing unit to disconnect a session that is the minimum. 前記共通バッファ内に存在する複数のセッションに関してセッションごとに、前記TCP処理部を介して往復伝搬遅延時間を測定するRTT測定部と、
前記ウィンドウ管理テーブルを参照し、前記RTT測定部での測定結果に基づき、前記複数のセッションのうちの最も大きいACK番号を有するセッションと最も小さいACK番号を有するセッションとの間での往復伝搬遅延時間の差とウィンドウサイズの差を求め、前記往復伝搬遅延時間の差をΔRTTとし、前記ウィンドウサイズの差をΔWとし、時間に関する予め定めたしきい値をβとして、{(残メモリ量÷ΔW)×ΔRTT<β}を満たすときに、前記共通バッファ内に存在する複数のセッションのうちACK番号が最小であるセッションを切断するように前記TCP処理部に指示するセッション切断判定部と、
を有する、請求項5に記載のTCPプロキシ装置。
An RTT measuring unit that measures a round-trip propagation delay time for each of a plurality of sessions existing in the common buffer via the TCP processing unit;
The round-trip propagation delay time between the session having the largest ACK number and the session having the smallest ACK number among the plurality of sessions based on the measurement result of the RTT measurement unit with reference to the window management table And the difference between the window sizes, ΔRTT is the difference between the round-trip propagation delay times, ΔW is the difference between the window sizes, and β is a predetermined threshold for time {(remaining memory amount ÷ ΔW) A session disconnection determination unit that instructs the TCP processing unit to disconnect a session having the smallest ACK number among a plurality of sessions existing in the common buffer when satisfying × ΔRTT <β};
The TCP proxy device according to claim 5, comprising:
前記RTT測定部は、送信するデータパケット内のシーケンス番号と該データパケットを送信した時刻と、前記データパケットに対応して受信するACKパケット内のACK番号と該ACKパケットが到着した時刻を用い、最大セグメント長をMSSとして、{ACK番号>シーケンス番号+MSS}を満たすときの(受信時刻−送信時刻)を前記往復伝搬遅延時間とする、請求項7に記載のTCPプロキシ装置。   The RTT measurement unit uses a sequence number in a data packet to be transmitted and a time at which the data packet is transmitted, an ACK number in an ACK packet to be received corresponding to the data packet, and a time at which the ACK packet arrives. The TCP proxy device according to claim 7, wherein the maximum segment length is MSS, and (rounding time−transmission time) when {ACK number> sequence number + MSS} is satisfied is the round-trip propagation delay time.
JP2011169230A 2011-08-02 2011-08-02 Tcp session management method and tcp proxy device Withdrawn JP2013034101A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011169230A JP2013034101A (en) 2011-08-02 2011-08-02 Tcp session management method and tcp proxy device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011169230A JP2013034101A (en) 2011-08-02 2011-08-02 Tcp session management method and tcp proxy device

Publications (1)

Publication Number Publication Date
JP2013034101A true JP2013034101A (en) 2013-02-14

Family

ID=47789606

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011169230A Withdrawn JP2013034101A (en) 2011-08-02 2011-08-02 Tcp session management method and tcp proxy device

Country Status (1)

Country Link
JP (1) JP2013034101A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014164369A (en) * 2013-02-22 2014-09-08 Nec Corp Remote desktop system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014164369A (en) * 2013-02-22 2014-09-08 Nec Corp Remote desktop system

Similar Documents

Publication Publication Date Title
JP7556579B2 (en) Packet transmission system and method
US8943206B2 (en) Network bandwidth detection and distribution
US8194657B2 (en) Systems and methods for dynamic quality of service
JP5563979B2 (en) Bandwidth reservation for data flow in interconnected networks
TWI530123B (en) Communication devices and communication methods
US20080291916A1 (en) Systems and methods for dynamic quality of service
EP3761591B1 (en) Tcp link configuration method, apparatus, and computer program product
CN106664255A (en) Data flow control method
CN106612284B (en) Streaming data transmission method and device
JP5807710B2 (en) Content distribution system, content distribution method and program
JP2016527579A (en) Data communication system and method
Hayes et al. Omnidirectional adaptive bitrate media delivery using mptcp/quic over an sdn architecture
CN101106526A (en) A message processing method
CN111669665A (en) Real-time pushing method of media stream and server
Halepoto et al. Scheduling over dissimilar paths using CMT-SCTP
KR101325351B1 (en) Asynchronous Multi-Source Streaming
JP2013034101A (en) Tcp session management method and tcp proxy device
de Sales et al. On the performance of TCP, UDP and DCCP over 802.11 g networks
JP2005011267A (en) Real-time data communication system, real-time data communication apparatus, and real-time data communication method
US11973814B2 (en) Method and controller for audio and/or video content delivery
Zink et al. Scalable TCP-friendly video distribution for heterogeneous clients
CN118694831A (en) Data transmission method, device, electronic device and readable storage medium

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20130305

A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20141007