JP2014531880A - データパケット処理のためのシステムおよび方法 - Google Patents

データパケット処理のためのシステムおよび方法 Download PDF

Info

Publication number
JP2014531880A
JP2014531880A JP2014534805A JP2014534805A JP2014531880A JP 2014531880 A JP2014531880 A JP 2014531880A JP 2014534805 A JP2014534805 A JP 2014534805A JP 2014534805 A JP2014534805 A JP 2014534805A JP 2014531880 A JP2014531880 A JP 2014531880A
Authority
JP
Japan
Prior art keywords
data packet
fragment
packet fragment
fragments
nat
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
JP2014534805A
Other languages
English (en)
Other versions
JP5796135B2 (ja
Inventor
アロック・ミトラ
ヴェンカタ・サティシュ・クマール・ヴァンガラ
ロヒット・トリパティ
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2014531880A publication Critical patent/JP2014531880A/ja
Application granted granted Critical
Publication of JP5796135B2 publication Critical patent/JP5796135B2/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/2557Translation policies or rules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching 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/22Alternate routing
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

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

Abstract

効率的なネットワークアドレス変換(NAT)を実行するためのシステムおよび方法を本明細書で説明する。態様によっては、部分的なNAT項目は、データパケットのすべてのIPフラグメントが受信される前にデータパケット用に作成される。さらに、IPフラグメントは、データパケットのすべてのIPフラグメントが受信される前に送信される。態様によっては、NATデバイスにおいてIPフラグメントおよび/またはデータパケット用に一意のIP-IDが生成される。

Description

本出願は、一般に、通信に関し、より詳細には、ネットワークアドレス変換(NAT)機能を使用してインターネットプロトコル(IP)フラグメント(fragment)を効率的に処理するためのシステム、方法、およびデバイス(ルータなど)に関する。
通信デバイス(たとえば、モバイルハンドセット、PDA(携帯情報端末)、パーソナルコンピュータ、スマートフォン、サーバ、またはネットワークを介して通信することができる任意の他の電子デバイス)間で様々なタイプの通信(たとえば、ボイス、データ、マルチメディアサービスなど)を提供するために、通信システムが広く配備される。デバイスは、相互接続されたデバイスのネットワークを介して互いにデータを送信/受信することができる。たとえば、クライアントデバイスは、ネットワークを介してサーバデバイスとデータを交換することができる。
デバイスのIPv4アドレスの限定された可用性のために、クライアントデバイスは、ネットワークアドレス変換(NAT)機能を実行するデバイス(本明細書では「NATデバイス」と呼ぶ)などの別のデバイスを介してネットワークにアクセスする可能性がある。NATデバイスは、クライアントデバイス(ローカルエリアネットワーク(LAN)においてグループ化されている可能性がある)のグループにパブリックドメインアクセスを提供する可能性がある。公衆ネットワークにアクセスするために、各クライアントデバイスが公にルーティングの宛先となるそれ自体のIPv4アドレスを有するのではなく、クライアントデバイスのグループ用のNATデバイスに、公にルーティングの宛先となる単一のIPv4アドレスを割り当てる可能性がある。これは、IPv4アドレスの割当ての節約になる。さらに、NATデバイスを使用すれば、すべてのトラフィックがNATデバイスを通るので、すべてのクライアントデバイスを保護するのを助けるセキュリティプロトコルをNATデバイスに確立することが可能になる。
クライアントデバイスがサーバデバイスと通信するために、クライアントデバイスからサーバデバイスに送られるデータは、NATデバイスを介してルーティングされる。サーバがクライアントデバイスと通信するために、サーバデバイスは、NATデバイスにデータを送り、NATデバイスは、クライアントデバイスにデータを送る。
NATデバイスは、クライアントデバイスとサーバデバイスとの間で交換されるデータのネットワークアドレス変換を実行することができる。NATデバイスは、サーバにデータパケットを送る前に、NATを利用して、クライアントデバイスからのデータパケットのインターネットプロトコル(IP)アドレスを変換することができる。同様に、NATデバイスは、クライアントにデータパケットを送る前に、サーバからのデータパケットのIPアドレスを変換することができる。
たとえば、クライアントデバイスは、クライアントデバイスの各々がローカルネットワーク内で通信するために「プライベート」IPアドレスを使用するローカルネットワークの一部である可能性がある。しかしながら、これらのプライベートIPアドレスは、クライアントデバイスが、インターネット上に存在するサーバデバイスなどの、「公衆」ネットワーク上に存在するデバイスと通信することを可能にしない可能性がある。しかしながら、NATデバイスは、パブリックIPアドレスに関連付けられ、公衆ネットワーク上のデバイスと通信することが可能になる可能性がある。したがって、NATデバイスは、プライベートIPアドレスを有するクライアントデバイスから、公衆ネットワーク上のデバイスを宛先とするデータパケットを受信することができる。NATデバイスは、NATデバイスのパブリックIPアドレスを反映し、公衆ネットワーク上のサーバにデータパケットを送るために、データパケットのプライベートIPアドレスを変換することができる。NATデバイス(たとえば、シンメトリックなNATデバイス)は、たとえば、単一のクライアントデバイスからの複数のトラフィックフローを監視するために、トランスポート層ポート情報などの、データパケット内の他の情報をさらに変換することができる。次いで、サーバは、パブリックIPアドレスを使用するNATデバイスに応答して、データパケットを送ることができる。次いで、NATデバイスは、各応答データパケットがどのクライアントデバイスに属するかを判定し、クライアントデバイスの適切なプライベートIPアドレスを有するために応答データパケットを変換しなければならない。
NATデバイスは、NATを実行することができるように、NATを実行し、データパケットをサーバに送る前に、データパケットのすべてのIPフラグメントがクライアントデバイスからNATに到着する前に待機する必要がある可能性があるが、このことは、NATデバイスにおける遅延過誤通信(delay sin communication)およびメモリバッファリング要件の増大につながる可能性がある。このことは、さらに本明細書で説明するように、最初のIPフラグメントが最後にNATデバイスに到着するという、IPフラグメントがNATデバイスに順序が乱れて到着する場合に特に当てはまる可能性がある。
さらに、場合によっては、同じNATデバイスに関連付けられる2つ以上のクライアントデバイスは、IPデータグラムまたはフラグメントに関する同じIP-IDを使用して、これらのデータグラムまたはフラグメントを同じサーバに送る可能性がある。そのような場合、NATがNATデバイスによって実行された後、データグラムまたはフラグメントがサーバに送られ、サーバは、NATデバイスを介して送られた第1のクライアントデバイスおよび第2のクライアントデバイスからのデータグラムまたはフラグメントを区別することができない可能性がある。このことは、通信の非効率性およびエラーにつながる。したがって、NATを実行するシステムおよび方法の向上が必要となる。
本発明のシステム、方法およびデバイスはそれぞれ複数の態様を有し、それらのうちの単一のものが単独で、その望ましい属性を担うことはない。以下の特許請求の範囲によって表される本発明の範囲を限定することなく、いくつかの特徴がここで簡単に論じられる。この議論を考慮した後で、また特に「発明を実施するための形態」と題するセクションを読んだ後で、本発明の特徴が、効率的なネットワークアドレス変換(NAT)を含む利点をどのようにして提供するのかが理解されよう。
本開示の一実施形態は、ネットワーク内で通信するための方法を提供する。本方法は、インターネットプロトコル(IP)データパケットの一連のデータパケットフラグメントのうちの1つのデータパケットフラグメントを受信するステップを含む。本方法は、一連のデータパケットフラグメント全体を受信する前にデータパケットフラグメントを送信するステップを含む。
本開示の別の実施形態は、ネットワーク内で通信するための方法を提供する。本方法は、第1のトラフィックフローを介して、第1のインターネットプロトコル識別子(IP-ID)を有するデータパケットフラグメントを受信するステップを含む。本方法は、第1のフローに一意の、データパケットフラグメントに関する第2のIP-IDを生成するステップを含む。本方法は、第2のIP-IDを有するデータパケットフラグメントを送信するステップを含む。
本開示の別の実施形態は、ネットワーク内で通信するための装置を提供する。本装置は、インターネットプロトコル(IP)データパケットの一連のデータパケットフラグメントのうちの1つのデータパケットフラグメントを受信するように構成された受信機を含む。本装置は、一連のデータパケットフラグメント全体を受信する前にデータパケットフラグメントを送信するように構成された送信機を含む。
本開示の別の実施形態は、ネットワーク内で通信するための装置を提供する。本装置は、第1のトラフィックフローを介して、第1のインターネットプロトコル識別子(IP-ID)を有するデータパケットフラグメントを受信するように構成された受信機を含む。本装置は、第1のフローに一意の、データパケットフラグメントに関する第2のIP-IDを生成するように構成されたプロセッサを含む。本装置は、第2のIP-IDを有するデータパケットフラグメントを送信するように構成された送信機を含む。
本開示の別の実施形態は、ネットワーク内で通信するための装置を提供する。本装置は、インターネットプロトコル(IP)データパケットの一連のデータパケットフラグメントのうちの1つのデータパケットフラグメントを受信するための手段を含む。本装置は、一連のデータパケットフラグメント全体を受信する前にデータパケットフラグメントを送信するための手段を含む。
本開示の別の実施形態は、ネットワーク内で通信するための装置を提供する。本装置は、第1のトラフィックフローを介して、第1のインターネットプロトコル識別子(IP-ID)を有するデータパケットフラグメントを受信するための手段を含む。本装置は、第1のフローに一意の、データパケットフラグメントに関する第2のIP-IDを生成するための手段を含む。本装置は、第2のIP-IDを有するデータパケットフラグメントを送信するための手段を含む。
本開示の別の実施形態は、命令を含むコンピュータ可読媒体を提供する。本命令は、実行されるとき、装置に、インターネットプロトコル(IP)データパケットの一連のデータパケットフラグメントのうちの1つのデータパケットフラグメントを受信させる。本命令は、実行されるとき、装置に、一連のデータパケットフラグメント全体を受信する前にデータパケットフラグメントを送信させる。
本開示の別の実施形態は、命令を含むコンピュータ可読媒体を提供する。本命令は、実行されるとき、装置に、第1のトラフィックフローを介して、第1のインターネットプロトコル識別子(IP-ID)を有するデータパケットフラグメントを受信させる。本命令は、実行されるとき、装置に、第1のフローに一意の、データパケットフラグメントに関する第2のIP-IDを生成させる。本命令は、実行されるとき、装置に、第2のIP-IDを有するデータパケットフラグメントを送信させる。
ネットワークアドレス変換(NAT)デバイスを介した、プライベートネットワークのデバイスの、公衆ネットワークのデバイスとの例示的な相互動作を示す図である。 部分的なNAT項目を使用してNATを実行するための例示的なプロセスを示すフローチャートである。 IPフラグメントのIP-IDを、そのIPフラグメントに関連するフローに一意の新規のIP-IDと置き換えるための例示的なプロセス300を示すフローチャートである。 図1の例示的なNATデバイスの機能ブロック図である。 図1の別の例示的なNATデバイスの機能ブロック図である。 図1のさらに別の例示的なNATデバイスの機能ブロック図である。
「例示的な」という言葉は、「例、事例、または例示として役に立つこと」を意味するように本明細書では使用される。「例示的な」として本明細書で説明する任意の実施形態は、必ずしも他の実施形態よりも好ましいか、または有利であると解釈されるべきでない。以下の説明は、いかなる当業者でも本発明を作成および使用することができるように提示される。以下の説明では、説明のために、詳細が述べられる。本発明が、これらの具体的な詳細を使用することなく実施され得ることを当業者は諒解するであろうことを諒解されたい。他の事例では、不要な詳細により本発明の説明を不明瞭にすることがないように、よく知られている構造およびプロセスは詳述されない。したがって、本発明は、示される実施形態によって限定されるものではなく、本明細書で開示する原理および特徴に一致する最大の範囲を与えられるものである。
本明細書で説明する技法は、符号分割多元接続(CDMA)ネットワーク、時分割多元接続(TDMA)ネットワーク、周波数分割多元接続(FDMA)ネットワーク、直交FDMA(OFDMA)ネットワーク、シングルキャリアFDMA(SC-FDMA)ネットワーク、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、ワイドエリアネットワーク(WAN)、有線ネットワークなどの様々な通信ネットワークに使用され得る。「ネットワーク」および「システム」という用語は、しばしば互換的に使用される。CDMAネットワークは、Universal Terrestrial Radio Access(UTRA)、cdma2000などの無線技術を実装することができる。UTRAは、広帯域CDMA(WCDMA(登録商標))および低チップレート(LCR)を含む。CDMA2000は、IS-2000、IS-95、およびIS-856規格をカバーする。TDMAネットワークは、Global System for Mobile Communications(GSM(登録商標))などの無線技術を実装することができる。OFDMAネットワークは、Evolved UTRA(E-UTRA)、IEEE 802.9、IEEE 802.16、IEEE 802.20、Flash-OFDMなどの無線技術を実装することができる。UTRA、E-UTRA、およびGSM(登録商標)は、Universal Mobile Telecommunication System(UMTS)の一部である。Long Term Evolution(LTE)は、E-UTRAを使用するUMTSの来るべきリリースである。UTRA、E-UTRA、GSM(登録商標)、UMTS、およびLTEは、「第3世代パートナーシッププロジェクト」(3GPP)という名称の組織からの文書に記載されている。cdma2000は、「第3世代パートナーシッププロジェクト2」(3GPP2)という名称の組織からの文書に記載されている。これらの様々な無線技術および規格は、当技術分野で知られている。
シングルキャリア周波数分割多元接続(SC-FDMA)は、シングルキャリア変調および周波数領域等化を利用する。SC-FDMAは、OFDMAシステムと同様の性能、および本質的に同様の全体的な複雑さを有する。SC-FDMA信号は、その一意のシングルキャリア構造のために、より低いピーク対平均電力比(PAPR)を有する。SC-FDMAは、特に、より低いPAPRが送信電力効率に関してモバイル端末に大幅に利益を与えるアップリンク通信において、大きな関心をひいた。それは現在、3GPP Long Term Evolution(LTE)またはEvolved UTRA(E-UTRA)におけるアップリンク多元接続方式に関する作業仮説である。
ネットワークアドレス変換(NAT)を介してインターネットプロトコル(IP)フラグメントの効率的な処理を実行するシステムおよび方法を本明細書で説明する。態様によっては、NATは、SoftAP(ソフトウェアアクセスポイント)デバイスによって実行され得る。本明細書で説明するNATは、NAT項目にトランスポートヘッダ情報を記憶することを含む、「シンメトリック」タイプのNATである可能性がある。
図1は、NATデバイスを介した、プライベートネットワークのデバイスの、公衆ネットワークのデバイスとの例示的な相互動作を示す。図1は、いくつかの通信デバイス102a〜102c(たとえば、モバイルハンドセット、PDA(携帯情報端末)、パーソナルコンピュータ、スマートフォン、サーバ、またはネットワークを介して通信することができる任意の他の電子デバイス)間の通信をサポートするように構成されたプライベートネットワーク(たとえば、LAN、PAN、WANなど)を示す。デバイス102a〜102cは、プライベートネットワークにおいてプライベートIPアドレスを使用して互いに通信することができる。
通信デバイス102a〜102cは、1つまたは複数の有線またはワイヤレスの通信リンクによって相互接続される可能性がある。通信リンクは、以下のタイプの通信リンクのうちの1つまたは複数を含む可能性がある。すなわち、GSM(登録商標)(Global System for Mobile communications)、UMTS(ユニバーサルモバイル通信システム)、UMTS-TDD(UMTS-時分割複信)、CDMA(符号分割多元接続)、CDMA2000、WCDMA(登録商標) (広帯域CDMA)、TDMA(時分割多元接続)、FDMA(周波数分割多元接続)、1xEV-DO(エボリューション・データ最適化)、Wi-Fi、Wi-Max、Bluetooth(登録商標)、またはIEEE 802.11、電話(たとえば、POTS)、ケーブル、Ethernet(登録商標)、PLC(電力線通信)、または光ファイバーリンク、またはデバイス間の接続を可能にする任意の他のリンク。プライベートネットワークは、より多いまたはより少ない通信デバイス102を含むことができ、通信デバイス102間のリンクの異なる構成が存在する可能性があることに留意されたい。
通信デバイス102は、上述の通信リンクなどの、1つまたは複数のワイヤレスおよび/または有線の通信リンクを介して、プライベートネットワークにおいてNATデバイスのプライベートIPアドレスを使用してNATデバイス104と通信するようにさらに構成され得る。NATデバイス104は、上述の通信リンクなどの、1つまたは複数のワイヤレスおよび/または有線の通信リンクを介して、インターネット105などの公衆ネットワークにさらに接続され得る。NATデバイス104は、SoftAP、アクセスポイント、またはクライアントデバイス102から送信されインターネット105上のデバイス(たとえば、サーバまたは他のデバイス)を宛先とするデータパケットのNATを実行するように構成されたいくつかの他の適切なデバイスである可能性がある。たとえば、クライアントデバイス102は、NATデバイス104にルーティングされるサーバ106aおよび/またはサーバ106bに向けてデータパケット(たとえば、IPデータパケット)を送信することができる。データパケットは、データパケットのソースを示すためにデータパケットを送信したクライアントデバイス102のプライベートIPアドレスを含む可能性がある。NATデバイス104は、プライベートネットワークにおいて通信用に使用されるデータパケットのプライベートIPアドレスを、インターネット上で通信用に使用されるパブリックIPアドレスに変換することができる。パブリックIPアドレスは、NATデバイス104に関連付けられたパブリックIPアドレスである可能性がある。NATデバイス104は、プライベートネットワーク上で通信用に使用されるプライベートポート(private port)などのデータパケットのトランスポートレベル情報を、インターネット105上で通信用に使用されるパブリックポート(public port)にさらに変換することができる。NATデバイス104は、クライアントデバイス102から、サーバ106aおよび/または106bなどのインターネット105上のデバイスにデータパケットをさらに送信することができる。サーバ106aおよび/または106bは、データパケットを処理し、クライアントデバイス102を宛先とする応答データパケットをNATデバイス104に送信することができる。NATデバイス104は、応答データパケットのパブリックIPアドレスを、クライアントデバイス102の適切なプライベートIPアドレスに変換し、応答データパケットをクライアントデバイス102に送信することができる。NATデバイス104は、インターネット105上で通信用に使用されるパブリックポートなどのデータパケットのトランスポートレベル情報を、プライベートネットワーク上で通信用に使用されるプライベートポートにさらに変換することができる。
NATデバイス104は、クライアントデバイス102aからの一連のIPフラグメントとしてデータパケットを受信することができる。態様によっては、NATデバイス104は、NATを実行し、データパケットをその宛先、たとえばサーバ106aに送信する前に、データパケットのすべてのIPフラグメントがNATデバイス104に到着するまで待機する。したがって、NATデバイス104は、メモリ内のIPフラグメントが送信されるまで、それらのIPフラグメントを記憶することができる。これは、IPフラグメントに関するNATを実行するのに必要なトランスポートヘッダ情報(ポート変換に必要である場合がある)がデータパケットの第1のIPフラグメントにのみ含まれ、残りのIPフラグメントには含まれないので、発生する可能性がある。したがって、NATデバイス104は、必要なトランスポートヘッダ情報を判定し、データパケットをNATするために、データパケットのすべてのIPフラグメントを受信するまで待機する。NATデバイス104は、データパケットのNAT項目を作成するために、トランスポートヘッダ情報を他の情報とともに使用する。NAT項目は、NATデバイス104のメモリ上にあるNATデータベースに記憶され得る。次いで、データパケットは、サーバ106aに送信される。NAT項目は、応答を適切なクライアントデバイス102に送信するために応答がどのクライアントデバイス102に関連付けられるかを判定するように、サーバ106aからの応答を受信するとき、NATデバイス104によって使用される。NATデバイス104における各NAT項目は、特定のパケットフロー用(たとえば、ローカルIPアドレス、ローカルポート、ターゲットIPアドレス、ターゲットポート、グローバルIPアドレス、グローバルポート、およびIP-IDなどの同じ特性を有するデータパケット用)である可能性がある。したがって、各NAT項目は、特定のIP/トランスポートパケットフローに対応し、それを識別することができる。
いくつかの態様では、NATデバイス104は、データパケットのすべてのIPフラグメント(たとえば、一連のIPフラグメントのうちの第1のIPフラグメント)がNATデバイス104に到着する前にデータパケットをNATするように構成され得る。したがって、NATデバイス104は、IPフラグメントが(たとえば、クライアント102aから)NATデバイス104に到着するとき、IPフラグメントに関するNATを実行し、パケットのすべてのIPフラグメントがNATデバイス104で受信される前にIPフラグメントが宛先デバイス(たとえば、サーバ106a)に送信される。NATデバイス104において、データパケットの一連のIPフラグメント(たとえば、順番にフラグメント1、2、3、および4)のうちの第1のIPフラグメント(たとえば、1)が、他のIPフラグメント(たとえば、2、3、および4)より前に受信される場合、NATデバイス104は、トランスポートヘッダが第1のIPフラグメントに含まれるので、データパケット用の完全なNAT項目を作成する。完全なNAT項目は、ローカルIPアドレス、ローカルポート、ターゲットIPアドレス、ターゲットポート、グローバルIPアドレス、グローバルポート、およびIP-IDなどの情報を含む可能性がある。
データパケットの第1のIPフラグメント(たとえば、1)が受信される前にデータパケットの異なるIPフラグメント(たとえば、2、3、および/または4)がNATデバイス104で受信される場合、NATデバイス104は、トランスポートヘッダからの情報でなく、IPフラグメントに基づいてNATデバイス104が有する情報のみを含む部分的なNAT項目を作成する。たとえば、部分的なNAT項目は、ローカルIPアドレス、ターゲットIPアドレス、グローバルIPアドレス、グローバルポート、およびIP-IDなどの情報を含む可能性がある。しかしながら、部分的なNAT項目は、完全なNAT項目に含まれるローカルポートおよびターゲットポートが欠落している可能性がある。パケットの第1のIPフラグメントが受信されるとき、NATデバイス104は、部分的なNAT項目を更新して完全なNAT項目にする。部分的なNAT項目の使用は、パケットのすべてのIPフラグメントが宛先に受信されるまで、宛先デバイス(たとえば、サーバ106a)が応答しないことに基づけば、問題があるべきでなく、このことは、サーバ106aが応答する時間までに、NATデバイス104は、完全なNAT項目を有することを意味する。態様によっては、サーバ106aは、パケットのIPフラグメントのすべてを受信する前にインターネット制御メッセージプロトコル(ICMP)エラーメッセージを送信する可能性がある。しかしながら、NATデバイス104は、そのようなICMPエラーメッセージをNATし、これらのエラーメッセージを部分的なNAT項目に基づいて適切なクライアントデバイス102に返送することができる。
部分的なNAT項目の使用により、NATデバイス104は、どのIPフラグメントが部分的なNAT項目にマッチする情報を有するかを判定することによって、異なるクライアントデバイス102からの異なるパケットのIPフラグメントを区別することが可能になる。したがって、NATデバイス104は、IPフラグメントおよび応答がどこにルーティングされるべきかに絶えず注意することができる。さらに、部分的なNAT項目により、サーバ106aなどの宛先デバイスから受信したエラー応答を、部分的なNAT項目内の情報に基づいてクライアントデバイス102に正しくルーティングすることが可能になる。
態様によっては、NATデバイス104は、サーバ106aなどの宛先デバイスに送信するために第1のクライアントデバイス102aから第1のIP-IDを有する第1のIPフラグメントを受信することができ、同じ宛先デバイス、すなわちサーバ106aに送信するために第2のクライアントデバイス102bから第1のIP-IDを有する第2のIPフラグメントを受信することもできる。NATデバイス104は、態様によっては、第1のIPフラグメントと第2のIPフラグメントの両方をNATすることができ、その結果、これらはどちらも、サーバ106aに送信されるとき、同じソースアドレスおよび宛先アドレス(ソースアドレスはNATデバイス104アドレスであり、宛先アドレスはサーバ106aアドレスである)を有する。次いで、サーバ106aが第1のIPフラグメントおよび第2のIPフラグメントを受信するとき、サーバ106aは、ソースアドレス、宛先アドレス、およびIPフラグメントの両方の組に関するIP-IDが同じであるとき、これらのIPフラグメントが異なるパケットに関するものであることを区別することができない。このことにより、サーバ106aにエラーがもたらされる。たとえば、サーバ106aは、IPフラグメントの両方の組が同じクライアントデバイス102からのものであり、したがって、同じパケットの一部であると仮定する。サーバ106aは、IPフラグメントの両方の組を使用し、次いで、単一のパケットを再統合しようとする。このことが、再統合エラーをもたらし、サーバ106aにおいてパケットを欠落させる。
態様によっては、IPフラグメントの異なる組が異なるパケットのものであるとサーバ106aが判定することができない問題を解決するために、NATデバイス104は、パケットの元のIP-IDを生成されたIP-IDと置き換える。たとえば、第1のクライアントデバイス102aは、サーバ106aに送信するために、第1のIP-IDを有するデータパケットフラグメントをNATデバイス104に送信することができる。さらに、第2のクライアントデバイス102bは、サーバ106aに送信するために、第1のIP-IDを有するデータパケットフラグメントをNATデバイス104に送信することができる。したがって、NATデバイス104は、第1のクライアント102aからサーバ106aに送信されたデータパケットに一意の第1の新規のIP-ID、および第2のクライアント102bからサーバ106aに送信されたデータパケットに一意の第2の新規のIP-IDを生成することができる。次いで、NATデバイス104は、第1のクライアントデバイス102aに関するIPフラグメントの第1のIP-IDを第1の新規のIP-IDと置き換え、第2のクライアントデバイス102bに関するIPフラグメントの第1のIP-IDを第2の新規のIP-IDと置き換えることができる。NATデバイス104は、昇順に、ランダムに、擬似ランダムに、ハッシュ関数などでIP-IDを選択するなど、任意の適切なアルゴリズムに基づいて新規のIP-IDを選択することができる。第1の新規のIP-IDおよび第2の新規のIP-IDは各々、第1のIP-IDとは異なる可能性がある。そうでない場合、第1の新規のIP-IDまたは第2の新規のIP-IDのいずれか一方は、第1のIP-IDと同じである可能性があり、第1の新規のIP-IDまたは第2の新規のIP-IDの他方は、第1のIP-IDとは異なる可能性がある。したがって、サーバ106aは、第1のクライアントデバイス102aおよび第2のクライアントデバイス102bの各々からデータパケットに関する異なるIP-IDを有するIPフラグメントを受信し、これらを区別することができる。さらに、態様によっては、部分的なNAT項目により、NATデバイス104は、所与のクライアントデバイス102からの所与のパケットに関するすべてのIPフラグメントが同じIP-IDを有する可能性があるとき、どのIP-IDがどのIPフラグメントのために生成されるかに絶えず注意することが可能になる。
上記で説明したように、部分的なNAT項目の使用により、NATデバイス104は、データパケットのIPフラグメントのすべてがNATデバイス104で受信される前にデータパケットのIPフラグメントを送信することが可能になる場合がある。したがって、NATデバイス104は、送信前にIPフラグメントを記憶し/待ち行列に入れる必要がないので、メモリ要件を低減させる可能性がある。さらに、NATデバイス104は、部分的なNAT項目を利用するとき、データパケットのIPフラグメントの再統合/再フラグメンテーションを実行する必要がない可能性がある。したがって、CPUまたはNATデバイス104のプロセッサによって実行される動作の数は、低減される可能性がある。より小さいCPU使用量は、より小さい電力消費量をもたらす可能性もある。加えて、データパケットは、再統合/フラグメンテーションを回避することによって、少ない遅延量で送信され、したがって、NATデバイス104における処理能力を増大させる。
図2は、部分的なNAT項目を使用してNATを実行するための例示的なプロセス200を示すフローチャートである。ブロック205では、NATデバイス104は、クライアントデバイス102からデータパケットのIPフラグメントを受信する。さらに、ブロック207では、NATデバイス104は、NATデバイス104において対応するNAT項目がすでに存在するデータパケットにIPフラグメントが対応するかどうかを判定する。ブロック207において、対応するNAT項目が存在しないとNATデバイス104が判定する場合、プロセス200は、ブロック209に続く。ブロック207において、対応するNAT項目が存在するとNATデバイス104が判定する場合、プロセス200は、ブロック215に続く。
ブロック209では、NATデバイス104は、データパケットのIPフラグメントがデータパケットの順序の第1のIPフラグメントであるかどうかを判定する。ブロック209において、データパケットのIPフラグメントがデータパケットの順序の第1のIPフラグメントであるとNATデバイス104が判定する場合、プロセスはブロック211に続く。ブロック211では、NATデバイス104は、IPフラグメント内のトランスポートヘッダに基づいてIPフラグメントに関する完全なNAT項目を作成する。ブロック209において、データパケットのIPフラグメントがデータパケットの順序の第1のIPフラグメントでないとNATデバイス104が判定する場合、プロセスはブロック213に続く。ブロック213では、NATデバイス104は、IPフラグメントに関する部分的なNAT項目を作成する。次いで、プロセス200はブロック221に続く。
ブロック215では、対応するNAT項目が完全なNAT項目または部分的なNAT項目であるかどうかをNATデバイス104が判定する。対応するNAT項目が部分的なNAT項目であるとNATデバイス104が判定する場合、プロセス200は、ブロック217に続く。対応するNAT項目が完全なNAT項目であるとNATデバイス104が判定する場合、プロセス200は、ブロック221に続く。
ブロック217では、NATデバイス104は、データパケットのIPフラグメントがデータパケットの順序の第1のIPフラグメントであるかどうかを判定する。データパケットのIPフラグメントがデータパケットの順序の第1のIPフラグメントであるとNATデバイス104が判定する場合、プロセス200はブロック219に続く。ブロック219では、NATデバイス104は、IPフラグメント内のトランスポートヘッダに基づいて部分的なNAT項目を完全なNAT項目に変換する。次いで、プロセス200はブロック221に続く。データパケットのIPフラグメントがデータパケットの順序の第1のIPフラグメントでないとNATデバイス104が判定する場合、プロセス200はブロック221に続く。
ブロック221では、NATデバイス104は、IPフラグメントのNATを実行する。NATデバイス104は、ブロック223に続くとき、IPフラグメントをその宛先(たとえば、サーバ106a)に送信する。
図3は、IPフラグメントのIP-IDを、そのIPフラグメントに関連するフローに一意の新規のIP-IDと置き換えるための例示的なプロセス300を示すフローチャートである。ブロック305では、NATデバイス104は、第1のトラフィックフローを介して、第1のIP-IDを有するIPフラグメントを受信する。NATデバイス104は、ブロック310に続くとき、第1のトラフィックフローに一意のIPフラグメントに関する第2のIP-IDを生成する。さらに、ブロック315では、NATデバイス104は、たとえば部分的なNAT項目または完全なNAT項目の一部として、第1のIP-IDの第2のIP-IDへのマッピングを記憶する。次に、ブロック320では、NATデバイス104は、第2のIP-IDを使用してIPフラグメントのNATを実行する。さらに、ブロック325では、NATデバイス104は、IPフラグメントをその宛先(たとえば、サーバ106a)に送信する。
プロセス200および300に様々なステップを加えるか、またはこれらのステップから様々なステップを省略することができることを当業者は認識されたい。さらに、プロセス200および300の様々なステップは、上述のものとは異なる順序で実行され得る。
図4は、図1の例示的なNATデバイス104の機能ブロック図である。NATデバイス104は、本明細書で説明する様々な方法を実装するように構成され得るデバイスの一例である。NATデバイス104は、AP、またはSoftAPとして動作するモバイルフォンなどのコンピューティングデバイスを含み得る。
NATデバイス104は、NATデバイス104の動作を制御するプロセッサ405を含み得る。プロセッサ405は中央処理装置(CPU)と呼ばれることもある。読取り専用メモリ(ROM)とランダムアクセスメモリ(RAM)の両方を含み得るメモリ406は、命令およびデータをプロセッサ405に与える。メモリ406の一部分は不揮発性ランダムアクセスメモリ(NVRAM)をも含み得る。プロセッサ405は、一般に、メモリ406内に記憶されたプログラム命令に基づいて論理および算術演算を実行する。メモリ406中の命令は、本明細書で説明する方法を実装するように実行可能であり得る。
NATデバイス104が送信ノードとして実装または使用されるとき、プロセッサ405は、上記でさらに詳細に説明したように、データを生成し、データを処理し、NATデバイス104の動作を制御するように構成され得る。
NATデバイス104が受信ノードとして実装または使用されるとき、プロセッサ405は、上記でさらに詳細に説明したように、データを生成し、データを処理し、NATデバイス104の動作を制御するように構成され得る。
プロセッサ405は、1つもしくは複数のプロセッサとともに実装される処理システムの構成要素を備え、または構成要素であってよい。1つまたは複数のプロセッサは、汎用マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラム可能ゲートアレイ(FPGA)、プログラム可能論理デバイス(PLD)、コントローラ、状態機械、ゲート論理、個別ハードウェア構成要素、専用ハードウェア有限状態機械、または情報の算出もしくは他の操作を実施し得る他のどの適したエンティティのどの組合せを有しても実装され得る。
処理システムは、ソフトウェアを記憶するための機械可読媒体も含み得る。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語などの名称にかかわらず、任意のタイプの命令を意味すると広く解釈されたい。命令は、(たとえば、ソースコード形式、バイナリコード形式、実行可能コード形式、または任意の他の適切なコード形式の)コードを含み得る。命令は、1つまたは複数のプロセッサによって実行されると、処理システムに、本明細書で説明される様々な機能を実行させる。
NATデバイス104は、NATデバイス104と遠隔地との間のデータの送信および受信を可能にするために送信機410および/または受信機414を含み得る、筐体408をも含み得る。送信機410および受信機414は、組み合わされて送受信機415になり得る。アンテナ416は、筐体408に取り付けられ、送受信機415に電気的に結合され得る。NATデバイス104は、(図示しない)複数の送信機、複数の受信機、複数の送受信機、および/または複数のアンテナも含み得る。送信機410は、データをワイヤレスに送信するように構成され得る。受信機414は、データを受信するように構成され得る。
NATデバイス104は、送受信機415によって受信された信号のレベルを検出および定量化するために使用され得る信号検出器418も含み得る。信号検出器418は、総エネルギー、シンボルごとのサブキャリア当たりのエネルギー、電力スペクトル密度および他の信号などの信号を検出し得る。NATデバイス104は、信号を処理する際に使用するためのデジタル信号プロセッサ(DSP)440も含み得る。DSP440は、送信用のパケットを生成するように構成され得る。
NATデバイス104は、いくつかの態様では、ユーザインターフェース444をさらに含み得る。ユーザインターフェース444は、キーパッド、マイクロホン、スピーカ、および/またはディスプレイを備え得る。ユーザインターフェース444は、NATデバイス104のユーザに情報を伝え、および/またはユーザから入力を受信するどの要素または構成要素も含み得る。
NATデバイス104の様々な構成要素は、バスシステム446によって互いに結合され得る。バスシステム446は、データバス、ならびに、たとえばデータバスに加えて、電力バス、制御信号バス、および状態信号バスを含み得る。NATデバイス104の構成要素は、何らかの他の機構を使用して、互いに結合されるか、または互いに入力を受け入れるか、もしくは提供することができることを、当業者は諒解するであろう。
いくつかの別個の構成要素が図4に示されているが、構成要素のうち1つまたは複数は、組み合わされるか、または共通して実装され得ることを当業者は理解するであろう。たとえば、プロセッサ405は、プロセッサ405に関して上述した機能を実装するだけでなく、信号検出器418および/またはDSP440に関して上述した機能を実装するのにも使用され得る。さらに、図4に示される構成要素の各々は、複数の別個の要素を使用して実装され得る。
図4は、NATデバイス104の一例にすぎないことを理解されたい。NATデバイス104は、上記で説明したように、任意の適切な通信デバイスを含むこともでき、データおよび/または命令を記憶するためのメモリ、命令を実行し本明細書で説明する方法を実行するためのプロセッサ、およびデータを通信するための送受信機(または受信機および送信機)、および/または何らかの他の通信インターフェースをさらに含むことができる。
図5は、図1の別の例示的なNATデバイスの機能ブロック図である。デバイス500は、図2に関して説明した様々な動作を実行するための手段505、510、515、および520を含む。
図6は、図1のさらに別の例示的なNATデバイスの機能ブロック図である。デバイス600は、図3に関して説明した様々な動作を実行するための手段606、610、616、および620を含む。
本明細書で「第1の」、「第2の」などの呼称を使用した要素へのいかなる参照も、全体的にそれらの要素の量または順序を限定しないことを理解されたい。むしろ、これらの呼称は、2つ以上の要素の間、または要素の例の間を区別する都合のよい方法として本明細書で使用され得る。したがって、第1のおよび第2の要素への参照は、2つの要素のみがそこで採用され得ること、または何らかの形で第1の要素が第2の要素に先行しなければならないことを意味しない。また、別段に記載されていない限り、1組の要素は1つまたは複数の要素を含む場合がある。加えて、説明または特許請求の範囲に使用される「A、B、またはCのうちの少なくとも1つ」という形式の用語法は、「AもしくはBもしくはC、またはこれらの要素の任意の組合せ」を意味する。
情報および信号は、多種多様な技術および技法のいずれかを使用して表され得ることを当業者は理解するであろう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
本明細書で開示した例に関連して説明した様々な例示的な論理ブロック、モジュール、回路、方法、およびアルゴリズムは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを当業者はさらに諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、方法、およびアルゴリズムを、上記では概してそれらの機能に関して説明してきた。そのような機能をハードウェアとして実装するか、またはソフトウェアとして実装するかどうかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
本明細書で開示する例に関して説明する様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または、本明細書で説明する機能を実行するように設計されたそれらの任意の組合せで、実装または実行することができる。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSP通信と連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装することもできる。
本明細書で開示する態様に関して説明する方法またはアルゴリズムのステップは、直接ハードウェアで具体化されるか、プロセッサによって実行されるソフトウェアモジュールで具体化されるか、またはその2つの組合せで具体化され得る。ソフトウェアモジュール(たとえば、実行可能な命令および関連データを含む)および他のデータは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態のコンピュータ可読記憶媒体などのデータメモリ中に存在し得る。サンプル記憶媒体は、プロセッサが記憶媒体から情報(たとえば、コード)を読み取り、記憶媒体に情報を書き込むことができるように、たとえば、コンピュータ/プロセッサ(便宜上「プロセッサ」として本明細書では呼ぶ場合がある)などのマシンに結合され得る。サンプル記憶媒体はプロセッサと一体であり得る。プロセッサおよび記憶媒体はASIC中に存在し得る。ASICはユーザ機器中に存在し得る。代替として、プロセッサおよび記憶媒体は、ユーザ機器中に個別の構成要素として存在し得る。さらに、態様によっては、任意の適切なコンピュータプログラム製品は、本開示の態様のうちの1つまたは複数に関する(たとえば、少なくとも1つのコンピュータによって実行可能な)コードを含むコンピュータ可読媒体を含み得る。態様によっては、コンピュータプログラム製品は、実装材料を含み得る。
1つまたは複数の例示的な実施形態では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装する場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または、命令もしくはデータ構造の形態の所望のプログラムコードを搬送もしくは記憶するために使用でき、コンピュータによってアクセスできる、任意の他の媒体を含み得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使われる場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フレキシブルディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザで光学的にデータを再生する。したがって、一部の態様において、コンピュータ可読媒体は、非一時的コンピュータ可読媒体(たとえば、有形媒体)を含み得る。さらに、一部の態様において、コンピュータ可読媒体は、一時的コンピュータ可読媒体(たとえば、信号)を含み得る。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
開示される例の上記の説明は、いかなる当業者も本発明を作成または使用することができるように提供される。これらの例に対する様々な修正が当業者には容易に明らかになることになり、本明細書に定義する一般原理は、本発明の趣旨または範囲を逸脱することなく他の例に適用され得る。したがって、本発明は、本明細書に示す例に限定されるものではなく、本明細書で開示する原理および新規の特徴と一致する最大の範囲を与えられるものである。
102a デバイス
102b デバイス
102c デバイス
104 NATデバイス
105 インターネット
106a サーバ
106b サーバ
405 プロセッサ
406 メモリ
408 筐体
410 送信機
414 受信機
415 送受信機
416 アンテナ
418 信号検出器
440 デジタル信号プロセッサ(DSP)
444 ユーザインターフェース
446 バスシステム

Claims (36)

  1. ネットワーク内で通信するための方法であって、
    インターネットプロトコル(IP)データパケットの一連のデータパケットフラグメントのうちの1つのデータパケットフラグメントを受信するステップと、
    前記一連のデータパケットフラグメント全体を受信する前に前記データパケットフラグメントを送信するステップと
    を含む、方法。
  2. 前記一連のデータパケットフラグメント全体を受信する前に前記データパケットフラグメントを送信するステップは、前記一連のデータパケットフラグメントのうちの第1の順序のデータパケットフラグメントを受信する前に前記データパケットフラグメントを送信するステップを含む、請求項1に記載の方法。
  3. 前記受信するステップおよび送信するステップは、ソフトウェアアクセスポイント(SoftAP)によって実行される、請求項1に記載の方法。
  4. 前記一連のデータパケットフラグメント全体を受信する前に前記データパケットフラグメントのネットワークアドレス変換を実行するステップをさらに含む、請求項1に記載の方法。
  5. データパケットフラグメントに関する部分的なネットワークアドレス変換項目を作成するステップをさらに含む、請求項4に記載の方法。
  6. 前記部分的なネットワークアドレス変換項目は、ローカルIPアドレス、ターゲットIPアドレス、グローバルIPアドレス、グローバルポート、およびIP識別子(IP-ID)を含む、請求項5に記載の方法。
  7. ネットワーク内で通信するための方法であって、
    第1のトラフィックフローを介して、第1のインターネットプロトコル識別子(IP-ID)を有するデータパケットフラグメントを受信するステップと、
    前記第1のトラフィックフローに一意の、前記データパケットフラグメントに関する第2のIP-IDを生成するステップと、
    前記第2のIP-IDを有する前記データパケットフラグメントを送信するステップと
    を含む、方法。
  8. 前記受信するステップおよび生成するステップは、ソフトウェアアクセスポイント(SoftAP)によって実行される、請求項7に記載の方法。
  9. 前記データパケットフラグメントのネットワークアドレス変換を実行するステップをさらに含む、請求項7に記載の方法。
  10. ネットワーク内で通信するための装置であって、
    インターネットプロトコル(IP)データパケットの一連のデータパケットフラグメントのうちの1つのデータパケットフラグメントを受信するように構成された受信機と、
    前記一連のデータパケットフラグメント全体を受信する前に前記データパケットフラグメントを送信するように構成された送信機と
    を含む、装置。
  11. 前記一連のデータパケットフラグメント全体を受信する前に前記データパケットフラグメントを送信するステップは、前記一連のデータパケットフラグメントのうちの第1の順序のデータパケットフラグメントを受信する前に前記データパケットフラグメントを送信するステップを含む、請求項10に記載の装置。
  12. 前記装置は、ソフトウェアアクセスポイント(SoftAP)を含む、請求項10に記載の装置。
  13. 前記一連のデータパケットフラグメント全体を受信する前に前記データパケットフラグメントのネットワークアドレス変換を実行するように構成されたプロセッサをさらに含む、請求項10に記載の装置。
  14. 前記プロセッサは、前記データパケットフラグメントに関する部分的なネットワークアドレス変換項目を作成するようにさらに構成される、請求項13に記載の装置。
  15. 前記部分的なネットワークアドレス変換項目は、ローカルIPアドレス、ターゲットIPアドレス、グローバルIPアドレス、グローバルポート、およびIP識別子(IP-ID)を含む、請求項14に記載の装置。
  16. ネットワーク内で通信するための装置であって、
    第1のトラフィックフローを介して、第1のインターネットプロトコル識別子(IP-ID)を有するデータパケットフラグメントを受信するように構成された受信機と、
    前記第1のトラフィックフローに一意の、前記データパケットフラグメントに関する第2のIP-IDを生成するように構成されたプロセッサと、
    前記第2のIP-IDを有する前記データパケットフラグメントを送信するように構成された送信機と
    を含む、装置。
  17. 前記装置は、ソフトウェアアクセスポイント(SoftAP)を含む、請求項16に記載の装置。
  18. 前記プロセッサは、前記データパケットフラグメントのネットワークアドレス変換を実行するようにさらに構成される、請求項16に記載の装置。
  19. ネットワーク内で通信するための装置であって、
    インターネットプロトコル(IP)データパケットの一連のデータパケットフラグメントのうちの1つのデータパケットフラグメントを受信するための手段と、
    前記一連のデータパケットフラグメント全体を受信する前に前記データパケットフラグメントを送信するための手段と
    を含む、装置。
  20. 前記一連のデータパケットフラグメント全体を受信する前に前記データパケットフラグメントを送信するための手段は、前記一連のデータパケットフラグメントのうちの第1の順序のデータパケットフラグメントを受信する前に前記データパケットフラグメントを送信するための手段を含む、請求項19に記載の装置。
  21. 前記装置は、ソフトウェアアクセスポイント(SoftAP)を含む、請求項19に記載の装置。
  22. 前記一連のデータパケットフラグメント全体を受信する前に前記データパケットフラグメントのネットワークアドレス変換を実行するための手段をさらに含む、請求項19に記載の装置。
  23. 前記データパケットフラグメントに関する部分的なネットワークアドレス変換項目を作成するための手段をさらに含む、請求項22に記載の装置。
  24. 前記部分的なネットワークアドレス変換項目は、ローカルIPアドレス、ターゲットIPアドレス、グローバルIPアドレス、グローバルポート、およびIP識別子(IP-ID)を含む、請求項23に記載の装置。
  25. ネットワーク内で通信するための装置であって、
    第1のトラフィックフローを介して、第1のインターネットプロトコル識別子(IP-ID)を有するデータパケットフラグメントを受信するための手段と、
    前記第1のトラフィックフローに一意の、前記データパケットフラグメントに関する第2のIP-IDを生成するための手段と、
    前記第2のIP-IDを有する前記データパケットフラグメントを送信するための手段と
    を含む、装置。
  26. 前記装置は、ソフトウェアアクセスポイント(SoftAP)を含む、請求項25に記載の装置。
  27. 前記データパケットフラグメントのネットワークアドレス変換を実行するための手段をさらに含む、請求項26に記載の装置。
  28. 命令を記憶するコンピュータ可読記憶媒体であって、前記命令は、実行されるとき、装置に、
    インターネットプロトコル(IP)データパケットの一連のデータパケットフラグメントのうちの1つのデータパケットフラグメントを受信させ、
    前記一連のデータパケットフラグメント全体を受信する前に前記データパケットフラグメントを送信させる、
    コンピュータ可読記憶媒体。
  29. 前記一連のデータパケットフラグメント全体を受信する前に前記データパケットフラグメントを送信するステップは、前記一連のデータパケットフラグメントのうちの第1の順序のデータパケットフラグメントを受信する前に前記データパケットフラグメントを送信するステップを含む、請求項28に記載のコンピュータ可読記憶媒体。
  30. 前記装置は、ソフトウェアアクセスポイント(SoftAP)を含む、請求項28に記載のコンピュータ可読記憶媒体。
  31. 前記命令は、実行されるとき、さらに、前記装置に、前記一連のデータパケットフラグメント全体を受信する前に前記データパケットフラグメントのネットワークアドレス変換を実行させる、請求項28に記載のコンピュータ可読記憶媒体。
  32. 前記命令は、実行されるとき、さらに、前記装置に、前記データパケットフラグメントに関する部分的なネットワークアドレス変換項目を作成させる、請求項31に記載のコンピュータ可読記憶媒体。
  33. 前記部分的なネットワークアドレス変換項目は、ローカルIPアドレス、ターゲットIPアドレス、グローバルIPアドレス、グローバルポート、およびIP識別子(IP-ID)を含む、請求項32に記載のコンピュータ可読記憶媒体。
  34. 命令を記憶するコンピュータ可読記憶媒体であって、前記命令は、実行されるとき、装置に、
    第1のトラフィックフローを介して、第1のインターネットプロトコル識別子(IP-ID)を有するデータパケットフラグメントを受信させ、
    前記第1のトラフィックフローに一意の、前記データパケットフラグメントに関する第2のIP-IDを生成させ、
    前記第2のIP-IDを有する前記データパケットフラグメントを送信させる、
    コンピュータ可読記憶媒体。
  35. 前記装置は、ソフトウェアアクセスポイント(SoftAP)を含む、請求項34に記載のコンピュータ可読記憶媒体。
  36. 前記命令は、実行されるとき、さらに、前記装置に、前記データパケットフラグメントのネットワークアドレス変換を実行させる、請求項34に記載のコンピュータ可読記憶媒体。
JP2014534805A 2011-10-06 2012-10-05 データパケット処理のためのシステムおよび方法 Expired - Fee Related JP5796135B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/267,863 2011-10-06
US13/267,863 US9185073B2 (en) 2011-10-06 2011-10-06 Systems and methods for data packet processing
PCT/US2012/059103 WO2013052898A2 (en) 2011-10-06 2012-10-05 Systems and methods for data packet processing

Publications (2)

Publication Number Publication Date
JP2014531880A true JP2014531880A (ja) 2014-11-27
JP5796135B2 JP5796135B2 (ja) 2015-10-21

Family

ID=47178877

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014534805A Expired - Fee Related JP5796135B2 (ja) 2011-10-06 2012-10-05 データパケット処理のためのシステムおよび方法

Country Status (7)

Country Link
US (1) US9185073B2 (ja)
EP (2) EP3065380A1 (ja)
JP (1) JP5796135B2 (ja)
CN (1) CN103918246B (ja)
IN (1) IN2014CN02179A (ja)
TW (1) TW201330554A (ja)
WO (1) WO2013052898A2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9046898B2 (en) * 2011-02-24 2015-06-02 Google Inc. Power-preserving communications architecture with long-polling persistent cloud channel for wireless network-connected thermostat
US9258272B1 (en) * 2011-10-21 2016-02-09 Juniper Networks, Inc. Stateless deterministic network address translation
US9178846B1 (en) 2011-11-04 2015-11-03 Juniper Networks, Inc. Deterministic network address and port translation
US10218756B2 (en) 2012-01-06 2019-02-26 Comcast Cable Communications, Llc Streamlined delivery of video content
US10250559B2 (en) * 2013-09-19 2019-04-02 Cisco Technology, Inc. Reversible mapping of network addresses in multiple network environments
CN103580930A (zh) * 2013-11-22 2014-02-12 汉柏科技有限公司 一种控制网络管理的方法和系统
US9525661B2 (en) * 2014-09-05 2016-12-20 Alcatel Lucent Efficient method of NAT without reassemling IPV4 fragments
US9917882B2 (en) 2014-11-30 2018-03-13 Sonicwall Inc. Transparent deferred spooling store and forward based on standard network system and client interface
US10313486B2 (en) * 2015-01-07 2019-06-04 Sonicwall Inc. Optimizing transfer of fragmented packetized data
CN104836700B (zh) * 2015-04-17 2018-11-06 中国科学院信息工程研究所 基于ipid和概率统计模型的nat主机个数检测方法
US9813526B2 (en) 2015-05-26 2017-11-07 Sonicwall Inc. Reducing transmission pathway lengths within a distributed network
US10129207B1 (en) 2015-07-20 2018-11-13 Juniper Networks, Inc. Network address translation within network device having multiple service units
US10158735B2 (en) 2015-08-07 2018-12-18 Sonicwall Inc. Read-ahead on signed connections with unsigning, inline, transparent proxies
US10469446B1 (en) 2016-09-27 2019-11-05 Juniper Networks, Inc. Subscriber-aware network address translation
TWI622947B (zh) * 2017-01-13 2018-05-01 飛捷科技股份有限公司 複合式行動支付系統及其行動端點銷售模組
CN109525518B (zh) * 2018-12-25 2021-01-12 北京物芯科技有限责任公司 一种基于fpga的ip报文网络地址转换方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000253064A (ja) * 1999-03-02 2000-09-14 Nec Software Chugoku Ltd IPv4−IPv6変換装置
JP2003244233A (ja) * 2002-01-25 2003-08-29 Microsoft Corp インターネット鍵交換データパケットをフラグメント化および再組み立てするための方法および装置
JP2005012698A (ja) * 2003-06-20 2005-01-13 Furukawa Electric Co Ltd:The データ中継方法、データ中継装置およびその装置を用いたデータ中継システム
JP2005507211A (ja) * 2001-10-25 2005-03-10 クゥアルコム・インコーポレイテッド 高データ速度転送のために多数の無線通信チャンネルをまとめることによって、ipパケットを転送する方法及びシステム
JP2011024180A (ja) * 2009-06-17 2011-02-03 Alaxala Networks Corp インタネットワーク装置

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5815516A (en) 1996-04-05 1998-09-29 International Business Machines Corporation Method and apparatus for producing transmission control protocol checksums using internet protocol fragmentation
DE69837872T2 (de) * 1997-09-19 2008-04-10 Hitachi, Ltd. Vorrichtung und Verfahren zur Verbindungsvermittlung und -steuerung
US6157955A (en) * 1998-06-15 2000-12-05 Intel Corporation Packet processing system including a policy engine having a classification unit
US6453357B1 (en) 1999-01-07 2002-09-17 Cisco Technology, Inc. Method and system for processing fragments and their out-of-order delivery during address translation
US6711164B1 (en) 1999-11-05 2004-03-23 Nokia Corporation Method and apparatus for performing IP-ID regeneration to improve header compression efficiency
US7389358B1 (en) 2000-09-13 2008-06-17 Fortinet, Inc. Distributed virtual system to support managed, network-based services
US20030009561A1 (en) * 2001-06-14 2003-01-09 Sollee Patrick N. Providing telephony services to terminals behind a firewall and /or network address translator
US7298745B2 (en) 2001-11-01 2007-11-20 Intel Corporation Method and apparatus to manage packet fragmentation with address translation
US20040184455A1 (en) * 2003-03-19 2004-09-23 Institute For Information Industry System and method used by a gateway for processing fragmented IP packets from a private network
JP4279288B2 (ja) * 2003-06-19 2009-06-17 三菱電機株式会社 無線基地局装置と移動体通信システム
US8325717B2 (en) * 2003-07-30 2012-12-04 Foundry Networks, Llc Method and system for IP fragmentation handling
US7474619B2 (en) * 2004-07-22 2009-01-06 International Business Machines Corporation Method and apparatus for providing fragmentation at a transport level along a transmission path
US7801127B2 (en) * 2004-10-25 2010-09-21 Ineoquest Technologies, Inc. System and method for creating a sequence number field for streaming media in a packet-based networks utilizing internet protocol
JP2007124487A (ja) * 2005-10-31 2007-05-17 Toshiba Corp 通信制御方法
WO2008100536A1 (en) * 2007-02-12 2008-08-21 Mushroom Networks Inc. Access line bonding and splitting methods and appartus
WO2008126228A1 (ja) 2007-03-29 2008-10-23 Fujitsu Limited 通信装置
CN100562020C (zh) * 2007-03-30 2009-11-18 华为技术有限公司 检测方法、统计分析服务器以及检测系统
US7769015B2 (en) 2007-09-11 2010-08-03 Liquid Computing Corporation High performance network adapter (HPNA)
US20090300207A1 (en) * 2008-06-02 2009-12-03 Qualcomm Incorporated Pcc enhancements for ciphering support
US8320372B2 (en) 2008-06-23 2012-11-27 Alcatel Lucent Processing of packet fragments
US20100097931A1 (en) * 2008-10-21 2010-04-22 Shakeel Mustafa Management of packet flow in a network
JP4715937B2 (ja) * 2009-03-06 2011-07-06 ブラザー工業株式会社 端末装置とコンピュータプログラム
US7944924B2 (en) * 2009-04-16 2011-05-17 Alcatel-Lucent Canada Inc. Handling of received implicit null packets
EP2337274B1 (en) * 2009-12-17 2014-03-05 Alcatel Lucent Method for processing a plurality of data and switching device for switching communication packets
CN102148878B (zh) * 2010-02-05 2013-08-14 中国移动通信集团公司 Ip地址分配方法、系统和设备
US20120044354A1 (en) * 2010-08-22 2012-02-23 Fred Cheng Versatile dual mode wireless camera hotspot device
US8825839B2 (en) * 2010-11-24 2014-09-02 Unisys Corporation Snooping DNS messages in a server hosting system providing overlapping address and name spaces
CN102232288A (zh) * 2011-04-15 2011-11-02 华为技术有限公司 一种网络地址转换方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000253064A (ja) * 1999-03-02 2000-09-14 Nec Software Chugoku Ltd IPv4−IPv6変換装置
JP2005507211A (ja) * 2001-10-25 2005-03-10 クゥアルコム・インコーポレイテッド 高データ速度転送のために多数の無線通信チャンネルをまとめることによって、ipパケットを転送する方法及びシステム
JP2003244233A (ja) * 2002-01-25 2003-08-29 Microsoft Corp インターネット鍵交換データパケットをフラグメント化および再組み立てするための方法および装置
JP2005012698A (ja) * 2003-06-20 2005-01-13 Furukawa Electric Co Ltd:The データ中継方法、データ中継装置およびその装置を用いたデータ中継システム
JP2011024180A (ja) * 2009-06-17 2011-02-03 Alaxala Networks Corp インタネットワーク装置

Also Published As

Publication number Publication date
EP2764681A2 (en) 2014-08-13
CN103918246A (zh) 2014-07-09
TW201330554A (zh) 2013-07-16
US9185073B2 (en) 2015-11-10
EP3065380A1 (en) 2016-09-07
JP5796135B2 (ja) 2015-10-21
WO2013052898A2 (en) 2013-04-11
IN2014CN02179A (ja) 2015-05-29
WO2013052898A3 (en) 2013-07-11
EP2764681B1 (en) 2016-08-10
US20130091303A1 (en) 2013-04-11
CN103918246B (zh) 2017-10-27

Similar Documents

Publication Publication Date Title
JP5796135B2 (ja) データパケット処理のためのシステムおよび方法
EP3542557B1 (en) Application based intelligent edge computing in a low power wide area network environment
AU2014363687B2 (en) Establishing a data transfer connection
US11528346B2 (en) IPv4 communications using 6lowpan header compression mechanisms
US20160142310A1 (en) Methods and apparatus to route traffic in a virtual private network
US20170063699A1 (en) Method and apparatus for configuring multi-paths using segment list
JP2021500802A (ja) 第1のパケットアプリケーション分類のためのシステムおよび方法
US20170332439A1 (en) Extending the range of mesh networks
US10080177B2 (en) Unlicensed spectrum offload architecture for small-cell base stations
US11258704B2 (en) Technologies for managing network traffic through heterogeneous networks
US10021512B2 (en) Switching to advertising locator after connection establishment
WO2021096798A1 (en) Domain name system as an authoritative source for multipath mobility policy
WO2016197689A1 (zh) 处理报文的方法、装置和系统
JP2014528227A (ja) 電力低減ワイヤレス通信のためのシステムおよび方法
CN107241378B (zh) 跨异构网络的统一数据建网的设备和方法以及存储介质
US20170048790A1 (en) Methods and apparatuses for providing quality of service dependent services to mobile clients in multiple backhaul environments
US20150016464A1 (en) Methods and systems for receiving and transmitting internet protocol (ip) data packets
JP2016208513A (ja) 中継方法並びに対応する通信ネットワークデバイス、システム、コンピュータプログラム及びコンピュータ可読記憶媒体
US9742797B2 (en) Method for incorporating network port hopping with minimal or no impact to underlying systems
WO2015192705A1 (zh) 接入装置及其执行的将用户设备接入网络的方法
JP5076169B2 (ja) 通信システム
CN114556894A (zh) 用于分组转发控制协议消息捆绑的方法、装置和计算机程序产品
WO2020048622A1 (en) A method, apparatus & computer program
WO2016197832A1 (zh) 报文处理方法、设备和系统
US8571022B1 (en) Packet filtering by session setup association in a wireless communication system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150323

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150623

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150625

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150817

R150 Certificate of patent or registration of utility model

Ref document number: 5796135

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees