JP2008518531A - Method and apparatus for switching between different protocol implementations - Google Patents

Method and apparatus for switching between different protocol implementations Download PDF

Info

Publication number
JP2008518531A
JP2008518531A JP2007538279A JP2007538279A JP2008518531A JP 2008518531 A JP2008518531 A JP 2008518531A JP 2007538279 A JP2007538279 A JP 2007538279A JP 2007538279 A JP2007538279 A JP 2007538279A JP 2008518531 A JP2008518531 A JP 2008518531A
Authority
JP
Japan
Prior art keywords
transport protocol
tcp
different
session
module
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.)
Granted
Application number
JP2007538279A
Other languages
Japanese (ja)
Other versions
JP4642855B2 (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.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
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 NTT Docomo Inc filed Critical NTT Docomo Inc
Publication of JP2008518531A publication Critical patent/JP2008518531A/en
Application granted granted Critical
Publication of JP4642855B2 publication Critical patent/JP4642855B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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
    • 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/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • 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/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • 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/321Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

トランスポート・プロトコルの異なる実装を切替える装置が提供される。本装置は、複数の異なるトランスポート・プロトコル実装をトランスポート層より上の層と接続するための上位トランスポート・インタフェースと、前記複数の異なるトランスポート・プロトコル実装を前記トランスポート層より下の層と接続するための下位トランスポート・インタフェースとを備えており、前記上位トランスポート・インタフェースと前記下位トランスポート・インタフェースとは、切替情報に基づいて前記異なるトランスポート・プロトコル実装の間の接続を切替えるように構成されるものである。また本装置は、ある通信セッションに対して最適化されたデータフローを与えるトランスポート・プロトコル実装が選択されるように、前記上位トランスポート・インタフェースと前記複数の異なるトランスポート・プロトコル実装との間の接続と、前記下位トランスポート・インタフェースと前記複数の異なるトランスポート・プロトコル実装との間の接続とをそれぞれ切替えるための前記切替情報を決定する制御モジュールを更に備えるものである。  An apparatus for switching between different implementations of a transport protocol is provided. The apparatus includes an upper transport interface for connecting a plurality of different transport protocol implementations to a layer above the transport layer, and the plurality of different transport protocol implementations to a layer below the transport layer. A lower transport interface for connecting to the lower transport interface, the upper transport interface and the lower transport interface switching between the different transport protocol implementations based on switching information It is comprised as follows. The apparatus may also be configured between the upper transport interface and the plurality of different transport protocol implementations so that a transport protocol implementation that provides an optimized data flow for a communication session is selected. And a control module for determining the switching information for switching each of the connections between the lower transport interface and the plurality of different transport protocol implementations.

Description

本発明は、異なるプロトコル実装間の切替えを行う、特に、TCPの異なる実装間の切替えを行う方法および装置に関する。   The present invention relates to a method and apparatus for switching between different protocol implementations, in particular for switching between different implementations of TCP.

近年、コンピュータと、PDA(個人用携帯情報端末)、携帯電話機などの他のコンピューティング通信機器とのネットワーキングが大きな課題になっている。特に、インターネットが新生のモバイルネットワーキング技術(例えばGSM、WLAN、GPRS、i−mode、UMTSなど)とともに爆発的に成長したことにより新しく生まれる個々の電子機器を単一または複数のネットワークにつなげて、それらが互いに通信することができるようにする要求が高まってきている。   In recent years, networking between computers and other computing communication devices such as personal digital assistants (PDAs) and mobile phones has become a major issue. In particular, the individual electronic devices that are born as a result of the Internet's explosive growth with emerging mobile networking technologies (eg GSM, WLAN, GPRS, i-mode, UMTS, etc.) can be connected to single or multiple networks. There is an increasing demand to enable them to communicate with each other.

2つの機器を接続するため、多種多様なネットワーキング方法およびプロトコルが使用される。それらは異なるプロトコルを使用し、異なる標準(例えば2、3例を挙げると、携帯電話機のGSM標準、第3世代携帯電話機のUMTS標準、無線LANのIEEE802.11標準など)に準拠する。2つのコンピュータまたは機器の間の通信におそらく最も広く使用されている標準は、インターネットに使用される一般にTCP/IP(transmission control protocol/internet protocol)と呼ばれるプロトコルである。   A wide variety of networking methods and protocols are used to connect the two devices. They use different protocols and comply with different standards (for example, GSM standards for mobile phones, UMTS standards for third generation mobile phones, IEEE 802.11 standards for wireless LANs, to name a few). Probably the most widely used standard for communication between two computers or devices is a protocol commonly used for the Internet called TCP / IP (transmission control protocol / internet protocol).

斯かる標準およびプロトコルを定義し記述するため、通常、マルチレイヤモデルを参照してアーキテクチャが記述される。マルチレイヤモデルの中でも最も広く利用されるモデルは“ISO−OSI層モデル”である。このモデルはアプリケーション層と呼ばれる最上層から物理層と呼ばれる最下層までの7層から成り、物理層はネットワークの非常に低いレベルにおける電気信号および信号構造を規定する。図1にこのモデルを概略的に示す。   To define and describe such standards and protocols, the architecture is usually described with reference to a multi-layer model. The most widely used model among the multi-layer models is the “ISO-OSI layer model”. This model consists of seven layers from the top layer called the application layer to the bottom layer called the physical layer, which defines electrical signals and signal structures at a very low level in the network. FIG. 1 schematically shows this model.

TCP/IPの記述と定義には、図2に示すような4層モデルがよく参照される。このTCP/IPモデルは、最下層としてネットワーク層を含む。このネットワーク層では、トークンリング(token-ring)LAN、イーサネット(Ethernet)LAN、X.25通信などの特定のネットワークの仕様が定義される。他の図示されていない例としては、無線LAN、GSM通信などが挙げられる。   For the description and definition of TCP / IP, a four-layer model as shown in FIG. 2 is often referred to. This TCP / IP model includes a network layer as the lowest layer. In this network layer, token-ring LAN, Ethernet LAN, X. Specific network specifications such as 25 communications are defined. Other examples not shown include wireless LAN, GSM communication, and the like.

ネットワーク層の上には、インターネットプロトコルの処理を担当するインターネット層が配置されている。インターネット層の上には、伝送制御プロトコル(TCP)を処理するいわゆるトランスポート層が配置されている。図2にはトランスポート層の別のプロトコルも示されている。それはユーザ・データグラム・プロトコル(UDP:user datagram protocol)と呼ばれ、伝送制御プロトコルとは少し異なる働き方をする。   Above the network layer is an Internet layer that is responsible for processing Internet protocols. A so-called transport layer for processing a transmission control protocol (TCP) is arranged on the Internet layer. FIG. 2 also shows another transport layer protocol. It is called the user datagram protocol (UDP) and works a little differently than the transmission control protocol.

トランスポート層の上には図2に示すようにアプリケーションの処理を担当するアプリケーション層が配置されている。   On the transport layer, as shown in FIG. 2, an application layer in charge of application processing is arranged.

これらの図から、伝送制御プロトコル(TCP)を有するトランスポート層は、ネットワークまたはアンダーレイ・ネットワーク(underlying network)の特性に対して特有な層(図1で言えば、ネットワーク層と、データリンク層と、物理層であり、あるいは図2で言えば、インターネット層とネットワーク層)の上にあることが認識できる。このおかげで特に伝装置制御プロトコル(TCP)は、ネットワークの基礎となる構造からは比較的独立したものとなる。   From these figures, the transport layer having the transmission control protocol (TCP) is a layer specific to the characteristics of the network or the underlaying network (in FIG. 1, the network layer and the data link layer). It can be recognized that it is in the physical layer, or in FIG. 2, on the Internet layer and the network layer. Thanks to this, the transmission control protocol (TCP) in particular is relatively independent from the underlying structure of the network.

しかしながら、それでもなおトランスポート層より下位に置かれ得るネットワークの間に非常に大きな違いが存在することから、特定のアンダーレイ・ネットワークの構造(例えば、GSMネットワーク、無線LAN、およびイーサネットといった固定型有線LAN)に適応した異なるフレーバ(flavour)のTCPを結果的にもたらす個別のネットワークに対する最適化が発展してきた。これらの異なるネットワーク構造に対して、個別のアンダーレイ・ネットワークの構造に対して最適化された若干異なるバージョンのTCPが開発されている。   However, because there are still significant differences between networks that can be placed below the transport layer, certain underlay network structures (eg, fixed wired such as GSM networks, wireless LANs, and Ethernet) Optimization for individual networks has resulted in the development of different flavors of TCP adapted to LAN). For these different network structures, slightly different versions of TCP have been developed that are optimized for the structure of individual underlay networks.

例えば、固定型有線ネットワークの場合、従来のTCPは、セグメントの損失をネットワーク輻輳の示唆として解釈し、それに応じて送信速度を調節している。しかしながら、移動体ネットワークがアンダーレイ・ネットワーク(underlying network)である場合には、セグメントの損失が発生することに関してネットワーク輻輳以外の他の理由が存在する可能性が大いにある。それゆえ損失セグメントに応答して送信速度を調節する必要は実際上なくなることがある。脆弱なリンクと損失率が高いリンクとの上において古典的なTCPバージョンの純粋なパフォーマンスを処理するために、例えば脆弱リンクの場合に適用できる特別なフレーバのTCPが開発されている。   For example, in the case of a fixed wired network, conventional TCP interprets segment loss as an indication of network congestion and adjusts the transmission rate accordingly. However, if the mobile network is an underlying network, there can be other reasons besides network congestion regarding the loss of segments. Therefore, it may be practically unnecessary to adjust the transmission rate in response to lost segments. In order to handle the pure performance of the classic TCP version over weak links and high loss rate links, special flavored TCPs have been developed that can be applied, for example, in the case of weak links.

同様に、TCPは、従来のTCP実装(TCP implementation)に固有であるウィンドウサイズの適応の問題があるために、多くの場合において、あるリンク上で利用可能な全帯域を有効に活用できていない。従来または古典的なTCP実装が最適なパフォーマンスを提供していない他のケースは、例えば高遅延(例えば衛星リンク)である。結果、長年にわたり、多種多様な異なるTCP実装および拡張が、脆弱無線リンク、高速リンク、および高遅延リンクといった異なるコンテクストで提案されている。これらのバージョンは、こうした各ケースでかなりの性能向上を結果的にもたらす。しかしながら、これらの最適化はそれらが与えられている個別のアプリケーションに限定される。   Similarly, because TCP has a window size adaptation problem inherent in the conventional TCP implementation, in many cases, it cannot effectively utilize the entire bandwidth available on a link. . Other cases where traditional or classic TCP implementations do not provide optimal performance are, for example, high latency (eg, satellite links). As a result, over the years, a wide variety of different TCP implementations and extensions have been proposed in different contexts, such as vulnerable wireless links, high speed links, and high latency links. These versions result in significant performance improvements in each of these cases. However, these optimizations are limited to the specific application for which they are given.

異なったフレーバのTCPの例としては、Reno TCPと、Tahoe TCPと、Las Vegas TCPと、Sack TCPとがある。これらのフレーバのTCPは、例えば、損失パケットの処理の仕方で異なっており、例えば異なるフローレート制御メカニズムまたはリスタートメカニズムで異なる。Reno TCPは例えば、高速再送を含み、そのため高損失ネットワークの場合には一般にTahoe TCPよりも効率的である。というのは、それはTahoe TCPが行うように全てのパケット損失に対してスロースタートに入らないからである。   Examples of different flavor TCPs include Reno TCP, Tahoe TCP, Las Vegas TCP, and Sack TCP. These flavors of TCP differ, for example, in how lost packets are handled, for example, in different flow rate control mechanisms or restart mechanisms. Reno TCP includes, for example, high-speed retransmission and is therefore generally more efficient than Tahoe TCP for high loss networks. This is because it does not go into slow start for all packet losses as Tahoe TCP does.

原理的には、異なるフレーバ(flavours)または実装(implementations)のTCP/IPは互いに通信し合うことができるが、2つの異なるTCP/IP実装の間の通信の場合においては、結果として生じるデータフローは全てのケースで最適化されるわけではない。これらの問題は、近年、基礎インフラ(ストラクチャ)に関して時間的に変化することさえある異種混交のネットワークおよび通信リンクがより一般的になりつつあることから、特に重要になる。例えば、ノート型コンピュータまたはPDAは、ある時間では固定型有線ネットワークに接続されることがあるが、ユーザが移動すると、アンダーレイ・ネットワークの構造は、例えばカフェテリア内のホットスポットといったWLANインフラストラクチャあるいはノート型コンピュータに差し込まれる対応するアダプタカードを利用するGSMネットワーク構造に変わることがある。このことは、あるTCP実装の適切度は時間の経過とともに変わる場合があり、その結果、結果として生じるデータフローは最適化されない場合があることを意味している。   In principle, TCP / IP with different flavors or implementations can communicate with each other, but in the case of communication between two different TCP / IP implementations, the resulting data flow Are not optimized in all cases. These problems are particularly important in recent years as heterogeneous networks and communication links that are even time-varying with respect to the underlying infrastructure (structure) are becoming more common. For example, a notebook computer or PDA may be connected to a fixed wired network at some point in time, but when a user moves, the structure of the underlay network may be a WLAN infrastructure such as a hot spot in a cafeteria or a notebook. May change to a GSM network structure that uses a corresponding adapter card that plugs into a type computer. This means that the appropriateness of a TCP implementation may change over time, and as a result, the resulting data flow may not be optimized.

以上の点から、本発明の課題はこれらの欠点を克服するためのソリューションを提供することにある。   In view of the above, it is an object of the present invention to provide a solution for overcoming these drawbacks.

上記課題を解決するため、本発明は、トランスポート・プロトコルの異なる実装(implementation)間の切替えを行う装置を提供する。当該装置は、
複数の異なるトランスポート・プロトコルと、
前記複数の異なるトランスポート・プロトコル実装(transport protocol implementation)をトランスポート層より上の層と接続するための上位トランスポート・インタフェース(upper transport interface)と、
前記複数の異なるトランスポート・プロトコル実装を前記トランスポート層より下の層と接続するための下位トランスポート・インタフェース(lower transport interface)とを備えており、
前記上位トランスポート・インタフェースと前記下位トランスポート・インタフェースとは、切替情報(switching information)に基づいて前記異なるトランスポート・プロトコル実装との間の接続を切替えるように適合されるものであり、
ある通信セッションに対して最適化されたデータフローを与えるトランスポート・プロトコル実装が選択されるように、前記上位トランスポート・インタフェースと前記複数の異なるトランスポート・プロトコル実装との間の接続と、前記下位トランスポート・インタフェースと前記複数の異なるトランスポート・プロトコル実装との間の接続とをそれぞれ切替えるための前記切替情報を決定する制御モジュールを更に備えるものである。
To solve the above problems, the present invention provides an apparatus for switching between different implementations of transport protocols. The device is
Several different transport protocols,
An upper transport interface for connecting the plurality of different transport protocol implementations with a layer above the transport layer;
A lower transport interface for connecting the plurality of different transport protocol implementations with a layer below the transport layer;
The upper transport interface and the lower transport interface are adapted to switch a connection between the different transport protocol implementations based on switching information;
A connection between the upper transport interface and the plurality of different transport protocol implementations such that a transport protocol implementation that provides an optimized data flow for a communication session is selected; And a control module for determining the switching information for switching each of a connection between a lower transport interface and the plurality of different transport protocol implementations.

本装置は、異なるトランスポート・プロトコル実装を切替えることにより、通信セッションのデータフローの最適化を可能にする。これは、所与の条件の下で最も適したトランスポート・プロトコル実装が決定かつ選択でき、選択されたTCP実装を通るデータフローを経路指定する(route)ことができるようになるからである。さらに、切替機能を切替情報を決定する能力とともに提供することにより、既存のTCP実装を使用すること及び既存のTCP実装を切替えることが可能になる。   The device allows optimization of the data flow of a communication session by switching between different transport protocol implementations. This is because the most suitable transport protocol implementation under a given condition can be determined and selected and the data flow through the selected TCP implementation can be routed. Furthermore, by providing a switching function with the ability to determine switching information, it is possible to use an existing TCP implementation and switch an existing TCP implementation.

1つの一般的なプロトコル・バージョンよりも実際に異なるプロトコル実装を提供することにより、本装置は、既存のプロトコル実装を利用することができ、それゆえ特に既存システム(レガシー・システム)に実装されるときに有利である。   By providing a protocol implementation that is actually different than one general protocol version, the device can take advantage of an existing protocol implementation and is therefore specifically implemented in an existing system (legacy system). Sometimes it is advantageous.

本装置において、その一態様として、前記制御モジュールは、前記トランスポート層より下位に実装されたネットワークの構造のタイプを代表する1つ以上の特性を決定して、トランスポート・プロトコルがアンダーレイ・ネットワークの構造(underlying network structure)に適応するように、選択されるべきトランスポート・プロトコルを決定するモジュールを含むものである。アンダーレイ・ネットワークの構造の特性を決定することにより、所与のトランスポート・プロトコル・バージョンのパフォーマンスに最も大きな影響を及ぼすパラメータが決定され、どのTCPバージョンを使用すべきかを決定するための基準として利用される。これにより、切替装置を特に効果的に所与のネットワーク条件へ適応することができる。   In this apparatus, as one aspect, the control module determines one or more characteristics representative of the type of network structure implemented below the transport layer, and the transport protocol is underlayed. It includes a module that determines the transport protocol to be selected to accommodate the underlying network structure. By determining the characteristics of the structure of the underlay network, the parameters that have the greatest impact on the performance of a given transport protocol version are determined and used as a basis for determining which TCP version to use. Used. This makes it possible to adapt the switching device to a given network condition particularly effectively.

本装置において、その一態様として、アンダーレイ・ネットワークの特性(underlying network characteristics)を決定する前記モジュールは、既存のオペレーティング・システムの機能を利用してアンダーレイ・ネットワークの特性を決定するモジュールを含むものである。   In this apparatus, as one aspect thereof, the module for determining the underlying network characteristics includes a module for determining the characteristics of the underlay network using the functions of an existing operating system. It is a waste.

既存のオペレーティング・システム機能を利用することにより、アンダーレイ・ネットワークの特性を決定するモジュールの実装がかなりシンプルになる。   By utilizing existing operating system functions, the implementation of the module that determines the characteristics of the underlay network is considerably simplified.

本装置において、その一態様として、アンダーレイ・ネットワークの特性を決定する前記モジュールは、プロービング信号を送信し、該プロービング信号に対する応答を評価し、該評価に基づいてアンダーレイ・ネットワークの特性を決定するモジュールを含むものである。   In this apparatus, as one aspect, the module for determining the characteristics of the underlay network transmits a probing signal, evaluates a response to the probing signal, and determines the characteristics of the underlay network based on the evaluation. The module to be included is included.

プロービングのメカニズムは、オペレーティング・システムのクエリーのようなよりシンプルな方法が利用できない場合に有利である。さらに、単なる基礎をなすハードウェアのコンポーネント又は構造よりもむしろ、プロービングを通じてネットワークの実際の挙動が決定でき、その結果、トランスポート・プロトコル実装の選択を、基礎をなすハードウェアをただ単に見るだけのときに、予測される挙動とは異なり得る実際の挙動に適応させることが可能となる。   Probing mechanisms are advantageous when simpler methods such as operating system queries are not available. In addition, the actual behavior of the network can be determined through probing, rather than just the underlying hardware components or structure, so that the choice of transport protocol implementation is simply a look at the underlying hardware. Sometimes it is possible to adapt to actual behavior that may differ from the expected behavior.

本装置において、その一態様として、アンダーレイ・ネットワークの特性を決定する前記モジュールは、前記通信セッションの他方のエンドポイントとの通信を確立し、前記通信セッションの前記他方のエンドポイントにおける対応するモジュールと前記通信セッションで使用される適切なトランスポート・プロトコル実装セッションをネゴシエーション(negotiate)するためのモジュールを含むものである。   In this apparatus, as one aspect, the module for determining the characteristics of the underlay network establishes communication with the other endpoint of the communication session, and the corresponding module at the other endpoint of the communication session. And a module for negotiating an appropriate transport protocol implementation session used in the communication session.

直接のネゴシエーションにより、切替装置が置かれている通信エンドポイントにおける状況だけでなく、他方の通信エンドポイントにおける状況も考慮に入れることが可能となる。このおかげで、使用すべきトランスポート・プロトコルのより良い適合された選択が可能となり、さらに、切替が実行時間(ランタイム)中に実行されるべき場合に、例えばヘッダ・パラメータを変換することが不必要になるという利点が存在する。   Direct negotiation makes it possible to take into account not only the situation at the communication endpoint where the switching device is located but also the situation at the other communication endpoint. This allows a better adapted selection of the transport protocol to be used, and also prevents the conversion of header parameters, for example, when switching should be performed during runtime. There is an advantage that it becomes necessary.

本装置において、その一態様として、前記制御モジュールは、現在実行中の通信セッション中において、実行時間(ランタイム)中に前記複数の異なるトランスポート・プロトコル実装を切替えるように構成されるものである。これは例えば、通信相手の一方が移動したために条件が変わり、別のトランスポート・プロトコル実装への切替が必要になるまたは少なくとも望ましくなる場合に特に有利である。   In one aspect of the apparatus, the control module is configured to switch between the different transport protocol implementations during runtime (runtime) during a currently running communication session. This is particularly advantageous if, for example, the condition changes because one of the communicating parties has moved and a switch to another transport protocol implementation becomes necessary or at least desirable.

本装置において、その一態様として、前記制御モジュールは、
実行時間中に新たなトランスポート・プロトコル実装へ切替のために使用される前記新たなトランスポート・プロトコル実装の開始をトリガーするためのモジュールと、
現在実行中のトランスポート・プロトコル・セッションのTCPヘッダのコンテンツを変換して、前記新しく開始されたTCP実装へ送られた前記ヘッダ及び前記新しく開始されたTCPから送られた前記ヘッダが、現在実行中の通信セッションの前記他方の通信エンドポイントにおけるトランスポート・プロトコル実装によって送受信された前記TCPヘッダと整合するようにするモジュールと
を備えるものである。
In this apparatus, as one aspect thereof, the control module is
A module for triggering the start of the new transport protocol implementation used to switch to a new transport protocol implementation during runtime;
Transforms the contents of the TCP header of the currently running transport protocol session so that the header sent to the newly started TCP implementation and the header sent from the newly started TCP are currently executed A module for matching with the TCP header sent and received by the transport protocol implementation at the other communication endpoint of the middle communication session.

斯かる独立した切替を使用すれば、既存のシステムにほんのわずかな修正を加えるだけよく、切替メカニズムの実装は比較的容易になる。さらに、この独立した切替は、アプリケーション層が下位の変更に気がつかないようにアプリケーション層にとって透過的なやり方で実行できる。このことはアプリケーション層で実行中の“セッション”が変わらず、中断されないことを意味する。さらに、他方の通信エンドポイントで使用されるトランスポート・プロトコル実装のほかに両方の通信エンドポイントにおけるアプリケーション層もまた、異なるトランスポート・プロトコル実装の切替には気がつかない。   Using such independent switching requires only minor modifications to existing systems and makes the switching mechanism relatively easy to implement. Furthermore, this independent switching can be performed in a manner that is transparent to the application layer so that the application layer is unaware of the underlying changes. This means that the “session” being executed in the application layer does not change and is not interrupted. In addition to the transport protocol implementation used by the other communication endpoint, the application layer at both communication endpoints is also unaware of switching between different transport protocol implementations.

本装置において、その一態様として、前記制御モジュールは、
ある異なるトランスポート・プロトコル実装に切替えられることになっているその切替え前のトランスポート・プロトコル・セッションからヘッダデータを抽出するモジュールと、
前記抽出されたトランスポート・プロトコル・セッションのヘッダデータを前記新しく開かれたトランスポート・プロトコルセッショに挿入して、前記新しく開かれたトランスポート・プロトコル・セッションが、ある異なるトランスポート・プロトコル実装を介して、前記切替え前のトランスポート・プロトコル・セッションを再開することができるようにするモジュールと
を備えるものである。
In this apparatus, as one aspect thereof, the control module is
A module that extracts header data from a pre-switch transport protocol session that is to be switched to a different transport protocol implementation;
Inserting the extracted transport protocol session header data into the newly opened transport protocol session so that the newly opened transport protocol session has a different transport protocol implementation. And a module that enables the transport protocol session before switching to be resumed.

トランスポート・プロトコルのヘッダ・パラメータを新たなトランスポート・プロトコルコネクションへ直接的に挿入(inject)することにより、ヘッダデータのトランスコーディング(transcoding)が不要になる。さらに、これはアプリケーション層にとって透過的なやり方で実行できる。言い換えると、TCP層の最上部にあるアプリケーション層は、使用中である下位のTCP実装の変更には気がつかない。   By directly injecting the transport protocol header parameters into the new transport protocol connection, transcoding of the header data becomes unnecessary. Furthermore, this can be done in a manner that is transparent to the application layer. In other words, the application layer at the top of the TCP layer is unaware of changes in the underlying TCP implementation being used.

本装置において、その一態様として、前記制御モジュールは、
現在実行中のトランスポート・プロトコル・セッションが、第1の通信エンドポイントにおいて異なるトランスポート・プロトコル実装へ切替えられる場合において、切替が実行されるべきである対応する第2の通信エンドポイントにおける対応するモジュールとネゴシエーションして、それらの通信エンドポイントにおける両方の制御モジュールが、ある異なるトランスポート・プロトコル実装を対象とする新たなトランスポート・プロトコル・セッションを開き、その際に実行中のトラフィックが、前記新たに開かれたトランスポート・プロトコル・セッションと両方の通信エンドポイントにおける前記異なるトランスポート・プロトコル実装とを通じて再開されるようにするモジュールを備えるものである。
In this apparatus, as one aspect thereof, the control module is
If the currently executing transport protocol session is switched to a different transport protocol implementation at the first communication endpoint, the corresponding at the corresponding second communication endpoint at which switching should be performed. Negotiating with the module, both control modules at their communication endpoints open a new transport protocol session targeting a different transport protocol implementation, and the traffic in progress is It comprises a module that allows it to be resumed through a newly opened transport protocol session and the different transport protocol implementations at both communication endpoints.

このような十分に調整された切替(fully co-ordinated switching)により、ヘッダデータを新たなトランスポート・プロトコル・セッションへ挿入する必要がなくなる。なぜなら、両方の通信エンドポイントの側で完全に新しい(TCP)セッションを確立することが可能となるからである。これは、アプリケーション層で実行されており通信セッションを使用するアプリケーションに対し十分に透過的な状態を保つやり方で実行することもできる。   Such fully coordinated switching eliminates the need to insert header data into a new transport protocol session. This is because it is possible to establish completely new (TCP) sessions on both communication endpoints. This can also be done in a manner that is executed at the application layer and remains sufficiently transparent to the application using the communication session.

本装置において、その一態様として、前記制御モジュールは、異なるトランスポート・プロトコル実装への切替をトリガーするためのトリガー信号を受信するように構成されるものである。   In this apparatus, as one aspect thereof, the control module is configured to receive a trigger signal for triggering switching to a different transport protocol implementation.

トリガー信号を受信することにより、ハンドオーバ、サービス品質の変更、または切替の判断に影響を及ぼしうる任意の他の条件など、外部の作用に対応することが可能となる。   By receiving the trigger signal, it is possible to deal with external effects, such as any other conditions that may affect handover, service quality change, or switching decisions.

本装置において、その一態様として、前記トリガー信号は、
移動体通信のセッションの間のハンドオーバと、
現在実行中の通信セッションの間のサービス品質の変更と、
現在実行中の通信セッションで使用されるハードウェアまたはソフトウェアモジュールの変更と、のいずれか1つのメカニズムに応答して生成される。
In this apparatus, as one aspect thereof, the trigger signal is:
Handover between mobile communication sessions;
Quality of service changes during the currently running communication session;
Generated in response to any one of the hardware or software module changes used in the currently executing communication session.

上記課題を解決するため、本発明は、トランスポート・プロトコルの異なる実装間の切替えを行う方法も提供する。本方法は、
トランスポート・プロトコルの複数の異なる実装をトランスポート層より上の層と接続するためにその複数の異なるトランスポート・プロトコル実装を上位トランスポート・インタフェースと接続するステップと、
前記トランスポート・プロトコルの前記複数の異なる実装をトランスポート層より下の層と接続するために前記複数の異なるトランスポート・プロトコル実装を下位トランスポート・インタフェースと接続するステップと、
前記上位トランスポート・インタフェースと前記異なるトランスポート・プロトコル実装との間の接続と、前記下位トランスポート・インタフェースと前記異なるトランスポート・プロトコル実装との間の接続とを切替情報に基づいてそれぞれ切替えるステップと、
ある通信セッションに対して最適化されたデータフローを与えるトランスポート・プロトコル実装が選択されるように、前記上位トランスポート・インタフェースと前記複数の異なるトランスポート・プロトコル実装との間の接続と、前記下位トランスポート・インタフェースと前記複数の異なるトランスポート・プロトコル実装との間の接続とをそれぞれ切替えるための前記切替情報を決定するステップとを含む。
In order to solve the above problems, the present invention also provides a method for switching between different implementations of the transport protocol. This method
Connecting the different transport protocol implementations with an upper transport interface to connect the different implementations of the transport protocol with a layer above the transport layer;
Connecting the plurality of different transport protocol implementations with a lower transport interface to connect the plurality of different implementations of the transport protocol with a layer below a transport layer;
Switching between a connection between the upper transport interface and the different transport protocol implementation and a connection between the lower transport interface and the different transport protocol implementation based on switching information, respectively. When,
A connection between the upper transport interface and the plurality of different transport protocol implementations such that a transport protocol implementation that provides an optimized data flow for a communication session is selected; Determining the switching information for switching each of a connection between a lower transport interface and the plurality of different transport protocol implementations.

上記方法は本発明の装置によって実施することが可能である。   The above method can be performed by the apparatus of the present invention.

図3はTCP/IPネットワークにおける一般的なプロトコル・スタック(protocol stack)を概略的に示している。下位の2層L1(物理層)およびL2(ネットワーク層)の上には、IP(インターネットプロトコル)層L3が存在し、その最上部には、本実施形態におけるTCPを実装するトランスポート層が配置されている。TCPを実装するトランスポート層の上に配置された対応するソケット・インタフェース(socket interfaces)を通じて1つ以上のセッションが、維持されるようになっている。   FIG. 3 schematically shows a general protocol stack in a TCP / IP network. An IP (Internet Protocol) layer L3 exists above the lower two layers L1 (physical layer) and L2 (network layer), and a transport layer that implements TCP according to the present embodiment is disposed on the uppermost layer. Has been. One or more sessions are maintained through corresponding socket interfaces located above the transport layer implementing TCP.

本発明の実施の一形態によれば、図3に示されているトランスポート層は、図4を参照して次に説明する切替装置によって実装される。図4は通信エンドポイントAと別の通信エンドポイントBとの間の通信リンクを示している。本実施形態における両方のエンドポイントは、アプリケーション層の上に位置し、それらは、コンピュータ上で実行するプロセス、携帯電話機、PDA、WLANインタフェースを備えたノート型パソコン、もしくはデスクトップ型コンピュータ、スマートフォンなどによって提供され得る。通信エンドポイントAを実装する機器またはプロセスは、トランスポート層を実装する切替装置SWAを通り、A側のインターネット・プロトコル・スタックの層L1乃至L3を通り、図4に示すようなインターネットINの一般的に複数のノードを通り、B側のインターネット・プロトコル・スタックの層L1乃至L3を通り、そして切替装置Bを通って、最後にエンドポイントBへと、通信エンドポイントBを実装する機器またはプロセスに接続される。   According to an embodiment of the present invention, the transport layer shown in FIG. 3 is implemented by a switching device described next with reference to FIG. FIG. 4 shows a communication link between communication endpoint A and another communication endpoint B. Both endpoints in this embodiment are located above the application layer, which can be a process running on a computer, a mobile phone, a PDA, a notebook computer with a WLAN interface, or a desktop computer, a smartphone, etc. Can be provided. A device or process that implements the communication end point A passes through the switching device SWA that implements the transport layer, passes through the Internet protocol stack layers L1 to L3 on the A side, and the general Internet IN as shown in FIG. Devices or processes that implement a communication endpoint B, typically through multiple nodes, through B-side Internet protocol stack layers L1-L3, and through switch B and finally to endpoint B Connected to.

切替装置SWAとSWBはそれぞれ、異なるアンダーレイ・ネットワークの構造に対して最適化された複数の異なるトランスポート・プロトコル実装を実装している。切替装置SWA及びSWBは、これらの異なる実装を切替えることにより、AからBへそしてBからAへのトラフィックが所与のアンダーレイ・ネットワーク(underlying network)の特性に対して最も適したTCP実装を通して経路指定されるようにすることが可能である。例えば、機器Aは、例えばこの機器Aを所有するユーザの雇用主の会社サーバであり得る機器Bとの先のコネクションを確立するために固定型有線イーサネット(Ethernet)に接続されているノート型パソコンの場合がある。しかしながら、ユーザはオフィスを後にし、その結果、固定型有線コネクションが切断され、そのあとそのユーザはWLANホットスポット(このスポットを介してユーザはインターネットを通じてサーバBに接続したいと考えている)が提供されているエリアに入ってしまう場合がある。このことはA側のアンダーレイ・ネットワークの特性が変わり、そのためにコネクションに使用されるTCP実装の変更が有利となり得ることを意味する。切替装置は、実施の一形態においてアンダーレイ・ネットワークの特性を検出し、通信セッションに使用される提供されたTCP実装の1つを適切に選択する。この決定および選択は、B側に切替装置SWBが全く与えられていなくとも実行することが可能であることに言及しておきたい。このことは、A側とそして同じくB側にあるトランスポート層の上下の層が切替に気が付かないように、切替がユーザに意識されないで実行されることを意味する。   The switching devices SWA and SWB each implement a plurality of different transport protocol implementations optimized for different underlay network structures. Switching devices SWA and SWB switch between these different implementations so that traffic from A to B and from B to A is through the TCP implementation most suitable for the characteristics of a given underlying network. It can be routed. For example, device A is a laptop computer connected to a fixed wired Ethernet (Ethernet) to establish a previous connection with device B, which may be, for example, a company server of an employer of a user who owns device A There are cases. However, the user leaves the office and as a result the fixed wired connection is disconnected and then the user provides a WLAN hotspot (through which the user wants to connect to Server B over the Internet) You may end up in the area that is being used. This means that the characteristics of the A side underlay network can change, which can be advantageous in changing the TCP implementation used for the connection. The switching device in one embodiment detects the characteristics of the underlay network and appropriately selects one of the provided TCP implementations used for the communication session. It should be noted that this determination and selection can be performed even if no switching device SWB is provided on the B side. This means that switching is performed without the user being aware that the upper and lower layers of the transport layer on the A side and also on the B side are unaware of the switching.

図4に示されているように両方の通信エンドポイントに切替装置が備わっている場合においては、通信リンクの両側で適合化(adaptation)が実行できる。   In the case where both communication endpoints are equipped with switching devices as shown in FIG. 4, adaptation can be performed on both sides of the communication link.

さらに、実施の更なる一形態として、切替装置SWAは、切替装置SWBに接続して、AとBとの間の通信セッションに使用される適切なTCP実装をネゴシエーションする(negotiate)ことが可能である。   Furthermore, as a further embodiment, the switching device SWA can connect to the switching device SWB and negotiate an appropriate TCP implementation to be used for the communication session between A and B. is there.

次に図5を参照して、本発明による切替装置(例えば図4における装置SWAおよびSWB)の1つの実施形態をより詳しく説明する。図5からわかるように、本実施形態は、TCPxとTCPyとでラベルされた2つの異なるTCP実装を有する。それらは例えば、固定型有線LANに対して最適化されたTCP実装(TCPx)と無線LANに対して最適化された更なるTCP実装(TCPy)とを示す場合がある。この2つのTCP実装の下には、IP層と異なるTCPフレーバを持つ2つの実装とをつなぐ“LTI(lower transport interface)”とラベルされたインタフェースが置かれている。同様に、2つのTCP実装の上には、この2つのTCP実装とアプリケーション層へのコネクションを確立するソケット・インタフェース(socket interface)とをつなぐ“UTI(upper transport interface)”とラベルされた別のインタフェースが存在する。2つのTCP実装TCPxおよびTCPyは、それぞれ下位トランスポート・インタフェースLTIと上位トランスポート・インタフェースUTIとに接続した標準的なTCP実装であり得る。   Referring now to FIG. 5, one embodiment of a switching device according to the present invention (eg, devices SWA and SWB in FIG. 4) will be described in more detail. As can be seen from FIG. 5, the present embodiment has two different TCP implementations labeled TCPx and TCPy. They may indicate, for example, a TCP implementation (TCPx) optimized for a fixed wired LAN and a further TCP implementation (TCPy) optimized for a wireless LAN. Under these two TCP implementations, an interface labeled “LTI (lower transport interface)” that connects two implementations having different TCP flavors with the IP layer is placed. Similarly, on top of the two TCP implementations, there is another labeled "UTI (upper transport interface)" that connects the two TCP implementations with a socket interface that establishes a connection to the application layer. An interface exists. The two TCP implementations TCPx and TCPy may be standard TCP implementations connected to the lower transport interface LTI and the upper transport interface UTI, respectively.

図5に示したような構成では、層L1、層L2、および層L3を経由して到着するセグメントを経路指定して、それらを下位トランスポート・インタフェースLTIを通して“正しい”または“最適化された”TCP実装に導くことが可能である。この“正しい”または“最適化された”TCP実装は、トランスポート層より下の下位層のネットワーク特性に依存するようなTCPxまたはTCPyのいずれかであり得る。図5からわかるように、上位および下位トランスポート・インタフェースは、異なるTCP実装をどれが最も適切かに応じて“切替える”ことができる。どのTCP実装が使用されるかについての決定は、下位層のアンダーレイ・ネットワークの特性に応じて実行することができる。ここではその特性は、例えば、通信相手との間でどの種類のネットワーク・コネクション(例えば、固定型有線イーサネット、WLAN、ギガビット・イーサネット、GSMなど)が使用されるかを意味する場合がある。これらのアンダーレイ・ネットワークの特性に基づいて、TCP実装が選ばれ、その選ばれたTCP実装からデータが上位インタフェースへ、そしてそこからソケット・インタフェースヘと送られる。   In a configuration such as that shown in FIG. 5, the segments arriving via layer L1, layer L2, and layer L3 are routed and made “correct” or “optimized” through the lower transport interface LTI. “It can lead to TCP implementation. This “correct” or “optimized” TCP implementation can be either TCPx or TCPy, depending on the network characteristics of the lower layers below the transport layer. As can be seen from FIG. 5, the upper and lower transport interfaces can “switch” different TCP implementations depending on which is most appropriate. The decision as to which TCP implementation is used can be made depending on the characteristics of the lower layer underlay network. Here, the characteristic may mean, for example, what kind of network connection (for example, fixed wired Ethernet, WLAN, Gigabit Ethernet, GSM, etc.) is used with the communication partner. Based on the characteristics of these underlay networks, a TCP implementation is chosen, and data is sent from the chosen TCP implementation to the upper interface and from there to the socket interface.

逆方向の場合においては、ソケット・インタフェースを経由して到着するパケットまたはセグメントは、上位トランスポート・インタフェースUTIを通過する。UTIにおいて、パケットまたはセグメントは、上位ネットワーク特性に応じて実装TCPxまたは実装TCPyのいずれか一方に導かれ、そこから下流方向に下位トランスポート・インタフェースLTIへ、そして図4にすでに示したように次にL3、L2、およびL1へと送られ、そこからインターネットINを経由して他方の通信相手(図示されていない)に送られる。   In the reverse case, packets or segments arriving via the socket interface pass through the upper transport interface UTI. In UTI, a packet or segment is routed to either implementation TCPx or implementation TCPy depending on the upper network characteristics, from there downstream to the lower transport interface LTI, and as already shown in FIG. To L3, L2, and L1, and from there to the other communication partner (not shown) via the Internet IN.

セグメントに対して正しい経路を選ぶために上位および下位インタフェースによってそれぞれどのTCP実装が使用されるべきかが決定されなければならない。この決定は、図5に示した制御モジュールCMによって行われる。これについて次に説明する。   It must be determined by the upper and lower interfaces which TCP implementation should be used, respectively, in order to choose the correct path for the segment. This determination is performed by the control module CM shown in FIG. This will be described next.

実施の一形態によれば、制御モジュールは、下位層L1、...、L3の1つ以上とのインタフェース(図5のLLI)を備える。このインタフェースLLIは、下位層の1つ以上と直接通信することによって下位層の種類についての情報を引き出すことが可能である。その目的のため、それは下位層の1つの(図示されていない)API(application programming interface)を利用し、それにより下位層の1つ以上とコンタクトしてアンダーレイ・ネットワークの構造についての情報を引き出すことができる。   According to one embodiment, the control module includes lower layers L1,. . . , An interface with one or more of L3 (LLI in FIG. 5). This interface LLI can retrieve information about the types of lower layers by directly communicating with one or more of the lower layers. For that purpose, it utilizes one (not shown) API (application programming interface) in the lower layer, thereby contacting one or more of the lower layers to derive information about the structure of the underlay network be able to.

アンダーレイ・ネットワークの特性に関するこのように引き出された情報は次に、評価モジュールEVAL(evaluation module)へ送られ、EVALは、その引き出された情報に基づいてどのTCP実装を使用すべきかを決定する。制御モジュールCMは、上位トランスポート・インタフェースUTIと下位トランスポート・インタフェースLTIとに対してTCP実装としてTCPyとTCPxのどちらを使用すべきかを通知する。その後に通信が以下のようにして始まる。   The information thus extracted regarding the characteristics of the underlay network is then sent to an evaluation module (EVAL), which determines which TCP implementation to use based on the extracted information. . The control module CM notifies the upper transport interface UTI and the lower transport interface LTI which of TCPy and TCPx should be used as the TCP implementation. Then communication starts as follows.

発信通信(outgoing communication)の場合、ソケット・インタフェースは、新たなセッションを開始することになる。その通信セッションを利用する意思のあるアプリケーションは、通常のTCP/IPコネクションのように送信先(宛先)IPアドレスとポート番号とを指定し、一時的なソースIPポート番号が与えられる。この情報により、オープンすべきセッションが一意に識別される。新たなセッションをオープンするためのリクエストは、UTIによって、適切なTCPバージョンを決定するためのリクエストと見なされる。次いでUTIは、制御モジュールに通知し、制御モジュールは、オープンすべきセッションに対する最も適切なTCPバージョンを決定するために上述した決定手続きを実行する。この情報が得られたところで、UTIには制御モジュールCMによってその情報が通知され、LTIにも制御モジュールCMによって直接的にまたは代替的に図5には示されていないがUTIとLTIとの間の直接インタフェースによって通知される。この情報を使って、上位トランスポート・インタフェースUTIと下位トランスポート・インタフェースLTIとは、TCPセグメントを適切なTCP実装に送る(route)ことができる。これは、発信パケット(outgoing packet)と到来パケット(incoming packet)に対してそれぞれUTIとLTIがTCPヘッダをチェックすることにより実行することができる。このとき送信元/送信先IPアドレス及び送信元/送信先ポートの四つ組(quadruple)についての情報を見つけ出すことが可能であり、この情報は、通信セッションだけでなく、このセッションに最も適切なものとして決定されたTCPバージョンも識別する。こうして、このヘッダ情報に基づいて、UTIとLTIとは、パケットを正しいTCP実装へ送ることができる。   In the case of outgoing communication, the socket interface will initiate a new session. An application that intends to use the communication session designates a destination (destination) IP address and a port number like a normal TCP / IP connection, and is given a temporary source IP port number. This information uniquely identifies the session to be opened. A request to open a new session is considered by the UTI as a request to determine an appropriate TCP version. The UTI then informs the control module, which performs the determination procedure described above to determine the most appropriate TCP version for the session to be opened. When this information is obtained, the UTI is notified of the information by the control module CM, and the LTI is not directly or alternatively shown by the control module CM in FIG. 5, but between the UTI and the LTI. Notified by the direct interface. Using this information, the upper transport interface UTI and the lower transport interface LTI can route the TCP segment to the appropriate TCP implementation. This can be performed by the UTI and LTI checking the TCP header for outgoing packets and incoming packets, respectively. It is then possible to find information about the source / destination IP address and the source / destination port quadruple, which is most appropriate for this session as well as the communication session. Also identify the TCP version determined to be. Thus, based on this header information, UTI and LTI can send packets to the correct TCP implementation.

UTIおよびLTIには、異なるバージョンを使用するよう制御モジュールが明示的に通知しない限り使用すべきバージョンとなる“デフォルトTCPバージョン(default TCP version)”が与えられ得ることに言及しておきたい。例えば、デフォルトTCPバージョンは、セッションをオープンするための最初のステップ、例えば、セッション・オープニング・リクエスト、一時ポート番号の割り当てなど、に使用することができる。これらは、セッションを定義してそれが後で識別することができるようにし、さらに識別されたセッションに制御モジュールによって決定された特定のTCPバージョンが割り当てられるようにするために必要なステップである。   It should be noted that UTI and LTI can be given a “default TCP version” which is the version to use unless explicitly notified by the control module to use a different version. For example, the default TCP version can be used for the first step to open a session, eg, a session opening request, assigning a temporary port number, etc. These are the steps necessary to define a session so that it can be identified later and to be assigned a specific TCP version determined by the control module.

次に、到来セッション(incoming session)、言い換えると他方の通信エンドポイントによって開始されたセッションの場合に、パケットのルーティングがどのように働くかについて説明する。この場合、まず最初に下位トランスポート・インタフェースLTIがセッションをオープンするためのリクエストを受信する。LTIは、新たに識別されたセッションを一意に識別するのに必要であるので、デフォルトTCPバージョンを利用して、通信を通じてそのリクエストを送る。次に適切なTCPバージョンがすでに上述したように制御モジュールによって決定され、結果の情報がLTIとUTIとへ伝達される。LTIとUTIは、この情報を利用して、選択された適切なTCP実装に到来パケットと発信パケットとを送る(route)ことができる。すでに述べたように、ルーティングは、TCPヘッダをチェックすることによって実行することが可能である。またルーティングは、到来パケットについては下位トランスポート・インタフェースLTI、発信パケットについては上位トランスポート・インタフェースUTIによって行われる。   Next, how packet routing works in the case of an incoming session, in other words, a session initiated by the other communication endpoint will be described. In this case, first, the lower transport interface LTI receives a request to open a session. Since LTI is necessary to uniquely identify a newly identified session, it uses the default TCP version to send the request through communication. The appropriate TCP version is then determined by the control module as already described above, and the resulting information is communicated to the LTI and UTI. LTI and UTI can use this information to route incoming and outgoing packets to the appropriate selected TCP implementation. As already mentioned, routing can be performed by checking the TCP header. Routing is performed by the lower transport interface LTI for incoming packets and by the upper transport interface UTI for outgoing packets.

図5において、制御モジュールCMは、UTIおよびLTIとは別個の単一モジュールとして示されているが、制御モジュールCMは、上位トランスポート・インタフェースUTI、下位トランスポート・インタフェースLTI、またはそれらの両方の一部として実装され得ることに言及しておきたい。制御モジュールCMの動作は、UTIまたはLTIのどちらか一方によってトリガーされ得る。このUTIまたはLTIは、セッション・オープニング・リクエスト(session opening request)を、適切なTCPバージョンを決定するために制御モジュールの動作をトリガーするためのトリガーとして解釈され得る。   In FIG. 5, the control module CM is shown as a single module that is separate from the UTI and LTI, but the control module CM may be an upper transport interface UTI, a lower transport interface LTI, or both. Note that it can be implemented as part. The operation of the control module CM can be triggered by either UTI or LTI. This UTI or LTI may be interpreted as a session opening request as a trigger to trigger the operation of the control module to determine the appropriate TCP version.

図6における実施の更なる一形態によれば、制御モジュールCMは、通信エンドポイントがベースとするオペレーティング・システム(OS)のオペレーティング・システム・プリミティブ(operating system primitives)に問い合わせを行うためのクエリーモジュールQM(query module)を備える。クエリーに対するリスポンス(応答)は、評価モジュールEVAL(evaluation module)によってどれがアンダーレイ・ネットワークの構造で、その結果、どのTCPフレーバが使用されるべきかを決定するために使用され得る。決定されたTCP実装は、前の実施形態と同様に通知される。   According to a further embodiment of the implementation in FIG. 6, the control module CM is a query module for querying operating system primitives of the operating system (OS) on which the communication endpoint is based. QM (query module) is provided. The response to the query can be used by the evaluation module (EVAL) to determine which is the structure of the underlay network and, consequently, which TCP flavor should be used. The determined TCP implementation is notified as in the previous embodiment.

1つの斯かるクエリーは、例えばオペレーティング・システムのコマンド、例えばイーサネット、WLAN、ギガビット・イーサネット、GSM回線などのアンダーレイ・ネットワークについての情報を後で返す“ipconfig”または“ifconfig”であることが可能である。ネットワーク特性を適切なTCPフレーバに関連付けるルックアップテーブルに保存された情報に基づいて、評価モジュールEVALは、通信効率を最適化するためにどのTCPフレーバを使用すべきかを決定することができる。   One such query can be an “ipconfig” or “ifconfig” that later returns information about the underlay network, eg, operating system commands, eg Ethernet, WLAN, Gigabit Ethernet, GSM lines, etc. It is. Based on information stored in a lookup table that associates network characteristics with the appropriate TCP flavor, the evaluation module EVAL can determine which TCP flavor to use to optimize communication efficiency.

次に図7を参照して更なる実施形態を説明する。この更なる実施形態によれば、アンダーレイ・ネットワークの構造とそれに関して適切なTCPフレーバは、プロービング(probing)メカニズムによって決定することができる。その目的のため、TCPインタフェースは、図7に示すプロービング・モジュールPM(probing module)を備えることができる。プロービング・モジュールPMは以下のように機能する。   A further embodiment will now be described with reference to FIG. According to this further embodiment, the structure of the underlay network and the appropriate TCP flavor for it can be determined by a probing mechanism. For this purpose, the TCP interface can include a probing module PM (probing module) shown in FIG. The probing module PM functions as follows.

プロービング・モジュールPMは、通信相手となる通信エンドポイントBであり得るあるいはネットワークにおけるプロービング・メカニズムのターゲットになるための専用の特定のノードであり得るプロービング・パートナーXへ、プロービング信号(probing signal)を送信する。プロービング信号を送信し、所望の通信相手からの対応する応答を評価モジュールEVALで評価することによって、制御モジュールはアンダーレイ・ネットワークの構造の性質を決定し、それに基づいて使用すべきTCPのタイプについての判断を下すことができる。例えば、“ping”コマンドが、プロービング信号を送信するために使用することができる。各pingコマンドは、対応する通信相手からの(この通信相手が到達可能な場合にはその相手にアドレス指定された)応答をトリガーすることになる。そしてプロービング・モジュールPMは、応答が受信されるまでの時間を測定する。応答時間は、実際のネットワーク負荷、パケットがインターネットを通して取りうる特定の経路、その他の変動ファクタに依存する可能性があるため、ある個別のpingリクエストに対する応答時間は特徴的でない場合があるが、しかし実施の一形態では、応答時間のある種の分布をもたらす複数のpingリクエストを使用することが可能である。この分布は、ある平均応答時間の周囲で変動し、かつ/またはこの平均応答時間の周囲においてある統計分布を有する場合がある。この分布は、アンダーレイ・ネットワークの構造を特徴付けるものと見なされ得る。固定型有線イーサネット・ネットワークの場合には、例えばもっと短い平均応答時間及びこの平均応答時間の周囲の小さな分散を期待することができるが、それに対してGSM接続の場合には、より幅広い分散を示すより長い平均応答時間が期待できる。評価モジュールEVALは、応答分布を評価し、どのTCP実装を使用すべきかを決定する。   The probing module PM sends a probing signal to a probing partner X, which may be the communication endpoint B with which it is communicating, or a specific node dedicated to become the target of a probing mechanism in the network. Send. By sending a probing signal and evaluating the corresponding response from the desired communication partner in the evaluation module EVAL, the control module determines the nature of the structure of the underlay network and based on it the type of TCP to be used. Judgment can be made. For example, a “ping” command can be used to send a probing signal. Each ping command will trigger a response from the corresponding communication partner (addressed to that communication partner if it is reachable). The probing module PM then measures the time until a response is received. Response times for certain individual ping requests may not be characteristic, as response times may depend on actual network load, the specific route a packet can take through the Internet, and other variables. In one embodiment, it is possible to use multiple ping requests that result in a certain distribution of response times. This distribution may vary around an average response time and / or have a statistical distribution around this average response time. This distribution can be viewed as characterizing the structure of the underlay network. In the case of fixed wired Ethernet networks, for example, a shorter average response time and a small variance around this average response time can be expected, whereas in the case of GSM connections it shows a wider distribution A longer average response time can be expected. The evaluation module EVAL evaluates the response distribution and determines which TCP implementation to use.

図8は、固定型有線イーサネット(例えば(a))とGSM接続(例(b))の応答時間分布の一例を示している。応答時間分布を評価し、それをアンダーレイ・ネットワークの構造の特徴的な或る標準パターンと比較することによって(例えば、平均値と分散とを計算することによって、またはニューラル・ネットワークのようなより洗練されたパターン評価メカニズムを使用することによって)、評価モジュールは、どのようなアンダーレイ・ネットワークの構造が存在し、従ってどのTCPバージョンが使用されるべきかを結論を下すことができる。   FIG. 8 shows an example of a response time distribution of a fixed wired Ethernet (for example, (a)) and a GSM connection (for example, (b)). By evaluating the response time distribution and comparing it with some standard pattern characteristic of the structure of the underlay network (eg by calculating the mean and variance, or more like a neural network By using a sophisticated pattern evaluation mechanism, the evaluation module can conclude what underlay network structure exists and therefore what TCP version should be used.

実施の更なる一形態によれば、他のプロービング方法もまた、単独でまたはすでに述べたものとの組み合わせで使用することが可能である。ある1つの他のプロービング方法は例えば、あるコネクションを通じて実現することが可能なスループットを測定することができる。実施の一形態ではその目的のため、“ping”機能は、例えば、ピング(ping)のコマンドを、それらの周波数を増やしつつ同時にどのポイントで最大スループットに達するかを見ながら送信することによって使用することが可能である。その結果は、最も適切なTCPバージョンを決定するために評価かつ使用されることが可能である。   According to a further embodiment of the implementation, other probing methods can also be used alone or in combination with those already mentioned. One other probing method, for example, can measure the throughput that can be achieved over a connection. In one embodiment, for that purpose, the “ping” function is used, for example, by sending ping commands while increasing their frequency and simultaneously seeing at which point maximum throughput is reached. It is possible. The result can be evaluated and used to determine the most appropriate TCP version.

別のアプローチでは、パケットサイズをいろいろ変えて、達成可能な結果を同様に探すようにすることが可能である。それに基づいて、使用すべきTCPバージョンが選択され得る。例えば、可能なパケットサイズが大きくなれば、特にそのような条件(大きなパケットサイズ)のために設計されたTCPバージョンの使用が許容され得る。   Another approach can be to vary the packet size to look for achievable results as well. Based on that, the TCP version to be used can be selected. For example, as the possible packet size increases, the use of a TCP version designed specifically for such conditions (large packet size) may be allowed.

実施の一形態によれば、コネクションの信号強度(signal strength)は、適切なTCPバージョンがそれに基づいて決定される情報としてチェックすることが可能である。これは例えば、実施の一形態として、UNIXコマンドであり無線LAN接続における信号強度についての情報を返信する“iwconfig”といったオペレーティング・システム機能を使用することによって実行可能である。   According to one embodiment, the signal strength of the connection can be checked as information on which the appropriate TCP version is determined. For example, this can be executed by using an operating system function such as “iwconfig” which is a UNIX command and returns information on signal strength in the wireless LAN connection as one embodiment.

ある特有の実施形態では、信号強度についての情報またはネットワーク特性を反映する他のパラメータまたはコネクションの品質は、所定の時間間隔で継続的にモニタされ、それによって基本パラメータの任意の劣化または大きな変化が検出可能であり、それに基づいて異なるTCPバージョンの変更をトリガーすることが可能である。   In one particular embodiment, the signal strength information or other parameters or connection quality reflecting network characteristics are continuously monitored at predetermined time intervals, thereby causing any degradation or major changes in the basic parameters. It is possible to detect and trigger different TCP version changes based on it.

実施の更なる一形態によれば、制御モジュールは、通信セッションを要求している(アプリケーション層レベルにある)アプリケーションの特性を決定するモジュールを備え得る。そのモジュールは、アプリケーションのタイプを決定し、例えばルックアップテーブルの形で保存されているアプリオリな知識を参照してこのタイプのアプリケーションにとってどれが最も適切なTCP実装かを決定することができる。   According to a further embodiment of the implementation, the control module may comprise a module for determining the characteristics of the application (at the application layer level) requesting a communication session. The module can determine the type of application and, for example, refer to a priori knowledge stored in the form of a look-up table to determine which is the most appropriate TCP implementation for this type of application.

実施の一形態によれば、制御モジュールは、上述したメカニズムの組み合わせ、例えばオペレーティングシステムプリミティブへの問い合わせ(querying)、または通信セッションを要求しているアプリケーションのタイプの探査(probing)もしくは調査(checking)の組み合わせを使用することができる。この場合、最も適切なTCP実装を選択する際に考慮されるアプリオリな知識は、考慮すべき情報のこれらの種類全てについての情報を含むことができる。このときには例えば、唯一のタイプの情報を考慮したときに結論が衝突した場合(例えば、探査がTCP実装Aを提案しているのに対して、通信セッションを要求しているアプリケーションタイプがTCP実装Bの使用を提案しているといったような場合)に最終的な意思決定をするためのルールが存在し得る。ルールベースのナレッジベース(rule-based knowledge base)は、入力情報の各可能な組み合わせごとにこの情報に基づいてどのTCP実装が選択されるべきかを定めるために設定することができる。   According to one embodiment, the control module is a combination of the mechanisms described above, for example querying operating system primitives, or probing or checking the type of application requesting a communication session. A combination of can be used. In this case, the a priori knowledge considered in selecting the most appropriate TCP implementation can include information about all these types of information to consider. In this case, for example, if the conclusion collides when only one type of information is considered (for example, the search proposes TCP implementation A, whereas the application type requesting the communication session is TCP implementation B There may be rules for making final decisions (such as proposing the use of). A rule-based knowledge base can be set to define which TCP implementation should be selected based on this information for each possible combination of input information.

実施の更なる一形態によれば、制御モジュールは、プロービング・モジュール(probing module)の代わりにあるいはそれに加えてネゴシエイティング・モジュール(negotiating module)NMを備えることができる。ネゴシエイティング・モジュールNMのおかげで通信リンクの他端にある対応するインタフェースと直接的に通信することが可能となる。以下、図9を参照して、このネゴシエイティング・モジュールNMの動作について説明する。   According to a further embodiment, the control module may comprise a negotiating module NM instead of or in addition to the probing module. Thanks to the negotiating module NM, it is possible to communicate directly with the corresponding interface at the other end of the communication link. Hereinafter, the operation of this negotiating module NM will be described with reference to FIG.

図9は、通信セッションがそれらの間で確立されるべき通信のエンドポイントAおよびBを示している。これらの装置AおよびBは、コンピュータ、携帯電話機、PDA、スマートフォン、ノート型パソコンであり得る。あるいはそれらはこれらの機器上で実行し通信セッションをオープンして維持することが可能なアプリケーションまたはプロセスであり得る。   FIG. 9 shows communication endpoints A and B between which a communication session is to be established. These devices A and B can be computers, mobile phones, PDAs, smartphones, notebook computers. Alternatively, they can be applications or processes that can run on these devices and open and maintain a communication session.

図9に示した機器要素AおよびBはそれぞれ、異なるTCP実装を切替えることが可能な前置モジュール(fronted module)SWAまたはSWBに接続されている。これらのモジュールSWAおよびSWBは、ネゴシエイティング・モジュールNMAとNMBとをそれぞれ含んでいる。   The device elements A and B shown in FIG. 9 are each connected to a fronted module SWA or SWB capable of switching between different TCP implementations. These modules SWA and SWB include negotiating modules NMA and NMB, respectively.

ここで、装置Aが装置Bへの通信を確立する意思があると仮定する。このとき装置Aは、あるポートを通じて確立される通信セッションを要求するリクエストを装置BのIPアドレスへ送信する。このリクエストは、切替モジュールSWAを経由するように送られ、切替モジュールSWAは、このリクエストによってその相手SWBとの通信セッションの確立を試行し、SWAおよびSWBによってそれぞれ使用されるべきTCPアプリケーションをネゴシエーションするようトリガーされる。ネゴシエーションをするためにこの通信セッションが確立されたら、モジュールSWAは、モジュールSWBにSWA側のアンダーレイ・ネットワークの構造について通知する。この情報は、前述の実施形態で述べた問い合わせ(querying)メカニズムから引き出される場合がある、あるいはそれはモジュールSWAのステータスレジスタにすでに存在している場合がある。仮に装置Aが携帯電話機であるとすると、このことは、モジュールSWAが、A側のアンダーレイ・ネットワークのインフラストラクチャはGSMインフラストラクチャであるという対応する情報をモジュールSWBへ送信することを意味する。   Here, it is assumed that device A intends to establish communication to device B. At this time, the device A transmits a request for requesting a communication session established through a certain port to the IP address of the device B. This request is sent via the switching module SWA, and the switching module SWA attempts to establish a communication session with the counterpart SWB by this request, and negotiates a TCP application to be used by each of the SWA and SWB. Is triggered. When this communication session is established to negotiate, the module SWA notifies the module SWB about the structure of the underlay network on the SWA side. This information may be derived from the querying mechanism described in the previous embodiment, or it may already exist in the status register of module SWA. If device A is a mobile phone, this means that module SWA sends corresponding information to the module SWB that the A side underlay network infrastructure is a GSM infrastructure.

対応するモジュールSWBは、同様なやり方で装置B側のアンダーレイ・ネットワークのインフラストラクチャについての情報を引き出したり、または斯かる情報を保存している場合がある。この情報に基づいて、両方のネゴシエイティング・モジュールNMAおよびNMBは、切替モジュールSWAおよびSWBでそれぞれ使用されるTCP実装についてネゴシエーションすることができる。例えば、アンダーレイ・ネットワークの構造としてGSMに適したTCP実装が切替装置SWAだけでなく切替装置SWBでも利用可能である場合には、それに応じてネゴシエイティング・モジュールNMBは、ネゴシエイティング・モジュールNMAに対して、両方の切替モジュールがアンダーレイ・ネットワークの構造としてGSMに最も適切な斯かるTCP実装を使用するよう通知することができる。   The corresponding module SWB may retrieve or store information about the infrastructure of the underlay network on the device B side in a similar manner. Based on this information, both negotiating modules NMA and NMB can negotiate for the TCP implementation used by the switching modules SWA and SWB, respectively. For example, if the TCP implementation suitable for GSM as the structure of the underlay network is available not only in the switching device SWA but also in the switching device SWB, the negotiating module NMB is changed to the negotiating module NMA accordingly. In contrast, both switch modules can be notified to use such a TCP implementation most appropriate for GSM as the structure of the underlay network.

異種混交しているようなアンダーレイ・ネットワークの構造の場合、例えばアンダーレイ・ネットワークの構造がA側ではGSM構造になっており、B側ではWLANインフラストラクチャになっている場合において、ネゴシエイティング・モジュールNMBは、ルックアップテーブルに保存され得るアプリオリな知識に基づいて、このような場合の最も適切なTCP実装を決定することができる。この選択されたTCP実装は、ネゴシエイティング・モジュールNMAに提案されることができ、もしそれがA側で利用可能ならばAとBとの間の通信セッションに使用できる。提案されたTCP実装が切替装置SWAで利用可能でなければ、ネゴシエイティング・モジュールNMAは、使用すべきTCP実装の更なる代替案を再提案することができる。このときモジュールNMAは、対応する情報をその対応するネゴシエーションNMBへ送信することができ、ネゴシエーションNMBにおいて、ネゴシエイティング・モジュールNMAから提案されたTCP実装の利用可能性が再度チェックされることが可能である。この手続きを繰り返すことにより、適切かつ利用可能なTCP実装が最終的に選択できる。   In the case of an underlay network structure that is heterogeneous, for example, when the underlay network structure is a GSM structure on the A side and a WLAN infrastructure on the B side, The module NMB can determine the most appropriate TCP implementation in such a case based on a priori knowledge that can be stored in a lookup table. This selected TCP implementation can be proposed to the negotiating module NMA and can be used for the communication session between A and B if it is available on the A side. If the proposed TCP implementation is not available on the switching device SWA, the negotiating module NMA can re-propose further alternatives of the TCP implementation to use. At this time, the module NMA can transmit the corresponding information to the corresponding negotiation NMB, and the availability of the TCP implementation proposed by the negotiating module NMA can be checked again in the negotiation NMB. is there. By repeating this procedure, an appropriate and usable TCP implementation can be finally selected.

次に、実施の更なる一形態による適切なTCP実装をネゴシエーションする別の代替となるものを説明する。ネゴシエーティングモジュールNMBにアンダーレイ・ネットワークの構造について通知する際に、ネゴシエーティングモジュールNMAは、切替装置SWAで利用可能なTCP実装についての情報を送信する。次いで、送信された情報に基づいて、ネゴシエイティング・モジュールNMBは、(例えば、ルックアップテーブルの形の)ナレッジベース(knowledge base)を参照し、所与の環境下で最も適切なTCP実装を選択することができる。次にモジュールNMBは、ネゴシエイティング・モジュールNMAに選択されたTCP実装を通知し、その選択されたTCP実装は、エンドポイントAとエンドポイントBとの間の通信セッション(このセッションは、適切なTCP実装をネゴシエーションするために使用されたSWAとSWBとの間の通信セッションを閉じた後に、こうして選択されたTCP実装を使用してオープンされ得る)に使用されることが可能である。   Next, another alternative for negotiating an appropriate TCP implementation according to a further embodiment of the invention will be described. When notifying the negotiating module NMB about the structure of the underlay network, the negotiating module NMA sends information about the TCP implementation available in the switching device SWA. Then, based on the transmitted information, the negotiating module NMB refers to a knowledge base (eg in the form of a lookup table) and selects the most appropriate TCP implementation under a given environment. can do. The module NMB then informs the negotiating module NMA of the selected TCP implementation, which is the communication session between endpoint A and endpoint B (this session is the appropriate TCP implementation). After closing the communication session between SWA and SWB used to negotiate the implementation, it can thus be opened using the selected TCP implementation).

次に、2つの通信エンドポイントAおよびBあるいは通信セッションを開始する少なくともエンドポイントAによりTCP実装を切替えることが可能な更なる実施形態について説明する。この更なる実施形態によれば、ネットワーク内に他端のノードBの代理として機能することができるサポート・ノードB’が提供される。サポート・ノードB’は、開始エンドポイントAと適切なTCP実装についてネゴシエーションすることが可能である。   A further embodiment will now be described in which the TCP implementation can be switched by two communication endpoints A and B or at least the endpoint A initiating a communication session. According to this further embodiment, a support node B 'is provided that can function as a proxy for the other Node B in the network. The support node B 'can negotiate with the initiating endpoint A for an appropriate TCP implementation.

このシナリオについて図9を参照して更に詳しく説明する。本例における開始エンドポイントAとサポート・ノードB’とは、両方ともあるアンダーレイ・ネットワークの構造(例えば、あるプロバイダによって提供される高品質で高速なインフラストラクチャ)の範囲内にある。図9においてその範囲は、AおよびB’を含むエリアとして示されている。ここで、エンドポイントAは、先ほど言及した高品質で高速なプロバイダのカバレッジ(図9において点線で囲まれた部分)外にあるエンドポイントBとの通信セッションを確立する意思があると仮定する。ここで、エンドポイントAとサポート・ノードB’との間の適切なTCP実装をネゴシエーションするために、エンドポイントAは、最初にサポート・ノードB’に接続する。続いてサポート・ノードB’は、エンドポイントBにコンタクトして、もし可能なら更に、サポート・ノードB’とエンドポイントBとの間の適切なTCP実装についてネゴシエーションする。ネゴシエーションのプロセスの後、エンドポイントAとエンドポイントBと間の直接通信がネゴシエーションの結果に基づいて確立され得るか、あるいは、通信がエンドポイントAからサポート・ノードB’へ確立され、こんどはそこからエンドポイントBへと確立される。その間、ネゴシエーションの結果に基づいて、経路A−B’に対しては第1の適切なTCP実装が使用され、経路B’−Bに対しては第2の適切なTCP実装が使用される。   This scenario will be described in more detail with reference to FIG. Initiating endpoint A and support node B 'in this example are both within the scope of an underlay network structure (eg, a high quality, high speed infrastructure provided by a provider). In FIG. 9, the range is shown as an area including A and B ′. Here, it is assumed that the end point A intends to establish a communication session with the end point B outside the coverage of the high-quality and high-speed provider mentioned above (the portion surrounded by a dotted line in FIG. 9). Here, in order to negotiate an appropriate TCP implementation between endpoint A and support node B ', endpoint A first connects to support node B'. Subsequently, support node B 'contacts endpoint B and, if possible, negotiates an appropriate TCP implementation between support node B' and endpoint B. After the negotiation process, direct communication between endpoint A and endpoint B can be established based on the result of the negotiation, or communication is established from endpoint A to the supporting node B ′, To endpoint B. Meanwhile, based on the result of the negotiation, the first appropriate TCP implementation is used for path A-B 'and the second appropriate TCP implementation is used for path B'-B.

次に、実行時間(ランタイム)中において異なるTCP実装を切替える本発明の更なる実施形態について説明する。前述の例では、制御モジュールは最初に、最も適切なTCP実装を決定し、その後に、実際の通信が開始され、選択されたTCP実装を通るように経路指定されると想定されている。しかしながら、今日のネットワークは多くの場合に異種混交であるだけでなく、時間の経過とともに変更することがあり、その結果、実行中の通信セッションは、アンダーレイ・ネットワークのインフラストラクチャの変更に直面する可能性もある。斯かる変更の1つの理由としては、移動体ネットワークにおけるハンドオーバが挙げられる。移動体ネットワークの基地局はある決まったカバレッジエリアを有し、ユーザがそのカバレッジエリアの境界近くに来ると、いわゆるハンドオーバが必要になることがある。すなわち、実行中の通信セッションは異なる基地局へ“ハンドオーバ”される。斯かるハンドオーバは、例えば新たな基地局が異なるネットワーク・プラットフォームを利用することから、アンダーレイ・ネットワークの特性の変化をもたらすことがある。例えば、ユーザが、WLANホットスポットがカバーするエリア(例えば空港、レストラン、または斯かるホットスポットが提供される他の場所)に入ると、実行中の通信セッションは、“従来の”携帯電話基地局からそのWLANホットスポットへハンドオーバされることがある。逆に、ユーザは斯かるホットスポットのカバレッジエリアを去る場合がある。このときは実行中の通信セッションは携帯電話基地局へハンドオーバされる必要がある。これらそれぞれのハンドオーバは、アンダーレイ・ネットワークの特性が変更することを意味し、結果的に、これは、実行中の通信セッションに適用されるTCP実装の変更に反映されることが望ましい。   Next, further embodiments of the present invention for switching between different TCP implementations during execution time (runtime) will be described. In the above example, it is assumed that the control module first determines the most appropriate TCP implementation, after which actual communication is initiated and routed through the selected TCP implementation. However, today's networks are not only heterogeneous in many cases, but can change over time, so that ongoing communication sessions face changes in the infrastructure of the underlay network There is a possibility. One reason for such a change is handover in a mobile network. A base station of a mobile network has a certain coverage area, and so-called handover may be required when a user comes near the boundary of the coverage area. That is, an ongoing communication session is “handed over” to a different base station. Such a handover may result in a change in the characteristics of the underlay network, for example because the new base station uses a different network platform. For example, when a user enters an area covered by a WLAN hotspot (eg, an airport, a restaurant, or other location where such a hotspot is provided), an ongoing communication session may be a “traditional” mobile phone base station. To the WLAN hotspot. Conversely, the user may leave such a hot spot coverage area. At this time, the ongoing communication session needs to be handed over to the mobile phone base station. Each of these handovers means that the characteristics of the underlay network change, and as a result, this is preferably reflected in changes in the TCP implementation applied to the ongoing communication session.

次に、異なるTCP実装の間における斯かる実行中の切替(ランタイム切替)を実行する実施形態について説明する。上位/下位トランスポート・インタフェース間の古いTCPコネクションと新しいTCPコネクションとの間の外部調整が一切ないことから、この実施形態は以後“独立切替(independent switching)”と称される。   Next, an embodiment for performing such ongoing switching (runtime switching) between different TCP implementations will be described. This embodiment is hereinafter referred to as “independent switching” because there is no external coordination between the old and new TCP connections between the upper / lower transport interfaces.

ここで、通信エンドポイントAが他方の通信エンドポイントBとの実行中のセッションを有していると仮定する。その後、エンドポイントAが移動して、通信エンドポイントAのアンダーレイ・ネットワークの特性が変更するようなハンドオーバが起こる。本実施形態では、エンドポイントA側における上位と下位のトランスポート・インタフェースのペアは、実際のTCP実装と他方のエンドポイントBとに対し透過的な(気付かれない)方法で、現時点のTCP実装を終了して別のTCP実装を開始する。   Here, it is assumed that the communication endpoint A has a running session with the other communication endpoint B. Thereafter, a handover occurs where the endpoint A moves and the characteristics of the underlay network of the communication endpoint A change. In the present embodiment, the pair of upper and lower transport interfaces on the endpoint A side is transparent (not noticed) between the actual TCP implementation and the other endpoint B, and the current TCP implementation. To start another TCP implementation.

ここで、この形の切替は、制御モジュールと異なるTCP実装との間のコネクションを除いてどのコンポーネントにおいてもハードウェアまたはソフトウェアの変更を一切必要としないことを指摘しておきたい。現時点のTCP実装は、制御モジュールが下位トランスポート・インタフェースLTIへ、他方のエンドポイントBがコネクションを閉じたことを示す信号を送ってセッションを終結することによって終了する。A側における現在のTCP実装からアプリケーションへ送られる対応する信号は、その結果としてインターセプトされ、転送されない。同様に、新たなTCP実装は、同じような技術を使って、別のTCP実装モジュールがアプリケーションへの新たなTCPコネクションを開始することをトリガーすることにより、制御モジュールによって開始される。本実施形態ではコネクションを開いたり閉じたりする能力以外のインタフェースは存在しないので、シーケンス番号あるいはウィンドウサイズなどのTCPパラメータが、異なる実装の間で交換できることは保証できない。このため、他方のエンドポイントにおけるTCP実装は、セッションの現時点のシーケンス番号xで継続するのに対し、新しく開始された実装は、シーケンス番号0から始まる。結果として、上位/下位トランスポート・インタフェースのペアまたは制御モジュールによるTCPヘッダにおけるポート番号および他のフィールドの変換が、将来のセグメントに必要になることがあり得る。特に、TCPヘッダにおけるシーケンス番号とACK(acknowledgement)番号とは、新しく開始されたTCP実装と古いシーケンス番号で継続する他方のエンドポイントにおけるTCP実装との間のオフセットxを補償するよう調整される必要がある。例えば、新しく開始された実装からのシーケンス番号aは、TCPコネクションのエンドポイントAで正しく処理されるためにa+x(xは他方のエンドポイントBから送信された最後のシーケンスである)に変換されなければならない。さらに、TCPセグメントのチェックサム(check-sum)は、再計算される必要がある。従って本実施形態では、制御モジュールまたは下位トランスポート・インタフェースLTIは、実行中の通信セッションが切替後も継続可能になるように新しく開かれたTCPコネクションにおけるTCPヘッダ・パラメータを修正するための(図示されていない)モジュールを含む。   It should be pointed out here that this form of switching does not require any hardware or software changes in any component except the connection between the control module and a different TCP implementation. The current TCP implementation ends when the control module terminates the session by sending a signal to the lower transport interface LTI indicating that the other endpoint B has closed the connection. The corresponding signal sent from the current TCP implementation on the A side to the application is consequently intercepted and not forwarded. Similarly, a new TCP implementation is initiated by the control module using a similar technique by triggering another TCP implementation module to initiate a new TCP connection to the application. In this embodiment, since there is no interface other than the ability to open and close connections, it cannot be guaranteed that TCP parameters such as sequence numbers or window sizes can be exchanged between different implementations. Thus, the TCP implementation at the other endpoint continues at the current sequence number x of the session, whereas the newly started implementation starts at sequence number 0. As a result, conversion of port numbers and other fields in the TCP header by upper / lower transport interface pairs or control modules may be required for future segments. In particular, the sequence number and ACK (acknowledgement) number in the TCP header need to be adjusted to compensate for the offset x between the newly started TCP implementation and the TCP implementation at the other endpoint that continues with the old sequence number. There is. For example, a sequence number a from a newly started implementation must be converted to a + x (x is the last sequence sent from the other endpoint B) in order to be correctly processed at endpoint A of the TCP connection. I must. Furthermore, the TCP segment check-sum needs to be recalculated. Therefore, in the present embodiment, the control module or the lower transport interface LTI modifies the TCP header parameter in the newly opened TCP connection so that the ongoing communication session can continue even after switching (illustrated). Not included).

次に、異なるTCP実装間におけるランタイム切替において“大まかに調整される切替(loosely co-ordinated switching)”と呼ばれる少し異なった実施形態を説明する。本実施形態によれば、制御モジュールは、TCPパラメータをインタフェースを通じてローカルなTCP実装に挿入することができる。さらに、実行中の通信セッションにおける関連するTCPパラメータを抽出するモジュールが提供される。このため、現時点のTCPセッションからの状態(実行中のTCPコネクションを異なるTCP実装で正しく再開することを保証するために必要なシーケンス番号および他の関係のあるパラメータ)が取り出され、新たなTCP実装に挿入される。このようなケースでは、新たなローカルなTCP実装は、セッションの現時点のTCPシーケンス番号を入力として受信し、上位/下位トランスポート・インタフェースによるTCPヘッダフィールドの転写が不要になるようにすることができる。   Next, a slightly different embodiment called “loosely co-ordinated switching” in runtime switching between different TCP implementations will be described. According to this embodiment, the control module can insert TCP parameters into the local TCP implementation through the interface. In addition, a module is provided for extracting relevant TCP parameters in an ongoing communication session. For this reason, the state from the current TCP session (sequence number and other related parameters necessary to ensure that the current TCP connection is correctly restarted with a different TCP implementation) is retrieved and a new TCP implementation Inserted into. In such a case, the new local TCP implementation can receive the current TCP sequence number of the session as input, making it unnecessary to transfer the TCP header field by the upper / lower transport interface. .

次に、異なるTCP実装間におけるランタイム切替において“十分に調整される切替(fully co-ordinated switching)”と呼ばれる更なる実施形態を説明する。本実施形態では、エンドポイントAに加えて他方のエンドポイントBも、あるいは言い換えるとTCP実装切替メカニズムを実現するためにそれに接続されたフロントエンドも、実行中にTCP実装を切替えることが可能であると仮定される。この切替メカニズムは、前の実施形態においてネゴシエーションによる切替との関連で説明した切替メカニズムと同様に実行することができる。従って、当業者には容易に理解できるため、ここでは詳細は省略される。ネゴシエーションによる切替が可能な斯かるメカニズムによる、A及びBの両側で行われる調整された同時切替は、両側で使用されるTCP実装のネゴシエーションが成功裏に終わった後は容易になることがある。通信は新たにネゴシエーションして取り決められたTCP実装を使用して進行することが可能であるが、前の実施形態で述べたTCPヘッダ情報の変換、別の前の実施形態で述べたTCPヘッダデータの挿入、または全く新しいTCPセッションの確立はいずれも使用可能である。   Next, a further embodiment called “fully co-ordinated switching” in runtime switching between different TCP implementations will be described. In this embodiment, in addition to the end point A, the other end point B, or in other words, the front end connected to it to realize the TCP implementation switching mechanism can also switch the TCP implementation during execution. Is assumed. This switching mechanism can be executed in the same manner as the switching mechanism described in connection with the switching by negotiation in the previous embodiment. Therefore, details will be omitted here, since those skilled in the art can easily understand. Coordinated simultaneous switching performed on both sides of A and B by such a mechanism that can be switched by negotiation may be facilitated after successful negotiation of the TCP implementation used on both sides. Communication can proceed using a newly negotiated and negotiated TCP implementation, but the conversion of TCP header information described in the previous embodiment, the TCP header data described in another previous embodiment. Either the insertion of a new one or the establishment of a completely new TCP session can be used.

すでに言及したように、異なるTCPバージョンへの変更は、実行中のコネクションのアンダーレイ・ネットワークのインフラストラクチャの変更をもたらすハンドオーバが実行されるなど、外部の作用によってトリガーされることが可能である。別のTCPバージョンへの変更をトリガーし得る他の環境としては、例えば、信号強度といったコネクションまたはサービスの品質の変化が挙げられる。実施の一形態によれば、どのTCPバージョンを使用すべきかを決定する際に考慮される一部または全てのパラメータは、例えば一定の時間間隔で関係のあるデータをサンプリングすることによって、継続的にモニタされる。これにより、どのTCPバージョンを使用すべきかを決定する際に考慮されるパラメータの任意の変化に対する迅速な応答が可能になる。   As already mentioned, a change to a different TCP version can be triggered by an external action, such as a handover is performed that results in an underlay network infrastructure change of the running connection. Other environments that can trigger changes to another TCP version include, for example, changes in connection or service quality, such as signal strength. According to one embodiment, some or all of the parameters considered in determining which TCP version to use may be continually determined, for example by sampling relevant data at regular time intervals. Monitored. This allows for a quick response to any change in the parameters considered in determining which TCP version to use.

これまでにアウトラインを述べてきた本発明は、TCPのみに限定されないことに言及しておきたい。本発明は、TCPおよび他のタイプのトランスポート・プロトコルの間の実行中における切替のほかに他のトランスポート・プロトコルの間の切替にも適用可能である。このようなケースにおいて、上位/下位トランスポート・インタフェースは、ペイロードタイプがTCPまたはその他のトランスポート・プロトコル(の1つ)であるような全てのIPパケットを受信する。トランスポート・プロトコル間の切替も同様に十分に調整したやり方で実行されることを推測することも可能であるが、しかしながら、新たなトランスポート・プロトコルコネクションのヘッダと元々のトランスポート・プロトコルコネクションのヘッダとの間のトランスコードが可能な場合においては、ルーズな調整または独立な調整での切替を行うことも可能である。   It should be noted that the present invention that has been outlined so far is not limited to TCP. The present invention is applicable to switching between other transport protocols in addition to on-the-fly switching between TCP and other types of transport protocols. In such a case, the upper / lower transport interface receives all IP packets whose payload type is TCP or one of the other transport protocols. It is possible to infer that switching between transport protocols is performed in a well-coordinated manner as well, however, the header of the new transport protocol connection and the original transport protocol connection When transcoding with the header is possible, it is possible to perform switching by loose adjustment or independent adjustment.

さらに、制御モジュールは、これまで述べてきた例では上位および下位のトランスポート・インタフェースとは別個でそれらと相互作用するモジュールとして説明してきたが、実施形態によっては、制御モジュールは、LTIまたはUTIまたはその両方の一部または全体として実装することもできる。   Furthermore, although the control module has been described as a module that interacts with and interacts with the upper and lower transport interfaces in the examples described so far, in some embodiments, the control module may be an LTI or UTI or It can also be implemented as part or all of both.

本発明による切替装置は、上記実施形態において述べたように動作するよう適切にプログラムされた任意のコンピュータまたはコンピューティングデバイスによって実現することができることは容易に理解できよう。さらに、本発明の実施形態による切替装置は、実行した際にコンピュータまたはコンピューティングデバイスが上記実施形態に基づく切替装置として機能することを可能にするコンピュータプログラムまたはコンピュータプログラムコードによっても実現することができる。コンピュータまたはコンピューティングデバイスは、従って、デバイスが前述したように実行されようにプログラムで制御できる1つ以上のマイクロプロセッサから構成される任意のデバイスを意味することがある。このようなデバイスの例としては、パーソナルコンピュータ、ノート型パソコン、PDA、携帯電話機、スマートフォンなどが挙げられる。さらに、本発明の実施形態の上述した個々のモジュールは、実行した際に上述したモジュールの機能を実現するコンピュータプログラムコードを含むプログラムモジュールによって実現することができる。本発明の実施形態を実現する製品は、コンピュータまたはコンピューティングデバイスが上述した実施形態と関連して述べた装置として機能することを可能にするコンピュータプログラムコードを保存または具現化したデータキャリアまたは任意の記憶媒体を備え得る。   It will be readily appreciated that the switching device according to the present invention can be realized by any computer or computing device suitably programmed to operate as described in the above embodiments. Furthermore, the switching device according to the embodiment of the present invention can also be realized by a computer program or computer program code that, when executed, enables a computer or computing device to function as the switching device according to the above-described embodiment. . A computer or computing device may thus mean any device comprised of one or more microprocessors that can be programmatically controlled such that the device is executed as described above. Examples of such devices include personal computers, notebook computers, PDAs, mobile phones, smartphones, and the like. Furthermore, the above-described individual modules of the embodiment of the present invention can be realized by program modules including computer program codes that realize the functions of the above-described modules when executed. A product implementing an embodiment of the present invention is a data carrier or any data carrier that stores or embodies computer program code that enables a computer or computing device to function as the apparatus described in connection with the above-described embodiments. A storage medium may be provided.

TCP/IPプロトコルの階層化アーキテクチャを示す図である。It is a figure which shows the layered architecture of a TCP / IP protocol. ISO/OSI層モデルと比較したときのTCP/IPプロトコルの階層化アーキテクチャを示す図である。It is a figure which shows the layered architecture of the TCP / IP protocol when compared with an ISO / OSI layer model. 従来のTCP/IPコネクションのプロトコル・スタックを示す図である。It is a figure which shows the protocol stack of the conventional TCP / IP connection. 本発明の実施の一形態を利用する通信リンクを示す図である。1 is a diagram illustrating a communication link that utilizes an embodiment of the present invention. FIG. 本発明の実施の一形態による切替装置の略構成図である。It is a schematic block diagram of the switching apparatus by one Embodiment of this invention. 本発明の実施の更なる一形態による切替装置の略構成図である。It is a schematic block diagram of the switching apparatus by further one form of implementation of this invention. 本発明の実施の更なる一形態による切替装置の略構成図である。It is a schematic block diagram of the switching apparatus by further one form of implementation of this invention. 本発明の実施の一形態によるプロービング・メカニズムの結果データを示す図である。FIG. 6 is a diagram illustrating result data of a probing mechanism according to an embodiment of the present invention. ネゴシエーションによる切替に関する本発明の実施の一形態を示す図である。It is a figure which shows one Embodiment of this invention regarding the switch by negotiation. ネゴシエーションによる切替に関する本発明の実施の更なる一形態を示す図である。It is a figure which shows the further one form of implementation of this invention regarding the switch by negotiation.

Claims (31)

あるトランスポート・プロトコルの異なる実装間の切替えを行う装置であって、
複数の異なるトランスポート・プロトコル実装をトランスポート層より上の層と接続するための上位トランスポート・インタフェースと、
前記複数の異なるトランスポート・プロトコル実装を前記トランスポート層より下の層と接続するための下位トランスポート・インタフェースとを備えており、
前記上位トランスポート・インタフェースと前記下位トランスポート・インタフェースとは、切替情報に基づいて前記異なるトランスポート・プロトコル実装の間の接続を切替えるように構成されるものであり、
ある通信セッションに対して最適化されたデータフローを与えるトランスポート・プロトコル実装が選択されるように、前記上位トランスポート・インタフェースと前記複数の異なるトランスポート・プロトコル実装との間の接続と、前記下位トランスポート・インタフェースと前記複数の異なるトランスポート・プロトコル実装との間の接続とをそれぞれ切替えるための前記切替情報を決定する制御モジュールを更に備えるものである装置。
A device that switches between different implementations of a transport protocol,
An upper transport interface for connecting several different transport protocol implementations with layers above the transport layer;
A lower transport interface for connecting the plurality of different transport protocol implementations with a layer below the transport layer;
The upper transport interface and the lower transport interface are configured to switch connections between the different transport protocol implementations based on switching information;
A connection between the upper transport interface and the plurality of different transport protocol implementations such that a transport protocol implementation that provides an optimized data flow for a communication session is selected; An apparatus further comprising a control module for determining the switching information for switching each of a connection between a lower transport interface and the plurality of different transport protocol implementations.
前記上位トランスポート・インタフェース及び前記下位トランスポート・インタフェースのそれぞれは、
前記制御モジュールによって提供された前記切替情報に基づいて、前記複数の異なるTCP実装の1つをある特定の通信セッションへ割り当てるモジュールと、
到来パケットのヘッダと発信パケットのヘッダとをチェックすることによりセッションを識別し、それに基づいて、前記到来パケット及び前記発信パケットが前記複数の異なるTCP実装のどれに送られるべきかを決定するモジュールと
を備えるものである、請求項1に記載の装置。
Each of the upper transport interface and the lower transport interface is:
A module that assigns one of the plurality of different TCP implementations to a particular communication session based on the switching information provided by the control module;
A module that identifies a session by checking a header of an incoming packet and a header of an outgoing packet and, based thereon, determines to which of the different TCP implementations the incoming packet and the outgoing packet should be sent The apparatus according to claim 1, comprising:
前記制御モジュールは、前記トランスポート層より下位に実装されたネットワークの構造のタイプを代表する1つ以上の特性を決定して、トランスポート・プロトコルがアンダーレイ・ネットワークの構造に適応するように、選択されるべきトランスポート・プロトコルを決定するモジュールを含むものである、請求項1または2に記載の装置。   The control module determines one or more characteristics representative of the type of network structure implemented below the transport layer so that the transport protocol adapts to the structure of the underlay network. Apparatus according to claim 1 or 2, comprising a module for determining a transport protocol to be selected. アンダーレイ・ネットワークの特性を決定する前記モジュールは、既存のオペレーティング・システム機能を利用してアンダーレイ・ネットワークの特性を決定するモジュールを含むものである、請求項1乃至3のいずれか1項に記載の装置。   4. The module according to claim 1, wherein the module for determining characteristics of an underlay network includes a module for determining characteristics of an underlay network using an existing operating system function. 5. apparatus. アンダーレイ・ネットワークの特性を決定する前記モジュールは、プロービング信号を送信し、該プロービング信号に対する応答を評価し、該評価に基づいてアンダーレイ・ネットワークの特性を決定するモジュールを含むものである、請求項1乃至4のいずれか1項に記載の装置。   The module for determining characteristics of an underlay network includes a module for transmitting a probing signal, evaluating a response to the probing signal, and determining a characteristic of the underlay network based on the evaluation. The apparatus of any one of thru | or 4. アンダーレイ・ネットワークの特性を決定する前記モジュールは、前記通信セッションにおける他方のエンドポイントとの通信を確立し、前記通信セッションの前記他方のエンドポイントにおける対応するモジュールと前記通信セッションで使用される適切なトランスポート・プロトコル実装セッションをネゴシエーションするためのモジュールを含むものである、請求項1乃至5のいずれか1項に記載の装置。   The module for determining the characteristics of the underlay network establishes communication with the other endpoint in the communication session and is used in the communication session with the corresponding module at the other endpoint of the communication session. 6. An apparatus according to any one of the preceding claims, comprising a module for negotiating a secure transport protocol implementation session. 前記制御モジュールは、前記通信セッションを要求しているアプリケーションの特性に基づいて使用すべきTCP実装を決定するモジュールを含むものである、請求項1乃至6のいずれか1項に記載の装置。   The apparatus according to claim 1, wherein the control module includes a module that determines a TCP implementation to be used based on characteristics of an application requesting the communication session. 前記制御モジュールは、前記複数の異なるトランスポート・プロトコル実装の1つを使用する通信が開始する前に前記切替情報を決定するように構成されるものである、請求項1乃至7のいずれか1項に記載の装置。   8. The control module according to claim 1, wherein the control module is configured to determine the switching information before communication using one of the plurality of different transport protocol implementations begins. 9. The device according to item. 前記制御モジュールは、現在実行中の通信セッションにおいて、実行時間中に前記複数の異なるトランスポート・プロトコル実装間の切替えを行うように構成されるものである、請求項1乃至8のいずれか1項に記載の装置。   9. The control module according to claim 1, wherein the control module is configured to switch between the different transport protocol implementations during execution time in a currently executing communication session. The device described in 1. 前記制御モジュールは、
実行時間中に新たなトランスポート・プロトコル実装へ切替えるために前記新たなトランスポート・プロトコル実装の使用の開始をトリガーするモジュールと、
現在実行中のトランスポート・プロトコル・セッションのTCPヘッダのコンテンツを変換して、前記新しく開始されたTCP実装へ送られた前記ヘッダ及び前記新しく開始されたTCPから送られてきた前記ヘッダが、現在実行中の通信セッションの前記他方の通信エンドポイントにおけるトランスポート・プロトコル実装によって送受信された前記TCPヘッダと整合するようにするモジュールと
を備えるものである、請求項9に記載の装置。
The control module is
A module that triggers the start of use of the new transport protocol implementation to switch to a new transport protocol implementation during runtime;
The contents of the TCP header of the currently running transport protocol session are converted, and the header sent to the newly started TCP implementation and the header sent from the newly started TCP are The apparatus of claim 9, comprising: a module that aligns with the TCP header sent and received by a transport protocol implementation at the other communication endpoint of an ongoing communication session.
前記制御モジュールは、
ある異なるトランスポート・プロトコル実装に切替えられることになっているその切替え前のトランスポート・プロトコル・セッションからヘッダデータを抽出するモジュールと、
前記抽出されたトランスポート・プロトコル・セッションのヘッダデータを前記新しく開かれたトランスポート・プロトコル・セッションに挿入して、前記新しく開かれたトランスポート・プロトコル・セッションが、ある異なるトランスポート・プロトコル実装を介して、前記切替え前のトランスポート・プロトコル・セッションを再開することができるようにするモジュールと
を備えるものである、請求項9または10に記載の装置。
The control module is
A module that extracts header data from a pre-switch transport protocol session that is to be switched to a different transport protocol implementation;
Inserting the extracted transport protocol session header data into the newly opened transport protocol session so that the newly opened transport protocol session has a different transport protocol implementation. 11. The apparatus according to claim 9, further comprising: a module capable of resuming the transport protocol session before the switching via the network.
前記制御モジュールは、現在実行中のトランスポート・プロトコル・セッションが、第1の通信エンドポイントにおいてある異なるトランスポート・プロトコル実装へ切替えられる場合において、切替が実行されるべきである対応する第2の通信エンドポイントにおける対応するモジュールとネゴシエーションして、それらの通信エンドポイントにおける両方の制御モジュールが、ある異なるトランスポート・プロトコル実装を対象とする新たなトランスポート・プロトコル・セッションを開き、その際に実行中のトラフィックが、前記新たに開かれたトランスポート・プロトコル・セッションと両方の通信エンドポイントにおける前記異なるトランスポート・プロトコル実装とを通じて再開されるようにするモジュールを備えるものである、請求項9乃至11のいずれか1項に記載の装置。   The control module corresponds to a corresponding second to which switching should be performed when a currently running transport protocol session is switched to a different transport protocol implementation at the first communication endpoint. Negotiate with the corresponding module at the communication endpoint so that both control modules at those communication endpoints open and execute a new transport protocol session for a different transport protocol implementation Comprising a module that allows traffic to be resumed through the newly opened transport protocol session and the different transport protocol implementations at both communication endpoints Apparatus according to any one of claims 9 to 11. 前記制御モジュールは、ある異なるトランスポート・プロトコル実装への切替をトリガーするためのトリガー信号を受信するように構成されるものである、請求項9乃至12のいずれか1項に記載の装置。   13. Apparatus according to any one of claims 9 to 12, wherein the control module is configured to receive a trigger signal for triggering a switch to a different transport protocol implementation. 前記トリガー信号は、
移動体通信のセッションの間のハンドオーバと、
現在実行中の通信セッションの間のサービス品質の変更と、
現在実行中の通信セッションで使用されるハードウェアまたはソフトウェアモジュールの変更と
のいずれか1つのメカニズムに応答して生成されるものである、請求項13に記載の装置。
The trigger signal is
Handover between mobile communication sessions;
Quality of service changes during the currently running communication session;
14. The apparatus of claim 13, wherein the apparatus is generated in response to any one of a hardware or software module change used in a currently executing communication session.
前記制御モジュールは、前記複数の異なるTCP実装のどれが使用されるべきかの決定がそれに基づいて行われる1つ以上のパラメータを継続的にモニタするためのモジュールを更に備えており、
前記モニタするためのモジュールは、セットの所定ルールに従って前記モニタされた1つ以上のパラメータの変化が現在使用されているTCPバージョンから異なるTCPバージョンへの変更が実行されるべきことを示唆している場合には、現在使用されているTCPバージョンからある異なるTCPバージョンへの変更をトリガーするものである、請求項1乃至15のいずれか1項に記載の装置。
The control module further comprises a module for continuously monitoring one or more parameters based on which a determination of which of the plurality of different TCP implementations should be used;
The monitoring module suggests that a change of the monitored one or more parameters according to a set predetermined rule suggests that a change from the currently used TCP version to a different TCP version should be performed. 16. A device according to any one of the preceding claims, which in case triggers a change from a currently used TCP version to a different TCP version.
トランスポート・プロトコルの異なる実装間の切替えを行う方法であって、
前記トランスポート・プロトコルの複数の異なる実装をトランスポート層より上の層と接続するために前記複数の異なるトランスポート・プロトコル実装を上位トランスポート・インタフェースと接続するステップと、
前記トランスポート・プロトコルの前記複数の異なる実装をトランスポート層より下の層と接続するために前記複数の異なるトランスポート・プロトコル実装を下位トランスポート・インタフェースと接続するステップと、
前記上位トランスポート・インタフェースと前記異なるトランスポート・プロトコル実装との間の接続と、前記下位トランスポート・インタフェースと前記異なるトランスポート・プロトコル実装との間の接続とを切替情報に基づいてそれぞれ切替えるステップと、
ある通信セッションに対して最適化されたデータフローを与えるトランスポート・プロトコル実装が選択されるように、前記上位トランスポート・インタフェースと前記複数の異なるトランスポート・プロトコル実装との間の接続と、前記下位トランスポート・インタフェースと前記複数の異なるトランスポート・プロトコル実装との間の接続とをそれぞれ切替えるための前記切替情報を決定するステップと
を含む方法。
A method for switching between different implementations of transport protocols,
Connecting the plurality of different transport protocol implementations with an upper transport interface to connect the plurality of different implementations of the transport protocol with a layer above a transport layer;
Connecting the plurality of different transport protocol implementations with a lower transport interface to connect the plurality of different implementations of the transport protocol with a layer below a transport layer;
Switching between a connection between the upper transport interface and the different transport protocol implementation and a connection between the lower transport interface and the different transport protocol implementation based on switching information, respectively. When,
A connection between the upper transport interface and the plurality of different transport protocol implementations such that a transport protocol implementation that provides an optimized data flow for a communication session is selected; Determining the switching information for each switching between a lower transport interface and a connection between the plurality of different transport protocol implementations.
前記切替情報に基づいて前記複数の異なるTCP実装の1つをある特定の通信セッションへ割り当てるステップと、
到来パケットのヘッダと発信パケットのヘッダとをチェックすることによりセッションを識別し、それに基づいて、前記到来パケット及び前記発信パケットが前記複数の異なるTCP実装のどれに送られるべきかを決定するステップと
を更に含む請求項16に記載の方法。
Assigning one of the plurality of different TCP implementations to a particular communication session based on the switching information;
Identifying a session by checking an incoming packet header and an outgoing packet header, and based on that, determining to which of the different TCP implementations the incoming packet and outgoing packet should be sent; The method of claim 16 further comprising:
前記トランスポート層より下位に実装されたネットワークの構造のタイプを代表する1つ以上の特性を決定して、トランスポート・プロトコルがアンダーレイ・ネットワークの構造に適合するように、選択されるべきトランスポート・プロトコルを決定するステップを含む、請求項16または17に記載の方法。   The one or more characteristics that are representative of the type of network structure implemented below the transport layer are determined so that the transport protocol should be selected so that the transport protocol conforms to the structure of the underlay network. 18. A method according to claim 16 or 17, comprising the step of determining a port protocol. 既存のオペレーティング・システム機能を利用してアンダーレイ・ネットワークの特性を決定するステップを更に含む請求項16乃至18のいずれか1項に記載の方法。   19. A method according to any one of claims 16 to 18, further comprising the step of determining characteristics of the underlay network utilizing existing operating system functions. プロービング信号を送信し、該プロービング信号に対する応答を評価し、該評価に基づいてアンダーレイ・ネットワークの特性を決定するステップを更に含む請求項16乃至19のいずれか1項に記載の方法。   20. A method according to any one of claims 16 to 19, further comprising the steps of transmitting a probing signal, evaluating a response to the probing signal, and determining characteristics of the underlay network based on the evaluation. 前記通信セッションの他方のエンドポイントとの通信を確立し、前記通信セッションの前記他方のエンドポイントにおける対応するモジュールと前記通信セッションで使用される適切なトランスポート・プロトコル実装セッションについてネゴシエーションするステップを更に含む請求項16乃至20のいずれか1項に記載の方法。   Establishing communication with the other endpoint of the communication session and negotiating with a corresponding module at the other endpoint of the communication session for an appropriate transport protocol implementation session to be used in the communication session. 21. A method according to any one of claims 16 to 20 comprising. 前記通信セッションを要求しているアプリケーションの特性に基づいて使用すべきTCP実装を決定するステップを更に含む請求項16乃至21のいずれか1項に記載の方法。   The method according to any one of claims 16 to 21, further comprising determining a TCP implementation to be used based on characteristics of an application requesting the communication session. 前記複数の異なるトランスポート・プロトコル実装の1つを使用する通信が開始する前に前記切替情報を決定するステップを更に含む請求項16乃至22のいずれか1項に記載の方法。   23. A method as claimed in any one of claims 16 to 22, further comprising the step of determining the switching information before communication using one of the plurality of different transport protocol implementations begins. 現在実行中の通信セッションにおいて、実行中に前記複数の異なるトランスポート・プロトコル実装を切替えるステップを更に含む請求項16乃至23のいずれか1項に記載の方法。   24. A method as claimed in any one of claims 16 to 23, further comprising switching the plurality of different transport protocol implementations during execution in a currently executing communication session. 実行中に新たなトランスポート・プロトコル実装へ切替えるために前記新たなトランスポート・プロトコル実装の使用の開始をトリガーするステップと、
現在実行中のトランスポート・プロトコル・セッションのTCPヘッダのコンテンツを変換して、前記新しく開始されたTCP実装へ送られた前記ヘッダ及び前記新しく開始されたTCPから送られた前記ヘッダが、現在実行中の通信セッションの前記他方の通信エンドポイントにおけるトランスポート・プロトコル実装によって送受信された前記TCPヘッダと整合するようにするステップと
を更に含む請求項24に記載の方法。
Triggering the start of use of the new transport protocol implementation to switch to the new transport protocol implementation during execution;
Transforms the contents of the TCP header of the currently running transport protocol session so that the header sent to the newly started TCP implementation and the header sent from the newly started TCP are currently executed 25. The method of claim 24, further comprising: aligning with the TCP header transmitted / received by a transport protocol implementation at the other communication endpoint of an intermediate communication session.
ある異なるトランスポート・プロトコル実装に切替えられることになっているその切替え前のトランスポート・プロトコル・セッションからヘッダデータを抽出するステップと、
前記抽出されたトランスポート・プロトコル・セッションのヘッダデータを前記新しく開かれたトランスポート・プロトコル・セッションに挿入して、前記新しく開かれたトランスポート・プロトコル・セッションが、ある異なるトランスポート・プロトコル実装を介して、前記切替え前のトランスポート・プロトコル・セッションを再開することができるようにするステップと
を更に含む請求項24または25に記載の方法。
Extracting header data from a pre-switch transport protocol session that is to be switched to a different transport protocol implementation;
Inserting the extracted transport protocol session header data into the newly opened transport protocol session so that the newly opened transport protocol session has a different transport protocol implementation. 26. The method of claim 24 or 25, further comprising: allowing the pre-switching transport protocol session to be resumed via.
現在実行中のトランスポート・プロトコル・セッションが第1の通信エンドポイントにおいてある異なるトランスポート・プロトコル実装へ切替えられる場合において、切替が実行されるべきである対応する第2の通信エンドポイントにおける対応するモジュールとネゴシエーションして、それらの通信エンドポイントにおける両方の制御モジュールが、ある異なるトランスポート・プロトコル実装を対象とする新たなトランスポート・プロトコル・セッションを開き、その際に実行中のトラフィックが、前記新たに開かれたトランスポート・プロトコル・セッションと両方の通信エンドポイントにおける前記異なるトランスポート・プロトコル実装とを通じて再開されるようにするステップを更に含む請求項24乃至26のいずれか1項に記載の方法。   When a currently running transport protocol session is switched to a different transport protocol implementation at the first communication endpoint, the corresponding at the corresponding second communication endpoint at which switching should be performed Negotiating with the module, both control modules at their communication endpoints open a new transport protocol session targeting a different transport protocol implementation, and the traffic in progress is 27. The method according to any one of claims 24 to 26, further comprising the step of being resumed through a newly opened transport protocol session and the different transport protocol implementations at both communication endpoints. The method of mounting. ある異なるトランスポート・プロトコル実装への切替をトリガーするためのトリガー信号を受信するステップを更に含む請求項24乃至27のいずれか1項に記載の方法。   28. A method according to any one of claims 24 to 27, further comprising receiving a trigger signal for triggering a switch to a different transport protocol implementation. 前記トリガー信号は、
移動体通信のセッションの間のハンドオーバと、
現在実行中の通信セッションの間のサービス品質の変更と、
現在実行中の通信セッションで使用されるハードウェアまたはソフトウェアモジュールの変更と、
のいずれか1つのメカニズムに応答して生成される、請求項28に記載の方法。
The trigger signal is
Handover between mobile communication sessions;
Quality of service changes during the currently running communication session;
Changes to the hardware or software modules used in the currently running communication session;
30. The method of claim 28, generated in response to any one of the mechanisms.
前記複数の異なるTCP実装のうちのどれが使用されるべきかの決定がそれに基づいて行われる1つ以上のパラメータを継続的にモニタするステップと、
セットの所定ルールに従って前記モニタされた1つ以上のパラメータの変化が現在使用されているTCPバージョンから異なるTCPバージョンへの変更が実行されるべきことを示唆している場合には、現在使用されているTCPバージョンからある異なるTCPバージョンへの変更をトリガーするステップと
を更に含む請求項16乃至29のいずれか1項に記載の方法。
Continuously monitoring one or more parameters based on which a determination of which of the plurality of different TCP implementations should be used;
If a change in one or more of the monitored parameters suggests that a change from the currently used TCP version to a different TCP version should be performed according to a set predetermined rule 30. The method of any one of claims 16 to 29, further comprising: triggering a change from one TCP version to a different TCP version.
コンピュータ上で実行させる際に請求項16乃至30のいずれか1項に記載された方法を実行することができるコンピュータプログラムコードを含むコンピュータプログラム。   Computer program comprising computer program code capable of executing the method according to any one of claims 16 to 30 when executed on a computer.
JP2007538279A 2004-10-29 2004-10-29 Method and apparatus for switching between different protocol implementations Expired - Fee Related JP4642855B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2004/052738 WO2006045345A2 (en) 2004-10-29 2004-10-29 Method and apparatus for switching between different protocol implementations

Publications (2)

Publication Number Publication Date
JP2008518531A true JP2008518531A (en) 2008-05-29
JP4642855B2 JP4642855B2 (en) 2011-03-02

Family

ID=34959311

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007538279A Expired - Fee Related JP4642855B2 (en) 2004-10-29 2004-10-29 Method and apparatus for switching between different protocol implementations

Country Status (3)

Country Link
EP (1) EP1856880A2 (en)
JP (1) JP4642855B2 (en)
WO (1) WO2006045345A2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012175561A (en) * 2011-02-23 2012-09-10 Fujitsu Ltd Transmission control method
JP2012529840A (en) * 2009-06-11 2012-11-22 シーディーネットワークス カンパニー リミテッド Method and apparatus for selecting optimum transmission protocol
WO2014133066A1 (en) * 2013-02-28 2014-09-04 日本電気株式会社 Communication system, terminals, communication control device, communication method, and program
JP2016513326A (en) * 2013-02-28 2016-05-12 インテル・コーポレーション Utilize one interconnect protocol enumeration and / or configuration mechanism for different interconnect protocols
CN105763474A (en) * 2014-12-19 2016-07-13 华为技术有限公司 Data transmission method and device

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8817809B2 (en) * 2007-06-18 2014-08-26 Qualcomm Incorporated Communication link allocation based on dynamic trend analysis
KR100914308B1 (en) 2007-09-06 2009-08-27 고려대학교 산학협력단 TCP processing system and method of controlling the same
US8891499B2 (en) * 2007-12-14 2014-11-18 Microsoft Corporation Computer radio with pre-defined configuration set
US20140281018A1 (en) 2013-03-13 2014-09-18 Futurewei Technologies, Inc. Dynamic Optimization of TCP Connections
CN118042024B (en) * 2023-12-26 2024-10-15 北京同方艾威康科技有限公司 Multi-protocol self-adaptive central control system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10200598A (en) * 1997-01-09 1998-07-31 Toshiba Corp Communication device
JPH11163947A (en) * 1997-09-22 1999-06-18 Toshiba Corp Gateway device, radio terminal, router device and gateway control method for communication network
JP2000124957A (en) * 1998-10-15 2000-04-28 Nec Corp Method and device for interchanging and converting protocol
JP2002281103A (en) * 2001-03-19 2002-09-27 Nippon Hoso Kyokai <Nhk> Method and system for transferring stored continuous media, and stored continuous media transfer program
WO2003071813A2 (en) * 2002-02-19 2003-08-28 Zyray Wireless, Inc. Method and apparatus optimizing a radio link

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10200598A (en) * 1997-01-09 1998-07-31 Toshiba Corp Communication device
JPH11163947A (en) * 1997-09-22 1999-06-18 Toshiba Corp Gateway device, radio terminal, router device and gateway control method for communication network
JP2000124957A (en) * 1998-10-15 2000-04-28 Nec Corp Method and device for interchanging and converting protocol
JP2002281103A (en) * 2001-03-19 2002-09-27 Nippon Hoso Kyokai <Nhk> Method and system for transferring stored continuous media, and stored continuous media transfer program
WO2003071813A2 (en) * 2002-02-19 2003-08-28 Zyray Wireless, Inc. Method and apparatus optimizing a radio link

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012529840A (en) * 2009-06-11 2012-11-22 シーディーネットワークス カンパニー リミテッド Method and apparatus for selecting optimum transmission protocol
JP2012175561A (en) * 2011-02-23 2012-09-10 Fujitsu Ltd Transmission control method
US8867354B2 (en) 2011-02-23 2014-10-21 Fujitsu Limited Transmission control method, transmission control system, communication device and recording medium of transmission control program
WO2014133066A1 (en) * 2013-02-28 2014-09-04 日本電気株式会社 Communication system, terminals, communication control device, communication method, and program
JP2016513326A (en) * 2013-02-28 2016-05-12 インテル・コーポレーション Utilize one interconnect protocol enumeration and / or configuration mechanism for different interconnect protocols
US9769856B2 (en) 2013-02-28 2017-09-19 Nec Corporation Communication communication system, terminal, communication control apparatus, method and program
CN105763474A (en) * 2014-12-19 2016-07-13 华为技术有限公司 Data transmission method and device
US10560382B2 (en) 2014-12-19 2020-02-11 Huawei Technologies Co., Ltd. Data transmission method and apparatus

Also Published As

Publication number Publication date
JP4642855B2 (en) 2011-03-02
WO2006045345A3 (en) 2007-12-27
WO2006045345A2 (en) 2006-05-04
EP1856880A2 (en) 2007-11-21

Similar Documents

Publication Publication Date Title
US12126680B2 (en) Optimizing data transmission between a first endpoint and a second endpoint in a computer network
US9825802B2 (en) Management of seamless handover between different communication systems in an IP dual-mode terminal
US7483995B2 (en) Coordinating a transition of a roaming client between wireless access points using another client in physical proximity
CA2663428C (en) Media independent handover protocol state machine
Sinky et al. Proactive multipath TCP for seamless handoff in heterogeneous wireless access networks
KR100919142B1 (en) Fast link establishment for network access
EP1393497B1 (en) Dual mode service platform within network communication system
US20170027016A1 (en) Communication device, wireless communication device, and communication method
JP4642855B2 (en) Method and apparatus for switching between different protocol implementations
Huang et al. Improving TCP performance during soft vertical handoff
US10939331B2 (en) Information centric network heterogenous wireless switching
US7499429B2 (en) Optimizing data traffic in an ad-hoc established device network
US10880413B2 (en) Method and server for establishing a TCP connection
Hammar Multipath packet scheduling for 5G systems
US20010048693A1 (en) Method and apparatus for performing multi connections at point-to-point protocol
BONAM Multipath TCP and Measuring end-to-end TCP Throughput: Multipath TCP Descriptions and Ways to Improve TCP Performance
Zhu et al. INTAREA S. Kanugovi Internet-Draft Nokia Intended status: Informational F. Baboescu Expires: October 13, 2018 Broadcom
Zhu et al. INTAREA S. Kanugovi Internet-Draft Nokia Intended status: Informational F. Baboescu Expires: July 2, 2018 Broadcom
Noonan et al. End-point synchronisation and handover for multi-homed services
Fressancourt et al. A dynamic offer/answer mechanism encompassing TCP variants in heterogeneous environments

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100615

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100816

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101109

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101201

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131210

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees