(57)【要約】【課題】パケットロスが発生した場合であっても、迅速かつ確実な送受信の再開が可能な無線通信装置を提供すること。【解決手段】無線通信装置は、通信プロトコル処理部からのシーケンス番号が付されたデータパケットを受信装置へ送信し、データパケットの受領を示す受信装置からのＡＣＫ番号が付されたＡＣＫパケットを受信する無線通信部と、無線通信部が受信した最新のＡＣＫパケットを複製するＡＣＫ複製部と、ＡＣＫ複製部が複製した最新の複製ＡＣＫパケットを、所定時間毎に、通信プロトコル処理部へ転送する複製ＡＣＫ転送部と、備える。通信プロトコル処理部は、同じ複製ＡＣＫパケットを所定回数受け取ると、当該複製ＡＣＫパケットに付されたＡＣＫ番号に等しいシーケンス番号のデータパケットの再送を決定する。【選択図】図２
2014176015.tif 000002
【特許請求の範囲】
【請求項１】
通信プロトコル処理部からのシーケンス番号が付されたデータパケットを受信装置へ送信し、前記データパケットの受領を示す前記受信装置からのＡＣＫ番号が付されたＡＣＫパケットを受信する無線通信部と、
前記無線通信部が受信した最新のＡＣＫパケットを複製するＡＣＫ複製部と、
前記ＡＣＫ複製部が複製した最新の複製ＡＣＫパケットを、所定時間毎に、前記通信プロトコル処理部へ転送する複製ＡＣＫ転送部と、備え、
前記通信プロトコル処理部は、同じ複製ＡＣＫパケットを所定回数受け取ると、当該複製ＡＣＫパケットに付されたＡＣＫ番号に等しいシーケンス番号のデータパケットの再送を決定することを特徴とする無線通信装置。
【請求項２】
請求項１に記載の無線通信装置であって、
前記無線通信部がデータパケットを送信してから前記無線通信部が当該データパケットのＡＣＫパケットを受信するまで時間を計測する計測部と、
前記計測部が計測した時間に基づいて、前記複製ＡＣＫ転送部が複製ＡＣＫパケットを前記通信プロトコル処理部へ転送する時間間隔を決定する転送間隔決定部と、を備え、
前記複製ＡＣＫ転送部は、前記転送間隔決定部が決定した時間間隔で、前記ＡＣＫ複製部が複製した最新の複製ＡＣＫパケットを複数回、前記通信プロトコル処理部へ転送することを特徴とする無線通信装置。
【請求項３】
請求項１又は２に記載の無線通信装置であって、
前記無線通信部が送信する最新のデータパケットのシーケンス番号を取得するシーケンス番号取得部と、
前記シーケンス番号取得部が取得したシーケンス番号と前記ＡＣＫ複製部が複製した最新の複製ＡＣＫパケットのＡＣＫ番号を比較して、比較結果に応じて前記複製ＡＣＫ転送部による複製ＡＣＫパケットの転送の可否を判定する転送可否判定部と、を備え、
前記複製ＡＣＫ転送部は、一度の転送毎に、前記転送可否判定部による判定結果に従って、前記ＡＣＫ複製部が複製した最新の複製ＡＣＫパケットの転送を中止する又は行うことを特徴とする無線通信装置。
【請求項４】
請求項３に記載の無線通信装置であって、
前記転送可否判定部は、前記ＡＣＫ複製部が複製した最新の複製ＡＣＫパケットのＡＣＫ番号が前記シーケンス番号取得部が取得したシーケンス番号よりも大きい場合、前記最新の複製ＡＣＫパケットの転送の中止を前記複製ＡＣＫ転送部に指示することを特徴とする無線通信装置。
【請求項５】
通信プロトコル処理部からのシーケンス番号が付されたデータパケットを受信装置へ送信し、
前記データパケットの受領を示す前記受信装置からのＡＣＫ番号が付されたＡＣＫパケットを受信し、
前記受信した最新のＡＣＫパケットを複製し、
前記最新の複製ＡＣＫパケットを、所定時間毎に、前記通信プロトコル処理部へ転送し、
前記通信プロトコル処理部が同じ複製ＡＣＫパケットを所定回数受け取ると、当該複製ＡＣＫパケットに付されたＡＣＫ番号に等しいシーケンス番号のデータパケットの再送を決定することを特徴とするデータパケット再送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ＩＰ（Internet Protocol）ネットワークを介してＴＣＰ（Transmission Control Protocol）を用いた通信データパケットの転送を行う無線通信装置及びデータパケット再送方法に関する。
【背景技術】
【０００２】
近年では、無線通信によるデータの転送速度が向上した。ＩＥＥＥ ８０２.１１ａｄ又はＩＥＥＥ ８０２.１１ａｃ等の無線通信規格は、最大スループットが１Ｇビット/秒（１Ｇｂｐｓ）を達成する。特にＩＥＥＥ ８０２.１１ａｄは、理論上の最大スループットが７Ｇｂｐｓを達成する規格である。ＩＥＥＥ ８０２.１１ａｄ又はＩＥＥＥ ８０２.１１ａｃでは、ＴＣＰ／ＩＰプロトコルを使用した通信が使われることが想定される。
【０００３】
以下、ＴＣＰにおけるデータパケットの送受信について、図８を参照して説明する。ＴＣＰにおけるデータパケットのパケットサイズは、既に送受信したパケットのＭＳＳ（Maximum Segment Size）及びＭＴＵ（Max Transfer Unit Size）に基づいて決定される。なお、図８では、簡単のため、データパケットのパケットサイズは１として記載されている。
【０００４】
送信側装置１０が送ったデータパケットが受信側装置１１に到達したことは、ＡＣＫパケット（Acknowledgement Packet）を受信側装置１１が送信側装置１０に送り、それを送信側装置１０が受け取ることによって確認される。図８には、データパケットの送信が実線の矢印で示され、ＡＣＫパケットの送信が破線の矢印で示されている。送信側装置１０は、各データパケットにシーケンス番号（図８では「Ｓｅｑ」と表記）を付与する。また、受信側装置１１は、受信したデータパケットのシーケンス番号にパケットサイズを足したＡＣＫ番号（図８では「Ａｃｋ」と表記）及び受信可能なウィンドウサイズ（図８では「Ｗｉｎ」と表記）をＡＣＫパケットに付与する。
【０００５】
ウィンドウサイズとは、送信側装置１０が、ＡＣＫパケットを得ることなく、受信側装置１１にデータパケットを送り続けることが可能なデータ量である。ウィンドウサイズが大きいと、送信側装置１０がＡＣＫパケットを得なくても大量のデータパケットを送り続けることができる。
【０００６】
無線伝送時のエラー等でデータパケットが欠落した場合、送信側装置１０には、当該欠落したデータパケットに対応したＡＣＫパケットが到達しない。送信側装置１０によるデータパケットの送信から一定時間が経過しても送信側装置１０がＡＣＫパケットを受信しない場合、送信側装置１０は、得られなかったＡＣＫパケットに対応したデータパケットを再送する。データパケットの送信から再送までの時間は、ＲＴＯ（Retransmission Time Out）と規定される。ＲＴＯは、送信側装置１０によるデータパケットの送信から、対応するＡＣＫパケットを受信するまでの時間である、ＲＴＴ（Round Trip Time）に基づいて算出される。
【０００７】
ＴＣＰにおいて、データパケットが欠落するたびＲＴＯが経過するまで再送を行わないと、スループットが低下する。スループットの低下を回避する一方法では、送信側装置１０がデータパケットを送り、受信側装置１１で受信できていないデータパケットがあれば、受信側装置１１は、当該受信できていないデータパケットに対応した重複確認応答パケット（Duplicate Acknowledgement Packet：以下「ＤｕｐＡＣＫパケット」という）を送信側装置１０に送信する。送信側装置１０がＤｕｐＡＣＫパケットを３回連続して受信した場合、送信側装置１０は即座にデータパケットを再送する。これを高速再送（非特許文献１を参照）という。
【０００８】
高速再送の一例を図９に示す。図９に示した例では、送信側装置１０から送出されたシーケンス番号が２（Ｓｅｑ＝２）のデータパケットが無線伝送中に欠落した場合、受信側装置１１は、後続のデータパケット（Ｓｅｑ＝３）〜データパケット（Ｓｅｑ＝５）をそれぞれ受信した際に、ＡＣＫ番号が２（Ａｃｋ＝２）のＡＣＫパケットをＤｕｐＡＣＫパケットとして送信側装置１０に送信する。送信側装置１０は、ＤｕｐＡＣＫパケットを３回連続して受信すると、シーケンス番号が２（Ｓｅｑ＝２）のデータパケットを即座に再送する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１０―５０６６５号公報
【非特許文献】
【００１０】
【非特許文献１】W. Richard Stevens氏，「TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms」，ＲＦＣ  ２００１，１９９７年１月
【発明の概要】
【発明が解決しようとする課題】
【００１１】
ＩＥＥＥ ８０２.１１ａｄの規格による無線通信は、通信速度が最大伝送速度が７Ｇｂｐｓと非常に高速化されている反面、通信範囲がおおよそ１０ｍ程度と狭く、遮蔽物にも弱い特性がある。このため、通信相手と距離が離れていたり、通信相手との間に遮蔽物が存在する場合には、無線エラーが起こりやすい。したがって、高速再送を使い、効率よく再送を促すことが必要である。
【００１２】
しかしながら、上記説明したように、高速再送は、受信側装置にデータパケットが到達し、受信側装置がＤｕｐＡＣＫパケットを送信側装置に送信することで成り立つ機能である。このため、無線リンク状態が悪化し、バーストエラーが発生（複数のデータがロスト）した場合、受信側装置にはデータパケットが到達しない。その結果、高速再送が機能せず、結局はＲＴＯ後の再送になってしまう。また、無線リンク状態が悪化し、バーストエラーが発生（複数のデータがロスト）した後、無線リンク状態が回復した場合には、早期にデータパケットの送受信を再開する必要がある。
【００１３】
特許文献１に開示された移動体通信システムには、送信端末と受信端末の間に中継装置が設けられ、中継装置が無線リンクを監視する。中継装置は、ハンドオーバ等による無線リンクの一時的な非接続状態を検出した場合、受信側装置から送信されたＴＣＰのＡＣＫパケットを蓄積する。中継装置は、さらに、無線リンクが接続状態に復帰したことを検出すると、蓄積しておいたＡＣＫパケットを、指定した回数だけ複製して送信する。
【００１４】
特許文献１におけるパケット送受信のシーケンスの例を図１０に示す。図１０に示す例では、送信端末３１がデータパケット１〜４を送信し、受信端末３６がこれらのデータパケットを受信する。受信端末３６は、データパケット１〜４に対する確認応答としてＡＣＫパケット１〜４を送信し、送信端末３１がこれらのＡＣＫパケットを受信する。このとき、受信側中継装置３５は、中継するＡＣＫパケットのうち最新のものを蓄積する。このため、送信端末３１がＡＣＫパケット４を受信した時点で、受信側中継装置３５は、ＡＣＫパケット４を蓄積している。
【００１５】
送信端末３１がＡＣＫパケット４を受信した直後、ハンドオーバが発生し、送信端末３１から送信されたデータパケット５〜８が無線伝送中に消失したとする。ハンドオーバ中は無線リンクが非接続状態となるが、ハンドオーバが終了して無線リンクの接続状態が回復し、受信側無線機３４が当該接続状態を確認すると、受信側中継装置３５は、蓄積しているＡＣＫパケット４を複数個複製して送信端末３１側に送信する。
【００１６】
送信端末３１は、ＡＣＫパケット４を受信することにより、データパケット５以降が無線伝送中に消失したと判断して、データパケット５〜８を再送する。受信端末３６がデータパケット５〜８を受信すると、受信端末３６は、データパケット５〜８に対する確認応答としてＡＣＫパケット５〜８を送信し、送信端末３１がこれらのＡＣＫパケットを受信する。送信端末３１は、ＡＣＫパケット５〜８を受信することにより、再送したデータパケット５〜８の消失がなかったと判断して、データパケット９〜１２を送信し、以降、この動作を繰り返す。
【００１７】
このように、特許文献１に開示された移動体通信システムでは、中継装置が、無線リンクの状態を監視しつつ、ＡＣＫパケットを蓄積し、無線リンクの接続が回復した後にＡＣＫパケットを複数個複製して無線機を介して送信することで、早期にデータパケットの送受信を再開することを可能とする。
【００１８】
しかし、特許文献１に開示された移動体通信システムは、以下に示す４つの問題を含む。
１．中継装置が必要であるため機器間通信では実現が困難である。
２．無線リンクの状態を監視するための設計コストが多くなる。
３．中継装置が蓄積したＡＣＫパケットを複数個複製して無線機を介して送信する設計コスト及び周波数コストが多くなる。
４．中継装置が蓄積したＡＣＫパケットを複数個複製して無線機を介して送信するが、送信側の装置にこれらの複製されたＡＣＫパケットが確実に到達する保証ができない。
【００１９】
無線ＬＡＮ等のローカルエリア通信では、ＡＰ（Access Point）等の中継装置を介さない機器間通信が広く使われるようになってきている。そのため、特許文献１に開示された移動体通信システムで設けられている中継装置を用いた解決は現実的ではない。また、中継装置による無線リンクの監視は、当該監視のための手段等を考慮すると実装上の制約が考えられ、設計コストが大きくなる。また、無線リンクの回復後に行われる中継装置に蓄積されたＡＣＫパケットの無線送信には、そのための周波数コスト及び無線によるデータロストがある。すなわち、送信装置側にＡＣＫパケットが到達する保証が無いため、確実にデータパケットの送受信を再開できるとは限らない。
【００２０】
本開示の目的は、簡単な構成で、パケットロスが発生した場合であっても、迅速かつ確実な送受信の再開が可能な無線通信装置及びデータパケット再送方法を提供することである。
【課題を解決するための手段】
【００２１】
本開示に係る無線通信装置は、通信プロトコル処理部からのシーケンス番号が付されたデータパケットを受信装置へ送信し、前記データパケットの受領を示す前記受信装置からのＡＣＫ番号が付されたＡＣＫパケットを受信する無線通信部と、前記無線通信部が受信した最新のＡＣＫパケットを複製するＡＣＫ複製部と、前記ＡＣＫ複製部が複製した最新の複製ＡＣＫパケットを、所定時間毎に、前記通信プロトコル処理部へ転送する複製ＡＣＫ転送部と、備え、前記通信プロトコル処理部は、同じ複製ＡＣＫパケットを所定回数受け取ると、当該複製ＡＣＫパケットに付されたＡＣＫ番号に等しいシーケンス番号のデータパケットの再送を決定する。
【００２２】
本開示に係るデータパケット再送方法は、通信プロトコル処理部からのシーケンス番号が付されたデータパケットを受信装置へ送信し、
前記データパケットの受領を示す前記受信装置からのＡＣＫ番号が付されたＡＣＫパケットを受信し、前記受信した最新のＡＣＫパケットを複製し、前記最新の複製ＡＣＫパケットを、所定時間毎に、前記通信プロトコル処理部へ転送し、前記通信プロトコル処理部が同じ複製ＡＣＫパケットを所定回数受け取ると、当該複製ＡＣＫパケットに付されたＡＣＫ番号に等しいシーケンス番号のデータパケットの再送を決定する。
【発明の効果】
【００２３】
本開示によれば、簡単な構成で、パケットロスが発生した場合であっても、迅速かつ確実な送受信の再開が可能である。その結果、スループットの低下を防止することができる。また、当該効果は送信側装置の構成の変更だけで実現できるため、無線を介さずに低コストで実現できる。
【図面の簡単な説明】
【００２４】
【図１】本開示の実施の形態１に係る送信側装置及び受信側装置を含む無線通信システムの構成を示すブロック図
【図２】本開示の実施の形態１に係るデータパケットの送受信及び再送を示すシーケンス図
【図３】本開示の実施の形態１に係るＤｕｐＡｃｋの転送がキャンセルされる場合のシーケンス図
【図４】本開示の実施の形態２に係る送信側装置の内部構成を示すブロック図
【図５】本開示の実施の形態２に係るデータパケットの送受信及び再送を示すシーケンス図
【図６】本開示の実施の形態３に係る送信側装置の内部構成を示すブロック図
【図７】本開示の実施の形態３に係るデータパケットの送受信を示すシーケンス図
【図８】ＴＣＰにおけるデータパケットの送受信を示すシーケンス図
【図９】ＴＣＰにおけるデータパケットの高速再送を示すシーケンス図
【図１０】特許文献１におけるパケット送受信のシーケンス図
【発明を実施するための形態】
【００２５】
以下、本開示の実施の形態について、図面を参照しながら説明する。なお、以下説明する実施の形態においては、ＴＣＰ／ＩＰでの通信を例に説明を行う。但し、本開示はＴＣＰ／ＩＰの通信プロトコルに限らず、受信側装置がパケットの受領を示す確認応答パケット（ＡＣＫパケット）を送信側装置に送信し、当該ＡＣＫパケットに基づいて送信側装置が再送の判定を行う同種の通信プロトコルにも適用可能である。
【００２６】
（実施の形態１）
図１は、本開示の実施の形態１に係る送信側装置及び受信側装置を含む無線通信システムの構成を示すブロック図である。図１に示す無線通信システムが含む送信側装置１００は、アプリケーション処理部１４０と、通信プロトコル処理部１４１と、ＭＡＣ（Media Access Control）処理部１４２と、無線処理部１４３とを備える。なお、図１に示すように、受信側装置１１０も送信側装置１００と同様の構成要素を備える。
【００２７】
以下、送信側装置１００が備える各構成要素について説明する。アプリケーション処理部１４０は、ＯＳＩ参照モデルにおける第７層（アプリケーション層）〜第５層（セッション層）での処理を行う。通信プロトコル処理部１４１は、後述する同じＡＣＫ番号のＤｕｐＡＣＫパケットを一定時間毎にＭＡＣ処理部１４２から３度続けて転送された場合、ＲＴＯ（Retransmission Time Out）を待たずにデータパケットの再送を行う。通信プロトコル処理部１４１は、ＴＣＰ処理部５１及びＩＰ処理部５３を有する。通信プロトコル処理部１４１のＴＣＰ処理部５１は、ＯＳＩ参照モデルにおける第４層（トランスポート層）での処理を行う。また、通信プロトコル処理部１４１のＩＰ処理部５３は、ＯＳＩ参照モデルにおける第３層（ネットワーク層）での処理を行う。ＭＡＣ処理部１４２は、ＯＳＩ参照モデルにおける第２層（データリンク層）での処理を行う。無線処理部１４３は、ＯＳＩ参照モデルにおける第１層（物理層）での処理を行う。
【００２８】
次に、ＭＡＣ処理部１４２の内部構成について説明する。図１に示すように、ＭＡＣ処理部１４２は、ＭＡＣ送信部６１と、ＭＡＣ受信部６３と、第１転送部６５と、ＡＣＫ複製部６７と、第２転送部６９とを有する。
【００２９】
ＭＡＣ送信部６１は、通信プロトコル処理部１４１よりデータパケットを受け、当該データパケットを無線処理部１４３を介して接続先の受信側装置１１０に送信する。ＭＡＣ受信部６３は、ＭＡＣ送信部６１が送信したデータパケットに対応する、受信側装置１１０からのＡＣＫパケットを受信する。また、ＭＡＣ受信部６３は、受信したＡＣＫパケットを第１転送部６５に送る。さらに、ＭＡＣ受信部６３は、受信したＡＣＫパケットの内、現時点で最後に受信した最新の（latest）ＡＣＫパケットをＡＣＫ複製部６７に送る。
【００３０】
第１転送部６５は、ＭＡＣ受信部６３から送られたＡＣＫパケットを通信プロトコル処理部１４１に転送する。ＡＣＫ複製部６７は、ＭＡＣ受信部６３から送られたＡＣＫパケットを複製し保存する。なお、ＡＣＫ複製部６７は、ＭＡＣ受信部６３から新たなＡＣＫパケットが送られる度に当該ＡＣＫパケットを複製し、当該複製した新たなＡＣＫパケットを既存のＡＣＫパケットに上書き（overwrite）して保存する。
【００３１】
第２転送部６９は、ＡＣＫ複製部６７に保存されたＡＣＫパケットを、ＤｕｐＡＣＫパケット（Duplicate ACKパケット）として、一定時間毎に３度、プロトコル処理部１４１に転送する。なお、一定時間は、例えば固定値である。第２転送部６９は、ＤｕｐＡＣＫパケットを一定時間毎に３度転送する処理を完了する前に、ＭＡＣ受信部６３が新たなＡＣＫパケットを受信し、ＡＣＫ複製部６７でこの新たなＡＣＫパケットが複製された場合には、通信プロトコル処理部１４１へのＤｕｐＡＣＫパケットの転送を中止する。この場合、第２転送部６９は、ＡＣＫ複製部６７で複製された新たなＡＣＫパケットを新たなＤｕｐＡＣＫパケットとして、一定時間毎に３度、通信プロトコル処理部１４１に転送する。
【００３２】
図２は、本開示の実施の形態１に係るデータパケットの送受信及び再送を示すシーケンス図である。図２に示すように、送信側装置１００の通信プロトコル処理部１４１からデータパケット（Ｓｅｑ＝１）〜データパケット（Ｓｅｑ＝４）が、ＭＡＣ処理部１４２及び無線処理部１４３を介して送信される。受信側装置１１０は、受信したデータパケットに対応したＡＣＫパケット（Ａｃｋ＝５、Ｗｉｎ＝４）を送信側装置１００に送信し、送信側装置１００が当該ＡＣＫパケットを受信する。
【００３３】
なお、送信側装置１００は、各データパケットにシーケンス番号（図２では「Ｓｅｑ」と表記）を付与する。また、受信側装置１１は、受信したデータパケットの内の最も古いシーケンス番号にパケットサイズを足したＡＣＫ番号（図２では「Ａｃｋ」と表記）及び受信可能なウィンドウサイズ（図２では「Ｗｉｎ」と表記）をＡＣＫパケットに付与する。
【００３４】
送信側装置１００のＭＡＣ処理部１４２は、受信したＡＣＫパケット（Ａｃｋ＝５、Ｗｉｎ＝４）を複製したＤｕｐＡＣＫパケット（Ａｃｋ＝５、Ｗｉｎ＝４）を、一定時間毎に３度、送信側装置１００の通信プロトコル処理部１４１に転送する。当該ＤｕｐＡＣＫパケットの転送とは別の処理として、送信側装置１００の通信プロトコル処理部１４１からはデータパケット（Ｓｅｑ＝５）〜データパケット（Ｓｅｑ＝８）が、ＭＡＣ処理部１４２及び無線処理部１４３を介して送信される。しかし、これらのデータパケットが受信側装置１１０までの無線伝送中に消失すると、受信側装置１１０にはデータパケットが到達しないため、送信側装置１００にはＡＣＫパケットが送信されない。一方、送信側装置１００は、データパケットを送信後、ＡＣＫパケット待ちの状態となり、後続のデータパケット（Ｓｅｑ＝９）〜データパケット（Ｓｅｑ＝１２）を送信できない。
【００３５】
図２に示した例では、送信側装置１００の通信プロトコル処理部１４１に、同じＡＣＫ番号（Ａｃｋ＝５）のＤｕｐＡＣＫパケットが３度転送される。この場合、通信プロトコル処理部１４１は、当該ＤｕｐＡＣＫパケットが示すＡＣＫ番号に等しいシーケンス番号のデータパケット（Ｓｅｑ＝５）〜データパケット（Ｓｅｑ＝８）の再送を決定し実行する。
【００３６】
一方、図３に示した例では、通信プロトコル処理部１４１がデータパケット（Ｓｅｑ＝５）〜データパケット（Ｓｅｑ＝８）を送信した後、Ａｃｋ＝５の３度目のＤｕｐＡＣＫパケット（ＤｕｐＡＣＫ３）の転送が行われる前に、送信側装置１００がデータパケット（Ｓｅｑ＝８）に対するＡＣＫパケット（Ａｃｋ＝９、Ｗｉｎ＝４）を受信する。この場合、通信プロトコル処理部１４１は、図２を参照した上述のデータパケットの再送を行わず、後続のデータパケット（Ｓｅｑ＝９）〜データパケット（Ｓｅｑ＝１２）を、ＭＡＣ処理部１４２及び無線処理部１４３を介して送信する。なお、送信側装置１００のＭＡＣ処理部１４２は、ＡＣＫパケット（Ａｃｋ＝９、Ｗｉｎ＝４）を受信したとき、３度目のＤｕｐＡＣＫ３（Ａｃｋ＝５、Ｗｉｎ＝４）の転送を中止すると共に、当該ＡＣＫパケット（Ａｃｋ＝９、Ｗｉｎ＝４）を複製したＤｕｐＡＣＫパケットを一定時間毎に３度転送する処理を開始する。
【００３７】
以上説明したように、本実施の形態では、送信側装置１００から受信側装置１１０への無線伝送中にパケットロスが発生した場合、送信側装置１００の通信プロトコル処理部１４１は、同装置１００内のＭＡＣ処理部１４２から同じＡＣＫ番号のＤｕｐＡＣＫパケットが一定時間毎に３度転送されると、ＲＴＯ（Retransmission Time Out）を待たずにデータパケットの再送を行う。同じＡＣＫ番号のＤｕｐＡＣＫパケットが一定時間毎に３度転送されるまでの時間はＲＴＯよりも短いため、パケットロスが発生した場合であっても、迅速かつ確実な送受信の再開が可能である。また、上記効果は送信側装置１００の構成の変更だけで実現できるため、無線を介さずに低コストで実現できる。
【００３８】
（実施の形態２）
図４は、本開示の実施の形態２に係る送信側装置の内部構成を示すブロック図である。第２の実施形態の送信側装置２００が第１の実施形態の送信側装置１００と異なる点は、ＭＡＣ処理部２４２の内部構成である。図４において、図１と共通する構成要素には同じ参照符号が付されている。本実施の形態では、第１実施形態と同一又は同等部分に関しては説明を簡略化又は省略する。
【００３９】
実施の形態２のＭＡＣ処理部２４２は、実施の形態１のＭＡＣ処理部１４２が有するＭＡＣ送信部６１、ＭＡＣ受信部６３、第１転送部６５及びＡＣＫ複製部６７に加えて、ＲＴＴ計測部７１と、転送間隔決定部７３と、第２転送部７９とを有する。
【００４０】
ＲＴＴ計測部７１は、ＭＡＣ送信部６１がデータパケットを送信してからＭＡＣ受信部６３がこのデータパケットのＡＣＫパケットを受信するまでの時間（ＲＴＴ：Round Trip Time）を計測する。転送間隔決定部７３は、ＲＴＴ計測部７１が計測したＲＴＴに任意の値である係数を乗算した値を「転送間隔」として決定する。なお、転送間隔は、第２転送部７９が通信プロトコル処理部１４１にＤｕｐＡＣＫパケットを３度続けて転送する際の、各転送間の時間間隔である。
【００４１】
第２転送部７９は、ＡＣＫ複製部６７に保存されたＡＣＫパケットを、ＤｕｐＡＣＫパケットとして、転送間隔決定部７３が決定した転送間隔で３度、プロトコル処理部１４１に転送する。なお、第２転送部７９は、ＤｕｐＡＣＫパケットを上記転送間隔で３度転送する処理を完了する前に、ＭＡＣ受信部６３が新たなＡＣＫパケットを受信し、ＡＣＫ複製部６７でこの新たなＡＣＫパケットが複製された場合には、通信プロトコル処理部１４１へのＤｕｐＡＣＫパケットの転送を中止する。この場合、第２転送部７９は、ＡＣＫ複製部６７で複製された新たなＡＣＫパケットを新たなＤｕｐＡＣＫパケットとして、転送間隔決定部７３が再度決定した転送間隔で３度、通信プロトコル処理部１４１に転送する。
【００４２】
図５は、本開示の実施の形態２に係るデータパケットの送受信及び再送を示すシーケンス図である。図５に示すように、送信側装置２００の通信プロトコル処理部１４１からデータパケット（Ｓｅｑ＝１）〜データパケット（Ｓｅｑ＝４）が、ＭＡＣ処理部２４２及び無線処理部１４３を介して送信される。受信側装置１１０は、受信したデータパケットに対応したＡＣＫパケット（Ａｃｋ＝５、Ｗｉｎ＝４）を送信側装置２００に送信し、送信側装置２００が当該ＡＣＫパケットを受信する。
【００４３】
ＭＡＣ処理部２４２のＲＴＴ計測部７１は、データパケット（Ｓｅｑ＝４）の送信からＡＣＫパケット（Ａｃｋ＝５、Ｗｉｎ＝４）の受信までの時間をＲＴＴとして計測する。さらに、ＭＡＣ処理部２４２の転送間隔決定部７３は、ＲＴＴに基づいて転送間隔を決定する。
【００４４】
送信側装置２００のＭＡＣ処理部２４２は、受信したＡＣＫパケット（Ａｃｋ＝５、Ｗｉｎ＝４）を複製したＤｕｐＡＣＫパケット（Ａｃｋ＝５、Ｗｉｎ＝４）を、転送間隔決定部７３によって決定された転送間隔で３度、送信側装置２００の通信プロトコル処理部１４１に転送する。当該ＤｕｐＡＣＫパケットの転送とは別の処理として、送信側装置２００の通信プロトコル処理部１４１からはデータパケット（Ｓｅｑ＝５）〜データパケット（Ｓｅｑ＝８）が、ＭＡＣ処理部２４２及び無線処理部１４３を介して送信される。しかし、これらのデータパケットが受信側装置１１０までの無線伝送中に消失すると、受信側装置１１０にはデータパケットが到達しないため、送信側装置２００にはＡＣＫパケットが送信されない。一方、送信側装置２００は、データパケットを送信後、ＡＣＫパケット待ちの状態となり、後続のデータパケット（Ｓｅｑ＝９）〜データパケット（Ｓｅｑ＝１２）を送信できない。
【００４５】
図５に示した例では、送信側装置２００の通信プロトコル処理部１４１に、同じＡＣＫ番号（Ａｃｋ＝５）のＤｕｐＡＣＫパケットが３度転送される。この場合、通信プロトコル処理部１４１は、当該ＤｕｐＡＣＫパケットが示すＡＣＫ番号に等しいシーケンス番号のデータパケット（Ｓｅｑ＝５）〜データパケット（Ｓｅｑ＝８）の再送を決定し実行する。
【００４６】
以上説明したように、本実施の形態では、送信側装置２００において、ＭＡＣ処理部２４２から通信プロトコル処理部１４１に転送されるＤｕｐＡＣＫパケットは、ＲＴＴに基づく転送間隔で転送される。したがって、ＲＴＴが変動に応じたＤｕｐＡＣＫパケットの転送が可能であるため、送信側装置２００における再送までの時間が適当な時間となるよう変更できる。
【００４７】
（実施の形態３）
図６は、本開示の実施の形態３に係る送信側装置の内部構成を示すブロック図である。第３の実施形態の送信側装置３００が第１の実施形態の送信側装置１００と異なる点は、ＭＡＣ処理部３４２の内部構成である。図６において、図１と共通する構成要素には同じ参照符号が付されている。本実施の形態では、第１実施形態と同一又は同等部分に関しては説明を簡略化又は省略する。
【００４８】
実施の形態３のＭＡＣ処理部３４２は、実施の形態１のＭＡＣ処理部１４２が有するＭＡＣ送信部６１、ＭＡＣ受信部６３、第１転送部６５及びＡＣＫ複製部６７に加えて、シーケンス番号取得部８１と、転送可否判定部８３と、第２転送部８９とを有する。なお、シーケンス番号取得部８１及び転送可否判定部８３が、実施の形態２の送信側装置２００のＭＡＣ処理部２４２の内部に設けられた構成であっても良い。
【００４９】
シーケンス番号取得部８１は、通信プロトコル処理部１４１から転送されＭＡＣ送信部６１から送信されるデータパケットにおける最新のシーケンス番号を取得する。転送可否判定部８３は、シーケンス番号取得部８１が取得したシーケンス番号とＡＣＫ複製部４５に保存されているＡＣＫパケットのＡＣＫ番号を比較して、その比較結果に応じて、第２転送部８９によるＤｕｐＡｃｋパケットの転送の可否を判断判定する。なお、ＴＣＰのＡＣＫ番号は３２ビットで表記され、４Ｇバイト毎にラップアラウンド（循環）する。このため、シーケンス番号とＡＣＫ番号を比較する際、転送可否判定部８３は、このラップアラウンドも考慮した大小関係の比較を行う。
【００５０】
ＤｕｐＡＣＫパケットのＡＣＫ番号が上記取得したシーケンス番号よりも大きい（ＡＣＫ番号＞シーケンス番号）場合、転送可否判定部８３は、ＤｕｐＡＣＫパケットの転送の中止を第２転送部８９に指示する。逆に、ＤｕｐＡＣＫパケットのＡＣＫ番号が上記取得したシーケンス番号以下である（ＡＣＫ番号≦シーケンス番号）場合、転送可否判定部８３は、ＤｕｐＡＣＫパケットの転送を第２転送部８９に許可する。なお、ＡＣＫ番号がシーケンス番号よりも大きい場合において、その差分の絶対値（｜シーケンス番号−ＡＣＫ番号｜）が、３２ビットで表すことができる値の半値よりも大きい場合、転送可否判定部８３は、シーケンス番号がラップアラウンドしたと判断して、ＤｕｐＡＣＫパケットの転送を第２転送部８９に許可する。
【００５１】
第２転送部８９は、ＡＣＫ複製部６７に保存されたＡＣＫパケットを、ＤｕｐＡＣＫパケットとして、一定時間毎に３度、プロトコル処理部１４１に転送する。但し、第２転送部８９は、１度の転送毎に、転送可否判定部８３によって許可されていれば転送を行うが、転送可否判定部８３によって中止が指示されていれば転送を中止する。また、第２転送部８９は、転送中止の如何にかかわらず、ＤｕｐＡＣＫパケットを一定時間毎に３度転送する処理を完了する前に、ＭＡＣ受信部６３が新たなＡＣＫパケットを受信し、ＡＣＫ複製部６７でこの新たなＡＣＫパケットが複製された場合には、通信プロトコル処理部１４１へのＤｕｐＡＣＫパケットの転送を中止する。この場合、第２転送部８９は、ＡＣＫ複製部６７で複製された新たなＡＣＫパケットを新たなＤｕｐＡＣＫパケットとして、一定時間毎に３度、通信プロトコル処理部１４１に転送する。
【００５２】
図７は、本開示の実施の形態３に係るデータパケットの送受信を示すシーケンス図である。図７に示すように、送信側装置３００の通信プロトコル処理部１４１からデータパケット（Ｓｅｑ＝１）〜データパケット（Ｓｅｑ＝４）が、ＭＡＣ処理部３４２及び無線処理部１４３を介して送信される。このとき、ＭＡＣ処理部３４２のシーケンス番号取得部８１が取得する最新のシーケンス番号は、Ｓｅｑ＝４である。受信側装置１１０は、受信したデータパケットに対応したＡＣＫパケット（Ａｃｋ＝５、Ｗｉｎ＝４）を送信側装置３００に送信し、送信側装置３００が当該ＡＣＫパケットを受信する。
【００５３】
送信側装置３００のＭＡＣ処理部２４２は、受信したＡＣＫパケット（Ａｃｋ＝５、Ｗｉｎ＝４）を複製したＤｕｐＡＣＫパケット（Ａｃｋ＝５、Ｗｉｎ＝４）を、一定時間毎に３度、送信側装置３００の通信プロトコル処理部１４１に転送するが、一度の転送毎に、ＭＡＣ処理部３４２の転送可否判定部８３は、当該ＤｕｐＡＣＫパケットのＡＣＫ番号とシーケンス番号取得部８１が取得した最新のシーケンス番号を比較する。このとき、ＡＣＫ番号（Ａｃｋ＝５）はシーケンス番号（Ｓｅｑ＝４）よりも大きいため、転送可否判定部８３は、ＤｕｐＡＣＫパケットの転送を中止する。
【００５４】
その後、次の転送のタイミングの前に、送信側装置３００の通信プロトコル処理部１４１からデータパケット（Ｓｅｑ＝５）〜データパケット（Ｓｅｑ＝８）が、ＭＡＣ処理部３４２及び無線処理部１４３を介して送信される。このとき、ＭＡＣ処理部３４２のシーケンス番号取得部８１が取得する最新のシーケンス番号は、Ｓｅｑ＝８である。この時点では受信側装置１１０からのデータパケット（Ｓｅｑ＝８）に対応するＡＣＫパケットを受信していないため、当該ＤｕｐＡＣＫパケットのＡＣＫ番号はＡｃｋ＝５のままである。このとき、ＡＣＫ番号（Ａｃｋ＝５）はシーケンス番号（Ｓｅｑ＝８）よりも小さいため、転送可否判定部８３はＤｕｐＡＣＫパケットの転送を許可し、ＭＡＣ処理部２４２は、ＤｕｐＡＣＫパケット（Ａｃｋ＝５、Ｗｉｎ＝４）を通信プロトコル処理部１４１に転送する。その後、送信側装置３００は、ＡＣＫパケット（Ａｃｋ＝９、Ｗｉｎ４）を受信する。
【００５５】
以上説明したように、本実施の形態では、図７に示した例において、仮にデータパケット（Ｓｅｑ＝８）で通信が完了する場合、送信側装置３００がＡＣＫパケット（Ａｃｋ＝９、Ｗｉｎ４）を受信した後は、ＭＡＣ処理部３４２から通信プロトコル処理部１４１へのＤｕｐＡＣＫパケットの転送は行われず、再送の条件を満たさないため、無駄な再送を行わずに正常に通信を完了できる。
【００５６】
上記説明した実施の形態１〜３では、送信側装置１００，２００，３００のＭＡＣ処理部１４２，２４２，３４２は、データパケットを送信し、当該データパケットのＡＣＫパケットを受信するまでの間、送信したデータパケットを一時的に保持するメモリ（図示せず）を有しても良い。この場合、第２転送部６９，７９，８９は、メモリが所定使用率を超えている間、通信プロトコル処理部１４１へのＤｕｐＡＣＫパケットの転送を停止する。
【００５７】
上記各実施形態では、本開示をハードウェアで構成する場合を例にとって説明したが、本開示はハードウェアとの連携においてソフトウェアでも実現することも可能である。
【００５８】
また、上記各実施形態の説明に用いた各機能ブロックは、典型的には集積回路であるＬＳＩとして実現される。これらは個別に１チップ化されてもよいし、一部又は全てを含むように１チップ化されてもよい。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【００５９】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【００６０】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【産業上の利用可能性】
【００６１】
本開示に係る無線通信装置は、データを送信する送信装置側で無線を介さずに確実にＤｕｐＡＣＫパケットを到達できる保証をもち、かつ、設計コストを抑え、容易に実現可能な無線通信装置等に適用可能である。
【符号の説明】
【００６２】
１００，２００，３００  送信側装置
１１０  受信側装置
１４０  アプリケーション処理部
１４１  通信プロトコル処理部
１４２，２４２，３４２  ＭＡＣ処理部
１４３  無線処理部
６１  ＭＡＣ送信部
６３  ＭＡＣ受信部
６５  第１転送部
６７  ＡＣＫ複製部
６９，７９，８９  第２転送部
７１  ＲＴＴ計測部
７３  転送間隔決定部
８１  シーケンス番号取得部
８３  転送可否判定部
【図１】
2014176015.tif 000003
【図２】
2014176015.tif 000004
【図３】
2014176015.tif 000005
【図４】
2014176015.tif 000006
【図５】
2014176015.tif 000007
【図６】
2014176015.tif 000008
【図７】
2014176015.tif 000009
【図８】
2014176015.tif 000010
【図９】
2014176015.tif 000011
【図１０】
2014176015.tif 000012