JP2010520668A - ネットワーク・アドレス変換システムと関連のあるクライアントを帯域外で存続状態に維持するメカニズム - Google Patents

ネットワーク・アドレス変換システムと関連のあるクライアントを帯域外で存続状態に維持するメカニズム Download PDF

Info

Publication number
JP2010520668A
JP2010520668A JP2009551789A JP2009551789A JP2010520668A JP 2010520668 A JP2010520668 A JP 2010520668A JP 2009551789 A JP2009551789 A JP 2009551789A JP 2009551789 A JP2009551789 A JP 2009551789A JP 2010520668 A JP2010520668 A JP 2010520668A
Authority
JP
Japan
Prior art keywords
connection
keep
application
alive
packet
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
JP2009551789A
Other languages
English (en)
Other versions
JP5090472B2 (ja
JP2010520668A5 (ja
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2010520668A publication Critical patent/JP2010520668A/ja
Publication of JP2010520668A5 publication Critical patent/JP2010520668A5/ja
Application granted granted Critical
Publication of JP5090472B2 publication Critical patent/JP5090472B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/255Maintenance or indexing of mapping tables
    • H04L61/2553Binding renewal aspects, e.g. using keep-alive messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state 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/28Timers or timing mechanisms used in protocols

Landscapes

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

Abstract

基礎となるネーティブ・アプリケーションに余分な要件を強いることなく、アプリケーション接続に対して外部から、帯域外(OOB)技法を採用することによって、ネットワーク・アドレス変換(NAT)デバイスの接続状態を維持するアーキテクチャ。OOBの解決策は、任意の接続に適用することができ、アプリケーション・プロトコルに対する修正を必要とせず、TCPおよびUDPで動作する。キープ・アライブ(KA)アプリケーションを、KAパケットを注入するOOBメカニズムとして採用する。KAパケットは、NATデバイスには、ネーティブ接続から来ているように見える。これら注入されたパケットは、NATデバイスを騙して、その接続に対する不活性タイマをリセットさせるが、ネーティブ・アプリケーションを騙したり混乱させることはなく、ネーティブ・アプリケーションはなりすましに気が付かない。したがって、接続がNATタイムアウトのために終了することはなく、例えば、クライアント/サーバー・プロトコルは、接続を生かしておくために偽の活動パケットを発生する必要がない。
【選択図】図1

Description

コンピューティング・デバイスおよびネットワーキングにおける技術進歩により、多種多様の情報およびサービスへのアクセスが容易となり、事実上世界のどこからでもアクセスが可能となっている。その上、コンピューターや携帯デバイスの数が増大し続けるため、各デバイスがネットワーク上にあるときに、一意に識別することが接続(connectivity)に必要となることもあり得る。加入してネットワーク・デバイス毎に別個の(または固定)IPアドレスを取得するための余分な費用をかけるのではなく、ネットワーク・アドレス変換(NAT)と呼ばれる技法によって、ルータ背後にある、または内部(または個人)ネットワーク上にある多数のIPノードが、1つの公開IPアドレスを共有することが可能になっている。言い換えると、1組の未登録IPアドレスを内部ネットワーク・トラフィックに使用させ、別の1組のIPアドレスを外部トラフィック即ち公開トラフィックに使用させる規格が設けられている。
通例、NATデバイスは、接続タイムアウト・タイマを採用する。接続タイムアウト・タイマは、ネーティブ・アプリケーション間において接続状態をマッピングするために、設定変更可能なタイムアウト期間を有する。テーブル・エントリーにマッピングする特定のNATポートが、タイムアウト期間よりも長い間インバウンド・トラフィックにもアウトバウンド・トラフィックにも用いられないと、その接続に対するNATタイマが時間切れとなり、エントリーはテーブルから抹消される。一旦エントリーが抹消されると、NATの背後にある共有ノードにはもはやこの接続を通じて到達することができなくなり、新たな接続を開始しなければならない(例えば、共有ノードによって)。
NATタイマが終了する(即ち、時間切れとなる)のを防止する慣例的なメカニズムに、「キープ・アライブ」(KA:keep-alive)または「ハートビート」処理として知られているものがある。キープ・アライブの下では、タイマをリセットする(またはリフレッシュする)ためのNATタイムアウト期間よりも短い間隔で、接続上に無駄なトラフィックを発生させ、これによって接続をアクティブに維持する。バッテリ電力を主要電源として用いる携帯デバイス(例えば、スマート・フォン)の場合、従来のキープ・アライブ技法では電池の寿命に影響を及ぼし、接続を生かしておくために多大なワイヤレス活動が発生する。
NATを通じて長寿命の接続を提供するための解決策の1つは、ネーティブ・アプリケーション・プロトコルの一部としてキープ・アライブ・メカニズムを構築することである(帯域内解決策(in-band solution))。しかしながら、従来のメカニズムに対する欠点は、次のことを含む。KAメカニズムを受け入れるためには、基礎となるネーティブ・アプリケーション・プロトコルを修正しなければならない。KAメカニズムを旧来のアプリケーションに合わせて後付けすることができず、アプリケーションのアップグレードを展開しなければならない。そして、KAメカニズムに対するあらゆる更新がコア・アプリケーション・プロトコルに影響を及ぼすため、それに合わせて検査しなければならない。
加えて、従来のKAメカニズムを最適化することは、帯域内制約のために困難である。帯域内制約には次のことが含まれる可能性がある。層状ネーティブ・アプリケーション・ヘッダ(例えば、大型HTTP−ハイパーテキスト・マークアップ言語およびSOAP−単純オブジェクト・アクセス・プロトコル・ヘッダ)を受け入れるために、KAパケット・サイズが不必要に増大せざるを得ない。アプリケーション・ロジックがKAロジックを束縛し、余分なネットワーク接続が必要となる可能性がある。アプリケーション・レベルでは、高速障害モード検出や復元をサポートできない場合がある。アプリケーション開発者は、基本的にシステム・レベルの解決策であるものを完成させるために確保すべき必要な資源、時間、または費用を賄うことができない場合がある。移動体のローミングや異なるネットワーキング環境に適応することおよび応答することが難しい。
以下に提案するのは、本明細書に記載する新規な実施形態の基本的な理解が得られるようにするための、簡略化した摘要である。この摘要は、広範囲に及び全体像ではなく、鍵となる要素/肝要な要素を特定することや、その範囲を正確に叙述することを意図するのではない。その唯一の目的は、一部の概念を、後に提案する更に詳細な説明の序文として、簡略化した形態で提案することである。
開示するアーキテクチャは、基礎となるネーティブ・アプリケーションおよび/またはアプリケーション・プロトコルには要件や修正を全く強いることなく、ネーティブ・アプリケーション接続の外部から適用することができる帯域外(OOB)技法を採用することによって、ネットワーク・アドレス変換(NAT)デバイスの接続状態を存続したまま維持する解決策を提供する。この技法は、OOBの様式でネーティブ・アプリケーションと動作する、別個のキープ・アライブ(KA)アプリケーションを設け、接続を維持するためにネーティブ・アプリケーション接続にKAパケットを注入し、その後KAパケットがネーティブ・アプリケーションに到達する前にKAパケットを除去する(例えば、欠落させる)。代替実施態様では、KAパケットを除去せずに、ネーティブ・アプリケーションによって処理する(例えば、フィルタ処理、欠落、...)。
本アーキテクチャは、一般的なNAT状態管理メカニズムにおける「論理ホール」(logical hole)を利用する。これらの論理ホールは「バグ」ではなく、したがってセキュリティホールとは見なされず、単にインライン・ネットワーキング・デバイスに課される制約の人為構造である。1つの論理ホールの性質は、接続活動に基づいてNAT状態を維持することに関する。NATデバイスは、アクティブな接続毎にタイムアウト・タイマを始動させ、接続にトラフィック(例えば、パケット活動)が生じる毎に、接続のタイムアウト(即ち、不活性)タイマをリセットする。所与の接続においてトラフィックが検出されない場合、タイムアウト・タイマはその接続に対して終了し、接続は作用しなくなる。更に、NATは通例トラフィックの正当性(例えば、トラフィックが来た終点)を検証しない。
この論理ホールを利用し、更にクライアント/サーバー環境の一例では、クライアントおよび/またはサーバー上で走る第2ネットワークKAアプリケーションをOOBメカニズムとして採用し、なりすましパケットを注入することができる。なりすましパケットは、ネーティブ接続から来ているように見える。これらの注入されたパケットは、NATデバイスを騙して、その接続に対する不活性タイマをリセットさせるが、ネーティブ・アプリケーションを騙したり混乱させることはなく、ネーティブ・アプリケーションはなりすましに気付かないでいることができる。このために、NATタイムアウトのために接続が終了することはなく、したがって、クライアント/サーバー・プロトコルは、接続を生かしておくために、偽の活動パケットを発生する必要がない。
本アーキテクチャは、NATデバイスを通じて、任意の不活性ネットワーク接続に永続性を与え、TCP(送信制御プロトコル)のような接続指向エンド・ツー・エンド・トランスポート・プロトコルおよびUDP(ユーザ・データーグラム・プロトコル)のような無接続トランスポート・プロトコルと動作する。
前述の目的および関連する目的の遂行のために、開示する新規なアーキテクチャのある種の例示的態様について、本明細書では以下の説明および添付図面と関連付けて記載する。しかしながら、これらの態様は、本明細書に開示する原理を採用することができる種々の方法の内の数個に過ぎず、そのような態様の全ておよびその均等物を含むことを意図している。他の利点や新規な特徴も、以下の詳細な説明を図面と合わせて考察することにより、明白となろう。
図1は、一実施形態にしたがって接続管理を容易にするコンピューター実装システムを示す。 図2は、接続のネーティブ・アプリケーション毎にキープ・アライブ(KA)アプリケーションを採用するシステムを示す。 図3は、帯域外(OOB)KAパケットを用いて接続を維持するクライアント/サーバー・システムを示す。 図4は、多数の接続に対する接続状態を処理するためにKAアプリケーションが動作する代替システムを示す。 図5は、OOB KA管理方法を示す。 図6は、接続方針に基づく接続管理方法を示す。 図7は、トランスポート・プロトコルに基づくNAT接続不活性を管理する方法を示す。 図8は、接続管理のためにKAパケットを発生し利用する方法を示す。 図9は、開示したKAアーキテクチャを実行するように動作可能なコンピューティングシステムのブロック図を示す。 図10は、OOB KA処理を採用することができるコンピューティング環境の一例の模式ブロック図を示す。
開示するアーキテクチャは、ネーティブ・アプリケーションに何の要件も修正も賦課することなく、外部からネーティブ・アプリケーションに適用することができる帯域外(OOB)技法を採用することによって、ネットワーク・アドレス変換(NAT)デバイスおよび/またはソフトウェアの接続を存続させるための解決策を提供する。このアーキテクチャは、一般的なNAT状態管理メカニズムにおいて「論理ホール」(logical hole)を利用して、OOB発信元(例えば、アプリケーション)からなりすまし(または、キープ・アライブ(KA))パケットを注入する。OOB発信元は、NATデバイスの観点からは、ネーティブ接続の一部であるように見える。これらの注入パケットは、NATデバイスに、その接続に対する不活性タイマをリセットさせるが、ネーティブ・アプリケーションを騙したり混乱させることはなく、ネーティブ・アプリケーションはなりすましに気が付かないでいることができる。したがって、接続(例えば、TCP送信制御プロトコルまたはUDP−ユーザ・データーグラム・プロトコルに基づく)がNATタイムアウトによって終了することはなく、したがって、クライアント/サーバー・プロトコルは、例えば、接続を存続させておくために偽の帯域内KAパケットを発生しなくてもよい。
これより図面を参照するが、全体を通じて同様の要素を指すために同様の参照番号を用いることとする。以下の記載では、説明の目的上、完全な理解が得られるようにするために、多数の具体的な詳細を明記する。しかしながら、新規な実施形態はこれら具体的な詳細がなくても実用可能であることは明白であろう。一方、周知の構造やデバイスは、その説明を容易にするために、ブロック図形態で示すこととする。
最初に図面を参照すると、図1は、一実施形態による接続管理を容易にするコンピューター実施システム100を示す。システム100は、ソフトウェア・エンティティ104(ソフトウェア・エンティティ1およびソフトウェア・エンティティで示す)間に任意の通信接続を提供する接続コンポーネント102(例えば、NATデバイス)を含む。また、システム100は、OOB KAパケット(または信号)を送るために接続コンポーネント102にインターフェースするキープ・アライブ・コンポーネント106も含む。OOB KAパケットは、接続を維持するために、接続コンポーネント102によって処理される。
一実施態様では、KAコンポーネント106は、ソフトウェア・エンティティ104が位置するコンピューティングシステム上におけるTCP/IPスタック・システム・テーブルの活動(activity)を監視する。例えば、新たなテーブル・エントリーは、KAパケットを挿入することができる新たな接続を示す。TCP/IPテーブルは、ソフトウェア・エンティティが位置するシステムにおいて監視することができる。例えば、クライアント・システム・テーブルを監視することができる。同様に、サーバーを伴う場合、サーバー・システムTCP/IPテーブルへの入力活動(例えば、除去または新たなエントリー)を監視することができる。
代替的かつ任意の実施態様では、ソフトウェア・エンティティ104の一方または双方の接続パケット活動を、KAコンポーネント106が監視することができ、その活動に基づいて、KAパケットを接続に挿入する。KAパケットは、KAコンポーネント106によって、外部からまたは接続コンポーネント102のいずれかの側または両側から(例えば、その接続を通じてパケットを導出する他のネットワーク・デバイスによって)、接続コンポーネント102の対応する接続に挿入し、挿入されたKAパケットが接続コンポーネント102によって通常の帯域内トラフィックとして認知されるようにすることができる。次いで、KAパケットは、接続コンポーネント102によって検出された各パケットの発生時に(帯域内および/またはキープ・アライブ)その接続に対する接続タイマをリセットする。
システム・テーブルは、KAコンポーネント106によって直接監視すること、および/または接続コンポーネント102を通じて間接的に監視することができる。例えば、テーブル活動が、接続を維持すべきことを示す場合、KAコンポーネント106はKAパケットをその接続に注入して、接続コンポーネント102がKAパケットを処理して、接続タイマをリセットし、接続を維持する。
代替的かつ任意の実施態様では、ソフトウェア・エンティティ104の1つ以上が監視した接続パケット活動(またはそれがないこと)をKAコンポーネント106に伝達し、KAコンポーネント106にKAパケットを接続コンポーネント102に送らせることができる。次いで、接続コンポーネント102は、自己処理およびタイムアウト・タイマのリセットのために、KAパケットを接続に挿入する。更に別の例では、KAコンポーネント106によって直接監視した接続パケット不活性に基づいて、そしてそれでもなお接続を存続させておきたいという要望に基づいて、KAコンポーネント106は接続を通じて帯域内KAパケットを発生し、その接続に対するタイムアウト・タイマをリセットするように、ソフトウェア・エンティティ104の一方または双方に通知することができる。ソフトウェア・エンティティ104がKAアプリケーションである場合、KAコンポーネント106は、接続を維持するために、OOBパケットを接続に挿入するように、ソフトウェア・エンティティ104のいずれかまたは双方に通知することができる。尚、テーブルにおける不活性や帯域内パケット・トラフィックには関係なく、KAパケットを周期的に送ることができることは言うまでもない。
システム100の一実施態様は、NATデバイスを接続コンポーネント102の一部として含み、ソフトウェア・エンティティ104がNATデバイスを経由して互いに通信するようになっている。ソフトウェア・エンティティ104は(ネーティブ・アプリケーションとして)、NATを経由して接続を通じて違いに通信することにより、帯域内(ネーティブ・アプリケーション間のみ)パケットの通常伝達によって、アクティブ接続を作成する。NATデバイスは、タイムアウト・タイマを有し、ネーティブ・アプリケーション104からの帯域内パケットの受信に基づいて、継続的にタイマをリセットする。
しかしながら、これまでは、タイムアウト期間以内に帯域内パケットがNATデバイスによって受信されないと、NATは接続を打ち切り、アプリケーションはNATデバイスを通じて接続を確立し直す必要があった。本アーキテクチャはこの問題を解決するにあたり、少なくとも1つのKAアプリケーション(例えば、KAコンポーネント106の一部として)を備え、これが1つ以上のネーティブ・アプリケーション104と共に起動して、KAアプリケーションがKAパケットを発生して接続に挿入し、NATデバイスに自動的にタイムアウト・タイマをリセットさせるようにすることにより、接続を維持する。テーブル・エントリーがシステム・テーブルから除去されると、KAパケットはもはや接続には挿入されない。
一実施態様では、KAコンポーネント106は、オペレーティング・システムのTCP/IPテーブルにおいて新たなエントリーを検知したことに応答して、KAアプリケーションを起動する。つまり、NATデバイスを通じて動作する多数の異なる接続を管理することができる。別の実施態様では、ネーティブ・アプリケーション(またはソフトウェア・エンティティ104)毎に、1つのKAアプリケーションを起動する。ここでは、接続を切断したままにするべきであると判断するまで、KAパケットをしかるべきNAT接続に挿入することによって、ネーティブ・アプリケーションが帯域内パケット通信およびOOBパケット活動に関するKAアプリケーションのキャリーを処理する。これを図2において更に詳細に説明する。
図2は、接続のネーティブ・アプリケーション毎にKAアプリケーションを採用するシステム200を示す。ここでは、KAコンポーネント106は2つのKAアプリケーション202、即ち、第1KAアプリケーション204(KA APPで示す)および第2KAアプリケーション(KA APPで示す)を備えている。第1KAアプリケーション204および/または第2KAアプリケーション206の一方または双方は、システム・テーブル・エントリーの活動を監視する。新たなテーブル・エントリーを検出すると(例えば、TCP/IPシステム・テーブルにおいて)、KAアプリケーション(204または/および206)の一方または双方は、KAパケットを接続に挿入し始める。
代替的かつ任意の実施形態では、接続維持がテーブル活動ではなくパケット・トラフィックに基づく場合、第1KAアプリケーション204は、接続コンポーネント102(例えば、NATデバイス)と第1ネーティブ・アプリケーション(ネーティブAPP1で示す)との間におけるネーティブ・パケット・トラフィックを監視し、および/または第2KAアプリケーション206は、接続コンポーネント102と第2ネーティブ・アプリケーション210(ネーティブAPP2)との間におけるネーティブ・パケット・トラフィックを監視する。本明細書において記載する場合、ネーティブ・アプリケーション(208および210)は帯域内で通信すると言い、KAアプリケーション(204および206)はOOBで通信すると言う。第1ネーティブ・アプリケーション・システムと関連のあるシステム・テーブルを監視することにより、第1ネーティブ・アプリケーションのネットワーク5−タプル(network 5-tuple)(例えば、プロトコル番号、発信元IPアドレス、発信元ポート、宛先IPアドレス、および宛先ポート)を発見することができる。この情報に基づいて、第1KAアプリケーション204は、接続コンポーネント102のタイムアウトを観察し、これに基づいて所望のKAリフレッシュ期間を観察し採用することができる。KAリフレッシュ期間は、接続コンポーネント102のタイムアウト期間よりも短く、その接続のタイムアウト期間が過ぎ去る前にKAパケットが送られるようになっている。例えば、タイムアウト期間が15分であるとすると、リフレッシュは10分(または、タイムアウト期間よりも短く適した値であれば、他のいずれでもよい)となるように選択することができる。
1つの代替的かつ任意の動作では、リフレッシュ期間に基づいて、第1KAアプリケーション204は、接続コンポーネント102の各タイムアウト期間が過ぎ去る前に、KAパケットを接続に注入する。勿論、これは、第1ネーティブ・アプリケーション208のパケット活動に基づく。言い換えると、第1ネーティブ・アプリケーション208が、例えば、第1ネーティブ・アプリケーション208から第1KAアプリケーション204への信号によって、第2ネーティブ・アプリケーション210との通信がもはや望まれていないことを示した場合、第1KAアプリケーション204はKAパケットを接続に注入させるのを中止する。このため、接続コンポーネント102はここで接続を終了させ、接続は作用しなくなる。
一実施形態では、第1KAアプリケーション204がKAパケットを送っているとき、第2KAアプリケーション206はKAパケットを除去する。つまり、第2ネーティブ・アプリケーション210はKAアプリケーションを不必要に扱う必要がない。
同様な任意の動作によれば、システム・デーブルの代わりに、第2ネーティブ・アプリケーション210と接続コンポーネント102との間においてパケット・トラフィックを環視することにより、第2KAアプリケーション206は第2ネーティブ・アプリケーションのネットワーク5−タプル(例えば、プロトコル番号、発信元IPアドレス、発信元ポート、宛先IPアドレス、および宛先ポート)を発見する。この情報に基づいて、第2KAアプリケーション206は、接続コンポーネント102の観察したタイムアウトに基づいて、適したKAリフレッシュ期間を観察し採用することができる。リフレッシュ期間に基づいて、第2KAアプリケーション206は、各タイムアウト期間が過ぎ去る前に、KAパケットを接続に注入する。勿論、これは第2ネーティブ・アプリケーション210の活動に基づく。言い換えると、第2ネーティブ・アプリケーション210が、第1ネーティブ・アプリケーション208との通信がもはや望まれないことを示した場合、第2KAアプリケーション206は、KAパケットを接続に注入するのを中止する。このため、接続コンポーネント102はここで接続を終了させ、接続は作用しなくなる。
別の実施態様では、第2KAアプリケーション206がKAパケットを送っているとき、第1KAアプリケーション204はKAパケットを除去する。つまり、第1ネーティブ・アプリケーション208はKAアプリケーションを不必要に扱う必要がない。
別の動作によれば、第1および第2ネーティブ・アプリケーション(208および210)双方と接続コンポーネント102との間においてパケット・トラフィックを監視することによって、対応する第1および第2KAアプリケーション(204および206)はネーティブ・アプリケーションのネットワーク5−タプルを発見する。この情報に基づいて、第1および第2KAアプリケーション(204および206)は、接続コンポーネント102の観察したタイムアウトに基づいて、所望のKAリフレッシュ期間を観察し採用することができる。リフレッシュ期間に基づいて、第1および/または第2KAアプリケーション(204および206)は、各タイムアウト期間が過ぎ去る前に、KAパケットを接続に注入する。勿論、これは、対応する第1および第2ネーティブ・アプリケーション(208および210)の活動に基づく。更に別の実施態様では、双方のKAアプリケーション(204および206)は、NATタイムアウトが過ぎ去る前のある時点において接続コンポーネント102の両側がリフレッシュされる限り、独立して動作することができる。
言い換えると、この任意の実施態様によれば、第2ネーティブ・アプリケーション210が、例えば、第2ネーティブ・アプリケーション210から第2KAアプリケーション206への信号によって、第1ネーティブ・アプリケーション208との通信はもはや望まれていないことを示した場合、第2KAアプリケーション206はKAパケットを接続に注入するのを中止する。同様に、第1ネーティブ・アプリケーション208が、第2ネーティブ・アプリケーション210との通信がもはや望まれていないことを示す場合、第1KAアプリケーション204はKAパケットを接続に注入するのを中止する。このように、接続コンポーネント102はここで接続を終了させ、接続は作用しなくなる。第1および第2KAアプリケーション(それぞれ、204および206)の双方がKAパケットを送っているとき、反対側の第2および第1KAアプリケーション(それぞれ206および204)は、受信したKAパケットを除去することができる。つまり、第1および第2ネーティブ・アプリケーション(208および210)はKAパケットを処理するように構成しなければならない。
図3は、OOB KAパケットを用いて接続を維持するクライアント/サーバー・システム300を示す。更に具体的には、クライアント/サーバーを想定した場合、クライアント304のクライアント・ネーティブ・アプリケーション302は、NATデバイス306を通じて、サーバー310のサーバー・ネーティブ・アプリケーション308への長寿命UDPまたはTCP接続を開く。このアーキテクチャは、TCPのようなエンド・ツー・エンド・トランスポート・プロトコルや、UDPのような無接続トランスポート・プロトコルを用いて動作する。また、クライアント304はファイアウオール、フィルタリング、または多重化コンポーネント312(以後、総合的にファイアウオール312と呼ぶ)も含むことができ、これを通じて通信を行う。通信は、クライアントTCP/IPスタックおよびテーブル314によって、NATデバイス306の接続、サーバーTCP/IPスタックおよびテーブル316、ならびにサーバー・ファイアウオール318を通じて進められ、サーバー・ネーティブ・アプリケーション308に到達する。スタック(314および316)には、関連するTCP/IPシステム・テーブルがあり、このTCP/IPシステム・テーブルは、新たな接続毎に新たなテーブル・エントリーを用いて更新し、欠落した接続に対するテーブル・エントリーを抜き取る。
一実施態様によれば、KAアプリケーション(まとめてKAコンポーネント106と記載する)をクライアント304およびサーバー310双方の上で起動する。クライアントKAアプリケーション320は、クライアント304上で起動し、サーバーKAアプリケーション322はサーバー310上で起動する。尚、KAコンポーネントのアプリケーション(320および322)は、背景プロセスとして連続的に走るように、オペレーティング・システム(クライアントおよびサーバー)と共に起動することができることは言うまでもない。前述のように、ネットワーキング5−タプル(例えば、プロトコル番号、発信元IPアドレス、発信元ポート、宛先IPアドレス、および宛先ポート)は、KAコンポーネント106(クライアントおよびサーバーKA(320および/または322)の一方または双方)によって、TCP/IPスタック(314および316)と関連のあるTCP/IPテーブルによって発見することができる。
KAアプリケーション(320および322)は、協同してまたは独立して、所望のKAリフレッシュ期間を観察し採用することができる(観察したNATタイムアウトに基づく)。例えば、NATデバイス306の背後にあるクライアント304(例えば、個人側(private side))がサーバー310(公開側)へのTCP接続を開き、その後静粛(パケット活動なし)を維持していると仮定する。この接続を確立したことにより、クライアントTCP/IPシステム・テーブルには新たなエントリーが生ずる。従来の実施態様におけるように、KAコンポーネント106がないと、NATデバイス306は接続状態を終了させ、TCP接続を無効にする。説明したOOBのように動作するKAコンポーネント106の利用によって、TCP接続がNATタイムアウトによって終了せず、したがってクライアント/サーバー・プロトコルは接続を生かしておくために「偽の」帯域内活動を生成する必要はないことを保証する。例えば、観察したNATタイムアウトが15分である場合、リフレッシュ期間(または値)を15分未満(例えば、10分)にすることができる。一般に、KAリフレッシュ期間は、観察したNATデバイスのタイムアウト期間未満となるように採用する。
動作において、KAアプリケーション(320および322)は、協同してまたは独立して(トランスポート・プロトコルによって異なる)、クライアント304、サーバー310、またはクライアント304およびサーバー310双方から、KA(またはなりすまし)接続パケットを送る。KAコンポーネント106は、NATデバイス306の受信側においてなりすましパケットを除去するように機能し、これによって、受信するネーティブ・アプリケーションにおいてKAパケットを処理することによる混乱を解消する。
代替実施態様では、KAコンポーネント106によるなりすましパケットの除去が行われるのは、ネーティブ・アプリケーション(クライアント・ネーティブ・アプリケーション302またはサーバー・ネーティブ・アプリケーション308)が、混乱のないように(またはエラーを生じないように)、なりすましパケットを処理できる十分なロバスト性があるときである。これは、なりすましパケットを認識し欠落させることを含むことができる。例えば、KAパケットは、受信側において、パケット・データーを調べて、なりすましパケットを一意に定める情報を得ることによって、フィルタ処理および/または除去することができる。KAパケットは、ゼロ・ペイロード・パケット(ヘッダのみを有する)とすることができる。他の方法も用いることができる。NATデバイス306は、なりすましパケットを受信する毎(およびネーティブ・パケットの受信時)に、NAT接続タイムアウトをリセットする。TCP/IPパケットの性質により、なりすましは生のIPレイヤーにおいて行われる。何故なら、UDP/TCPプロトコルは、多数のアプリケーションが送り元および受信先双方について同じ5−タプルに結集する(bind)ことを許可しないからである。
KAコンポーネント106は、それぞれのファイアウオール(312および318)および/またはシステムTCP/IPスタックおよびテーブル(314および316)と通信することにより、ネーティブ・アプリケーションの5−タプルを発見することができる。加えて、KAパケットの除去は、それぞれの受信ファイアウオール(312および318)が、フィルタリング機能性を用いることによって遂行することができる。更に、システム300は、クライアント/サーバーという状況に制限されるのではなく、ピア・ツー・ピア・トポロジーにも適用可能である。
図4は、KAアプリケーションが多数の接続について接続状態を処理するように動作する、代替システム400を示す。システム400は、NATデバイス306を通じて第2システム404と通信しようとしている第1システム402(例えば、携帯コンピューター)を含む。第1システム402は、2つのネーティブ・アプリケーション、即ち、第1ネーティブ・アプリケーション406および第2ネーティブ・アプリケーション408を含む。また、第1システム402は、第1KAアプリケーション410も含む。第1KAアプリケーション410は、第1および第2ネーティブ・アプリケーション(406および408)にインターフェースして、第1システム402のTCP/IPシステム・テーブル・エントリーによって、第1システム402のネーティブ・アプリケーション・システム(402および404)間における活動を監視する。任意に、第1KAアプリケーション410は、NATデバイス306を通じた接続の接続状態も監視することができる。
同様に、第2システム404(例えば、ウェブ・サーバー)もNATデバイス306を通じて第1システム402に通信する。この特定的な例では、第2システム404は、2つのネーティブ・アプリケーション、即ち、第3ネーティブ・アプリケーション412および第4ネーティブ・アプリケーション414を含む。また、第2システム404は第2KAアプリケーション416も含む。第2KAアプリケーション416は、第3および第4ネーティブ・アプリケーション(412および414)にインターフェースして、第2システム404のTCP/IPシステム・テーブル・エントリーによって、第2システム404のネーティブ・アプリケーション活動を監視する。任意に、第2KAアプリケーション416はNATデバイス306を通じたNAT接続の接続状態も監視することができる。
この例では、第1および第3ネーティブ・アプリケーション(406および412)はNATデバイス306を通じて第1接続(CONで示す)を開き、第2および第4ネーティブ・アプリケーション(408および414)はNATデバイス306を通じて第2接続(CONで示す)を開く。第1システム402における新たなTCP/IPシステム・テーブル・エントリーおよび/または第2システム404における新たなTCP/IPシステム・テーブル・エントリーに基づいて、第1および第2KAアプリケーション(410および416)はKAパケットを対応する第1および第2接続に供給して、所望の第1および/または第2接続に対する接続状態を維持する。
初期状態において、アクティブなネーティブ・アプリケーションがいずれのシステム(402または404)にもない場合、KAアプリケーション(410および416)を起動しない。第1ネーティブ・アプリケーション406がNATデバイス306を通じて第1接続を開くと、第1KAアプリケーション410が起動して第1接続KAパケットに対してリフレッシュ期間を採用する。例えば、第1接続は第3ネーティブ・アプリケーション412に対してアクティブであるが、しかしながら、この接続がインアクティブであり、第1接続がインアクティブでないことが望まれる場合、第1KAアプリケーション410は自動的に第1接続KAパケットを第1接続に挿入して、第1接続を維持する。第3ネーティブ・アプリケーション412において活動を検出すると、第2KAアプリケーション416は、この時点では受信側KAアプリケーションであり、受信したKAアプリケーションをパケット・ストリームから除外する。つまり、第3ネーティブ・アプリケーション412は、KAパケット処理またはフィルタリングによって損なわれないパケット・ストリームを受信することができる。
第2ネーティブ・アプリケーション408がこの時点において活性化され、第4ネーティブ・アプリケーション414への第2接続を開くと、第1KAアプリケーション410は既にNATデバイス306のリフレッシュ期間を知っており、したがって不活性制御が望まれる場合、第2接続(CON)に対してKA接続維持をNATデバイス306に適用する。このため、第1KAアプリケーション410は1つのNATデバイス306によって多数の接続を管理することができる。代替動作では、第1KAアプリケーション410は第1接続を管理し、一方第2システム404の第2KAアプリケーション416は第2接続を管理する。尚、多数の接続に対して多数のポートを有するNATデバイスの典型的な実施態様では、多重接続KA管理も実行可能であることは理解できよう。
図5は、OOB KA管理方法を示す。説明を簡単にする目的に沿って、ここに示す1つ以上の方法は、例えば、フロー・チャート即ち流れ図の形態で示し、一連の動作として示し説明するが、これらの方法は動作の順には限定されず、一部の動作は、これによれば、ここに示し説明するものとは異なる順序で、および/または他の動作と同時に行われてもよいことは言うまでもないことであり、認められよう。例えば、1つの方法は、状態図におけるように、一連の相互に関連する状態またはイベントとして表すこともできることは、当業者には理解され認められるであろう。更に、1つの方法の図示する動作全てが、新規な実施態様に必要ではない場合もある。
500において、異なるシステムのネーティブ・アプリケーション間においてNAT接続を開く。502において、NAT接続に対してリフレッシュ期間を決定する。言い換えると、KAアプリケーションは、リフレッシュ値のテーブルを含むことができ、これに基づいてKAパケットを送信する。リフレッシュ値は、KAアプリケーションにおいてハード・コード化することができ(例えば、30秒毎)、あるいはKAアプリケーションが、予め計算した値を用いることもできる。任意に、リフレッシュ期間は、NATタイムアウト期間に基づいて、関連するKAアプリケーションによって自動的に計算することができる。504において、システム・テーブル活動に基づいて、接続を監視する。506において、送出側で選択したリフレッシュ値に基づいてKAアプリケーションを用いて、KAパケットを自動的に接続に挿入する。508において、望ましければ、受信側でKAパケットを除去する。言い換えると、受信側において、受信したKAアプリケーションがKAパケットを除去するのは必須要件ではない。
図6は、接続方針に基づいた接続管理方法を示す。600において、ネーティブ・アプリケーション間でNAT接続を開く。602において、NATタイムアウト期間に基づいて、関連するKAアプリケーションによってリフレッシュ値を選択する。604において、接続に付随する方針を入手し処理する。606において、送出側で選択したリフレッシュ値に基づいてKAアプリケーションを用いて、KAパケットを自動的に接続に挿入する。608において、方針に応じて、KAパケットを用いて接続を動作させる。言い換えると、方針は、帯域内またはOOBパケット・トラフィックが終了したか否かには関わらず、接続が所定の時間期間開いたままにして、その時間が過ぎ去ったときに接続を遮断することを示すことができる。
図7は、タイプ・トランスポート・プロトコルに基づいてNAT接続不活性を管理する方法を示す。700において、ネーティブ・アプリケーション間でNAT接続を開く。702において、ネーティブ・アプリケーションの活動に基づいて、対応するKAアプリケーションの1つ以上を起動する。704において、KAアプリケーションの1つ以上が、NATタイムアウト期間に基づいて、リフレッシュ期間を選択する。706において、KAアプリケーションは、スタック・テーブル活動に基づいて、対応するネーティブ・アプリケーション接続を監視する。708において、TCPパケットの直前の伝達に基づいて、KAアプリケーションの各々から接続にKAパケットを自動的に挿入する。あるいは、710において、UDPパケットの直前の伝達に基づいて、KAアプリケーションの一方または双方からKAパケットを自動的に接続に挿入する。TCPは接続指向エンド・ツー・エンド・トランスポート・プロトコルであるので、KAアプリケーションの双方がKAパケットを挿入し、KAパケットを除去するように動作することが望ましい。UDPは無接続トランスポート・プロトコルであるので、殆どの場合、KAアプリケーションの内1つだけがKAパケットをNAT接続に挿入するように動作すればよい。
図8は、接続管理のためにKAパケットを発生し利用する方法を示す。800において、1つのネーティブ・アプリケーションによって別のネーティブ・アプリケーションへのNAT接続を、NATデバイスを通じて開く。802において、KAアプリケーションを起動した後、KAアプリケーションの1つ以上によってリフレッシュ期間を利用する。804において、発見プロセスを開始して、ネーティブ・アプリケーションのネットワーキング5−タプルを発見する。これは、TCP/IPテーブルによって行うことができる。806において、5−タプル情報を用いて、解く知恵の接続に合わせてKAパケットを組み立てる。808において、リフレッシュ期間に基づいて、接続にKAパケットを挿入してNATタイムアウト・タイマをリセットする。810において、NATデバイスによって処理されたKAパケットを、ネーティブ・アプリケーションに到達する前に除去する。
本願で用いる場合、「コンポーネント」および「システム」という用語は、コンピューター関連エンティティを指すことを意図しており、ハードウェア、ハードウェアとソフトウェアとの組み合わせ、ソフトウェア、または実行ソフトウェア(software in execution)のいずれでもよい。例えば、コンポーネントは、プロセッサー上で走るプロセス、プロセッサー、ハード・ディスク・ドライブ、(光および/または磁気記憶媒体の)多数の記憶装置、オブジェクト、エクゼキュータブル、実行スレッド、プログラム、および/またはコンピューターとすることができるが、これらに限定されるのではない。例示として、サーバー上で走るアプリケーションおよびそのサーバー双方共、コンピューター・コンポーネントであることができる。1つ以上のコンポーネントは、プロセスおよび/または実行スレッド内部に位置することができ、コンポーネントは1つのコンピューターに集中させる(localize)ことおよび/または2つ以上のコンピューター間で分散することもできる。
これより図9を参照すると、開示したKAアーキテクチャを実行するように動作可能なコンピューティングシステム900のブロック図が示されている。その種々の態様について追加のコンテキスト(context)を提示するために、図9および以下の論述は、実施形態の種々の態様を実施することができる、適したコンピューティングシステム900の端的な総合的な説明を行うことを意図している。以上ではローカル・コンピューターおよび/またはリモート・コンピューター上で走るコンピューター実行可能命令という一般的なコンテキストにおいて実施形態を説明したが、本アーキテクチャは、他のプログラム・モジュールとの組み合わせでも、および/またはハードウェアとソフトウェアとの組み合わせでも実施できることは、当業者には認められよう。
一般に、プログラム・モジュールは、ルーチン、プログラム、コンポーネント、データー構造等を含み、特定のタスクを実行するか、または特定の抽象的データー・タイプを実現する。更に、当業者には、本発明の方法は他のコンピューター・システム構成でも実用化可能であることが認められよう。他のコンピューター・システム構成には、単一プロセッサーまたはマルチプロセッサー・コンピューター・システム、ミニコンピューター、メインフレーム・コンピューター、ならびにパーソナル・コンピューター、ハンド・ヘルドコンピューティングデバイス、マイクロプロセッサー主体消費者用電子機器および/またはプログラマブル消費者用電子機器等が含まれ、これらの各々は1つ以上の関連するデバイスと動作的に通信することができる。
また、図示した実施形態の態様は、通信ネットワークを通じてリンクされているリモート処理デバイスがタスクを実行する分散型コンピューティング環境においても実用可能である。分散型コンピューティング環境では、プログラム・モジュールは、ローカルおよびリモート・コンピューター記憶媒体双方に配することができる。
コンピューターは、通例、種々のコンピューター読み取り可能媒体を含む。コンピューター読み取り可能媒体は、コンピューターがアクセス可能な入手可能な媒体であればいずれでも可能であり、揮発性および不揮発性媒体、リムーバブルおよび非リムーバブル媒体を含む。限定ではない一例をあげると、コンピューター読み取り可能媒体は、コンピューター記憶媒体および通信媒体を含むことができる。コンピューター記憶媒体は、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、またはその他のデーターというような情報の格納のために、あらゆる方法または技術で実施される、揮発性および不揮発性の双方、リムーバブルおよび非リムーバブル媒体を含む。コンピューター記憶媒体は、RAM、ROM、EEPROM、フラッシュ・メモリーまたはその他のメモリー技術、CD−ROM、ディジタル・バーサタイル・ディスク(DVD)またはその他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたはその他の磁気記憶デバイス、あるいは所望の情報を格納するために用いることができしかもコンピューターがアクセス可能なその他のいずれの媒体も含むが、これらに限定されるのではない。
再度図9を参照すると、本発明の種々の態様を実施するためのシステム環境例900は、コンピューター902を含む。コンピューター902は、演算装置904、システム・メモリー906、およびシステム・バス908を含むことができる。システム・バス908は、システム・メモリー906を含むがこれに限定されない種々のシステム構成要素を演算装置904に結合する。演算装置904は、市販されている種々のプロセッサーのいずれでもよい。また、二重マイクロプロセッサーやその他のマルチプロセッサー・アーキテクチャも演算装置904として用いることもできる。
システム・バス908は、数種類のバス構造のいずれでもよく、更に、(メモリー・コントローラを有するまたは有さない)メモリー・バス、周辺バス、ならびに種々の従来のバス・アーキテクチャのいずれかを用いるローカル・バスを含む。システム・メモリー906は、リード・オンリ・メモリー(ROM)910およびランダム・アクセス・メモリー(RAM)912を含む。ROM、EPROM、EEPROM、のような不揮発性メモリー910に、基本入出力システム(BIOS)が格納されており、BIOSは、起動中のように、コンピューター902内のエレメント間におけるデーター転送を補助する基本的なルーチンを含む。また、RAM912は、データーをキャッシュするスタティックRAMのような、高速RAMも含むことができる。
また、コンピューター902は、更に、ハード・ディスク・ドライブ(HDD)914(例えば、EIDE SATE)も含み、内部ハード・ディスク・ドライブ914は適したシャーシ(図示せず)において外部の使用に合わせて構成することができる。更に、磁気フロッピ・ディスク・ドライブ916(例えば、リムーバブル・ディスケット918からの読み取りおよびこれへの書き込みを行なう)、および光ディスク・ドライブ920(CD−ROMディスク922を読み取る、あるいはDVDのようなその他の光学媒体からの読み取りおよびこれへの書き込みを行なう)も含む。ハード・ディスク・ドライブ914、磁気ディスク・ドライブ916、および光ディスク・ドライブ920は、ハードウェア・ディスク・ドライブ・インターフェース924、磁気ディスク・ドライブ・インターフェース926、および光ドライブ・インターフェース928によって、それぞれ、システム・バス908に接続されている。外部ドライブ用インターフェース924は、ユニバーサル・シリアル・バス(USB)およびIEEE1394インターフェース技術の少なくとも一方または双方を含む。
前述のドライブおよびそれらと関連のあるコンピューター読み取り可能媒体は、データー、データー構造、コンピューター実行可能命令等の不揮発性格納を行う。コンピューター902のために、ドライブおよび媒体は、あらゆるデーターの適したディジタル・フォーマットでの格納に対処する。以上のコンピューター読み取り可能媒体の説明は、HDD、リムーバブル磁気ディスク、およびCDまたはDVDのようなリムーバブル光媒体に言及したが、zipドライブ、磁気カセット、フラッシュ・メモリー・カード、カートリッジ等のような、コンピューターによる読み取りが可能な他の種類の媒体も、本動作環境例において用いることができ、更に、このような媒体はいずれも、開示した方法を実行するためのコンピューター実行可能命令を収容することができることは、当業者には認められてしかるべきである。
多数のプログラム・モジュールを前述のドライブおよびRAM912に格納することができ、オペレーティング・システム930、1つ以上のアプリケーション・プログラム932、その他のプログラム・モジュール934、およびプログラム・データー936を含む。オペレーティング・システム、アプリケーション、モジュール、および/またはデーターの全部または一部は、RAM912にキャッシュすることもできる。尚、本アーキテクチャは、種々の市販のオペレーティング・システムまたはオペレーティング・システムの組み合わせとでも実現できることは認められてしかるべきである。アプリケーション932および/またはモジュール934は、ネーティブ・アプリケーション、KAアプリケーション、および/または既に述べたKAコンポーネントを含むことができる。
ユーザは、1つ以上のユーザ入力デバイス、例えば、キーボード938およびマウス940のようなポインティング・デバイスによって、コマンドおよび情報をコンピューター902に入力することができる。他の入力デバイス(図示せず)には、マイクロフォン、IRリモート・コントロール、ジョイスティック、ゲーム・パッド、スタイラス・ペン、タッチ・スクリーン等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、システム・バス908に結合されている入力デバイス・インターフェース942を通じて、演算装置904に接続されているが、パラレル・ポート、IEEE1394シリアル・ポート、ゲーム・ポート、USBポート、IRインターフェース等のようなその他のインターフェースによって接続することも可能である。
モニタ944またはその他の形式の表示装置も、ビデオ・アダプタ946のようなインターフェースを介して、システム・バス908に接続されている。モニタ944に加えて、コンピューターは、スピーカーおよびプリンター等のような、その他の周辺出力装置(図示せず)も含むのが通例である。
尚、コンピューター902は、1つ以上のリモート・コンピューター960への論理接続を用いて、リモート・コンピューター948のような1つ以上のリモート・コンピューターへの有線および/またはワイヤレス接続を通じて、ネットワーク環境において動作することも可能である。リモート・コンピューター948は、ワークステーション、サーバー・コンピューター、ルータ、パーソナル・コンピューター、携帯コンピューター、マイクロプロセッサー主体の娯楽機器、ピア・デバイス、またはその他の共通コンピューター・ノードとすればよく、通例、コンピューター902に関して先に説明したエレメントの多くまたは全てを含むが、簡略化の目的上、メモリー/記憶装置950のみを示す。図示する論理接続は、ローカル・エリア・ネットワーク(LAN)952および/またはそれよりも大きなネットワーク、例えば、ワイド・エリア・ネットワーク(WAN)954への有線/ワイヤレス接続を含む。このようなLANおよびWANネットワーク環境は、事務所や会社では珍しくなく、イントラネットのような企業全体に及ぶコンピューター・ネットワークが容易にでき、その全ては、大域通信ネットワーク、例えば、インターネットに接続することができる。
LANネットワーキング環境で用いる場合、例えば、コンピューター902は、有線および/またはワイヤレス通信ネットワーク・インターフェースあるいはアダプタ956を介してローカル・ネットワーク952に接続する。アダプタ956は、LAN952への有線またはワイヤレス通信を容易にすることができ、LAN952は、ワイヤレス・アダプタ956と通信するために配置したワイヤレス・アクセス・ポイントも含むことができる。
WANネットワーキング環境で用いる場合、コンピューター902は、通例、モデム958を含むことができ、あるいはWAN954上にある通信サーバーに接続し、あるいはインターネットによってというように、WAN954上で通信を確立するその他の手段を有する。モデム958は、コンピューター902に対して内部または外部でも可能であり、シリアル・ポート・インターフェース942を介してシステム・バス908に接続する。ネットワーク環境では、コンピューター902に関して図示したプログラム・モジュールまたはその一部を、リモート・メモリー/記憶装置950に格納することができる。尚、図示のネットワーク接続は一例であり、コンピューター間で通信リンクを確立する他の手段も使用可能であることは認められよう。
コンピューター902は、ワイヤレス通信内に動作的に配置されているあらゆるワイヤレス・デバイスまたはエンティティ、例えば、プリンター、スキャナー、デスクトップおよび/または携帯コンピューター、携帯データー・アシスタント、通信衛星、ワイヤレスで検出可能なタグと関連付けられた機器または場所(例えば、キオスク、新聞売店、休憩室)の任意のもの、そして電話機と通信するように動作可能である。これには、少なくともWi−FiおよびBluetooth(商標)ワイヤレス技術が含まれる。つまり、通信は、従来のネットワークのように、既定の構造とすることができ、あるいは単に少なくとも2つのデバイス間におけるその場限りの通信とすることもできる。
これより図10を参照すると、OOB KA処理を採用することができるコンピューティング環境例1000の模式ブロック図が示されている。システム1000は、1つ以上のクライアント1002を含む。クライアント1002は、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティングデバイス)とすることができる。クライアント1002は、例えば、クッキーおよび/または関連する文脈情報を収容することができる。
また、システム1000は、1つ以上のサーバー1004も含む。サーバー1004も、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティングデバイス)とすることができる。サーバー1004は、例えば、前述のアーキテクチャを採用することによって、変換を実行するスレッドを収容することができる。クライアント1002とサーバー1004との間で可能な1つの通信は、2つ以上のコンピューター・プロセス間で送信するように構成したデーター・パケットの形態とすることができる。データー・パケットは、例えば、クッキーおよび/または関連する文脈情報を含むことができる。システム1000は、クライアント1002とサーバー1004との間における通信をし易くするために用いることができる通信フレームワーク1006(例えば、インターネットのような大域通信ネットワーク)を含む。
通信は、有線(光ファイバを含む)および/またはワイヤレス技術によって促進することができる。クライアント1002は、クライアント1002に対してローカルな情報(例えば、クッキーおよび/または関連する文脈情報)を格納するために用いることができる1つ以上のクライアント・データー・ストアー1008に動作的に接続されている。同様に、サーバー1004も、サーバー1004に対してローカルな情報を格納するために用いることができる1つ以上のサーバー・データー・ストアー1010に動作的に接続されている。
クライアント1002およびサーバー1004は、双方共、NATルータ、ゲートウェイ等のような、ネットワーク・インターフェース・デバイス(図示せず)を監視するKAアプリケーションを含むことができる。前述のように、クライアント1002は、ローカルKAアプリケーションを用いることによって、接続状態管理をクライアントの一方または双方の内部で行うことができるように、ピア・ツー・ピア式に相互接続することができる。
以上説明したことは、開示したアーキテクチャの例を含む。勿論、実施形態を記載する目的のためにコンポーネントおよび方法の想起し得る全ての組み合わせを記載することは可能ではないが、実施形態の更に別の多くの組み合わせおよび変形も可能であることは、当業者には認められよう。したがって、本主題は、添付した特許請求の範囲の主旨および範囲に該当するこのような変更、修正、および変形を全て包含することとする。更に、「含む」(include)という用語が詳細な説明または特許請求の範囲のいずれかにおいて用いられる限りでは、特許請求の範囲において「備えている」(comprising)が移行句(transitional word) として用いられているときに解釈する際の「備えている」と同様に、このような用語は、包含的であることとする。

Claims (20)

  1. 接続管理を容易にするコンピューター実装システム(100)であって、
    ソフトウェア・エンティティ間に任意の通信接続を設ける接続コンポーネント(102)と、
    前記接続を維持するために、帯域外(OOB)信号を前記接続コンポーネントに送るキープ・ライブ・コンポーネント(106)と、
    を備えている、コンピューター実装システム。
  2. 請求項1記載のシステムにおいて、前記任意の通信接続は、トランスポート・レイヤー接続指向エンド・ツー・エンド・プロトコルに対応する、システム。
  3. 請求項1記載のシステムにおいて、前記任意の通信接続は、トランスポート・レイヤー無接続プロトコルに対応する、システム。
  4. 請求項1記載のシステムにおいて、前記接続コンポーネントは、個人ネットワークの公衆ネットワークとの接続を容易にするネットワーク・アドレス変換(NAT)デバイスを含む、システム。
  5. 請求項1記載のシステムにおいて、前記OOB信号は、前記キープ・アライブ・コンポーネントによって、前記ソフトウェア・エンティティ間にある接続に挿入されるキープ・アライブ・パケットである、システム。
  6. 請求項1記載のシステムにおいて、前記キープ・アライブ・コンポーネントは、前記ソフトウェア・エンティティとは別個のアプリケーションであり、該アプリケーションは、TCP/IPシステム・テーブルのテーブル活動に基づいて、前記OOB信号を発生し、前記ソフトウェア・エンティティ間にある前記接続への前記OOB信号の挿入を容易にする、システム。
  7. 請求項1記載のシステムにおいて、前記キープ・アライブ・コンポーネントは、前記接続コンポーネントのタイムアウト期間を監視し、該タイムアウト期間に基づいてキープ・アライブ・リフレッシュ期間を採用し、該リフレッシュ期間に元図いて前記OOB信号を発生し、前記接続に挿入する、システム。
  8. 請求項1記載のシステムにおいて、前記確立する接続の両側にある前記ソフトウェア・エンティティは、クライアントおよびサーバー上に対応して位置する、システム。
  9. 請求項8記載のシステムにおいて、前記キープ・アライブ・コンポーネントは、サーバー系キープ・アライブ・アプリケーションと、クライアント系キープ・アライブ・アプリケーションとを備えており、前記サーバー系およびクライアント系キープ・ライブ・アプリケーションは、前記接続を維持するために、前記接続コンポーネントを通じてキープ・アライブ・パケットを伝達する、システム。
  10. 請求項1記載のシステムにおいて、前記キープ・アライブ・コンポーネントは、前記OOB信号が前記接続コンポーネントによって処理された後、前記OOB信号を除去する、システム。
  11. コンピューター実装接続管理方法であって、
    異種システムのネーティブ・アプリケーション間にNAT接続を確立するステップ(504)と、
    前記接続を維持するために、キープ・アライブ・パケットを前記接続OOBに自動的に挿入するステップ(506)と、
    を備えている、方法。
  12. 請求項11記載の方法であって、更に、所定の接続方針に基づいて、前記キープ・アライブ・パケットを前記接続に自動的に挿入するステップを備えている、方法。
  13. 請求項11記載の方法において、送信制御プロトコル(TCP)通信トランスポート技術によって、NAT接続を容易にする、方法。
  14. 請求項11記載の方法であって、更に、前記ネーティブ・アプリケーションに対して対応するキープ・アライブ・アプリケーションを起動するステップを備えており、前記キープ・アライブ・アプリケーションは、OOBを伝達し合い、TCP/IPシステム・テーブルにおける新たなエントリーに基づいて、前記接続を維持するために前記キープ・アライブ・パケットを前記接続に自動的に挿入する、方法。
  15. 請求項14記載の方法において、前記キープ・アライブ・アプリケーションは、前記ネーティブ・アプリケーションと関連のある、対応システム・テーブルを監視して接続状態を調べ、該接続状態に基づいて前記キープ・アライブ・パケットを送るのを中断する、方法。
  16. 請求項11記載の方法であって、更に、
    前記ネーティブ・アプリケーションの少なくとも1つと関連のあるプロトコル番号、発信元IPアドレス、発信元ポート番号、宛先IPアドレス、または宛先ポート番号の内少なくとも2つを含むタプルを発見するステップと、
    前記タプルを利用するキープ・アライブ・パケットに基づいて、NATタイマをリセットするステップと、
    を備えている、方法。
  17. 請求項11記載の方法であって、更に、前記キープ・アライブ・パケットが前記ネーティブ・アプリケーションに到達する前に、該キープ・アライブ・パケットを除去するステップを備えている、方法。
  18. 請求項11記載の方法であって、更に、前記ネーティブ・アプリケーションの少なくとも1つの帯域内活動に基づいて、キープ・アライブ・アプリケーションを自動的に起動するステップを備えている、方法。
  19. 請求項11記載の方法であって、更に、1つ以上のキープ・アライブ・アプリケーションを自動的に起動し、採用するトランスポート・プロトコルの種類に基づいて、前記1つ以上のキープ・アライブ・アプリケーションを通じて前記キープ・アライブ・パケットを挿入するステップを備えている、方法。
  20. コンピューター実装システム(300)であって、
    ネーティブ・アプリケーション間にNAT接続を自動的に確立するコンピューター実装手段(306)と、
    前記ネーティブ・アプリケーションの対応するキープ・アライブ・アプリケーションを自動的に起動するコンピューター実装手段(106)と、
    システム・テーブルに基づいて、不活性について接続を監視するコンピューター実装手段(106)と、
    前記不活性を検知したことに応答して、キープ・アライブ・パケットを自動的に挿入し、前記キープ・アライブ・パケットは、TCPに基づいて前記キープ・アライブ・アプリケーション双方から挿入するか、またはUDPパケットに基づいて前記キープ・アライブ・アプリケーションの一方から挿入する、コンピューター実装手段(106)と、
    を備えている、コンピューター実装システム(300)。
JP2009551789A 2007-02-28 2008-02-21 ネットワーク・アドレス変換システムと関連のあるクライアントを帯域外で存続状態に維持するメカニズム Expired - Fee Related JP5090472B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/712,123 2007-02-28
US11/712,123 US7881318B2 (en) 2007-02-28 2007-02-28 Out-of-band keep-alive mechanism for clients associated with network address translation systems
PCT/US2008/054485 WO2008106355A1 (en) 2007-02-28 2008-02-21 Out-of-band keep-alive mechanism for clients associated with network address translation systems

Publications (3)

Publication Number Publication Date
JP2010520668A true JP2010520668A (ja) 2010-06-10
JP2010520668A5 JP2010520668A5 (ja) 2011-04-14
JP5090472B2 JP5090472B2 (ja) 2012-12-05

Family

ID=39717208

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009551789A Expired - Fee Related JP5090472B2 (ja) 2007-02-28 2008-02-21 ネットワーク・アドレス変換システムと関連のあるクライアントを帯域外で存続状態に維持するメカニズム

Country Status (7)

Country Link
US (1) US7881318B2 (ja)
EP (1) EP2127250A4 (ja)
JP (1) JP5090472B2 (ja)
KR (1) KR101354727B1 (ja)
CN (1) CN101622834B (ja)
TW (1) TWI364967B (ja)
WO (1) WO2008106355A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014526731A (ja) * 2011-09-09 2014-10-06 マイクロソフト コーポレーション 起動パターン管理
US9736050B2 (en) 2011-09-09 2017-08-15 Microsoft Technology Licensing, Llc Keep alive management
US9939876B2 (en) 2011-09-09 2018-04-10 Microsoft Technology Licensing, Llc Operating system management of network interface devices

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7710995B2 (en) * 2005-03-08 2010-05-04 Leaf Networks, Llc Method and system for out-of-band signaling for TCP connection setup
WO2008120332A1 (ja) * 2007-03-28 2008-10-09 Pioneer Corporation コンテンツ配信システム及びその制御方法
US8806601B2 (en) * 2008-02-29 2014-08-12 International Business Machines Corporation Non-interactive entity application proxy method and system
US8930550B2 (en) * 2008-03-11 2015-01-06 International Business Machines Corporation Selectable non-interactive entity application proxy method and system
JP5098820B2 (ja) * 2008-05-30 2012-12-12 富士通株式会社 フレーム中継装置およびフレーム中継方法
WO2010054471A1 (en) 2008-11-17 2010-05-20 Sierra Wireless, Inc. Method and apparatus for network port and network address translation
US8924486B2 (en) 2009-02-12 2014-12-30 Sierra Wireless, Inc. Method and system for aggregating communications
US9313800B2 (en) * 2009-06-23 2016-04-12 Nokia Technologies Oy Method and apparatus for optimizing energy consumption for wireless connectivity
TWI419513B (zh) * 2010-12-02 2013-12-11 Chunghwa Telecom Co Ltd 網路設備監測方法
WO2012106820A1 (en) 2011-02-08 2012-08-16 Sierra Wireless, Inc. Method and system for forwarding data between network devices
EP2487867B1 (de) * 2011-02-09 2014-01-01 Siemens Aktiengesellschaft Lebenszeichenüberwachung
EP2705724B1 (en) * 2011-05-03 2021-07-14 Nokia Technologies Oy Keep-alive signalling
WO2012151692A1 (en) * 2011-05-06 2012-11-15 Sierra Wireless, Inc. Method and apparatus for management of network communications
US9251253B2 (en) 2013-01-05 2016-02-02 Qualcomm Incorporated Expeditious citation indexing
US9203906B2 (en) * 2013-06-30 2015-12-01 Vonage Network, Llc Systems and methods for enabling data communications to a telephony device
WO2015171549A2 (en) * 2014-05-05 2015-11-12 Citrix Systems, Inc. Facilitating communication between mobile applications
TWI555357B (zh) * 2014-07-04 2016-10-21 Throughtek Technology Shenzhen Co Ltd Effectively maintain the NAT channel service method
CN104320500B (zh) * 2014-10-13 2017-11-10 中国联合网络通信集团有限公司 一种nat设备的保活方法及装置
US10932192B2 (en) 2016-01-12 2021-02-23 Qualcomm Incorporated EMTC power saving mode (PSM) enhancements for service outage
US11411915B2 (en) * 2019-01-09 2022-08-09 Cisco Technology, Inc. Leveraging MACsec key agreement (MKA) state events to trigger fast IGP/EGP convergence on MACsec encrypted links
KR102231064B1 (ko) * 2019-11-12 2021-03-23 한국전자기술연구원 NAT를 통해 서버와 연결되는 IoT 기기 및 IoT 통신방법
KR102133139B1 (ko) * 2019-11-20 2020-07-13 전자부품연구원 NAT를 통해 서버와 연결되는 IoT 기기 및 IoT 시스템
US11310265B2 (en) * 2020-02-27 2022-04-19 Hewlett Packard Enterprise Development Lp Detecting MAC/IP spoofing attacks on networks
US11425043B2 (en) * 2020-06-16 2022-08-23 T-Mobile Usa, Inc. Duplex load balancing for massive IoT applications
US11663285B2 (en) * 2021-09-06 2023-05-30 Microsoft Technology Licensing, Llc Webpage management in native application
US11792065B2 (en) * 2022-02-17 2023-10-17 Cisco Technology, Inc. Network controller, failure injection communication protocol, and failure injection module for production network environment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003096653A1 (en) * 2002-05-13 2003-11-20 Sony Computer Entertainment America Inc. Peer to peer network communication with network address translation
JP2004120547A (ja) * 2002-09-27 2004-04-15 Matsushita Electric Ind Co Ltd インターネットに接続するサーバ、機器および通信システム
US6976071B1 (en) * 2000-05-03 2005-12-13 Nortel Networks Limited Detecting if a secure link is alive
JP2006203575A (ja) * 2005-01-20 2006-08-03 Fractalist Inc 通信方法

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5471564A (en) * 1992-07-10 1995-11-28 Microsoft Corporation System and method for dynamic printer timeout
US6405262B1 (en) * 1995-07-14 2002-06-11 Microsoft Corporation Efficient inter-process object and interface pinging
US6353614B1 (en) * 1998-03-05 2002-03-05 3Com Corporation Method and protocol for distributed network address translation
US6446225B1 (en) * 1998-04-23 2002-09-03 Microsoft Corporation Server system with scalable session timeout mechanism
CA2556876C (en) * 1998-08-04 2010-11-09 At&T Corp. A method for allocating network resources
US6401127B1 (en) * 1999-05-04 2002-06-04 Cisco Technology, Inc. Adaptive timer for LLC type 2 reliable transport in a computer network
US6597700B2 (en) * 1999-06-30 2003-07-22 Nortel Networks Limited System, device, and method for address management in a distributed communication environment
US6553032B1 (en) * 1999-09-01 2003-04-22 Tantivy Communications, Inc. Packeting timeout spoofing in a wireless data communications network
US6563599B1 (en) * 1999-10-04 2003-05-13 Conexant Systems, Inc. Method and apparatus for improving performance of facsimile transmissions over IP networks
US7249175B1 (en) * 1999-11-23 2007-07-24 Escom Corporation Method and system for blocking e-mail having a nonexistent sender address
US6526433B1 (en) * 1999-12-15 2003-02-25 International Business Machines Corporation Adaptive timeout value setting for distributed computing environment (DCE) applications
US6880089B1 (en) * 2000-03-31 2005-04-12 Avaya Technology Corp. Firewall clustering for multiple network servers
US7155740B2 (en) * 2000-07-13 2006-12-26 Lucent Technologies Inc. Method and apparatus for robust NAT interoperation with IPSEC'S IKE and ESP tunnel mode
WO2002019132A1 (en) * 2000-09-01 2002-03-07 Tut Systems, Inc. A method and system to pre-compile configuration information for a data communications device
US20020042875A1 (en) * 2000-10-11 2002-04-11 Jayant Shukla Method and apparatus for end-to-end secure data communication
US6748559B1 (en) * 2000-10-19 2004-06-08 International Business Machines Corporation Method and system for reliably defining and determining timeout values in unreliable datagrams
TW532016B (en) * 2000-12-18 2003-05-11 Asulab Sa Correlation and demodulation circuit for a receiver for signals modulated by a specific code
US7054304B2 (en) * 2001-01-19 2006-05-30 Terited International , Inc. Method and protocol for managing broadband IP services in a layer two broadcast network
JP2002223230A (ja) 2001-01-26 2002-08-09 Hitachi Ltd 移動データ通信システム、該システム内に設けられるネットワーク・アドレス・トランスファー装置及びフォーリン・エージェント装置
US7068669B2 (en) * 2001-04-20 2006-06-27 Qualcomm, Incorporated Method and apparatus for maintaining IP connectivity with a radio network
US7058054B2 (en) * 2001-08-20 2006-06-06 Skystream Networks Inc. Controlling multiple nodes to execute messages only once
US7152111B2 (en) * 2002-08-15 2006-12-19 Digi International Inc. Method and apparatus for a client connection manager
US7139828B2 (en) * 2002-08-30 2006-11-21 Ip Dynamics, Inc. Accessing an entity inside a private network
US7406087B1 (en) * 2002-11-08 2008-07-29 Juniper Networks, Inc. Systems and methods for accelerating TCP/IP data stream processing
US20060288373A1 (en) * 2003-05-05 2006-12-21 Grimes Kevin L System and method for communicating with a display device via a network
US7573867B1 (en) * 2003-07-17 2009-08-11 Sprint Spectrum L.P. Method and system for maintaining a radio link connection during absence of real-time packet data communication
US7760744B1 (en) * 2003-11-20 2010-07-20 Juniper Networks, Inc. Media path optimization for multimedia over internet protocol
US7694127B2 (en) * 2003-12-11 2010-04-06 Tandberg Telecom As Communication systems for traversing firewalls and network address translation (NAT) installations
CN1558606A (zh) * 2004-02-10 2004-12-29 Ut斯达康通讯有限公司 网络终端自动配置方法
US7426569B2 (en) * 2004-02-25 2008-09-16 Research In Motion Limited System and method for maintaining a network connection
US8214875B2 (en) * 2004-02-26 2012-07-03 Vmware, Inc. Network security policy enforcement using application session information and object attributes
US7050940B2 (en) * 2004-03-17 2006-05-23 International Business Machines Corporation Method and system for maintaining and examining timers for network connections
US7451212B2 (en) * 2004-03-17 2008-11-11 At&T Intellectual Property I, L.P. Logical port configuration system
US7308617B2 (en) * 2004-06-17 2007-12-11 International Business Machines Corporation Apparatus, system, and method for automatically freeing a server resource locked awaiting a failed acknowledgement from a client
US20060004933A1 (en) * 2004-06-30 2006-01-05 Sujoy Sen Network interface controller signaling of connection event
US7962623B2 (en) * 2004-06-30 2011-06-14 Microsoft Corporation Sustaining session connections
US8949391B2 (en) * 2004-08-04 2015-02-03 Rockstar Consortium Us Lp Network management across a NAT or firewall
US20060072569A1 (en) * 2004-10-04 2006-04-06 Wizzysoft Corporation Network address translation protocol for transmission control protocol connections
US8090845B2 (en) * 2004-10-18 2012-01-03 Audiocodes Texas, Inc. Apparatus and method for firewall traversal
US20060160562A1 (en) * 2004-12-16 2006-07-20 Davis Harvey E Automatic deactivation/activation of cellular phones in restricted areas
US7640490B2 (en) * 2004-12-20 2009-12-29 Microsoft Corporation Method, system, and computer-readable medium for controlling the calculation of volatile functions in a spreadsheet
US7471636B2 (en) * 2005-02-23 2008-12-30 Cisco Technology, Inc. Methods and apparatus based on message transmission times
US7480837B2 (en) * 2005-06-01 2009-01-20 Freescale Semiconductor, Inc. Method of monitoring timeout conditions and device therefor
US7546125B2 (en) * 2005-10-03 2009-06-09 Divitas Networks, Inc. Enhancing user experience during handoffs in wireless communication
US7907532B2 (en) * 2005-11-23 2011-03-15 Jds Uniphase Corporation Pool-based network diagnostic systems and methods
GB0526029D0 (en) * 2005-12-21 2006-02-01 Nokia Corp Managing connections in a wireless communications network
US7672264B2 (en) * 2006-06-21 2010-03-02 International Business Machines Corporation Method of pausing keep-alive messages and roaming for virtual private networks on handheld devices to save battery power
US8849961B2 (en) * 2006-09-06 2014-09-30 Nokia Corporation Mobile network optimized method for keeping an application IP connection always on
US20080139222A1 (en) * 2006-12-08 2008-06-12 General Instrument Corporation Presence Detection and Location Update in Premise Gateways

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6976071B1 (en) * 2000-05-03 2005-12-13 Nortel Networks Limited Detecting if a secure link is alive
WO2003096653A1 (en) * 2002-05-13 2003-11-20 Sony Computer Entertainment America Inc. Peer to peer network communication with network address translation
JP2004120547A (ja) * 2002-09-27 2004-04-15 Matsushita Electric Ind Co Ltd インターネットに接続するサーバ、機器および通信システム
JP2006203575A (ja) * 2005-01-20 2006-08-03 Fractalist Inc 通信方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014526731A (ja) * 2011-09-09 2014-10-06 マイクロソフト コーポレーション 起動パターン管理
US9596153B2 (en) 2011-09-09 2017-03-14 Microsoft Technology Licensing, Llc Wake pattern management
US9736050B2 (en) 2011-09-09 2017-08-15 Microsoft Technology Licensing, Llc Keep alive management
US9939876B2 (en) 2011-09-09 2018-04-10 Microsoft Technology Licensing, Llc Operating system management of network interface devices

Also Published As

Publication number Publication date
TW200843438A (en) 2008-11-01
EP2127250A1 (en) 2009-12-02
US7881318B2 (en) 2011-02-01
JP5090472B2 (ja) 2012-12-05
KR20090123867A (ko) 2009-12-02
CN101622834B (zh) 2013-03-13
TWI364967B (en) 2012-05-21
US20080209068A1 (en) 2008-08-28
WO2008106355A1 (en) 2008-09-04
CN101622834A (zh) 2010-01-06
KR101354727B1 (ko) 2014-01-22
EP2127250A4 (en) 2014-05-14

Similar Documents

Publication Publication Date Title
JP5090472B2 (ja) ネットワーク・アドレス変換システムと関連のあるクライアントを帯域外で存続状態に維持するメカニズム
US8032641B2 (en) Assymmetric traffic flow detection
JP4782527B2 (ja) コンピュータネットワークシステム及びコンピュータネットワークの構成方法
EP1535448B1 (en) Method and apparatus for a client connection manager
US8219606B2 (en) Methods, systems, and computer program products for sharing information for detecting an idle TCP connection
JP5378494B2 (ja) リレーサーバを利用したデータ伝送システム及び方法
EP3541010A1 (en) Reduced power state network processing
US20070189190A1 (en) Topology discovery of a private network
US8898265B2 (en) Determining data flows in a network
JP2008085470A (ja) Ipアプリケーションサービス提供システム
WO2013145522A1 (ja) 情報処理装置、情報処理方法及びプログラム
Snoeren A session-based architecture for internet mobility
US11064058B1 (en) Methods, systems, and computer program products for sharing information for detecting at least one time period for a connection
JP2010520668A5 (ja)
US10212126B2 (en) System for mediating connection
EP2790104A2 (en) Systems, methods, and computer program products for recording service status of applications
US20110213893A1 (en) Methods, systems, and computer program products for detecting an idle tcp connection
US10075565B1 (en) Methods, systems, and computer program products for sharing information for detecting an idle TCP connection
US8023985B1 (en) Transitioning a state of a connection in response to an indication that a wireless link to a wireless device has been lost
Wolinsky et al. On the design and implementation of structured P2P VPNs
Brustoloni Automatic VPN client recovery from IPSec pass-through failures
JP2014165560A (ja) サーバおよびプログラム
Denis Meta-communications in component-based communication frameworks for grids

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110221

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120807

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: 20120814

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: 20120912

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

Free format text: PAYMENT UNTIL: 20150921

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees