JP2012528535A - 可変フレームサイズを有するリンク上でより高いデータ転送速度をサポートする装置および方法 - Google Patents

可変フレームサイズを有するリンク上でより高いデータ転送速度をサポートする装置および方法 Download PDF

Info

Publication number
JP2012528535A
JP2012528535A JP2012513213A JP2012513213A JP2012528535A JP 2012528535 A JP2012528535 A JP 2012528535A JP 2012513213 A JP2012513213 A JP 2012513213A JP 2012513213 A JP2012513213 A JP 2012513213A JP 2012528535 A JP2012528535 A JP 2012528535A
Authority
JP
Japan
Prior art keywords
datagram
bundled
frame
bundle header
frame payload
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
JP2012513213A
Other languages
English (en)
Other versions
JP5591922B2 (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 JP2012528535A publication Critical patent/JP2012528535A/ja
Application granted granted Critical
Publication of JP5591922B2 publication Critical patent/JP5591922B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/03Protocol definition or specification 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/325Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information

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)

Abstract

可変フレームサイズを使用する通信リンク内でIPデータグラムを効果的に通信する方法および装置は、IPデータグラムをデータペイロードとしてバンドルする。現在のフレームサイズ内に納めることのできるデータグラムの数が求められ、バンドルヘッダ自体がバンドルされたIPデータグラムに関連することを示し、バンドルされたIPデータグラムをアンパックするための情報を含むバンドルヘッダが生成される。バンドルヘッダは、1つまたは複数のIPデータグラムに連結され、フレームがバンドルされたIPデータグラムを含むことをフレームヘッダにおいて示さずにフレームペイロードとして通信されるデータペイロードを形成する。バンドルヘッダ内の情報は、受信側プロセッサがフレームヘッダの修正を必要とせずにフレームペイロードからIPデータグラムを抽出するのを可能にする。各IPデータグラムの前にバンドルヘッダが位置してよく、あるいは1つのバンドルヘッダがフレームペイロード内にマップIPデータグラムを含んでよい。

Description

本発明は、デジタル通信方法に関し、より詳細には、可変フレームサイズをサポートするリンク上で高データ転送速度をサポートする方法に関する。
有線および無線のデータ通信技術が進歩することによって、通信ネットワークのデータ転送速度が急激に速くなるともに通信ネットワークの容量が急激に増大している。携帯デバイスおよびパーソナルコンピュータによってアクセス可能な新しい高速データリンクが実施されている。新しい高速データリンク用の通信リンク層フレームは、かなり大きく、数キロバイト以上であることが多い。リンク層フレームのサイズが大きくなっているにもかかわらず、フレームで転送されるインターネットプロトコル(IP)パケットのサイズが制限されているため、データスループットが制限される可能性がある。すべての実用的な目的のために、IPパケットの最大サイズは約1514バイトである。この限界は、IEEE標準802.3、すなわちインターネット上の最も一般的なリンク層によって課される。大部分のリンク層はフレーム当たり1つのIPデータグラムを送信する必要があるため、多くの未使用帯域幅がある。
データスループットは、フレームを送信できる周波数によっても制限される。高速リンクによって可能となるフレームサイズは可変であってよく、一方、フレームレートは一定であってよい。このことは通常、フレームレートが一定であるが、リンク層フレームのサイズが現在の無線周波数(RF)条件によって決定される無線リンクに当てはまる。RF条件が好ましい条件であるとき、無線リンクは大きなフレームサイズを実施することができる。このようなネットワークでは、大きなデータブロックを一定のフレームレートで送信することによって(リンク層で)高データ転送速度が実現される。しかし、一定のフレームレートは、通常1514バイトまでのサイズに限定されるIPデータグラムを転送するときには制限要因となる。この場合、RF条件が好ましい条件であるために物理層がより大きなフレームをサポートできる場合でも、IPデータ送信は1514バイトのパケットに限定され、それによって、任意の1つのフレームによって送信できるデータの量が限定される。したがって、リンク層フレームレートが100μs(すなわち、10,000フレーム/秒)である場合、毎秒40メガバイト(MBPS)でデータを送信できる高速リンクはそれにもかかわらず15MBPSのIPデータに限定される。
様々な実施態様は、可変フレームサイズをサポートするリンク上でIPデータをより効果的に送信するのを可能にし、それによって、リンク条件がより大きなフレームサイズの使用を許容する条件であるときにより高いデータ送信速度を可能にする。通信リンクによって使用されている現在のフレームサイズが求められる。現在のフレームサイズ内に納めることのできる送信保留中のIPデータグラムの数が求められる。バンドルヘッダ自体がバンドルされたIPデータグラムに関連することを示す情報を含むバンドルヘッダが生成される。バンドルヘッダはまた、バンドルされたIPデータグラムをアンパックするための情報も含む。バンドルヘッダは、1つまたは複数のIPデータグラムに連結されてデータペイロードを形成する。データペイロードは次に、フレームがバンドルされたIPデータグラムを含むことをフレームヘッダにおいて示さずに、通信リンクフレームのペイロードとして通信される。バンドルヘッダ内に納められた情報は、フレームペイロードがバンドルされたIPデータグラムを含むことを示し、受信側プロセッサがペイロードからIPデータグラムを抽出するのを可能にする。各IPデータグラムにバンドルヘッダを納めてよく、あるいは単一のバンドルヘッダが、フレームペイロード内にバンドルされたすべてのIPデータグラムのマップを含んでよい。
本明細書に組み込まれ、本明細書の一部を構成する添付の図面は、本発明の例示的な実施形態を示し、上記の概略的な説明および以下の詳細な説明とともに、本発明の特徴を説明する働きをする。
IPデータグラムをリンクフレームとしてバンドルする方法に関して、バンドリングが有効化されている状態を示すメッセージパケット図である。 IPデータグラムをリンクフレームとしてバンドルする方法に関して、バンドリングが無効化されている状態を示すメッセージパケット図である。 IPデータグラムをリンクフレームとしてバンドルする実施形態に関して、バンドリングが有効化されている状態を示すメッセージパケット図である。 IPデータグラムをリンクフレームとしてバンドルする実施形態に関して、バンドリングが無効化されている状態を示すメッセージパケット図である。 IPデータグラムをリンクフレームとしてバンドルする他の実施形態に関して、バンドリングが有効化されている状態を示すメッセージパケット図である。 IPデータグラムをリンクフレームとしてバンドルする他の実施形態に関して、バンドリングが無効化されている状態を示すメッセージパケット図である。 図2Aに示されている実施形態によってIPデータグラムをリンクフレームとしてバンドルする実施形態の方法を示すプロセスフロー図である。 図2Aに示されている実施形態によってIPデータグラムをリンクフレームとしてバンドルする他の実施形態の方法を示すプロセスフロー図である。 図2Aに示されている実施形態によってフォーマットされたバンドルされたIPデータグラムをアンパックする実施形態の方法を示すプロセスフロー図である。 図3Aに示されている実施形態によってIPデータグラムをリンクフレームとしてバンドルする実施形態の方法を示すプロセスフロー図である。 図3Aに示されている実施形態によってフォーマットされたバンドルされたIPデータグラムをアンパックする実施形態の方法を示すプロセスフロー図である。 実施形態の実装例を示すハードウェア/ソフトウェアアーキテクチャを示す図である。 様々な実施形態を実施するのに適した携帯デバイスの構成要素ブロック図である。 様々な実施形態を実施するのに適したコンピュータの構成要素ブロック図である。 様々な実施形態を実施するのに適した通信ネットワークを示す通信システム図である。
様々な実施形態について添付の図面を参照して詳しく説明する。同じあるいは同様な部分を参照するときは、可能なかぎり図面全体にわたって同じ参照番号を使用している。特定の例および実装例に対する参照は例示のためのものであり、本発明の範囲または特許請求の範囲を制限するものではない。
この説明では、用語「例示的な」は、「一例または例示として働くこと」を意味するために本明細書で使用されている。本明細書で「例示的な」として説明するどの実装例も、必ずしも他の実装例と比べて好ましいかあるいは有利であると解釈すべきではない。
本明細書では、用語「コンピュータ」および「コンピュータシステム」は、たとえばパーソナルコンピュータ、ラップトップコンピュータ、携帯コンピューティングデバイス(たとえば、携帯電話、携帯情報端末(PDA)、パームトップコンピュータ、および多機能携帯デバイス)、メインフレームコンピュータ、サーバ、および統合コンピュータシステムを含む、存在している可能性があるかあるいは将来開発されるプログラム可能な任意の形態のコンピュータを包含するものである。コンピュータは通常、メモリ回路に結合されたソフトウェアプログラム可能なプロセッサを含むが、以下に図10および図11を参照して説明する構成要素をさらに含んでよい。
通信分野で公知のように、インターネットを介してIPフォーマットで送信される情報は、通常、IPデータグラムで送信されるパケットに分割される。IPデータグラムは、宛先受信側アドレスを含むヘッダがその前に位置するデータペイロードと、宛先プロセッサが関連するペイロード同士をリンクして元のメッセージを再構成するのを可能にするペイロードに関する情報とを含む。
IPデータグラムは、それぞれの特定の種類の通信リンクに固有の通信パケットでインターネットを含む様々なネットワークを通じて通信される。通信分野では、通信リンクおよびソフトウェアプロセスならびにこのリンクに関連する通信リンクプロトコルは、「リンク層」と呼ばれている。通常、通信リンクは、ヘッダで始まり、かつエンドマーカで終わってよく、フレームと呼ばれるブロック単位でデータを通信する。説明を明確にするために、用語「フレーム」は、通信リンク層フレームを指すために実施形態の説明および特許請求の範囲で使用されている。フレームは、本明細書では「フレームヘッダ」と呼ばれるヘッダ部分と、本明細書では「フレームペイロード」と呼ばれるデータペイロード部分とを含む。リンク層によってIPデータグラムが送信される際、IPデータグラムはフレームペイロードに含められる。各フレームは、物理層を介して送信され、物理層とは、ワイヤ上で伝達される一連の電気信号または1つのトランシーバから他のトランシーバに送信される一連のRF信号として情報を送信する回路をいう。
IPプロトコルは、IPデータグラムが宛先コンピュータに至る途中で様々な異なる通信リンク(すなわち、様々なリンク層)を通過するのを許可する。たとえば、IPデータグラムは、無線通信リンクを介して受信器に伝えられてよく、受信器がIPデータグラムをローカルエリアネットワークを介してサーバに通信し、サーバにおいて、IPデータグラムはインターネットを介して宛先コンピュータに送信される。このようにIPデータグラムの組み立ておよび処理を、IPデータグラムを送信する通信リンクから分離することができるため、インターネットの普及に役立っている。
高速データリンクによってもたらされるパーソナルコンピューティングデバイスへの瞬時ブロードバンド通信の将来性は現在、IPデータグラムのサイズが制限されていることによって制限されている。IPデータグラムがIEEE標準802.3によって事実上約1514バイトに制限されているため、最大送信データ転送速度は通信リンクのフレームレートによって制限されている。RF条件が許せばフレームサイズを大きくすることができるが、通常の無線リンクは一定のフレームレートを有する。その結果、100μs(すなわち、10,000フレーム/秒)のフレームレートで最大40MBPSを送信することができる無線データリンクは、それでも15MBPSのIPデータに制限される。
この制限を解消するために、様々な実施形態は、複数のIPデータグラム(すなわち、ヘッダを含むIPパケット)を高速データリンクを介して送信できる単一の大きなフレームとしてバンドルするのを可能にする。高速データリンク内のフレームのサイズは一定でなく、リンクの品質(たとえば、通信リンク上のノイズまたは受信されたフレームで検出されるエラー率)に応じてフレームのサイズが変わることが多いため、単一のフレームとしてバンドルできるIPデータグラムの数をフレームごとに調整することができる。各実施形態は、リンク層ハードウェア/ソフトウェアまたはIP層ソフトウェアに対する影響を最小限に抑えてバンドリングを実現し、通信インフラストラクチャまたは基本リンクプロトコルをそれほど変更する必要なしに高速リンクを介したIP通信速度を著しく速くすることができる。
概して、様々な実施形態は、IPプロトコル層によってIPデータグラムがアセンブルされてからこれらのIPデータグラムが送信できるようにリンク層に転送されるまでの間にバンドリングプロセスを実施することによってバンドリングを実現することができる。これによって、ヘッダを変更することも、IPデータグラムまたはフレームを処理することもなしにIPデータグラムバンドリングを実現することができる。このバンドリングは、いくつかのIPデータグラムおよび1つまたは複数のバンドルヘッダをバンドルされたデータペイロードとしてアセンブルすることによって実現され、その後、バンドルされたデータペイロードは単一のフレームペイロード内で送信される。該1つまたは複数のバンドルヘッダは、バンドルされたデータペイロード内のある位置に位置し、情報を含み、それによって、フレームペイロードをアンパックする受信側プロセッサは、各IPデータグラムを認識し分離することができる。バンドルされたデータペイロードから回復された分離された各IPデータグラムを次にIPプロトコル層ソフトウェアに転送し、データグラムが通常どおりに(すなわち、フレーム当たり1IPデータリンク)受信された場合と同様にIPプロトコル層ソフトウェアによって処理することができる。リンク層から受信され、バンドルされたIPデータグラムを含まないデータペイロードは、影響を受けず、したがって、通常どおりに処理される。リンク層から受信され、単一のIPデータグラムのみを含むデータペイロード(すなわち、バンドルされたIPデータグラムを送信しなかったフレームのペイロード)も同様に影響を受けず、したがって、現在のプロトコルおよび実装例に適合する通常の方法で処理される。
本明細書で説明する実施形態は、フレームペイロード内のバンドルされたIPデータグラムを識別し区分する2つの異なる方法を含む。第1の方法では、バンドルされたデータペイロードは、各IPデータグラムに隣接して位置するバンドルヘッダを含み、それによって、後続のバイトブロックが、バンドルヘッダに指定されているように、IPデータグラムを含むことを処理ソフトウェアが認識することができる。第2の方法では、バンドルされたデータペイロードは、すべてのIPデータグラムの前に位置し、ペイロードをIPデータグラムのバンドルとして識別し、処理ソフトウェアが受信されたバンドルされたデータペイロードをそれを構成するIPデータグラムとして解析できるようにするマップを生成する単一のバンドルヘッダを含む。以下の説明はこの2つの実施形態の方法に焦点を当てるが、特許請求の範囲に定義された本発明の要旨および範囲から逸脱せずにIPデータグラムをバンドルするために可変フレームとして実施することができる。
高速リンク上のデータスループットを高める1つの手法は、複数のIPデータグラムをフレームとしてバンドルする手法である。しかし、このような単純な手法では、データスループットを高めずに低下させるとともに実装例をより複雑にする可能性が高い実施上のいくつかの問題が生じる。可変長フレームはバンドルされたIPデータグラムのサイズに一致せず、したがって、IPデータグラムを単にバンドルすると、データグラムがフラグメント化され、別個のフレームとして送信される。IPパケットのフラグメント化を実現することができるが、このような方法は、送信前処理および受信後処理に関して複雑性を増す可能性が高く、フラグメント化されたパケットを再アセンブルできるようにするには追加のデータを送信する必要がある。フレームサイズが可変であり、通信リンク特性に応じて頻繁に変わることができるため、フレームとしてバンドルされる一定数のIPデータグラムを指定することによってこの問題を解消することはできない。また、フレームサイズが2つのIPデータグラムの長さよりも小さくなったときに、IPデータグラムをバンドルすると全体的なデータスループットが低下する。したがって、リンク設定の交渉または構成に応じてIPバンドリングを実施するといった、IPバンドリングを常に実施する解決策は望ましくない。
IPデータグラムをフレームごとにフレームとしてバンドルする第1の方法が図1Aおよび図1Bに示されている。この手法では、フレームのペイロード2がバンドルされたIPデータグラムを含むかどうかを識別するビットが、リンクフレームヘッダ1内に予約される。このためにフレームヘッダ内の任意の利用可能なビットを使用してよい。図1Aに示されているフレームヘッダ1に示されているように、この「フレームバンドルリング有効化」ビットがセットされ、バンドリングが有効化されたことを示す場合、フレームペイロード2は2つ以上のIPデータグラム4、6を含む。各IPデータグラム4、6の前に、後続のIPデータグラムの長さを示すバンドルヘッダ3、5が位置する。この構造では、受信側プロセッサは、受信されたフレームペイロードがバンドルされたIPデータグラムを含むことをフレームヘッダ内の特定のフレームバンドリング有効化ビットによって通知され、その情報から、後続のいくつのバイトがバンドルされたIPデータグラム4に関連しているかを判定するためにフレームペイロード2内のバンドルヘッダ3を探すよう通知される。したがって、受信側プロセッサは、フレームペイロード2を読み取り、バンドルヘッダ3、5情報を使用して対応するIPデータグラム4、6を取り出すことができる。IPパケットバンドリングが無効化されているフレームでは、フレームヘッダ7内でフレームバンドリング有効化ビットがセットされず、それによって、図1Bに示されているように、フレームペイロードが単一のIPデータグラム4しか含まないことを受信側プロセッサが通知される。
この手法は、IPv4またはIPv6以外の転送プロトコルを使用することのできるいくつかのIPデータグラムのバンドリングが可能になるが、リンク層が、バンドリングが行われていることを示すようにフレームヘッダを定義する必要がある。このフレームヘッダフレームバンドリング有効化ビットでは、既存のリンク層ソフトウェアおよびハードウェアと後方互換性を有さない場合があるリンク層を修正する必要がある。また、この手法では、フレームヘッダ内にこのような目的のスペアビットを有さないプロトコル(たとえば、EVDO)ではフレームヘッダにビットを追加する必要がある。無線通信リンクはヘッダのサイズを最小限に抑えるように構成されているので、無線リンク層の場合、このような余分なビットを追加すると問題が生じることがある。無線リンク層の場合、1つビットを追加すると、リンク層ヘッダをずっと大きくするか、あるいは該ヘッダの処理が著しく複雑になる。したがって、図1Aおよび図1Bに示されている手法は、フレームごとのIPデータグラムのバンドリングを可能にするが、この手法の採用または性能を制限する欠点を有する。
様々な実施形態は、リンクフレームヘッダを修正することも、IPデータグラムをフレームペイロードとしてバンドルする負担をリンク層ソフトウェアにかけることもない他の解決策を提供する。2つの実施形態がそれぞれ、図2A、2Bおよび図3A、3Bに示されている。
図2Aおよび図2Bに示されている第1の実施形態では、IPデータグラム16、20はそれぞれのバンドルヘッダ14、18とバンドルされ、次のフレーム10のペイロードとして送信できるようにリンク層に供給されるデータブロックを形成する。これらの図は、フレーム10をフレームヘッダ12およびフレームペイロード13を含むブロックとして示している。フレームペイロード13は、バンドリングがフレーム10で実施されるときはいくつかのIPデータグラム16、20を含み(図2A)、また、バンドリングが実施されないときは単一のIPデータグラム16を含む(図2B)。フレームペイロード13がバンドルされたIPデータパケットを含むことを示すのに必要なフレームヘッダ12の修正は行われない。その代わり、各IPデータグラム16、20は、バンドルヘッダ自体を識別する先行するバンドルヘッダ14、18とアセンブルされる。特定の実装例では、バンドルヘッダ14の最上位ビットが、バンドルヘッダがIPデータグラムヘッダではないことを示す「1」に設定される。これは、Ipv4プロトコルおよびIpv6プロトコルでは、IPパケットヘッダの最上位ビットを「0」に等しくする必要があるからである。特に、Ipv4では、第1のニブル(すなわち、最初の4ビット)を「4」(すなわち、0100)に等しくする必要があり、Ipv6では、最初のニブルを「6」(すなわち、0110)に等しくする必要がある。したがって、最上位ビットを「1」に設定することによって、バンドルヘッダ14のコンテンツを読み取って、フレームペイロード13を解析してバンドルされたIPデータグラムを回復するにはどうすればよいかを判定するよう受信側プロセッサに通知することができる。たとえば、バンドルヘッダ14内の第1のビットが「1」に設定された場合、2バイトバンドルヘッダ14内の残りの15ビットを使用して後続のIPデータグラム16の長さを識別することができる。他の実装例では、第1のニブルが「4」(すなわち、0100)または「6」(すなわち、0110)以外の値に等しくてよい。あるいは、バンドルヘッダ14は、IPデータグラム16の末尾に対応するオフセット、次のバンドルヘッダ18の先頭に対応するオフセット、または受信側プロセッサがIPデータグラムを構成する後続のバイトを判定し選択するのに使用することのできる他のある値を識別してもよい。
一実施形態では、バンドルヘッダは長さが2バイトであり、それによってバンドルヘッダの長さを最小限に抑え、一方、バンドルヘッダ14、18内の第1のビットが「1」に設定され、IPデータグラムバンドリングを示している場合に約32キロバイトの長さまでのIPデータグラムのバンドリングを可能にする。しかし、バンドルヘッダは、本発明の趣旨から逸脱せずに長さが1バイトであってよく、あるいは2バイトより長くてもよい。
受信側プロセッサは、各バンドルヘッダ14、18内の情報を使用して、コンピュータソフトウェアアーキテクチャ内でただちにIP層に転送できるIPデータグラムとして指定された数のバイトを選択することができる。受信側プロセッサは、フレームペイロードから1つのIPデータグラムをコピーした後、次のバンドルヘッダ18に問い合わせ、次のIPデータグラム20の長さを求め、この情報を使用して指定された数のバイトを選択することができる。このプロセスは次に、フレームシンボルの末尾またはフレームペイロードの末尾を示す指示に達するまで継続する。図2Aは、2つのIPデータグラムのみを示しているが、フレームの長さおよび含まれるIPデータグラムの様々な長さに応じてより多くのIPデータグラムを含めてもよい。
IPデータグラムバンドリングが実施されない場合、リンクフレームのペイロードは、図2Bに示されているように、単に単一のIPデータグラム16を含む。この場合、リンクフレームヘッダ12は、バンドルされたIPデータグラムを含むフレームの場合とまったく同じである。したがって、フレームヘッダ内にフレームバンドリング有効化フラグはセットされないのでリンク層ソフトウェアを変更する必要はない。
図3Aおよび図3Bに示されている第2の実施形態では、複数のIPデータグラム16、20を単一のフレーム22内にバンドルし、フレームペイロード13の先頭に単一のバンドルマップヘッダ24を含めてよい。図3Aおよび図3Bは、フレーム22を、フレームヘッダ12およびフレームペイロード13を含むブロックとして示している。フレームペイロード13は、バンドリングがフレーム22で実施されるときはいくつかのIPデータグラム16、20を含み(図3A)、また、バンドリングが実施されないときは単一のIPデータグラム16を含む(図3B)。この実施形態では、バンドルヘッダ24は、フレームペイロード13の残りの部分内のバンドルされたすべてのIPデータグラム16、20のマップを含む。バンドルヘッダ24は、バンドルヘッダ自体をバンドルされたIPデータグラム用のバンドルヘッダとして識別する情報を含む。特定の実装例では、バンドルヘッダ24内の最上位ビットが、バンドルヘッダ24がIPパケットヘッダではないことを示す「1」に設定される。この場合も、これは、Ipv4プロトコルおよびIpv6プロトコルでは、IPパケットヘッダの最上位ビットを「0」に等しくする必要があるからである。最上位ビットを「1」に設定することによって、バンドルヘッダ24のコンテンツを読み取って、フレームペイロード13を解析するにはどうすればよいかを判定するよう受信側プロセッサに通知することができる。たとえば、第1のビットが「1」に設定された場合、第1のバイト内の次の7ビットを使用してバンドルヘッダ24の残りの部分の長さを識別することができ、バンドルヘッダ24内の後続のバイトの識別された数を使用して、フレームペイロード13の残りの部分に含まれるバンドルされたIPデータグラムへのマップを生成することができる。このマップは、含まれる各IPデータグラム16、20の長さのリスト、含まれる各IPデータグラムのオフセット(たとえば、ペイロード先頭からのオフセットまたはバンドルヘッダ24の末尾からのオフセット)、またはフレームペイロードの残りの部分を解析して含まれるすべてのIPデータグラム16、20を回復するために受信側プロセッサが使用することのできる他の何らかの情報の形であってよい。
バンドルヘッダ24の長さは、リンクフレームペイロード13内に含まれるIPデータグラムの数に応じて異なる。リンクフレームペイロード13内に含まれるIPデータグラムが多ければ多いほど、バンドルヘッダ24内のマップに含めなければならない情報が多くなる。
第1の実施形態と同様に、IPデータグラムバンドリングが実施されない場合、リンクフレームのペイロードは、図3Bに示されているように、単に単一のIPデータグラム16を含む。この場合、リンクフレームヘッダ12は、バンドルされたIPデータグラムを含むフレームの場合とまったく同じである。この場合も、フレームヘッダ内にバンドリングインジケータフラグをセットするためにリンク層ソフトウェアを変更する必要はない。
図2Aおよび図3Aに示されている各実施形態は、可変長フレーム内でのIPデータグラムのバンドリングを可能にし、有線条件またはRF条件が好ましいときに、送信側プロセッサと受信側プロセッサの両方でリンク層ソフトウェアを修正する必要なしに、データスループットを大幅に高めることができる。フレームペイロードがバンドルされたIPデータグラムを含むかどうかの指示がペイロード内のバンドルヘッダに納められているため、受信側プロセッサが、受信する各フレームにバンドルされたIPデータグラムが含まれているかどうかを事前に知る必要はない。これによって、フレームごとにバンドリングが可能になる。したがって、リンク層またはIP層ソフトウェアをそれほど複雑にせずに、通信リンクの性能が変化したときにバンドリングの実装例および各フレーム内にバンドルされたIPデータグラムの数を調整することができる。
図2Aおよび図3Bに示されているようにリンクフレームペイロードを生成することは、IPプロトコル層とリンク層の間で動作する中間層または「シム」層のような、送信側プロセッサ内のソフトウェアで容易に実施することができる。このソフトウェアアーキテクチャ実装例については以下に図9を参照して詳しく説明する。
フレームごとにIPデータグラム用のリンクフレームペイロードを生成する例示的な方法が図4に示されている。1つまたは複数のIPデータグラムを通信する際、ソフトウェアによって構成されたコンピュータプロセッサは、リンク層によって実施される現在のフレームサイズを判定することができる(ステップ40)。この判定は、現在のフレームサイズを示すバッファのような、リンク層を制御するのに使用されるバッファ内に含まれる値を検査するか、あるいはリンク層ソフトウェアにこの値を問い合わせることによって実施されてよい。現在のフレームサイズの判定(ステップ40)は、数秒おきのような周期的に実施されても、IPデータグラムが送信されるときに必ず実施されても、あるいはある数のIPデータグラムが送信された後に実施されてもよい。フレームサイズを頻繁にチェックすることにより、この方法は、バンドルされたIPデータグラムの数を、リンク層によって実施される現在のフレームサイズに、正確に一致させることができる。
プロセッサは、現在のフレームサイズ値を使用して、現在のフレームサイズ内に納まる送信用の待ち行列に記憶されたIPデータグラムの数を求めることができる(ステップ42)。このステップは、IPプロトコル層による送信用の待ち行列内に配置されたIPデータグラムを検査し、各データグラムの長さを求めることによって実施されてよい。フレーム内にバンドルすることのできるIPデータグラムの数は、残りのフレームペイロード長が待ち行列内の次のIPデータグラムより小さくなるまで待ち行列内の各IPデータグラムの長さにバンドルヘッダ用の(たとえば)2バイトを足した値を順次引くことによって算出することができる。このプロセスは、可変長のIPデータグラムと可変長のフレームに対処する。このプロセスの一部として、プロセッサは、IPデータグラムを待ち行列からバッファメモリ位置まで移動させるか、あるいは次のフレームとしてバンドルされるIPデータグラムを識別してよい。
RF条件の悪影響を受ける無線データリンクのようないくつかの通信状況では、フレーム長内に単一のIPデータグラムしか納められないようにフレームサイズを小さくしてもよい。このため、プロセッサは、フレーム内に納めることのできるIPデータグラムの求められた数が1よりも大きいかどうかを試験することができる(試験44)。1以下である場合、IPパケットをフラグメント化せずにIPデータグラムのバンドリングを実施することはできず、したがって、プロセッサは単に、待ち行列内の次のIPデータグラムを、送信できるようにリンク層に転送することができる(ステップ46)。したがって、通信条件が、IPデータグラムをフレーム内にバンドルするのを可能にするフレームサイズをサポートしない条件である(すなわち、フレーム当たりIPデータグラムの数が1以下であり、試験44が「No」である)場合、通常のIP通信は現行の方式に対して問題なしに進行することができる。このとき、各フレームは図2Bおよび図3Bに示されているような状態である。
現在のフレームサイズがフレーム当たりに複数のIPデータグラムをバンドルするのを可能にするフレームサイズである場合(すなわち、試験44=「Yes」)、プロセッサは次のIPデータグラムを待ち行列から引き出すか、あるいはすでにIPプロトコル送信待ち行列から移動されている場合には他のバッファから引き出す(ステップ48)。プロセッサは、IPデータグラムのサイズを使用してバンドルヘッダを生成することができる(ステップ50)。上述のように、一実施形態では、バンドルヘッダ内の最上位ビットが「1」に設定され、ヘッダの残りの部分を使用して関連するIPデータグラムの長さが指定される。バンドルヘッダ内の最上位ビットを使用してバンドリングを示すことは好ましい実施形態であるが、特許請求の範囲内に包含される唯一の実施形態ではないことに留意されたい。その代わり、フレームペイロードがバンドルされたIPデータグラムを含むことを示す情報を、特定のバイト値、2バイト値、またはビットパターンのようなバンドルヘッダの他の部分に含めてよい。
生成されたバンドルヘッダは、対応するIPデータグラムに付加される(ステップ52)。フレームが満杯であるかどうかまたは次に送信すべきフレーム内に他のIPデータグラムをバンドルできるかどうかをプロセッサが判定する間(試験54)、バイトの結果ブロックをメモリに記憶するかあるいはバッファ内に保持してよい。たとえば、IPプロトコル送信待ち行列から各IPデータグラムが引き出されるとき、ステップ42で求められた次のフレーム内に納めることのできるIPデータグラムの数を減分することができる。この実装例において、試験54では単に、残りの部分が零よりも大きいかどうかを判定することができる。バンドルすべき他のIPデータグラムがある場合(すなわち、試験54=「Yes」)、プロセッサはステップ48に戻って待ち行列から次のIPデータグラムを引き出し、バンドルヘッダを生成するプロセスを繰り返し(ステップ50)、このバンドルヘッダを次のIPデータグラムに付加することができる(ステップ52)。次のフレームが満杯であるかあるいは次のフレーム内にバンドルされる予定のすべてのIPデータグラムが処理されると(すなわち、ステップ54=「No」)、プロセッサは、アセンブルされたバンドルヘッダの各々とIPデータグラムをデータバイトの単一の連続ブロックに付加することによって次のフレーム用のデータペイロードをアセンブルすることができる(ステップ56)。この実施形態では、データペイロードは、図2Aに示されているようにそれぞれのバンドルヘッダが組み込まれた複数のIPデータグラムを含む。アセンブルされたデータブロックは次に、大きなデータブロックの場合と同様に、送信できるようにリンク層に供給することができる(ステップ58)。リンク層は次に、次のフレーム内のデータペイロードを当技術分野で公知の従来の方法で送信し、プロセッサは、プロセスの先頭に戻り、フレームサイズを求める(ステップ40)とともにそのフレーム内に納まることのできるIPデータグラムの数を求める(ステップ42)。このプロセスは、IPデータグラムが送信用の待ち行列に入っているかぎり継続する。
図4に示されている例示的な方法では、各バンドルヘッダを、それに関連するIPデータグラムが送信待ち行列から引き出されるときに生成するが、1つのステップでバンドルヘッダを生成し、それに関連するIPデータグラムに順次貼り付けてもよい。図5は、バンドルヘッダが1つのステップで生成される、可変長フレームで送信できるようにバンドルされたIPデータグラムを生成する例示的な他の方法ステップを示している。図4に示されている方法と同様に、送信側プロセッサは、IPデータグラムが送信用の待ち行列に入っているときに次の送信フレームのサイズを求め(ステップ40)、フレームサイズ内に納まる待ち行列内のIPデータグラムの数を求める(ステップ42)。フレーム内に1つのIPデータグラムしか入らない場合(すなわち、試験44=「No」)、待ち行列内の次のIPデータグラムは、送信できるようにリンク層に転送される。しかし、フレーム内に複数のIPデータグラムが入る場合(すなわち、試験44=「Yes」)、次のフレーム内にバンドルされる待ち行列内の各IPデータグラムを送信待ち行列から引き出し、メモリに記憶することができる(ステップ48および試験54)。次のフレーム内にバンドルすべきすべてのIPデータグラムが送信待ち行列から引き出されると(すなわち、試験54=「No」)、プロセッサは、メモリに記憶されている各IPデータグラムの長さを求め、この情報を使用して各IPデータグラム用のバンドルヘッダを生成することができる(ステップ60)。プロセッサは次に、各バンドルヘッダをそれに適切なIPデータグラムに貼り付け(ステップ62)、すべてのバンドルヘッダおよびIPデータグラムを単一のデータブロックとしてアセンブルする(ステップ56)。アセンブルされたデータブロックは次に、大きなデータブロックの場合と同様に、送信できるようにリンク層に供給することができる(ステップ58)。この点で、データペイロードがリンク層によって次のフレームで送信され、プロセッサは、プロセスの先頭に戻って現在のフレームサイズを求める(ステップ40)とともにそのフレーム内に納めることのできるIPデータグラムの数を求める(ステップ42)ことができる。このプロセスは、送信用の待ち行列内にIPデータグラムがあるかぎり継続する。
またあるいは、次のフレームにバンドルすべきIPデータグラムの数を求めるステップの一部として各IPデータグラムの長さを求めてよい(ステップ42)。この場合、バンドルヘッダを生成すること(ステップ60)は、各IPデータグラムが送信待ち行列から引き出される(ステップ48)前にプロセッサによって実施されてよい。図4および図5に示されているステップのシーケンスは、本発明の趣旨または特許請求の範囲から逸脱せずに変更されてよい。
上記に図2Aを参照して説明したようにフレーム内に含まれるバンドルされたIPデータグラムは、バンドルヘッダ内に含まれる情報を使用して処理できるように容易にアンパックすることができる。受信側プロセッサによって実施できる例示的な方法ステップが図6に示されている。リンク層から各フレームペイロードが受信されたときに(ステップ70)、プロセッサは、ペイロードの第1のバイト(または受信されたフレームにフレームヘッダが含まれている場合にはフレームヘッダに続く最初のバイト)の最上位ビット(MSB)を検査し(ステップ72)、このビットが「0」であるかそれとも「1」であるかを判定する(試験74)。あるいは、プロセッサは、第1のニブルを検査して、その値が4でないかそれとも6でないかを判定することができる。最上位ビットが「0」であるかあるいは第1のニブルが4または6である場合(すなわち、試験74=「No」)、このことは、ペイロードが通常のIPデータグラムを含むことを示しており、したがって、ペイロードは、従来の方法で処理できるように単に直接IPプロトコル層に転送される(ステップ76)。最上位ビットが「1」であるかあるいは第1のニブルが4でも6でもない場合(すなわち、試験74=「Yes」)、このことは、フレームペイロードがバンドルされたIPデータグラムを含んでいる可能性があることを示しており、したがって、プロセッサは、バンドルヘッダの残りの部分を読み取って関連するIPデータグラムの長さを求める(ステップ78)。バンドルヘッダ内の最上位ビットを使用してバンドリングを示すことは、好ましい実施形態であるが、特許請求の範囲内に包含される唯一の実施形態ではないことに留意されたい。その代わり、フレームペイロードがバンドルされたIPデータグラムを含むことを示す情報を、特定のバイト値、2バイト値、またはビットパターンのようなバンドルヘッダの他の部分に含めてよい。このような実施形態では、シム層114(図9参照)ソフトウェアは、バンドルヘッダ内の特定の値またはビットパターンを探索して認識し、フレームペイロードをバンドルされたIPデータグラムを含むフレームペイロードとして区別するように構成される。
プロセッサは、バンドルヘッダから得られた長さ情報またはオフセット情報を使用して、フレームペイロードから対応する数のバイトを抽出してIPデータグラムを取得し(ステップ80)、IPデータグラムをIPプロトコル層に転送する(ステップ82)。プロセッサは次に、ペイロードまたはフレーム内の最後のデータグラムが処理されたかどうかを判定することができる(試験86)。ペイロードまたはフレーム内の最後のデータグラムが処理されていない場合(すなわち、試験86=「No」)、プロセッサは、次のバンドルヘッダを読み取ってその長さを求めるステップ(ステップ78)に戻り、その情報を使用してペイロードから次のIPデータグラムを抽出し(ステップ80)、抽出されたIPデータグラムをIPプロトコル層に転送する(ステップ82)ことができる。このプロセスは、バンドルされたすべてのIPデータグラムが処理されるまで継続する(すなわち、試験86=「Yes」)。この点で、プロセッサは、リンク層に次のフレームペイロードを要求し(ステップ88)、ステップ70に戻ることによってこのプロセスを繰り返すことができる。
上記に図3Aを参照して論じたように、第2の実施形態は、バンドルされたIPデータグラムへのマップを含む単一のバンドルヘッダを使用することによって可変長フレーム内にIPデータグラムをバンドルすることを実現する。この実施形態によってフレーム用のペイロードを生成するように実施することのできる例示的な方法ステップが図7に示されている。1つまたは複数のIPデータグラムが通信されるとき、ソフトウェアで構成されたコンピュータプロセッサは、リンク層によって実施される現在のフレームサイズを求めることができる(ステップ40)。このようにフレームサイズを求めることは、上記に図4を参照して説明したように実施することができる。プロセッサは次に、現在のフレームサイズ値を使用して、そのフレームサイズ内に納まる送信用の待ち行列内のIPデータグラムの数を求める(ステップ42)ことができる。このステップも上記に図4を参照して説明したように実施することができる。通信条件が、フレーム内にIPデータグラムをバンドルするのを可能にするフレームサイズをサポートされない条件である(すなわち、ステップ42で求められたフレーム当たりIPデータグラム数が1以下であり、したがって、試験44が「No」である)場合、プロセッサは単に、待ち行列内の次のIPデータグラムを、送信できるようにリンク層に転送する(ステップ46)。
複数のIPデータグラムがフレーム内に納まる(すなわち、試験44=「Yes」)場合、次のフレーム内に納まる待ち行列内の各IPデータグラムを送信待ち行列から引き出してメモリに記憶することができる(ステップ48および試験54)。次のフレーム内にバンドルすべきすべてのIPデータグラムが送信待ち行列から引き出されると(すなわち、試験54=「No」)、プロセッサは、メモリに記憶されているIPデータグラムのそれぞれの長さを求め、バンドルされたデータペイロード内の各IPデータグラムの開始および終了位置を識別するのに使用することのできるオフセットマップを生成することができる(ステップ90)。プロセッサは、このオフセットマップを使用して、オンセットマップを含み、最上位ビットが「1」に設定されたバンドルヘッダを生成することができる(ステップ92)。上記に論じたように、最上位ビットを使用してIPデータグラムバンドリングを示すことは例示的な実施形態の1つに過ぎず、バンドルヘッダ内の他のビットパターンを使用してこの情報を通信してもよい。
次に、生成されたバンドルヘッダを関連するすべてのIPデータグラムと組み合わせてペイロードデータブロックを得る(ステップ94)ことができ、このペイロードデータブロックは、送信できるようにリンク層に転送される(ステップ96)。ペイロードデータブロックは、バンドルマップヘッダを次のフレームにバンドルすべきすべてのIPデータグラムに連結することによって形成することができる。この点で、ペイロードは、リンク層によって次のフレームで従来どおりに送信され、プロセッサは、プロセスの先頭に戻り、フレームサイズを求める(ステップ40)とともにこのフレームに納めることのできるIPデータグラムの数を求める(ステップ42)。このプロセスは、送信用の待ち行列内にIPデータグラムがあるかぎり継続する。このプロセスの結果として、図3Aに示されているようにフレームが送信される。
上記に図3Aおよび図7を参照して説明したようにフレーム内に含まれるバンドルされたIPデータグラムは、受信側プロセッサによって、バンドルヘッダ内に含まれるマップ情報を使用して容易にアンパックすることができる。受信側プロセッサによって実施することのできる例示的な方法ステップが図8に示されている。リンク層から各フレームペイロードが受信されたときに(ステップ70)、プロセッサは、ペイロードの第1のバイト(または受信されたフレームにフレームヘッダが含まれている場合にはフレームヘッダに続く最初のバイト)の最上位ビット(MSB)を検査し(ステップ72)、このビットが「0」であるかそれとも「1」であるかを判定する(試験74)。あるいは、プロセッサは、第1のニブルを検査して、その値が4でないかそれとも6でないかを判定することができる。最上位ビットが「0」であるかあるいは第1のニブルが4または6である場合(すなわち、試験74=「No」)、このことは、ペイロードが通常のIPデータグラムを含むことを示しており、したがって、ペイロードは、従来の方法で処理できるように単に直接IPプロトコル層に転送される(ステップ76)。最上位ビットが「1」であるかあるいは第1のニブルが4でも6でもない場合(すなわち、試験74=「Yes」)、このことは、ペイロードがバンドルされたIPデータグラムを含んでいる可能性があることを示しており、したがって、プロセッサは、バンドルマップヘッダの残りの部分を読み取ってバンドルマップを取得する(ステップ100)。上記に論じたように、他の実施形態では、プロセッサは、他のビット、ビットパターン、またはバイト値を調べて、フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定することができる。
プロセッサは、バンドルヘッダ内に含まれるマップ情報を使用して、ペイロードからIPデータグラムを抽出し(ステップ102)、抽出されたIPデータグラムをIPプロトコル層に転送する(ステップ82)。プロセッサは、バンドルマップ内の情報に基づいて、ペイロードから抽出されていない他のIPデータグラムがあるかどうかを試験し(試験104)、そのようなIPデータグラムがある場合、マップ情報を使用して次のIPデータグラムを抽出し、ステップ102およびステップ82を繰り返す。受信されたフレームペイロード内にバンドルされたすべてのIPデータグラムが抽出されIPプロトコル層に転送されると(すなわち、試験104=「No」)、プロセッサは、リンク層に次のフレームを要求し(ステップ88)、ステップ70に戻ることによってプロセスを繰り返す。
上記に図6および図8を参照して説明した可変長フレーム内にバンドルされたIPデータグラムを受信し解析するプロセスは、バンドルされたIPデータグラムを互いに分離し、IPデータグラムがバンドルされていない場合と同様にIPプロトコル層に転送するのを可能にする。したがって、様々な実施形態のプロセスは、リンク層またはIPプロトコル層の修正を必要とせずに可変長フレーム内にIPデータグラムをバンドルするのを可能にする。
コンピュータ内で様々な実施形態を実施するにはどうすればよいかを示すハードウェア/ソフトウェアアーキテクチャ図が図9に示されている。様々な実施形態のプロセスは、IP層112とリンク層116との間のソフトウェアアーキテクチャ内に含まれるバンドリング/アンバンドリングシム層114内で実施することができる。例示的なこのアーキテクチャでは、バンドリング/アンバンドリングシム層114は、IP層112によって維持される送信待ち行列にアクセスすることなどによって、送信すべきIPパケットを、IP層112から受信し、送信できるように送信用リンク層116に転送する。同様に、リンク層116から受信された通信フレームペイロードは、バンドリング/アンバンドリングシム層114によって処理され、抽出されたIPデータグラムがIP層112に転送される。従来のハードウェア/ソフトウェアアーキテクチャと同様に、リンク層116は、情報を実際に符号化信号(RFパルスまたは電気パルス)として送信する物理的通信層118とやり取りするソフトウェアを含む。また、IP層112は、IPデータグラムから抽出された情報を、通常アプリケーション層110内に常駐していると言われる、ブラウザなどのアプリケーションに転送する。
図9は、様々な実施形態の処理が、通常のハードウェア/ソフトウェアアーキテクチャにおけるリンク層110とIP層114との間のシム層112で実行される実施形態を示しており、この処理は代わりに、リンク層110またはIP層114内に含まれるソフトウェア処理内に含まれてもよい。実施形態の方法がIP層114またはリンク層110で実行される場合、このようなコンピュータのハードウェア/ソフトウェアアーキテクチャは、図9に示されているシム層112を有さない従来のシステムのハードウェア/ソフトウェアアーキテクチャに類似している。
IPデータグラムバンドリングおよびアンバンドリング処理がリンク層110内に含まれる場合、IPデータグラムをフレームデータペイロードとしてバンドルする際に使用される実施形態のステップは、各フレームを送信する前にアセンブルするプロセスの一部として実施されてよい。送信の場合、リンク層110は、この実施形態では不要な、データペイロードをリンク層に転送するステップ58、96を除いて、上記に図4、図5、および図7を参照して説明した実施形態の方法のステップを実行する。受信の場合、リンク層110は、この実施形態では不要な、リンク層からフレームペイロードを受信するステップ70を除いて、上記に図6および図8を参照して説明した実施形態の方法のステップを実行する。
IPデータグラムバンドリングおよびアンバンドリング処理がIP層114内に含まれる場合、IPデータグラムをフレームデータペイロードとしてバンドルする際に使用される実施形態のステップは、IPデータグラムを、送信できるようにリンク層に転送する前に送信できるようにアセンブルするプロセスの一部として実施されてよい。送信の場合、IP層114は、送信待ち行列を検査する(ステップ42)ことによってではなくデータグラムがアセンブルされるときにIPデータグラムの長さを求めることができることを除いて、上記に図4、図5、および図7を参照して説明した実施形態の方法のステップを実行する。また、バンドルヘッダは、IPデータグラムをアセンブルするプロセスの一部として生成することができる(ステップ50)。受信の場合、IP層114は、この実施形態では不要な、抽出されたIPデータグラムをIP層に転送するステップ82を除いて、上記に図6および図8を参照して説明した実施形態の方法のステップを実行する。
上述の実施形態は、たとえば携帯電話、携帯電話および/またはWIFIトランシーバを有する携帯情報端末(PDA)、携帯電子メール受信器、携帯ウェブアクセスデバイス、および将来開発される可能性があり、1つまたは複数のデータ通信リンクに接続される他のプロセッサ搭載デバイスのような様々な携帯コンピューティングデバイスのいずれかで実施することができる。通常、このような携帯コンピューティングデバイスは一般に、図10に示されている構成要素を有する。たとえば、携帯コンピューティングデバイス120は、内部メモリ122およびディスプレイ123に結合されたプロセッサ121を含んでよい。また、携帯コンピューティングデバイス120は、電磁放射を送りかつ受け取る、無線データリンクに接続されたアンテナ124および/またはプロセッサ121に結合された携帯電話トランシーバ125を有する。いくつかの実装例では、トランシーバ125、ならびにプロセッサ121およびメモリ122の、携帯電話通信に使用される部分は、無線データリンクを介してデータインタフェースを提供するため無線インタフェースと呼ばれる。携帯コンピューティングデバイス120は通常、ユーザ入力を受け取るキーパッド126または小形キーボードとメニュー選択ボタンまたはロッカースイッチ127も含む。プロセッサ121は、プロセッサ121をパーソナルコンピュータ160または外部ローカルエリアネットワークのような外部コンピューティングデバイスに接続するUSB(Universal Serial Bus)またはFireWire(登録商標)コネクタソケットのような有線ネットワークインタフェース128にさらに接続されてよい。
プロセッサ121は、上述の様々な実施形態の機能を含む様々な機能を実行するようにソフトウェア命令(アプリケーション)で構成することのできる任意のプログラマブルマイクロプロセッサ、マイクロコンピュータ、または複数のプロセッサチップであってよい。いくつかの携帯コンピューティングデバイス120では、無線通信機能専用の1つのプロセッサおよび他のアプリケーションの実行専用の1つのプロセッサのような複数のプロセッサ121を設けてよい。通常、ソフトウェアアプリケーションは、アクセスされプロセッサ121にロードされる前に内部メモリ122に記憶されてよい。いくつかの携帯コンピューティングデバイス120では、プロセッサ121は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含んでよい。この説明では、用語メモリは、内部メモリ122およびプロセッサ121自体内のメモリを含む、プロセス121によってアクセス可能なすべてのメモリを指す。アプリケーションデータファイルは通常、メモリ122に記憶される。多くの携帯コンピューティングデバイス120では、メモリ122は、揮発性メモリまたはフラッシュメモリなどの非揮発性メモリあるいはその両方が混在したメモリであってよい。
上述の実施形態は、たとえば、図11に示されているサーバまたはパーソナルコンピュータ160のような様々なコンピューティングデバイスのいずれかで実施されてもよい。このようなパーソナルコンピュータ160は通常、揮発性メモリ162に結合されたプロセッサ161と、ディスクドライブ163のような大容量非揮発性メモリとを含む。コンピュータ13は、プロセッサ161に結合されたフロッピー(登録商標)ディスクドライブ164およびコンパクトディスク(CD)ドライブ165を含んでもよい。通常、コンピュータデバイス13は、キーボード168およびディスプレイ166のようなユーザ入力デバイスも含む。コンピュータデバイス13は、プロセッサ161に結合され、データ接続を確立するか、あるいはUSBもしくはFireWire(登録商標)コネクタソケットのような外部メモリデバイスまたはプロセッサ161をネットワーク167に結合する他のネットワーク接続回路166を受け入れるいくつかのコネクタポートを含んでもよい。ラップトップ構成では、コンピュータハウジングは、コンピュータ分野で公知であるようにキーボード168およびディスプレイ169を含む。
様々な実施形態は、1つまたは複数の前述の方法を実施するように構成されたソフトウェア命令を実行するコンピュータプロセッサ161によって実施されてよい。このようなソフトウェア命令は、互いに別個のアプリケーションとしてあるいは実施形態の方法を実施するコンパイルされたソフトウェアとしてメモリ162、163に記憶することができる。基準データベースを内部メモリ162内、ハードディスクメモリ164内、有形記憶媒体上、またはネットワーク(図示せず)を介してアクセス可能なサーバ上に記憶することができる。また、ソフトウェア命令およびデータベースは、ランダムアクセスメモリ162、ハードディスクメモリ163、フロッピー(登録商標)ディスク(フロッピー(登録商標)ディスクドライブ164で読み取り可能)、コンパクトディスク(CDドライブ165で読み取り可能)、電気的に消去可能/プログラム可能な読み取り専用メモリ(EEPROM)、読み取り専用メモリ(FLASHメモリなど)、ならびに/あるいは外部メモリチップのようなコンピュータ160にプラグ接続されたメモリモジュール(図示せず)またはUSBネットワークポート166にプラグ接続されたUSB接続可能な外部メモリ(たとえば、「フラッシュドライブ」)を含む、任意の形態の有形プロセッサ読み取り可能メモリ上に記憶されてもよい。
携帯デバイス120およびコンピュータ160のようなコンピュータデバイスは、一例が図12に示されている様々な実施形態を実施する様々なデータネットワークを介して互いに通信するとともに他のコンピュータおよびサーバ190と通信することができる。携帯デバイス120は、ネットワークスイッチング/ルーティング機器176に結合された基地局アンテナ174との携帯データコールのような無線通信リンク172を介してデータネットワークと通信することができる。このようなネットワークスイッチング/ルーティング機器176は、インターネット180に結合されたネットワークサーバ178に接続されてよい。ラップトップコンピュータのようなパーソナルコンピュータ160は同様に、無線通信リンク172を介して無線ネットワークと通信することができる。この代わりにあるいはこれに加えて、パーソナルコンピュータ160は、ネットワークサーバ178に結合されたローカルエリアネットワーク182に直接接続し、ネットワークサーバ178を通じてインターネット180に接続することができる。この代わりにあるいはこれに加えて、パーソナルコンピュータ160は、直接接続184を介してインターネット180に直接接続することができる。無線通信リンク(172)または有線通信リンク(182、184)によってインターネットとの接続が確立されれば、携帯デバイス120および/またはコンピュータ160はインターネット180を介して他のコンピュータおよびサーバ190と通信することができる。また、携帯デバイス120は、FireWireネットワーク接続またはUSBネットワーク接続のような有線ネットワーク接続188によってコンピュータ160に接続されてよい。
図12に示されている各通信リンクは、可変サイズフレームを実施できる高速通信リンクとして構成されてよい。しかし、リンクプロトコルの制限(たとえば、インターネット180上で実施されるインターネットプロトコル)または物理的な制限(たとえば、無線通信リンク172上の干渉またはノイズ)のため、様々な通信リンクがそれぞれの異なるフレームサイズを実施する可能性がある。したがって、前述の実施形態は、コンピューティングデバイス120、160、178、190がデータ通信を最適化するのに利用できる様々な通信リンク172、182、184、188上で実施されてよい。
当業者には、本明細書で開示された実施形態に関連して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップを電子ハードウェア、コンピュータソフトウェア、またはその両方の組み合わせとして実施できることが理解されよう。ハードウェアとソフトウェアが互換性を有することを明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップは、上記では、概してその機能に関して記載されている。このような機能をハードウェアとして実施するかそれともソフトウェアとして実施するかは、システム全体に課される特定の用途および設計上の制約に応じて決まる。当業者なら、上述の機能を特定の用途ごとに様々な方法で実施することができるが、そのような実施上の決定を本発明の範囲からの逸脱を生じさせるものと解釈すべきではない。
上記に説明し各図に示した方法の各ステップが実行される順序は例示のための順序にすぎない。というのは、本発明の趣旨および範囲ならびに特許請求の範囲から逸脱せずに、いくつかのステップの順序を本明細書で説明した順序から変更することができるからである。本明細書で開示された実施形態に関連して説明した方法またはアルゴリズムの各ステップは、直接ハードウェアで実施されても、プロセッサによって実行されるソフトウェアモジュールで実施されても、あるいはこの2つの組み合わせで実施されてもよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている他の任意の形態の記憶媒体のいずれかであってよいプロセッサ読み取り可能メモリに常駐してもよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取りかつ記憶媒体に情報を書き込むことができるようにプロセッサに結合される。あるいは、記憶媒体はプロセッサと一体であってよい。プロセッサおよび記憶媒体はASICに常駐してもよい。ASICはユーザ端末または移動デバイスに常駐してもよい。あるいは、プロセッサおよび記憶媒体は、ユーザ端末または携帯デバイス内の離散構成要素として常駐してもよい。また、いくつかの態様では、方法またはアルゴリズムの各ステップおよび/または動作は、機械読み取り可能な媒体および/またはコンピュータ読み取り可能な媒体上のコードおよび/または命令の1つあるいは任意の組み合わせまたは組として常駐してもよく、それらはコンピュータプログラム製品に組み込まれてもよい。
様々な実施形態の上記の説明は、当業者が本発明を製造または使用するのを可能にするためになされている。当業者にはこれらの実施形態に対する様々な変形が容易に明らかになり、本明細書で定められた一般的な原則は、本発明の趣旨および範囲から逸脱せずに他の実施形態に適用されてよい。したがって、本発明は、本明細書に示された実施形態に限定されるものではなく、その代わり、特許請求の範囲としては、本明細書で開示された原則および新規の特徴に適合する最も広い範囲が該当すべきである。
1 フレームヘッダ
2 ペイロード
3、5 バンドルヘッダ
4、6 IPデータグラム
7 フレームヘッダ
10 フレーム
13 フレームペイロード
14、18 バンドルヘッダ
16、20 IPデータグラム
22 フレーム
24 バンドルマップヘッダ
110 リンク層
112 IP層
116 リンク層
114 シム層
118 物理通信層
120 携帯コンピューティングデバイス
121 プロセッサ
122 内部メモリ
124 アンテナ
125 携帯電話トランシーバ
126 キーパッド
127 メニュー選択ボタンまたはロッカースイッチ
128 有線ネットワークインタフェース
160 パーソナルコンピュータ
161 プロセッサ
162、163 メモリ
163 ディスクドライブ
164 フロッピー(登録商標)ディスクドライブ
165 コンパクトディスクデバイス
167 ネットワーク
168 キーボード
169 ディスプレイ
172 無線通信リンク
174 アンテナ
176 ネットワークスイッチング/ルーティング機器
178 ネットワークサーバ
180 インターネット
182 ローカルエリアネットワーク
184 直接接続
188 有線ネットワーク接続
190 サーバ

Claims (48)

  1. 可変フレームサイズを使用できる通信リンクを介してインターネットプロトコル(IP)データグラムを送信する方法であって、
    フレームペイロード内に納めることのできるIPデータグラムの数を求めるステップと、
    バンドルヘッダが少なくとも1つのバンドルされたIPデータグラムに関連することを示す情報および前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムの位置を示す情報を含む前記バンドルヘッダを生成するステップと、
    前記バンドルヘッダを少なくとも1つの前記バンドルされたIPデータグラムに連結してデータペイロードを形成するステップと、
    前記フレームがバンドルされたIPデータグラムを含むことをフレームヘッダにおいて示さずに、前記データペイロードを前記フレームペイロードとして通信するステップとを含む方法。
  2. フレームペイロードに納めることのできるIPデータグラムの数を求める前記ステップは、
    前記通信リンクの現在のフレームサイズを求めるステップと、
    送信用の待ち行列内のIPデータグラムのサイズを求めるステップと、
    前記待ち行列内のIPデータグラムのうちのいくつのIPデータグラムをバンドルヘッダと一緒に前記現在のフレームサイズ内に納めることができるかを判定するステップとを含む、請求項1に記載の方法。
  3. バンドルヘッダを生成する前記ステップは、前記現在のフレームサイズ内に納めることのできる前記送信用の待ち行列内の各IPデータグラムについてそれぞれのバンドルヘッダを生成するステップを含み、
    前記バンドルヘッダを少なくとも1つの前記バンドルされたIPデータグラムに連結してデータペイロードを形成する前記ステップは、それぞれの各バンドルヘッダを対応する各IPデータグラムに連結し、それぞれのバンドルヘッダが組み込まれた複数のIPデータグラムを含むデータペイロードを形成するステップを含む、請求項2に記載の方法。
  4. バンドルヘッダを生成する前記ステップは、前記フレームペイロード内にバンドルされた各IPデータグラムの位置を識別するマップを含むバンドルヘッダを生成する前記ステップを含み、
    前記バンドルヘッダを少なくとも1つの前記バンドルされたIPデータグラムに連結してデータペイロードを形成する前記ステップは、前記バンドルヘッダおよび前記現在のフレームサイズ内に納めることのできる前記送信用の待ち行列内のすべての前記IPデータグラムを連結する前記ステップを含む、請求項2に記載の方法。
  5. 前記バンドルヘッダがバンドルされたIPデータグラムに関連することを示す前記情報は、値が1である前記バンドルヘッダ内の最上位ビットを含む、請求項1に記載の方法。
  6. 前記バンドルヘッダがバンドルされたIPデータグラムに関連することを示す前記情報は、値が4でも6でもない前記バンドルヘッダ内の第1のニブルを含む、請求項1に記載の方法。
  7. 可変フレームサイズのフレーム内にバンドルされたインターネットプロトコル(IP)データグラムを受信する方法であって、
    フレームヘッダおよびフレームペイロードを含む通信されるデータのフレームを受信するステップと、
    前記フレームペイロード内の第1のバイトを検査して、前記フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定するステップと、
    前記フレームペイロードがバンドルされたIPデータグラムを含むことを前記第1のバイトが示す場合に、前記フレームペイロード内のバンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つけるステップと、
    前記フレームペイロードから前記少なくとも1つのバンドルされたIPデータグラムを抽出するステップと、
    前記抽出されたIPデータグラムを処理できるようにIP層に供給するステップとを含む方法。
  8. 前記フレームペイロード内の前記第1のバイトを検査して、前記フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定する前記ステップは、前記第1のバイト内の最上位ビットが1に等しいかどうかを判定するステップを含む、請求項7に記載の方法。
  9. 前記フレームペイロード内の前記第1のバイトを検査して、前記フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定する前記ステップは、前記第1のバイト内の第1のニブルが4でも6でもない値を有するかどうかを判定するステップを含む、請求項7に記載の方法。
  10. 前記フレームペイロード内のバンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つける前記ステップは、前記バンドルヘッダの後続の対応するIPデータグラムの長さを取得するステップを含み、
    前記フレームペイロードから少なくとも1つのバンドルされたIPデータグラムを抽出する前記ステップは、前記バンドルヘッダの末尾から前記対応するIPデータグラムの長さまでの前記フレームペイロード内のバイトを抽出するステップを含む、請求項7に記載の方法。
  11. 前記フレームペイロード内の前記バンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つける前記ステップは、第1のバンドルヘッダから第1のIPデータグラムの長さを取得するステップを含み、
    前記フレームペイロードから少なくとも1つのバンドルされたIPデータグラムを抽出する前記ステップは、前記第1のバンドルヘッダの末尾から前記第1のIPデータグラムの長さまでの前記フレームペイロード内の第1の1組のバイトとして第1のIPデータグラムを抽出するステップを含み、
    前記抽出されたIPデータグラムを処理できるようにIP層に供給するステップは、前記第1のIPデータグラムを処理できるように前記IP層に供給するステップを含み、
    前記方法は、
    第2のバンドルヘッダから第2のIPデータグラムの長さを取得するステップと、
    前記第2のバンドルヘッダの末尾から前記第2のIPデータグラムの長さまでの前記フレームペイロード内の第2の1組のバイトとして第2のIPデータグラムを抽出するステップと、
    前記第2のIPデータグラムを処理できるように前記IP層に供給するステップとをさらに含む、請求項7に記載の方法。
  12. 前記フレームペイロード内の前記バンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つける前記ステップは、前記フレームペイロード内に含まれるIPデータグラムのマップを前記バンドルヘッダから取得するステップを含み、
    前記フレームペイロードから少なくとも1つのバンドルされたIPデータグラムを抽出する前記ステップは、前記バンドルヘッダから取得された前記マップを使用して前記フレームペイロード内から複数のIPデータグラムを抽出するステップを含み、
    前記抽出されたIPデータグラムを処理できるようにIP層に供給するステップは、前記抽出された複数のIPデータグラムを処理できるように前記IP層に供給するステップを含む、請求項7に記載の方法。
  13. コンピュータであって、
    プロセッサと、
    前記プロセッサに結合されたメモリとを備え、
    前記プロセッサは、
    フレームペイロード内に納めることのできるIPデータグラムの数を求めるステップと、
    バンドルヘッダが少なくとも1つのバンドルされたIPデータグラムに関連することを示す情報および前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムの位置を示す情報を含む前記バンドルヘッダを生成するステップと、
    前記バンドルヘッダを少なくとも1つの前記バンドルされたIPデータグラムに連結してデータペイロードを形成するステップと、
    前記フレームがバンドルされたIPデータグラムを含むことをフレームヘッダにおいて示さずに、前記データペイロードを前記フレームペイロードとして通信するステップとを実行するソフトウェア命令を含むように構成されるコンピュータ。
  14. 前記プロセッサは、フレームペイロードに納めることのできるIPデータグラムの数を求める前記ステップが、
    現在のフレームサイズを求めるステップと、
    送信用の待ち行列内のIPデータグラムのサイズを求めるステップと、
    前記待ち行列内のIPデータグラムのうちのいくつのIPデータグラムを前記バンドルヘッダと一緒に前記現在のフレームサイズ内に納めることができるかを判定するステップとを含むようなソフトウェア命令を含むように構成される、請求項13に記載のコンピュータ。
  15. 前記プロセッサは、
    バンドルヘッダを生成する前記ステップが、前記現在のフレームサイズ内に納めることのできる前記送信用の待ち行列内の各IPデータグラムについてそれぞれのバンドルヘッダを生成するステップを含み、
    前記バンドルヘッダを少なくとも1つの前記バンドルされたIPデータグラムに連結してデータペイロードを形成する前記ステップが、それぞれの各バンドルヘッダを対応する各IPデータグラムに連結し、それぞれのバンドルヘッダが組み込まれた複数のIPデータグラムを含む前記データペイロードを形成するステップを含むようなソフトウェア命令を含むように構成される、請求項14に記載のコンピュータ。
  16. 前記プロセッサは、
    バンドルヘッダを生成する前記ステップが、前記フレームペイロード内にバンドルされた各IPデータグラムの位置を識別するマップを含むバンドルヘッダを生成するステップを含み、
    前記バンドルヘッダを少なくとも1つの前記バンドルされたIPデータグラムに連結してデータペイロードを形成する前記ステップが、前記バンドルヘッダおよび前記現在のフレームサイズ内に納めることのできる前記送信用の待ち行列内のすべての前記IPデータグラムを連結するステップを含むようなソフトウェア命令を含むように構成された、請求項16に記載のコンピュータ。
  17. 前記プロセッサは、前記バンドルヘッダがバンドルされたIPデータグラムに関連することを示す前記情報が、値が1である前記バンドルヘッダ内の最上位ビットを含むようなソフトウェア命令を含むように構成される、請求項13に記載のコンピュータ。
  18. 前記プロセッサは、前記バンドルヘッダがバンドルされたIPデータグラムに関連することを示す前記情報が、値が4でも6でもない前記バンドルヘッダ内の第1のニブルを含むようなソフトウェア命令を含むように構成される、請求項13に記載のコンピュータ。
  19. コンピュータであって、
    プロセッサと、
    前記プロセッサに結合されたメモリとを備え、
    前記プロセッサは、
    フレームペイロード内の第1のバイトを検査して、前記フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定するステップと、
    前記フレームペイロードがバンドルされたIPデータグラムを含むことを前記第1のバイトが示す場合に、前記フレームペイロード内のバンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つけるステップと、
    前記フレームペイロードから前記少なくとも1つのバンドルされたIPデータグラムを抽出するステップと、
    前記抽出されたIPデータグラムを処理できるようにIP層に供給するステップとを実行するソフトウェア命令を含むように構成されるコンピュータ。
  20. 前記フレームペイロード内の前記第1のバイトを検査して、前記フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定する前記ステップが、前記第1のバイト内の最上位ビットが1に等しいかどうかを判定するステップを含むようなソフトウェア命令を含むように構成される、請求項19に記載のコンピュータ。
  21. 前記プロセッサは、前記フレームペイロード内の前記第1のバイトを検査して、前記フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定する前記ステップが、前記第1のバイト内の第1のニブルが4でも6でもない値を有するかどうかを判定するステップを含むようなソフトウェア命令を含むように構成される、請求項19に記載のコンピュータ。
  22. 前記プロセッサは、のステップであるようなソフトウェア命令を含むように構成される、請求項19に記載のコンピュータ。
  23. 前記プロセッサは、であるようなソフトウェア命令を含むように構成される、請求項19に記載のコンピュータ。
  24. 前記プロセッサは、
    前記フレームペイロード内のバンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つける前記ステップが、前記バンドルヘッダの後続の対応するIPデータグラムの長さを取得するステップを含み、
    前記フレームペイロードから少なくとも1つのバンドルされたIPデータグラムを抽出する前記ステップが、前記バンドルヘッダの末尾から前記対応するIPデータグラムの長さまでの前記フレームペイロード内のバイトを抽出するステップを含むようなソフトウェア命令を含むように構成される、請求項19に記載のコンピュータ。
  25. コンピュータであって、
    フレームペイロード内に納めることのできるIPデータグラムの数を求める手段と、
    バンドルヘッダが少なくとも1つのバンドルされたIPデータグラムに関連することを示す情報および前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムの位置を示す情報を含む前記バンドルヘッダを生成する手段と、
    前記バンドルヘッダを少なくとも1つの前記バンドルされたIPデータグラムに連結してデータペイロードを形成する手段と、
    前記フレームがバンドルされたIPデータグラムを含むことをフレームヘッダにおいて示さずに、前記データペイロードを前記フレームペイロードとして通信する手段とを備えるコンピュータ。
  26. フレームペイロードに納めることのできるIPデータグラムの数を求める手段は、
    現在のフレームサイズを求める手段と、
    送信用の待ち行列内のIPデータグラムのサイズを求める手段と、
    前記待ち行列内のIPデータグラムのうちのいくつのIPデータグラムを前記バンドルヘッダと一緒に前記現在のフレームサイズ内に納めることができるかを判定する手段とを備える、請求項25に記載のコンピュータ。
  27. バンドルヘッダを生成する手段は、前記現在のフレームサイズ内に納めることのできる前記送信用の待ち行列内の各IPデータグラムについてそれぞれのバンドルヘッダを生成する手段を備え、
    前記バンドルヘッダを少なくとも1つの前記バンドルされたIPデータグラムに連結してデータペイロードを形成する手段は、それぞれの各バンドルヘッダを対応する各IPデータグラムに連結し、それぞれのバンドルヘッダが組み込まれた複数のIPデータグラムを含む前記データペイロードを形成する手段を備える、請求項26に記載のコンピュータ。
  28. バンドルヘッダを生成する手段は、前記フレームペイロード内にバンドルされた各IPデータグラムの位置を識別するマップを含むバンドルヘッダを生成する手段を含み、
    前記バンドルヘッダを少なくとも1つの前記バンドルされたIPデータグラムに連結してデータペイロードを形成する手段は、前記バンドルヘッダおよび現在のフレームサイズ内に納めることのできる前記送信用の待ち行列内のすべての前記IPデータグラムを連結する手段を備える、請求項26に記載のコンピュータ。
  29. 前記バンドルヘッダがバンドルされたIPデータグラムに関連することを示す前記情報は、値が1である前記バンドルヘッダ内の最上位ビットを含む、請求項25に記載のコンピュータ。
  30. 前記バンドルヘッダがバンドルされたIPデータグラムに関連することを示す前記情報は、値が4でも6でもない前記バンドルヘッダ内の第1のニブルを含む、請求項25に記載のコンピュータ。
  31. フレームヘッダおよびフレームペイロードを含む通信されたデータのフレームを受信する手段と、
    前記フレームペイロード内の第1のバイトを検査して、前記フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定する手段と、
    前記フレームペイロードがバンドルされたIPデータグラムを含むことを前記第1のバイトが示す場合に、前記フレームペイロード内のバンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つける手段と、
    前記フレームペイロードから前記少なくとも1つのバンドルされたIPデータグラムを抽出する手段と、
    前記抽出されたIPデータグラムを処理できるようにIP層に供給する手段とを備えるコンピュータ。
  32. 前記フレームペイロード内の前記第1のバイトを検査して、前記フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定する手段は、前記第1のバイト内の最上位ビットが1に等しいかどうかを判定する手段を備える、請求項31に記載のコンピュータ。
  33. 前記フレームペイロード内の前記第1のバイトを検査して、前記フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定する手段は、前記第1のバイト内の第1のニブルが4でも6でもない値を有するかどうかを判定する手段を備える、請求項31に記載のコンピュータ。
  34. 前記フレームペイロード内のバンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つける手段は、前記バンドルヘッダの後続の対応するIPデータグラムの長さを取得する手段を含み、
    前記フレームペイロードから少なくとも1つのバンドルされたIPデータグラムを抽出する手段は、前記バンドルヘッダの末尾から前記対応するIPデータグラムの長さまでの前記フレームペイロード内のバイトを抽出する手段を備える、請求項31に記載のコンピュータ。
  35. 前記フレームペイロード内の前記バンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つける手段は、第1のバンドルヘッダから第1のIPデータグラムの長さを取得することを備え、
    前記フレームペイロードから少なくとも1つのバンドルされたIPデータグラムを抽出する手段は、前記第1のバンドルヘッダの末尾から前記第1のIPデータグラムの長さまでの前記フレームペイロード内の第1の1組のバイトとして第1のIPデータグラムを抽出することを含み、
    前記抽出されたIPデータグラムを処理できるようにIP層に供給する手段は、前記第1のIPデータグラムを処理できるように前記IP層に供給することを備え、
    前記コンピュータは、
    第2のバンドルヘッダから第2のIPデータグラムの長さを取得する手段と、
    前記第2のバンドルヘッダの末尾から前記第2のIPデータグラムの長さまでの前記フレームペイロード内の第2の1組のバイトとして第2のIPデータグラムを抽出する手段と、
    前記第2のIPデータグラムを処理できるように前記IP層に供給する手段とをさらに備える、請求項31に記載のコンピュータ。
  36. 前記フレームペイロード内の前記バンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つける手段は、前記フレームペイロード内に含まれるIPデータグラムのマップを前記バンドルヘッダから取得する手段を備え、
    前記フレームペイロードから少なくとも1つのバンドルされたIPデータグラムを抽出する手段は、前記バンドルヘッダから取得された前記マップを使用して前記フレームペイロード内から複数のIPデータグラムを抽出する手段を備え、
    前記抽出されたIPデータグラムを処理できるようにIP層に供給する手段は、前記抽出された複数のIPデータグラムを処理できるように前記IP層に供給する手段を備える、請求項31に記載のコンピュータ。
  37. 有形記憶媒体であって、
    フレームペイロード内に納めることのできるIPデータグラムの数を求めるステップと、
    バンドルヘッダが少なくとも1つのバンドルされたIPデータグラムに関連することを示す情報および前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムの位置を示す情報を含む前記バンドルヘッダを生成するステップと、
    前記バンドルヘッダを少なくとも1つの前記バンドルされたIPデータグラムに連結してデータペイロードを形成するステップと、
    前記フレームがバンドルされたIPデータグラムを含むことをフレームヘッダにおいて示さずに、前記データペイロードを前記フレームペイロードとして通信するステップとをコンピュータのプロセッサに実行させるプロセッサ実行可能なソフトウェア命令が記憶されている有形記憶媒体。
  38. フレームペイロードに納めることのできるIPデータグラムの数を求める前記ステップが、
    通信リンクの現在のフレームサイズを求めるステップと、
    送信用の待ち行列内のIPデータグラムのサイズを求めるステップと、
    前記待ち行列内のIPデータグラムのうちのいくつのIPデータグラムを前記バンドルヘッダと一緒に前記現在のフレームサイズ内に納めることができるかを判定するステップとを含むようなステップをコンピュータのプロセッサに実行させるように構成されたプロセッサ実行可能なソフトウェア命令が記憶されている、請求項37に記載の有形記憶媒体。
  39. バンドルヘッダを生成する前記ステップが、前記現在のフレームサイズ内に納めることのできる前記送信用の待ち行列内の各IPデータグラムについてそれぞれのバンドルヘッダを生成するステップを含み、
    前記バンドルヘッダを少なくとも1つの前記バンドルされたIPデータグラムに連結してデータペイロードを形成する前記ステップが、それぞれの各バンドルヘッダを対応する各IPデータグラムに連結し、それぞれのバンドルヘッダが組み込まれた複数のIPデータグラムを含むデータペイロードを形成するステップを含むようなステップをコンピュータのプロセッサに実行させるように構成されたプロセッサ実行可能なソフトウェア命令が記憶されている、請求項38に記載の有形記憶媒体。
  40. バンドルヘッダを生成する前記ステップが、前記フレームペイロード内にバンドルされた各IPデータグラムの位置を識別するマップを含むバンドルヘッダを生成するステップを含み、
    前記バンドルヘッダを少なくとも1つの前記バンドルされたIPデータグラムに連結してデータペイロードを形成する前記ステップが、前記バンドルヘッダおよび前記現在のフレームサイズ内に納めることのできる前記送信用の待ち行列内のすべての前記IPデータグラムを連結するステップを含むようなステップをコンピュータのプロセッサに実行させるように構成されたプロセッサ実行可能なソフトウェア命令が記憶されている、請求項38に記載の有形記憶媒体。
  41. 前記バンドルヘッダがバンドルされたIPデータグラムに関連することを示す前記情報が、値が1である前記バンドルヘッダ内の最上位ビットを含むようなステップをコンピュータのプロセッサに実行させるように構成されたプロセッサ実行可能なソフトウェア命令が記憶されている、請求項37に記載の有形記憶媒体。
  42. 前記バンドルヘッダがバンドルされたIPデータグラムに関連することを示す前記情報が、値が4でも6でもない前記バンドルヘッダ内の第1のニブルを含むようなステップをコンピュータのプロセッサに実行させるように構成されたプロセッサ実行可能なソフトウェア命令が記憶されている、請求項37に記載の有形記憶媒体。
  43. 有形記憶媒体であって、
    フレームヘッダおよびフレームペイロードを含む通信されたデータのフレームを受信するステップと、
    フレームペイロード内の第1のバイトを検査して、前記フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定するステップと、
    前記フレームペイロードがバンドルされたIPデータグラムを含むことを前記第1のバイトが示す場合に、前記フレームペイロード内のバンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つけるステップと、
    前記フレームペイロードから前記少なくとも1つのバンドルされたIPデータグラムを抽出するステップと、
    前記抽出されたIPデータグラムを処理できるようにIP層に供給するステップとをコンピュータのプロセッサに実行させるように構成されたプロセッサ実行可能なソフトウェア命令が記憶されている有形記憶媒体。
  44. 前記フレームペイロード内の前記第1のバイトを検査して、前記フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定する前記ステップが、前記第1のバイト内の最上位ビットが1に等しいかどうかを判定するステップを含むようなステップをコンピュータのプロセッサに実行させるように構成されたプロセッサ実行可能なソフトウェア命令が記憶されている、請求項43に記載の有形記憶媒体。
  45. 前記フレームペイロード内の前記第1のバイトを検査して、前記フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定する前記ステップが、前記第1のバイト内の第1のニブルが4でも6でもない値を有するかどうかを判定するステップを含むようなステップをコンピュータのプロセッサに実行させるように構成されたプロセッサ実行可能なソフトウェア命令が記憶されている、請求項43に記載の有形記憶媒体。
  46. 前記フレームペイロード内のバンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つける前記ステップが、前記バンドルヘッダの後続の対応するIPデータグラムの長さを取得するステップを含み、
    前記フレームペイロードから少なくとも1つのバンドルされたIPデータグラムを抽出する前記ステップが、前記バンドルヘッダの末尾から前記対応するIPデータグラムの長さまでの前記フレームペイロード内のバイトを抽出するステップを含むようなステップをコンピュータのプロセッサに実行させるように構成されたプロセッサ実行可能なソフトウェア命令が記憶されている、請求項43に記載の有形記憶媒体。
  47. 前記フレームペイロード内の前記バンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つける前記ステップが、第1のバンドルヘッダから第1のIPデータグラムの長さを取得するステップを含み、
    前記フレームペイロードから少なくとも1つのバンドルされたIPデータグラムを抽出する前記ステップが、前記第1のバンドルヘッダの末尾から前記第1のIPデータグラムの長さまでの前記フレームペイロード内の第1の1組のバイトとして第1のIPデータグラムを抽出するステップを含み、
    前記抽出されたIPデータグラムを処理できるようにIP層に供給するステップが、前記第1のIPデータグラムを処理できるように前記IP層に供給するステップを含み、
    前記方法は、
    第2のバンドルヘッダから第2のIPデータグラムの長さを取得するステップと、
    前記第2のバンドルヘッダの末尾から前記第2のIPデータグラムの長さまでの前記フレームペイロード内の第2の1組のバイトとして第2のIPデータグラムを抽出するステップと、
    前記第2のIPデータグラムを処理できるように前記IP層に供給するステップとをさらに含むようなステップをコンピュータのプロセッサに実行させるように構成されたプロセッサ実行可能なソフトウェア命令が記憶されている、請求項43に記載の有形記憶媒体。
  48. 前記フレームペイロード内の前記バンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つける前記ステップが、前記フレームペイロード内に含まれるIPデータグラムのマップを前記バンドルヘッダから取得するステップを含み、
    前記フレームペイロードから少なくとも1つのバンドルされたIPデータグラムを抽出する前記ステップが、前記バンドルヘッダから取得された前記マップを使用して前記フレームペイロード内から複数のIPデータグラムを抽出するステップを含み、
    前記抽出されたIPデータグラムを処理できるようにIP層に供給するステップが、前記抽出された複数のIPデータグラムを処理できるように前記IP層に供給するステップを含むようなステップをコンピュータのプロセッサに実行させるように構成されたプロセッサ実行可能なソフトウェア命令が記憶されている、請求項43に記載の有形記憶媒体。
JP2012513213A 2009-05-26 2010-05-26 可変フレームサイズを有するリンク上でより高いデータ転送速度をサポートする装置および方法 Expired - Fee Related JP5591922B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/471,851 2009-05-26
US12/471,851 US8170027B2 (en) 2009-05-26 2009-05-26 Apparatus and method for supporting higher data rates on links with variable frame sizes
PCT/US2010/036205 WO2010138594A2 (en) 2009-05-26 2010-05-26 Apparatus and method for supporting higher data rates on links with variable frame sizes

Publications (2)

Publication Number Publication Date
JP2012528535A true JP2012528535A (ja) 2012-11-12
JP5591922B2 JP5591922B2 (ja) 2014-09-17

Family

ID=43027649

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012513213A Expired - Fee Related JP5591922B2 (ja) 2009-05-26 2010-05-26 可変フレームサイズを有するリンク上でより高いデータ転送速度をサポートする装置および方法

Country Status (6)

Country Link
US (1) US8170027B2 (ja)
EP (1) EP2436161B1 (ja)
JP (1) JP5591922B2 (ja)
KR (1) KR101330900B1 (ja)
CN (1) CN102439942B (ja)
WO (1) WO2010138594A2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100182970A1 (en) * 2009-01-21 2010-07-22 Qualcomm Incorporated Multiple Subscriptions Using a Single Air-Interface Resource
US20110041128A1 (en) * 2009-08-13 2011-02-17 Mathias Kohlenz Apparatus and Method for Distributed Data Processing
US9038073B2 (en) * 2009-08-13 2015-05-19 Qualcomm Incorporated Data mover moving data to accelerator for processing and returning result data based on instruction received from a processor utilizing software and hardware interrupts
US8788782B2 (en) 2009-08-13 2014-07-22 Qualcomm Incorporated Apparatus and method for memory management and efficient data processing
US8762532B2 (en) * 2009-08-13 2014-06-24 Qualcomm Incorporated Apparatus and method for efficient memory allocation
KR20130046540A (ko) * 2011-10-28 2013-05-08 삼성에스디에스 주식회사 데이터 전송 장치 및 방법
US10425371B2 (en) * 2013-03-15 2019-09-24 Trane International Inc. Method for fragmented messaging between network devices
CN115297198B (zh) * 2022-09-21 2023-01-13 中昊芯英(杭州)科技有限公司 数据处理方法、电路、介质和计算设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004109981A1 (ja) * 2003-06-04 2004-12-16 Mitsubishi Denki Kabushiki Kaisha 基地局および無線端末
US20060153232A1 (en) * 2003-02-28 2006-07-13 Shvodian William M Method and system for dynamic aggregation in a wireless network
JP2007235263A (ja) * 2006-02-27 2007-09-13 Kyocera Corp 通信装置及び通信装置の制御方法
JP2008011026A (ja) * 2006-06-28 2008-01-17 Fujitsu Ltd 送信装置、受信装置、及び通信方法
US8208492B2 (en) * 2007-04-25 2012-06-26 Samsung Electronics Co., Ltd. Method and apparatus for transmitting and receiving packets in a mobile communication system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6157649A (en) * 1995-11-17 2000-12-05 3 Com Corporation Method and system for coordination and control of data streams that terminate at different termination units using virtual tunneling
US7009999B2 (en) * 2003-03-28 2006-03-07 Qualcomm Incorporated Selective variable rate encoding to regulate data frame size
US20040252721A1 (en) * 2003-06-16 2004-12-16 International Business Machines Corporation Bundled internet protocol packets

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060153232A1 (en) * 2003-02-28 2006-07-13 Shvodian William M Method and system for dynamic aggregation in a wireless network
WO2004109981A1 (ja) * 2003-06-04 2004-12-16 Mitsubishi Denki Kabushiki Kaisha 基地局および無線端末
JP2007235263A (ja) * 2006-02-27 2007-09-13 Kyocera Corp 通信装置及び通信装置の制御方法
JP2008011026A (ja) * 2006-06-28 2008-01-17 Fujitsu Ltd 送信装置、受信装置、及び通信方法
US8208492B2 (en) * 2007-04-25 2012-06-26 Samsung Electronics Co., Ltd. Method and apparatus for transmitting and receiving packets in a mobile communication system

Also Published As

Publication number Publication date
EP2436161B1 (en) 2017-11-08
US8170027B2 (en) 2012-05-01
KR101330900B1 (ko) 2013-11-18
KR20120014595A (ko) 2012-02-17
WO2010138594A3 (en) 2011-02-24
US20100303074A1 (en) 2010-12-02
CN102439942A (zh) 2012-05-02
CN102439942B (zh) 2015-09-16
JP5591922B2 (ja) 2014-09-17
EP2436161A2 (en) 2012-04-04
WO2010138594A2 (en) 2010-12-02

Similar Documents

Publication Publication Date Title
JP5591922B2 (ja) 可変フレームサイズを有するリンク上でより高いデータ転送速度をサポートする装置および方法
CN113411313B (zh) 数据传输方法、装置和系统
US9185073B2 (en) Systems and methods for data packet processing
US11563829B2 (en) Simple ethernet header compression
US6831908B2 (en) Data communication system and method
US8140709B2 (en) Two stage internet protocol header compression
JP2002510919A (ja) 無線端末装置と移動ipルータ間のパケット・データ伝送方法
WO2022022229A1 (zh) 一种处理报文的方法及装置
JP2007502075A (ja) 無線通信デバイス上でアプリケーションを効率的に実行させる装置及び方法
US20220393908A1 (en) Message Encapsulation Method and Apparatus, and Message Decapsulation Method and Apparatus
CN110535812B (zh) 报文传输方法、通信装置和系统
WO2016015441A1 (zh) 一种业务数据管理的方法、装置及系统
CN111343109A (zh) 一种数据传输方法、装置及其相关设备
CN114301576A (zh) 用于在ieee 802.15.4网络中生成和发送应答帧的方法及通信装置
JP5070125B2 (ja) 受信装置及びその方法、通信システム及びその方法、並びに、プログラム
CN108848202B (zh) 电子装置、数据传输方法及相关产品
CN116095197B (zh) 数据传输方法及相关装置
CN115514828A (zh) 数据传输方法及电子设备
CN114697269A (zh) 数据通信方法、装置、设备和介质
US20060187922A1 (en) Packet communication device
CN114079675B (zh) 报文处理方法、装置、终端设备及移动宽带上网设备
CN114556894A (zh) 用于分组转发控制协议消息捆绑的方法、装置和计算机程序产品
JP4581925B2 (ja) データ転送装置およびデータ転送方法
JP7176237B2 (ja) 情報伝送方法、装置及び電子機器
CN111954265B (zh) 一种生成包头的方法及终端、存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130408

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130416

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130716

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130813

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140425

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140730

R150 Certificate of patent or registration of utility model

Ref document number: 5591922

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