JP2005150951A - 受信装置、通信システム及びプログラム - Google Patents

受信装置、通信システム及びプログラム Download PDF

Info

Publication number
JP2005150951A
JP2005150951A JP2003382857A JP2003382857A JP2005150951A JP 2005150951 A JP2005150951 A JP 2005150951A JP 2003382857 A JP2003382857 A JP 2003382857A JP 2003382857 A JP2003382857 A JP 2003382857A JP 2005150951 A JP2005150951 A JP 2005150951A
Authority
JP
Japan
Prior art keywords
data
written
storage area
unit
segment
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
JP2003382857A
Other languages
English (en)
Other versions
JP4203400B2 (ja
Inventor
Kazunori Yamamoto
和徳 山本
Motoharu Miyake
基治 三宅
Hiroshi Inamura
浩 稲村
Osamu Takahashi
修 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2003382857A priority Critical patent/JP4203400B2/ja
Publication of JP2005150951A publication Critical patent/JP2005150951A/ja
Application granted granted Critical
Publication of JP4203400B2 publication Critical patent/JP4203400B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】上位層へ渡すデータユニットの順序制御をデータリンク層にて行う機能を有する受信装置を用いた通信において通信網の実質的な利用率を向上させる。
【解決手段】移動機10のCPU11は、定期的に、トランスポート層の通信プロトコルを特定し、特定した通信プロトコルから定まる、通信網の利用率の低下を招かない条件を示す条件情報を取得し、この条件情報を条件領域132に書き込む。また、CPU11は、無線部14を用いてSDUを受信し、当該SDUが引き渡し領域133に即座に書き込まれた場合に引き渡し領域133へのSDUの書き込み履歴が上記条件を満たすかを判定し、受信したSDUを、満たす場合には引き渡し領域133に、満たさない場合には退避領域131に書き込む。また、CPU11は、引き渡し領域133に、退避領域131上のSDUを、当該SDUよりも先に書き込まれるべき全てのSDUが書き込まれた後に書き込む。
【選択図】 図8

Description

本発明は、データリンク層およびトランスポート層における通信制御技術に関する。
OSI階層モデルにおけるデータリンク層の通信プロトコルの1つに、無線リンクの制御のために標準化されたRLC(Radio Link Control)プロトコルがある。RLCプロトコルは、非特許文献1に示されるように、3GPP(3rd Generation Partnership Project)において提案されたものであり、RLCプロトコルには、データリンク層を構成する2つの副層のうち、上位側のRLC副層にて通信ノードが行う操作(通信処理)が定められている。
RLC副層における操作のモードには、AM(Acknowledgement Mode)、UM(Unacknowledgement Mode)、及びTM(Transparent Mode)があり、操作モードがAMのRLC副層にて送信操作を行う送信ノードとの間でデータ転送可能な受信ノードは、操作モードがAMのRLC副層にて受信操作を行う受信ノードのみである。RLC副層における操作モードのうち、本発明が解決しようとする課題に関係するのはAMのみであるから、以降、操作モードがAMのRLC副層に着目して説明する。なお、以降の説明において、「RLC副層」は、操作モードがAMのRLC副層を意味する。
RLC副層では、送信ノードと受信ノード間のデータ転送が、上位層との間で受け渡されるデータユニット(以降、SDU(Service Data Unit)と称す)の先頭から順に切り出された部分データにヘッダを付加して生成されるデータユニット(以降、PDU(Protocol Data Unit)と称す)を用いて行われる。PDUのヘッダには、当該PDUが生成された順序を示すシーケンス番号と切り出し元のSDUの長さ情報が含まれている。また、RLC副層では、データ転送において消失したPDUがシーケンス番号を用いた選択再送(Selective Repeat)により再送される。なお、以降の説明では、「SDU」及び「PDU」はRLC副層におけるSDU及びPDUを意味する。
ところで、無線リンクは有線の通信リンクに比較してデータ転送における誤り率が高い。このため、再送されたPDUが再び消失することも起こり易い。つまり、再送遅延が大きい。したがって、RLC副層では、PDUのみならず、SDUの受信順序(厳密には、SDUの組み立てに必要なPDUをMAC(Medium Access Control)副層から渡され終える時点の後先)まで入れ替わる可能性がある。このようなSDUの受信順序の入れ替わりによる影響を、上位層に比較して再送コストが低いRLC副層にて吸収するために、RLC副層では、受信ノードがSDUの順序制御を行う。具体的には、受信ノードは、SDUの受信順序が入れ替わり、未受信のSDUよりも後に上位層へ渡すべきSDUを先に受信した場合、このSDUを、未受信のSDUを受信して上位層に渡すまで保持する。このような順序制御により、SDUが送信ノードにて上位層から渡された順序で受信ノードにてRLC副層から上位層に渡されることが保証されている。なお、SDUの受信順序の入れ替わりを検出するためには、受信ノードが、送信ノードにてSDUが上位層からRLC副層へ渡された順序を把握する必要がある。この把握は、PDUのヘッダに含まれているシーケンス番号と長さ情報を用いることで実現可能である。
しかし、このような順序制御によるSDUの遅延は、通信網の実質的な利用率を低下させる原因となる。なお、「通信網の利用率」は、通信網により提供された網資源の容量(例えば、利用可能な通信リンクの帯域幅や当該通信リンクを利用可能な期間)に対する実際に利用した網資源の量の比率を意味し、「通信網の実質的な利用率」は、通信網により提供された網資源の容量に対する有効に利用した網資源の量の比率を意味する。RLC副層におけるSDUの遅延が通信網の実質的な利用率の低下を招くことになる理由は、トランスポート層で行われるデータ転送の種類によって異なるため、場合分けして説明する。
[バルクデータ転送の場合]
バルクデータ転送では、一般に、上位層にて、通信網に滞留するデータ量を調節して通信網の利用率を適切に保つフロー制御が行われる。このようなフロー制御の一例としては、TCP(Transmission Control Protocol)における輻輳制御が挙げられる。TCPのフロー制御では、送信ノードが受信ノードから通知される確認応答セグメントによって、データユニットが通信網から正しく抜け出したことを確認した後、データユニットを新たに送出することで、通信網に滞留するデータ量を管理している。したがって、RLCのように、順序制御等の目的で、既に受信したデータユニットを遅延させてから上位層へ渡す場合、確認応答の通知も遅延することになり、その間、送信ノードはデータユニットの送信を中断することになる。こうしたフロー制御の遅れは、通信網に滞留するデータを減少させ、通信網の実質的な利用率の低下を招く要因になる。
[ストリーミング転送の場合]
ストリーミング転送では、一般に、データの遅延に制約がある。したがって、RLC副層のように、上位層へ渡すことが可能なデータユニットを遅延させてから上位層へ渡すことがあり得る層がトランスポート層の下位に存在すると、トランスポート層にて、受信ノードが既に役に立たなくなっているデータユニットを受け取る可能性が高くなる。このようなデータユニットは破棄され、利用されないから、このようなデータユニットの転送に用いられた網資源は無駄に使用されたことになる。これが、通信網の実質的な利用率の低下を招く理由である。
このような不都合を避けるために、RLC副層にてSDUの順序制御を行わないようにすることが考えられる。このようにすれば、RLC副層におけるSDUの遅延に起因した通信網の実質的な利用率の低下は生じない。しかし、トランスポート層において、SDUの入れ替わりをSDUのロスと誤認識してしまい、不適切な再送制御やフロー制御が行われる可能性がある。そもそも、RLC副層にてSDUの順序制御を行うようにした理由に立ち返れば明らかなように、このような順序制御は、SDUの遅延による悪影響を度外視すれば、通信網の実質的な利用率の向上に寄与している。したがって、RLC副層にてSDUの順序制御を行わないようにしても、通信網の実質的な利用率が低下する虞がある。
"3GPP specification: 25.322"、[online]、The 3rd Generation Partnership Project、[平成15年8月29日検索]、インターネット<URL:http://www.3gpp.org/ftp/Specs/html-info/25322.html>
本発明は、上述した背景の下になされたものであり、上位層へ渡すデータユニットの順序制御をデータリンク層にて行う機能を有する受信装置を用いた通信において通信網の実質的な利用率を向上させる技術を提供することを目的とする。
本発明は、記憶領域を有する記憶手段と、データリンク層にて、上位層からデータリンク層に引き渡された順序で前記記憶領域に書き込まれるべきデータユニットを受信する受信手段と、トランスポート層の通信プロトコルから定まる条件であって通信網の利用率の低下を招かない条件を示す情報を取得する取得手段と、前記受信されたデータユニットを前記記憶領域に書き込む書き込み手段と、前記受信されたデータユニットが前記書き込み手段により前記記憶領域へ即座に書き込まれた場合に前記記憶領域へのデータユニットの書き込み履歴が前記取得手段に取得された情報により示される条件を満たすか否かを判定する条件判定手段と、前記条件判定手段による判定結果が否定的な場合にのみ、前記受信されたデータユニットの前記記憶領域に書き込まれるタイミングが、前記受信されたデータユニットよりも先に前記記憶領域に書き込まれるべき未受信のデータユニットが前記記憶領域に書き込まれるタイミングよりも後になるように、前記書き込み手段を制御する制御手段と、前記上位層にて、前記記憶領域に書き込まれたデータユニットを書き込まれた順に読み出す読み出し手段とを有する受信装置を提供する。
また、本発明は、コンピュータに、トランスポート層の通信プロトコルから定まる条件であって通信網の利用率の低下を招かない条件を示す情報を取得する第1の手順と、データリンク層から上位層へのデータユニットの引き渡しに用いられる記憶領域であって書き込まれたデータユニットが書き込まれた順に上位層にて読み出される記憶領域に上位層からデータリンク層に引き渡された順序で書き込まれるべきデータユニットを受信し、前記受信したデータユニットが前記記憶領域へ即座に書き込まれた場合に前記記憶領域へのデータユニットの書き込み履歴が前記取得された情報により示される条件を満たすか否かを判定し、判定結果が肯定的な場合には前記受信したデータユニットを前記記憶領域に書き込み、否定的な場合にはデータユニットを退避する、という処理を繰り返す第2の手順と、を実行させるとともに、前記退避されたデータユニットよりも先に前記記憶領域に書き込まれるべき全てのデータユニットが前記記憶手段に書き込まれた後に、前記退避されたデータユニットを前記記憶領域に書き込む第3の手順を実行させるプログラムを提供する。
上記の受信装置または上記のプログラムを実行したコンピュータでは、データリンク層にて受信されたデータユニットは、通信網の利用率の低下を招かない場合には即座に、それ以外の場合にはデータユニットが記憶領域に書き込まれる順序が上位層からデータリンク層に引き渡された順序となるタイミングで、記憶領域に書き込まれる。記憶領域に書き込まれたデータユニットは、書き込まれた順序で、上位層にて読み出される。この結果、受信装置がデータリンク層にて受信したデータユニットは、通信網の利用率の低下を招かない範囲内であれば即座に、範囲外であれば並べ替えられた後に、上位層へ渡される。
また、本発明は、上記の受信装置において、前記受信されたデータユニットが前記書き込み手段により前記記憶領域に即座に書き込まれた場合に前記記憶領域へのデータユニットの書き込み順序が前記上位層からデータリンク層へ引き渡された順序に合致するか否かを判定する入れ替わり判定手段を設け、前記条件判定手段が、前記入れ替わり判定手段による判定結果が否定的な場合にのみ、前記受信された前記データユニットが前記書き込み手段により前記記憶領域へ即座に書き込まれた場合に前記記憶領域への前記データユニットの書き込み履歴が前記取得手段に取得された情報により示される条件を満たすか否かを判定し、前記制御手段が、前記条件判定手段による判定結果が否定的な場合にのみ、前記受信されたデータユニットの前記記憶領域に書き込まれるタイミングが、前記受信されたデータユニットよりも先に前記記憶領域に書き込まれるべき未受信の前記データユニットが前記記憶領域に書き込まれるタイミングよりも後になるように、前記書き込み手段を制御する、ようにした受信装置を提供する。
この受信装置では、通信網の利用率の低下を招かないか否かの判定は、データリンク層にて受信されたデータユニットが記憶領域に即座に書き込まれた場合に当該記憶領域へのデータユニットの書き込み順序が上位層からデータリンク層へ引き渡された順序に合致するか否かの判定の結果が否定的となった場合にのみ行われる。よって、前述の受信装置およびコンピュータに比較して、通信網の利用率の低下を招かないか否かの判定の回数が少なくなる。
また、本発明は、この受信装置と、トランスポート層にて、更新されるシーケンス番号が付されたデータセグメントをシーケンス番号の若い順に送信し、最も若いシーケンス番号が付された未受信のデータセグメントを通知する確認応答セグメントを受信し、既に受信した確認応答セグメントと同一のデータセグメントを通知する確認応答セグメントを一定数よりも多く受信すると該データセグメントを再送する送信装置とを有する通信システムであって、前記受信手段が、データリンク層にて、前記送信装置から送信されたデータセグメントを1つずつ内包するデータユニットであって上位層からデータリンク層に引き渡された順序で前記記憶領域に書き込まれるべきデータユニットを受信し、前記取得手段が、前記一定数を示す情報を取得し、前記条件判定手段が、前記入れ替わり判定手段による判定結果が否定的な場合にのみ、前記入れ替わり判定手段による判定結果が最後に肯定的となってから前記記憶領域に書き込まれたデータユニットの数が前記取得された情報で示される前記一定数未満であるか否かを判定する、ようにした通信システムを提供する。
この通信システムでは、受信装置は、データリンク層にてデータユニットを受信すると、当該データユニットを記憶領域に即座に書き込んだ場合に当該記憶領域へのデータユニットの書き込み順序が上位層からデータリンク層へ引き渡された順序に合致するか否かを判定し、当該判定の結果が最後に肯定的になってから当該記憶領域に書き込まれたデータユニットの数がトランスポート層でのデータセグメントの再送開始の基準となる一定数未満であれば、受信したデータユニットを即座に当該記憶領域に書き込み、一定数未満でなければ、受信したデータユニットを、当該データユニットが当該記憶領域に書き込まれる順序が上位層からデータリンク層に引き渡された順序となるタイミングで、当該記憶領域に書き込む。この結果、受信装置がデータリンク層にて受信したデータユニットは、トランスポート層での再送を引き起こさない範囲内であれば即座に、範囲外であれば並べ替えられた後に、上位層へ渡される。
本発明によれば、上位層へ渡すデータユニットの順序制御をデータリンク層にて行う機能を有する受信装置を用いた通信において通信網の実質的な利用率を向上させることができる。この効果は、トランスポート層での再送の発生を抑制することでも得られる。また、通信網の利用率の低下を招かないか否かの判定の回数が少なくなる態様では、実装上有利という効果も得られる。
[通信システム100の構成]
図1は本発明の一実施形態に係る通信システム100の構成を示す図である。この図に示すように、通信システム100は、使用者に携帯される移動機10、管轄する無線エリア内の移動機10と無線通信可能な基地局20、及び基地局20が接続されるコアネットワーク30に接続されるサーバ装置40を有する。移動機10は、基地局20及びコアネットワーク30を介して、サーバ装置40と通信可能である。なお、通信システム100は、IMT−2000(International Mobile Telecommunications-2000)に準拠しており、移動機10、基地局20及びサーバ装置40の数は、1以上の任意の数である。
図2は通信システム100の通信プロトコル構成を示す図である。この図に示すように、トランスポート層以上の層での通信は移動機10及びサーバ装置40のみで終端され、データリンク層以下の層での通信は通信システム100を構成する全ての装置で終端される。このことから明らかなように、トランスポート層にてデータを送受信可能なのは移動機10及びサーバ装置40のみである。移動機10及びサーバ装置40のトランスポート層では、様々なトランスポート層の通信プロトコルに従う通信処理が行われ得る。トランスポート層の通信プロトコルとしては、例えば、TCPが挙げられる。TCPに従う通信処理を行うサーバ装置40は、一般的なTCPに従う通信処理と付加的な通信処理を行う。後述の高速再送(Fast Retransmission)は、一般的なTCPに従う通信処理に含まれる。また、後述の制限送信(Limited Transmission)は付加的な通信処理に含まれる。
[高速再送]
TCPでは、より上位の層から渡されたデータストリームの先頭から順にデータを切り出し、切り出したデータにヘッダを付してデータセグメントを作成する。データセグメントのヘッダには、該当するデータの切り出し位置を示すシーケンス番号が書き込まれる。なお、以降、特に断らない限り、「シーケンス番号」はTCPにおけるシーケンス番号を意味する。送信ノードは、こうして作成されたデータセグメントを送信すると、当該データセグメントに対する再送タイマをスタートさせる。一方、受信ノードは、データセグメントを受信すると、その旨を示す確認応答セグメントを返信する。送信ノードは、確認応答セグメントを受信すると、該当するデータセグメントの送信時にスタートさせた再送タイマを停止し、再送タイムアウトによる当該データセグメントの再送を避ける。ところで、送信ノードは、基本的に、ヘッダに書き込まれたシーケンス番号の順にデータセグメントを送信する。このため、受信ノードは、未受信のデータセグメントのうち、最も若いシーケンス番号のデータセグメントを、次に受信が期待されるデータセグメントに定め、当該データセグメントのシーケンス番号を上記の確認応答セグメントを用いて送信ノードへ通知する。この通知にもかかわらず、期待していないデータセグメントを受信した場合、受信ノードは、直前に送信した確認応答セグメントにより通知したシーケンス番号と同じシーケンス番号を通知する確認応答セグメントを返信する。この確認応答セグメントは重複確認応答セグメントと呼ばれる。送信ノードは、重複確認応答セグメントを再送閾値の数だけ連続して受信すると、データセグメントが消失したとみなし、再送タイムアウトを待たずに、重複確認応答セグメントにより示されるデータセグメントを再送する。これが高速再送である。
[制限送信]
TCPでは、原則として、送信ノードは、輻輳ウィンドウの範囲外のデータセグメントを送信することはできない。重複確認応答セグメントを受信しても輻輳ウィンドウはスライドしないから、送信ノードは、輻輳ウィンドウ内のデータセグメントが全て送信済みであれば、新たに未送信のデータセグメントを送信することはできない。制限送信は上記の原則を部分的に破るものであり、制限送信を行うことができる送信ノードは、重複確認応答セグメントを受信した場合に輻輳ウィンドウを超えて2つまでの範囲内の未送信のデータセグメントを送信することができる。
なお、本実施形態において、TCPの高速再送の再送閾値は「3」である。また、図2に示すように、移動機10及び基地局20のデータリンク層は、それぞれ、RLC副層およびMAC副層から構成されている。したがって、移動機10と基地局20との間では、RLC副層にて、SDU(実際にはPDU)が転送される。なお、このSDUはトランスポート層において転送されるデータユニット(例えばセグメント)に1対1で対応しており、1つのSDUは1つのデータユニットを内包する。移動機10のMAC副層、基地局20のRLC副層、及び基地局20のMAC副層は周知のものであるが、移動機10のRLC副層は新規のものである。つまり、データリンク層での通信に関して新規な構成を有するのは移動機10のみである。以降、移動機10の構成について説明する。
[移動機10の構成]
図3は移動機10の構成を示すブロック図である。この図から明らかなように、移動機10は、一般的なコンピュータと同様に、CPU11が不揮発性メモリ12に記憶されているプログラムを、RAM13をワークエリアとして実行し、これにより各種処理を行う構成となっている。また、不揮発性メモリ12には、ユーザインタフェースの提供やプログラムの実行制御を行わせるための制御プログラムと、TCPに従う通信処理をトランスポート層にて行わせるためのプログラムと、UDP(User Datagram Protocol)に従う通信処理をトランスポート層にて行わせるためのプログラムと、ネットワーク層にて通信処理を行わせるプログラムと、RLC副層にて通信処理を行わせる下位層プログラム121が記憶されている。なお、下位層プログラム121以外のプログラムの図示は省略されている。
無線部14は基地局20との間で無線信号を送受信するものであり、CPU11から送信すべきデータが供給されると、この送信データにより変調された搬送波を無線区間へ送出し、無線区間を伝播してきた搬送波からデータを復調すると、この受信データをCPU11に供給する。この無線部14及びCPU11により、各層での送受信が行われる。操作部15は操作子を備え、操作子の操作内容を示す信号をCPU11に供給する。ディスプレイ16は、CPU11から供給された画像データで表される画像を表示する。
CPU11は、図示しない電源が投入されると不揮発性メモリ12から上記の制御プログラムを読み出して実行する。これにより、CPU11は、操作部15およびディスプレイ16を用いて、使用者が移動機10に指示を入力するためのユーザインタフェースを提供する。また、CPU11は、ユーザインタフェースを用いてプログラムの実行指示が入力されると、当該指示に応じたプログラムを不揮発性メモリ12から読み出して実行する。また、CPU11は、実行しようとするプログラムを実行するために他のプログラムを実行する必要がある場合には、他のプログラムをも不揮発性メモリ12から読み出して実行する。
下位層プログラム121を実行中のCPU11は、受信ノードにおけるSDUの順序制御の内容を除いて、一般的なRLCプロトコルに従って通信処理を行う。以降では、一般的なRLCプロトコルに従った通信処理についての説明を省略し、下位層プログラム121を実行中のCPU11により行われる、SDUの新しい順序制御に着目して、CPU11の機能を説明する。
CPU11は、まず、RAM13の記憶領域に、SDUが書き込まれる退避領域131、トランスポート層での通信処理の内容から定まる条件であって通信網の利用率の低下を招かない条件を示す条件情報が書き込まれる条件領域132、RLC副層から上位層への引き渡しのためにSDUが書き込まれる引き渡し領域133、及び引き渡し領域133へのSDUの書き込み履歴を示す履歴情報が書き込まれる履歴領域134を確保する。なお、ネットワーク層にて通信処理を行わせるプログラムを実行中のCPU11は、引き渡し領域133に書き込まれたSDUを書き込まれた順に読み出す。上記の条件領域132に書き込まれる条件情報で表される条件は、トランスポート層の通信プロトコルにより異なる。
[TCPに関する条件]
トランスポート層にてTCPに従ってデータセグメントを送信するサーバ装置40は、重複確認応答セグメントを3つ連続して受信すると、データセグメントが消失したとみなし、当該データセグメントを再送する。しかし、データセグメントが消失したのではなく、トランスポート層での受信順序(すなわち、データセグメントが下位層からトランスポート層へ渡される順序)が入れ替わっただけの場合、上記の高速再送は誤再送となってしまう。このような誤再送は通信網の利用率の低下を招くから、受信ノードである移動機10にて受信が期待されていないデータセグメントを含むSDUをRLC副層から上位層(具体的にはネットワーク層)へ渡す処理が3回以上連続して起こらないようにすべきである。つまり、RLC副層から上位層へ渡されるSDUの順序の入れ替わりが許容されるのは、連続して2回までである。
また、サーバ装置40は制限送信を行うことができるが、送信できるデータセグメントの数は輻輳ウィンドウを超えて2つまでである。つまり、サーバ装置40は、1つの目の重複確認応答セグメントを受信した場合には1つの未送信データセグメントを、これに続いて2つ目の重複確認応答セグメントを受信した場合には更に1つの未送信データセグメントを送信するが、これに続いて3つめ目の重複確認応答セグメントを受信した場合には未送信データセグメントを送信しない。このことから明らかなように、サーバ装置40が3つ目の重複確認応答セグメントを早く受信することにより得られる効果は、1つ目や2つ目の重複確認応答セグメントを早く受信することにより得られる効果よりも小さい。よって、RLC副層から上位層へ渡されるSDUの順序の入れ替わりによる影響を完全に見通すことができない場合には、確実に効果が得られるように、移動機10にて受信が期待されていないデータセグメントを含むSDUをRLC副層から上位層へ渡す処理の上限を連続して2回までとすることも考えられる。
本実施形態では、高速再送から定まる絶対的な条件と制限送信から定まる効果的な条件のどちらも条件として捉え、より厳しい方の条件(より早く満たされる条件)を採用するようにしている。したがって、TCPに関する条件は、「連続して2回まで」となっている。
[UDPに関する条件]
UDPにはデータグラムの受信順序の入れ替わりに関する制約がない。したがって、いかなる場合であっても、RLC副層にてSDUの順序制御を行う必要はない。そこで、本実施形態では、UDPに関する条件として、「連続して∞回まで」を採用している。
また、CPU11は、一定時間間隔で、トランスポート層の通信プロトコルを特定し、特定した通信プロトコルに関する条件情報を取得し、取得した条件情報を条件領域132に書き込む。ただし、特定した通信プロトコルが複数であれば、複数の条件情報を取得し、これらの条件情報から1つの条件情報を選択し、選択した条件情報を条件領域132に書き込む。この選択では、最も早く満たされる条件を表す条件情報が選択される。
CPU11によるトランスポート層の通信プロトコルの特定は、例えば、CPU11がトランスポート層にて通信処理を行わせる各プログラムの実行状態を監視することにより実現される。また、CPU11による条件情報の取得は、例えば、CPU11が、特定した通信プロトコルに関する条件情報を、トランスポート層の様々な通信プロトコルについて予め定められた条件情報から選択することにより実現される。なお、本実施形態では、TCPについて予め定められた条件情報は「連続して2回まで」という条件を示す許容値「2」であり、UDPについて予め定められた条件情報は「連続して∞回まで」という条件を示す許容値「∞」である。なお、実装における∞の表現形式は様々であり、例えば、負数(例えば「−1」)で表し、負数についてだけ後述の各種判定の内容を変えるようにしてもよいし、CPU11が演算処理を迅速に行うことができる最大の正数で表してもよい。本実施形態では後者の立場をとっており、CPU11は、より小さい許容値の条件情報を選択する。また、CPU11による一定時間間隔での取得は、例えば、CPU11が図示しない発振器から供給されるクロック信号を用いて一定時間でタイムアウトし再スタートするタイマとして動作する一方、このタイマのタイムアウトをトリガとして条件情報の取得動作を行うことにより実現される。
また、CPU11は、無線部14を用いてPDUを受信し、1つのSDUを組み立てるに足るPDUの受信を完了すると、当該1つのSDUを組み立てる。つまり、CPU11は、SDUを受信する。また、CPU11は、1つのSDUを受信すると、このSDUを上位層へ渡した場合に上位層へのSDUの引き渡し順序が連続するか否か、具体的には、当該SDUよりも先に引き渡し領域133に書き込むべき他のSDUを引き渡し領域133に書き込み済みか否かを判定する。以降、この判定を入れ替わり判定と呼ぶ。
入れ替わり判定の判定結果が肯定的な場合、CPU11は、入れ替わり判定の対象となったSDUを引き渡し領域133に即座に書き込み、これに続けて、先に引き渡し領域133に書き込まれるべき他の全てのSDUが引き渡し領域133に書き込み済みとなったSDUが退避領域131に書き込まれていれば、当該SDUを、退避領域131から読み出して引き渡し領域133に書き込むとともに退避領域131から削除する。退避領域131からのSDUの削除とは、例えば、退避領域131内の当該SDUが書き込まれている領域を開放して上書き可能としたり、当該SDUを退避領域131から消去したりして、退避領域131内の当該SDUを使用不能とすることを意味する。なお、退避領域131から読み出して引き渡し領域133に書き込むべきSDUが複数の場合、CPU11は、これらを正しい順序で引き渡し領域133に書き込む。
逆に、入れ替わり判定の判定結果が否定的な場合、CPU11は、次に述べる条件判定を行う。条件判定では、CPU11は、入れ替わり判定の対象となったSDUを引き渡し領域133に即座に書き込んだ場合に履歴領域134に書き込まれる履歴情報で表される履歴が条件領域132に書き込まれている条件情報で表される条件を満たすか否かを判定する。なお、本実施形態では、履歴情報は、順序が連続していないSDUを上位層へ連続して引き渡した回数(以降、連続回数という)であるから、CPU11は、条件判定を、履歴領域134に書き込まれている連続回数が条件領域132に書き込まれている許容値未満であるか否かを判定することにより行う。なお、連続回数は、入れ替わり判定の判定結果が一度も肯定的になっていない期間にあっては最初のSDUが受信されてから引き渡し領域133に書き込まれたデータユニットの数と一致し、以降の期間にあっては入れ替わり判定の判定結果が最後に肯定的となってから引き渡し領域133に書き込まれたデータユニットの数と一致する。
条件判定の判定結果が肯定的な場合、CPU11は、条件判定の対象となったSDUを引き渡し領域133に即座に書き込む処理と履歴領域134に書き込まれている履歴情報を更新する処理とを行う。履歴情報の更新は、CPU11が、履歴領域134に書き込まれている連続回数に1を加算し、加算後の連続回数を履歴領域134に上書きすることにより行われる。逆に、条件判定の判定結果が否定的な場合、CPU11は、条件判定の対象となったSDUを退避する。SDUの退避は、CPU11が、当該SDUを退避領域131に書き込むことにより行われる。こうして退避領域131に書き込まれたSDUは、当該SDUの受信直後ではなく、より遅いタイミングで引き渡し領域133に書き込まれる。
[通信システム100の動作説明]
次に、上述した構成の通信システム100の動作について説明する。ただし、この動作説明では、移動機10とサーバ装置40との間でTCPに従う通信が行われるものとする。また、発明の理解を容易とするために、以下では、通信システム100の動作について、移動機がデータリンク層にて上位層へ渡すデータユニットの順序を全く制御しない一般的な通信システムにおいてTCPに従う通信が行われた場合の動作や、移動機がデータリンク層にて上位層へ渡すデータユニットの順序を必ず制御する一般的な通信システムにおいてTCPに従う通信が行われた場合の動作と対比して説明する。
[データリンク層にて順序制御を全く行わない一般的な通信システムの動作]
図4は、移動機がデータリンク層にて上位層へ渡すデータユニットの順序を全く制御しない一般的な通信システムがTCPに従う通信を行った場合の通信シーケンスの一例を示す図である。この図に示す通信シーケンスの前提は、サーバ装置が輻輳ウィンドウ内の全てのデータセグメント(シーケンス番号が500〜2500のデータセグメント)を順に送信し、2番目に送信されたデータセグメント(シーケンス番号が1000のデータセグメント)が基地局と移動機との間の無線区間で遅延し、5番目に送信されたデータセグメントよりも後に移動機により受信された、というものである。
この図に示すように、移動機は、1番目のデータセグメントを受信すると、そのシーケンス番号「500」の直後のシーケンス番号「1000」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを送信する。次に、移動機は、3番目のデータセグメントを受信する。このデータセグメントのシーケンス番号「1500」が期待したシーケンス番号「1000」でないことから、移動機は、期待したシーケンス番号「1000」を次に受信を期待するデータセグメントのシーケンス番号として示す1番目の重複確認応答セグメントを送信する。次に、移動機は、4番目のデータセグメントを受信して2番目の重複確認応答セグメントを、5番目のデータセグメントを受信して3番目の重複確認応答セグメントを送信する。次に、移動機は、遅延した2番目のデータセグメントを受信する。このデータセグメントのシーケンス番号は1000であり、シーケンス番号が2500までの全てのデータセグメントを受信したことになるから、移動機は、シーケンス番号「3000」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを送信する。
サーバ装置は、移動機が次に受信を期待するデータセグメントのシーケンス番号「1000」を示す確認応答セグメントを受信し、これに応じて、輻輳ウィンドウをスライドさせ、最後に送信したデータセグメントのシーケンス番号「2500」の次のシーケンス番号「3000」のデータセグメントを送信する。次に、サーバ装置は、制限送信により、1番目の重複確認応答セグメントを受信してシーケンス番号「3500」のデータセグメントを、2番目の重複確認応答セグメントを受信してシーケンス番号「4000」のデータセグメントを送信する。次に、サーバ装置は、3番目の重複確認応答セグメントを受信する。この時点では、シーケンス番号「3000」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントはサーバ装置に到着していないから、サーバ装置は、3番目の重複確認応答セグメントの受信をトリガとして高速再送を行う。つまり、シーケンス番号「1000」のデータセグメントを再送する。
移動機は、シーケンス番号「3000」のデータセグメントを受信し、これに応じて、シーケンス番号「3500」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを送信する。次に、移動機は、シーケンス番号「3500」のデータセグメントを受信し、これに応じて、シーケンス番号「4000」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを送信する。次に、移動機は、シーケンス番号「4000」のデータセグメントを受信し、これに応じて、シーケンス番号「4500」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを送信する。
一方、サーバ装置は、シーケンス番号「3000」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを受信してシーケンス番号「4500」のデータセグメントを、シーケンス番号「3500」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを受信してシーケンス番号「5000」のデータセグメントを、シーケンス番号「4000」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを受信してシーケンス番号「5500」のデータセグメントを送信する。
一方、移動機は、シーケンス番号「4500」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを送信した後に、シーケンス番号「1000」のデータセグメントを受信する。このデータセグメントは前述した2番目のデータセグメントの再送セグメントであり、2番目のデータセグメントは既に受信済みであるから、移動機は当該データセグメントを破棄し、シーケンス番号「4500」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを送信する。この確認応答セグメントは重複確認応答セグメントである。このように、この通信システムでは、無駄なセグメント(例えば、誤再送されたデータセグメント)が通信網に送出されることになる。
[データリンク層にて順序制御を必ず行う一般的な通信システムの動作]
図5は、移動機がデータリンク層にて上位層へ渡すデータユニットの順序を必ず制御する一般的な通信システムがTCPに従う通信を行った場合の通信シーケンスの一例を示す図である。この図に示す通信シーケンスの前提は、図4に示す通信シーケンスの前提と同一である。
この図に示すように、移動機は、1番目のデータセグメントを受信すると、そのシーケンス番号「500」の直後のシーケンス番号「1000」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを送信する。次に、移動機は、RLC副層にて3〜5番目のデータセグメントを受信した後に2番目のデータセグメントを受信する。RLC副層にて順序制御が行われるため、RLC副層から上位層(ネットワーク層以上の層)へ渡されるデータセグメントの順序は、2番目のデータセグメント、3番目のデータセグメント、…、そして5番目のデータセグメントとなる。つまり、移動機では、RLC副層にて3〜5番目のデータセグメントが遅延される。この遅延により、3〜5番目のデータセグメントを上位層にて受信したときに送信される確認応答セグメントが移動機から送信されるタイミングが遅延し、サーバ装置がデータセグメントの送信を中断する期間が長くなる。それゆえ、スループットの低下に繋がる。
上述した順序制御により、移動機は、トランスポート層にて、期待通りの順序でデータセグメントを受信する。よって、移動機は、シーケンス番号「1500」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメント、シーケンス番号「2000」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメント、…、そしてシーケンス番号「3000」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを順に送信する。
サーバ装置は、移動機が次に受信を期待するデータセグメントのシーケンス番号「1000」を示す確認応答セグメントを受信し、これに応じて、輻輳ウィンドウをスライドさせ、最後に送信したデータセグメントのシーケンス番号「2500」の次のシーケンス番号「3000」のデータセグメントを送信する。移動機は、このデータセグメントを、5番目のデータセグメントを上位層にて受信する前にRLC副層にて受信し、トランスポート層にて5番目のデータセグメントに続けて受信し、シーケンス番号「3500」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを送信する。
サーバ装置は、シーケンス番号「1500」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントから連続して5つの確認応答セグメントを受信し、これに応じて輻輳ウィンドウをスライドさせ、シーケンス番号が3500〜5500のデータセグメントを順に送信する。これらのデータセグメントは、送信された順序で、移動機により受信される。
[通信システム100の動作]
次に、通信システム100の動作について説明する。ただし、通信システム100のトランスポート層では、まず、TCPに従う通信が行われるものとする。この場合の通信シーケンスの一例を図6に示す。この図に示す通信シーケンスの前提は、図4に示す通信シーケンスの前提と同一である。
移動機10のCPU11は、操作部15およびディスプレイ16を用いて提供したユーザインタフェースを用いて入力された指示に従い、下位層プログラム121とTCPに従う通信処理をトランスポート層にて行わせるプログラムとを不揮発性メモリ12から読み出して実行する。下位層プログラム121を実行することにより、CPU11は、図7及び図8に示す流れの処理を並列に実行する。図7に示すように、CPU11は、図7に示すように、トランスポート層の通信プロトコルがTCPのみであることを特定し、TCPに関する条件情報を取得してRAM13の条件領域132に書き込む(ステップSA1及びSA2)。この結果、条件領域132には、許容値「2」が書き込まれる。このような処理は一定時間間隔で繰り返されるため、トランスポート層の通信プロトコルがTCPのみである間、条件領域132には許容値「2」が一定時間間隔で上書きされる(ステップSA1〜SA3)。また、CPU11は、図8に示すように、履歴領域134に「0」を上書きすることにより連続回数をリセットする(ステップSB1)。
一方、サーバ装置40は、図6に示すように、トランスポート層にて、1〜5番目のデータセグメント(シーケンス番号が500〜2500のデータセグメント)を移動機10へ送信する。これにより、基地局20から移動機10へ、1〜5番目のデータセグメントを内包した各SDUが、この順序で送信される。
CPU11は、RLC副層にて、上記の1番目のSDUを受信する(ステップSB2)。次に、CPU11は、この1番目のSDUを上位層へ渡した場合に上位層へのSDUの引き渡し順序が連続するか否か判定する(ステップSB3)。現時点では上位層へSDUを渡した実績がないから、この入れ替わり判定の結果が肯定的となる。この結果、CPU11は、連続回数をリセットし(ステップSB4)、1番目のSDUを引き渡し領域133に書き込み、続いて、退避領域131に書き込まれているSDUのうち、先に引き渡し領域133に書き込まれるべき他の全てのSDUが引き渡し領域133に書き込み済みとなったSDUが退避領域131に書き込まれていれば、当該SDUを、退避領域131から読み出して引き渡し領域133に書き込みむとともに退避領域131から削除する(ステップSB5)。ただし、現時点では、退避領域131にSDUが書き込まれていないから、引き渡し領域133に書き込まれるのは1番目のSDUのみである。引き渡し領域133に書き込まれた1番目のSDUは、上位層にて処理され、その結果、移動機10からサーバ装置40へ、トランスポート層にて、次に受信を期待するデータセグメントのシーケンス番号「1000」を示す確認応答セグメントが送信される。
RLC副層にて、CPU11は、次に、3番目のデータセグメントを内包した3番目のSDUを受信する(ステップSB2)。次に、CPU11は、この3番目のSDUについて入れ替わり判定を行う(ステップSB3)。現時点では上位層へ渡したSDUは1番目のSDUのみであるから、この入れ替わり判定の結果は否定的となる。この結果、CPU11は、履歴領域134に書き込まれている連続回数が許容値未満であるか否かを判定する(ステップSB6)。現時点では、連続回数は「0」であり、許容値は「2」であるから、この条件判定の結果は肯定的となる。この結果、CPU11は、履歴領域134に書き込まれている連続回数に1を加算して履歴領域134に上書きする(ステップSB7)。この結果、履歴領域134に記憶されている連続回数は「1」となる。次に、CPU11は、3番目のSDUを引き渡し領域133に書き込む(ステップSB8)。つまり、CPU11は、SDUを上位層へ渡す順序を制御しない。引き渡し領域133に書き込まれた3番目のSDUは、上位層にて処理され、その結果、移動機10からサーバ装置40へ、トランスポート層にて、次に受信を期待するデータセグメントのシーケンス番号「1000」を示す重複確認応答セグメントが送信される。
RLC副層にて、CPU11は、次に、4番目のデータセグメントを内包した4番目のSDUを受信する(ステップSB2)。この4番目のSDUについて、上述の3番目のSDUについて行われた処理と同様の処理が行われ、その結果、履歴領域134には連続回数「2」が上書きされ、引き渡し領域133には4番目のSDUが書き込まれる(ステップSB3及びSB6〜SB8)。つまり、CPU11は、SDUを上位層へ渡す順序を制御しない。引き渡し領域133に書き込まれた4番目のSDUは、上位層にて処理され、その結果、移動機10からサーバ装置40へ、トランスポート層にて、次に受信を期待するデータセグメントのシーケンス番号「1000」を示す重複確認応答セグメントが送信される。
RLC副層にて、CPU11は、次に、5番目のデータセグメントを内包した5番目のSDUを受信する(ステップSB2)。次に、CPU11は、この5番目のSDUについて入れ替わり判定を行う(ステップSB3)。現時点では上位層へ渡したSDUは1番目、3番目および4番目のSDUのみであるから、つまり第2のSDUを上位層へ渡していないから、この入れ替わり判定の結果は否定的となる。この結果、CPU11は、履歴領域134に書き込まれている連続回数が許容値未満であるか否かを判定する(ステップSB6)。現時点では、連続回数は「2」であり、許容値は「2」であるから、この条件判定の結果は否定的となる。この結果、CPU11は、5番目のSDUを、退避領域131に書き込むことにより退避する(ステップSB9)。つまり、この時点では、5番目のSDUはRLC副層にて遅延され、上位層に渡されない。
CPU11は、次に、2番目のデータセグメントを内包した2番目のSDUを受信する(ステップSB2)。次に、CPU11は、この2番目のSDUについて入れ替わり判定を行う(ステップSB3)。現時点では第1のSDUが既に上位層へ渡されているから、この入れ替わり判定の結果は肯定的となる。この結果、CPU11は、連続回数をリセットし(ステップSB4)、2番目のSDUを引き渡し領域133に書き込み、続けて、先に引き渡し領域133に書き込まれるべき他の全てのSDUが引き渡し領域133に書き込み済みとなったSDUが退避領域131に書き込まれていれば、当該SDUを、退避領域131から読み出して引き渡し領域133に書き込むとともに退避領域131から削除する(ステップSB5)。退避領域131には5番目のSDUが書き込まれているから、引き渡し領域133には、2番目のSDUに続いて5番目のSDUが書き込まれる。つまり、5番目のSDUを移動機10内でRLC副層にて遅延させることにより、SDUを上位層へ渡す順序が制御される。引き渡し領域133に書き込まれた2番目のSDU及び5番目のSDUは、上位層にて順に処理され、その結果、移動機10からサーバ装置40へ、トランスポート層にて、次に受信を期待するデータセグメントのシーケンス番号「2500」を示す確認応答セグメントと次に受信を期待するデータセグメントのシーケンス番号「3000」を示す確認応答セグメントが順に送信される。
上記の、シーケンス番号「2500」を示す確認応答セグメントは重複確認応答セグメントではないから、サーバ装置40がトランスポート層にて重複確認応答セグメントを連続して受信する回数は2回となる。これは、TCPにおける再送閾値「3」よりも少ないから、高速再送は引き起こされない。つまり、通信システム100では、順序制御を全く行わない一般的な通信システムにおいて生じた誤再送が生じない。
また、3番目および4番目のSDUはRLC副層にて遅延されることなく上位層に渡されるから、それらのデータセグメントに対して確認応答セグメントが遅滞なく送信され、制限送信により、サーバ装置40からシーケンス番号が「3500」のデータセグメントと「4000」のデータセグメントが遅滞なく送信される。したがって、サーバ装置40がデータセグメントの送信を中断する期間は、順序制御を必ず行う一般的な通信システムにおいてサーバ装置がデータセグメントの送信を中断する期間よりも短くなる。
以降の動作は図6に示す通りであり、図6と図4及び図5とを比較すれば明らかなように、通信システム100のサーバ装置40がシーケンス番号「500」のデータセグメントを送信してからシーケンス番号「5500」のデータセグメントを送信するまでの期間は、一般的な通信システムのサーバ装置がシーケンス番号「500」のデータセグメントを送信してからシーケンス番号「5500」のデータセグメントを送信するまでの期間よりも短くて済む。
このような、TCPに従う通信に並行してUDPに従う通信を開始する旨の指示がユーザインタフェースを用いて移動機10に入力されると、CPU11は、UDPに従う通信処理をトランスポート層にて行わせるプログラムを不揮発性メモリ12から読み出して実行する。図7に示すように、CPU11は、一定時間間隔で、トランスポート層の通信プロトコルを特定しており、UDPに従う通信処理をトランスポート層にて行わせるプログラムを実行すると、程なく、TCP及びUDPに関する条件情報を取得する(ステップSA3、SA1及びSA2)。取得された条件情報は複数であるから、CPU11は、両条件情報から、最も早く満たされる条件を表す条件情報を選択し、選択した条件情報を条件領域132に書き込む。具体的には、TCPに関する許容値「2」とUDPに関する許容値「∞」から、より早く満たされる許容値「2」を選択し、条件領域132に書き込む。
TCPを用いた通信とUDPを用いた通信のうち、高速再送によるデータセグメントの誤再送が発生し得るのはTCPを用いた通信のみであるから、許容値「2」が選択されることにより、高速再送によるデータセグメントの誤再送の発生を回避することができる。ところで、移動機10には、RLC副層において、TCPのデータセグメントを内包したSDUとUDPのデータグラムを内包したSDUとが交互に到着することも考えられる。このような事態を考慮すると許容値「2」が小さすぎる、とも考えられる。しかし、RLC副層では両SDUを区別していないから、つまりトランスポート層の通信プロトコル毎にSDUを取り扱うことはできないから、許容値「2」を採用するのが最も安全である。
以上説明したように、本実施形態によれば、RLC副層にてSDUの受信順序が入れ替わっても、連続回数が許容値未満であれば、SDUはRLC副層にて遅延されずに上位層へ渡される。したがって、移動機10において受信したSDUが遅延することによってTCPの再送制御やフロー制御の開始が遅れてしまうという事態を回避することができる。また、本実施形態によれば、RLC副層におけるSDUの入れ替わり制御に起因してTCPのデータセグメントが誤再送されるという事態を回避することができる。これらのことから、通信網の実質的な利用率を向上させることができる。
また、本実施形態では、移動機10から1番目および2番目の重複確認応答セグメントが遅滞なく送信される。一方、サーバ装置40は、制限送信を可能としたTCPを用いた場合に、1番目および2番目の重複確認応答セグメントを受信すると、これらに応じて未送信のデータセグメントを送信することができる。よって、本実施形態によれば、TCPを用いた場合に、通信網の実質的な利用率を大幅に向上させることができる。
また、本実施形態では、TCPについて、高速再送から定まる絶対的な条件と制限送信から定まる効果的な条件のうち、より厳しい方の条件を条件判定に用いるようにしている。換言すれば、RLC副層から上位層へSDUを渡す順序を、通信網の実質的な利用率の大幅な向上を見込める範囲内の入れ替わりであれば制御せず、範囲外の入れ替わりであれば制御する、という新しい順序制御を行うようにしている。よって、本実施形態によれば、効果的な条件を考慮せずに条件判定を行う態様に比較して、予期しない不都合が生じる可能性を低くすることができる。
また、本実施形態では、トランスポート層の通信プロトコルに関する条件や引き渡し領域133へのSDUの書き込み履歴を数値化している。このため、数値を比較するという単純な処理により条件判定を行うことができる。また、トランスポート層での通信処理に用いられている通信プロトコルが複数の場合に、数値を比較するという単純な処理により、条件判定に用いる条件を定めることができる。
また、本実施形態では、TCPを用いた通信とUDPを用いた通信とを並行する場合に、より早く満たされる、TCPに関する許容値を選択し、選択した許容値を用いて、RLC副層から上位層へSDUを渡す順序を制御するか否かを定めている。これにより、TCPを用いた通信において通信網の実質的な利用率を向上させつつ、その範囲内で、UDPを用いた通信において通信網の実質的な利用率を最大とすることができる。
また、本実施形態では、トランスポート層の通信プロトコルを改変することなく、上述の各種効果を得ることができる。このことは、実装上、有利である。また、SDUの入れ替わりが発生し易い無線リンクを制御するためのRLC副層にてSDUの入れ替わり制御を行うようにしたから、上述した各種効果は極めて実効的な効果となる。
なお、本実施形態では、SDUの入れ替わりが生じた場合にのみ条件判定を行うようにしたが、入れ替わりが生じなくとも条件判定を行うようにしてもよい。また、入れ替わり判定において、判定対象のSDUよりも先に引き渡し領域133に書き込むべき他のSDUを引き渡し領域133に書き込み済みか否かを判定するようにしたが、判定対象のSDUよりも先に引き渡し領域133に書き込むべき他のSDUの組み立てに必要なPDUの受信を既に完了しているか否かを判定するようにしてもよい。要は、判定対象のSDUが引き渡し領域133に即座に書き込まれた場合に引き渡し領域133へのSDUの書き込み順序が上位層からRLC副層へ引き渡された順序に合致するか否かを判定できればよい。なお、この判定では、例えば、6番目のSDUを書き込んだ後に9番目のSDUを書き込む際には「合致しない」となり、更に続けて10番目のSDUを書き込む際には「合致しない」となり、更に続けて7番目のSDUを書き込む際には「合致する」となる。
[変形]
本発明は、特許請求の範囲に記載された発明特定事項により定まる範囲内で、上述した実施形態を変形して得られる任意の形態でも実施可能である。以下に各種の変形例を示す。
例えば、トランスポート層の通信プロトコルがストリーミング転送を行うための通信プロトコルであっても本発明を適用可能である。ストリーミング転送では、データの遅延に制約があり、トランスポート層において、ある程度以上遅延して受信したデータは使用されずに破棄される。したがって、基本的には、UDPに関してそうしたように、ストリーミング転送を行うための通信プロトコルに関する許容値を無限大に定めるのが望ましい。この場合、例えば、バルクデータ転送とストリーミング転送とが並列に行われると、許容値としては、必ず、バルクデータ転送に関する許容値が採用される。ただし、ストリーミング転送を行うための通信プロトコルの中には、TFRC(TCP Friendly Rate Control)プロトコルのように、受信ノードが、受信したデータに付されたシーケンス番号の飛びに基づいてデータのロスを検出し、ロス率が増加した場合に送信レートを下げるよう動作するものがある。このような通信プロトコルがトランスポート層にて用いられている場合に、RLC副層にてSDUの受信順序の入れ替わりを全く制御しないと、トランスポート層にてロスが誤検出され、送信レートが不必要に低下してしまう虞がある。このような通信プロトコルについては、ロスの誤検出が生じない範囲でRLC副層におけるSDUの入れ替わりを許容するように条件を定めることで、通信網の実質的な利用率を向上させることができる。なお、「ロスの誤検出が生じない範囲」はロス率の算出式に依存する。
また、例えば、トランスポート層の通信プロトコルに従う通信処理が開始される時にトランスポート層からデータリンク層へ条件情報が通知され、当該通信処理が終了する時にトランスポート層からデータリンク層へその旨が通知されるようにしてもよい。これらの通知を用いれば、タイマを用いて定期的に条件情報を取得する処理を行わずに済む。もちろん、当該通信処理の開始時にトランスポート層からデータリンク層へ当該通信プロトコルの識別子が通知され、この識別子と予め記憶した条件情報テーブルとに基づいて条件情報を取得する形態としてもよい。
また、例えば、RLC副層にて、SDUの内容を調べ、トランスポート層の通信プロトコルを推定するようにしてもよい。この場合には、トランスポート層での通信が移動機10で終端されず移動機10に接続されたコンピュータで終端される態様にも対応可能である。
また、例えば、上述した実施形態に係る処理をRLC副層とは異なるデータリンク層にて行うようにしてもよい。当然に、データリンク層にて有線リンクを用いてデータを受信する装置や当該装置を用いた通信システムに適用することも可能である。
また、例えば、PDUの送信元の装置がトランスポート層の通信をも終端するような通信システムとしてもよい。もちろん、基地局20にRLC副層にて上記の新しい順序制御を行う機能を持たせた形態としてもよいし、移動機10にトランスポート層にて制限送信を行う機能を持たせた形態としてもよい。
また、例えば、本発明は、PDUとSDUが1対1で対応するようなデータリンク層にて通信処理を行う装置や当該装置を用いた通信システムにも適用可能である。
また、入れ替わり判定や条件判定の処理内容を変更してもよい。例えば、トランスポート層の通信プロトコルに関する条件によっては、入れ替わり判定が不要になったり、条件判定の処理を変更する必要が生じたりする。具体的には、トランスポート層の通信プロトコルが、下位層から連続して渡されたデータユニット間のデータ距離(例えばシーケンス番号の飛び具合)が所定のデータ距離よりも長い場合に抜けているデータユニットを再送するような通信プロトコルの場合が考えられる。この通信プロトコルに関する条件は、「判定対象のデータユニットと直前にデータリンク層から上位層へ引き渡したデータユニットとのデータ距離が所定のデータ距離以下」となる。この場合には、入れ替わり判定は不要であり、条件判定の処理を、この条件に合わせて変更することになる。
また、例えば、移動機10にプログラムをサーバ装置からダウンロードする機能を持たせ、移動機10が、旧来のRLCプロトコルに従う通信処理を行わせる旧来のプログラムを用いて、下位層プログラム121を配信するサーバ装置にアクセスし、当該サーバから下位層プログラム121をダウンロードして不揮発性メモリ12に書き込み、以降の通信においては、旧来のプログラムに代えて下位層プログラム121を用いる、という形態としてもよい。
本発明の一実施形態に係る通信システム100の構成を示す図である。 通信システム100の通信プロトコル構成を示す図である。 通信システム100を構成する移動機10の構成を示すブロック図である。 データリンク層にて順序制御を全く行わない通信システムがTCPに従う通信を行った場合の通信シーケンスの一例を示す図である。 データリンク層にて順序制御を必ず行う通信システムがTCPに従う通信を行った場合の通信シーケンスの一例を示す図である。 通信システム100がTCPに従う通信を行った場合の通信シーケンスの一例を示すシーケンス図である。 通信システム100を構成する移動機10のCPU11が行う処理の流れを示すフローチャートである。 CPU11が行う別の処理の流れを示すフローチャートである。
符号の説明
10…移動機、11…CPU、12…不揮発性メモリ、13…RAM、14…無線部、40…サーバ装置。

Claims (8)

  1. 記憶領域を有する記憶手段と、
    データリンク層にて、上位層からデータリンク層に引き渡された順序で前記記憶領域に書き込まれるべきデータユニットを受信する受信手段と、
    トランスポート層の通信プロトコルから定まる条件であって通信網の利用率の低下を招かない条件を示す情報を取得する取得手段と、
    前記受信されたデータユニットを前記記憶領域に書き込む書き込み手段と、
    前記受信されたデータユニットが前記書き込み手段により前記記憶領域へ即座に書き込まれた場合に前記記憶領域へのデータユニットの書き込み履歴が前記取得手段に取得された情報により示される条件を満たすか否かを判定する条件判定手段と、
    前記条件判定手段による判定結果が否定的な場合にのみ、前記受信されたデータユニットの前記記憶領域に書き込まれるタイミングが、前記受信されたデータユニットよりも先に前記記憶領域に書き込まれるべき未受信のデータユニットが前記記憶領域に書き込まれるタイミングよりも後になるように、前記書き込み手段を制御する制御手段と、
    前記上位層にて、前記記憶領域に書き込まれたデータユニットを書き込まれた順に読み出す読み出し手段と
    を有する受信装置。
  2. 前記受信されたデータユニットが前記書き込み手段により前記記憶領域に即座に書き込まれた場合に前記記憶領域へのデータユニットの書き込み順序が前記上位層からデータリンク層へ引き渡された順序に合致するか否かを判定する入れ替わり判定手段を有し、
    前記条件判定手段は、前記入れ替わり判定手段による判定結果が否定的な場合にのみ、前記受信された前記データユニットが前記書き込み手段により前記記憶領域へ即座に書き込まれた場合に前記記憶領域への前記データユニットの書き込み履歴が前記取得手段に取得された情報により示される条件を満たすか否かを判定し、
    前記制御手段は、前記条件判定手段による判定結果が否定的な場合にのみ、前記受信されたデータユニットの前記記憶領域に書き込まれるタイミングが、前記受信されたデータユニットよりも先に前記記憶領域に書き込まれるべき未受信の前記データユニットが前記記憶領域に書き込まれるタイミングよりも後になるように、前記書き込み手段を制御する
    ことを特徴とする請求項1に記載の受信装置。
  3. 定期的にタイムアウトするタイマを有し、
    前記取得手段は、前記タイマがタイムアウトしたときに、前記条件を示す情報を取得する
    ことを特徴とする請求項1に記載の受信装置。
  4. 前記取得手段に取得された情報により示される、トランスポート層の通信プロトコル毎の前記条件から、前記受信手段によるデータユニットの受信順序が乱れた場合に最も早く満たされる条件を選択する選択手段を有し、
    前記取得手段は前記選択された条件を示す情報を取得する
    ことを特徴とする請求項1に記載の受信装置。
  5. 前記受信手段は、データリンク層にて、無線リンクを用いて、上位層からデータリンク層に引き渡された順序で前記記憶領域に書き込まれるべきデータユニットを受信する
    ことを特徴とする請求項1に記載の受信装置。
  6. 請求項2に記載の受信装置と、
    トランスポート層にて、更新されるシーケンス番号が付されたデータセグメントをシーケンス番号の若い順に送信し、最も若いシーケンス番号が付された未受信のデータセグメントを通知する確認応答セグメントを受信し、既に受信した確認応答セグメントと同一のデータセグメントを通知する確認応答セグメントを一定数よりも多く受信すると該データセグメントを再送する送信装置と
    を有し、
    前記受信手段は、データリンク層にて、前記送信装置から送信されたデータセグメントを1つずつ内包するデータユニットであって上位層からデータリンク層に引き渡された順序で前記記憶領域に書き込まれるべきデータユニットを受信し、
    前記取得手段は、前記一定数を示す情報を取得し、
    前記条件判定手段は、前記入れ替わり判定手段による判定結果が否定的な場合にのみ、前記入れ替わり判定手段による判定結果が最後に肯定的となってから前記記憶領域に書き込まれたデータユニットの数が前記取得された情報で示される前記一定数未満であるか否かを判定する
    ことを特徴とする通信システム。
  7. 前記送信装置は、更に、トランスポート層にて、既に受信した確認応答セグメントと同一のデータセグメントを通知する確認応答セグメントを受信すると未送信のデータセグメントを送信する
    ことを特徴とする請求項6に記載の通信システム。
  8. コンピュータに、
    トランスポート層の通信プロトコルから定まる条件であって通信網の利用率の低下を招かない条件を示す情報を取得する第1の手順と、
    データリンク層から上位層へのデータユニットの引き渡しに用いられる記憶領域であって書き込まれたデータユニットが書き込まれた順に上位層にて読み出される記憶領域に上位層からデータリンク層に引き渡された順序で書き込まれるべきデータユニットを受信し、前記受信したデータユニットが前記記憶領域へ即座に書き込まれた場合に前記記憶領域へのデータユニットの書き込み履歴が前記取得された情報により示される条件を満たすか否かを判定し、判定結果が肯定的な場合には前記受信したデータユニットを前記記憶領域に書き込み、否定的な場合にはデータユニットを退避する、という処理を繰り返す第2の手順と、
    を実行させるとともに、
    前記退避されたデータユニットよりも先に前記記憶領域に書き込まれるべき全てのデータユニットが前記記憶手段に書き込まれた後に、前記退避されたデータユニットを前記記憶領域に書き込む第3の手順
    を実行させるプログラム。
JP2003382857A 2003-11-12 2003-11-12 受信装置、通信システム及びプログラム Expired - Fee Related JP4203400B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003382857A JP4203400B2 (ja) 2003-11-12 2003-11-12 受信装置、通信システム及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003382857A JP4203400B2 (ja) 2003-11-12 2003-11-12 受信装置、通信システム及びプログラム

Publications (2)

Publication Number Publication Date
JP2005150951A true JP2005150951A (ja) 2005-06-09
JP4203400B2 JP4203400B2 (ja) 2008-12-24

Family

ID=34691796

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003382857A Expired - Fee Related JP4203400B2 (ja) 2003-11-12 2003-11-12 受信装置、通信システム及びプログラム

Country Status (1)

Country Link
JP (1) JP4203400B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008048326A (ja) * 2006-08-21 2008-02-28 Fujitsu Ltd 無線受信装置
JP2008524942A (ja) * 2004-12-22 2008-07-10 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 重複受信確認を用いたデータフロー制御
JP2009246447A (ja) * 2008-03-28 2009-10-22 Panasonic Corp 通信端末装置及びデータ並び替え制御方法
JP2012165141A (ja) * 2011-02-04 2012-08-30 Canon Inc 通信装置、通信装置の制御方法、およびプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008524942A (ja) * 2004-12-22 2008-07-10 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 重複受信確認を用いたデータフロー制御
JP2008048326A (ja) * 2006-08-21 2008-02-28 Fujitsu Ltd 無線受信装置
JP2009246447A (ja) * 2008-03-28 2009-10-22 Panasonic Corp 通信端末装置及びデータ並び替え制御方法
JP2012165141A (ja) * 2011-02-04 2012-08-30 Canon Inc 通信装置、通信装置の制御方法、およびプログラム

Also Published As

Publication number Publication date
JP4203400B2 (ja) 2008-12-24

Similar Documents

Publication Publication Date Title
US7477675B2 (en) Data communication apparatus
JP4495085B2 (ja) 通信システム、通信装置、およびデータの再送制御方法
US20060245430A1 (en) Method and Apparatus of a Procedure for Receiving Window Size Reconfiguration in a Communication System
KR100671002B1 (ko) 전송창 크기 변경 과정을 조정하기 위한 무선 통신 시스템의 수신기 및 송신기 제어 방법
EP1768330B1 (en) Method and apparatus for handling timers during reestablishing transmitting sides in wireless communications systems
JP4119446B2 (ja) 通信システムの受信窓サイズを再設定する方法及び関連装置
CN108768596B (zh) 信号自动重传请求方法与装置
EP1768296A2 (en) Method and apparatus for transmitting signaling data messages in a wireless communications system
JPWO2011158467A1 (ja) データ送信装置及びデータ送信方法
EP1796301B1 (en) Method and apparatus for RLC protocol error handling
CN108713311A (zh) 一种传输控制协议tcp报文的传输方法、设备及系统
CN108432287A (zh) 一种数据传输方法及网络侧设备
US20060116074A1 (en) Communication repeater, communication repeater program, and communication repeater system
JP4203400B2 (ja) 受信装置、通信システム及びプログラム
JP2007235976A (ja) データ通信装置
JP2008053888A (ja) 通信装置、プログラム、情報記憶媒体および通信制御方法
JP2006101339A (ja) データ通信装置
JP4447028B2 (ja) 通信制御方法、送信装置、およびコンピュータプログラム
JP2007324700A (ja) 伝送制御方法
JP3655610B2 (ja) ワイヤレスコミュニケーションシステムにおける不測の伝送中断を処理する方法
JP2009044694A (ja) データユニットの送信回数のカウント方法、カウント装置、送信装置、およびコンピュータプログラム
JP4755036B2 (ja) 再送制御方法、再送制御装置および通信装置
JP4348168B2 (ja) 通信装置、送信機、通信システム、通信方法、及びプログラム
JP2019114947A (ja) 通信装置、通信装置の制御方法およびプログラム
JP6763369B2 (ja) ネットワークシステム、通信制御方法、及び、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060406

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080911

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081010

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20111017

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121017

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131017

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees