JP5536051B6 - マルチプロセッサコンピューティング環境においてデータサービスを管理する方法および装置 - Google Patents

マルチプロセッサコンピューティング環境においてデータサービスを管理する方法および装置 Download PDF

Info

Publication number
JP5536051B6
JP5536051B6 JP2011516514A JP2011516514A JP5536051B6 JP 5536051 B6 JP5536051 B6 JP 5536051B6 JP 2011516514 A JP2011516514 A JP 2011516514A JP 2011516514 A JP2011516514 A JP 2011516514A JP 5536051 B6 JP5536051 B6 JP 5536051B6
Authority
JP
Japan
Prior art keywords
packet
identified
nat
port
interface
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.)
Expired - Fee Related
Application number
JP2011516514A
Other languages
English (en)
Other versions
JP2011526135A (ja
JP5536051B2 (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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2011526135A publication Critical patent/JP2011526135A/ja
Application granted granted Critical
Publication of JP5536051B2 publication Critical patent/JP5536051B2/ja
Publication of JP5536051B6 publication Critical patent/JP5536051B6/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
    • 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/2521Translation architectures other than single NAT servers
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router architectures
    • 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/2557Translation policies or rules
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本出願は、参照によりその全体が本明細書に組み込まれる、2008年6月23日に出願され、「PROVIDING DATA SERVICES FOR AN EMBEDDED APPLICATIONS AND INTERNET CONNECTION SHARING(ICS) IN A MULTI-PROCESSOR HIGHER LEVEL OS ENVIRONMENT」という名称の米国仮出願シリアル番号第61/074,825号の利益を主張する。
本開示は、一般に、モバイルコンピューティングに関し、より具体的には、共有されたネットワーク接続を1つまたは複数のコンピューティングデバイス間で管理する技法に関する。
従来、モバイルコンピューティングデバイス(たとえば、携帯情報端末(PDA)、スマートフォン、手持ち式コンピュータなど)用のデュアルプロセッサおよび/または他のマルチプロセッサ環境は、エアインターフェースプロトコルオペレーションに対して責任を負うべきモデムプロセッサおよびデバイスのオペレーティングシステムを実行するアプリケーションプロセッサを含むことができる。さらに、こうした環境におけるそれぞれのプロセッサは、モデムプロセッサ、アプリケーションプロセッサ、およびプロセッサ間通信にそれぞれ対応する3つの領域に分割され得る周辺機器および/または外部メモリに接続され得る。
種々のコンピューティングタスクを達成するために、マルチプロセッサモバイルコンピューティング環境内のそれぞれのプロセッサおよび/またはプロセッサが関連するメモリ領域は、互いに相互作用するように構成され得る。そのため、たとえば、アプリケーションプロセッサを使用してモバイルコンピューティングデバイス上で実行されるアプリケーションは、モデムプロセッサによって提供される無線データ接続性を利用し得る。別の例として、モバイルコンピューティングデバイスは、1つまたは複数のインターフェースを介してモバイルデバイスに接続されるかまたはテザリングされる別のコンピューティングデバイスとのデータサービス共有を利用し得る。こうした例では、モバイルコンピューティングデバイスおよびテザードデバイスは、モバイルデバイスの無線データ接続上で一般的なインターネットプロトコル(IP)を利用し得る。したがって、モバイルデバイスは、適切なデータをテザードデバイスに送るために、アップリンクおよびダウンリンクパケットの流れを監視し、ネットワークアドレス変換(network address translation)(NAT)を実施することを要求され得る。従来、こうしたオペレーションは、モバイルデバイスにおいてアプリケーションプロセッサによって実施され、その結果、全てのデータパケットが、モデムメモリ領域へ、また、モデムメモリ領域からアプリケーションメモリ領域へ転送されなければならない。
上記例を考慮して、埋め込み式アプリケーションの場合とデータサービス共有の場合のどちらにおいても、データ処理および/または転送のために、モバイルデバイスのモデムプロセッサとアプリケーションプロセッサとの間にかなりの数のデータコピーが必要とされることが理解され得る。これらのデータコピーは、モバイルデバイスのシステムバスおよび外部メモリ上で過剰のトランザクションを生成することがあり、電力消費およびCPU資源の使用を増加させると共に、エンドエンド間遅延を増加させる。したがって、少なくとも上記欠点を軽減するモバイルコンピューティングデバイス用のマルチプロセッサ管理技法を実装することが望ましいことになる。
以下は、こうした態様の基本的な理解を提供するために、特許請求される主題の種々の態様の簡略化した概要を提示する。この概要は、考えられる全ての態様の広範な概観ではなく、キーとなるまたは重要な要素を識別もせず、こうした態様の範囲の境界を明示もしないことを意図される。この要約の唯一の目的は、後で提示される、より詳細な説明に対する前置きとして簡略化した形態で開示される態様の一部の概念を提示することである。
ある態様によれば、方法が、本明細書で述べられる。方法は、アプリケーションプロセッサから1つまたは複数のネットワークアドレス変換(NAT)ルールを受信すること、結合されたインターフェース上でパケットを取得すること、取得されたパケットに対応するアプリケーションプロセッサから受信されたNATルールの識別を試行すること、識別の試行に成功したとき、識別されたNATルールに従って取得されたパケットを変換し、変換されたパケットを、1つまたは複数の変換されたパケット宛先へ転送すること、および、識別の試行に成功しなかったとき、取得されたパケットを1つまたは複数のパケット処理宛先へ転送することを備えることができる。
第2の態様は、モバイルコンピューティング装置に関しており、モバイルコンピューティング装置は、アプリケーションプロセッサによって提供される1つまたは複数のNATルールに関するデータを格納するメモリを備えることができる。モバイルコンピューティング装置は、さらに、アプリケーションプロセッサと本質的に異なる、メモリに結合された少なくとも1つのプロセッサを備えることができ、少なくとも1つのプロセッサは、結合されたインターフェース上でパケットを受信し、受信されたパケットに対応するNATルールの識別を試行し、NATルールの識別に成功したとき、識別されたNATルールに従って受信されたパケットを変換し、変換されたパケットを、少なくとも1つの変換されたパケット宛先へ転送し、NATルールの識別に成功しなかったとき、受信されたパケットを少なくとも1つのパケット処理宛先へ転送するように構成される。
第3の態様によれば、装置が、本明細書で述べられる。装置は、関連するアプリケーションプロセッサからそれぞれのNATマッピングルールを受信する手段と、インターフェースを介して取得されたパケットを識別する手段と、受信されたNATマッピングルールに対して、識別されたパケットのマッチングを試行する手段と、マッチングの試行に成功したとき、一致するNATマッピングルールに従って、識別されたパケットを変換する手段と、一致するNATマッピングルールが適用されると、変換されたパケットを1つまたは複数の変換されたパケット宛先へ送る手段と、マッチングの試行に成功しなかったとき、識別されたパケットを1つまたは複数のパケット処理宛先へ送る手段とを備えることができる。
本明細書で述べる第4の態様は、機械実行可能命令を実行する集積回路に関する。命令は、関連するアプリケーションプロセッサからそれぞれのNATマッピングルールを受信すること、インターフェースを介して取得されたパケットを識別すること、それぞれのNATマッピングルールに対して、識別されたパケットのマッチングを試行すること、マッチングの試行に成功したとき、一致するNATマッピングルールに従って、識別されたパケットを変換すること、一致するNATマッピングルールが適用されると、変換されたパケットを1つまたは複数の変換されたパケット宛先へ送ること、および、マッチングの試行に成功しなかったとき、識別されたパケットを1つまたは複数のパケット処理宛先へ送ることを備えることができる。
先のおよび関連する目的を達成するために、特許請求される主題の1つまたは複数の態様は、以降で完全に述べられかつ特許請求の範囲で特に指摘される特徴を備える。以下の説明および添付図面は、特許請求される主題のいくつかの例証的な態様を詳細に述べる。これらの態様は、しかし、特許請求される主題の原理が使用され得る種々の方法のほんの少数を示す。さらに、開示される態様は、全てのこうした態様およびその均等物を含むことを意図される。
種々の態様によるマルチプロセッサモバイルコンピューティング環境において効率的なメモリ管理を容易にするシステムのブロック図。 種々の態様による、それぞれのローカルプロセッサ(複数可)および/またはテザードプロセッサ(複数可)に対するサービスを含むネットワークアドレス変換(NAT)機能によってネットワークインターフェースを共有する例示的なシステムのブロック図。 ネットワークインターフェース共有を実装するために利用され得る例示的なモバイルコンピューティングアーキテクチャを示す図。 種々の態様による、ネットワークインターフェース共有セッションに関連する高度データサービス管理を容易にするために利用され得るモバイルコンピューティングアーキテクチャの実施例を示す図。 種々の態様による、例示的なそれぞれのマルチプロセッサモバイルコンピューティング実施態様によって行われるネットワークインターフェース共有セッションに関連する情報の流れを示す図。 種々の態様による、例示的なそれぞれのマルチプロセッサモバイルコンピューティング実施態様によって行われるネットワークインターフェース共有セッションに関連する情報の流れを示す図。 モバイルコンピューティングデバイスに関連するデータフローを管理する方法のフロー図。 モバイルコンピューティングデバイスに関連するデータフローを管理する方法のフロー図。 モバイルコンピューティングデバイスに関連するデータフローを管理する方法のフロー図。 ネットワークインターフェース共有アプリケーション用のデータサービス管理を容易にする装置のブロック図。 本明細書で述べる種々の態様が機能し得る例示的な無線通信システムを示す図。 本明細書で述べる1つまたは複数の態様を実装するために利用され得る例示的なコンピューティングシステムのブロック図。
ここで図面を参照して特許請求される主題の種々の態様が述べられる。図面全体を通して、同じ参照番号が同じ要素を指すのに使用される。以下の説明では、説明のために、1つまたは複数の態様の完全な理解を可能にするために多数の特定の詳細が示される。しかし、こうした態様(複数可)は、これらの特定の詳細無しで実施されてもよい。他の事例では、よく知られている構造およびデバイスが、1つまたは複数の態様を述べるのを容易にするためにブロック図の形態で示される。
本出願で使用されるように、用語「コンポーネント(component)」、「モジュール(module)」、「システム(system)」などは、コンピュータ関連エンティティ、すなわち、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかを指すことを意図される。たとえば、コンポーネントは、プロセッサ上で実行されるプロセス、集積回路、オブジェクト、実行可能物(executable)、実行スレッド(thread of execution)、プログラム、および/またはコンピュータであり得るが、それに限定されない。例証によれば、コンピューティングデバイス上で実行されるアプリケーションおよびコンピューティングデバイスはコンポーネントであり得る。1つまたは複数のコンポーネントがプロセスおよび/または実行スレッド内に存在することができ、あるコンポーネントが1台のコンピュータ上に局在し得る、かつ/または、2台以上のコンピュータ間に分散され得る。さらに、これらのコンポーネントは、種々のデータ構造が格納されている種々のコンピュータ読取り媒体から実行され得る。コンポーネントは、1つまたは複数のデータパケット(たとえば、ローカルシステム内で、分散システム内で、かつ/または他のシステムを有するインターネットなどのネットワークにわたって、別のコンポーネントと相互作用する1つのコンポーネントからの信号を経由のデータ)を有する信号などに従って、ローカルプロセスおよび/またはリモートプロセスによって通信し得る。
さらに、本明細書では、種々の態様が、無線端末および/または基地局に関連して述べられる。無線端末は、ユーザに音声および/またはデータ接続性を提供するデバイスを指し得る。無線端末は、ラップトップコンピュータまたはデスクトップコンピュータなどのコンピュータデバイスに接続され得る、または、携帯情報端末(PDA)などのような自己完結型デバイスであり得る。無線端末はまた、システム、加入者ユニット、加入者局、移動局、モバイル、リモート局、アクセスポイント、リモート端末、アクセス端末、ユーザ端末、ユーザエージェント、ユーザデバイス、またはユーザ機器(UE)と呼ばれ得る。無線端末は、加入者局、無線デバイス、携帯電話、PCS電話、コードレス電話、セッション開始プロトコル(SIP)電話、無線ローカルループ(WLL)局、携帯情報端末(PDA)、無線接続機能を有する手持ち式デバイス、または無線モデムに接続された他の処理デバイスであり得る。基地局(たとえば、アクセスポイントまたはEvolvedノードB(eNB))は、エアインターフェースを通じ、1つまたは複数のセクタを経由して無線端末と通信するアクセスネットワーク内のデバイスを指し得る。基地局は、受信されたエアインターフェースフレームをIPパケットに変換することによって、無線端末と、インターネットプロトコル(IP)ネットワークを含むことができるアクセスネットワークの残りの部分との間のルータとして働き得る。基地局はまた、エアインターフェースについての属性管理を調整する。
さらに、本明細書で述べる種々の機能は、ハードウェア、ソフトウェア、ファームウェア、またはその任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、コンピュータ読取り可能媒体上の1つまたは複数の命令またはコードとして、格納され得るまたは送信され得る。コンピュータ読取り可能媒体は、コンピュータ記憶媒体と、1つの場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。制限するのではなく、例を挙げると、こうしたコンピュータ読取り可能媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスク記憶装置、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは、所望のプログラムコードを、命令またはデータ構造の形態で搬送するかまたは格納するために使用することができる、またコンピュータによってアクセスすることができる任意の他の媒体を備えることができる。同様に、任意の接続は、当然、コンピュータ読取り可能媒体と呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者ライン(DSL)、または、赤外線、無線、およびマイクロ波などの無線技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または、赤外線、無線、およびマイクロ波などの無線技術は、媒体の定義に含まれる。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、およびブルーレイディスク(BD)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、レーザによってデータを光学的に再生する。上記の組合せもまた、コンピュータ読取り可能媒体の範囲内に含まれるべきである。
本明細書で述べる種々の技法は、符号分割多元接続(CDMA)システム、時分割多元接続(TDMA)システム、周波数分割多元接続(FDMA)システム、直交周波数分割多元接続(OFDMA)システム、単一搬送波FDMA(SC-FDMA)システム、および他のこうしたシステムなどの種々の無線通信システムのために使用され得る。用語「システム(system)」および「ネットワーク(network)」は、本明細書で交換可能に使用されることが多い。CDMAシステムは、ユニバーサル陸上無線アクセス(Universal Terrestrial Radio Access)(UTRA)、CDMA2000などのような無線技術を実装し得る。UTRAは、広帯域CDMA(W-CDMA)およびCDMAの他の変形を含む。さらに、CDMA2000は、IS-2000、IS-95、およびIS-856規格をカバーする。TDMAシステムは、モバイル通信用グローバルシステム(Global System for Mobile Communications)(GSM(登録商標))などの無線技術を実装し得る。OFDMAシステムは、Evolved UTRA(E-UTRA)、ウルトラモバイルブロードバンド(Ultra Mobile Broadband)(UMB)、IEEE 802.11(Wi-Fi)、IEEE 802.16(WiMAX)、IEEE 802.20、Flash-OFDM(登録商標)などのような無線技術を実装し得る。UTRAおよびE-UTRAは、ユニバーサルモバイルテレコミュニケーショシステム(Universal Mobile Telecommunication System)(UMTS)の一部である。3GPPロングタームエボリューション(Long Term Evolution)(LTE)は、ダウンリンク上でOFDMAを、アップリンク上でSC-FDMAを使用するE-UTRAを使用するこれからのリリースである。UTRA、E-UTRA、UMTS、LTE、およびGSM(登録商標)は、「第3世代パートナーシッププロジェクト(3rd Generation Partnership Project)」(3GPP)と名付けられた組織からの文書に記載されている。さらに、CDMA2000およびUMBは、「第3世代パートナーシッププロジェクト2(3rd Generation Partnership Project 2)」(3GPP2)と名付けられた組織からの文書に記載されている。
様々な態様は、いくつかのデバイス、コンポーネント、モジュールなどを含むことができるシステムとして提示されることになる。種々のシステムは、さらなるデバイス、コンポーネント、モジュールなどを含むことができる、かつ/または、図に関連して説明されるデバイス、コンポーネント、モジュールなどの全てを含むことができるわけではないことが理解され、認識される。これらの手法の組合せもまた使用され得る。
ここで図面を参照して、図1は、本明細書で述べる種々の態様による、マルチプロセッサモバイルコンピューティング環境において効率的なメモリ管理を容易にするシステム100を示す。一態様によれば、システム100は、種々の通信サービスおよび/またはコンピューティングサービスを提供するために、BREW(無線用バイナリランタイム環境(Binary Runtime Environment for Wireless))、Linux(登録商標)、Windows(登録商標)モバイルなどのようなオペレーティングシステム(OS)を利用し得るモバイルデバイス120を含むことができる。一実施例では、モバイルデバイス120は、マルチプロセッサデバイスとして構築され得る。より詳細には、モバイルデバイス120は、コアネットワーク110との通信に関して(たとえば、モデム123および/または1つまたは複数の他の適したコンポーネントを制御することによって)エアインターフェースプロトコルオペレーションを管理するモデムプロセッサ122を含むことができる。コアネットワーク110は、たとえば、コンピューティングネットワークまたはインターネットワーク(たとえば、インターネット)、任意の適した無線通信技術を利用する無線または携帯通信ネットワーク、あるいは、その組合せ(たとえば、UTRA、E-UTRA、UMTS、LTE、GSM(登録商標)、CDMA2000、UMB、Wi-Fi、WiMAXなど)などであり得る。さらに、モバイルデバイス120は、モバイルデバイス120のオペレーティングシステムおよび/またはモバイルデバイス120上で実行されるそれぞれのアプリケーションを管理するアプリケーションプロセッサ124(本明細書で、「appsプロセッサ」とも呼ばれる)を含むことができる。
別の実施例では、モデムプロセッサ122およびアプリケーションプロセッサ124は、共有メモリ128に接続され得る。特定の実施例によれば、メモリ128は、モデムプロセッサ122、アプリケーションプロセッサ124、ならびに、プロセッサ122と124との間のプロセッサ間通信および/またはモバイルデバイス120によって利用される他のプロセッサにそれぞれ対応し得る3つの領域に分割され得る。付加的にかつ/または別法として、モデムプロセッサ122および/またはアプリケーションプロセッサ124は、SDIO(セキュアデジタル入力/出力)、ユニバーサルシリアルバス(USB)、ブルートゥース(BT)、UART(ユニバーサル非同期受信機/送信機)、および/または他のペリフェラルインターフェース(複数可)を介して、1つまたは複数の周辺機器(図示せず)に接続され得る。
一態様によれば、モデムプロセッサ122およびアプリケーションプロセッサ124は、種々のサービスを提供するために協働し得る。第1の実施例として、モバイルデバイス120は、ネットワークベースのまたはインターネットベースのサービスのためにモデム123によって提供される無線データ接続性を利用する1つまたは複数の埋め込み式アプリケーションを実行することができる。こうした実施例では、モデム123は、エアインターフェースプロトコルを処理し、ダウンリンクデータフローに関連するそれぞれのパケットを、メモリ128のモデム領域に書込むことができる。次に、それぞれのパケットをメモリ128の共有領域にコピーすることができ、この領域において、その後、パケットをアプリケーションプロセッサ124によりメモリ128のアプリケーション領域にコピーすることができる。そのため、上記実施例において、データパケットを処理し、モデムプロセッサ122とアプリケーションプロセッサ124との間で転送するために、少なくとも3つのデータ移動が必要とされ得ることを理解することができる。あるいは、メモリ128の第1の領域は、ダウンリンクデータ経路の場合、モデムプロセッサ122によって読取り可能でかつ書込み可能であり、アプリケーションプロセッサ124によって読取り可能であるだけであるものとして構成され得る、かつ/または、その逆であり得る。しかし、こうした構成はまた、データコピーまたはメモリ128内でのデータ移動を必要とし得ることを理解することができる。実施例によれば、こうした構成におけるダウンリンクデータ経路は、モデム123からメモリ128のモデム領域への第1のデータ移動およびメモリ128のモデム領域からメモリ128のアプリケーション領域への第2のデータ移動を必要とし得る。
第2の実施例として、モバイルデバイス120は、テザリングリンク132を介してモバイルデバイス120に関連するテザードコンピュータ130と協働して1つまたは複数の埋め込み式アプリケーションを実行することができる。テザードコンピュータ130は、パーソナルコンピュータ(PC)、ラップトップまたはタブレットコンピュータ、PDA、スマートフォンなどのような任意の適したコンピューティングデバイスであり得る。さらに、テザードコンピュータ130をモバイルデバイス120に接続するために利用されるテザリングリンク132は、USB、ファイアワイヤ、Wi-Fi、ブルートゥース、および/または任意の他の適したインターフェース(複数可)であり得る。こうした実施例では、モバイルデバイス120およびテザードコンピュータ130は、モバイルデバイス120が、モバイルデバイス120および/またはテザードコンピュータ130に送られるIPデータフローを区別し、対応するパケットを相応して転送し得るように、内部またはプライベートの異質のインターネットプロトコル(IP)アドレスを有し得る。付加的にまたは別法として、モバイルデバイス120およびテザードコンピュータ130は、無線データ接続上で一般的なパブリックIPアドレスおよび/または他のネットワークアドレスを共有し得る。こうした実施例では、モバイルデバイス120は、1つまたは複数のネットワークアドレス変換(NAT)オペレーションに基づいて、アップリンクパケットフローを監視し、内部アドレスおよび/またはポートを適切に外に出て行くアドレスおよび/またはポートに変換するように構成され得る、あるいは、その逆であり得る。こうしたオペレーションは、以降でさらに詳細に述べられる。
一実施例では、NATオペレーションは、実質的に全てのデータパケットが、メモリ128のモデム領域からメモリ128のアプリケーション領域へ転送されることが必要とされるように、アプリケーションプロセッサ124を使用してモバイルデバイス120によって実施される。そのため、上述した埋め込み式アプリケーションのシナリオと同様な方法で、テザリングセッションに関連するデータ処理および転送のために、少なくとも3つのデータコピーが、モデムプロセッサ122とアプリケーションプロセッサ124との間で必要とされ得ることを理解することができる。より具体的には、テザードコンピュータ130に対して指定されたパケットは、トランスポートおよびネットワークプロトコル層ならびにNATオペレーションがアプリケーションプロセッサ124によって実行されることから、ダウンリンク方向でアプリケーションプロセッサ124に転送されることを必要とされ得る。さらに、アップリンク方向の場合、テザードコンピュータ130から到来するパケットは、パケットがモデムプロセッサ122に転送される前に、プロトコル層処理のために、モバイルデバイス120においてアプリケーションプロセッサ124に転送され得ることを理解することができる。こうして過剰のデータコピーを実施することは、モバイルデバイス120に関連するシステムバスおよび外部メモリ上で不必要なトランザクションを生成し得る、電力消費を増加させ得る、余分のプロセッサ資源を費やさせ得る、エンドエンド間遅延を増加させ得る、かつ/または、1つまたは複数の他の方法でユーザ経験に悪い影響を及ぼし得る。
従来の共有メモリシステムに関連する上記非効率性および/または他の欠点を軽減するために、システム100内のモバイルデバイス120は、種々の態様に従って、1つまたは複数のペリフェラルモジュール126を含むことができる。一実施例では、ペリフェラルモジュール(複数可)126は、モデムプロセッサ122およびアプリケーションプロセッサ124と独立である、ハードウェア、ソフトウェア、および/または、他のコンポーネント(複数可)として実装することができ、それにより、関連するメモリ128の完全優先使用を容易にする。
一態様によれば、ペリフェラルモジュール(複数可)126は、モデムプロセッサ122とアプリケーションプロセッサ124との間でのデータ移動に関連する処理オーバヘッドを実質的に減少させるために、モバイルデバイス120によって利用することができる。実施例によれば、モバイルデバイス120上に常駐する埋め込み式アプリケーションの場合、ペリフェラルモジュール(複数可)126は、任意の関連するエアインターフェースプロトコルおよび/またはIP/伝送制御プロトコル(TCP)/ユーザデータグラムプロトコル(UDP)オペレーションの終了後に、メモリ128のモデム領域からパケットを読み取り、メモリ128のアプリケーション領域へ書込むことによって1つだけのデータコピーを必要とする、モデムプロセッサ122とアプリケーションプロセッサ124との間の相互作用を容易にし得る。
別の実施例では、モバイルデバイス120とテザードコンピュータ130との間のデータサービス共有の場合、ペリフェラルモジュール(複数可)126は、テザードコンピュータ130用に指定されたそれぞれのパケットを、モバイルデバイス120およびテザードコンピュータ130が、アプリケーションプロセッサ124を通過することなく、それによって直接結合されるテザリングリンク132(たとえば、USB、ファイアワイヤ、ブルートゥースなど)に移動し得る。したがって、このようにペリフェラルモジュール(複数可)126を利用することは、電力節約、CPU(中央処理ユニット)資源効率の向上、パケットレーテンシの減少、および/または他の利益をもたらし得ることを理解することができる。たとえば、埋め込み式アプリケーションデータがない場合、アプリケーションプロセッサ124は、テザードコンピュータ130用のデータを処理するためにモデムプロセッサ122だけがアクティブであることを必要とされるよう、電力節約のために完全に非アクティブ化するように構成され得る。
さらなる実施例では、ペリフェラルモジュール(複数可)126は、バス帯域幅、プロセッサ資源または同様なもの(たとえば、暗号化、チェックサム計算など)に関して要求が厳しいオペレーションが、一つに纏められ、専用ペリフェラルモジュール(複数可)126に実装され得るように、1つまたは複数の専用ASIC(特定用途向け集積回路)および/または他のハードウェアコンポーネントとして実装され得る。結果として、データは、メモリ128から1回で読み取ることができ、それによって、それぞれのオペレーションは、プロセッサ122および/または124にストレスをかける代わりに、専用ペリフェラルモジュール126に対してオフロードされ得る。
一態様によれば、ペリフェラルモジュール(複数可)126は、IPフィルタリングおよびパケット転送、NAT変換、IP/TCP/UDPチェックサム検証および計算などのような、ネットワーク層(たとえば、IP)および/またはトランスポート層(たとえば、TCP/UDP)処理用の1つまたは複数のオペレーションを容易にするために、モデムプロセッサ122および/または他の任意の適したコンポーネント(複数可)によって構成され得る。ペリフェラルモジュール(複数可)126によって実施され得るこれらのまた他のオペレーションの特定の実施例は、以降でさらに詳細に述べられる。
さらなる態様によれば、ペリフェラルモジュール(複数可)126は、モデムプロセッサ122とアプリケーションプロセッサ124の両方に関連するメモリ128のセクションに対して読取りおよび書込みアクセスを有するように構成され得る。一実施例では、メモリ128用のセキュリティ保護は、メモリ保護ユニット(MPU)を介して維持することができ、メモリ保護ユニット(MPU)は、モデムプロセッサ122、アプリケーションプロセッサ124、および/またはペリフェラルモジュール(複数可)126にわたってメモリアクセス制御を実装し得る。
次に図2を考え、例示的なテザリングおよびネットワーク共有プロシージャが、その上でPC210とモバイル端末220との間で行われるシステム200が示される。しかし、システム200はPCおよびモバイル端末用の例示的なネットワーク共有プロシージャを示すが、任意の適したコンピューティングデバイスは、システム200によって示されるのと同様な方法でテザリングおよび/またはネットワーク共有を利用し得ることを理解されたい。
システム200が示すように、基地局230および/または別の適したエンティティを通した無線通信システムへの接続を介して、インターネット240および/または別の適したネットワークまたはインターネットワークに対するアクセスを有するモバイル端末220は、プライベートまたはローカルネットワーク215を通して(たとえば、USB、Wi-Fi、ブルートゥースパーソナルエリアネットワーク(PAN)、および/または任意の他の適したインターフェースを使用してモバイル端末220に接続される)1つまたは複数のテザードデバイス210と、インターネット240へのアクセスを共有するネットワーク共有を利用し得る。一実施例では、モバイル端末220は、モデム224および/または別の適した通信デバイスを介してローカルネットワーク215に関連する全てのデバイスによって、インターネット240への、かつ/または、インターネット240からの通信を調節するテザリングモジュール222を利用し得る。
一態様によれば、モバイル端末220は、さらに、単一パブリックIPアドレスによって規定される単一ネットワーク接続を使用して、複数のホストデバイスが、インターネット240などのワイドエリアネットワーク(WAN)にアクセスすることを可能にし得るNATモジュール226を含むことができる。たとえば、ローカルネットワーク215内で、関連するそれぞれのデバイス210~220は、ローカルネットワーク215とインターネット240との間の通信用のパブリックIPアドレス(たとえば、157.x.y.z、ここで、x、y、およびzは、0と255との間などの整数である)をモバイル端末220が利用し得る間に、ローカルネットワーク215上でそれぞれのデバイスを識別するプライベートIPアドレス(たとえば、192.168.0.1、192.168.0.2など)を割当てられ得る。そのため、システム200に示すように、モバイル端末220のNATモジュール226は、ローカル{プライベートIPアドレス、ポート}対からWAN{パブリックIPアドレス、ポート}対へ、また、その逆へパケットを変換することによって、ローカルネットワーク215上のデバイスと、基地局230および/またはインターネット240との間の通信を可能にし得る。一実施例では、ポート変換は、ローカルネットワーク215を使用してデバイス間のポート衝突を防止するために、IPアドレス変換に加えて、または、それの代わりに実施され得る。付加的にまたは別法として、NATモジュール226は、たとえば、パケットに関して実施される任意の適用可能なIPアドレスおよび/またはポート変換を反映するために、それぞれのパケットのヘッダ内でTCPおよび/またはIPチェックサム調整を実施することなどの、変換中のそれぞれのパケットに関する1つまたは複数のオペレーションを実施し得る。別の実施例では、NATモジュール226は、テザードデータサービスが、テザリングモジュール222を介して1つまたは複数のデバイス210に提供されるときにアクティブ化され得る。
別の態様によれば、モバイル端末220は、使用中であるグローバルポートが、モバイル端末220に関連するグローバルIPアドレスを使用して新しいソケット用のエフェメラルポート値として割当てられないように、NATアウェアにさせられ得る。同様に、モバイル端末220は、新しいNATマッピングが、モバイル端末220に関連するグローバルIPアドレスを使用して、既存のソケットによって使用中であるパブリックポートを回避するように、NATマッピングを形成し得る。
一実施例では、モバイルコンピューティングデバイスは、図3のシステム300によって示すように、1つまたは複数の他のデバイスとのネットワークインターフェース共有配置構成に関連するデータおよび/または制御情報の通信を管理し得る。図3に示すシステム300の一部の要素は種々のモバイルコンピューティング実施態様に関連してもよいが、システム300内に示すそれぞれの要素が、特定の非制限的な実施例として提供されること、および、別途明示的に述べられない限り、特許請求の範囲が、任意の特定の実施態様またはその組合せに限定されることを意図されないことを理解されたい。
一実施例では、システム300は、モバイルコンピューティングデバイスおよび/または任意の他の適したコンピューティングデバイスによって実装することができ、また、システムメモリ330をそれぞれ共有し得る、アプリケーションプロセッサ310、PCインターフェース340、およびモデム350を含むことができる。一態様によれば、PCインターフェース340は、ネットワークインターフェース共有オペレーションおよび/または任意の他の適したオペレーション(複数可)に関連して、1つまたは複数のコンピューティングデバイスをデバイス実装システム300に結合するために利用され得る。PCインターフェース340は、USB、ブルートゥース、ファイアワイヤ、および/または任意の他の適したインターフェースタイプ(複数可)を介して実装され得る。一実施例では、PCインターフェース340は、アプリケーションプロセッサ310に関連するPCインターフェースドライバ322によって制御され得る。
別の態様によれば、モデム350は、システム300に関連するパブリック通信ネットワークへの、かつ/または、そこからの通信を管理するために利用され得る。一実施例では、モデム350は、アプリケーションプロセッサ310に関連するモデムドライバ324によって制御され得る。付加的にまたは別法として、モデムプロセッサ、プロトコル処理ドライバ、および/または他の適した制御機構(複数可)は、モデム350の制御を容易にするために、モデム350内に、かつ/または、モデム350に関連して設けられ得る。
さらなる実施例では、システム300は、システム300に関連するモバイルデバイスとPCおよび/または他の適したコンピューティングデバイスとの間のテザードデータ接続用の機構を含むことができる。こうした実施例では、アプリケーションプロセッサ310は、テザードデバイスが種々のデータのソースおよび/またはシンクであり、一部のまたは全ての残りのデータがアプリケーションプロセッサ310で入力データ処理される(source)、かつ/または、出力データ処理される(sink)ように、モデム350に関連するモデムプロセッサとテザードコンピューティングデバイスとの間の中間ノードとして役立ち得る。これらの目的のために、アプリケーションプロセッサ310は、アプリケーションプロセッサ310およびテザードデバイスが共に、関連するモデムプロセッサを通して一般的な無線接続を共有することを可能にし得るNATモジュール312を含むことができる。一実施例では、NATモジュール312は、アプリケーションプロセッサ310においてソフトウェアで実装され得る。付加的にまたは別法として、アプリケーションプロセッサは、さらに、システム300と、関連するパブリックネットワークとの間のデータ通信について必要とされるパケットトランスポート、フレーム化、および/または任意の他の適したオペレーション(複数可)を容易にするために、TCP/IPモジュールを含むことができる。
システム300内のアプリケーションプロセッサ310は、テザードコンピューティングデバイスとパブリックネットワークとの間の中間ノードとして役立つため、システム300は、パブリックネットワークへかつ/またはパブリックネットワークから送信される全てのパケットを経路制御するように構成されることが観察され得る。これらのパケットは、たとえば、入力および/または出力エンドポイント(EP)に対応し得る。しかし、システム300によって示されるように、パブリックネットワークにかつ/またはパブリックネットワークから指定されるそれぞれのパケットが、デバイス実装システム300によって消費されない場合でも、こうしたパケットは、パケットを通信する前のヘッダ更新および/または他の処理のために、アプリケーションプロセッサ310およびPCインターフェース340を通して経路制御されることを依然として必要とされ得る。結果として、アプリケーションプロセッサ310による処理は、関連するパブリックネットワークの、出入りする実質的に全てのパケットについて必要とされ、アプリケーションプロセッサ310に対する過剰の負担、過剰の電力使用などをもたらし得ることを理解することができる。
したがって、少なくとも上述した欠点を軽減するために、NAT変換および/または他のパケット処理オペレーションは、図4のシステム400によって示すように、アプリケーションプロセッサ310から1つまたは複数の異質のモジュールにオフロードされ得る。図4によって示される一態様によれば、システム400は、アプリケーションプロセッサ310からオフロードされるそれぞれのオペレーションを実施する1つまたは複数のプロセッサおよび/または他の適切なコンポーネント(複数可)を含むことができるスマートペリフェラルサブシステム(SPS)モジュール460を含むことができる。
一実施例では、SPS460は、テザードコンピューティングデバイス用のNAT有効化済みテザードネットワーク接続インターフェースとして役立ち得、テザードコンピューティングデバイスに関連するPCインターフェース340に(たとえば、インターフェースコントローラ442を介して)結合され得る。付加的にまたは別法として、SPS460は、モデム350に関連するプロトコルプロセッサ452(たとえば、プロトコルコントローラ456を介して)、SPS460およびアプリケーションプロセッサ310にアクセス可能な共有システムメモリ330、および/または、任意の他の適したインターフェース(複数可)に結合され得る。これらの関連付けに基づいて、SPS460は、システム400に関連するプライベートネットワーク内で通信されるそれぞれのパケットについて1つまたは複数のオペレーションを実施し得る。たとえば、パケットを検出すると、SPS460は、アプリケーションプロセッサ310から実質的に最小の相互作用を必要とする状態で、パケット用のNAT変換を実施し、パケットの1つまたは複数の意図される宛先を識別し、パケットを、対応する宛先アダプタ(複数可)に経路制御し得る。
そのため、実施例によれば、アップリンク(UL)パケットが、PCインターフェース340に到達すると、SPS460は、パケットを解析し、パケットが、アプリケーションプロセッサ310などに関連するデバイスなどのパケット処理宛先のために意図されるか、または、モデム350などに関連するWANなどの変換されたパケット宛先のために意図されるかを識別し得る。パケットが1つまたは複数の変換されたパケット宛先のために意図されることを識別すると、SPS460は、アプリケーションプロセッサ310からの介入を必要とすることなく、NAT変換を実施し、パケットを、モデム350および/または任意の他の適した宛先(複数可)に直接転送し得る。同様に、SPS460は、PCインターフェース340などに関連するテザードコンピューティングデバイスのために指定されたものとして識別されるモデム350に到達するダウンリンク(DL)パケットの場合、NAT変換を実施し、パケットを、PCインターフェース340および/または任意の他の適した変換されたパケット宛先に直接転送し得る。こうして、NAT変換を実施し、転送することによって、SPS460が、アプリケーションプロセッサ310における処理電力、アプリケーションプロセッサとSPS460との間のプロセッサ間通信に関連するバス帯域幅、および/または他の性能基準のかなりの節約を提供し得ることを理解することができる。
別の態様によれば、SPS460は、アプリケーションプロセッサ310によってSPS460に提供される1つまたは複数のNATルールに基づいて、それぞれのパケットに関してNAT変換オペレーションを実施し得る。一実施例では、一組のNATルールは、プライベートIPアドレス/ポート対からパブリックIPアドレス/ポート対へのマッピングまたは他の適したマッピングのテーブルとしてSPSドライバ414によって構成され得る。別の実施例では、SPSドライバ414は、少なくともNATオフロード(OL)ドライバ412から受信される命令に基づいてNATルールを設定し得る。
さらなる態様によれば、SPSドライバは、システム400に関連するプライベートネットワーク上のアプリケーションと、モデム350が関連するパブリックネットワーク上のアプリケーションとの間で行われる新しい接続を識別するように構成され得る。新しい接続を識別すると、NAT OLドライバ412は、新しい接続のためにNAT変換ルールをセットアップするために、アプリケーションプロセッサ310に関連するOSと協働してまたはOSと独立に働くことができ、新しい接続は、その後、SPS460に中継されるために、SPSドライバ414に提供され得る。付加的にまたは別法として、それぞれのNATルールに対応する1つまたは複数の接続がもはや利用されていないことを識別するように、SPSドライバ414を構成することができ、それに基づいて、SPSドライバ414は、SPS460における対応するNATルールの取外しを命令し得る。一実施例では、SPS460においてNATルールが取外されると、SPSドライバ414は、さらに、NATルールがSPS460によってもはや扱われないことを示す状態情報を、NAT OLドライバ412に伝えるように構成され得る。
システム400でさらに示すように、SPS460は、UL方向のかつ/またはDL方向のそれぞれのパケットを処理するそれぞれのコンポーネントを含むことができる。DL方向では、PCインターフェース340を通して接続されるデバイスのために意図されるパケットは、プロトコルプロセッサ452によって最初に処理することができ、プロトコルプロセッサ452は、プロトコルコントローラ456によって指示されるように、フィルタリングブロック454を使用してパケットのためのフィルタリングおよび/または任意の他の適したオペレーション(複数可)を実施し得る。その後、システム300に示すようにアプリケーションプロセッサ310にパケットを伝えるのではなく、パケットは、SPS460に提供され得る。
SPS460にてパケットが受信されると、決定ブロック462は、SPSドライバ414によって構成された1つまたは複数のNATルールが、(たとえば、パブリックIPアドレスおよび/またはポートによって指定される)パケットによって指定された接続に一致するかどかを判定し得る。マッチングルールが識別される場合、NAT変換は、識別されたルールを使用してNATブロック464のパケットについて実施され得る。付加的にまたは別法として、開放型システム間相互接続(OSI)第2層(L2)またはリンク層フレーム化は、L2パケットブロック466および/または別の適したモジュールのパケットについて実施され得る。そうでなければ、一致するNATルールが発見されない場合、決定ブロック462は、代わりに、処理のためのパケットをアプリケーションプロセッサ310に伝え得る。処理に続いて、SPSドライバ414および/またはアプリケーションプロセッサ310に関連する1つまたは複数の他のコンポーネントは、任意選択で、パケットに対応する新しいNATルールを作成し、作成されたルールのSPS460におけるインストールを容易にし得る。決定ブロック462によって取られた処理に基づいて、マルチプレクサ(MUX)468は、処理されたパケットを、処理がそこで実施された場所から適切なデバイスに転送するPCインターフェース340へ伝えるために利用され得る。
同様に、UL方向では、PCインターフェース340で受信される、モデム350に関連するパブリックネットワークのために意図されるパケットは、SPS460に提供され得る。SPS460に到達すると、L2フレーム化解除またはパーシングは、L2パースブロック472および/または別の適したモジュールによってパケットについて実施することができ、それに続いて、パケットは、決定ブロック462、NATブロック464、およびマルチプレクサ468に関して上述した方法と同様な方法で、決定ブロック474、NATブロック476、およびマルチプレクサ478を使用してSPS460を通して経路制御され得る。処理されたULパケットは、その後、プロトコルプロセッサ452に提供され、パケットは、プロトコルプロセッサ452から関連するパブリックネットワークへモデム350によって通信され得る。
一態様によれば、SPS460は、SPS460によって処理されるそれぞれのパケットについてL2フレーム化および/またはフレーム化解除を行う、1つまたは複数のL2パケットブロック466、L2パースブロック472、および/または、任意の他の適したモジュール(複数可)を利用し得る。一実施例では、L2パケットブロック466、L2パースブロック472、および/または他の同様なブロックは、モデム350が通信するネットワーク(たとえば、CDMAを利用するネットワーク、UMTS、WLAN、ブルートゥースなど)に関連するリンク層プロトコルと、PCインターフェース340(たとえば、USB、ファイアワイヤ、Wi-Fiなど)に対応するテザリングリンクと、NAT変換に関連する高レベルネットワークおよびトランスポート層プロトコル(たとえば、OSI第3層(L3)および/または第4層(L4)プロトコル)との間の相互運用性を容易にするために利用され得る。
こうして、一実施例では、L2パースブロック472は、パケットに含まれるネットワーク層および/またはトランスポート層情報に関して種々の処理オペレーション(たとえば、NAT変換、TCP/IPチェックサム検証および計算など)を可能にするために、PCインターフェース340から受信されるそれぞれのパケットについてL2フレーム化解除を実施するために利用され得る。同様に、L2パケットブロック466は、PCインターフェース340に関連する1つまたは複数のリンク層プロトコルによるそれぞれのパケットの使用を容易にするために、ブロック462~464などによって処理されたパケットに関してL2フレーム化を実施するために利用され得る。こうしてパケットパーシングおよび/またはカプセル化を実施することによって、システム400内の知られているNAT関係に対応するそれぞれのパケットの処理に関する実質的に全ての機能をSPS460にオフロードすることができ、それにより、アプリケーションプロセッサ310における出費を招くことなく、システム400が高いデータレートを達成することが可能になることを理解することができる。
付加的にまたは別法として、システム400では示さないが、OSI第2層またはリンク層のフレーム化およびフレーム化解除は共に、たとえば決定ブロック462の前のL2パースブロックおよび/またはマルチプレクサ478の前のL2パケットブロックを利用することによって、SPS460内でアップリンクおよび/またはダウンリンクパケットについて実施され得る。これは、PCインターフェース340およびモデム350において異種のL2プロトコルを利用するシステムの場合、SPS460を介して完全優先パケット処理を有効にするために行われ得ることを理解することができる。こうして、たとえば、アップリンクまたはダウンリンク上でSPS460に到達するパケットは、第1のリンク層プロトコルに従ってリンク層においてフレーム化解除され、ネットワークおよび/またはトランスポート層レベルで処理され、その後、第2の異質のリンク層プロトコルに従ってリンク層において再フレーム化され得る。
別の態様によれば、システム400は、種々の基準に基づいて、処理をSPS460にオフロードする代わりにまたはそれに加えて、処理のためにそれぞれのパケットをアプリケーションプロセッサ310に伝えるように選択し得る。たとえば、システム400は、ダウンリンク上でモデム350によって受信されたフラグメント化されたパケットが、再構築のためにアプリケーションプロセッサ310においてモデムドライバ324に提供され得ることを示す。再構築に続いて、再構築されたそれぞれのパケットに関してNAT変換および/または他のオペレーションが、アプリケーションプロセッサ310によって実施され得る、または別法として、モデムドライバ324が、さらなる処理のために、再構築されたパケットをSPS460にオフロードし得る。
システム400によってさらに示されるように、PCインターフェース340および/またはアプリケーションプロセッサ310に起因するそれぞれのパケットは、付加的にまたは別法として、SPS460からの介入を受けずに、アプリケーションプロセッサ310とPCインターフェース340との間で経路制御され得る。アプリケーションプロセッサ310を通して経路制御されたパケットは、たとえば、制御エンドポイント、NATオフロードインターフェース(たとえば、診断(Diag)インターフェース、米国海洋電子機器協会(National Marine Electronics Association)(NMEA)インターフェースなど)と異質のインターフェースに関連するエンドポイントなどのような、SPS460またはNATオフロードインターフェースに関連しないエンドポイントに対応するパケット;アプリケーションプロセッサ310上で実行されるアプリケーションが、モデム350を巻き込むことなく、PCインターフェース340に関連するデバイス上で実行されるアプリケーションと通信する場合に、NATオフロードインターフェースのために使用されるエンドポイントに対応するパケット;および/または任意の他の適したパケット(複数可)を含むことができる。一実施例では、PCインターフェース340からアプリケーションプロセッサ310へパケットが転送されると、転送されたパケットは、PCインターフェースドライバ322によって処理することができ、その後、マルチプレクサ422および/または他の適した手段は、処理されたパケットを、さらに処理するためにPCインターフェース340および/またはSPS460に選択的に戻すために利用され得る。
先の実施例に関して、フラグメント化されたパケット、システム400に示すようにPCインターフェース340とPCインターフェースドライバ322との間で直接通信されたパケット、および/または、システム400内で通信された任意の他のパケットは、アプリケーションプロセッサ310に直接提供される必要がないことを理解されたい。あるいは、こうしたパケットは、アプリケーションプロセッサ310に関して上述した一部のまたは全ての処理を容易にするために、SPS460に提供され得ることを理解することができる。
次に図5~6を参照して、種々の態様による、モバイルコンピューティングデバイスに関連し得る、モデムプロセッサ502とappsプロセッサ504との間の情報の例示的な流れを示すそれぞれの図500~600が提供される。最初に図5のシステム500を参照すると、モデムプロセッサ502に関連する第1のPDUバッファ512にあるそれぞれのプロトコルデータユニット(PDU)は、ヘッダ処理ブロック514に伝えられ、ヘッダ処理ブロック514は、PDUに対応する制御情報を生成し、生成された制御情報を、PDUバッファ512からの対応するPDUと共にプロトコルプロセッサ518に送信し得る。それぞれのPDUを受信すると、プロトコルプロセッサ518は、循環冗長検査(cyclic redundancy check)(CRC)検証、復号化などのような、PDUに関する1つまたは複数の処理オペレーションを実施し得る。プロトコルプロセッサは、その後、処理されたPDUを第2のPDUバッファ520に送ることができ、第2のPDUバッファ520は、次に、モデムプロセッサ502およびappsプロセッサ504に共通の共有バッファ532にPDUを転送し得る。
共有バッファ532にそれぞれのPDUが到達すると、appsプロセッサ504は、1つまたは複数のネットワークインターフェースバッファ542に対してPDUを読み取る(read)ことができ、ネットワークインターフェースバッファ542は、次に、PDUをネットワークインターフェースドライバ544に転送し得る。一実施例では、ネットワークインターフェースドライバ544は、システム500に関連するデバイスのために指定されたパケットを、appsプロセッサ504上に常駐する1つまたは複数の埋め込み式データアプリケーション546に送信し得る。付加的にまたは別法として、ネットワークインターフェースドライバ544は、テザードコンピュータデバイスのために指定された1つまたは複数のパケットを、テザードコンピュータデバイスに結合されたインターフェースコントローラ548(たとえば、USBコントローラ、ブルートゥースコントローラなど)に提供し得る。
システム500によって示されるように、モデムプロセッサ502とappsプロセッサ504との間のデータの移動を容易にするために、プロトコルプロセッサ518からPDUバッファ520へ、PDUバッファ520から共有バッファ532へ、共有バッファ532からネットワークインターフェースバッファ(複数可)542への3つのデータ移動が必要とされる。さらに、モデムプロセッサ502とテザードコンピュータデバイスとの間のデータの転送の場合、第4のデータ移動が、ネットワークインターフェースドライバ544を介してネットワークインターフェースバッファ(複数可)542とインターフェースコントローラ548との間で必要とされ得ることを理解することができる。
上記を考慮して、一態様によれば、図6に示すシステム600は、メモリアクセス効率を増加させ、appsプロセッサ504の負荷を低減し、かつ/または、他の利益を提供するために実装され得る。システム600が示すように、モデムプロセッサ502は、それぞれのPDUをプロトコル加速器612に送ることができ、プロトコル加速器612は、静的ダウンリンクNATマッピングに対して、受信されたPDUをマッチングしようと試行し得る。一実施例では、プロトコル加速器612に知られている静的マッピングに一致しないPDUは、1つまたは複数のネットワークインターフェースバッファ542に伝えられ、1つまたは複数のネットワークインターフェースバッファ542は、次に、さらなる処理のために、PDUをappsプロセッサ504に転送し得る。appsプロセッサ504は、その後、PDUに対応する制御情報を、NATモジュール616に送ることができ、NATモジュール616は、制御情報に基づいて1つまたは複数の新しいNATマッピングを構成し、構成されたNATマッピングをSPSプロセッサ614に転送し得る。付加的にまたは別法として、静的アドレス/ポートマッピングがそれについて見出されるそれぞれのPDUは、SPSプロセッサ614に伝えられ、SPSプロセッサ614は、PDUを、対応するテザリングリンクを通してテザードコンピュータ618に転送し得る。一実施例では、SPSプロセッサ614は、さらに、1つまたは複数のリンク層プロトコル(たとえば、IEEE802.3、IEEE802.11など)に基づくフレーム化解除、ポートまたはチェックサム情報の修正および/または付加、ならびに/または、それぞれのPDUに関する任意の他の適したオペレーションを実施し得る。別の実施例では、SPSプロセッサ614は、appsプロセッサ504に転送するために、もはや利用されないNATマッピングに関する情報、知られている任意の静的NATマッピングに一致しないPDUなどを、NATモジュール616に転送し得る。
したがって、DLマッピングが、それについてプロトコル加速器612および/またはSPSプロセッサ614に存在するPDUの場合、モデムプロセッサ502からテザードコンピュータ618への転送は、必要とされるメモリアクセスがシステム500によって必要とされるよりも少ない状態で実施され得ることを理解することができる。さらに、こうした場合、appsプロセッサ504によってオペレーションが実質的に全く必要とされず、それにより、appsプロセッサ504およびシステム600の総合効率が増加することが観察され得る。
ここで図7~9を参照して、本明細書で述べる種々の態様に従って実施され得る方法が示される。説明を簡単にするために、方法が、一連の行為として示され述べられるが、一部の行為が、1つまたは複数の態様に従って、異なる順序で、かつ/または、本明細書で示し述べる行為以外の行為と同時に起こり得るため、方法が行為の順序によって制限されないことは理解し認識することができる。たとえば、方法は、あるいは、状態図などにおいて、一連の相互に関係のある状態またはイベントとして表され得ることを当業者は理解し認識するであろう。さらに、1つまたは複数の態様に従って方法を実装するために、示す全ての行為(act)が必要とされない可能性がある。
図7を参照して、モバイルコンピューティングデバイス(たとえば、モバイルデバイス120)に関連するデータフローを管理する方法700が示される。方法700は、たとえば、モバイルコンピューティングデバイスおよび/またはモバイルコンピューティングデバイスに関連する1つまたは複数のハードウェアまたはソフトウェアコンポーネント(たとえば、ペリフェラルモジュール(複数可)126)あるいは任意の他の適切なコンピューティングデバイス(複数可)またはデバイスコンポーネント(複数可)によって実施され得ることが理解される。方法700は、一組のNATルールがアプリケーションプロセッサ(たとえば、アプリケーションプロセッサ124)から受信されるブロック702で始まる。次に、ブロック704にて、パケットは、結合された第1のインターフェース(たとえば、モデム123に対するインターフェースまたはテザードコンピュータ130に対するPCインターフェース)を介して受信される。ブロック706にて、ブロック704にて受信されたパケットに対応する、ブロック702にて受信されたルールからのNATルールの識別が、その後試行され得る。
ブロック708にて、ブロック706における一致するNATルールについての試行された識別が成功であったかどうかが判定される。識別が成功であった場合、方法700は、ブロック704で受信されたパケットが、ブロック706で成功裏に識別されたNATルールを使用して変換されるブロック710、および、パケットが、結合された第2のインターフェース(たとえば、テザードコンピュータから生じるパケットの場合、モデムインターフェース、または、その逆)に伝えられるブロック712に進むことによって終了することができる。対照的に、ブロック706における識別が不成功であった場合、方法は、代わりに、ブロック708から、ブロック704にて受信されたパケットがアプリケーションプロセッサに伝えられるブロック714へ進むことによって終了することができる。
図8は、モバイルコンピューティング環境に関連してダウンリンクデータを管理するために利用され得る例示的な方法800を示す。方法800は、たとえば、(たとえば、SPS460およびそのサブコンポーネントなどの1つまたは複数のハードウェアコポーネントを介して)コンピューティングデバイスによってかつ/または任意の他の適したデバイスによって実施され得る。方法800は、一組のNATルールがアプリケーションプロセッサ(たとえば、SPSドライバ414を介してアプリケーションプロセッサ310)から受信されるブロック802で始まる。次に、ブロック804にて、ダウンリンクパケットは、モデムサブシステムインターフェース(たとえば、モデム350に関連するプロトコルプロセッサ452)から受信される。ブロック806にて、ブロック804にて受信されたパケットに対応する、ブロック802にて受信されたNATルールの識別が、その後、(たとえば、決定ブロック462によって)試行される。
一態様によれば、方法800は、ブロック806における試行された識別の結果に基づいてブロック808にて分岐し得る。たとえば、NATルールがブロック806にて成功裏に識別される場合、方法800は、ブロック808から、ブロック802にて受信されたパケットが、識別されたNATルールを使用して(たとえば、NATブロック464によって)変換されるブロック810、および、第2層フレーム化が(たとえば、L2パケットブロック466によって)パケットについて実施されるブロック812へ進むことができる。方法800は、その後、パケットが、テザードコンピュータに関連する結合されたインターフェース(たとえば、PCインターフェース340)に(たとえば、MUX468によって)転送されるブロック818で終了することができる。
あるいは、NATルールがブロック806にて成功裏に識別されない場合、方法800は、ブロック808から、ブロック802にて受信されたパケットが、さらなる処理のためにアプリケーションプロセッサに転送されるブロック814に進むことができる。方法800は、その後、ブロック814から終了することができる、または、任意選択で、ブロック814においてアプリケーションプロセッサに転送されたパケットが、処理に続いてアプリケーションプロセッサから戻るように受信されるブロック816へ進むことができる。ブロック816で述べる行為が終了すると、方法800は、その後、上述したようにブロック818で終了することができる。
図9を参照すると、モバイルコンピューティング環境に関連してアップリンクデータを管理する方法900が示される。方法900は、任意の適したコンピューティングデバイス(複数可)および/またはコンピューティングデバイスに関連するサブコンポーネント(複数可)によって実施され得ることを理解されたい。方法900は、一組のNATルールがアプリケーションプロセッサから受信されるブロック902で始まる。次に、ブロック904にて、アップリンクパケットは、テザードコンピュータに関連する結合されたインターフェースから受信される。第2層パーシングは、その後、ブロック904にて受信されたパケットについてブロック906にて(たとえば、L2パースブロック472によって)実施することができ、ブロック1404にて受信されたパケットに対応する、ブロック902にて受信されたNATルールの識別は、その後、ブロック908にて(たとえば、決定ブロック474によって)試行され得る。
図9に示すように、方法900は、ブロック908における試行された識別の結果に基づいてブロック910にて分岐し得る。こうして、ブロック908にてNATルールが成功裏に識別されると、方法900は、ブロック910から、ブロック902にて受信されたパケットが、識別されたNATルールを使用して(たとえば、NATブロック476によって)変換されるブロック912へ進むことができる。方法900は、その後、パケットが、モデムインターフェースに(たとえば、MUX478によって)転送されるブロック914で終了することができる。
あるいは、ブロック908にてNATルールの識別の試行に成功しなかったとき、方法900は、ブロック910から、ブロック902にて受信されたパケットが、さらなる処理のためにアプリケーションプロセッサに転送されるブロック916に進むことができる。方法900は、ブロック916で述べる行為に続いて終了することができる、または、任意選択で、パケットが、処理に続いてアプリケーションプロセッサから戻されるブロック918に進むことができる。ブロック918に述べる行為の終了後に、方法900は、上述したようにブロック914で終了することができる。
図10は、ネットワークインターフェース共有アプリケーション用のデータサービス管理を容易にする装置1000を示す。装置1000は、プロセッサ、ソフトウェア、またはその組合せ(たとえば、ファームウェア)によって実装される機能を表す機能ブロックであり得る機能ブロックを含むものとして示されることを理解されたい。装置1000は、任意の適したコンピューティングデバイス(たとえば、モバイルデバイス120)および/またはそのコンポーネント(複数可)(たとえば、ペリフェラルモジュール(複数可)126)によって実装され、また、関連するappsプロセッサからNATマッピングルールを受信するモジュール1002、第1のインターフェースを介して取得されるパケットを識別するモジュール1004、受信されたそれぞれのNATマッピングルールに対して、識別されたパケットのマッチングを試行するモジュール1006、一致するNATマッピングルールに従ってパケットを変換し、マッチングの試行に成功したとき、パケットを第2のインターフェースへ送るモジュール1008、および、マッチングの試行に成功しなかったとき、パケットをappsプロセッサへ送るモジュール1010を含むことができる。
ここで図11を参照して、無線多元接続通信システムの例証が、種々の態様に従って提供される。一実施例では、アクセスポイント1100(AP)は、複数のアンテナ群を含む。図11に示すように、1つのアンテナ群は、アンテナ1104および1106を含むことができ、別のアンテナ群は、アンテナ1108および1110を含むことができ、別のアンテナ群は、アンテナ1112および1114を含むことができる。図11では、各アンテナ群について2つのアンテナだけが示されるが、各アンテナ群についてより多いまたはより少ないアンテナが利用されてもよいことを理解されたい。別の実施例では、アクセス端末1116は、アンテナ1112および1114と通信状態にあることができ、アンテナ1112および1114は、順方向リンク1120を通じてアクセス端末1116に情報を送信し、逆方向リンク1118を通じてアクセス端末1116から情報を受信する。付加的にまたは別法として、アクセス端末1122は、アンテナ1106および1108と通信状態にあることができ、アンテナ1106および1108は、順方向リンク1126を通じてアクセス端末1122に情報を送信し、逆方向リンク1124を通じてアクセス端末1122から情報を受信する。さらなる実施例では、アクセス端末1116および/または1122は、それぞれのコンピューティングデバイスに結合されることが可能であり、結合されたコンピューティングデバイスとアクセスポイント1100との間の接続性、あるいは、本明細書で一般的に述べるように、アクセスポイント1100が、それによって1つまたは複数のデータサービス共有技法を介して関連付けられるコアネットワークまたはインターネットワークを提供するように動作し得る。周波数分割複信システムでは、通信リンク1118、1120、1124、および1126は、通信のために異なる周波数を使用し得る。たとえば、順方向リンク1120は、逆方向リンク1118によって使用される周波数と異なる周波数を使用してもよい。
各アンテナ群および/またはアンテナが通信するように設計されるエリアは、アクセスポイントのセクタと呼ばれ得る。一態様によれば、アンテナ群は、アクセスポイント1100によってカバーされるエリアのセクタ内のアクセス端末と通信するように設計され得る。順方向リンク1120および1126を通じた通信では、アクセスポイント1100の送信アンテナは、異なるアクセス端末1111および1122について順方向リンクの信号対雑音比を改善するために、ビーム整形を利用し得る。同様に、そのカバリジを通してランダムに分散されたアクセス端末に送信するためにビーム整形を利用するアクセスポイントは、単一アンテナを通してその全てのアクセス端末に送信するアクセスポイントに比べて、近傍セル内のアクセス端末に対して少ない干渉をもたらす。
アクセスポイント、たとえば、アクセスポイント1100は、端末と通信するために使用される固定局とすることができ、基地局、eNB、アクセスネットワーク、および/または他の適した用語でも呼ばれ得る。さらに、アクセス端末、たとえば、アクセス端末1116または1122は、モバイル端末、ユーザ機器、無線通信デバイス、端末、無線端末、および/または他の適切な用語でも呼ばれ得る。
図12を参照すると、本明細書で述べる種々の態様が実装され得る例示的なコンピューティングシステムまたはオペレーティング環境が示される。たとえばネットワークが望ましいように構成され得るどこ場所においても、手持式の、可搬型の、および他のコンピューティングデバイスならびに全ての種類のコンピューティングオブジェクトが、特許請求される主題に関連して使用するために考えられることを当業者は理解することができる。したがって、図12で以下に述べる以下の汎用コンピューティングシステムは、特許請求される主題が実装され得るコンピューティングシステムの一実施例に過ぎない。
図12に示すように、本明細書に述べる種々の態様を実装するために利用され得るコンピューティング環境1200の実施例は、コンピュータ1210の形態の汎用コンピューティングデバイスを含む。コンピュータ1210のコンポーネントは、1つまたは複数の処理ユニット1220、システムメモリ1230、および、システムメモリ1230を含む種々のシステムコンポーネントを処理ユニット(複数可)1220に結合するシステムバス1221を含むことができるが、それに限定されない。システムバス1221は、メモリバスまたはメモリコントローラ、ペリフェラルバス、および種々のバスアーキテクチャのうちの任意のアーキテクチャを使用するローカルバスを含むいくつかのタイプのバス構造のうちの任意のバス構造であり得る。
一実施例では、システムメモリ1230は、読取り専用メモリ(ROM)および/またはランダムアクセスメモリ(RAM)などの揮発性および/または不揮発性メモリを使用して実装され得る。セットアップなどの間に、コンピュータ1210内の要素間で情報を転送するのに役立つ基本ルーチンを含む基本入力/出力システム(BIOS)は、メモリ1230に格納され得る。メモリ1230はまた、データ、および/または、処理ユニット1220に即座にアクセス可能である、かつ/または、処理ユニット1220によって目下のところ動作しているプログラムモジュールを含むことができる。非制限的な実施例によれば、メモリ1230はまた、オペレーティングシステム、アプリケーションプログラム、他のプログラムモジュール、およびプログラムデータを含むことができる。
さらに、コンピュータ1210は、取外し可能または取外し不可能であり得ると共に揮発性または不揮発性であり得る他のコンピュータ記憶媒体を含むことができる。たとえば、コンピュータ1210は、取外し不可能で不揮発性の磁気媒体から読み取るかまたはそこに書込むハードディスクドライブ、取外し可能で不揮発性の磁気ディスクから読み取るかまたはそこに書込む磁気ディスクドライブ、CD-ROMまたは他の光媒体などの取外し可能で不揮発性の光ディスクから読み取るかまたはそこに書込む光ディスクドライブなどを含むことができる。使用され得る他のコンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体RAM、固体ROMなどを含む。
さらなる実施例では、ユーザは、キーパッドまたはキーボード、マウス、トラックボール、タッチパッド、タッチスクリーンなどのようなポインティングデバイス、マイクロフォン、カメラまたは光センサ、および/または任意の他の適した入力デバイスなどの入力デバイスを通してコンピュータ1210にコマンドおよび情報を入力し得る。コンピュータ1210に関連する入力デバイスは、入力インターフェース1240を通して処理ユニット1220に接続され得る。入力インターフェース1240は、パラレルポート、ユニバーサルシリアルバス(UBS)ポートなどのような任意の適した方法で実装され得る。付加的にまたは別法として、モニタ、ディスプレイスクリーン、スピーカ、および/または任意の他の適した出力デバイスは、出力インターフェース1250を介してシステムバス1221に接続されることが可能であり、システムバス1221は、次に、処理ユニット1220、システムメモリ1230、および/またはコンピュータ1210の任意の他の適したコンポーネントと通信し得る。
一態様によれば、コンピュータ1210は、リモートコンピュータ1270などの1つまたは複数の他のリモートコンピュータに対する論理接続を使用して、ネットワーク化された環境で動作し得る。リモートコンピュータ1270は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイスまたは他の一般的なネットワークノード、および/または、任意の他のリモートメディア消費または伝送デバイスとすることができ、コンピュータ1210に関して上述した要素の任意の要素または全ての要素を含むことができる。一実施例では、コンピュータ1210およびリモートコンピュータ1270は、ネットワークまたはサブネット1271を介して結合され得る。さらに、コンピュータ1210は、ネットワークアダプタ1260を介して、リモートコンピュータ1270および/または通信ネットワークまたはインターネットワークへの接続を容易にし得る。したがって、コンピュータ1210は、リモートコンピュータ1270とインターネットの両方に関連する場合、一般的に上述したように、リモートコンピュータ1270が、インターネットに対するその接続を利用することを可能にする1つまたは複数の技法を利用し得る。
本明細書で述べる態様は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、またはその任意の組合せで実装され得ることを理解されたい。システムおよび/または方法は、ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコード、プログラムコードまたはコードセグメントで実装されると、記憶コンポーネントなどの機械読取り可能媒体に格納され得る。コードセグメントは、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、あるいは、命令、データ構造、またはプログラムステートメントの任意の組合せを表し得る。コードセグメントは、情報、データ、引数、パラメータ、またはメモリコンテンツを伝えるかつ/または受信することによって別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む任意の適した手段を使用して、伝えられ得る、転送され得る、または送信され得る。
ソフトウェア実施態様の場合、本明細書で述べる技法は、本明細書で述べる機能を実施するモジュール(たとえば、プロシージャ、関数など)によって実装され得る。ソフトウェアコードは、メモリユニットに格納され、プロセッサによって実行され得る。メモリユニットは、プロセッサ内にまたはプロセッサの外部に実装することができ、その場合、メモリユニットは、当技術分野で知られている種々の手段を介してプロセッサに通信可能に結合され得る。
上述されたものは、1つまたは複数の態様の実施例を含む。もちろん、上述した態様を述べるために、コンポーネントまたは方法の考えられる全ての組合せを述べることは可能でないが、種々の態様の多くのさらなる組合せおよび置換が可能であることを当業者は理解することができる。したがって、述べた態様は、添付特許請求の範囲の趣旨および範囲内に入る全てのこうした変更、修正、および変形を包含することが意図される。さらに、用語「含む(includes)」が、詳細な説明または特許請求の範囲で使用される限り、こうした用語は、「備える(comprising)」が、使用されると特許請求項の過渡的な言葉(transitional word)として解釈されるため、用語「備える(comprising)」と同様の方法で包含的であることが意図される。さらに、詳細な説明または特許請求の範囲で使用される用語「or(または)」は、「非排他的なor(non-exclusive or)」であることが意味される。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[1] アプリケーションプロセッサから1つまたは複数のネットワークアドレス変換(NAT)ルールを受信すること、
結合されたインターフェース上でパケットを取得すること、
前記取得されたパケットに対応する前記アプリケーションプロセッサから受信されたNATルールの識別を試行すること、
識別の試行に成功したとき、識別されたNATルールに従って前記取得されたパケットを変換し、前記変換されたパケットを、1つまたは複数の変換されたパケット宛先へ転送すること、および、
識別の試行に成功しなかったとき、前記取得されたパケットを1つまたは複数のパケット処理宛先へ転送することを備える方法。
[2] NATルールの識別を試行する前に、リンク層プロトコルに従って前記取得されたパケットを処理する動作、または、
前記変換されたパケットを前記1つまたは複数の変換されたパケット宛先へ転送する前にリンク層プロトコルに従って前記変換されたパケットを処理する動作の1つまたは複数の動作をさらに備える[1]に記載の方法。
[3] 前記取得することは、前記結合されたインターフェース上でリンク層プロトコルを使用して構築されるパケットを取得することを備え、
前記取得されたパケットを前記処理することは、ネットワーク層またはトランスポート層の1つまたは複数の層に対応するパケット情報を識別するために、前記取得されたパケットをパーシングすることを備える[2]に記載の方法。
[4] 前記変換されたパケットを前記処理することは、リンク層プロトコルに従って前記変換されたパケットをフレーム化することを備える[1]に記載の方法。
[5] 前記結合されたインターフェースは、モデムに関連するプロトコルプロセッサを備え、前記1つまたは複数の変換されたパケット宛先は、関連するテザードコンピューティングデバイスによって使用されるために有効にされたNAT有効化済みテザードネットワーク接続インターフェースを備える[1]に記載の方法。
[6] 前記取得することは、
前記モデムが接続されるパブリックネットワークを識別すること、および、
前記識別されたパブリックネットワークから前記モデムでパケットを取得することを備える[5]に記載の方法。
[7] 前記取得することは、前記モデムを介して前記パブリックネットワークから前記パケットを、複数のフラグメントで取得することをさらに備える[6]に記載の方法。
[8] NATルールの識別を試行する前に、取得されたそれぞれのフラグメントを前記1つまたは複数のパケット処理宛先に転送することをさらに備える[7]に記載の方法。
[9] NATルールの識別を試行する前に、前記取得されたパケットをそのそれぞれのフラグメントから再構築することをさらに備える[7]に記載の方法。
[10] 前記取得されたパケットのヘッダで指定されるパブリックアドレスおよびポートを識別することをさらに備え、
NATルールの識別を前記試行することは、ユーザデータグラムプロトコル(UDP)または伝送制御プロトコル(TCP)の一方または両方を備えるトランスポートプロトコル、ならびに、前記識別されたパブリックアドレスおよびポートに対応するプライベートアドレスおよびポートを指定するNATルールを識別することを試行することを備える[5]に記載の方法。
[11] 前記変換することは、
前記識別されたNATルールによって与えられる前記プライベートアドレスおよびポートを指定するために、前記取得されたパケットの前記ヘッダを修正すること、および、
前記プライベートアドレスおよびポートを反映するために、前記取得されたパケットの前記ヘッダのチェックサムを更新することを備える[10]に記載の方法。
[12] 前記結合されたインターフェースは、テザードコンピューティングデバイスによって使用されるために有効にされたネットワーク接続インターフェースであり、前記1つまたは複数の変換されたパケット宛先は、モデムに関連するインターフェースを備える[1]に記載の方法。
[13] 前記取得することは、前記ネットワーク接続インターフェースを介して前記テザードコンピューティングデバイスからパケットを取得することを備える[12]に記載の方法。
[14] 前記取得されたパケットのヘッダで指定されるプライベートアドレスおよびポートを識別することをさらに備え、
NATルールの識別を前記試行することは、UDPまたはTCPの一方または両方を備えるトランスポートプロトコルに従って、前記識別されたプライベートアドレスおよびポートに対応するパブリックアドレスおよびポートを指定するNATルールを識別することを試行することを備える[12]に記載の方法。
[15] 識別されたNATルールを前記適用することは、
前記識別されたNATルールによって与えられる前記パブリックアドレスおよびポートを指定するために、前記取得されたパケットの前記ヘッダを修正すること、および、
前記パブリックアドレスおよびポートを反映するために、前記取得されたパケットの前記ヘッダのチェックサムを更新することを備える[14]に記載の方法。
[16] 前記結合されたインターフェースにおいて、前記取得されたパケットによって指定される宛先を識別すること、および、
前記取得されたパケットによって指定される前記宛先が前記アプリケーションプロセッサに関連する場合、NATルールの識別を試行する前に、前記結合された第1のインターフェースから前記アプリケーションプロセッサに前記取得されたパケットを転送することをさらに備える[1]に記載の方法。
[17] 前記1つまたは複数のパケット処理宛先は、前記アプリケーションプロセッサを備える[1]に記載の方法。
[18] アプリケーションプロセッサによって提供される1つまたは複数のネットワークアドレス変換(NAT)ルールに関するデータを格納するメモリと、
前記アプリケーションプロセッサと本質的に異なる、前記メモリに結合された少なくとも1つのプロセッサであって、結合されたインターフェース上でパケットを受信し、前記受信されたパケットに対応するNATルールの識別を試行し、NATルールの識別に成功したとき、識別されたNATルールに従って前記受信されたパケットを変換し、前記変換されたパケットを、少なくとも1つの変換されたパケット宛先へ転送し、NATルールの識別に成功しなかったとき、前記受信されたパケットを少なくとも1つのパケット処理宛先へ転送するように構成されるプロセッサとを備えるモバイルコンピューティング装置。
[19] 前記少なくとも1つのプロセッサは、NATルールの識別を試行する前に、開放型システム間相互接続(OSI)第2層(L2)プロトコルに従って前記受信されたパケットを処理すること、または、前記変換されたパケットを前記少なくとも1つのパケット処理宛先へ転送する前に、L2プロトコルに従って前記変換されたパケットを処理することの少なくとも一方を実施するようにさらに構成される[18]に記載のモバイルコンピューティング装置。
[20] 前記少なくとも1つのプロセッサは、前記受信されたパケット内に含まれる第3層(L3)情報または第4層(L4)情報の一方または両方に関するオペレーションを容易にするために、前記結合されたインターフェース上でL2プロトコルを使用して構築されたパケットを受信し、少なくとも部分的に前記受信されたパケットについてL2フレーム化解除を実施することによって、前記受信されたパケットを処理するようにさらに構成される[19]に記載のモバイルコンピューティング装置。
[21] 前記少なくとも1つのプロセッサは、少なくとも部分的に、L2プロトコルに従って前記変換されたパケットをフレーム化することによって、前記変換されたパケットを処理するようにさらに構成される[19]に記載のモバイルコンピューティング装置。
[22] 前記結合されたインターフェースは、モデムに関連するプロトコルプロセッサインターフェースであり、前記少なくとも1つの変換されたパケット宛先は、関連するテザードコンピューティングデバイスによって使用されるために有効にされたテザリングリンクに関連するネットワーク接続インターフェースを備える[18]に記載のモバイルコンピューティング装置。
[23] 前記少なくとも1つのプロセッサは、前記受信されたパケットのヘッダで指定されるパブリックアドレスおよびポートを識別し、少なくとも部分的に、ユーザデータグラムプロトコル(UDP)または伝送制御プロトコル(TCP)の一方または両方を備えるトランスポートプロトコル、ならびに、前記識別されたパブリックアドレスおよびポートに対応するプライベートアドレスおよびポートを指定するNATルールを識別することを試行することによって、NATルールの識別を試行するようにさらに構成される[22]に記載のモバイルコンピューティング装置。
[24] 前記少なくとも1つのプロセッサは、少なくとも部分的に、前記識別されたNATルールによって与えられる前記識別されたプライベートアドレスおよびポートを指定するために、前記受信されたパケットの前記ヘッダを修正すること、および、前記プライベートアドレスおよびポートを反映するために、前記受信されたパケットの前記ヘッダのチェックサムを更新することによって、識別されたNATルールを適用するようにさらに構成される[23]に記載のモバイルコンピューティング装置。
[25] 前記結合されたインターフェースは、テザードコンピューティングデバイスに関連するネットワーク接続インターフェースであり、前記少なくとも1つの変換されたパケット宛先は、モデムに関連するインターフェースを備える[18]に記載のモバイルコンピューティング装置。
[26] 前記少なくとも1つのプロセッサは、前記ネットワーク接続インターフェースを介して前記テザードコンピューティングデバイスからパケットを受信するようにさらに構成される[25]に記載のモバイルコンピューティング装置。
[27] 前記少なくとも1つのプロセッサは、前記受信されたパケットのヘッダで指定されるプライベートアドレスおよびポートを識別し、少なくとも部分的に、UDPまたはTCPの一方または両方を備えるトランスポートプロトコルに従って、前記識別されたプライベートアドレスおよびポートに対応するパブリックアドレスおよびポートを指定するNATルールを識別することを試行することによって、NATルールの識別を試行するようにさらに構成される[25]に記載のモバイルコンピューティング装置。
[28] 前記少なくとも1つのプロセッサは、少なくとも部分的に、前記識別されたNATルールによって与えられる前記識別されたパブリックアドレスおよびポートを指定するために、前記受信されたパケットの前記ヘッダを修正すること、ならびに、前記パブリックアドレスおよびポートを反映するために、前記受信されたパケットの前記ヘッダのチェックサムを更新することによって、識別されたNATルールを適用するようにさらに構成される[27]に記載のモバイルコンピューティング装置。
[29] 前記少なくとも1つのプロセッサは、前記受信されたパケットの終端ポイントを識別し、前記受信されたパケットの前記終端ポイントが前記アプリケーションプロセッサに関連する場合、NATルールの識別を試行する前に、前記結合されたインターフェースから前記アプリケーションプロセッサに前記受信されたパケットを転送するようにさらに構成される[25]に記載のモバイルコンピューティング装置。
[30] 前記少なくとも1つのパケット処理宛先は、前記アプリケーションプロセッサを備える[18]に記載のモバイルコンピューティング装置。
[31] 関連するアプリケーションプロセッサからそれぞれのネットワークアドレス変換(NAT)マッピングルールを受信する手段と、
インターフェースを介して取得されたパケットを識別する手段と、
受信されたNATマッピングルールに対して前記識別されたパケットのマッチングを試行する手段と、
マッチングの試行に成功したとき、一致するNATマッピングルールに従って前記識別されたパケットを変換する手段と、
前記一致するNATマッピングルールが適用されると、前記変換されたパケットを1つまたは複数の変換されたパケット宛先へ送る手段と、
マッチングの試行に成功しなかったとき、前記識別されたパケットを1つまたは複数のパケット処理宛先へ送る手段とを備える装置。
[32] マッチングを試行する前記手段のオペレーションの前に、前記識別されたパケットについてリンク層処理を実施する手段をさらに備える[31]に記載の装置。
[33] 前記変換されたパケットを前記1つまたは複数の変換されたパケット宛先に送る前記手段のオペレーションの前に、前記変換されたパケットについてリンク層処理を実施する手段をさらに備える[31]に記載の装置。
[34] 前記インターフェースは、モデムに関連し、少なくとも1つの変換されたパケット宛先は、テザードコンピューティングデバイスに関連する[31]に記載の装置。
[35] 識別する前記手段は、
前記モデムが接続されるパブリックネットワークを識別する手段と、
前記識別されたパブリックネットワークを通じて前記モデムによって受信されるパケットを識別する手段とを備える[34]に記載の装置。
[36] 前記識別されたパケットのヘッダで指定されるパブリックアドレスおよびポートを識別する手段をさらに備え、
マッチングを試行する前記手段は、ユーザデータグラムプロトコル(UDP)または伝送制御プロトコル(TCP)の一方または両方を備えるトランスポートプロトコル、ならびに、前記識別されたパブリックアドレスおよびポートに対応するプライベートアドレスおよびポートを指定するNATマッピングルールの識別を試行する手段を備える[34]に記載の装置。
[37] 変換する前記手段は、
前記識別されたNATマッピングルールによって与えられる前記プライベートアドレスおよびポートを前記ヘッダが指定するように、前記識別されたパケットの前記ヘッダを修正する手段と、
前記識別されたNATマッピングルールによって与えられる前記プライベートアドレスおよびポートに基づいて前記識別されたパケットの前記ヘッダのチェックサムを修正する手段とを備える[36]に記載の装置。
[38] 前記インターフェースは、テザードコンピューティングデバイスに関連し、少なくとも1つの変換されたパケット宛先は、モデムに関連する[31]に記載の装置。
[39]
識別する前記手段は、前記テザードコンピューティングデバイスによって通信されるパケットを識別する手段を備える[38]に記載の装置。
[40] 前記識別されたパケットのヘッダで指定されるプライベートアドレスおよびポートを識別する手段をさらに備え、
マッチングを試行する前記手段は、UDPまたはTCPの一方または両方を備えるトランスポートプロトコルに従って、前記識別されたプライベートアドレスおよびポートに対応するパブリックアドレスおよびポートを指定するNATマッピングルールの識別を試行する手段を備える[38]に記載の装置。
[41] 変換する前記手段は、
前記識別されたNATマッピングルールによって与えられる前記パブリックアドレスおよびポートを前記ヘッダが指定するように、前記識別されたパケットの前記ヘッダを修正する手段と、
前記識別されたNATマッピングルールによって与えられる前記パブリックアドレスおよびポートに基づいて前記識別されたパケットの前記ヘッダのチェックサムを修正する手段とを備える[40]に記載の装置。
[42] 少なくとも1つのパケット処理宛先は、前記アプリケーションプロセッサを備える[31]に記載の装置。
[43] 機械実行可能命令を実行する集積回路であって、前記命令は、
関連するアプリケーションプロセッサからそれぞれのネットワークアドレス変換(NAT)マッピングルールを受信すること、
インターフェースを介して取得されたパケットを識別すること、
それぞれのNATマッピングルールに対して前記識別されたパケットのマッチングを試行すること、
マッチングの試行に成功したとき、一致するNATマッピングルールに従って前記識別されたパケットを変換すること、
一致するNATマッピングルールが適用されると、前記変換されたパケットを1つまたは複数の変換されたパケット宛先に送ること、および、
マッチングの試行に成功しなかったとき、前記識別されたパケットを1つまたは複数のパケット処理宛先へ送ることを備える集積回路。
[44] 前記命令は、それぞれのNATマッピングルールに対して前記識別されたパケットのマッチングを試行する前に、前記識別されたパケットについて開放型システム間相互接続(OSI)第2層(L2)処理を実施することをさらに備える[43]に記載の集積回路。
[45] 前記命令は、前記変換されたパケットを前記第2のインターフェースに送る前に、前記変換されたパケットについてL2処理を実施することをさらに備える[43]に記載の集積回路。
[46] 前記インターフェースは、モデムに関連し、少なくとも1つの変換されたパケット宛先は、テザードコンピューティングデバイスに関連する[43]に記載の集積回路。
[47] 前記命令は、前記識別されたパケットのヘッダで指定されるパブリックアドレスおよびポートを識別することをさらに備え、
マッチングを前記試行することは、ユーザデータグラムプロトコル(UDP)または伝送制御プロトコル(TCP)の一方または両方を備えるトランスポートプロトコル、ならびに、前記識別されたパブリックアドレスおよびポートに対応するプライベートアドレスおよびポートを指定するNATマッピングルールの識別を試行することを備える[43]に記載の集積回路。
[48] 前記変換することは、
前記識別されたNATマッピングルールによって与えられる前記プライベートアドレスまたはポートを前記ヘッダが指定するように、前記識別されたパケットの前記ヘッダを修正すること、および、
前記識別されたNATマッピングルールによって与えられる前記プライベートアドレスおよびポートに基づいて前記識別されたパケットの前記ヘッダのチェックサムを修正することを備える[47]に記載の集積回路。
[49] 前記インターフェースは、テザードコンピューティングデバイスに関連し、少なくとも1つの変換されたパケット宛先は、モデムに関連する[43]に記載の集積回路。
[50] 前記命令は、前記識別されたパケットのヘッダで指定されるプライベートアドレスおよびポートを識別することをさらに備え、
マッチングを前記試行することは、UDPまたはTCPの一方または両方を備えるトランスポートプロトコルに従って、前記識別されたプライベートアドレスおよびポートに対応するパブリックアドレスおよびポートを指定するNATマッピングルールの識別を試行することを備える[49]に記載の集積回路。
[51] 前記変換することは、
前記識別されたNATマッピングルールによって与えられる前記パブリックアドレスおよびポートを前記ヘッダが指定するように、前記識別されたパケットの前記ヘッダを修正すること、および、
前記識別されたNATマッピングルールによって与えられる前記パブリックアドレスおよびポートに基づいて前記識別されたパケットの前記ヘッダのチェックサムを修正することを備える[50]に記載の集積回路。
[52] 少なくとも1つのパケット処理宛先は、前記アプリケーションプロセッサを備える[43]に記載の集積回路。

Claims (52)

  1. アプリケーションプロセッサから1つまたは複数のネットワークアドレス変換(NAT)ルールを受信すること、
    結合されたインターフェース上でパケットを取得すること、
    前記取得されたパケットに対応する前記アプリケーションプロセッサから受信されたNATルールの識別を試行すること、
    識別の試行に成功したとき、識別されたNATルールに従って前記取得されたパケットを変換し、前記変換されたパケットを、1つまたは複数の変換されたパケット宛先へ転送すること、および、
    識別の試行に成功しなかったとき、前記取得されたパケットを少なくとも前記アプリケーションプロセッサを含む1つまたは複数のパケット処理宛先へ転送することを備える方法。
  2. NATルールの識別を試行する前に、リンク層プロトコルに従って前記取得されたパケットを処理する動作、または、
    前記変換されたパケットを前記1つまたは複数の変換されたパケット宛先へ転送する前にリンク層プロトコルに従って前記変換されたパケットを処理する動作の1つまたは複数の動作をさらに備える請求項1に記載の方法。
  3. 前記取得することは、前記結合されたインターフェース上でリンク層プロトコルを使用して構築されるパケットを取得することを備え、
    前記取得されたパケットを前記処理することは、ネットワーク層またはトランスポート層の1つまたは複数の層に対応するパケット情報を識別するために、前記取得されたパケットをパーシングすることを備える請求項2に記載の方法。
  4. 前記変換されたパケットを前記処理することは、リンク層プロトコルに従って前記変換されたパケットをフレーム化することを備える請求項1に記載の方法。
  5. 前記結合されたインターフェースは、モデムに関連するプロトコルプロセッサを備え、前記1つまたは複数の変換されたパケット宛先は、前記モデムへのアクセスを共有するテザードコンピューティングデバイスによって使用されるために有効にされたNAT有効化済みテザードネットワーク接続インターフェースを備える請求項1に記載の方法。
  6. 前記取得することは、
    前記モデムが接続されるパブリックネットワークを識別すること、および、
    前記識別されたパブリックネットワークから前記モデムでパケットを取得することを備える請求項5に記載の方法。
  7. 前記取得することは、前記モデムを介して前記パブリックネットワークから前記パケットを、複数のフラグメントで取得することをさらに備える請求項6に記載の方法。
  8. NATルールの識別を試行する前に、取得されたそれぞれのフラグメントを前記1つまたは複数のパケット処理宛先に転送することをさらに備える請求項7に記載の方法。
  9. NATルールの識別を試行する前に、前記取得されたパケットをそのそれぞれのフラグメントから再構築することをさらに備える請求項7に記載の方法。
  10. 前記取得されたパケットのヘッダで指定されるパブリックアドレスおよびポートを識別することをさらに備え、
    NATルールの識別を前記試行することは、ユーザデータグラムプロトコル(UDP)または伝送制御プロトコル(TCP)の一方または両方を備えるトランスポートプロトコル、ならびに、前記識別されたパブリックアドレスおよびポートに対応するプライベートアドレスおよびポートを指定するNATルールを識別することを試行することを備える請求項5に記載の方法。
  11. 前記変換することは、
    前記識別されたNATルールによって与えられる前記プライベートアドレスおよびポートを指定するために、前記取得されたパケットの前記ヘッダを修正すること、および、
    前記プライベートアドレスおよびポートを反映するために、前記取得されたパケットの前記ヘッダのチェックサムを更新することを備える請求項10に記載の方法。
  12. 前記結合されたインターフェースは、モデムへのアクセスを共有するテザードコンピューティングデバイスによって使用されるために有効にされたネットワーク接続インターフェースであり、前記1つまたは複数の変換されたパケット宛先は、前記モデムに関連するインターフェースを備える請求項1に記載の方法。
  13. 前記取得することは、前記ネットワーク接続インターフェースを介して前記テザードコンピューティングデバイスからパケットを取得することを備える請求項12に記載の方法。
  14. 前記取得されたパケットのヘッダで指定されるプライベートアドレスおよびポートを識別することをさらに備え、
    NATルールの識別を前記試行することは、UDPまたはTCPの一方または両方を備えるトランスポートプロトコルに従って、前記識別されたプライベートアドレスおよびポートに対応するパブリックアドレスおよびポートを指定するNATルールを識別することを試行することを備える請求項12に記載の方法。
  15. 識別されたNATルールを前記適用することは、
    前記識別されたNATルールによって与えられる前記パブリックアドレスおよびポートを指定するために、前記取得されたパケットの前記ヘッダを修正すること、および、
    前記パブリックアドレスおよびポートを反映するために、前記取得されたパケットの前記ヘッダのチェックサムを更新することを備える請求項14に記載の方法。
  16. 前記結合されたインターフェースにおいて、前記取得されたパケットによって指定される宛先を識別すること、および、
    前記取得されたパケットによって指定される前記宛先が前記アプリケーションプロセッサに関連する場合、NATルールの識別を試行する前に、前記結合された第1のインターフェースから前記アプリケーションプロセッサに前記取得されたパケットを転送することをさらに備える請求項1に記載の方法。
  17. 前記1つまたは複数のパケット処理宛先は、前記アプリケーションプロセッサを備える請求項1に記載の方法。
  18. アプリケーションプロセッサによって提供される1つまたは複数のネットワークアドレス変換(NAT)ルールに関するデータを格納するメモリと、
    前記アプリケーションプロセッサと本質的に異なる、前記メモリに結合された少なくとも1つのプロセッサであって、結合されたインターフェース上でパケットを受信し、前記受信されたパケットに対応するNATルールの識別を試行し、NATルールの識別に成功したとき、識別されたNATルールに従って前記受信されたパケットを変換し、前記変換されたパケットを、少なくとも1つの変換されたパケット宛先へ転送し、NATルールの識別に成功しなかったとき、前記受信されたパケットを前記アプリケーションプロセッサを含む少なくとも1つのパケット処理宛先へ転送するように構成されるプロセッサと
    を備えるモバイルコンピューティング装置。
  19. 前記少なくとも1つのプロセッサは、NATルールの識別を試行する前に、開放型システム間相互接続(OSI)第2層(L2)プロトコルに従って前記受信されたパケットを処理すること、または、前記変換されたパケットを前記少なくとも1つのパケット処理宛先へ転送する前に、L2プロトコルに従って前記変換されたパケットを処理することの少なくとも一方を実施するようにさらに構成される請求項18に記載のモバイルコンピューティング装置。
  20. 前記少なくとも1つのプロセッサは、前記受信されたパケット内に含まれる第3層(L3)情報または第4層(L4)情報の一方または両方に関するオペレーションを容易にするために、前記結合されたインターフェース上でL2プロトコルを使用して構築されたパケットを受信し、少なくとも部分的に前記受信されたパケットについてL2フレーム化解除を実施することによって、前記受信されたパケットを処理するようにさらに構成される請求項19に記載のモバイルコンピューティング装置。
  21. 前記少なくとも1つのプロセッサは、少なくとも部分的に、L2プロトコルに従って前記変換されたパケットをフレーム化することによって、前記変換されたパケットを処理するようにさらに構成される請求項19に記載のモバイルコンピューティング装置。
  22. 前記結合されたインターフェースは、モデムに関連するプロトコルプロセッサインターフェースであり、前記少なくとも1つの変換されたパケット宛先は、前記モデムへのアクセスを共有するテザードコンピューティングデバイスによって使用されるために有効にされたテザリングリンクに関連するネットワーク接続インターフェースを備える請求項18に記載のモバイルコンピューティング装置。
  23. 前記少なくとも1つのプロセッサは、前記受信されたパケットのヘッダで指定されるパブリックアドレスおよびポートを識別し、少なくとも部分的に、ユーザデータグラムプロトコル(UDP)または伝送制御プロトコル(TCP)の一方または両方を備えるトランスポートプロトコル、ならびに、前記識別されたパブリックアドレスおよびポートに対応するプライベートアドレスおよびポートを指定するNATルールを識別することを試行することによって、NATルールの識別を試行するようにさらに構成される請求項22に記載のモバイルコンピューティング装置。
  24. 前記少なくとも1つのプロセッサは、少なくとも部分的に、前記識別されたNATルールによって与えられる前記識別されたプライベートアドレスおよびポートを指定するために、前記受信されたパケットの前記ヘッダを修正すること、および、前記プライベートアドレスおよびポートを反映するために、前記受信されたパケットの前記ヘッダのチェックサムを更新することによって、識別されたNATルールを適用するようにさらに構成される請求項23に記載のモバイルコンピューティング装置。
  25. 前記結合されたインターフェースは、モデムへのアクセスを共有するテザードコンピューティングデバイスに関連するネットワーク接続インターフェースであり、前記少なくとも1つの変換されたパケット宛先は、前記モデムに関連するインターフェースを備える請求項18に記載のモバイルコンピューティング装置。
  26. 前記少なくとも1つのプロセッサは、前記ネットワーク接続インターフェースを介して前記テザードコンピューティングデバイスからパケットを受信するようにさらに構成される請求項25に記載のモバイルコンピューティング装置。
  27. 前記少なくとも1つのプロセッサは、前記受信されたパケットのヘッダで指定されるプライベートアドレスおよびポートを識別し、少なくとも部分的に、UDPまたはTCPの一方または両方を備えるトランスポートプロトコルに従って、前記識別されたプライベートアドレスおよびポートに対応するパブリックアドレスおよびポートを指定するNATルールを識別することを試行することによって、NATルールの識別を試行するようにさらに構成される請求項25に記載のモバイルコンピューティング装置。
  28. 前記少なくとも1つのプロセッサは、少なくとも部分的に、前記識別されたNATルールによって与えられる前記識別されたパブリックアドレスおよびポートを指定するために、前記受信されたパケットの前記ヘッダを修正すること、ならびに、前記パブリックアドレスおよびポートを反映するために、前記受信されたパケットの前記ヘッダのチェックサムを更新することによって、識別されたNATルールを適用するようにさらに構成される請求項27に記載のモバイルコンピューティング装置。
  29. 前記少なくとも1つのプロセッサは、前記受信されたパケットの終端ポイントを識別し、前記受信されたパケットの前記終端ポイントが前記アプリケーションプロセッサに関連する場合、NATルールの識別を試行する前に、前記結合されたインターフェースから前記アプリケーションプロセッサに前記受信されたパケットを転送するようにさらに構成される請求項25に記載のモバイルコンピューティング装置。
  30. 前記少なくとも1つのパケット処理宛先は、前記アプリケーションプロセッサを備える請求項18に記載のモバイルコンピューティング装置。
  31. 関連するアプリケーションプロセッサからそれぞれのネットワークアドレス変換(NAT)マッピングルールを受信する手段と、
    インターフェースを介して取得されたパケットを識別する手段と、
    受信されたNATマッピングルールに対して前記識別されたパケットのマッチングを試行する手段と、
    マッチングの試行に成功したとき、一致するNATマッピングルールに従って前記識別されたパケットを変換する手段と、
    前記一致するNATマッピングルールが適用されると、前記変換されたパケットを1つまたは複数の変換されたパケット宛先へ送る手段と、
    マッチングの試行に成功しなかったとき、前記識別されたパケットを少なくとも前記アプリケーションプロセッサを含む1つまたは複数のパケット処理宛先へ送る手段とを備える装置。
  32. マッチングを試行する前記手段のオペレーションの前に、前記識別されたパケットについてリンク層処理を実施する手段をさらに備える請求項31に記載の装置。
  33. 前記変換されたパケットを前記1つまたは複数の変換されたパケット宛先に送る前記手段のオペレーションの前に、前記変換されたパケットについてリンク層処理を実施する手段をさらに備える請求項31に記載の装置。
  34. 前記インターフェースは、モデムに関連し、少なくとも1つの変換されたパケット宛先は、前記モデムへのアクセスを共有するテザードコンピューティングデバイスに関連する請求項31に記載の装置。
  35. 識別する前記手段は、
    前記モデムが接続されるパブリックネットワークを識別する手段と、
    前記識別されたパブリックネットワークを通じて前記モデムによって受信されるパケットを識別する手段とを備える請求項34に記載の装置。
  36. 前記識別されたパケットのヘッダで指定されるパブリックアドレスおよびポートを識別する手段をさらに備え、
    マッチングを試行する前記手段は、ユーザデータグラムプロトコル(UDP)または伝送制御プロトコル(TCP)の一方または両方を備えるトランスポートプロトコル、ならびに、前記識別されたパブリックアドレスおよびポートに対応するプライベートアドレスおよびポートを指定するNATマッピングルールの識別を試行する手段を備える請求項34に記載の装置。
  37. 変換する前記手段は、
    前記識別されたNATマッピングルールによって与えられる前記プライベートアドレスおよびポートを前記ヘッダが指定するように、前記識別されたパケットの前記ヘッダを修正する手段と、
    前記識別されたNATマッピングルールによって与えられる前記プライベートアドレスおよびポートに基づいて前記識別されたパケットの前記ヘッダのチェックサムを修正する手段とを備える請求項36に記載の装置。
  38. 前記インターフェースは、モデムへのアクセスを共有するテザードコンピューティングデバイスに関連し、少なくとも1つの変換されたパケット宛先は、前記モデムに関連する請求項31に記載の装置。
  39. 識別する前記手段は、前記テザードコンピューティングデバイスによって通信されるパケットを識別する手段を備える請求項38に記載の装置。
  40. 前記識別されたパケットのヘッダで指定されるプライベートアドレスおよびポートを識別する手段をさらに備え、
    マッチングを試行する前記手段は、UDPまたはTCPの一方または両方を備えるトランスポートプロトコルに従って、前記識別されたプライベートアドレスおよびポートに対応するパブリックアドレスおよびポートを指定するNATマッピングルールの識別を試行する手段を備える請求項38に記載の装置。
  41. 変換する前記手段は、
    前記識別されたNATマッピングルールによって与えられる前記パブリックアドレスおよびポートを前記ヘッダが指定するように、前記識別されたパケットの前記ヘッダを修正する手段と、
    前記識別されたNATマッピングルールによって与えられる前記パブリックアドレスおよびポートに基づいて前記識別されたパケットの前記ヘッダのチェックサムを修正する手段とを備える請求項40に記載の装置。
  42. 少なくとも1つのパケット処理宛先は、前記アプリケーションプロセッサを備える請求項31に記載の装置。
  43. 機械実行可能命令を実行する集積回路であって、前記命令は、
    関連するアプリケーションプロセッサからそれぞれのネットワークアドレス変換(NAT)マッピングルールを受信すること、
    インターフェースを介して取得されたパケットを識別すること、
    それぞれのNATマッピングルールに対して前記識別されたパケットのマッチングを試行すること、
    マッチングの試行に成功したとき、一致するNATマッピングルールに従って前記識別されたパケットを変換すること、
    一致するNATマッピングルールが適用されると、前記変換されたパケットを1つまたは複数の変換されたパケット宛先に送ること、および、
    マッチングの試行に成功しなかったとき、前記識別されたパケットを少なくとも前記アプリケーションプロセッサを含む1つまたは複数のパケット処理宛先へ送ることを備える集積回路。
  44. 前記命令は、それぞれのNATマッピングルールに対して前記識別されたパケットのマッチングを試行する前に、前記識別されたパケットについて開放型システム間相互接続(OSI)第2層(L2)処理を実施することをさらに備える請求項43に記載の集積回路。
  45. 前記命令は、前記変換されたパケットを前記第2のインターフェースに送る前に、前記変換されたパケットについてL2処理を実施することをさらに備える請求項43に記載の集積回路。
  46. 前記インターフェースは、モデムに関連し、少なくとも1つの変換されたパケット宛先は、前記モデムへのアクセスを共有するテザードコンピューティングデバイスに関連する請求項43に記載の集積回路。
  47. 前記命令は、前記識別されたパケットのヘッダで指定されるパブリックアドレスおよびポートを識別することをさらに備え、
    マッチングを前記試行することは、ユーザデータグラムプロトコル(UDP)または伝送制御プロトコル(TCP)の一方または両方を備えるトランスポートプロトコル、ならびに、前記識別されたパブリックアドレスおよびポートに対応するプライベートアドレスおよびポートを指定するNATマッピングルールの識別を試行することを備える請求項43に記載の集積回路。
  48. 前記変換することは、
    前記識別されたNATマッピングルールによって与えられる前記プライベートアドレスまたはポートを前記ヘッダが指定するように、前記識別されたパケットの前記ヘッダを修正すること、および、
    前記識別されたNATマッピングルールによって与えられる前記プライベートアドレスおよびポートに基づいて前記識別されたパケットの前記ヘッダのチェックサムを修正することを備える請求項47に記載の集積回路。
  49. 前記インターフェースは、モデムへのアクセスを共有するテザードコンピューティングデバイスに関連し、少なくとも1つの変換されたパケット宛先は、前記モデムに関連する請求項43に記載の集積回路。
  50. 前記命令は、前記識別されたパケットのヘッダで指定されるプライベートアドレスおよびポートを識別することをさらに備え、
    マッチングを前記試行することは、UDPまたはTCPの一方または両方を備えるトランスポートプロトコルに従って、前記識別されたプライベートアドレスおよびポートに対応するパブリックアドレスおよびポートを指定するNATマッピングルールの識別を試行することを備える請求項49に記載の集積回路。
  51. 前記変換することは、
    前記識別されたNATマッピングルールによって与えられる前記パブリックアドレスおよびポートを前記ヘッダが指定するように、前記識別されたパケットの前記ヘッダを修正すること、および、
    前記識別されたNATマッピングルールによって与えられる前記パブリックアドレスおよびポートに基づいて前記識別されたパケットの前記ヘッダのチェックサムを修正することを備える請求項50に記載の集積回路。
  52. 少なくとも1つのパケット処理宛先は、前記アプリケーションプロセッサを備える請求項43に記載の集積回路。
JP2011516514A 2008-06-23 2009-06-23 マルチプロセッサコンピューティング環境においてデータサービスを管理する方法および装置 Expired - Fee Related JP5536051B6 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US7482508P 2008-06-23 2008-06-23
US61/074,825 2008-06-23
US12/488,104 2009-06-19
US12/488,104 US8638790B2 (en) 2008-06-23 2009-06-19 Method and apparatus for managing data services in a multi-processor computing environment
PCT/US2009/048215 WO2010008819A1 (en) 2008-06-23 2009-06-23 Method and apparatus for managing data services in a multi-processor computing environment

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013044565A Division JP5639211B2 (ja) 2008-06-23 2013-03-06 マルチプロセッサコンピューティング環境においてデータサービスを管理する方法および装置

Publications (3)

Publication Number Publication Date
JP2011526135A JP2011526135A (ja) 2011-09-29
JP5536051B2 JP5536051B2 (ja) 2014-07-02
JP5536051B6 true JP5536051B6 (ja) 2023-11-08

Family

ID=41530232

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2011516514A Expired - Fee Related JP5536051B6 (ja) 2008-06-23 2009-06-23 マルチプロセッサコンピューティング環境においてデータサービスを管理する方法および装置
JP2013044565A Active JP5639211B2 (ja) 2008-06-23 2013-03-06 マルチプロセッサコンピューティング環境においてデータサービスを管理する方法および装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2013044565A Active JP5639211B2 (ja) 2008-06-23 2013-03-06 マルチプロセッサコンピューティング環境においてデータサービスを管理する方法および装置

Country Status (7)

Country Link
US (1) US8638790B2 (ja)
EP (1) EP2294797A1 (ja)
JP (2) JP5536051B6 (ja)
KR (1) KR101209148B1 (ja)
CN (1) CN102067569B (ja)
TW (1) TWI399060B (ja)
WO (1) WO2010008819A1 (ja)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8347074B2 (en) * 2008-06-30 2013-01-01 The Boeing Company System and method for bend-in-the-wire adjacency management
CN101651612A (zh) * 2008-08-15 2010-02-17 深圳富泰宏精密工业有限公司 数据传输系统与方法
CN101931936B (zh) * 2009-06-22 2014-01-01 中兴通讯股份有限公司 业务数据的传输方法和系统、终端、用户数据处理实体
US20110040900A1 (en) * 2009-08-13 2011-02-17 Yepez Roberto Gabriel Host/peripheral local interconnect that is compatible with self-configurable peripheral device
US9083587B2 (en) * 2009-08-21 2015-07-14 Cisco Technology, Inc. Port chunk allocation in network address translation
TW201110789A (en) * 2009-09-10 2011-03-16 Inventec Appliances Corp Hand-held electricnic device and communication method thereof
TW201110644A (en) * 2009-09-10 2011-03-16 Inventec Appliances Corp Hand-held electricnic device and communication method thereof
US10305910B2 (en) 2010-01-15 2019-05-28 Apple Inc. Accessing specialized fileserver
DE102010028974A1 (de) * 2010-05-12 2011-11-17 Vodafone Holding Gmbh Bereitstellung einer Ende-zu-Ende-Verbindung von einer Endeinheit in ein Netz
CN101977244A (zh) * 2010-09-21 2011-02-16 华为终端有限公司 一种控制方法、装置和系统
US8737417B2 (en) * 2010-11-12 2014-05-27 Alcatel Lucent Lock-less and zero copy messaging scheme for telecommunication network applications
US8600403B2 (en) * 2010-12-03 2013-12-03 Qualcomm Incorporated Method and apparatus for configuring and locating a home base station
KR101328779B1 (ko) * 2010-12-24 2013-11-13 주식회사 팬택 이동 단말기, 서버 및 이를 이용한 정보 제공 방법
US9094864B2 (en) 2011-03-02 2015-07-28 Qualcomm Incorporated Architecture for WLAN offload in a wireless device
EP2501111B1 (en) * 2011-03-14 2013-05-01 Research In Motion Limited Method and system for monitoring use of a mobile hotspot function in a wireless device
US8611242B2 (en) * 2011-03-14 2013-12-17 Blackberry Limited Method and system for monitoring use of a mobile hotspot function in a wireless device
US8924585B2 (en) 2011-06-03 2014-12-30 Apple Inc. Method for optimizing transport channels of devices
US20120314693A1 (en) * 2011-06-08 2012-12-13 Broadcom Corporation Method and System of Operating a Hotspot Application in a Wireless Device
US8787381B2 (en) * 2011-06-08 2014-07-22 Broadcom Corporation Quality of service, battery lifetime, and latency in wireless communication devices
US9619417B2 (en) * 2011-06-17 2017-04-11 Alcatel Lucent Method and apparatus for remote delivery of managed USB services via a mobile computing device
US9094462B2 (en) * 2011-07-13 2015-07-28 Qualcomm Incorporated Simultaneous packet data network (PDN) access
US8792486B2 (en) 2011-08-31 2014-07-29 Hewlett-Packard Development Company, L.P. Packet routing within server device enclosure
US8831021B2 (en) 2011-09-25 2014-09-09 Qualcomm Incorporated System and method for dynamically configurable multi-window divergent protocol bridge
US9325519B2 (en) 2011-10-04 2016-04-26 Microsoft Technology Licensing, Llc Distributed proxy for bi-directional network connectivity over point-to-point connection
DE102011121661A1 (de) * 2011-12-19 2013-06-20 Giesecke & Devrient Gmbh Vorrichtung zur Kommunikation mit einem tragbaren Datenträger
CN102438331B (zh) * 2012-01-12 2016-04-13 惠州Tcl移动通信有限公司 一种移动终端通过手机上网的方法及系统
KR101308351B1 (ko) * 2012-02-24 2013-09-17 주식회사 팬택 어플리케이션에 권한을 할당하는 단말기 및 상기 단말기의 권한 할당 방법
CN103379187B (zh) * 2012-04-28 2016-12-14 南京中兴新软件有限责任公司 一种数据处理方法及网关网元
US9529739B2 (en) 2012-07-20 2016-12-27 Par Technology Corporation Communications interface between two non-complimentary communication devices
JP5951393B2 (ja) * 2012-07-26 2016-07-13 京セラ株式会社 携帯通信端末
US9229526B1 (en) * 2012-09-10 2016-01-05 Amazon Technologies, Inc. Dedicated image processor
US20140181172A1 (en) * 2012-12-20 2014-06-26 Brent J. Elliott Offloading tethering-related communication processing
US9367113B2 (en) 2013-01-11 2016-06-14 Qualcomm Incorporated Managing modem power consumption
US20140269542A1 (en) * 2013-03-15 2014-09-18 Jeffrey Brian Kay Media offload for mobile communications applications
EP2784982B1 (en) * 2013-03-25 2020-08-19 Sandvine Corporation System and method for subscriber aware network monitoring
US9143921B2 (en) 2013-09-06 2015-09-22 Qualcomm Incorporated Communicating physical layer wireless parameters over an application programming interface
US9226141B1 (en) * 2013-11-04 2015-12-29 Sprint Communications Company L.P. Identifying unsubscribed tethering in a wireless network
KR101541349B1 (ko) * 2013-11-19 2015-08-05 주식회사 윈스 고성능 네트워크 장비의 패킷 전달 시스템 및 그 전달 방법
US9876758B2 (en) * 2014-01-17 2018-01-23 Qualcomm Incorporated Techniques to propagate SIP/P-CSCF address changes from WAN device to LAN clients
US10637831B2 (en) * 2014-01-31 2020-04-28 Ntrepid, Llc Method and apparatus for transmitting network traffic via a proxy device
US9413659B2 (en) * 2014-06-11 2016-08-09 Cisco Technology, Inc. Distributed network address and port translation for migrating flows between service chains in a network environment
CN105450585B (zh) * 2014-07-24 2019-10-01 阿里巴巴集团控股有限公司 一种信息传输方法及装置
US10244083B2 (en) 2014-10-16 2019-03-26 Intel Corporation Method, apparatus and system for using a user equipment as a small evolved NodeB for a small cell
CN104333478A (zh) * 2014-11-27 2015-02-04 上海斐讯数据通信技术有限公司 交换机配置管理方法及装置
DE102015223229A1 (de) 2015-05-11 2016-11-17 Volkswagen Aktiengesellschaft Verfahren zur Kommunikation zwischen einer Kommunikationseinheit eines Geräts und einer externen Kommunikationseinheit über eine mobile Telefoneinheit
EP3094062B1 (de) * 2015-05-11 2018-08-22 Volkswagen Aktiengesellschaft Verfahren zur kommunikation zwischen einer kommunikationseinheit eines geräts und einer externen kommunikationseinheit über eine mobile telefoneinheit
WO2017127972A1 (zh) * 2016-01-25 2017-08-03 华为技术有限公司 一种数据传输方法以及宿主机
US10310897B2 (en) * 2016-09-30 2019-06-04 Intel Corporation Hardware accelerators and methods for offload operations
TWI639326B (zh) 2016-12-05 2018-10-21 財團法人資訊工業策進會 網路位址轉換伺服器及其網路位址轉換方法
US20180234535A1 (en) * 2017-02-10 2018-08-16 Mediatek Inc. Method and apparatus for communication
KR102324436B1 (ko) * 2017-03-29 2021-11-10 삼성전자 주식회사 테더링 방법 및 이를 구현하는 전자 장치
US10887231B2 (en) * 2018-05-18 2021-01-05 Juniper Networks, Inc. Packet fragment forwarding without reassembly
KR102219943B1 (ko) * 2019-03-13 2021-02-25 주식회사 아이스크림미디어 스마트 마이크 제어 서버 및 시스템
US11451585B2 (en) * 2019-11-13 2022-09-20 Juniper Networks, Inc. Anti-spoof check of IPv4-in-IPv6 fragments without reassembly
US11323360B2 (en) * 2019-12-19 2022-05-03 Juniper Networks, Inc. Sequence number checksum for link state protocols
US11165701B1 (en) 2020-03-31 2021-11-02 Juniper Networks, Inc. IPV6 flow label for stateless handling of IPV4-fragments-in-IPV6
US11570283B1 (en) 2020-07-20 2023-01-31 Juniper Networks, Inc. IPv6 extension header for stateless handling of fragments in IPv6
KR102241501B1 (ko) * 2020-10-26 2021-04-16 (주)한드림넷 이종의 통신 인터페이스를 제어하는 단말의 동작 방법 및 그 장치
EP4243369A4 (en) 2021-03-29 2024-06-19 Samsung Electronics Co., Ltd. ELECTRONIC DEVICE FOR WIRELESS COMMUNICATION AND ITS OPERATING METHOD
KR20220134907A (ko) * 2021-03-29 2022-10-06 삼성전자주식회사 무선 통신을 위한 전자 장치 및 그 동작 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001510947A (ja) 1997-07-10 2001-08-07 マイクロソフト コーポレイション コンピュータシステムにおけるネットワークパケットの高速転送及びフィルタリング
JP2006261867A (ja) 2005-03-16 2006-09-28 Nec Corp ネットワーク、ルータ装置及びそれらに用いるプライベートアドレス間通信方法並びにそのプログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7295532B2 (en) 2001-08-17 2007-11-13 Ixi Mobile (R & D), Ltd. System, device and computer readable medium for providing networking services on a mobile device
US6801528B2 (en) * 2002-07-03 2004-10-05 Ericsson Inc. System and method for dynamic simultaneous connection to multiple service providers
US6985920B2 (en) * 2003-06-23 2006-01-10 Protego Networks Inc. Method and system for determining intra-session event correlation across network address translation devices
TW200605574A (en) * 2004-02-17 2006-02-01 Ginganet Corp Address resolution apparatus, address resolution method and telecommunication system thereof
JP4339184B2 (ja) * 2004-06-07 2009-10-07 パナソニック株式会社 サーバ装置、通信機器、通信システム、通信方法、プログラム及び記録媒体
US7519362B2 (en) * 2004-09-13 2009-04-14 Laperch Richard C Personal wireless gateway and method for implementing the same
KR100689554B1 (ko) 2004-10-07 2007-03-02 삼성전자주식회사 광대역 무선 접속 통신 시스템에서 옥내 및 옥외 무선접속을 제공하는 장치 및 방법
US20060245384A1 (en) * 2005-05-02 2006-11-02 Talukdar Anup K Method and apparatus for transmitting data
US20060274789A1 (en) * 2005-06-07 2006-12-07 Fong Pong Apparatus and methods for a high performance hardware network protocol processing engine
US20070248085A1 (en) * 2005-11-12 2007-10-25 Cranite Systems Method and apparatus for managing hardware address resolution
US8769021B2 (en) * 2006-01-12 2014-07-01 Broadcom Corporation Method and system for light-weight SOAP transport for web services based management
US8250175B2 (en) * 2006-08-02 2012-08-21 Cisco Technology, Inc. Techniques for remapping content requests
JP4758302B2 (ja) 2006-08-30 2011-08-24 アラクサラネットワークス株式会社 ネットワークノード
US8089967B2 (en) * 2007-04-06 2012-01-03 International Business Machines Corporation Modification of a switching table of an internet protocol switch
US20090092136A1 (en) * 2007-10-09 2009-04-09 Broadcom Corporation System and method for packet classification, modification and forwarding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001510947A (ja) 1997-07-10 2001-08-07 マイクロソフト コーポレイション コンピュータシステムにおけるネットワークパケットの高速転送及びフィルタリング
JP2006261867A (ja) 2005-03-16 2006-09-28 Nec Corp ネットワーク、ルータ装置及びそれらに用いるプライベートアドレス間通信方法並びにそのプログラム

Also Published As

Publication number Publication date
CN102067569B (zh) 2014-07-16
KR20110027797A (ko) 2011-03-16
JP2011526135A (ja) 2011-09-29
TW201006184A (en) 2010-02-01
CN102067569A (zh) 2011-05-18
KR101209148B1 (ko) 2012-12-07
US20100014459A1 (en) 2010-01-21
JP5639211B2 (ja) 2014-12-10
TWI399060B (zh) 2013-06-11
JP5536051B2 (ja) 2014-07-02
JP2013153486A (ja) 2013-08-08
US8638790B2 (en) 2014-01-28
EP2294797A1 (en) 2011-03-16
WO2010008819A1 (en) 2010-01-21

Similar Documents

Publication Publication Date Title
JP5536051B6 (ja) マルチプロセッサコンピューティング環境においてデータサービスを管理する方法および装置
US8739179B2 (en) Method and system for low-overhead data transfer
JP4651692B2 (ja) ネットワークトラフィックのインテリジェントロードバランシング及びフェイルオーバー
JP4722157B2 (ja) ネットワークトラフィックのインテリジェントロードバランシング及びフェイルオーバー
JP5711754B2 (ja) スマートクライアントルーティング
JP4840943B2 (ja) ネットワークトラフィックのインテリジェントロードバランシング及びフェイルオーバー
US9473596B2 (en) Using transmission control protocol/internet protocol (TCP/IP) to setup high speed out of band data communication connections
US20130254264A1 (en) Tethering method, computing devices, system and software
US8544025B2 (en) Efficient data transfer on local network connections using a pseudo socket layer
US8484666B2 (en) Optimizations for implementing multi-stack stack hosts
US20090219936A1 (en) Method and system for offloading network processing
US9619272B1 (en) Virtual machine networking
US20120182984A1 (en) Network allocation
US20140379847A1 (en) Accelerated sockets
US20160119166A1 (en) Method and apparatus for providing gateway function
CN115499407A (zh) 使用装置内协议进行装置间联网的系统及方法
US20100205487A1 (en) Information processing apparatus, information processing method, program and information processing system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110209

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120704

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120710

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121010

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130306

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130313

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20130405

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130827

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130830

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131003

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131008

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140423

R150 Certificate of patent or registration of utility model

Ref document number: 5536051

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees