JP2010141769A - 通信装置 - Google Patents

通信装置 Download PDF

Info

Publication number
JP2010141769A
JP2010141769A JP2008318024A JP2008318024A JP2010141769A JP 2010141769 A JP2010141769 A JP 2010141769A JP 2008318024 A JP2008318024 A JP 2008318024A JP 2008318024 A JP2008318024 A JP 2008318024A JP 2010141769 A JP2010141769 A JP 2010141769A
Authority
JP
Japan
Prior art keywords
reception
data packet
waiting
waiting number
data
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.)
Pending
Application number
JP2008318024A
Other languages
English (en)
Inventor
Rei Fukawa
玲 布川
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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2008318024A priority Critical patent/JP2010141769A/ja
Publication of JP2010141769A publication Critical patent/JP2010141769A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】遅延ACKの使用に起因して通信性能が低下することのない通信方法を提供する。
【解決手段】通信装置は、待ち数を保持する待ち数保持手段と、受信したデータパケット数を計数する受信数計数手段と、前記受信数計数手段の計数値が初期値である状態でのデータパケット受信から所定時間内に前記受信数計数手段の示す計数値が前記待ち数保持手段の保持する前記待ち数に到達すると、前記受信数計数手段の計数値を前記初期値にリセットするとともに、前記待ち数分のデータパケット受信を示す確認応答の送信を指示する判断手段とを含み、前記判断手段は、前記待ち数保持手段が保持する前記待ち数をデータパケット受信状況に応じて動的に増減させる。
【選択図】図2

Description

本願開示は、一般に通信装置に関し、詳しくは受信に対する確認応答を行なう通信装置に関する。
インターネットで標準的に利用されるTCP(Transmission Control Protocol)は、IP(Internet Protocol)の機能を拡張し、信頼性のある通信を提供するプロトコルである。TCP/IPに関する具体的な仕様は、インターネット技術の標準を定める団体IETF(Internet Engineering Task Force)により、RFC793として管理されている。
TCPを利用したデータ通信では、送信機器からデータパケットを受信するたびに受信機器が確認応答を送信機器へと返信することにより、通信の信頼性を確保している。具体的には、送信機器から送信するデータパケットは、シーケンス番号SEQ及びデータ長LENを含む。シーケンス番号SEQの初期値は、TCPの通信開始時において、ランダムに決定される。ここでは説明を簡単にするために、シーケンス番号SEQの初期値が例えば1であるとする。このとき、あるデータパケットのシーケンス番号SEQが例えば1000であれば、当該送信機器が送信するデータ全体のうち、当該データパケットで送信するデータの先頭位置がデータ全体の先頭から1000バイト目であることになる。またデータ長LENが例えば100であれば、当該データパケットで送信するデータの長さが100バイトである。このデータパケットを正常に受信した場合、受信機器が送信する確認応答において、確認応答番号ACKの値は1100である。この確認応答番号ACK=1100は、データ位置1000から100バイトを受信したことを示すとともに、データの受信側がデータの送信側に対して要求する次のデータ位置を示す。即ち送信機器は、確認応答番号ACKが1100の確認応答を受信すると、シーケンス番号SEQが1100のデータパケットを、次のデータパケットとして送信することになる。
しかし1つのデータパケットに対して1つの確認応答を返信する構成では、短時間に大量のデータパケットが送信された場合に同数の確認応答が返信され、トラフィックの増大を招くことになる。そこでRFC1122には、遅延ACKが規定されている。この遅延ACK方式では、受信機器は受信した最初のデータパケットへの確認応答をすぐには送信せず、所定の待機時間内に次のデータパケットを受信して初めて確認応答を送信する。この確認応答には、上記2つのデータパケットを受信したことを示す確認応答番号が含まれている。このような構成とすることにより、複数の送信データパケットに対して1つの確認応答を返信することになり、トラフィックの増大を避けることができる。
しかし、遅延ACKを採用することにより、通信状況によっては通信性能の低下を招く場合がある。これについて以下に説明する。受信機器がデータパケットD1を受信した後、一定の待機時間の間次のデータパケットD2の受信を待つ状況において、このデータパケットD2が通信経路途中で喪失したとする。待機時間内にデータパケットD2を受信しないので、受信機器は、待機時間経過後に直ちに確認応答A1を送信する。この確認応答A1は、データパケットD1を受信したことを示す確認応答番号を含むものである。送信機器は、この確認応答A1を受信することによりデータパケットD2が受信されていないことを知り、再度データパケットD2を送信することができる。
送信機器の仕様として、データパケットD1を送信すると、それに対する確認応答A1を受信して初めて次のデータパケットD2を送信するように送信手順が構成されている場合もあり得る。このような場合、一連のデータパケットを送信する際、各データパケットの受信に対して毎回待機時間経過してから確認応答を返信することになり、データ送信に要する時間が非常に長くなってしまう。
特開2004−72372号公報 特開2007−180687号公報 特開2004−364217号公報 特開2003−264605号公報 特開2002−217963号公報 特開2005−143076号公報
以上を鑑みると、遅延ACKの使用に起因して通信性能が低下することのない通信方法が望まれる。
通信装置は、待ち数を保持する待ち数保持手段と、受信したデータパケット数を計数する受信数計数手段と、前記受信数計数手段の計数値が初期値である状態でのデータパケット受信から所定時間内に前記受信数計数手段の示す計数値が前記待ち数保持手段の保持する前記待ち数に到達すると、前記受信数計数手段の計数値を前記初期値にリセットするとともに、前記待ち数分のデータパケット受信を示す確認応答の送信を指示する判断手段と
を含み、前記判断手段は、前記待ち数保持手段が保持する前記待ち数をデータパケット受信状況に応じて動的に増減させることを特徴とする。
本願開示の少なくとも1つの実施例によれば、確認応答を送信するまでのデータパケットの待ち数を、データパケット受信状況に応じて動的に増減させる。これにより、遅延ACKの使用に起因して通信性能が低下することを避けることができる。
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
図1は、通信装置の全体構成の一例を示す図である。通信装置10は、物理部11、MAC部12、IP部13、及びTCP部14を含む。物理部11は、ケーブル、光ファイバ、無線LAN等の所定の物理層の規格に基づいてネットワーク16に接続される。MAC部12は、OSI(Open Systems Interconnection)参照モデルのデータリンク層に対応し、MAC(Media Access Control)アドレスに基づいて、イーサネット等を用いたパケットの送受信を行なう。MACアドレスは、物理的インターフェースであるネットワークカードに生産時に割り振られ、ネットワークカードのROMに焼き付けられている48ビットのシリアル番号である。MACアドレスは、全世界の各ネットワークカード毎に異なるものであり、一意に当該カードを特定できる。IP部13は、OSI参照モデルのネットワーク層に対応し、32ビットの論理的なIPアドレスに基づいて、パケットの送受信を行なう。MACアドレスに基づいてデータを送受信するためには、データリンク層において送信側と受信側とが直接に接続されている必要がある。そこで、間接的につながっている機器間で通信をする際には、上位の階層であるネットワーク層を用いて、複数の中継機器(ルータ)を経由してデータ送受信を行なう。TCP部14は、OSI参照モデルのトランスポート層に対応し、TCPプロトコルに基づいて、パケットの送受信を行なう。データの正しさはデータリンク層においてチェックサムにより確認しているが、データパケットが喪失することなく、正しいパケット順序で、正しいプログラム間で送受信されることを確実にする必要がある。TCP部14では、送信元ポート番号、宛先ポート番号、シーケンス番号、確認応答番号等を用いて、信頼性のあるデータ送受信を実現する。
図2は、TCP部14の構成の一例を示す図である。TCP部14は、TCP送信部21、TCP受信部22、判断部23、タイマ部24、及び計算部25を含む。TCP送信部21は、送信元ポート番号、宛先ポート番号、シーケンス番号、確認応答番号等を含むTCPヘッダを、送信すべきデータに付加し、TCPパケットデータとして送信する。TCP送信部21は更に、判断部23からの確認応答送信通知を受け取ると、確認応答のための確認応答パケットを送信する。TCP受信部22は、受信したTCPデータパケットに対して、TCPプロトコルに従った所定の処理を実行する。TCP受信部22は、データパケットを受信すると、判断部23に対してデータパケットの受信を通知する。TCP受信部22は更に、データパケットを受信すると、タイマ部24に対してタイマ起動通知を供給する。
判断部23は、待ち数保持領域31、受信数カウンタ32、データ長保持領域33、成功数カウンタ34、データ長判断部35、及びタイマ要因判断部36を含む。待ち数保持領域31、受信数カウンタ32、データ長保持領域33、及び成功数カウンタ34は、判断部23の内部レジスタや内部カウンタであってもよいし、或いは外部に設けたレジスタやカウンタであってもよい。待ち数保持領域31は、確認応答を送信するまでのデータパケットの待ち数を保持する。受信数カウンタ32は、受信したデータパケット数を計数する。判断部23は、受信数カウンタ32の計数値が初期値である状態でのデータパケット受信から所定時間内に、受信数カウンタ32の示す計数値が待ち数保持領域31の保持する待ち数に到達したか否かを判断する。所定時間内に計数値が待ち数に到達した場合、判断部23は、受信数カウンタ32の計数値を初期値にリセットするとともに、待ち数分のデータパケット受信を示す確認応答の送信をTCP送信部21に指示する。この判断部23は、待ち数保持領域31が保持する待ち数をデータパケット受信状況に応じて動的に増減させることを特徴とする。
例えば、受信数カウンタ32の計数値が初期値である状態でのデータパケット受信から所定時間内に受信数カウンタ32の示す計数値が待ち数保持領域31の保持する待ち数に到達しない場合、待ち数保持領域31が保持する待ち数を減少させてよい。具体的には、判断部23が、受信した分のデータパケット受信を示す確認応答の送信を指示するとともに、待ち数保持領域31が保持する待ち数を減少させるように、計算部25に指示してよい。判断部23の動作については、後程詳細に説明する。
タイマ部24は、受信間隔監視タイマ41、遅延ACKタイマ42、及び再送タイマ43を含む。受信間隔監視タイマ41は、データパケット受信により計時動作を開始するタイマであり、一定時間内に次のデータパケットを受信するか否かを判断するために用いられる。受信間隔監視タイマ41は、計時動作開始から次のデータパケットの受信なく所定長の時間が経過すると、タイムアウト通知を判断部23に供給する。遅延ACKタイマ42は、受信数カウンタ32の計数値が初期値である状態でのデータパケット受信により計時動作を開始する。遅延ACKタイマ42は、その計時動作の開始から所定時間内に受信数カウンタ32の示す計数値が待ち数保持領域31の保持する待ち数に到達したか否かを判断するために用いられる。遅延ACKタイマ42は、計時動作の開始から上記計数値が上記待ち数に到達することなく所定長の時間が経過すると、タイムアウト通知を判断部23に供給する。再送タイマ43は、データパケットを再送するまでの待ち時間を計時するためのタイマである。TCPでは、データパケットを送信してから一定時間の間応答確認パケットの返信が無い場合、応答が無かったデータパケットを再送する。再送タイマ43は、再送の要否を判断するための上記の一定時間を計時するために用いられる。タイマ部24の動作については、後程詳細に説明する。
計算部25は、待ち数増加計算部51と待ち数減少計算部52とを含む。待ち数増加計算部51は、判断部23からの待ち数増加指示に応じて、データ長保持領域33が保持する待ち数を増加させる計算を実行し、増加後の待ち数をデータ長保持領域33に格納させる。例えば、バイナリ表現されている待ち数を2倍にする演算により、容易に待ち数を増加させることができる。また待ち数減少計算部52は、判断部23からの待ち数減少指示に応じて、データ長保持領域33が保持する待ち数を減少させる計算を実行し、減少後の待ち数をデータ長保持領域33に格納させる。例えば、バイナリ表現されている待ち数を1/2倍にする演算により、容易に待ち数を減少させることができる。
図3は、待ち数を減少させる手順の実施形態の一例を示す図である。送信機器S1から受信機器R1にデータパケットD1乃至D6を送信する際に、待ち数Wを減少させる手順が示されている。初期状態において待ち数Wは8に設定されている。この待ち数Wが、データパケットの受信状況に応じて、順次8から4、4から2に減少されている。
図4は、図3に示す待ち数を減少させる手順を示すフローチャートである。図3及び図4を用いて、待ち数を減少させる手順について説明する。
図3に示すように、まず送信機器S1から受信機器R1にデータパケットD1を送信する。受信機器R1がデータパケットD1を受信すると、図4(a)において、ステップS1のパケット受信が発生し、ステップS2に進む。なおこの時、図2のTCP受信部22から判断部23に受信通知が供給される。ステップS2で、判断部23により、データパケットの受信を待機中であるか否かが判断される。これは、例えば受信数カウンタ32の計数値が初期値であるか否かで判断することができる。データパケットD1は最初のデータパケットであるので、データパケットD1受信の場合には、データパケットの受信を待機中ではない(即ち計数値は初期値である)。従ってステップS3に進み、遅延ACKタイマ42を起動する。具体的には、判断部23からタイマ部24を制御することにより、遅延ACKタイマ42を起動する。次にステップS4で、受信数を1増加させる。即ち、受信数カウンタ32の計数値(受信数)を1だけカウントアップする。ステップS5で、受信数が待ち数(W=8)に達したか否かを判断する。即ち、受信数カウンタ32の計数値が待ち数保持領域31の待ち数に達したか否かを、判断部23により判断する。この例では、まだ最初のデータパケットD1であるので、ステップS6に進み次のパケットの受信を待機する。
次に、図3に示すように、送信機器S1から受信機器R1にデータパケットD2を送信する。受信機器R1がデータパケットD2を受信すると、図4(a)において、ステップS1のパケット受信が発生し、ステップS2に進む。なおこの時、図2のTCP受信部22から判断部23に受信通知が供給される。ステップS2で、判断部23により、データパケットの受信を待機中であるか否かが判断される。データパケットD2受信の場合には、データパケットの受信を待機中である(即ち計数値は初期値ではない)。従ってステップS4に進み、受信数を1増加させる。即ち、受信数カウンタ32の計数値(受信数)を1だけカウントアップする。ステップS5で、受信数が待ち数(W=8)に達したか否かを判断する。即ち、受信数カウンタ32の計数値が待ち数保持領域31の待ち数に達したか否かを、判断部23により判断する。この例では、まだ2番目のデータパケットD2であるので、ステップS6に進み次のパケットの受信を待機する。
ここで、図3に示すように、送信機器S1は次のデータパケットD3を送信することなく時間が経過する。遅延ACKタイマ42のタイムアウト時間tが経過すると、タイマ部24は判断部23にタイムアウトを通知する。この時、判断部23のタイマ要因判断部36は、タイムアウト通知の要因が遅延ACKタイマ42のタイムアウトであることを認識する。判断部23は、図4(b)のステップS11に示すようにタイムアウトを監視しており、タイムアウトが発生すると、ステップS12に進む。ステップS12で、判断部23は待ち数を1/2に減少させる。具体的には、判断部23が計算部25に待ち数減少指示を出すことにより、データ長保持領域33の保持する待ち数Wが8から4になる。その後、ステップS13で、判断部23の指示により確認応答を送信する。即ち、図3に示すように、D1及びD2の受信を示す確認応答A1,2を送信する。またこのとき、判断部23は、受信数カウンタ32の計数値を初期値にリセットする。これにより、次のデータパケットD3の受信時には、データパケットD1の受信時と同様の処理が実行される。
以上の動作により、確認応答A1,2の送信と共に、待ち数Wが初期値8から4に減少される。以降同様にして、確認応答A3,4の送信と共に待ち数Wが4から2に減少され、更に確認応答A5,6の送信と共に待ち数Wが2から1に減少される。なお待ち数保持領域31が保持する待ち数Wの下限が1となるように判断部23は構成されており、待ち数Wが1以下に減少することはない。
なおステップS5で、受信数が待ち数に達したと判断された場合には、ステップS7に進み、待ち数分のデータパケットを受信した旨を示す確認応答を送信する。これは、遅延ACKタイマ42がタイムアウトすることなく、待ち数Wに等しい数のデータパケットを受信し、待ち数を減少させることのなかった場合に相当する。なお判断部23は、上記の確認応答送信を指示すると共に、受信数カウンタ32の計数値を初期値にリセットし、更にタイマ部24を制御して遅延ACKタイマ42をリセットする。
図5は、待ち数を増加させる手順の第1の実施例を示す図である。送信機器S1から受信機器R1にデータパケットD1乃至D6を送信する際に、待ち数Wを増加させる手順が示されている。初期状態において待ち数Wは2に設定されている。この待ち数Wが、データパケットの受信状況に応じて、2から4に増加されている。なお待ち数Wの上限は例えば8としてよい。
図6は、図5に示す待ち数を増加させる手順を示すフローチャートである。図5及び図6を用いて、待ち数を増加させる手順について説明する。なお図4に示すフローチャートの処理も並行して実行されていると考えてよい。即ち、データパケット受信の状況に応じて、適宜待ち数を減少させたり増加させたりする構成であってよい。
図5に示すように、まず送信機器S1から受信機器R1にデータパケットD1を送信する。受信機器R1がデータパケットD1を受信すると、図6(a)において、ステップS1のパケット受信が発生し、ステップS2に進む。なおこの時、図2のTCP受信部22から判断部23に受信通知が供給されとともに、タイマ部24にタイマ起動通知が供給される。ステップS2では、このタイマ起動通知に応答して、受信間隔監視タイマ41が起動される。ステップS3で、判断部23は次のパケットを待機する状態となる。
次に、図5に示すように、送信機器S1から受信機器R1にデータパケットD2を送信する。受信機器R1がデータパケットD2を受信すると、上記のデータパケットD1受信の場合と同様の処理が実行される。但し、まずデータパケットD2の受信に応答して、図6(b)のステップS11のパケット受信の有無の判断からステップS14に進み、受信間隔監視タイマ41が停止する(リセットされる)。その後、図6(a)のステップS2で、タイマ起動通知に応答して、受信間隔監視タイマ41が再起動される。即ち、TCP受信部22からの各タイマ起動通知に応答して、受信間隔監視タイマ41が毎回リセットされ0からの計時動作を毎回開始するように構成される。なお送信機器S1から受信機器R1への一連のデータ送信の最後には、データ送信の終了を示すデータFINが付加されている。このようなデータFINが付加されている場合には、受信間隔監視タイマ41を起動させることはない。
なお図5において、待ち数Wは初期状態で2に設定されている。従って、受信機器R1がデータパケットD2を受信すると、データパケットD1及びD2の受信を示す確認応答A1,2が、受信機器R1から送信機器S1に送信される。
データパケットD2を送信後、図5に示すように、送信機器S1は次のデータパケットD3を送信することなく時間が経過する。受信間隔監視タイマ41のタイムアウト時間(=2tm)が経過すると、タイマ部24は判断部23にタイムアウトを通知する。この時、判断部23のタイマ要因判断部36は、タイムアウト通知の要因が受信間隔監視タイマ41のタイムアウトであることを認識する。判断部23は、図6(b)のステップS12に示すようにタイムアウトを監視しており、受信間隔監視タイマ41のタイムアウトが発生すると、ステップS13に進む。ステップS13で、判断部23は待ち数を2倍に増加させる。具体的には、判断部23が計算部25に待ち数増加指示を出すことにより、データ長保持領域33の保持する待ち数Wが2から4になる。待ち数Wが4となったので、その後受信機器R1は、図5に示すように4つのデータパケットD3乃至D6を受信してから、データパケットD3乃至D6の受信を示す確認応答A3,4,5,6を送信機器S1に送信する。
このようにして、あるデータパケット受信から一定時間内に次のデータパケットを受信しない場合には、待ち数を増加するように判断部23が動作する。図5及び図6に示す例では、受信間隔監視タイマ41のタイムアウト時間は、再送タイマ43の再送タイムアウト時間の2倍に設定されている。これは一例であり、受信間隔監視タイマ41のタイムアウト時間は適宜他の時間長に設定されてよい。
図7は、待ち数を増加させる手順の第2の実施例を示す図である。送信機器S1から受信機器R1にデータパケットD1乃至D10を送信する際に、待ち数Wを増加させる手順が示されている。初期状態において待ち数Wは2に設定されている。この待ち数Wが、データパケットの受信状況に応じて、2から4に増加されている。
図8は、図7に示す待ち数を増加させる手順を示すフローチャートである。図7及び図8を用いて、待ち数を増加させる手順について説明する。なお図4に示すフローチャートの処理も並行して実行されていると考えてよい。即ち、データパケット受信の状況に応じて、適宜待ち数を減少させたり増加させたりする構成であってよい。
図7に示すように、まず送信機器S1から受信機器R1にデータパケットD1を送信する。受信機器R1がデータパケットD1を受信すると、図8において、ステップS1のパケット受信が発生し、ステップS2に進む。なおこの時、図2のTCP受信部22から判断部23に受信通知が供給される。ステップS2で、受信数を1増加させる。即ち、受信数カウンタ32の計数値(受信数)を1だけカウントアップする。ステップS3で、受信数が待ち数(W=2)に達したか否かを判断する。即ち、受信数カウンタ32の計数値が待ち数保持領域31の待ち数に達したか否かを、判断部23により判断する。この例では、まだ最初のデータパケットD1であるので、ステップS4に進み次のパケットの受信を待機する。
次に、図7に示すように、送信機器S1から受信機器R1にデータパケットD2を送信する。受信機器R1がデータパケットD2を受信すると、図8において、ステップS1のパケット受信が発生し、ステップS2に進む。なおこの時、図2のTCP受信部22から判断部23に受信通知が供給される。ステップS2で、受信数を1増加させる。即ち、受信数カウンタ32の計数値(受信数)を1だけカウントアップする。ステップS3で、受信数が待ち数(W=2)に達したか否かを判断する。即ち、受信数カウンタ32の計数値が待ち数保持領域31の待ち数に達したか否かを、判断部23により判断する。この例では、2番目のデータパケットD2を受信したので、受信数が待ち数(W=2)に到達したと判断され、ステップS5に進む。ステップS5で、待機成功数を1増加させる。即ち、成功数カウンタ34の計数値(受信数)を1だけカウントアップする。なお成功数カウンタ34の計数値は初期状態でゼロに設定されている。ゼロから1に増加された待機成功数がC=1として図7に示されている。
次にステップS6で、待機成功数が連続3回以上であるか否かを判断する。即ち、判断部23が、成功数カウンタ34の計数値(受信数)が3に到達したか否かを判断する。なお並行して実行されている図4のフローチャートの手順において、判断部23は、図4(b)のステップS11に示すようにタイムアウトを監視している。タイムアウトが発生すると、その時点までの受信データパケットを示す確認応答を送信するとともに、受信数カウンタ32の計数値を初期値にリセットし、更に成功数カウンタ34を初期値にリセットする。従って、成功数カウンタ34の計数値(受信数)が3に到達する場合というのは、タイムアウトが発生することなく受信数カウンタ32の示す計数値が待ち数に到達するという受信成功事象が連続して3回生起したことを意味する。即ち、所定時間内に受信数カウンタ32の示す計数値が待ち数に到達しないという失敗事象が起こることなく、上記受信成功事象が連続して3回生起したことを意味する。このデータパケットD2を受信した時点では、ステップS6での判断において、待機成功数は3に到達していない。従ってステップS8に進み、判断部23の指示により確認応答を送信する。即ち、図7に示すように、D1及びD2の受信を示す確認応答A1,2を送信する。
次に、図7に示すように、送信機器S1から受信機器R1にデータパケットD3を送信し、更にその後データパケットD4を送信する。これにより、上記説明したデータパケットD1の送信及びデータパケットD2の送信の場合と同様の処理が、受信機器R1において実行される。但しこのとき、成功数カウンタ34の待機成功数Cは初期値に戻されることなく、増加した値をそのまま維持している。従って、データパケットD4の受信に応答して、図8のステップS5で待機成功数が1増加されて、C=2となる。
次に、図7に示すように、送信機器S1から受信機器R1にデータパケットD5を送信し、更にその後データパケットD6を送信する。これにより、上記説明したデータパケットD1の送信及びデータパケットD2の送信の場合と同様の処理が、受信機器R1において実行される。但しこのとき、成功数カウンタ34の待機成功数Cは初期値に戻されることなく、増加した値をそのまま維持している。従って、データパケットD6の受信に応答して、図8のステップS5で待機成功数が1増加されて、C=3となる。次にステップS6で、待機成功数が連続3回以上であるか否かを判断する。即ち、判断部23が、成功数カウンタ34の計数値(受信数)が3に到達したか否かを判断する。この時点で待機成功数Cは3に到達しているので、ステップS7に進み、判断部23は待ち数を2倍に増加させる。具体的には、判断部23が計算部25に待ち数増加指示を出すことにより、データ長保持領域33の保持する待ち数Wが2から4になる。次のステップS8で、判断部23の指示により確認応答を送信する。即ち、図7に示すように、D5及びD6の受信を示す確認応答A5,6を送信する。
上記の処理により待ち数Wが4となったので、その後受信機器R1は、図7に示すように4つのデータパケットD7乃至D10を受信してから、データパケットD7乃至D10の受信を示す確認応答A7,8,9,10を送信機器S1に送信する。このようにして、タイムアウトが発生することなく受信数カウンタ32の示す計数値が待ち数に到達するという受信成功事象が連続して所定回数生起した場合には、待ち数を増加するように判断部23が動作する。図7及び図8に示す例では、受信成功事象が3回連続して生起した場合に待ち数を増加させているが、この判断に用いる連続生起の回数は3回に限定されるものではなく、想定される通信状況や要求性能等に応じて適宜設定すればよい。
図9は、待ち数を増加させる手順の第3の実施例を示す図である。送信機器S1から受信機器R1にデータパケットD1乃至D4を送信する際に、待ち数Wを増加させる手順が示されている。初期状態において待ち数Wは2に設定されている。この待ち数Wが、データパケットの受信状況に応じて、2から4に増加されている。
図9に示すように、送信機器S1から受信機器R1にデータ長が1000バイトのデータパケットD1、D2、D3を送信し、その後、データ長が100バイトのデータパケットD4を送信している。即ち、データ長が長い(例えば1000バイト)データパケットの後にデータ長が短い(例えば100バイト)データパケットが送信されている。このような場合には、最後のデータパケットD4は、ひとまとまりのデータ(例えば3100バイトのデータ)の最後の余りの部分である可能性が高く、また同様の長さのデータ(3100バイトのデータ)が更に複数回連続して送られてくる可能性が高い。第3の実施例では、データ長が長いデータパケットの後にデータ長が短いデータパケットが送信された場合に、待ち数Wを長くして、連続したデータパケット転送に備える構成となっている。
図10は、図9に示す待ち数を増加させる手順を示すフローチャートである。図9及び図10を用いて、待ち数を増加させる手順について説明する。なお図4に示すフローチャートの処理も並行して実行されていると考えてよい。即ち、データパケット受信の状況に応じて、適宜待ち数を減少させたり増加させたりする構成であってよい。
図9に示すように、まず送信機器S1から受信機器R1にデータパケットD1を送信する。受信機器R1がデータパケットD1を受信すると、図10において、ステップS1のパケット受信が発生し、ステップS2に進む。なおこの時、図2のTCP受信部22から判断部23に受信通知が供給される。ステップS2で、今回受信したデータパケットのデータ長が前回受信したデータパケットのデータ長よりも短いか否かを判断する。具体的には、判断部23がデータ長判断部35を用いて、データ長保持領域33に保持される前回のデータパケットのデータ長と今回受信したデータパケットのデータ長とを比較する。データパケットD1の受信時には、データ長保持領域33には初期値(例えばゼロ)が設定されており、ステップS2の判断結果はNoとなる。判断結果はNoに応じてステップS3に進み、今回受信したデータパケットのデータ長がデータ長保持領域33に保存される。その後ステップS4に進み次のパケットの受信を待機する。
次に図9に示すように、送信機器S1から受信機器R1にデータパケットD2を送信する。受信機器R1がデータパケットD2を受信すると、データパケットD1の受信時と同様の処理が実行される。この場合、データ長保持領域33にはデータパケットD1のデータ長1000が保持されており、今回のデータパケットD2のデータ長1000と前回のデータパケットD1のデータ長1000は等しいので、ステップS2の判断結果はNoとなる。判断結果Noに応じてステップS3に進み、今回受信したデータパケットのデータ長がデータ長保持領域33に保存される。その後ステップS4に進み次のパケットの受信を待機する。
次に図9に示すように、送信機器S1から受信機器R1にデータパケットD3を送信する。受信機器R1がデータパケットD3を受信すると、データパケットD2の受信時と同様の処理が実行される。
次に図9に示すように、送信機器S1から受信機器R1にデータパケットD4を送信する。受信機器R1がデータパケットD4を受信すると、図10において、ステップS1のパケット受信が発生し、ステップS2に進む。ステップS2で、今回受信したデータパケットのデータ長が前回受信したデータパケットのデータ長よりも短いか否かを判断する。この場合、データ長保持領域33にはデータパケットD3のデータ長1000が保持されており、今回のデータパケットD4のデータ長100は前回のデータパケットD1のデータ長よりも短いので、ステップS2の判断結果はYesとなる。判断結果Yesに応じてステップS5に進み、判断部23は待ち数を2倍に増加させる。具体的には、判断部23が計算部25に待ち数増加指示を出すことにより、データ長保持領域33の保持する待ち数Wが2から4になる。その後、ステップS3で、今回受信したデータパケットのデータ長がデータ長保持領域33に保存される。その後ステップS4に進み次のパケットの受信を待機する。
このようにして、ある受信したデータパケットのデータ長と比較して、次に受信したデータパケットのデータ長が短い場合、待ち数を増加させるように判断部23が動作する。なお今回受信したデータパケットのデータ長が前回受信したデータパケットのデータ長よりも短いか否かを判断する際には、1バイトでも短い場合に短いと判断するのではなく、所定のバイト数以上短い又は所定の比率よりも短い場合に短いと判断してよい。例えば、今回受信したデータパケットのデータ長が、前回より500バイト以上短い場合であるとか、前回の1/2以下の長さであるといった場合に、短いと判断するようにしてよい。
なおデータパケット受信の状況に応じて待ち数を増加させる手順の第1乃至第3の実施例は、適宜組み合わせて使用してよい。即ち例えば、図6、図8、図10に示す3つのフローチャートの処理を並行して実行し、何れかの待ち数増加条件が満たされると随時待ち数を増加させるような構成としてよい。
図11は、上記実施例で説明した待ち数制御処理(待ち数の増減処理)に用いるデータ構造の一例を示す図である。上記実施例において特に明示的には説明しなかったが、待ち数制御処理は、通信先相手の区別無く全ての受信するデータパケットに対して適用される分けではない。当然ながら、受信機器R1がある送信機器S1と通信しているときには、その送信機器S1から受信するデータパケットの状況に応じてその送信機器S1との通信に関する待ち数制御をするのであり、他の送信機器から受信するデータパケットは関係がない。また更に言えば、受信機器R1が送信機器S1のあるアプリケーションプログラムと通信しているときには、そのプログラムから受信するデータパケットの状況に応じてそのプログラムとの通信に関する待ち数制御をする。この場合に、送信機器S1の他のプログラムから受信するデータパケットは、前者のプログラムとの通信に関する待ち数制御とは関係がない。即ち、受信側からすれば、通信相手(送信機器のアプリケーションプログラム)毎に待ち数制御を実現する必要がある。この目的のために、図11に示すデータ構造70が用いられる。
データ構造70は、宛先MACアドレス71、自MACアドレス72、宛先IPアドレス73、自IPアドレス74、宛先ポート番号75、自ポート番号76、及びデータ及びタイマ部77を含む。データ及びタイマ部77は、データ長81、待ち数82、成功数83、受信数84、受信間隔監視タイマ85、遅延ACKタイマ86、及び再送タイマ87を含む。データ長81は、データ長保持領域33に保持する受信データパケットのデータ長である。待ち数82は、待ち数保持領域31に保持する待ち数である。成功数83は、成功数カウンタ34の計数する受信成功事象の回数である。受信数84は、受信数カウンタ32の計数する受信データパケット数である。受信間隔監視タイマ85は、受信間隔監視タイマ41の計時データ及びタイムアウト値に相当する。遅延ACKタイマ86は、遅延ACKタイマ42の計時データ及びタイムアウト値に相当する。また再送タイマ87は、再送タイマ43の計時データ及びタイムアウト値に相当する。このようなデータ構造70により、データ及びタイマ部77を、宛先MACアドレス71、自MACアドレス72、宛先IPアドレス73、自IPアドレス74、宛先ポート番号75、及び自ポート番号76の組み合わせ毎に管理する。これにより、特定の通信相手毎に待ち数制御を実現することができる。なおポート番号は、各プログラムに割り当てられる番号であり、データ通信においてサービスを提供する側のプログラムは、サービスを特定するために各プログラム固有のポート番号となる。またサービスを受ける側(クライアント側)においては、ポート番号は、利用可能な番号を適当に割り当てればよい。
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
なお本発明は、以下の内容を含むものである。
(付記1)
待ち数を保持する待ち数保持手段と、
受信したデータパケット数を計数する受信数計数手段と、
前記受信数計数手段の計数値が初期値である状態でのデータパケット受信から所定時間内に前記受信数計数手段の示す計数値が前記待ち数保持手段の保持する前記待ち数に到達すると、前記受信数計数手段の計数値を前記初期値にリセットするとともに、前記待ち数分のデータパケット受信を示す確認応答の送信を指示する判断手段と
を含み、前記判断手段は、前記待ち数保持手段が保持する前記待ち数をデータパケット受信状況に応じて動的に増減させることを特徴とする通信装置。
(付記2)
前記受信数計数手段の計数値が前記初期値である状態でのデータパケット受信から前記所定時間内に前記受信数計数手段の示す計数値が前記待ち数保持手段の保持する前記待ち数に到達しない場合、前記判断手段は、受信した分のデータパケット受信を示す確認応答の送信を指示するとともに、前記待ち数保持手段が保持する前記待ち数を減少させることを特徴とする付記1記載の通信装置。
(付記3)
あるデータパケット受信から一定時間内に次のデータパケットを受信しない場合、前記判断手段は、前記待ち数保持手段が保持する前記待ち数を増加させることを特徴とする付記1又は2に記載の通信装置。
(付記4)
前記一定時間は、データ再送までの待ち時間である再送タイムアウト時間の2倍であることを特徴とする付記3記載の通信装置。
(付記5)
前記所定時間内に前記受信数計数手段の示す計数値が前記待ち数保持手段の保持する前記待ち数に到達するという事象を第1の事象とし、前記所定時間内に前記受信数計数手段の示す計数値が前記待ち数保持手段の保持する前記待ち数に到達しないという事象を第2の事象とし、前記判断手段は、前記第2の事象が起こることなく前記第1の事象が連続して所定回数生起した場合に、前記待ち数保持手段が保持する前記待ち数を増加させることを特徴とする付記1乃至4何れか一項記載の通信装置。
(付記6)
前記判断手段は、ある受信したデータパケットのデータ長と比較して、次に受信したデータパケットのデータ長が短い場合、前記待ち数保持手段が保持する前記待ち数を増加させることを特徴とする付記1乃至5何れか一項記載の通信装置。
(付記7)
前記待ち数保持手段が保持する前記待ち数の下限は1であることを特徴とする付記1乃至6何れか一項記載の通信装置。
(付記8)
前記待ち数保持手段が保持する前記待ち数の増減は、待ち数を2倍にする演算又は1/2にする演算により実行されることを特徴とする付記1乃至7何れか一項記載の通信装置。
(付記9)
受信したデータパケット数を計数し、
前記計数値が初期値である状態でのデータパケット受信から所定時間内に前記計数値が所定の待ち数に到達すると、前記計数値を前記初期値にリセットするとともに、前記待ち数分のデータパケット受信を示す確認応答を送信し、
前記待ち数をデータパケット受信状況に応じて動的に増減させる
各段階を含むことを特徴とする通信方法。
通信装置の全体構成の一例を示す図である。 TCP部の構成の一例を示す図である。 待ち数を減少させる手順の実施形態の一例を示す図である。 図3に示す待ち数を減少させる手順を示すフローチャートである。 待ち数を増加させる手順の第1の実施例を示す図である。 図5に示す待ち数を増加させる手順を示すフローチャートである。 待ち数を増加させる手順の第2の実施例を示す図である。 図7に示す待ち数を増加させる手順を示すフローチャートである。 待ち数を増加させる手順の第3の実施例を示す図である。 図9に示す待ち数を増加させる手順を示すフローチャートである。 待ち数制御処理に用いるデータ構造の一例を示す図である。
符号の説明
10 通信装置
11 物理部
12 MAC部
13 IP部
14 TCP部
21 TCP送信部
22 TCP受信部
23 判断部
24 タイマ部
25 計算部

Claims (5)

  1. 待ち数を保持する待ち数保持手段と、
    受信したデータパケット数を計数する受信数計数手段と、
    前記受信数計数手段の計数値が初期値である状態でのデータパケット受信から所定時間内に前記受信数計数手段の示す計数値が前記待ち数保持手段の保持する前記待ち数に到達すると、前記受信数計数手段の計数値を前記初期値にリセットするとともに、前記待ち数分のデータパケット受信を示す確認応答の送信を指示する判断手段と
    を含み、前記判断手段は、前記待ち数保持手段が保持する前記待ち数をデータパケット受信状況に応じて動的に増減させることを特徴とする通信装置。
  2. 前記受信数計数手段の計数値が前記初期値である状態でのデータパケット受信から前記所定時間内に前記受信数計数手段の示す計数値が前記待ち数保持手段の保持する前記待ち数に到達しない場合、前記判断手段は、受信した分のデータパケット受信を示す確認応答の送信を指示するとともに、前記待ち数保持手段が保持する前記待ち数を減少させることを特徴とする請求項1記載の通信装置。
  3. あるデータパケット受信から一定時間内に次のデータパケットを受信しない場合、前記判断手段は、前記待ち数保持手段が保持する前記待ち数を増加させることを特徴とする請求項1又は2に記載の通信装置。
  4. 前記所定時間内に前記受信数計数手段の示す計数値が前記待ち数保持手段の保持する前記待ち数に到達するという事象を第1の事象とし、前記所定時間内に前記受信数計数手段の示す計数値が前記待ち数保持手段の保持する前記待ち数に到達しないという事象を第2の事象とし、前記判断手段は、前記第2の事象が起こることなく前記第1の事象が連続して所定回数生起した場合に、前記待ち数保持手段が保持する前記待ち数を増加させることを特徴とする請求項1乃至3何れか一項記載の通信装置。
  5. 前記判断手段は、ある受信したデータパケットのデータ長と比較して、次に受信したデータパケットのデータ長が短い場合、前記待ち数保持手段が保持する前記待ち数を増加させることを特徴とする請求項1乃至4何れか一項記載の通信装置。
JP2008318024A 2008-12-15 2008-12-15 通信装置 Pending JP2010141769A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008318024A JP2010141769A (ja) 2008-12-15 2008-12-15 通信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008318024A JP2010141769A (ja) 2008-12-15 2008-12-15 通信装置

Publications (1)

Publication Number Publication Date
JP2010141769A true JP2010141769A (ja) 2010-06-24

Family

ID=42351465

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008318024A Pending JP2010141769A (ja) 2008-12-15 2008-12-15 通信装置

Country Status (1)

Country Link
JP (1) JP2010141769A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011052201A1 (ja) * 2009-11-02 2011-05-05 パナソニック株式会社 通信端末および通信方法
CN113259432A (zh) * 2021-05-12 2021-08-13 北京杰迈科技股份有限公司 一种基于tcp协议的通信方法及机器人远程控制系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0522369A (ja) * 1991-07-10 1993-01-29 Hitachi Cable Ltd 情報ネツトワークの輻湊予防方法
WO2006107046A1 (ja) * 2005-04-04 2006-10-12 Matsushita Electric Industrial Co., Ltd. 通信制御装置、通信端末

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0522369A (ja) * 1991-07-10 1993-01-29 Hitachi Cable Ltd 情報ネツトワークの輻湊予防方法
WO2006107046A1 (ja) * 2005-04-04 2006-10-12 Matsushita Electric Industrial Co., Ltd. 通信制御装置、通信端末

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011052201A1 (ja) * 2009-11-02 2011-05-05 パナソニック株式会社 通信端末および通信方法
US8588068B2 (en) 2009-11-02 2013-11-19 Panasonic Corporation Communication terminal and communication method
JP5573844B2 (ja) * 2009-11-02 2014-08-20 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 通信端末および通信方法
CN113259432A (zh) * 2021-05-12 2021-08-13 北京杰迈科技股份有限公司 一种基于tcp协议的通信方法及机器人远程控制系统
CN113259432B (zh) * 2021-05-12 2022-07-08 北京杰迈科技股份有限公司 一种基于tcp协议的通信方法及机器人远程控制系统

Similar Documents

Publication Publication Date Title
JP4658142B2 (ja) 通信装置およびフレーム制御方法
JP5816718B2 (ja) 通信装置、通信システム、およびデータ通信の中継方法
JP5020076B2 (ja) 低頻度ackのシステムに適した高性能tcp
JP4654926B2 (ja) 通信システム、通信装置及びそれらに用いる輻輳制御方法並びにそのプログラム
US20120201136A1 (en) Mechanisms to improve the transmission control protocol performance in wireless networks
JP5867188B2 (ja) 情報処理装置、輻輳制御方法および輻輳制御プログラム
JPWO2008023656A1 (ja) 通信装置
WO2013177841A1 (zh) Ac与ap之间链路保活的检测方法及装置
US11671377B2 (en) System and method for reducing bandwidth usage of a network
KR100804082B1 (ko) 통신 구축동안 중복 협상들을 회피하기 위한 방법 및 장치
WO2013011545A1 (ja) 送信装置、受信装置、通信装置、通信システムおよび送信方法
JP7067544B2 (ja) 通信システム、通信装置、方法およびプログラム
EP3417585B1 (en) Terminal and communication method thereof
JP2010141769A (ja) 通信装置
US10425371B2 (en) Method for fragmented messaging between network devices
Cisco LLC2 and SDLC Commands
Cisco LLC2 and SDLC Commands
Cisco LLC2 and SDLC Commands
Cisco LLC2 and SDLC Commands
EP3613164B1 (en) Device and method for monitoring a tcp connection
JP2007174180A (ja) ゲートウェイ装置およびデータ送受信制御方法
US8908534B2 (en) Method for performing lifebeat monitoring
Liqing et al. TCP optimization implementation of a small embedded system
JP2002281106A (ja) データ通信方法及びそのシステム
JP5338242B2 (ja) 通信装置及び信号送信方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120511

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120515

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120918