JP6089518B2 - 転送装置、転送方法および転送プログラム - Google Patents

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

Info

Publication number
JP6089518B2
JP6089518B2 JP2012199858A JP2012199858A JP6089518B2 JP 6089518 B2 JP6089518 B2 JP 6089518B2 JP 2012199858 A JP2012199858 A JP 2012199858A JP 2012199858 A JP2012199858 A JP 2012199858A JP 6089518 B2 JP6089518 B2 JP 6089518B2
Authority
JP
Japan
Prior art keywords
packet
identification number
destination
value
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.)
Active
Application number
JP2012199858A
Other languages
English (en)
Other versions
JP2014057170A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Ltd filed Critical Fujitsu Ltd
Priority to JP2012199858A priority Critical patent/JP6089518B2/ja
Priority to EP13174461.7A priority patent/EP2706698A3/en
Priority to US13/935,432 priority patent/US9172654B2/en
Priority to CN201310322902.2A priority patent/CN103684681B/zh
Publication of JP2014057170A publication Critical patent/JP2014057170A/ja
Application granted granted Critical
Publication of JP6089518B2 publication Critical patent/JP6089518B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/54Loss aware scheduling
    • 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/1607Details of the supervisory signal
    • H04L1/1642Formats specially adapted for sequence numbers
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0083Formatting with frames or packets; Protocol or part of protocol for error control
    • 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/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • H04L1/1838Buffer management for semi-reliable protocols, e.g. for less sensitive applications such as streaming video

Description

本発明は、転送装置等に関する。
近年、光通信等の普及により、ネットワーク帯域はますます拡大している。しかし、以下に説明するように、ネットワーク遅延の影響によって、ネットワーク帯域を有効に使い切れていない。
従来の転送装置は、TCP(Transmission Control Protocol)によって、パケット送信を実行している。TCPでは、受信ウインドウサイズを設定し、受信ウインドウサイズ分のパケットを送信した後に、宛先からACK(Acknowledge)を受信することで、パケットが宛先に届いたか否かを判定する。転送装置は、パケットが届いたことを確認した後に、次のパケットを送信する。
図12は、従来技術を説明するための図である。図12に示すように、送信側の転送装置は、受信ウインドウサイズ分のパケット1aを受信側の転送装置に送信し、受信側からACK1bを受信する。送信側の転送装置は、ACK1bを受信することで、パケット1aが宛先に届いたことを確認し、次のパケット1cを受信側の転送装置に送信する。パケット1aを送信してから、ACK1bを受信するまでの時間は、RTT(Round Trip Time)と呼ばれる。
TCPで用いられる受信ウインドウサイズの標準のデータ量は、64KBである。ここで、RTTをX(ms)とすると、1秒間に64KB×(1000/X)しかデータを送信することができない。例えば、RTTを200(ms)とすると、1秒間に送信できるデータ量は、2.56(Mbps)となる。すなわち、受信ウインドウサイズが64KBで、RTTが200(ms)の場合には、ネットワーク帯域がいかに広くても、送信可能なデータ量は、2.56(Mbps)となる。
上記問題を解消するべく、各種の従来技術が存在する。従来技術1は、TCPのスケールオプションによって、受信ウインドウサイズを拡大し、一度に送信するデータ量を増加させる。そして、従来技術1は、パケットを送信した後に、定期的な計測に基づいて設定した応答遅延時間内に、ACKを受信しない場合には、パケットが消失したものとみなして、パケットを再送する。
図13は、従来技術1を説明するための図である。図13に示すように、従来技術1は、パケット2aを受信側に送信し、応答遅延時間3a以内に、パケット2aに対するACK2bを受信した場合には、パケット2aが受信側に届いたと判定する。一方、従来技術1は、パケット2cを受信側に送信し、応答遅延時間3b以内に、パケット2cに対するACKを受信できなかった場合には、パケット2cが消失したとみなして、パケット2cに対応するパケット2dを再送する。
従来技術2は、パケットの送信側の転送装置が、パケットをパケットIDの昇順で送信する。そして、パケットの受信側の転送装置が、受信するパケットのパケットIDの順序を監視して、パケットIDに抜けが存在した場合に、パケットの再送を要求するものである。
図14は、従来技術2を説明するための図である。図14に示すように、従来技術2は、送信側の転送装置が、パケット4a,4b,4c,4d,4eの順で、パケットを受信側の転送装置に送信する。パケット4a,4b,4c,4d,4eのパケットIDをそれぞれ、1,2,3,4,5とする。受信側の転送装置は、パケット4a,4b,4c,4eを受信する。受信側の転送装置は、パケット4a,4b,4c,4eのパケットIDを監視しており、パケットID「4」の抜けを検出する。この場合には、受信側の転送装置は、再送要求パケット5aを、送信側の転送装置に送信する。再送要求パケット5aは、再送対象となるパケットのパケットIDを含む。送信側の転送装置は、再送要求のあったパケット4dを、受信側の転送装置に送信する。
特開2008−141633号公報
しかしながら、上述した従来技術では、ネットワーク帯域の限界までデータ転送を行おうとすると、受信ウインドウサイズを大きくせざるを得えず、無駄な再送を防ぐことができないという問題がある。
例えば、上記の従来技術1では、応答遅延時間以内にACKを受信しない場合に、パケットが消失したものとみなして、パケットを再送している。しかし、ネットワークの負荷増大によって、パケットの到達が遅れ、応答遅延時間以内に、ACKが送信側の転送装置に届かないことがある。このような場合には、送信側が行った再送は、無駄な再送となる。送信側の転送装置から送信されたが、受信側の転送装置に届いていないパケットは、パケットオンザフライ(packets on-the-fly)と呼ばれる。
上記の従来技術2では、受信側の転送装置が、パケットIDの順序を監視して、パケットの抜けを検出し、パケットの再送を要求するものである。しかし、この従来技術2では、再送パケットの消失を検出するためには、従来技術1と同様にして、応答遅延時間を設定することになる。図15は、従来技術2の問題を説明する図である。図15に示すように、初めてパケットを送信する場合には、図14でも説明したように、パケット4dの消失を検出することができるが、再度、パケット4dを再送して、係るパケット4dが消失してしまう場合もあり得る。この場合には、パケット4dの消失をパケット4f以降のパケットのパケットIDの順番で検出することができない。すなわち、再送パケット4dの消失を検出するためには、送信側の転送装置が、応答遅延時間を設定して、再度再送パケットを送信するか否かを判定することとなる。
1つの側面では、パケットオンザフライが大量に存在しても、無駄な再送を防ぐことができる転送装置、転送方法および転送プログラムを提供することを目的とする。
第1の案では、転送装置は、送信部、登録部、判定部、再送部を有する。送信部は、パケットを一意に識別する第1識別番号が割り当てられたパケットを、宛先に順次送信し、所定時間毎に値が加算される第2識別番号を宛先に順次送信する。登録部は、送信部によって送信されたパケットの第1識別番号と、該パケットが送信部から送信された時点の第2識別番号とを対応付けてテーブルに登録する。判定部は、宛先に到達したパケットの第1識別番号と宛先に到達した直近の第2識別番号を受信し、宛先に到達したパケットの第1識別番号および直近の第2識別番号と、テーブルとを基にして、宛先に再送するパケットの第1識別番号を判定する。再送部は、判定部の判定結果を基にして、パケットを再送する。
本発明の第1実施態様によれば、無駄な再送を防ぐことができるという効果を奏する。
図1は、本実施例に係る転送システムの一例を示す図である。 図2は、転送システムで行われるデータ通信を説明するための図である。 図3は、各種パケットのデータ構造の一例を示す図である。 図4は、本実施例に係る送信側の転送装置の構成を示す機能ブロック図である。 図5は、判定テーブルのデータ構造の一例を示す図である。 図6は、パケット管理テーブルのデータ構造の一例を示す図である。 図7は、本実施例に係る受信側の転送装置の構成を示す機能ブロック図である。 図8は、本実施例に係る転送装置がフェイズパケットを送信する処理手順を示すフローチャートである。 図9は、本実施例に係る転送装置がデータパケットを送信する処理手順を示すフローチャートである。 図10は、本実施例に係る転送装置が応答パケットを受信した場合の処理手順を示すフローチャートである。 図11は、転送プログラムを実行するコンピュータの一例を示す図である。 図12は、従来技術を説明するための図である。 図13は、従来技術1を説明するための図である。 図14は、従来技術2を説明するための図である。 図15は、従来技術2の問題を説明する図である。
以下に、本願の開示する転送装置、転送方法および転送プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
本実施例に係る転送システムの構成について説明する。図1は、本実施例に係る転送システムの一例を示す図である。図1に示すように、この転送システムは、転送装置100、200を有する。また、転送装置100および200は、ネットワーク50を介して相互に接続される。
ここで、本実施例の転送システムで行われるデータ通信について説明する。図2は、転送システムで行われるデータ通信を説明するための図である。一例として、転送装置100をパケットの送信側とし、転送装置200をパケットの受信側とする。また、転送装置100は、送信バッファサイズを、帯域遅延積以上の大きさとする。帯域遅延積は、ネットワーク50の帯域とRTTとを乗算したものであり、管理者が予め設定しておくものとする。
図2に示すように、転送装置100は、データパケットを一意に識別するパケットID(Identifier)を付与し、パケットIDの昇順で、データパケットを宛先となる転送装置200に順次送信する。例えば、転送装置100は、パケットID「1」のデータパケット10a、パケットID「2」のデータパケット10b、パケットID「3」のデータパケット10c、パケットID「4」のデータパケット10dの順で、各データパケットを送信する。
転送装置100は、所定時間毎に値が加算されるフェイズ(phase)を管理する。転送装置100は、このフェイズの値が更新される度に、フェイズパケットを転送装置200に送信する。フェイズパケットには、フェイズの値を示すフェイズIDが含まれる。図2に示す例では、転送装置100は、フェイズの値が1から2に変化した時点で、フェイズパケット11aを、転送装置200に送信する。フェイズパケット11aには、フェイズID「2」が含まれる。なお、転送装置100は、フェイズID「1」のフェイズパケットを転送装置200に送信済みとする。
なお、転送装置100は、データパケットを送信する度に、データパケットを送信した時点のフェイズIDと、データパケットのパケットIDとを対応付けて、判定テーブル120aに登録する。
一方、転送装置200は、転送装置100からデータパケットおよびフェイズパケットを順次受信し、所定時間毎に応答パケットを転送装置100に送信する。この応答パケットは、転送装置100が受信したデータパケットのパケットIDと、最大フェイズの値とを含む。受信したデータパケットのパケットIDを受信パケットIDとする。最大フェイズは、転送装置200が受信したフェイズパケットのフェイズIDのうち、最大のフェイズIDに対応するものである。
例えば、転送装置200は、フェイズパケット11aを受信した時点で、最大フェイズを1から2に変更する。例えば、転送装置200は、データパケット10a,10cを受信し、データパケット10dを受信する前に、応答パケット12aを転送装置100に送信したものとする。なお、データパケット10bは、転送装置200に到達する前に消失(loss)したものとする。この場合には、転送装置200は、最大フェイズ「2」、受信パケットID「1,3」を含む応答パケット12aを転送装置100に送信する。
転送装置100は、データパケット10a〜10d、フェイズパケット11aを転送装置200に送信した後に、応答パケット12aを受信したものとする。転送装置100は、応答パケット12aの含まれる受信パケットIDおよび最大フェイズと、判定テーブル120aとを基にして、転送装置200に再送するデータパケットのパケットIDを判定する。
転送装置100は、最大フェイズの値未満のフェイズIDに対応する判定テーブル120aのパケットIDのうち、受信パケットIDと異なるパケットIDを、再送するデータパケットのパケットIDと判定する。図2の応答パケット12aを受信した場合には、判定テーブル120aのパケットIDのうち、最大フェイズ「2」未満となるフェイズIDに対応するパケットIDは「1,2」となる。また、このパケットID「1,2」のうち、受信パケットID「1,3」と異なるのは、パケットID「2」となる。このため、転送装置100は、パケットID「2」のデータパケットを、転送装置200に送信すると判定する。
上記の手順に従って、転送装置100が、再送対象となるパケットIDを判定することで、パケットオンザフライが存在している場合に、無駄な再送を防ぐことができる。図2に示す例では、パケット10dは、パケットオンザフライ状態であるため、パケット10dを再送してしまうと、無駄な再送となってしまうが、本実施例にかかる転送装置100は、このような無駄な再送を行わない。
次に、図2で送受信されるデータパケット、フェイズパケット、応答パケットのデータ構造の一例について説明する。図3は、各種パケットのデータ構造の一例を示す図である。図3に示す10は、データパケットのデータ構造の一例である。11は、フェイズパケットのデータ構造の一例である。12は、応答パケットのデータ構造の一例である。
データパケット10は、UDP(User Datagram Protocol)ヘッダ、パケットID、送信データを含む。このうち、送信データは、各種のユーザデータである。フェイズパケット11は、UDPヘッダ、フェイズIDを含む。なお、本実施例では一例として、UDPを用いて説明するが、UDPに限られず、その他の一般的な通信プロトコルを利用することができる。
応答パケット12は、UDPヘッダ、最大フェイズ、受信パケットIDを含む。このうち、受信パケットIDには、転送装置200に到達したパケットIDの情報が含まれる。図3に示す受信パケットIDは、パケットID0〜10000までのパケットIDのうち、0〜8019、8025〜8699、8701〜9009、9012〜10000のパケットIDを受信したことを示す。すなわち、8020〜8024、8700、9010〜9011のパケットIDが未受信である。
次に、図1、2に示した送信側の転送装置100の構成について説明する。図4は、本実施例に係る送信側の転送装置の構成を示す機能ブロック図である。図4に示すように、この転送装置100は、通信部110、フェイズタイマ115、記憶部120、制御部130を有する。
通信部110は、ネットワーク50を介して転送装置200との間でデータ通信を実行する処理部である。例えば、通信部110は、通信装置等に対応する。後述する制御部130は、通信部110を介して、転送装置200とデータをやり取りする。
フェイズタイマ115は、所定時間毎に、制御部130にシグナルを送信するタイマである。後述するように、このフェイズタイマ115は、フェイズIDデータ120cに値を加算するタイミングを計るためのタイマである。
記憶部120は、判定テーブル120a、パケット管理データ120b、フェイズIDデータ120cを記憶する記憶部である。図2で説明したように、判定テーブル120aは、パケットIDとフェイズIDとを対応付けて記憶する。図5は、判定テーブルのデータ構造の一例を示す図である。
パケット管理テーブル120bは、データパケットを記憶するテーブルである。図6は、パケット管理テーブルのデータ構造の一例を示す図である。図6に示すように、このパケット管理テーブル120bは、パケットIDと、該パケットIDに対応するデータパケットのデータと送信フラグとを対応付けて保持する。例えば、1行目のレコードには、パケットID「1」と、該パケットID「1」のデータパケットのデータとが登録される。各データパケットには、図3で説明したように、UDPヘッダ、パケットID、送信データが含まれる。送信フラグは、該当するデータパケットが転送装置200に送信済みか否かを示すものである。例えば、オンが送信済みを示し、オフが未送信を示す。
フェイズIDデータ120cは、フェイズIDの値を保持するデータである。なお、フェイズIDデータ120cの初期値を0とする。
制御部130は、タイマ監視部131、送信部132、登録部133、判定部134、再送部135を有する。
タイマ監視部131は、フェイズタイマ115からシグナルを受信する度に、フェイズIDデータ120cの値に所定値を加算する処理部である。例えば、タイマ監視部131は、フェイズタイマ115からシグナルを受信する度に、フェイズIDデータ120cの値に1を加算する。
送信部132は、データパケットを送信する処理およびフェイズパケットを送信する処理を実行する処理部である。
送信部132が、データパケットを送信する処理について説明する。送信部132は、パケット管理データ120bに登録されたデータパケットを取得し、パケットIDの値が昇順となるように、順次データパケットを転送装置200に送信する。送信部131は、データパケットを送信した時点で、送信したデータパケットのパケットIDを、登録部133に通知する。また、送信部132は、送信したデータパケットに対応するパケット管理データ120bの送信フラグをオンに設定する。
送信部132がフェイズパケットを送信する処理について説明する。送信部132は、フェイズIDデータ120cの値を監視し、フェイズIDデータ120cの値に1が加算される度に、フェイズパケットを生成し、フェイズパケットを転送装置200に送信する。送信部132は、加算された後の値を、フェイズパケットのフェイズIDに格納して、フェイズパケットを生成する。
例えば、フェイズIDデータの値「1」に1が加算されて、「2」となった場合には、送信部132は、フェイズIDに「2」を格納することで、フェイズパケットを生成し、生成したフェイズパケットを転送装置200に送信する。
登録部133は、送信部132がデータパケットを送信した場合に、データパケットのパケットIDと、かかるデータパケットが送信された時点のフェイズIDデータ120cの値とを対応付けて、判定テーブル120aに登録する処理部である。登録部133は、送信部132がデータパケットを送信した時点で、送信部132から送信したデータパケットのパケットIDを取得するものとする。
判定部134は、転送装置200から、応答パケットを受信した場合に、応答パケットと、判定テーブル120aとを基にして、再送するデータパケットのパケットIDを判定する処理部である。判定部134は、再送するデータパケットのパケットIDを、再送部135に出力する。
判定部134の処理を具体的に説明する。まず、判定部134は、転送装置100に到達していないデータパケットを示す未達パケットを判定する。判定部134は、応答パケットの受信パケットIDと、パケット管理データ120bのうち送信済みのデータパケットのパケットIDとを比較し、受信パケットIDの値と異なるパケットIDを特定する。判定部134は、特定したパケットIDに対応するデータパケットを、未達パケットと判定する。例えば、受信パケットIDに「1,3」が含まれ、送信済みのデータパケットのパケットIDが「1,2,3」となる場合には、未達パケットは、パケットID「2」のデータパケットとなる。
判定部134は、未達パケットを判定した後に、未達パケットを再送するか否かを判定する。具体的に、判定部134は、未達パケットに対応するフェイズIDを判定テーブル120aから特定し、未達パケットに対応するフェイズIDの値が、応答パケットの最大フェイズの値よりも小さい場合に、未達パケットを再送すると判定する。判定部134は、再送する未達パケットのパケットIDを、再送部135に出力する。
なお、判定部134は、受信パケットに含まれる受信パケットIDを学習しておき、学習した受信パケットIDを、再送対象のパケットIDから除外してもよい。
再送部135は、判定部134の判定結果に基づいて、データパケットを再送する処理部である。具体的に、再送部135は、判定部134からパケットIDを取得し、取得したパケットIDに対応するデータパケットを、パケット管理データ120bから検出する。そして、再送部135は、検出したデータパケットを、転送装置200に送信する。
次に、図1、2に示した受信側の転送装置200の構成について説明する。図7は、本実施例に係る受信側の転送装置の構成を示す機能ブロック図である。図7に示すように、転送装置200は、通信部210、応答タイマ215、記憶部220、制御部230を有する。
通信部210は、ネットワーク50を介して転送装置100との間でデータ通信を実行する処理部である。例えば、通信部210は、通信装置等に対応する。後述する制御部230は、通信部210を介して、転送装置100とデータをやり取りする。
応答タイマ215は、所定時間毎に、制御部230にシグナルを送信するタイマである。後述するように、この応答タイマ215は、応答パケットを送信するタイミングを計るためのものである。
記憶部220は、パケットデータ220a、フェイズデータ220bを記憶する記憶部である。パケットデータ220aは、転送装置100から受信するデータパケットのデータである。フェイズデータ220bは、転送装置100から受信したフェイズIDのうち、最大のフェイズIDの値を記憶するデータである。
受信部231は、転送装置100からデータパケット、フェイズパケットを受信する処理部である。受信部231は、転送装置100からデータパケットを受信した場合には、受信したデータパケットをパケットデータ220aに登録する。
また、受信部231は、フェイズパケットを受信した場合には、フェイズパケットのフェイズIDの値と、フェイズデータ220bの値とを比較する。受信部231は、フェイズパケットのフェイズIDの値の方が、フェイズデータ220bの値よりも大きい場合には、フェイズパケットのフェイズIDの値によって、フェイズデータ220bの値を更新する。一方、受信部231は、フェイズパケットのフェイズIDの値が、フェイズデータ220bの値以下の場合には、フェイズデータ220bの値をそのままとする。
再送要求部232は、応答タイマ215からシグナルを受け付ける毎に、応答パケットを生成し、応答パケットを転送装置100に送信する処理部である。再送要求部232は、パケットデータ220aに記憶されたパケットIDを、受信パケットIDとして応答パケットに格納する。また、再送要求部232は、フェイズデータ220bの値を、最大フェイズとして応答パケットに格納する。再送要求部232は、受信パケットIDおよび最大フェイズを格納した応答パケットを転送装置100に送信する。
次に、本実施例に係る転送装置100がフェイズパケットを送信する処理手順について説明する。図8は、本実施例に係る転送装置がフェイズパケットを送信する処理手順を示すフローチャートである。図8に示すように、転送装置100は、フェイズタイマ115からシグナルを受信し(ステップS101)、フェイズIDデータ120cの値に1を加算する(ステップS102)。
転送装置100は、更新されたフェイズIDデータ120cの値をフェイズパケットに格納して転送装置200に送信する(ステップS103)。転送装置100は、フェイズタイマ115をリセットする(ステップS104)。
次に、本実施例に係る転送装置100がデータパケットを送信する処理手順について説明する。図9は、本実施例に係る転送装置がデータパケットを送信する処理手順を示すフローチャートである。例えば、転送装置100は、送信要求を受け付けたことを契機として、図9に示す処理を実行する。例えば、転送装置100にデータパケットの送信を依頼するクライアント等から、転送装置100は、送信要求を受け付ける。
図9に示すように、転送装置100は、送信要求を受付(ステップS201)、フェイズタイマ115がセットされているか否かを判定する(ステップS202)。転送装置100は、フェイズタイマがセットされている場合には(ステップS202,Yes)、ステップS204に移行する。
一方、転送装置100は、フェイズタイマ115がセットされていない場合には(ステップS202,No)、フェイズタイマ115をセットする(ステップS203)。転送装置100は、現在のフェイズIDデータの値と、パケットIDとの組みを判定テーブル120aに記録する(ステップS204)。
転送装置100は、データパケットを生成し、データパケットを転送装置200に送信する(ステップS205)。
次に、本実施例に係る転送装置100が、転送装置200から応答パケットを受信した場合の処理について説明する。図10は、本実施例に係る転送装置が応答パケットを受信した場合の処理手順を示すフローチャートである。
図10に示すように、転送装置100は、転送装置200から応答パケットを受信する(ステップS301)。転送装置100は、応答パケットから未達パケット情報を取得する(ステップS302)。
転送装置100は、未達パケットが存在するか否かを判定する(ステップS303)。転送装置100は、未達パケットが存在しない場合には(ステップS303,No)、処理を終了する。
転送装置100は、未達パケットが存在する場合には(ステップS303,Yes)、未選択の未達パケットを選択する(ステップS304)。転送装置100は、未達パケットのフェイズIDの値が、応答パケットの最大フェイズの値よりも小さいか否かを判定する(ステップS305)。転送装置100は、未達パケットのフェイズIDの値が、応答パケットの最大フェイズの値以上の場合には(ステップS305,No)、ステップS307に移行する。
一方、転送装置100は、未達パケットのフェイズIDの値が、応答パケットの最大フェイズの値よりも小さい場合には(ステップS305,Yes)、未達パケットの再送を実行する(ステップS306)。
転送装置100は、未達パケットを全て選択したか否かを判定する(ステップS307)。転送装置100は、未達パケットを全て選択していない場合には(ステップS307,No)、ステップS304に移行する。一方、転送装置100は、未達パケットを全て選択した場合には(ステップS307,Yes)、処理を終了する。なお、通信の終了は、送信元から送信先へ、通信終了の通知をし、その通知の到達と送信すべき全てのパケットが到達したことを確認して完了する。
次に、本実施例に係る転送装置100の効果について説明する。転送装置100は、所定時間毎にフェイズIDの値を加算しつつ、送信済みのデータパケットのパケットIDと、フェイズIDとを対応付けて判定テーブル120aに登録しておく。転送装置100は、受信側の転送装置200から、応答パケットを受信した場合に、受信パケットに含まれる受信パケットIDと、送信済みのデータパケットのパケットIDとを基にして、未達パケットを判定する。そして、転送装置100は、未達パケットのフェイズIDと、受信パケットの最大フェイズとの関係から、未達パケットに対応するデータパケットが、消失したのか、オンザフライなのかを判定し、消失した場合にのみ、該当するデータパケットを再送する。このような処理を実行することで、オンザフライのデータパケットに対応するパケットを再送することを防ぐことができるので、無駄な再送を防ぐことができる。
また、転送装置100によれば、未達パケットの再送信に対し、応答遅延時間等を設定しなくても、再送対象となるパケットを適切に判定することができる。
また、転送装置100は、判定テーブル120aから最大フェイズの値未満のフェイズIDに対応するパケットIDのうち、受信パケットIDと異なる値のパケットIDを、再送するデータパケットのパケットIDとして判定する。このため、未到達パケットが消失したのか、オンザフライなのかを適切に判定することができる。
ところで、本実施例では一例として、転送装置100は、データパケットとフェイズパケットとをそれぞれ別々に送信したが、データパケットおよびフェイズパケットとをまとめて、転送装置200に送信しても良い。例えば、転送装置100は、データパケットに、フェイズIDを格納するデータ領域を設け、係る領域にフェイズIDデータ120cの値を格納しても良い。
次に、各実施例に示した転送装置100と同様の機能を実現する転送プログラムを実行するコンピュータの一例を説明する。図11は、転送プログラムを実行するコンピュータの一例を示す図である。
図11に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303を有する。また、コンピュータ300は、記憶媒体からプログラム等を読取る読み取り装置304と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインタフェース装置305とを有する。また、コンピュータ300は、各種情報を一時記憶するRAM306と、ハードディスク装置307を有する。そして、各装置301〜307は、バス308に接続される。
ハードディスク装置307は、例えば、送信プログラム307a、登録プログラム307b、判定プログラム307c、再送プログラム307dを有する。CPU301は、各プログラム307a〜307dを読み出して、RAM306に展開する。
送信プログラム307aは、送信プロセス306aとして機能する。登録プログラム307bは、登録プロセス306bとして機能する。判定プログラム307cは、判定プロセス306cとして機能する。再送プログラム307dは、再送プロセス306dとして機能する。
例えば、送信プロセス306aは、送信部132に対応する。登録プロセス306bは、登録部133に対応する。判定プロセス306cは、判定部134に対応する。再送プロセス306dは、再送部135に対応する。
なお、各プログラム307a〜307dについては、必ずしも最初からハードディスク装置307に記憶させておかなくてもよい。例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ300がこれらから各プログラム307a〜307dを読み出して実行するようにしてもよい。
なお、図4、図7に示した制御部130,230は、例えば、ASIC(Application Specific Integrated Circuit)や、FPGA(Field Programmable Gate Array)などの集積装置に対応する。また、制御部130,230は、例えば、CPUやMPU(Micro Processing Unit)等の電子回路に対応する。
また、図4、図7に示した記憶部120,220は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子などの記憶装置に対応する。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)パケットを一意に識別する第1識別番号が割り当てられたパケットを、宛先に順次送信し、所定時間毎に値が加算される第2識別番号を宛先に順次送信する送信部と、
前記送信部によって送信されたパケットの第1識別番号と、該パケットが前記送信部から送信された時点の第2識別番号とを対応付けてテーブルに登録する登録部と、
宛先に到達したパケットの第1識別番号と前記宛先に到達した直近の第2識別番号を受信し、前記宛先に到達したパケットの第1識別番号および前記直近の第2識別番号と、前記テーブルとを基にして、前記宛先に再送するパケットの第1識別番号を判定する判定部と、
前記判定部の判定結果を基にして、パケットを再送する再送部と
を有することを特徴とする転送装置。
(付記2)前記判定部は、前記テーブルから前記直近の第2識別番号の値未満の第2識別番号に対応する第1識別番号のうち、宛先に到達したパケットの第1識別番号と異なる値の第1識別番号を、前記宛先に再送するパケットの第1識別番号として判定することを特徴とする付記1に記載の転送装置。
(付記3)コンピュータが実行する転送方法であって、
パケットを一意に識別する第1識別番号が割り当てられたパケットを、宛先に順次送信し、所定時間毎に値が加算される第2識別番号を宛先に順次送信し、
送信したパケットの第1識別番号と、該パケットが前記送信部から送信された時点の第2識別番号とを対応付けてテーブルに登録し、
宛先に到達したパケットの第1識別番号と前記宛先に到達した直近の第2識別番号を受信し、前記宛先に到達したパケットの第1識別番号および前記直近の第2識別番号と、前記テーブルとを基にして、前記宛先に再送するパケットの第1識別番号を判定し、
判定結果を基にして、パケットを再送する
各処理を実行する転送方法。
(付記4)前記判定する処理は、前記テーブルから前記直近の第2識別番号の値未満の第2識別番号に対応する第1識別番号のうち、宛先に到達したパケットの第1識別番号と異なる値の第1識別番号を、前記宛先に再送するパケットの第1識別番号として判定することを特徴とする付記3に記載の転送方法。
(付記5)コンピュータに、
パケットを一意に識別する第1識別番号が割り当てられたパケットを、宛先に順次送信し、所定時間毎に値が加算される第2識別番号を宛先に順次送信し、
送信したパケットの第1識別番号と、該パケットが前記送信部から送信された時点の第2識別番号とを対応付けてテーブルに登録し、
宛先に到達したパケットの第1識別番号と前記宛先に到達した直近の第2識別番号を受信し、前記宛先に到達したパケットの第1識別番号および前記直近の第2識別番号と、前記テーブルとを基にして、前記宛先に再送するパケットの第1識別番号を判定し、
判定結果を基にして、パケットを再送する
各処理を実行させることを特徴とする転送プログラム。
(付記6)前記判定する処理は、前記テーブルから前記直近の第2識別番号の値未満の第2識別番号に対応する第1識別番号のうち、宛先に到達したパケットの第1識別番号と異なる値の第1識別番号を、前記宛先に再送するパケットの第1識別番号として判定することを特徴とする付記5に記載の転送プログラム。
50 ネットワーク
100,200 転送装置

Claims (6)

  1. パケットを一意に識別する第1識別番号が割り当てられたパケットを、宛先に順次送信し、所定時間毎に値が加算される第2識別番号を宛先に順次送信する送信部と、
    前記送信部によって送信されたパケットの第1識別番号と、該パケットが前記送信部から送信された時点の第2識別番号とを対応付けてテーブルに登録する登録部と、
    宛先に到達したパケットの第1識別番号と前記宛先に到達した第2識別番号のうち最も値の大きい第2識別番号を受信し、前記宛先から受信した最も値の大きい第2識別番号の値未満の第2識別番号に対応する第1識別番号を前記テーブルから特定し、特定した第1識別番号のうち、前記宛先に到達したパケットの第1識別番号と異なる値の第1識別番号を、前記宛先に再送するパケットの第1識別番号として判定する判定部と、
    前記判定部の判定結果を基にして、パケットを再送する再送部と
    を有することを特徴とする転送装置。
  2. 前記送信部は、所定時間毎に値が加算される第2識別番号を、該第2識別番号に値が加算された時点において、前記宛先に送信し、前記登録部は、前記送信部によってパケットが送信される度に、当該パケットが前記送信部から送信された時点の第2識別番号と当該パケットの第1識別番号とを対応付けて前記テーブルに登録し、前記判定部は、前記宛先に到達した直近のパケットの第1識別番号を受信し、前記判定部が受信する第1識別番号は、前記宛先に到達しなかったパケットの第1識別番号を含まないことを特徴とする請求項1に記載の転送装置。
  3. コンピュータが実行する転送方法であって、
    パケットを一意に識別する第1識別番号が割り当てられたパケットを、宛先に順次送信し、所定時間毎に値が加算される第2識別番号を宛先に順次送信し、
    送信したパケットの第1識別番号と、該パケットが送信された時点の第2識別番号とを対応付けてテーブルに登録し、
    宛先に到達したパケットの第1識別番号と前記宛先に到達した第2識別番号のうち最も値の大きい第2識別番号を受信し、前記宛先から受信した最も値の大きい第2識別番号の値未満の第2識別番号に対応する第1識別番号を前記テーブルから特定し、特定した第1識別番号のうち、前記宛先に到達したパケットの第1識別番号と異なる値の第1識別番号を、前記宛先に再送するパケットの第1識別番号として判定し、
    判定結果を基にして、パケットを再送する
    各処理を実行する転送方法。
  4. 前記送信する処理は、所定時間毎に値が加算される第2識別番号を、該第2識別番号に値が加算された時点において、前記宛先に送信し、前記登録する処理は、パケットが送信される度に、当該パケットが送信された時点の第2識別番号と当該パケットの第1識別番号とを対応付けて前記テーブルに登録し、前記判定する処理は、前記宛先に到達した直近のパケットの第1識別番号を受信し、受信した第1識別番号は、前記宛先に到達しなかったパケットの第1識別番号を含まないことを特徴とする請求項3に記載の転送方法。
  5. パケットを一意に識別する第1識別番号が割り当てられたパケットを、宛先に順次送信し、所定時間毎に値が加算される第2識別番号を宛先に順次送信し、
    送信したパケットの第1識別番号と、該パケットが送信された時点の第2識別番号とを対応付けてテーブルに登録し、
    宛先に到達したパケットの第1識別番号と前記宛先に到達した第2識別番号のうち最も値の大きい第2識別番号を受信し、前記宛先から受信した最も値の大きい第2識別番号の値未満の第2識別番号に対応する第1識別番号を前記テーブルから特定し、特定した第1識別番号のうち、前記宛先に到達したパケットの第1識別番号と異なる値の第1識別番号を、前記宛先に再送するパケットの第1識別番号として判定し、
    判定結果を基にして、パケットを再送する
    各処理を実行させることを特徴とする転送プログラム。
  6. 前記送信する処理は、所定時間毎に値が加算される第2識別番号を、該第2識別番号に値が加算された時点において、前記宛先に送信し、前記登録する処理は、パケットが送信される度に、当該パケットが送信された時点の第2識別番号と当該パケットの第1識別番号とを対応付けて前記テーブルに登録し、前記判定する処理は、前記宛先に到達した直近のパケットの第1識別番号を受信し、受信した第1識別番号は、前記宛先に到達しなかったパケットの第1識別番号を含まないことを特徴とする請求項5に記載の転送プログラム。
JP2012199858A 2012-09-11 2012-09-11 転送装置、転送方法および転送プログラム Active JP6089518B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2012199858A JP6089518B2 (ja) 2012-09-11 2012-09-11 転送装置、転送方法および転送プログラム
EP13174461.7A EP2706698A3 (en) 2012-09-11 2013-07-01 Transfer device and transfer method using ARQ with Packet ID and several ARQ phases
US13/935,432 US9172654B2 (en) 2012-09-11 2013-07-03 Transfer device and transfer method
CN201310322902.2A CN103684681B (zh) 2012-09-11 2013-07-29 传输装置与传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012199858A JP6089518B2 (ja) 2012-09-11 2012-09-11 転送装置、転送方法および転送プログラム

Publications (2)

Publication Number Publication Date
JP2014057170A JP2014057170A (ja) 2014-03-27
JP6089518B2 true JP6089518B2 (ja) 2017-03-08

Family

ID=48700419

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012199858A Active JP6089518B2 (ja) 2012-09-11 2012-09-11 転送装置、転送方法および転送プログラム

Country Status (4)

Country Link
US (1) US9172654B2 (ja)
EP (1) EP2706698A3 (ja)
JP (1) JP6089518B2 (ja)
CN (1) CN103684681B (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103269260A (zh) * 2013-06-03 2013-08-28 腾讯科技(深圳)有限公司 数据传输方法、数据接收端、数据发送端和数据传输系统
WO2023058232A1 (ja) * 2021-10-08 2023-04-13 日本電信電話株式会社 通信システム、中間装置、通信方法、および、プログラム
US11683250B2 (en) * 2021-10-22 2023-06-20 Palo Alto Networks, Inc. Managing proxy throughput between paired transport layer connections

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5872777A (en) * 1997-09-30 1999-02-16 Motorola, Inc. Method and apparatus for conveying data packets in a packet data communication system
JP2002152308A (ja) * 2000-11-09 2002-05-24 Nec Corp データ通信システム、その通信方法及びその通信プログラムを記録した記録媒体
TW511340B (en) * 2000-12-12 2002-11-21 Elan Microelectronics Corp Method and system for data loss detection and recovery in wireless communication
EP1263159A1 (en) * 2001-06-01 2002-12-04 Telefonaktiebolaget Lm Ericsson Method and receiver for improved data packet transfer in a transmission protocol with repeat requests
JP3645230B2 (ja) * 2001-09-28 2005-05-11 三菱電機株式会社 データパケット送信装置、データパケット受信装置、データパケット伝送システムおよびデータパケット再送制御方法
US8855572B2 (en) * 2004-06-16 2014-10-07 Qualcomm Incorporated Method and apparatus for link control in wireless communications
US7882412B2 (en) * 2004-10-05 2011-02-01 Sanjiv Nanda Enhanced block acknowledgement
JP2008141633A (ja) 2006-12-05 2008-06-19 Sony Corp データ通信システム、データ受信装置、データ受信方法、データ送信装置およびデータ送信方法
EP2119085B1 (en) * 2007-01-24 2010-10-20 ViaSat, Inc. Enhanced error control communication systems and methods
JP2012114737A (ja) * 2010-11-25 2012-06-14 Sony Corp 受信装置、受信方法、プログラムおよび通信システム

Also Published As

Publication number Publication date
CN103684681A (zh) 2014-03-26
US20140071993A1 (en) 2014-03-13
CN103684681B (zh) 2017-10-17
EP2706698A2 (en) 2014-03-12
EP2706698A3 (en) 2014-04-16
JP2014057170A (ja) 2014-03-27
US9172654B2 (en) 2015-10-27

Similar Documents

Publication Publication Date Title
JP5935940B2 (ja) 通信方法、通信装置、および、通信プログラム
US7512072B2 (en) TCP/IP method FPR determining the expected size of conjestion windows
US9037935B2 (en) Apparatus and method for retransmitting message in message transmission system
JP5867188B2 (ja) 情報処理装置、輻輳制御方法および輻輳制御プログラム
US9832086B2 (en) Initiator apparatus, target apparatus, communication system, timeout detection method, and timeout detection program
EP2661029A1 (en) Avoiding Delayed Data
JP5941853B2 (ja) パケット通信方法及び装置
WO2011046056A1 (ja) パケット通信の伝送制御方法及びパケット通信システム
CN109981385B (zh) 一种实现丢包检测的方法、装置和系统
JP6089518B2 (ja) 転送装置、転送方法および転送プログラム
JP2018517992A (ja) ハイパーテキスト・トランスファ・プロトコル要求の再送方法及びデバイス並びにクライアント端末
KR101611663B1 (ko) 비연결 지향형 프로토콜을 이용한 데이터 통신
CN113259490B (zh) 基于udp传输协议的多级节点网络数据传输方法
JP5935602B2 (ja) 転送装置、転送方法および転送プログラム
JP2016162324A (ja) 情報処理システム、制御プログラム及び制御方法
CN113852445A (zh) 一种提高数据传输可靠性的方法、系统、设备和存储介质
JP5680978B2 (ja) 通信装置、通信方法、および、通信プログラム
US9172511B2 (en) Apparatus and method of communicating automatic repeat request (ARQ) feedback in a wireless communication network
JP2016019198A (ja) 通信装置、通信装置の制御方法、プログラム
JP2017034627A (ja) 通信制御システムおよび通信制御方法
JP6569450B2 (ja) 情報処理装置および情報処理システム
JP7363503B2 (ja) 情報処理装置、情報処理方法、および情報処理システム
JP2019047162A (ja) 情報処理システム、情報処理方法、プログラム、及び情報処理装置
CN117480767A (zh) 用于通过网络连接传输数据文件的数据包的方法和发送设备
JP2008107976A (ja) ネットワーク環境監視システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160809

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170123

R150 Certificate of patent or registration of utility model

Ref document number: 6089518

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150