JP4513036B2 - 送信装置および方法、並びにプログラム - Google Patents

送信装置および方法、並びにプログラム Download PDF

Info

Publication number
JP4513036B2
JP4513036B2 JP2008098267A JP2008098267A JP4513036B2 JP 4513036 B2 JP4513036 B2 JP 4513036B2 JP 2008098267 A JP2008098267 A JP 2008098267A JP 2008098267 A JP2008098267 A JP 2008098267A JP 4513036 B2 JP4513036 B2 JP 4513036B2
Authority
JP
Japan
Prior art keywords
ack
ack packet
packet
latest
tcp
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.)
Expired - Fee Related
Application number
JP2008098267A
Other languages
English (en)
Other versions
JP2009253605A (ja
Inventor
忍 大仲
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2008098267A priority Critical patent/JP4513036B2/ja
Priority to US12/391,532 priority patent/US8532111B2/en
Priority to CNA2009101333773A priority patent/CN101552657A/zh
Publication of JP2009253605A publication Critical patent/JP2009253605A/ja
Application granted granted Critical
Publication of JP4513036B2 publication Critical patent/JP4513036B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

本発明は、送信装置および方法、並びにプログラムに関し、特に、TCP/IP通信速度を向上させることができるようにした送信装置および方法、並びにプログラムに関する。
インターネットに代表されるネットワークで使われる標準的な通信プロトコルとして、TCP/IP(Transmission Control Protocol/Internet Protocol)が広く用いられている。
通常のTCP/IP通信において、データの送信側は、データ受信側のTCP/IPプロトコルスタックからのデータ受信確認応答として、ACKパケットを受信する。ACKパケット内の応答確認番号(ACK番号)は、シーケンス番号と受信したデータサイズからなり、データ送信側においては、ACKパケットの応答がない場合には、応答がなかったデータの再送が行われる。
本出願人は、パケットの再送に関することを先に提案している(例えば、特許文献1参照)。
先の提案においては、データを再生する時刻までに、相手が再送パケットを受信できる場合、要求された再送パケットの再送が制御される。
特開2005−136547号公報
しかしながら、特許文献1を含む従来技術においては、送信側のホストの処理能力に余裕がない場合や、データ受信側のTCP/IPプロトコルスタックが非常に多くのACKパケットを送信する実装であった場合、データ送信側のホストでのACKパケット受信処理がTCP/IP通信速度を低下させる要因となる恐れがある。
本発明はこのような状況に鑑みてなされたものであり、TCP/IP通信時に行われる処理を軽減し、TCP/IP通信速度を向上させることができるようにするものである。
本発明の一側面の送信装置は、送信データに応じて受信側から送信されてくるACKパケットを受信する受信手段と、受信した前記ACKパケットのうち、最後に受信した最新のACKパケットを保持するACK保持手段と、前記ACK保持手段から所定のタイミングで渡される前記最新のACKパケットに応じて、ACKパケットの受信処理を行うTCP/IP処理手段とを備え、前記ACK保持手段は、受信した前記ACKパケットが、TCP/IP通信を行っている相手からのACKパケットであって、ACKパケットを保持していない場合、受信した前記ACKパケットを、前記最新のACKパケットとして保持し、受信した前記ACKパケットが、TCP/IP通信を行っている相手からのACKパケットであって、既に保持している前記最新のACKパケットに連続するACKパケットである場合、前記最新のACKパケットを保持している時間があらかじめ定められた所定の時間を経過しておらず、かつ、保持しているACKパケットの保持数があらかじめ定められた最大値に達していないとき、受信した前記ACKパケットを、前記最新のACKパケットとして保持し、保持している前記最新のACKパケットに連続しないACKパケットを受信した場合、前記最新のACKパケットを保持している時間が所定の時間を経過した場合、または、ACKパケットの保持数が最大値に達した場合には、保持している前記最新のACKパケットを、前記TCP/IP処理手段に渡す
本発明の一側面の送信方法は、送信データに応じて受信側から送信されてくるACKパケットのうち、最後に受信した最新のACKパケットを保持するACK保持ステップと、所定のタイミングで渡される前記最新のACKパケットに応じて、ACKパケットの受信処理を行うTCP/IP処理ステップとを含み、前記ACK保持ステップの処理によって、受信した前記ACKパケットが、TCP/IP通信を行っている相手からのACKパケットであって、ACKパケットを保持していない場合、受信した前記ACKパケットを、前記最新のACKパケットとして保持し、受信した前記ACKパケットが、TCP/IP通信を行っている相手からのACKパケットであって、既に保持している前記最新のACKパケットに連続するACKパケットである場合、前記最新のACKパケットを保持している時間があらかじめ定められた所定の時間を経過しておらず、かつ、保持しているACKパケットの保持数があらかじめ定められた最大値に達していないとき、受信した前記ACKパケットを、前記最新のACKパケットとして保持し、保持している前記最新のACKパケットに連続しないACKパケットを受信した場合、前記最新のACKパケットを保持している時間が所定の時間を経過した場合、または、ACKパケットの保持数が最大値に達した場合には、保持している前記最新のACKパケットを、前記TCP/IP処理ステップの処理に渡す
本発明の一側面のプログラムは、上述した本発明の一側面の送信方法に対応するプログラムである。
本発明の一側面の送信装置および方法、並びにプログラムにおいては、送信データに応じて受信側から送信されてくるACKパケットのうち、最後に受信した最新のACKパケットが保持され、所定のタイミングで渡される最新のACKパケットに応じて、ACKパケットの受信処理が行われ、受信した前記ACKパケットが、TCP/IP通信を行っている相手からのACKパケットであって、ACKパケットを保持していない場合、受信した前記ACKパケットが、前記最新のACKパケットとして保持され、受信した前記ACKパケットが、TCP/IP通信を行っている相手からのACKパケットであって、既に保持している前記最新のACKパケットに連続するACKパケットである場合、前記最新のACKパケットを保持している時間があらかじめ定められた所定の時間を経過しておらず、かつ、保持しているACKパケットの保持数があらかじめ定められた最大値に達していないとき、受信した前記ACKパケットが、前記最新のACKパケットとして保持され、保持している前記最新のACKパケットに連続しないACKパケットを受信した場合、前記最新のACKパケットを保持している時間が所定の時間を経過した場合、または、ACKパケットの保持数が最大値に達した場合には、保持している前記最新のACKパケットが、前記TCP/IP処理手段に渡される
以上のように、本発明の一側面によれば、TCP/IP通信速度を向上させることができる。
以下、図面を参照しながら本発明の実施の形態について説明する。
図1は、本発明を適用した通信システムの一実施の形態の構成を示すブロック図である。この通信システムにおいては、ネットワーク13に、送信装置11および受信装置12が接続され、相互に通信可能な状態となっている。
なお、ネットワーク13は、有線または無線の、通信回線、ネットワーク、またはインターネットなどからなる伝送路であり、所定の遅延時間で、送信装置11から送信されるパケットを受信装置12まで伝送する。
送信装置11は、受信装置12からの要求に応じた送信データを格納したパケットを、ネットワーク13を介して受信装置12に送信する。また、送信装置11は、TCP/IP通信中に受信した、送信データの受信確認応答としてのACKパケットを一定時間保持して、その後のACK受信処理を行うか否かを判定する。そして、送信装置11は、かかる判定結果に応じてACK受信処理を行う。
具体的には、図1に示すように、送信装置11は、ネットワークアプリケーション21、TCP/IP処理部22、送受信部23、およびACK保持部24を含むようにして構成される。
ネットワークアプリケーション21は、受信装置12等のネットワーク13に接続された機器に送信するための送信データを生成し、TCP/IP処理部22に供給する。
TCP/IP処理部22は、ネットワークアプリケーション21から供給される送信データを分割してパケットに格納するなどのプロトコル処理を行う。TCP/IP処理部22は、送信データを格納したパケットを、送受信部23に供給する。
送受信部23は、TCP/IP処理部22から供給されるパケットを、ネットワーク13を介して受信装置12に送信する。
また、送受信部23は、受信装置12から送信されてくる、送信データの受信確認応答としてのACKパケットを適宜受信し、ACK保持部24に供給する。
ACK保持部24は、送受信部23から供給されるACKパケットを、所定の時間保持するか、あるいはTCP/IP処理部22に渡すかを判定する。ACK保持部24は、ACKパケットを所定の時間保持すると判定した場合には、そのACKパケットを保持し、一方、ACKパケットをTCP/IP処理部22に渡すと判定した場合には、そのACKパケットをTCP/IP処理部22に渡す。
かかる判定の条件は、例えば、ACKパケットの保持数の最大数を定める最大ACK保持数、ACKパケットを保持する時間を定めるACK保持タイマ(ACK保持時間)、および、ACKパケットを保持する機能の有効・無効を定めるACK保持機能を設定することで、決定される。すなわち、ACK保持数、ACK保持タイマ、および、ACK保持機能の3つのパラメータを設定することで、ACKパケットが、所定の時間保持されるか、あるいは、TCP/IP処理部22に渡されるかが判定される。
例えば、ACK保持部24は、ACKパケットを保持している間に、連続する次のパケットを受信した場合、次のACKパケットを、最新のACKパケットとして保持して、ACK保持数をカウントするとともに、ACK保持タイマをセットする。そして、ACK保持部24においては、例えば、保持しているACKパケットに連続しない次のACKパケットを受信した場合、最新のACKパケットのACK保持タイマによるカウントが一定の時間を経過した場合、または、ACK保持数が最大ACK保持数に達した場合には、保持している最新のACKパケットが、TCP/IP処理部22に渡される。
なお、ACK保持数と、ACK保持タイマのパラメータであるが、送信データを受信する相手側のACKパケットの送信頻度や送信間隔を考慮した値が、相手側へのデータ転送が止まらない範囲内で設定される。また、ACK保持数およびACK保持タイマには、パラメータとして、静的な値を設定しもよいし、その値を動的に変化させてもよい。
また、ACK保持機能は、そのパラメータとして、有効が設定されている場合だけ、ACK保持部24によってACK保持処理が行われる。
TCP/IP処理部22には、ACK保持部24によって、ACKパケットをTCP/IP処理部22に渡すと判定された場合に、ACKパケットが供給され、TCP/IP処理部22は、ACKパケットの受信処理を行う。すなわち、TCP/IP処理部22は、ACK保持部24から供給されるACKパケットに格納された情報から、送信が完了したデータの範囲を認識し、送信済みとなった送信データを破棄する(通常のTCP/IP送信処理)。
また、TCP/IP処理部22は、必要に応じて、全送信データのACKパケットの確認が終了した後、ネットワークアプリケーション21に対して送信完了通知を行う。これにより、ネットワークアプリケーション21は、送信データの送信が完了したことを認識する。
以上のようにして、送信装置11は構成される。
一方、受信装置12は、ネットワーク13を介して送信装置11から送信されてきたパケットを受信する。受信装置12は、受信したパケットから送信データを抽出し、抽出した送信データを出力する。
図1に示すように、受信装置12は、TCP/IP処理部31および送受信部32を含むようにして構成される。
送受信部32は、ネットワーク13を介して、送信装置11から送信されてくる、送信データを格納したパケットを受信し、TCP/IP処理部31に供給する。
TCP/IP処理部31は、送受信部32から供給されるパケットを受け取って、そのパケットから送信データを抽出する。また、TCP/IP処理部31は、送信データの受信確認応答としてのACKパケットを送受信部32に供給する。
送受信部32は、TCP/IP処理部31から供給されるACKパケットを、ネットワーク13を介して、送信装置11に送信する。
以上のようにして、受信装置12は構成される。
以上のように構成される通信システムにおいては、送信データを格納したパケットを送信した送信装置11によって、受信確認応答としてのACKパケットが受信され、受信されたACKパケットのうち、最後に受信したACKパケットが保持され、所定のタイミングとなったとき、保持されていたACKパケットを用いたACKパケットの受信処理が行われる。
次に、図2のフローチャートを参照して、かかる送信装置11で行われる送信処理について説明する。
なお、図2の説明においては、説明を簡略化するために、送信データを格納したパケットを送信する場合において、TCPコネクションが確立される前の処理についての説明は省略し、送信装置11と受信装置12と間でのTCPコネクションが確立された後の処理について説明する。
ステップS1において、ネットワークアプリケーション21は、受信装置12に送信するための送信データを生成し、TCP/IP処理部22に供給する。
ステップS2において、TCP/IP処理部22は、ネットワークアプリケーション21から供給される送信データに対して、プロトコル処理を行う。TCP/IP処理部22は、送信データにプロトコル処理を施すことで得られる、送信データを格納したパケットを、送受信部23に供給する。
ステップS3において、送受信部23は、TCP/IP処理部22から供給されるパケットを、ネットワーク13を介して受信装置12に送信する。
すると、送信データを受信した受信装置12から受信確認応答としてのACKパケットが送信されてくるので、ステップS4において、送受信部23は、ネットワーク13を介して受信装置12から送信されてくるACKパケットを受信し、ACK保持部24に供給する。また、送受信部23は、ネットワーク13を介してパケットを受信すると、パケットの内容に関わらず、ACK保持部24に供給する。従って、ACK保持部24には、ACKパケットの他に、ネットワーク13を介して受信した他のパケットも入力される。
ステップS5において、ACK保持部24は、送受信部23から供給される各種のパケットのうちのACKパケットを、所定の時間保持するか、あるいはTCP/IP処理部22に渡すかを選択するACK保持処理を行う。
ここで、図3のフローチャートを参照して、ステップS5の処理に対応する、図1のACK保持部24によって実行されるACK保持処理の詳細について説明する。
ステップS11において、ACK保持部24は、送受信部23から供給されるパケットを取得する。ACK保持部24は、ステップS12において、ACK保持機能が有効であるか否かを判定し、ACK保持機能が無効であると判定された場合、ステップS19において、受信したパケットを保持せずに、TCP/IP処理部22に渡し、処理はステップS11に戻る。すなわち、ACK保持機能が無効に設定されている場合、ACKパケットは保持されずに、そのまま、TCP/IP処理部22に渡される。
一方、ステップS12において、ACK保持機能が有効であると判定された場合、ステップS13において、ACK保持部24は、取得したパケットが、TCP/IP通信を行っている通信相手からのACKパケットであるか否かを判定する。
ステップS13において、TCP/IP通信を行っている通信相手、すなわち、受信装置12からのACKパケットではないと判定された場合、ステップS19において、ACK保持部24は、受信したパケットを保持せずに、TCP/IP処理部22に渡し、処理はステップS11に戻る。一方、ACK保持部24は、ステップS13において、TCP/IP通信を行っている通信相手、すなわち、受信装置12からのACKパケットであると判定された場合、ステップS14において、既にACKパケットを保持しているか否かを判定する。
ステップS14において、まだACKパケットを保持していないと判定された場合、ステップS20において、ACK保持部24は、TCPオプション、ACKフラグ以外のTCPコントロールフラグが付いているか否かを判定する。
ステップS20において、TCPオプション、ACKフラグ以外のTCPコントロールフラグが付いていないと判定された場合、ステップS21において、ACK保持部24は、取得した最新のACKパケットを保持するとともに、ACK保持タイマをセットする。すなわち、この場合、ACK保持部24においては、受信した最新のACKパケットがACK保持部24によって保持されるとともに、ACK保持タイマのカウントが開始される。その後、処理は、ステップS11に戻る。
一方、ステップS20において、TCPオプション、ACKフラグ以外のTCPコントロールフラグが付いていると判定された場合、ステップS19において、ACK保持部24は、受信したパケットを保持せずに、そのまま、TCP/IP処理部22に渡し、処理はステップS11に戻る。なお、TCPオプション、ACKフラグ以外のTCPコントロールフラグとしては、例えば、PSHフラグやURGフラグなどがあり、それらのフラグが立っているときには、特殊な処理が要求されている場合であるので、ACKパケットは、ACK保持部24によって保持されずに、直ちに、TCP/IP処理部22に渡されることになる。
そして、ステップS14において、既にACKパケットを保持していると判定された場合、ステップS15において、ACK保持部24は、取得した最新のACKパケットが、保持しているACKパケットに連続するACKパケットであるか否かを判定する。
ステップS15において、取得した最新のACKパケットが、保持しているACKパケットには連続しないACKパケットであると判定された場合、ステップS22において、ACK保持部24は、保持しているACKパケットと、取得した最新のACKパケットをTCP/IP処理部22に渡し、処理はステップS11に戻る。すなわち、この場合、パケットロスが発生しているため、保持しているACKパケットと、最新のACKパケットの両方が、TCP/IP処理部22に渡される。
ステップS15において、取得した最新のACKパケットが、保持しているACKパケットに連続するACKパケットであると判定された場合、ステップS16において、ACK保持部24は、取得したACKパケットに、TCPオプション、ACKフラグ以外のTCPコントロールフラグが付いているか否かを判定する。
ステップS16において、TCPオプション、ACKフラグ以外のTCPコントロールフラグが付いていると判定された場合、ステップS22において、ACK保持部24は、保持しているACKパケットと、最新のACKパケットをTCP/IP処理部22に渡し、処理はステップS11に戻る。一方、ステップS16において、TCPオプション、ACKフラグ以外のTCPコントロールフラグが付いていないと判定された場合、ステップS17において、ACK保持部24は、ACKパケットの最大保持数に達しているか否かを判定する。
ステップS17において、ACKパケットの最大保持数に達していないと判定された場合、ステップS18において、ACK保持部24は、取得したACKパケットを、最新のACKパケットとして保持するとともに、ACK保持タイマをリセットして、ACK保持数をカウントする。すなわち、この場合、ACK保持数が最大ACK保持数には達していないので、取得したACKパケットが保持される。また、取得したACKパケットが、最新のACKパケットとして保持されるので、ACK保持部24によって、ACK保持タイマが再度セットされ、ACK保持数がインクリメントされる。
一方、ステップS17において、ACKパケットの最大保持数に達したと判定された場合、ステップS23において、ACK保持部24は、最新のACKパケットを、TCP/IP処理部22に渡すとともに、ACK保持タイマをリセットする。すなわち、この場合、ACK保持数が最大ACK保持数に達したので、取得した最新のACKパケットが、TCP/IP処理部22に渡される。また、最新のACKパケットがTCP/IP処理部22に渡されたので、ACK保持タイマが再度セットされる。ステップS18またはステップS23の処理が終了すると、処理は、ステップS11に戻る。
そして、ステップS18、ステップS19、ステップS21ないしステップS23の処理のいずれかが終了すると、処理は、ステップS11に戻り、上述した処理が繰り返される。すなわち、ステップS11ないしステップS23の処理が繰り返されることで、送信データの受信確認応答としてのACKパケットは、ACK保持部24に保持されるか、あるいはTCP/IP処理部22に渡されることになる。
なお、図3には図示していないが、ACK保持部24においては、最後にACKパケットを保持してから、ACK保持タイマで設定されたACKパケットの結合待ち時間が経過した場合には、保持しているACKパケットが、TCP/IP処理部22に渡される。
このように、ACK保持部24においては、ACKパケットを保持している間に、連続する次のACKパケットを取得した場合には、最新のACKパケットが保持され、ACK保持数がカウントされる。そして、連続しないACKパケットを取得した場合や、ACK保持タイマによるカウントが一定の時間を経過した場合、あるいは、ACK保持数が最大ACK保持数に達した場合には、ACK保持部24に保持されていた最新のACKパケットが、TCP/IP処理部22に渡される。
図2のフローチャートに戻り、ステップS6において、TCP/IP処理部22は、ACK保持部24からACKパケットが渡される任意のタイミングで、そのACKパケットに格納された情報から送信が完了したデータの範囲を認識して、送信済みのデータの破棄を行い、送信処理は終了する。
これにより、送信装置11においては、TCP/IP処理部22によるTCP/IP送信処理を行いながら、ACK保持部24によって、データ受信側から受け取るACKパケットのTCP/IP処理部22への供給を制限することが可能となるので、TCP/IP処理部22において行われるACKパケットの受信処理の処理量を軽減させることができる。このことは、特に、組み込みCPU(Central Processing Unit)等の非力なCPUを用いる場合において、顕著な効果として現れる。
ところで、図1に示した構成においては、ACK保持部24によって、ACKパケットを渡すか否かの判定処理が行われるとして説明したが、ACK保持部24は、TCP/IP処理部22からの要求に応じて、かかる判定処理を行ってもよい。そこで、次に、最新のACKパケットを保持する手段を有する送信装置11において、任意のタイミングで保持している最新のACKパケットの受信処理を行う構成について説明する。
図4は、本発明を適用した通信システムの一実施の形態の他の構成を示すブロック図である。
なお、図4では、図1と同様の箇所には、同一の符号が付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。この例においては、図1と比較すると、TCP/IP処理部22およびACK保持部24の代わりに、TCP/IP処理部41およびACK保持部42がそれぞれ設けられている。
TCP/IP処理部41は、図1のTCP/IP処理部22と基本的に同様の機能を有しているが、任意のタイミングで、ACK保持部42に対してACK処理要求を通知する機能をさらに有している点が異なっている。
ここに、ACK処理要求とは、ACK保持部42に保持されている最新のACKパケットを取得する際に、TCP/IP処理部41からACK保持部42に通知される要求である。従って、TCP/IP処理部41は、ACK処理要求をACK保持部42に通知することで、ACK保持部42に保持されている最新のACKパケットを取得できる。
なお、このACK処理要求であるが、例えば、送信パフォーマンスを上げたい場合には、要求の頻度をまばらにする必要があり、また、通信のロバスト性を上げたい場合には、要求の頻度を密にする必要があるなど、それらはトレードオフの関係にある。また、送信側または受信側のハードウェアの性能や、ネットワークのスループットなどにも影響を受ける。従って、かかる要求頻度は、設計者により最適な値が適宜設定される。
ACK保持部42は、送受信部23から供給されるACKパケットを保持し、TCP/IP処理部41からのACK処理要求に応じて、保持している最新のACKパケットをTCP/IP処理部41に渡す。
なお、図4の送信装置11においては、ACK処理要求に応じてACKパケットがTCP/IP処理部41に渡されるため、最大ACK保持数およびACK保持タイマを設定する必要はないが、図1の送信装置11と同様に、それらのパラメータを設定する構成としても勿論よい。その場合、ACK保持部42においては、ACK処理要求が通知された場合と、保持しているACKパケットに連続しない次のACKパケットを受信した場合の他に、最新のACKパケットのACK保持タイマによるカウントが一定の時間を経過した場合、または、ACK保持数が最大ACK保持数に達した場合には、保持している最新のACKパケットがTCP/IP処理部41に渡される。
また、図4の通信システムにおいて、その他の構成は、図1に示した通信システムと同様である。
次に、図4の送信装置11で行われる送信処理について説明する。
かかる送信処理は、上述した、図2のフローチャートで説明した、図1の送信装置11による送信処理と比べると、ステップS5およびステップS6の処理が異なっている。従って、以下、図4のACK保持部42によって行われる、図2のステップS5に対応する処理と、図4のTCP/IP処理部41によって行われる、図2のステップS6に対応する処理について説明する。
すなわち、図2のステップS1乃至ステップS4の処理によって、図1の送信装置11と同様に、図4の送信装置11によって送信されたパケットが受信装置12に受信されると、受信確認応答としてのACKパケットが送信される。そして、ACKパケットは、送信装置11によって受信される。
すると、図2のステップS5に対応するACK保持処理として、図4のACK保持部42によって、図5のフローチャートに示す処理が実行される。すなわち、図5のフローチャートに示す処理は、図2のステップS5に対応する処理となる。
ステップS41ないしステップS44、ステップS48、およびステップS49においては、図3のステップS11ないしステップS14、ステップS19、およびステップS20と同様に、ACK保持部42によって、ACK保持機能が無効となっている場合、取得したパケットが通信相手からのACKパケットでない場合、および、通信相手からのACKパケットであって、TCPオプション、ACKフラグ以外のTCPコントロールフラグが付いている場合には、受信したACKパケットが、保持されずに、そのまま、TCP/IP処理部41に渡される。
一方、ステップS49において、まだACKパケットを保持していない場合であって、そのACKパケットに、TCPオプション、ACKフラグ以外のTCPコントロールフラグが付いていないと判定された場合、ステップS50において、ACK保持部42は、受信したACKパケットを最新のACKパケットとして保持する。なお、ステップS50においては、図3のステップS21とは異なり、ACK保持タイマをセットする必要はないので、かかる処理は行われない。
ステップS45、ステップS46、およびステップS51においては、図3のステップS15、ステップS16、およびステップS22と同様に、ACK保持部42によって、取得したACKパケットが保持しているACKパケットに連続するACKパケットではない場合、保持しているACKパケットと、最新のACKパケットがTCP/IP処理部41に渡され、保持しているACKパケットに連続するACKパケットである場合、TCPオプション、ACKフラグ以外のTCPコントロールフラグが付いているか否かが判定される。そして、TCPオプション、ACKフラグ以外のTCPコントロールフラグが付いていると判定された場合、ステップS51において、ACK保持部42は、保持しているACKパケットと、最新のACKパケットをTCP/IP処理部41に渡す。
一方、TCPオプション、ACKフラグ以外のTCPコントロールフラグが付いていないと判定された場合、ステップS47において、ACK保持部42は、受信したACKパケットを、最新のACKパケットとして保持する。なお、ステップS47においては、図3のステップS18の処理とは異なり、ACK保持タイマをセットしたり、ACK保持数をカウントする必要がないので、かかる処理は行われない。
このように、図4のACK保持部42においては、図1のACK保持部24と同様に、取得したACKパケットを保持する処理が行われるが、自ら保持しているACKパケットを渡す必要がないので、ACK保持タイマやACK保持数を制御する処理は行われないことになる。
図2のフローチャートに戻り、ステップS6において、図4のTCP/IP処理部41によって、ACKパケットの受信処理が行われるが、かかる処理としては、図6のフローチャートに示す処理が行われる。すなわち、図6のフローチャートに示す処理は、図2のステップS6に対応する処理となる。
ステップS61において、TCP/IP処理部41は、例えば、TCP/IP処理部41内で行われる一送信単位の処理が終了したときなどの任意のタイミングで、ACK処理要求をACK保持部42に通知する。すると、かかる要求に応じてACK保持部42からACKパケットが渡されるので、TCP/IP処理部41は、ACK保持部42に保持されていたACKパケットを取得する。
ステップS62において、TCP/IP処理部41は、ACK保持部42から渡されたACKパケットに格納された情報から送信が完了したデータの範囲を認識し、送信済みのデータを破棄するなどのACKパケットの受信処理を行う。その後、処理は、ステップS61に戻り、ステップS61およびステップS62の処理が繰り返される。
このように、ACKパケットの受信処理を行うTCP/IP処理部41からのACK処理要求に応じて、ACK保持部42がACKパケットをTCP/IP処理部41に渡すことで、ACKパケットの受信処理が行われる。
以上のように、本発明によれば、データ受信側から受け取るACKパケットのACKパケットの受信処理を行うブロックへの供給を制限することができるので、かかる処理の処理量を軽減させることが可能となり、結果として、TCP/IP通信速度を向上させることができる。このことは、特に、組み込みCPU等の非力なCPUを備えた機器において、より顕著な効果として現れる。
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等に、プログラム記録媒体からインストールされる。
図7は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータの構成の例を示すブロック図である。CPU111は、ROM(Read Only Memory)112、または記録部118に記録されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)113には、CPU111が実行するプログラムやデータ等が適宜記憶される。これらのCPU111、ROM112、およびRAM113は、バス114により相互に接続されている。
CPU111にはまた、バス114を介して入出力インターフェース115が接続されている。入出力インターフェース115には、マイクロホン等よりなる入力部116、ディスプレイ、スピーカ等よりなる出力部117が接続されている。CPU111は、入力部116から入力される指令に対応して各種の処理を実行する。そして、CPU111は、処理の結果を出力部117に出力する。
入出力インターフェース115に接続されている記録部118は、例えばハードディスクからなり、CPU111が実行するプログラムや各種のデータを記録する。通信部119は、インターネットやローカルエリアネットワーク等のネットワークを介して外部の装置と通信する。
また、通信部119を介してプログラムを取得し、記録部118に記録してもよい。
入出力インターフェース115に接続されているドライブ120は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等のリムーバブルメディア121が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータ等を取得する。取得されたプログラムやデータは、必要に応じて記録部118に転送され、記録される。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図7に示すように、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク、もしくは半導体メモリ等よりなるパッケージメディアであるリムーバブルメディア121、または、プログラムが一時的もしくは永続的に格納されるROM112や、記録部118を構成するハードディスク等により構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデム等のインターフェースである通信部119を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
なお、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
本発明を適用した通信システムの一実施の形態を示すブロック図である。 送信処理を説明するフローチャートである。 ACK保持処理を説明するフローチャートである。 本発明を適用した通信システムの一実施の形態を示すブロック図である。 ACK保持処理を説明するフローチャートである。 ACKパケットの受信処理を説明するフローチャートである。 コンピュータの構成例を示すブロック図である。
符号の説明
11 送信装置, 12 受信装置, 13 ネットワーク, 21 ネットワークアプリケーション, 22 TCP/IP処理部, 23 送受信部, 24 ACK保持部, 31 TCP/IP処理部, 32 送受信部, 41 TCP/IP処理部, 42 ACK保持部

Claims (3)

  1. 送信データに応じて受信側から送信されてくるACKパケットを受信する受信手段と、
    受信した前記ACKパケットのうち、最後に受信した最新のACKパケットを保持するACK保持手段と、
    前記ACK保持手段から所定のタイミングで渡される前記最新のACKパケットに応じて、ACKパケットの受信処理を行うTCP/IP処理手段と
    を備え
    前記ACK保持手段は、
    受信した前記ACKパケットが、TCP/IP通信を行っている相手からのACKパケットであって、ACKパケットを保持していない場合、受信した前記ACKパケットを、前記最新のACKパケットとして保持し、
    受信した前記ACKパケットが、TCP/IP通信を行っている相手からのACKパケットであって、既に保持している前記最新のACKパケットに連続するACKパケットである場合、前記最新のACKパケットを保持している時間があらかじめ定められた所定の時間を経過しておらず、かつ、保持しているACKパケットの保持数があらかじめ定められた最大値に達していないとき、受信した前記ACKパケットを、前記最新のACKパケットとして保持し、
    保持している前記最新のACKパケットに連続しないACKパケットを受信した場合、前記最新のACKパケットを保持している時間が所定の時間を経過した場合、または、ACKパケットの保持数が最大値に達した場合には、保持している前記最新のACKパケットを、前記TCP/IP処理手段に渡す
    送信装置。
  2. 送信データに応じて受信側から送信されてくるACKパケットのうち、最後に受信した最新のACKパケットを保持するACK保持ステップと
    前記ACK保持ステップの処理によって所定のタイミングで渡される前記最新のACKパケットに応じて、ACKパケットの受信処理を行うTCP/IP処理ステップと
    を含み、
    前記ACK保持ステップの処理によって、
    受信した前記ACKパケットが、TCP/IP通信を行っている相手からのACKパケットであって、ACKパケットを保持していない場合、受信した前記ACKパケットを、前記最新のACKパケットとして保持し、
    受信した前記ACKパケットが、TCP/IP通信を行っている相手からのACKパケットであって、既に保持している前記最新のACKパケットに連続するACKパケットである場合、前記最新のACKパケットを保持している時間があらかじめ定められた所定の時間を経過しておらず、かつ、保持しているACKパケットの保持数があらかじめ定められた最大値に達していないとき、受信した前記ACKパケットを、前記最新のACKパケットとして保持し、
    保持している前記最新のACKパケットに連続しないACKパケットを受信した場合、前記最新のACKパケットを保持している時間が所定の時間を経過した場合、または、ACKパケットの保持数が最大値に達した場合には、保持している前記最新のACKパケットを、前記TCP/IP処理ステップの処理に渡す
    送信方法。
  3. 送信データに応じて受信側から送信されてくるACKパケットのうち、最後に受信した最新のACKパケットを保持するACK保持ステップと
    前記ACK保持ステップの処理によって所定のタイミングで渡される前記最新のACKパケットに応じて、ACKパケットの受信処理を行うTCP/IP処理ステップと
    を含み、
    前記ACK保持ステップの処理によって、
    受信した前記ACKパケットが、TCP/IP通信を行っている相手からのACKパケットであって、ACKパケットを保持していない場合、受信した前記ACKパケットを、前記最新のACKパケットとして保持し、
    受信した前記ACKパケットが、TCP/IP通信を行っている相手からのACKパケットであって、既に保持している前記最新のACKパケットに連続するACKパケットである場合、前記最新のACKパケットを保持している時間があらかじめ定められた所定の時間を経過しておらず、かつ、保持しているACKパケットの保持数があらかじめ定められた最大値に達していないとき、受信した前記ACKパケットを、前記最新のACKパケットとして保持し、
    保持している前記最新のACKパケットに連続しないACKパケットを受信した場合、前記最新のACKパケットを保持している時間が所定の時間を経過した場合、または、ACKパケットの保持数が最大値に達した場合には、保持している前記最新のACKパケットを、前記TCP/IP処理ステップの処理に渡す
    処理をコンピュータに実行させるプログラム。
JP2008098267A 2008-04-04 2008-04-04 送信装置および方法、並びにプログラム Expired - Fee Related JP4513036B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008098267A JP4513036B2 (ja) 2008-04-04 2008-04-04 送信装置および方法、並びにプログラム
US12/391,532 US8532111B2 (en) 2008-04-04 2009-02-24 Transmission apparatus, transmission method, and program
CNA2009101333773A CN101552657A (zh) 2008-04-04 2009-04-07 发送设备、发送方法和程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008098267A JP4513036B2 (ja) 2008-04-04 2008-04-04 送信装置および方法、並びにプログラム

Publications (2)

Publication Number Publication Date
JP2009253605A JP2009253605A (ja) 2009-10-29
JP4513036B2 true JP4513036B2 (ja) 2010-07-28

Family

ID=41133223

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008098267A Expired - Fee Related JP4513036B2 (ja) 2008-04-04 2008-04-04 送信装置および方法、並びにプログラム

Country Status (3)

Country Link
US (1) US8532111B2 (ja)
JP (1) JP4513036B2 (ja)
CN (1) CN101552657A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5601029B2 (ja) 2010-05-27 2014-10-08 ソニー株式会社 通信装置及び通信方法、並びにコンピューター・プログラム
CN103548297A (zh) * 2012-03-21 2014-01-29 华为技术有限公司 确认包的处理方法、设备及***
EP3297191A4 (en) * 2015-07-10 2018-06-13 Huawei Technologies Co., Ltd. Protocol frame transmission method, device, node apparatus and system
WO2022231553A1 (en) * 2021-04-30 2022-11-03 Tayf Ileri Teknoloji Hizmetleri Anonim Sirketi Network management system which accelerates the tcp traffic at the level of transport layer

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005136547A (ja) * 2003-10-29 2005-05-26 Sony Corp 通信システム、受信装置および方法、送信装置および方法、記録媒体、並びにプログラム
JP2006101339A (ja) * 2004-09-30 2006-04-13 Kyocera Corp データ通信装置
JP2007235976A (ja) * 2007-03-27 2007-09-13 Kyocera Corp データ通信装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7212538B2 (en) * 2003-09-05 2007-05-01 Qualcomm Incorporated Differential ack processing buffer manager and method therefor
US7360140B2 (en) * 2004-09-23 2008-04-15 International Business Machines Corporation Apparatus and method for tracking packets in a reliably connected transmission system
US20070291782A1 (en) * 2006-06-14 2007-12-20 Claude Basso Acknowledgement filtering

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005136547A (ja) * 2003-10-29 2005-05-26 Sony Corp 通信システム、受信装置および方法、送信装置および方法、記録媒体、並びにプログラム
JP2006101339A (ja) * 2004-09-30 2006-04-13 Kyocera Corp データ通信装置
JP2007235976A (ja) * 2007-03-27 2007-09-13 Kyocera Corp データ通信装置

Also Published As

Publication number Publication date
JP2009253605A (ja) 2009-10-29
US8532111B2 (en) 2013-09-10
US20090252162A1 (en) 2009-10-08
CN101552657A (zh) 2009-10-07

Similar Documents

Publication Publication Date Title
US9386128B2 (en) Delay based active queue management for uplink traffic in user equipment
KR101087118B1 (ko) 버퍼 상태 리포트를 유발하기 위한 타이머를 핸들링하는 방법 및 장치
JP2004297742A (ja) 通信装置、通信制御方法及びプログラム
KR20160135200A (ko) 확장된 송신 제어 기능을 구현하는 송신 가속기
JP4513036B2 (ja) 送信装置および方法、並びにプログラム
US20190124006A1 (en) Latency correction between transport layer host and deterministic interface circuit
TWI358922B (en) Method and apparatus of default timer configuratio
WO2015066836A1 (zh) 视频业务数据传输方法、数据接收装置和数据发送装置
WO2013139010A1 (zh) 确认包的处理方法、设备及***
JP2005536137A5 (ja)
WO2014026554A1 (zh) 报文拥塞处理方法及装置
US11258721B2 (en) Radio link control (RLC) acknowledged mode (AM) data reception
WO2017185353A1 (zh) 一种传输控制协议tcp报文的传输方法、设备及***
JP5832335B2 (ja) 通信装置および通信システム
WO2012068972A1 (zh) 一种激活配置的方法及用户设备
JP2004158916A (ja) 通信システム及び方法
JP2006128871A (ja) 制御局装置、基地局装置及びパケットデータ廃棄方法
JP4382830B2 (ja) パケット転送装置
WO2017071281A1 (zh) 无线链路控制层轮询定时器的时长调整方法及装置
JP2006504290A (ja) Nackプロトコルの方法および装置
WO2013078840A1 (zh) 上行数据传输方法及装置
JP2017528090A (ja) タイマの長さを調整するための方法、及び基地局
JP4890285B2 (ja) ネットワーク中継装置
WO2010115367A1 (zh) 数据传输方法及数据处理装置
US11563524B2 (en) Wireless communication method and device

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100323

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

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

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

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees