[go: up one dir, main page]

JP2005520374A - Tcp/ipに対する変更 - Google Patents

Tcp/ipに対する変更 Download PDF

Info

Publication number
JP2005520374A
JP2005520374A JP2003568860A JP2003568860A JP2005520374A JP 2005520374 A JP2005520374 A JP 2005520374A JP 2003568860 A JP2003568860 A JP 2003568860A JP 2003568860 A JP2003568860 A JP 2003568860A JP 2005520374 A JP2005520374 A JP 2005520374A
Authority
JP
Japan
Prior art keywords
packets
data
packet
tcp
client
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
JP2003568860A
Other languages
English (en)
Inventor
ミラー―スミス,リチャード,エム.
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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
Priority claimed from GBGB0203598.8A external-priority patent/GB0203598D0/en
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of JP2005520374A publication Critical patent/JP2005520374A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1809Selective-repeat protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1854Scheduling and prioritising arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/187Details of sliding window management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1874Buffer management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/02Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
    • H04W8/04Registration at HLR or HSS [Home Subscriber Server]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】TCP/IPがブロードキャスト・ネットワークまたは無線ネットワーク上で使用される場合に生じる、費用がかかってしまったりデータ・トラフィックが余りにも多く作成されてしまうなどの問題を克服すること。
【解決手段】最も広いシステムまたは移動ネットワークのヘッドエンドのルータは、通過するすべてのTCP/IPパケットをキャッシュする。このルータは、クライアントで受信されていないデータ・パケットを何れも、ルータのキャッシュから周期的に再送信する。同じインターフェースを維持しながら、著しい量のバック・トラフィックを生成してしまうことなくTCP/IPを容易に実施することが、本システムによって可能となる。

Description

本発明は、データ・パケットのルーティング方法およびデータ・パケットのルーティングのためのシステムに関し、かつデータ・パケットを伝送するための装置と、データ・パケットを受信するための装置とに関する。
多くのインターネット・アプリケーションは、通信するためにTCP/IPプロトコルを使用する。TCP/IPは、ケーブルに基づいた、相互接続されたネットワークのために設計されている。技術の進歩により、今やこのようなインターネット・アプリケーションは、他のデバイス(例えば、デジタル・テレビおよび携帯電話)に取り込まれている。これらのデバイスは、他の手段(例えば、ブロードキャスト・テレビジョン・ネットワーク、または無線通信リンク)によってインターネットに接続される。
TCP/IPには、ブロードキャスト・ネットワークまたは無線ネットワーク上で使用される場合、問題がある。例えば、TCP/IPは、受信されたデータ・パケットの確認応答がネットワークを介して一定間隔でシグナリングされることを必要とする。このことには、幾つかの欠点がある。なぜならば、携帯電話からこの方法でデータを伝送すると費用がかかってしまう可能性があり、および/または、多数のデバイスからのデータ・トラフィックが余りにも多く生じてしまう可能性があるからである。
本発明の目的は、これらの欠点を克服することである。
本発明の第一態様によると、
複数のデータ・パケットをサーバから受信することと、
TCP/IPパケットである、これらのデータ・パケットをキャッシュすることと、
当該複数のデータ・パケットをクライアントに伝送することと、
当該TCP/IPパケットの受信確認応答を当該サーバに伝送することと、
を含む、データ・パケットをルーティング方法が提供される。
前記方法は、前記クライアントからの要求後直ちに、キャッシュされている何れかのTCP/IPパケットを再伝送すること、をさらに含むと有利である。
前記方法は、
データまたは確認応答が前記クライアントから受信されない場合、さらなるデータ・パケットが前記ルータに確実に送信されるように確認応答を送信すること、
を含むことが好ましい。
前記方法は、
前記クライアントからの否定的な確認応答パケットを何れも受け入れることと、
前記データ・パケットを前記データ・パケット・キャッシュから再送信することと、
を含んでもよい。
さらに、前記方法は、
(i) 接続が閉じられており、かつ未処理のデータ・パケットがある場合、および/または、
(ii) 行方不明のパケットのリストが満杯である場合、および/または、
(iii) 前記データ・パケット・キャッシュがほぼ満杯である場合、
に行方不明のデータ・パケットを送信することを含んでもよい。
本発明は、
デジタル・コンピュータの内部メモリ内に直接ロード可能なコンピュータ・プログラム製品であって、
当該製品がコンピュータ上で走るときに、本発明による方法のステップを行うためのソフトウエア・コード部、
を有する、コンピュータ・プログラム製品も提供する。
本発明は、本発明による方法のステップを行うためのコンピュータ・プログラムも提供する。
本発明は、本発明によるコンピュータ・プログラム製品またはコンピュータ・プログラムの電子的配信、も提供する。
本発明の第二態様によると、
TCP/IPパケットであるデータ・パケットをキャッシュし、かつ当該TCP/IPパケットの受信確認応答を伝送するように構成された、データ・パケットを受信しかつ伝送するためのルータと、
当該データ・パケットを受信するためのクライアントと、
を有する、データ・パケットをルーティングするためのシステムが提供される。
前記ルータは、前記クライアントからの要求後直ちに、キャッシュされている何れかのTCP/IPパケットを再伝送する手段、を有していると有利である。
前記ルータは、前記クライアントからデータまたは確認応答が受信されない場合、サーバに確認応答を送信し、このことにより、さらなるデータ・パケットが前記ルータに確実に送信されるようにする手段、を有していることが好ましい。
前記ルータは、
前記クライアントからの否定的な確認応答パケットを何れも受け入れる受信手段と、
前記データ・パケットを前記データ・パケット・キャッシュから再送信する伝送手段と、
を含んでもよい。
さらに、前記伝送手段は、
(i) 接続が閉じられており、かつ未処理のデータ・パケットがある場合、
(ii) 前記行方不明のパケットのリストが満杯である場合、および/または、
(iii) 前記データ・パケット・キャッシュがほぼ満杯である場合、
に動作してもよい。
本発明の第三態様によると、
複数のデータ・パケットを受信するための受信手段と、
TCP/IPパケットであるデータ・パケットをキャッシュするための格納手段と、
当該データ・パケットを伝送し、かつ当該TCP/IPパケットの受信確認応答を伝送するための送信手段と、
を有する、データ・パケットを伝送するための装置が提供される。
前記装置は、前記クライアントからの要求後直ちに、キャッシュされている何れかのTCP/IPパケットを再伝送する手段、を有することが有利である。
前記装置は、
データ・パケットまたは確認応答がクライアントから受信されない場合、確認応答をサーバに送信し、このことにより、さらなるデータ・パケットが前記ルータに確実に送信されるようにする手段、
を有することが好ましい。
前記装置は、
前記クライアントからの否定的な確認応答パケットを何れも受け入れる手段と、
前記データ・パケットを前記データ・パケット・キャッシュから再送信する伝送手段と、
を含んでもよい。さらに、前記装置は、
(i) 接続が閉じられており、かつ未処理のデータ・パケットがある場合、
(ii) 前記行方不明のパケットのリストが満杯である場合、および/または、
(iii) 前記データ・パケット・キャッシュがほぼ満杯である場合、
に動作する伝送手段を含んでもよい。
本発明の第四態様によると、
データ・パケットを受信するための受信手段と、
TCP/IPパケットを識別するための処理手段と、
行方不明のTCP/IPパケットのリストを格納するための格納手段と、
当該行方不明のTCP/IPパケットのリストを周期的に伝送するための伝送手段と、
を有する、データ・パケットを受信するための装置が提供される。
前記処理手段は、ソフトウエア内で達成され、かつ前記装置の前記オペレーティング・システムと通信すると有利である。
前記伝送手段は、
(i) 接続が閉じられており、かつ未処理のデータ・パケットがある場合、および/または、
(ii) 前記行方不明のパケットのリストが満杯である場合、および/または、
(iii) 前記データ・パケット・キャッシュがほぼ満杯である場合、
に動作することが好ましい。
大量のバック・トラフィックが生成されてしまうことなく、TCP/IPをブロードキャスト・ネットワークと無線ネットワーク内で容易に実施することが、本発明によって可能となる。アプリケーションの観点からは、同じインターフェースを維持することが可能となる。さらに、ユーザのオペレーティング・システムを変更する必要がないので、オペレーティング・システムのネットワーク・ライブラリを用いて、現在のコードとの互換性を確保することができる。
トラフィックが主に一方向性のものである場合、半二重ネットワークの利用性が実質的に改良されかつ向上されることが、本発明により確実となる。
さらに、典型的なチャネル上では、クライアント・デバイスから返されてしまうパケット数が低減される。したがって、このことにより、ネットワーク帯域幅と無線帯域幅での輻輳が低減され、かつ特にユニット単位で課金される場合、経費が低減される。
次に、本発明の実施例を、添付の図面を参照しながら、単に例として記述する。
本発明は、2つの部分から成る。第一に、ブロードキャスト・ルータのヘッドエンドにルータがある。このルータによりパケットはこのシステムを通過して、ネットワークがインターネットの他の部分に接続される。システムの第二部分は、クライアント・デバイス内の低レベルのソフトウエアである。このソフトウエアは、ハードウエア・ドライバと、オペレーティング・システムのネットワーク・レベルとの間に位置している。
このルータは、標準的なルータとは作用が異なる。このルータは、それが通過させるすべてのTCP/IPパケットをキャッシュする。クライアントからデータまたは確認応答が来ていない場合、ルータは確認応答 (ACK) をインターネット・サーバSに送信して、インターネット・サーバSがデータ送信を確実に継続するようにさせる。このデータは、クライアントに向けて前方に送信される。次にルータは、クライアントからの否定的な確認応答 (NACK) のパケットを何れも受け入れて、パケット・キャッシュからデータを再送信する。接続が特定の期間閉じられていて、かつNACKパケットがクライアントから来ていない状態に一度なると、その特定の接続のためにキャッシュされたすべてのパケットは、キャッシュから除去される。
クライアント内に存在するTCP/IPユニットは、接続のためのTCP/IPパケットを取り除くように作用する。次にTCP/IPユニットは、オペレーティング・システムにより自動生成されたTCP/IPシーケンス番号とACKデータとを用いて、行方不明のパケットのリストを保つ。この行方不明のパケットのリストは、接続が閉じられていてかつ未処理のパケット(これは、タイムアウト後、再送信される)がある場合、行方不明のパケットのリストが満杯である場合、またはパケットの格納装置がほぼ満杯である場合、の何れかの場合、ルータに送信される。
図1の場合、ルータ10は、そのネットワーク・インターフェース14により、インターネット12を介してサーバSに接続されている。ルータ10は、クライアント16(これは携帯電話でもよい)の要求後直ちに、サーバSからマテリアルをダウンロードする。このマテリアルは、データ・パケットを有している。このデータ・パケットは、TCP/IPパケットとUDPパケットとの混合体でよい。これらのUDPパケットは、接続に基づいていないので、高機能なハンドリングを受けることなく、ストリームされて通り過ぎるだけである。
しかしながら、TCPは接続に基づいたネットワークである。ルータ10内のハンドラ18は、どのパケットがどの接続に属しているのを、TCPヘッダ内のIPアドレスとソケット値により追跡する。ハンドラ18は、クライアント16から受信されたACKシグナルとNACKシグナルもハンドリングしなければならない。
データ・パケットをルーティングさせる方法の原理には、複数のデータ・パケットをサーバSから受信することと、TCP/IPパケットであるデータ・パケットを格納手段20内にキャッシュすることと、これらのデータ・パケットをクライアント16に伝送することと、これらのTCP/IPパケットの受信確認応答をサーバSに伝送することと、が含まれる。
ルータ10は、アンテナ22を介して、データ・パケットをクライアント16に伝送する。クライアント16は、そのアンテナ24を介してデータ・パケットを受信する。これらのパケットは、ハードウエア・ドライバ26を通ってTCP/IPユニット28に伝搬する。パケットは、生のIPパケットとして転送されるか、またはイーサネット(登録商標)・パケットへカプセル化できるか、の何れかである。ユニット28は、両タイプのパケットをハンドリングすることができる。このユニットは、オペレーティング・システムにデータ・パケットを渡し、かつオペレーティング・システムにより生成されたACKデータを格納する。このACKデータは、TCPプロトコルにしたがって自動的に生成される。ユニット28は、このACKデータを使用して、行方不明のパケットのリストを保つ。クライアント16は、この行方不明のパケットのリストをルータ10に周期的に伝送し、ルータ10は、そのキャッシュ20から、要求されたTCP/IPパケットを再伝送する。
データ・パケットをルーティングするシステムは、データ・パケットを受信しかつ伝送するためのルータ10と、当該データ・パケットを受信するためのクライアント16とを有する。ルータ10は、TCP/IPパケットであるデータ・パケットをキャッシュし、かつ当該TCP/IPパケットの受信確認応答をパケットのソースに伝送し返すように構成されている。
パケットをルータ10でキャッシュし、かつルータ10からACKデータを送信することにより、システムは、TCP/IPデータ・パケットの通常のハンドリング動作を効果的に模倣する。サーバSは、その通常の態様で機能する。ルータ10とクライアント16の間で何らかのデータが失われてしまったり、または壊れてしまった場合、クライアント16はTCP/IPユニット28の動作を通してこのことを認識する。
ユニット28は、行方不明のパケットのリストを構築し、かつこのリストをルータ10に周期的に送信する。ルータ10は、これらの行方不明のパケットを、そのキャッシュ20から再送信する。このユニットは独立しており、かつクライアント・デバイス16の通常のオペレーティング・システムに対する付加的なものなので、このオペレーティング・システムおよびこれより上位のどのブラウザも、やはりTCP/IPプロトコル・データが正に通常にハンドリングされているかのように機能する。
データ・パケットを受信するための装置は、データ・パケットを受信するための受信手段(ドライバ26)と、TCP/IPパケットを識別するための処理手段(ユニット28)とを有する。さらに、ユニット28には、行方不明のTCP/IPパケットのリストを格納するための格納手段が、一体的に設けられる。ドライバ26は、行方不明のTCP/IPパケットのリストを周期的に伝送するための伝送手段としても作用する。
図4は、ドライバ26とクライアントのオペレーティング・システムとの間に位置するTCP/IPユニット28をさらに詳細に示す。
ルータ
ルータ10は、クライアント16とインターネット12の間に位置している。ルータ16は、TCP接続以外のすべての接続上では、パケットの転送しか行わない。TCP接続上では、ルータ10はクライアントから来るパケット内のヘッダから情報を抽出し、かつ次いでこれらの情報を転送する。クライアント上の特定の接続を対象とするすべてのパケットはキャッシュされ、かつ次いでクライアントに転送される。
インターネット・サーバSに関する限り、ルータ10を通過する、インターネット・サーバSとクライアント16との間の接続は、何れもTCP規格に対応している。
ルータ10により受信される何れのTCPパケットも、クライアント16に関連付けられ、かつこのTCPパケットは、このクライアント上で(TCPヘッダ内のポート番号を通して)ある特定の接続に関連付けられる。
ルータ10は、クライアントから出て行くパケットを分析することによって、最大ウィンドウ・サイズを読み取る。ルータ10が、このウィンドウ・サイズに等しい、その接続上のある程度の量のデータを受信すると、ルータ10は、これまでに受信済みのすべての連続データの受信確認応答を行う、データ長がゼロのTCPパケットを作成する。同様に、インターネット・サーバSまたはクライアント16から、短い期間(この期間はルータ上で行われる設定だが、500 ms未満でなければならない)データが受信されていない場合、データが受信されていないことを確認応答する、データ長がゼロのTCPパケットが作成される。これらの確認応答パケットは、インターネット・サーバSに送信される。
クライアント16から来るパケットであって、シンクロナイズ (SYN) フラグ・セットを有しているものを、ルータは何れも見分けなければならない。これらのことによって、ルータ10は、新たなTCPリンクに必要とされるデータ要素と格納装置を初期化する。インターネット12から来るパケットであって、SYNフラグ・セットを有しているものは、何れもクライアントに転送される。特定の期間内にクライアント16からの応答内にパケットが見つからない場合には、(SYNフラグを含む)パケットが再送信されるように、タイムアウトがこの時点で設定 (set) される。この再送信は、設定されている最大回数まで行われる(これは、このパケットがルータとクライアントの間で失われている場合に行われる)。
パケットがインターネット12上でドロップされてしまった場合、ルータ10は、TCPクライアントとして作用し、かつ行方不明となっているデータの最初のバイトに等しいACKシーケンス番号を有するパケットを、繰り返し送信する。次に、インターネット・サーバSはこのデータを再送信する。サーバは、インターネット・サーバSに送信された何れのパケット内にもある最後のACK値を格納する。
クライアント16からのパケットは、ルータ10により分析される。Sに対してインターネット上で送信されたACK値よりも少ないACK値を有する何れのパケットもパッチされ、この結果、このACK値は送信された最後のACK値に等しくなる。
ルータ10が、ACK値を有するパケットをクライアント16から受信した場合、クライアント16は、受信済みであることが既知のデータまで、パケット・キャッシュをパージすることができる。
クライアント
図2と図3は、ドライバ内部のプログラムのフローを単純化した例を示している。図2は、(低レベルのハードウエア・ドライバを介して)パケットがネットワークから受信される場合のフローを示している。図3は、パケットがOSから受信され(てネットワークに送信され)る場合のフローを示している。
ネットワークからパケットを受信する
パケットがネットワークから受信されると、ポート番号を抽出しかつ用いて、その接続のための格納エリアが探し出される。パケットのSYNフラグは設定されているが、現在はこのポート番号に対して接続が設定 (set-up) されていない場合、パケットは、OSに転送されるだけである。
次に、既に受信済みの古いパケットが、(TCP規格に基づいて)単純なフィルタにより除去される。
次の決定では、OSから出て行くパケットから得られた情報、つまりOSからの最後のACK値とウィンドウ・サイズが用いられる。この決定により、現在の接続ウィンドウのOSビューの範囲内で適合するであろうパケットが転送される。
パケットは転送時に点検されて、FINフラグが設定されているか否かが確認される。FINフラグが設定されている場合、かつノンゼロのパケットのリストが空ではない場合、NACKパケットはルータに送信される。さらに、転送されたパケットのシーケンス番号と長さが格納装置内に記録される。次にこの格納装置は消去されて、転送されたパケットが何れも除去されると、現在のシーケンス番号から最大ウィンドウ・サイズを引いたものよりも少なくなる。
パケットがOSに転送されない場合、パケットは、一時的な格納装置内に配置され、クライアント上の受信バッファのサイズを拡張する。このデータ格納装置が、追加された各パケット上の特定の占有レベルに到達した場合、またはこの占有レベルを超えた場合、この接続のためのリトライ・カウンタがインクリメントされる。このリトライ・カウンタが限界値に達すると、NACKパケットがルータに伝送される。行方不明のパケットがない場合、NACKパケットが送信される。この作用により、ルータは、データを低レートで転送するようにスロットルする。
OSからパケットを受信する
パケットは、特定の接続に関連付けられる。SYNオプションが設定された場合、この新たな接続のために新たな接続が初期化される。このSYNパケットから、ネットワーク上のセグメント・サイズの最大化などのオプションが得られる。
次のテストは、この接続のためのOSから受信された前のパケット内にあるACKの値を用いる。この値が等しく、かつこの値よりも多くのデータがネットワークから転送済みの場合、このことはデータが行方不明となっていることを示す。
データが行方不明になっていない場合、パケットは転送されるが、このパケット長がゼロではないか、または何らかのフラグが設定されている場合に限られる。
パケットは転送時に検査され、一時的なパケット格納装置上の何れかのデータが、(OSから受信されたパケット内でアドバタイズされている)現在利用可能なウィンドウ・サイズまで転送可能か否かが決定される。
データが行方不明となっている場合、この行方不明のデータは計算され、かつ行方不明のパケットのリストに(この行方不明のデータがまだ存在しない場合)追加される。(TCPの場合と同様に、行方不明のデータの長さしか既知でないために)いくつのパケットが失われているかを厳密に決定することが、時折不可能となるであろう。しかしながら、この長さを正確に近似化することは、行方不明のデータの長さを得て、かつこの長さをパケットに適合させて、これらのパケットの最大サイズをリンクの最大セグメント・サイズにすることにより、可能となる。
行方不明のパケットが、行方不明のパケットのリストに加えられる際に、このリストが特定の占有率よりも大きい場合、リトライ・カウンタがインクリメントされる。このリトライ・カウンタが、1に等しいか、または設定されているリトライ・タイムアウト値の倍数に等しい場合、NACKパケットがルータに送信される。
NACKパケット
NACKパケットは、クライアントで行方不明となっているデータをリスト化したものである。したがって、NACKパケットは、この行方不明のデータを表す幾つかのシーケンス番号と長さの値をリスト化したものである。必要なパケット内のこのデータの送信は、ルータが行う。
NACKパケットは、ルータのデータ送信の速さが、クライアント上のアプリケーションがこのデータを消費する速さを上回っているという、ルータに対する警告としても作用できる。このことは、OSから来るパケットの最後のACKシーケンス番号を、NACKパケット内に配置することにより達成される。ルータはこの情報を用いて、さらなるパケットをどれ位の速さで送信すべきかを計算する。
図4は、ドライバ内のパケットとデータ・フローを示す。ネットワークとOSからのパケットはフィルタリングされて、TCPでないパケットは単純に転送される。TCPパケットは、分析される。データは、パケットが属する接続に対応するエリア内に格納される。
パケット・フロー図
図5と図7は、このシステムのための例示的なパケット・フローを示す。図の下方に向けて時間が流れており、かつ各矢印線はパケットを表す。
図5:ウェブ・ページを要求する(失われたパケットを1つ含んだ)単純な例
図5は、4段階に分割されている。第1段階は、接続開始段階の間におけるパケット・フローを示す。SYNフラグが設定されているパケットが転送されていることが分かる。ルータは、第二SYNフラグの後、このフラグは長さがゼロの確認応答なので、パケット (A1) をサーバへ送信する。
第2段階は、クライアントから出て行く、長さがノンゼロのパケットを示している。これは、ウェブの例の場合、クライアントが必要としている情報を詳述した「GET」コマンドである。
第3段階は、インターネット・サーバSによってストリームされている大量のデータ(例えばウェブ・ページまたは画像)を示す。これらのパケットは、ルータ10によって転送され、かつキャッシュされる。(クライアント16により報告されたウィンドウ・サイズまでの)特定数のパケット後、ルータは、長さがゼロのACKパケット (A2) を作成し、ルータはこれをインターネット・サーバに伝送する。
パケット12は、ルータ10とクライアント16との間のネットワーク上で失われてしまう点に留意されたい。しかしながら、ルータは、データ受信とこのデータの転送とを続行させる。
第4段階は、接続が閉じられていることを示している。インターネット・サーバSがデータ送信を完了させている場合、インターネット・サーバSはFINフラグ・セットと共にパケットを送信する。ルータ10は、やはりFINフラグ・セットと共に確認応答パケットをサーバSに返し、このことにより、サーバの管轄内の接続が閉じられる。FINパケットは、クライアント16にも転送される。クライアントは、このFINパケットを受信後直ちに、どのデータが行方不明となっているかを分析する。データが行方不明の場合、NACKパケット (B1) は、ルータに送信される。次にルータ10は、(ルータがキャッシュ済みの)要求されたデータを、新たなパケット (B2) に入れて再送信する。この例の場合、この新たなパケット (B2) は、行方不明のパケットP13と同じデータを有している。クライアントは、この行方不明のデータを受信後、FINフラグ・セットと共に確認応答パケットを伝送する。ルータは、この情報を認識すると、(今は閉じられている)この接続のために保たれているすべての情報を消去する。
図6:二方向トラフィックの例
トラフィックが二方向の場合、ACKパケットの前後方向への伝送を効率的に実施することが、TCP規格によって可能となる。したがって、このシステムの場合、従来のTCP方法で作動することがシステムに含まれている。
図中、パケットは両方向に伝搬している。ルータ10により作成されたパケットであって、データを受信したことを確認応答するものは、パケットA1以外にはない。
パケット(例えば、パケット10)が失われた場合、データ長がゼロではないパケット内のACK値を用いるTCP規格のメカニズムを用いて、再送信されたパケットが入手可能となることに留意されたい。
図7:データのスロットリング
データが単純にルータを通してクライアント16に転送される場合、データ送信の速さが、クライアントがこのデータに対処できる速さを上回ってしまう公算が高い。したがって、システムは、ルータ10がクライアントにパケットを送信するレートを遅くするようにルータ10に通知する必要がある。
このことは、一時的なデータ格納装置が一定の限度を一度上回ったら、OSから受信された現在のACK値をルータに送信することにより達成される。
図7は、この例を示している。
第1段階と第2段階は、(図5と同様の)標準的な接続開始と、データ要求を示している。
第3段階は、サーバにより送信されかつクライアントに転送される、多数のデータを示している。このデータが到達する速さが、クライアントがこのデータを消費する速さを上回っている場合、一時的なデータ格納装置が特定の占有率に到達済みとなっている時点に達する。この時点(線図内のパケット16の後)で、クライアントはNACKシグナルを送信する。この例の場合、行方不明のパケットはない。しかしながら、ルータがこのレートでパケットを転送し続けることになっている場合、パケットは行方不明となってしまうであろう。
このNACKシグナルは、OS内にある、OSからの最新のACK値を有している。このことにより、ルータは、クライアントがデータを消費する近似レートを計算することが可能となる。クライアントが遅れている場合、ルータは特定期間の間、いかなるパケットもクライアントに送信せず(第4段階)、第4段階の終わりで、ルータは再びパケット送信を開始するであろう(第5段階)。しかしながら、この場合、各パケット間の時間間隔はより長くなる。留意すべき点は、サーバSからの入力が、前と同じレートで継続することである(このレートは、インターネット・サーバ、およびサーバとルータとの間のネットワークに影響される)。
多数の接続NACKパケット
この説明の場合、NACKパケットは、接続ごとに送信されている。一変種の場合、NACKパケットが送信される際、このパケットは、この時に開かれているすべての接続に対する行方不明のデータを表している。
このことは、(クライアントに多数の接続が開かれている場合に)クライアントから戻ってきてしまうパケット数をさらに低減させるように作用する。
インターネット・プロキシ・キャッシュとルータとの結合
サーバ上のインターネット・ウェブ・ページ、画像などをキャッシュする能力を提供するシステムが、現在存在している。このようなシステムは、ネットワーク上の多数のクライアントが、キャッシュされているウェブ・ページをインターネット・キャッシュから読み取ることによって、インターネット・サーバ上の負荷を低減させるように、これらのインターネット・ウェブ・ページを格納する。
これらのシステムは、ルータがプロキシ・キャッシュにもなるように、本発明に組み込むことができる。インターネット・サーバから受信されたデータは、接続の最後に廃棄されるのではなく、キャッシュに格納される。他のクライアントが同じデータを必要とする場合、インターネット・サーバ (S) とルータ/キャッシュとの間で接続は行われず、同じプロトコルを用いてキャッシュからデータがストリームされる。
ルータとクライアントの概略図である。 ドライバ内部のプログラムのフロー線図である。 ドライバ内部のプログラムのフロー線図である。 TCP/IPユニットを示す。 システム内のパケット・フローを示す。 システム内のパケット・フローを示す。 システム内のパケット・フローを示す。
符号の説明
10…ルータ
12…インターネット
14…ネットワーク・インターフェース
16…クライアント
18…ハンドラ
20…格納手段
22…アンテナ
24…アンテナ
26…ハードウエア・ドライバ
28…TCP/IPユニット

Claims (21)

  1. 複数のデータ・パケットをサーバから受信することと、
    TCP/IPパケットであるデータ・パケットをキャッシュすることと、
    当該複数のデータ・パケットをクライアントに伝送すること、
    当該TCP/IPパケットの受信確認応答を当該サーバに伝送することと、
    を含む、データ・パケットのルーティング方法。
  2. 前記方法が、
    前記クライアントからの要求後直ちに、キャッシュされている何れかのTCP/IPパケットを再伝送すること、
    をさらに含む、請求項1に記載の方法。
  3. データまたは確認応答が前記クライアントから受信されない場合、さらなるデータ・パケットが前記ルータに確実に送信されるように確認応答を送信すること、
    を含む、請求項1または請求項2に記載の方法。
  4. 前記クライアントからの否定的な確認応答パケットを何れも受け入れることと、
    前記データ・パケットを前記データ・パケット・キャッシュから再送信することと、
    を含む、前記請求項の何れかに記載の方法。
  5. (i) 接続が閉じられており、かつ未処理のデータ・パケットがある場合、および/または、
    (ii) 行方不明のパケットのリストが満杯である場合、および/または、
    (iii) 前記データ・パケット・キャッシュがほぼ満杯の場合、
    に行方不明のデータ・パケットを送信すること、
    を有する請求項4に記載の方法。
  6. デジタル・コンピュータの内部メモリ内に直接ロード可能なコンピュータ・プログラム製品であって、
    当該製品がコンピュータ上で走るときに、請求項1〜5の何れか1つ以上のステップを行うためのソフトウエア・コード部、
    を有する、コンピュータ・プログラム製品。
  7. 当該製品がコンピュータ上で走るときに、請求項1〜5の何れか1つ以上のステップを行うためのコンピュータ・プログラム。
  8. 請求項6に記載のコンピュータ・プログラム製品、または請求項7に記載のコンピュータ・プログラムの電子的配信、の電子的配信
  9. TCP/IPパケットであるデータ・パケットをキャッシュし、かつ当該TCP/IPパケットの受信確認応答を伝送するように構成された、データ・パケットを受信しかつ伝送するためのルータと、
    当該データ・パケットを受信するためのクライアントと、
    を有する、データ・パケットをルーティングするためのシステム。
  10. 前記ルータが、
    前記クライアントからの要求後直ちに、キャッシュされている何れかのTCP/IPパケットを再伝送する手段、
    を有する、請求項9に記載のシステム。
  11. 前記ルータが、
    前記クライアントからデータまたは確認応答が受信されない場合、サーバに確認応答を送信し、このことにより、さらなるデータ・パケットが前記ルータに確実に送信されるようにする手段、
    を有する、請求項9または請求項10に記載のシステム。
  12. 前記ルータが、
    前記クライアントからの否定的な確認応答パケットを何れも受け入れる受信手段と、
    前記データ・パケットを前記データ・パケット・キャッシュから再送信する伝送手段と、
    を有する、請求項9〜請求項11の何れかに記載のシステム。
  13. 前記伝送手段が
    (i) 接続が閉じられており、かつ未処理のデータ・パケットがある場合、
    (ii) 前記行方不明のパケットのリストが満杯である場合、および/または、
    (iii) 前記データ・パケット・キャッシュがほぼ満杯である場合、
    に動作する、請求項12に記載のシステム。
  14. 複数のデータ・パケットを受信するための受信手段と、
    TCP/IPパケットであるデータ・パケットをキャッシュするための格納手段と、
    当該データ・パケットを伝送し、かつ当該TCP/IPパケットの受信確認応答を伝送するための伝送手段と、
    を有する、データ・パケットを伝送するための装置。
  15. 前記クライアントからの要求後直ちに、キャッシュされている何れかのTCP/IPパケットを再伝送する手段を有する、請求項14に記載の装置。
  16. データ・パケットまたは確認応答がクライアントから受信されない場合、確認応答をサーバに送信し、このことにより、さらなるデータ・パケットが前記ルータに確実に送信されるようにする手段、
    を有する、請求項14または請求項15に記載の装置。
  17. 前記クライアントからの否定的な確認応答パケットを何れも受け入れる手段と、
    前記データ・パケットを前記データ・パケット・キャッシュから再送信する伝送手段と、
    を有する、請求項14または請求項15に記載の装置。
  18. 前記伝送手段が、
    (i) 接続が閉じられており、かつ未処理のデータ・パケットがある場合、
    (ii) 前記行方不明のパケットのリストが満杯である場合、および/または、
    (iii) 前記データ・パケット・キャッシュがほぼ満杯である場合、
    に動作する、請求項17に記載の装置。
  19. データ・パケットを受信するための手段と、
    TCP/IPパケットを識別するための処理手段と、
    行方不明のTCP/IPパケットのリストを格納するための格納手段と、
    当該行方不明のTCP/IPパケットのリストを周期的に伝送するための伝送手段と、
    を有する、データ・パケットを受信するための装置。
  20. 前記処理手段が、ソフトウエア内で達成され、かつ前記装置の前記オペレーティング・システムと通信する、請求項19に記載の装置。
  21. 前記伝送手段が、
    (i) 接続が閉じられており、かつ未処理のデータ・パケットがある場合、および/または、
    (ii) 前記行方不明のパケットのリストが満杯である場合、および/または、
    (iii) 前記データ・パケット・キャッシュがほぼ満杯である場合、
    に動作する、請求項19または20に記載の装置。
JP2003568860A 2002-02-15 2003-01-29 Tcp/ipに対する変更 Withdrawn JP2005520374A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB0203598.8A GB0203598D0 (en) 2002-02-15 2002-02-15 Modifications to TCP/P
GBGB0220705.8A GB0220705D0 (en) 2002-02-15 2002-09-06 Modifications to TCP/IP
PCT/IB2003/000277 WO2003069870A2 (en) 2002-02-15 2003-01-29 Modifications to tcp/ip for broadcast or wireless networks

Publications (1)

Publication Number Publication Date
JP2005520374A true JP2005520374A (ja) 2005-07-07

Family

ID=27736215

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003568860A Withdrawn JP2005520374A (ja) 2002-02-15 2003-01-29 Tcp/ipに対する変更

Country Status (8)

Country Link
US (1) US20050102416A1 (ja)
EP (1) EP1479213A2 (ja)
JP (1) JP2005520374A (ja)
CN (1) CN1633796A (ja)
AU (1) AU2003245047A1 (ja)
BR (1) BR0303072A (ja)
RU (1) RU2004127594A (ja)
WO (1) WO2003069870A2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1317870C (zh) * 2003-12-10 2007-05-23 联想(北京)有限公司 一种保证一点到多点传输数据可靠性的方法
US7882237B2 (en) * 2004-12-17 2011-02-01 Ncipher Corporation Limited TCP/IP proxy utilizing transparent acknowledgements
ATE410008T1 (de) * 2005-05-30 2008-10-15 Ericsson Telefon Ab L M Dateneinheit-relayeinrichtung und verfahren zu ihrer steuerung
US20070002864A1 (en) * 2005-06-13 2007-01-04 Via Telecom Co., Ltd. Transmission system and method for radio link protocol
US20070118653A1 (en) * 2005-11-22 2007-05-24 Sabre Inc. System, method, and computer program product for throttling client traffic
WO2008032371A1 (en) * 2006-09-13 2008-03-20 Kddi Corporation Broadcast contents transmitting device, and broadcast contents transmitting method
US20100103914A1 (en) * 2006-12-28 2010-04-29 Mediatek Inc. Wireless Transmission Method, Apparatus, And System
US20080159190A1 (en) * 2006-12-28 2008-07-03 Mediatek Inc. Wireless Transmission Method, Apparatus, And System
US8320250B2 (en) 2008-02-12 2012-11-27 Nvidia Corporation Method and arrangement for TCP flow control
EP2173077A1 (en) * 2008-10-06 2010-04-07 Alcatel, Lucent Shared content addressing protocol
US20110116483A1 (en) * 2009-11-13 2011-05-19 Yong Sang Lee Tcp data throughout enhancement for wlan clients on a wireless lan router
CN102143078B (zh) * 2011-03-29 2013-10-02 华为技术有限公司 一种报文处理方法、转发设备及系统
US8774208B2 (en) 2011-09-14 2014-07-08 Qualcomm Incorporated Management of TCP/IP messaging in wireless networks
WO2013070188A1 (en) * 2011-11-07 2013-05-16 Empire Technology Development Llc Redundant key frame transmission
US20150071273A1 (en) * 2013-09-11 2015-03-12 Celeno Communications (Israel) Ltd. Efficient transfer of tcp traffic over wlan
US10574788B2 (en) * 2016-08-23 2020-02-25 Ebay Inc. System for data transfer based on associated transfer paths

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2576780B2 (ja) * 1993-12-17 1997-01-29 日本電気株式会社 プロトコル終端方式
SE513327C2 (sv) * 1998-10-07 2000-08-28 Ericsson Telefon Ab L M System och metod för datakommunikation
US6208620B1 (en) * 1999-08-02 2001-03-27 Nortel Networks Corporation TCP-aware agent sublayer (TAS) for robust TCP over wireless
US6697331B1 (en) * 1999-11-17 2004-02-24 Telefonaktiebolaget Lm Ericsson (Publ) Link layer acknowledgement and retransmission for cellular telecommunications
GB9929882D0 (en) * 1999-12-18 2000-02-09 Roke Manor Research TCP/IP enhancement for long latency links
US7305486B2 (en) * 2000-06-30 2007-12-04 Kanad Ghose System and method for fast, reliable byte stream transport
US6907460B2 (en) * 2001-01-18 2005-06-14 Koninklijke Philips Electronics N.V. Method for efficient retransmission timeout estimation in NACK-based protocols
US6842433B2 (en) * 2001-04-24 2005-01-11 Wideray Corporation System and method for communicating information from a computerized distributor to portable computing devices

Also Published As

Publication number Publication date
US20050102416A1 (en) 2005-05-12
RU2004127594A (ru) 2005-04-10
WO2003069870A3 (en) 2003-11-13
WO2003069870A2 (en) 2003-08-21
EP1479213A2 (en) 2004-11-24
AU2003245047A1 (en) 2003-09-04
CN1633796A (zh) 2005-06-29
BR0303072A (pt) 2004-06-15

Similar Documents

Publication Publication Date Title
US11641387B2 (en) Timely delivery of real-time media problem when TCP must be used
JP5544430B2 (ja) 通信装置および通信システム
US6934257B2 (en) Transferring transmission control protocol packets
JP4283589B2 (ja) 通信装置、通信制御方法及びプログラム
US8169911B2 (en) Method for transmitting a data stream with anticipation of acknowledgments, correspondence input device and computer-readable storage medium
JP2005520374A (ja) Tcp/ipに対する変更
US7676593B2 (en) Method of bandwidth control by rewriting ACK number
JP2004530388A (ja) アプリケーション配信時のリアルタイムパケット化および再送信
WO2002030033A2 (en) Improved connectionless arq protocol
US7480301B2 (en) Method, system and article for improved TCP performance during retransmission in response to selective acknowledgement
CN115883680A (zh) 一种基于arq的udp协议数据传输方法、系统及设备
US8578040B2 (en) Method, system and article for client application control of network transmission loss tolerance
CN113169977A (zh) 网络装备和用于递送数据分组的方法
US20090268742A1 (en) Session relay device and session relay method
JP2009089197A (ja) 中継装置
JP4229807B2 (ja) データ転送方法とtcpプロキシ装置およびそれを用いたネットワークシステム
CN107231567B (zh) 一种报文传输方法、装置及系统
US20060259845A1 (en) Method and apparatus for acknowledging a bitwise data chunk in wireline and wireless communication systems
JP4506430B2 (ja) アプリケーションモニタ装置
TWI846381B (zh) 電腦裝置以及應用於電腦裝置的傳輸控制協定封包處理方法
JP2006013911A (ja) ストリームデータ転送方法、装置、プログラム、および記録媒体
KR20040091024A (ko) 방송 또는 무선 네트워크용 tcp/ip로의 변경
KR100756183B1 (ko) 페이크 응답 계층을 구비하는 네트워크 전송 장치와 이를이용한 티씨피 패킷 송수신 방법
JP2008113327A (ja) ネットワークインターフェース装置
CN120185778A (zh) 一种基于vrb的抗丢包数据传输方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060404