(57)【特許請求の範囲】
【請求項１】
可変フレームサイズを有した通信リンクを介してインターネットプロトコル(IP)データグラムを送信する方法であって、
現在のフレームサイズでフレームペイロード内に納めることのできるIPデータグラムの数を求めるステップと、
前記現在のフレームサイズ内に納まる各IPデータグラムについてそれぞれのバンドルヘッダを生成するステップと、
前記それぞれのバンドルヘッダを対応する各IPデータグラムに連結してそれぞれのバンドルヘッダが組み込まれた複数のIPデータグラムを含むデータペイロードを形成するステップと、
前記フレームがバンドルされたIPデータグラムを含むことをフレームヘッダにおいて示さずに、前記データペイロードを前記フレームペイロードとして通信するステップとを含み、
前記それぞれのバンドルヘッダは、前記それぞれのバンドルヘッダがIPデータグラムヘッダではなく、対応するIPデータグラムがバンドルされていることを示す情報を含む、方法。
【請求項２】
フレームペイロード内に納めることのできるIPデータグラムの数を求める前記ステップは、
前記通信リンクの前記現在のフレームサイズを求めるステップと、
送信用の待ち行列内の前記IPデータグラムのサイズを求めるステップと、
前記待ち行列内の前記IPデータグラムのうちのいくつのIPデータグラムをバンドルヘッダと一緒に前記現在のフレームサイズ内に納めることができるかを判定するステップとを含む、請求項1に記載の方法。
【請求項３】
前記情報は、値が1である前記バンドルヘッダ内の最上位ビットを含む、請求項1に記載の方法。
【請求項４】
前記情報は、値が4でも6でもない前記バンドルヘッダ内の第1のニブルを含む、請求項1に記載の方法。
【請求項５】
可変フレームサイズを有した通信リンクを介してインターネットプロトコル(IP)データグラムを送信する方法であって、
現在のフレームサイズでフレームペイロード内に納めることのできるIPデータグラムの数を求めるステップと、
前記フレームペイロード内にバンドルされる各IPデータグラムの位置を識別するマップを含む１つのバンドルヘッダを生成するステップと、
前記バンドルヘッダを前記現在のフレームサイズ内に納めることのできる送信用の待ち行列内のすべての前記IPデータグラムの先頭に連結してデータペイロードを形成するステップと、
前記フレームがバンドルされたIPデータグラムを含むことをフレームヘッダにおいて示さずに、前記データペイロードを前記フレームペイロードとして通信するステップとを含み、
前記マップは、前記すべてのIPデータグラムを復元するために受信側で使用され、
前記バンドルヘッダは、前記バンドルヘッダがIPデータグラムヘッダではなく、IPデータグラムがバンドルされていることを示す情報を含む、方法。
【請求項６】
フレームペイロード内に納めることのできるIPデータグラムの数を求める前記ステップは、
前記通信リンクの前記現在のフレームサイズを求めるステップと、
送信用の待ち行列内の前記IPデータグラムのサイズを求めるステップと、
前記待ち行列内の前記IPデータグラムのうちのいくつのIPデータグラムをバンドルヘッダと一緒に前記現在のフレームサイズ内に納めることができるかを判定するステップとを含む、請求項5に記載の方法。
【請求項７】
前記情報は、値が1である前記バンドルヘッダ内の最上位ビットを含む、請求項5に記載の方法。
【請求項８】
前記情報は、値が4でも6でもない前記バンドルヘッダ内の第1のニブルを含む、請求項5に記載の方法。
【請求項９】
請求項3、4、7、又は8に記載の方法に従って送信されたインターネットプロトコル(IP)データグラムを受信する方法であって、
フレームヘッダおよびフレームペイロードを含む通信されるデータのフレームを受信するステップと、
前記フレームペイロード内の第1のバイトを検査して、前記フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定するステップと、
前記フレームペイロードがバンドルされたIPデータグラムを含むことを前記第1のバイトが示す場合に、前記フレームペイロード内のバンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つけるステップと、
前記フレームペイロードから前記少なくとも1つのバンドルされたIPデータグラムを抽出するステップと、
前記抽出されたIPデータグラムを処理できるようにIP層に供給するステップとを含む方法。
【請求項１０】
前記フレームペイロード内の第1のバイトを検査して、前記フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定する前記ステップは、前記第1のバイト内の最上位ビットが1に等しいかどうかを判定するステップを含む、請求項3又は7に従属する請求項9に記載の方法。
【請求項１１】
前記フレームペイロード内の第1のバイトを検査して、前記フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定する前記ステップは、前記第1のバイト内の第1のニブルが4でも6でもない値を有するかどうかを判定するステップを含む、請求項4又は8に従属する請求項9に記載の方法。
【請求項１２】
前記フレームペイロード内のバンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つける前記ステップは、前記バンドルヘッダの後続の対応するIPデータグラムの長さを取得するステップを含み、
前記フレームペイロードから前記少なくとも1つのバンドルされたIPデータグラムを抽出する前記ステップは、前記バンドルヘッダの末尾から前記対応するIPデータグラムの長さまでの前記フレームペイロード内のバイトを抽出するステップを含む、請求項9に記載の方法。
【請求項１３】
前記フレームペイロード内のバンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つける前記ステップは、前記フレームペイロード内に含まれるIPデータグラムのマップを前記バンドルヘッダから取得するステップを含み、
前記フレームペイロードから前記少なくとも1つのバンドルされたIPデータグラムを抽出する前記ステップは、前記バンドルヘッダから取得された前記マップを使用して前記フレームペイロード内から複数のIPデータグラムを抽出するステップを含み、
前記抽出されたIPデータグラムを処理できるようにIP層に供給する前記ステップは、前記抽出された複数のIPデータグラムを処理できるように前記IP層に供給するステップを含む、請求項7又は8に従属する請求項9に記載の方法。
【請求項１４】
可変フレームサイズを有した通信リンクを介してインターネットプロトコル(IP)データグラムを送信する方法を実行するコンピュータであって、
プロセッサと、
前記プロセッサに結合されたメモリとを備え、
前記プロセッサは、
現在のフレームサイズでフレームペイロード内に納めることのできるIPデータグラムの数を求めるステップと、
前記現在のフレームサイズ内に納まる各IPデータグラムについてそれぞれのバンドルヘッダを生成するステップと、
前記それぞれのバンドルヘッダを対応する各IPデータグラムに連結してそれぞれのバンドルヘッダが組み込まれた複数のIPデータグラムを含むデータペイロードを形成するステップと、
前記フレームがバンドルされたIPデータグラムを含むことをフレームヘッダにおいて示さずに、前記データペイロードを前記フレームペイロードとして通信するステップとを実行するソフトウェア命令を含むように構成され、
前記それぞれのバンドルヘッダは、前記それぞれのバンドルヘッダがIPデータグラムヘッダではなく、対応するIPデータグラムがバンドルされていることを示す情報を含む、コンピュータ。
【請求項１５】
フレームペイロード内に納めることのできるIPデータグラムの数を求める前記ステップが、
前記通信リンクの前記現在のフレームサイズを求めるステップと、
送信用の待ち行列内の前記IPデータグラムのサイズを求めるステップと、
前記待ち行列内の前記IPデータグラムのうちのいくつのIPデータグラムを前記バンドルヘッダと一緒に前記現在のフレームサイズ内に納めることができるかを判定するステップとを含む、請求項14に記載のコンピュータ。
【請求項１６】
前記情報は、値が1である前記バンドルヘッダ内の最上位ビットを含む、請求項14に記載のコンピュータ。
【請求項１７】
前記情報は、値が4でも6でもない前記バンドルヘッダ内の第1のニブルを含む、請求項14に記載のコンピュータ。
【請求項１８】
可変フレームサイズを有した通信リンクを介してインターネットプロトコル(IP)データグラムを送信する方法を実行するコンピュータであって、
プロセッサと、
前記プロセッサに結合されたメモリとを備え、
前記プロセッサは、
現在のフレームサイズでフレームペイロード内に納めることのできるIPデータグラムの数を求めるステップと、
前記フレームペイロード内にバンドルされる各IPデータグラムの位置を識別するマップを含む１つのバンドルヘッダを生成するステップと、
前記バンドルヘッダを前記現在のフレームサイズ内に納めることのできる送信用の待ち行列内のすべての前記IPデータグラムの先頭に連結してデータペイロードを形成するステップと、
前記フレームがバンドルされたIPデータグラムを含むことをフレームヘッダにおいて示さずに、前記データペイロードを前記フレームペイロードとして通信するステップとを実行するソフトウェア命令を含むように構成され、
前記マップは、前記すべてのIPデータグラムを復元するために受信側で使用され、
前記バンドルヘッダは、前記バンドルヘッダがIPデータグラムヘッダではなく、IPデータグラムがバンドルされていることを示す情報を含む、コンピュータ。
【請求項１９】
フレームペイロード内に納めることのできるIPデータグラムの数を求める前記ステップが、
前記通信リンクの前記現在のフレームサイズを求めるステップと、
送信用の待ち行列内の前記IPデータグラムのサイズを求めるステップと、
前記待ち行列内の前記IPデータグラムのうちのいくつのIPデータグラムを前記バンドルヘッダと一緒に前記現在のフレームサイズ内に納めることができるかを判定するステップとを含む、請求項18に記載のコンピュータ。
【請求項２０】
前記情報は、値が1である前記バンドルヘッダ内の最上位ビットを含む、請求項18に記載のコンピュータ。
【請求項２１】
前記情報は、値が4でも6でもない前記バンドルヘッダ内の第1のニブルを含む、請求項18に記載のコンピュータ。
【請求項２２】
請求項16、17、20、又は21に記載のコンピュータによって実行される方法に従って送信されたインターネットプロトコル(IP)データグラムを受信する方法を実行するコンピュータであって、
プロセッサと、
前記プロセッサに結合されたメモリとを備え、
前記プロセッサは、
フレームペイロード内の第1のバイトを検査して、前記フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定するステップと、
前記フレームペイロードがバンドルされたIPデータグラムを含むことを前記第1のバイトが示す場合に、前記フレームペイロード内のバンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つけるステップと、
前記フレームペイロードから前記少なくとも1つのバンドルされたIPデータグラムを抽出するステップと、
前記抽出されたIPデータグラムを処理できるようにIP層に供給するステップとを実行するソフトウェア命令を含むように構成されるコンピュータ。
【請求項２３】
フレームペイロード内の第1のバイトを検査して、前記フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定する前記ステップが、前記第1のバイト内の最上位ビットが1に等しいかどうかを判定するステップを含む、請求項16又は20に従属する請求項22に記載のコンピュータ。
【請求項２４】
フレームペイロード内の第1のバイトを検査して、前記フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定する前記ステップが、前記第1のバイト内の第1のニブルが4でも6でもない値を有するかどうかを判定するステップを含む、請求項17又は21に従属する請求項22に記載のコンピュータ。
【請求項２５】
前記フレームペイロード内のバンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つける前記ステップが、前記バンドルヘッダの後続の対応するIPデータグラムの長さを取得するステップを含み、
前記フレームペイロードから前記少なくとも1つのバンドルされたIPデータグラムを抽出する前記ステップが、前記バンドルヘッダの末尾から前記対応するIPデータグラムの長さまでの前記フレームペイロード内のバイトを抽出するステップを含む、請求項22に記載のコンピュータ。
【請求項２６】
前記フレームペイロード内のバンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つける前記ステップが、前記バンドルヘッダの後続の対応するIPデータグラムの長さを取得するステップを含み、
前記フレームペイロードから前記少なくとも1つのバンドルされたIPデータグラムを抽出する前記ステップが、前記バンドルヘッダの末尾から前記対応するIPデータグラムの長さまでの前記フレームペイロード内のバイトを抽出するステップを含む、請求項20又は21に従属する請求項22に記載のコンピュータ。
【請求項２７】
可変フレームサイズを有した通信リンクを介してインターネットプロトコル(IP)データグラムを送信するコンピュータであって、
現在のフレームサイズでフレームペイロード内に納めることのできるIPデータグラムの数を求める手段と、
前記現在のフレームサイズ内に納まる各IPデータグラムについてそれぞれのバンドルヘッダを生成する手段と、
前記それぞれのバンドルヘッダを対応する各IPデータグラムに連結してそれぞれのバンドルヘッダが組み込まれた複数のIPデータグラムを含むデータペイロードを形成する手段と、
前記フレームがバンドルされたIPデータグラムを含むことをフレームヘッダにおいて示さずに、前記データペイロードを前記フレームペイロードとして通信する手段とを備え、
前記それぞれのバンドルヘッダは、前記それぞれのバンドルヘッダがIPデータグラムヘッダではなく、対応するIPデータグラムがバンドルされていることを示す情報を含む、コンピュータ。
【請求項２８】
フレームペイロード内に納めることのできるIPデータグラムの数を求める手段は、
前記通信リンクの前記現在のフレームサイズを求める手段と、
送信用の待ち行列内の前記IPデータグラムのサイズを求める手段と、
前記待ち行列内の前記IPデータグラムのうちのいくつのIPデータグラムを前記バンドルヘッダと一緒に前記現在のフレームサイズ内に納めることができるかを判定する手段とを備える、請求項27に記載のコンピュータ。
【請求項２９】
前記情報は、値が1である前記バンドルヘッダ内の最上位ビットを含む、請求項27に記載のコンピュータ。
【請求項３０】
前記情報は、値が4でも6でもない前記バンドルヘッダ内の第1のニブルを含む、請求項27に記載のコンピュータ。
【請求項３１】
可変フレームサイズを有した通信リンクを介してインターネットプロトコル(IP)データグラムを送信するコンピュータであって、
現在のフレームサイズでフレームペイロード内に納めることのできるIPデータグラムの数を求める手段と、
前記フレームペイロード内にバンドルされる各IPデータグラムの位置を識別するマップを含む１つのバンドルヘッダを生成する手段と、
前記バンドルヘッダを前記現在のフレームサイズ内に納めることのできる送信用の待ち行列内のすべての前記IPデータグラムの先頭に連結してデータペイロードを形成する手段と、
前記フレームがバンドルされたIPデータグラムを含むことをフレームヘッダにおいて示さずに、前記データペイロードを前記フレームペイロードとして通信する手段とを備え、
前記マップは、前記すべてのIPデータグラムを復元するために受信側で使用され、
前記バンドルヘッダは、前記バンドルヘッダがIPデータグラムヘッダではなく、IPデータグラムがバンドルされていることを示す情報を含む、コンピュータ。
【請求項３２】
フレームペイロード内に納めることのできるIPデータグラムの数を求める手段は、
前記通信リンクの前記現在のフレームサイズを求める手段と、
送信用の待ち行列内の前記IPデータグラムのサイズを求める手段と、
前記待ち行列内の前記IPデータグラムのうちのいくつのIPデータグラムを前記バンドルヘッダと一緒に前記現在のフレームサイズ内に納めることができるかを判定する手段とを備える、請求項31に記載のコンピュータ。
【請求項３３】
前記情報は、値が1である前記バンドルヘッダ内の最上位ビットを含む、請求項31に記載のコンピュータ。
【請求項３４】
前記情報は、値が4でも6でもない前記バンドルヘッダ内の第1のニブルを含む、請求項31に記載のコンピュータ。
【請求項３５】
請求項29、30、33、又は34に記載のコンピュータによって送信されたインターネットプロトコル(IP)データグラムを受信するコンピュータであって、
フレームヘッダおよびフレームペイロードを含む通信されたデータのフレームを受信する手段と、
前記フレームペイロード内の第1のバイトを検査して、前記フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定する手段と、
前記フレームペイロードがバンドルされたIPデータグラムを含むことを前記第1のバイトが示す場合に、前記フレームペイロード内のバンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つける手段と、
前記フレームペイロードから前記少なくとも1つのバンドルされたIPデータグラムを抽出する手段と、
前記抽出されたIPデータグラムを処理できるようにIP層に供給する手段とを備えるコンピュータ。
【請求項３６】
前記フレームペイロード内の第1のバイトを検査して、前記フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定する手段は、前記第1のバイト内の最上位ビットが1に等しいかどうかを判定する手段を備える、請求項29又は33に従属する請求項35に記載のコンピュータ。
【請求項３７】
前記フレームペイロード内の第1のバイトを検査して、前記フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定する手段は、前記第1のバイト内の第1のニブルが4でも6でもない値を有するかどうかを判定する手段を備える、請求項30又は34に従属する請求項35に記載のコンピュータ。
【請求項３８】
前記フレームペイロード内のバンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つける手段は、前記バンドルヘッダの後続の対応するIPデータグラムの長さを取得する手段を含み、
前記フレームペイロードから前記少なくとも1つのバンドルされたIPデータグラムを抽出する手段は、前記バンドルヘッダの末尾から前記対応するIPデータグラムの長さまでの前記フレームペイロード内のバイトを抽出する手段を備える、請求項35に記載のコンピュータ。
【請求項３９】
前記フレームペイロード内のバンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つける手段は、前記フレームペイロード内に含まれるIPデータグラムのマップを前記バンドルヘッダから取得する手段を備え、
前記フレームペイロードから前記少なくとも1つのバンドルされたIPデータグラムを抽出する手段は、前記バンドルヘッダから取得された前記マップを使用して前記フレームペイロード内から複数のIPデータグラムを抽出する手段を備え、
前記抽出されたIPデータグラムを処理できるようにIP層に供給する手段は、前記抽出された複数のIPデータグラムを処理できるように前記IP層に供給する手段を備える、請求項33又は34に従属する請求項35に記載のコンピュータ。
【請求項４０】
可変フレームサイズを有した通信リンクを介してインターネットプロトコル(IP)データグラムを送信する方法をコンピュータのプロセッサに実行させるプロセッサ実行可能なソフトウェア命令が記憶されているコンピュータ読み取り可能な有形記憶媒体であって、
前記方法は、
現在のフレームサイズでフレームペイロード内に納めることのできるIPデータグラムの数を求めるステップと、
前記現在のフレームサイズ内に納まる各IPデータグラムについてそれぞれのバンドルヘッダを生成するステップと、
前記それぞれのバンドルヘッダを対応する各IPデータグラムに連結してそれぞれのバンドルヘッダが組み込まれた複数のIPデータグラムを含むデータペイロードを形成するステップと、
前記フレームがバンドルされたIPデータグラムを含むことをフレームヘッダにおいて示さずに、前記データペイロードを前記フレームペイロードとして通信するステップとを含み、
前記それぞれのバンドルヘッダは、前記それぞれのバンドルヘッダがIPデータグラムヘッダではなく、対応するIPデータグラムがバンドルされていることを示す情報を含む、コンピュータ読み取り可能な有形記憶媒体。
【請求項４１】
フレームペイロード内に納めることのできるIPデータグラムの数を求める前記ステップが、
前記通信リンクの前記現在のフレームサイズを求めるステップと、
送信用の待ち行列内の前記IPデータグラムのサイズを求めるステップと、
前記待ち行列内の前記IPデータグラムのうちのいくつのIPデータグラムを前記バンドルヘッダと一緒に前記現在のフレームサイズ内に納めることができるかを判定するステップとを含む、請求項40に記載のコンピュータ読み取り可能な有形記憶媒体。
【請求項４２】
前記情報は、値が1である前記バンドルヘッダ内の最上位ビットを含む、請求項40に記載のコンピュータ読み取り可能な有形記憶媒体。
【請求項４３】
前記情報は、値が4でも6でもない前記バンドルヘッダ内の第1のニブルを含む、請求項40に記載のコンピュータ読み取り可能な有形記憶媒体。
【請求項４４】
可変フレームサイズを有した通信リンクを介してインターネットプロトコル(IP)データグラムを送信する方法をコンピュータのプロセッサに実行させるプロセッサ実行可能なソフトウェア命令が記憶されているコンピュータ読み取り可能な有形記憶媒体であって、
前記方法は、
現在のフレームサイズでフレームペイロード内に納めることのできるIPデータグラムの数を求めるステップと、
前記フレームペイロード内にバンドルされる各IPデータグラムの位置を識別するマップを含む１つのバンドルヘッダを生成するステップと、
前記バンドルヘッダを前記現在のフレームサイズ内に納めることのできる送信用の待ち行列内のすべての前記IPデータグラムの先頭に連結してデータペイロードを形成するステップと、
前記フレームがバンドルされたIPデータグラムを含むことをフレームヘッダにおいて示さずに、前記データペイロードを前記フレームペイロードとして通信するステップとを含み、
前記マップは、前記すべてのIPデータグラムを復元するために受信側で使用され、
前記バンドルヘッダは、前記バンドルヘッダがIPデータグラムヘッダではなく、IPデータグラムがバンドルされていることを示す情報を含む、コンピュータ読み取り可能な有形記憶媒体。
【請求項４５】
フレームペイロード内に納めることのできるIPデータグラムの数を求める前記ステップが、
前記通信リンクの前記現在のフレームサイズを求めるステップと、
送信用の待ち行列内の前記IPデータグラムのサイズを求めるステップと、
前記待ち行列内の前記IPデータグラムのうちのいくつのIPデータグラムを前記バンドルヘッダと一緒に前記現在のフレームサイズ内に納めることができるかを判定するステップとを含む、請求項44に記載のコンピュータ読み取り可能な有形記憶媒体。
【請求項４６】
前記情報は、値が1である前記バンドルヘッダ内の最上位ビットを含む、請求項44に記載のコンピュータ読み取り可能な有形記憶媒体。
【請求項４７】
前記情報は、値が4でも6でもない前記バンドルヘッダ内の第1のニブルを含む、請求項44に記載のコンピュータ読み取り可能な有形記憶媒体。
【請求項４８】
請求項42、43、46、又は47に記載のコンピュータ読み取り可能な有形記憶媒体に記録されているプロセッサ実行可能なソフトウェア命令がコンピュータのプロセッサに実行させる方法に従って送信されたインターネットプロトコル(IP)データグラムを受信する方法をコンピュータのプロセッサに実行させるプロセッサ実行可能なソフトウェア命令が記憶されているコンピュータ読み取り可能な有形記憶媒体であって、
前記方法は、
フレームヘッダおよびフレームペイロードを含む通信されたデータのフレームを受信するステップと、
フレームペイロード内の第1のバイトを検査して、前記フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定するステップと、
前記フレームペイロードがバンドルされたIPデータグラムを含むことを前記第1のバイトが示す場合に、前記フレームペイロード内のバンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つけるステップと、
前記フレームペイロードから前記少なくとも1つのバンドルされたIPデータグラムを抽出するステップと、
前記抽出されたIPデータグラムを処理できるようにIP層に供給するステップとを含むコンピュータ読み取り可能な有形記憶媒体。
【請求項４９】
フレームペイロード内の第1のバイトを検査して、前記フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定する前記ステップが、前記第1のバイト内の最上位ビットが1に等しいかどうかを判定するステップを含む、請求項42又は46に従属する請求項48に記載のコンピュータ読み取り可能な有形記憶媒体。
【請求項５０】
フレームペイロード内の第1のバイトを検査して、前記フレームペイロードがバンドルされたIPデータグラムを含むかどうかを判定する前記ステップが、前記第1のバイト内の第1のニブルが4でも6でもない値を有するかどうかを判定するステップを含む、請求項43又は47に従属する請求項48に記載のコンピュータ読み取り可能な有形記憶媒体。
【請求項５１】
前記フレームペイロード内のバンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つける前記ステップが、前記バンドルヘッダの後続の対応するIPデータグラムの長さを取得するステップを含み、
前記フレームペイロードから前記少なくとも1つのバンドルされたIPデータグラムを抽出する前記ステップが、前記バンドルヘッダの末尾から前記対応するIPデータグラムの長さまでの前記フレームペイロード内のバイトを抽出するステップを含む、請求項48に記載のコンピュータ読み取り可能な有形記憶媒体。
【請求項５２】
前記フレームペイロード内のバンドルヘッダから情報を取得し、前記フレームペイロード内の少なくとも1つのバンドルされたIPデータグラムを見つける前記ステップが、前記フレームペイロード内に含まれるIPデータグラムのマップを前記バンドルヘッダから取得するステップを含み、
前記フレームペイロードから前記少なくとも1つのバンドルされたIPデータグラムを抽出する前記ステップが、前記バンドルヘッダから取得された前記マップを使用して前記フレームペイロード内から複数のIPデータグラムを抽出するステップを含み、
前記抽出されたIPデータグラムを処理できるようにIP層に供給する前記ステップが、前記抽出された複数のIPデータグラムを処理できるように前記IP層に供給するステップを含む、請求項46又は47に従属する請求項48に記載のコンピュータ読み取り可能な有形記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル通信方法に関し、より詳細には、可変フレームサイズをサポートするリンク上で高データ転送速度をサポートする方法に関する。
【背景技術】
【０００２】
有線および無線のデータ通信技術が進歩することによって、通信ネットワークのデータ転送速度が急激に速くなるともに通信ネットワークの容量が急激に増大している。携帯デバイスおよびパーソナルコンピュータによってアクセス可能な新しい高速データリンクが実施されている。新しい高速データリンク用の通信リンク層フレームは、かなり大きく、数キロバイト以上であることが多い。リンク層フレームのサイズが大きくなっているにもかかわらず、フレームで転送されるインターネットプロトコル(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  サーバ
【図１Ａ】
0005591922.tif 000002
【図１Ｂ】
0005591922.tif 000003
【図２Ａ】
0005591922.tif 000004
【図２Ｂ】
0005591922.tif 000005
【図３Ａ】
0005591922.tif 000006
【図３Ｂ】
0005591922.tif 000007
【図４】
0005591922.tif 000008
【図５】
0005591922.tif 000009
【図６】
0005591922.tif 000010
【図７】
0005591922.tif 000011
【図８】
0005591922.tif 000012
【図９】
0005591922.tif 000013
【図１０】
0005591922.tif 000014
【図１１】
0005591922.tif 000015
【図１２】
0005591922.tif 000016