JP5941853B2 - パケット通信方法及び装置 - Google Patents

パケット通信方法及び装置 Download PDF

Info

Publication number
JP5941853B2
JP5941853B2 JP2013023999A JP2013023999A JP5941853B2 JP 5941853 B2 JP5941853 B2 JP 5941853B2 JP 2013023999 A JP2013023999 A JP 2013023999A JP 2013023999 A JP2013023999 A JP 2013023999A JP 5941853 B2 JP5941853 B2 JP 5941853B2
Authority
JP
Japan
Prior art keywords
packets
packet
acknowledgment
communication device
discard rate
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
JP2013023999A
Other languages
English (en)
Other versions
JP2014155080A (ja
JP2014155080A5 (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2013023999A priority Critical patent/JP5941853B2/ja
Priority to US14/650,201 priority patent/US20150319064A1/en
Priority to PCT/JP2013/078895 priority patent/WO2014125680A1/ja
Publication of JP2014155080A publication Critical patent/JP2014155080A/ja
Publication of JP2014155080A5 publication Critical patent/JP2014155080A5/ja
Application granted granted Critical
Publication of JP5941853B2 publication Critical patent/JP5941853B2/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
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • 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
    • H04L1/1874Buffer management
    • H04L1/1877Buffer management for semi-reliable protocols, e.g. for less sensitive applications like streaming video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/20Arrangements for detecting or preventing errors in the information received using signal quality detector
    • H04L1/203Details of error rate determination, e.g. BER, FER or WER
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0053Allocation of signaling, i.e. of overhead other than pilot signals
    • H04L5/0055Physical resource allocation for ACK/NACK
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/08Testing, supervising or monitoring using real traffic

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Environmental & Geological Engineering (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

本発明は、パケット通信方法および装置に関する。
クラウドコンピューティング、通称クラウドでは、利用者は、利用者が存在する拠点ではなく外部のデータセンタの計算機資源を使用する。データもデータセンタに置かれるため、利用者の拠点とデータセンタ間でデータのやり取りが頻発することとなる。
データセンタの所在地は世界中に広がっており、常に同一国内にあるとは限らない。例えば、海外のデータセンタの方が、データセンタの利用料が安価である場合があり、海外のデータセンタも積極的に利用されている。
海外のデータセンタを利用する場合、データの転送が低速になる場合がある。海外との通信では、パケットが送信されてから応答が返されるまでの時間であるRound Trip Time (RTT)が大きい。その場合、通常の通信方式では通信速度が遅くなるという問題があった。
この問題に対して、特許文献1では、RTTと関係なく送信データ量を制御することにより、高速な通信を実現している。この方式では、パケット廃棄率の変化を観測することにより、送信データ量を制御している。また、本方式において、パケット廃棄率の測定には、この方式に対応している送信装置と受信装置との間で送受信されるNACK(Negative ACKnowledgement)等の情報が用いられる。
また、特許文献2では、パケット廃棄率の測定方法として、品質測定用のパケットを利用している。まず、受信プローブが、送信プローブから受信した品質測定用パケットにパケット受信カウンタを付与して送信プローブに返信する。続いて、送信プローブが、受信した品質測定用パケットから受信パケット数を抽出し、全ての品質測定用パケットを受信した後、パケット送信カウンタとパケット受信カウンタとの差分、および抽出されたパケット受信カウンタとパケット返信カウンタとの差分を求め、パケット損失率(パケット廃棄率)を算出している。
WO2012/066824 特開2008−85906号公報
IETF RFC 1122 "Requirements for Internet Hosts -- Communication Layers" 4.2.3.2 When to Send an ACK Segment http://tools.ietf.org/html/rfc1122 IETF RFC 2018 "TCP Selective ACKnowledgment Options" 3. Sack Option Format http://tools.ietf.org/html/rfc2018
特許文献1では、パケット廃棄率の変化を観測することにより、送信データ量を制御することで、高速な通信を実現している。しかし、送信側及び受信側の双方の通信端末が、データの受信確認にNACKを用いる等、特許文献1の通信方式に対応している必要がある。しかし、すべての通信端末が、この通信方式に対応しているわけではないため、例えば、非特許文献1や非特許文献2のような一般的な通信方式を用いる端末との通信も発生する。従って、特許文献1の通信方式に対応していない端末との通信において、パケット廃棄率の変化に基づいた送信データ量の制御を行うためには、一般的な通信方式で得られる情報を用いて、パケット廃棄率を測定する必要がある。
また、特許文献2のパケット廃棄率の測定方法では、パケットに特殊な情報を埋め込む必要があるため、送信端末、受信端末の双方が当該方式に対応している必要がある。一方で通信相手が一般的なシステムであった場合、このような情報が埋め込まれることはないため、正確な廃棄率の測定は困難である。
そこで、本発明は、一般的な通信プロトコルに含まれる情報のみを用いて、パケット廃棄率を求めることを目的とする。
上記目的を達成するために、本発明の一つの観点から、ネットワークに接続される通信装置が提供される。当該通信装置は、他の通信装置にネットワークを介してパケットを送信する送信部と、他の通信装置から、送信部より送信されたパケットに対する選択的確認応答の情報と確認応答の情報とを含む確認応答パケットを、ネットワークを介して受信する受信部と、送信部より送信されたパケットの数である送信パケット数を求めるパケットカウント部と、送信パケット数と確認応答及び選択的確認応答の情報とに基づいて、所定期間における送信部から送信されたパケットの廃棄率を求める廃棄率測定部と、を有する。
より好ましくは、パケットカウント部は、確認応答及び選択的確認応答の情報に基づいて、送信部から送信されたパケットのうち再送要求されたパケットの数である再送要求パケット数を求め、廃棄率測定部は、送信パケット数と再送要求パケット数とに基づいて、前記廃棄率を求める。
また、パケットカウント部は、受信部が受信した確認応答パケットの数である確認応答パケット数、及び、受信部が受信した確認応答パケットのうち、選択的確認応答の情報が該確認応答パケットの直前に受信した確認応答パケットの選択的確認応答の情報と一致する確認応答パケットの数である重複パケット数、を求め、廃棄率測定部は、送信パケット数と確認応答パケット数と重複パケット数とに基づいて、前記廃棄率を求める。
さらに好ましくは、廃棄率測定部は、廃棄率の高さに応じて廃棄率の求め方を変更する。
本発明の別の観点によれば、通信装置からネットワークに送出されたパケットの廃棄率を測定するパケット廃棄率測定方法が提供される。当該パケット廃棄率測定方法は、通信装置からネットワークに送出されたパケットの数である送信パケット数を求め、送信パケット数と、通信装置がネットワークを介して受信した確認応答パケットに含まれる確認応答及び前記選択的確認応答の情報と、に基づいて、所定期間における通信装置からネットワークに送出されたパケットの廃棄率を求める。
より好ましくは、確認応答及び選択的確認応答の情報に基づいて、ネットワークに送出されたパケットのうち再送要求されたパケットの数である再送要求パケット数を求め、送信パケット数と再送要求パケット数とに基づいて、廃棄率を求める。
また、通信装置が受信した確認応答パケットの数である確認応答パケット数、及び、通信装置が受信した確認応答パケットのうち、選択的確認応答の情報が該確認応答パケットの直前に受信した確認応答パケットの選択的確認応答の情報と一致する確認応答パケットの数である重複パケット数を求め、送信パケット数、確認応答パケット数、及び、重複パケット数に基づいて、廃棄率を求める。
さらに好ましくは、廃棄率の高さに応じて廃棄率の求め方を変更する。
本発明によれば、一般的な通信プロトコルを用いる場合であっても、正確なパケット廃棄率の測定が可能となる。
本発明における送信端末の機能ブロック図である。 本発明の第1の実施例における送信端末のハードウェア構成図である。 本発明の第1の実施例における送信端末の機能ブロック図である。 本発明の第1の実施例における通信シーケンスの例である。 SACKのパケットフォーマットである。 本発明の第1の実施例におけるパケットカウント部のフローチャートである。 本発明におけるプロキシ装置のハードウェア構成図である。 本発明におけるプロキシ装置の機能ブロック図である。 本発明の第2の実施例における通信シーケンスである。 本発明の第2の実施例における送信端末の機能ブロック図である。 本発明の第2の実施例におけるパケットカウント部のフローチャートである。 本発明の第3の実施例における廃棄率計算部のフローチャートである。 本発明の第3の実施例におけるパケットカウント部のフローチャートである。 本発明の第4の実施例における送信端末の機能ブロック図である。 本発明の第4の実施例におけるパケットカウント部のフローチャートである。 本発明の第5の実施例における送信制御部の機能ブロック図である。 本発明の第5の実施例における送信制御部のフローチャートである。
図2は本発明の第1の実施例のシステム構成図および送信端末1におけるハードウェア構成図である。送信端末1は少なくともネットワークインターフェース(以下NIF)10、プログラムおよびデータを一時的に記憶しデータの読み書きが行われる主記憶25、プログラムおよびデータを長期的に保存し必要に応じて主記憶25へロードするデータ格納装置26、主記憶25上のプログラムを実行し主記憶25上のデータを処理し結果を主記憶25へ書き込む処理装置27、およびそれらを相互に接続しデータを転送するシステムバス28からなる。主記憶25は独自TCP機能3、アプリケーションプログラム18、アプリケーションデータ19などを記憶する。アプリケーションプログラム18はアプリケーションデータ19を用いて処理装置27で実行され、独自TCP機能3を用いて送信データを制御する。独自TCP機能3は前述の送信データをNIF10に送り、NIF10がWAN4に前述の送信データを送信する。なお図2では独自TCP機能3がすべてソフトウェアにより構成されている例を示したが、独自TCP機能3の一部またはすべてを処理装置27またはNIF10に実装し、これを用いることも可能である。
図3は本発明の第1の実施例の送信端末1におけるデータの送受信及びパケット廃棄率測定機能3に関する機能ブロック図である。送信端末は、NIF10、アプリケーションプログラム18および独自TCP機能3からなる。独自TCP機能3はさらに、NIF10よりWAN4にデータを送信する送信部11、送信部11から送信されるデータ量や順序を制御する送信制御部17、アプリケーションプログラム18から送信されるデータを、一時的にバッファリングするとともにパケット廃棄が起こった時に再送するために保持し、必要なデータを送信部へ渡す送信バッファ12、WAN4からNIF10に届いたデータを受信する受信部13、受信部13が受信したデータの順序等の整合性を確認しアプリケーションプログラム18へ渡す受信バッファ14、パケットカウント部15、および廃棄率計算部16からなる。
また、送信パケット数はパケットカウント部のsndカウンタ20にてカウントされる。受信された確認応答(Acknowledgement: ACK)およびACKに付随する部分的確認応答(Selective Acknowledgement: SACK)の情報はパケットカウント部15にて解析され、再送要求されたパケット数(廃棄されたパケット数)がrtsカウンタ21にてカウントされる。
この値をもとに、廃棄率計算部16は廃棄率を、送信パケット数snd及び再送要求されたパケット数rtsを用いて、loss_ratio = rts / sndとして計算する。この計算は任意の時間間隔にて行われ、計算後はsndカウンタ20およびrtsカウンタ21の値が0に戻される。廃棄率の計算結果は送信制御部11に渡され、送信データ量が調整される。
別の計算方法として、ACKパケット数ackは正しく受信されたパケット数を示すため、廃棄率は正しく受信された確率を1から引いた値として、loss_ratio = 1 - ack / sndとして計算することもできる。しかし、RFC 1122(非特許文献1)によれば、ACKパケットは間引いて送信することができるため、ACKパケットが間引かれて送信されている場合はこの計算方法は必ずしも正確な値とならない。
図4は本発明の第1の実施例における通信シーケンスの例である。ここではTCPの使用を想定するが、確認応答を用いる方式であればその限りではない。送信端末1はシーケンス番号「600」のパケットを送信する(101)。受信端末2はパケットが正しく受信されたため、確認応答(ACK)として、次に受信すべきシーケンス番号としてACK番号「700」を送信端末1に通知する(109)。
送信端末1は前記ACKが返ってくるまでにシーケンス番号「700」のパケット(102)および「800」のパケット(103)を送信しており、これらも受信端末2により正しく受信される。ここで、受信端末2はRFC 1122に規定されるDelayed ACKを用いており、ACKを間引いて送信する。そのため、シーケンス番号「700」のパケットを受信してもACKは送信せず、シーケンス番号「800」のパケットを受信するとACK番号「900」を送信する(110)。シーケンス番号「900」のパケット(104)および「1000」のパケット(105)に関しても同様に、受信端末2はACK番号「1000」のみを送信する(111)。
続くシーケンス番号「1100」のパケット(106)がネットワーク中で破棄されたとする。このパケットは受信端末2には受信されないこととなる。さらに後続のシーケンス番号「1200」のパケット(107)が正しく受信され、受信端末2の保持するパケットに歯抜けが生じる。このときRFC 2018(非特許文献)によれば、受信端末2は、部分的な確認応答であるSACKを送信する。SACKはACKに付随する情報であり、受信端末2が保持しているパケットのうち、不連続になっている部分の始端と終端を示す。ここでは、ACK番号「1100」に加えて、SACKブロック「1200-1300」が送信端末1に通知される(112)。
続いて受信端末1がシーケンス番号「1300」のパケット(108)を受信すると、ACK番号「1100」SACKブロック「1200-1400」が送信端末1に通知される(113)。送信端末1はこのSACKより、ネットワークで破棄されたパケットを知ることができ、その部分のみを再送する。
図5はSACKのパケットフォーマットである。SACKはTCPヘッダ201のオプションフィールド202に付加され、何もしないことを示すNOP (No Operation)203を挟んで、種別204、長さ205に続いて第1ブロックの始端(SACK Left Edge: SLE)206と終端(SACK Right Edge: SRE)207を指定する。複数のブロックを通知する場合は、同様にそれ以降のブロックの始端(208,210,212)と終端(209,211,213)を指定する。オプション長の制限により、最大で4ブロックを送ることができる。複数のパケットが廃棄された場合は、複数のSACKブロックが通知されることとなる。過去に通知済みのSACKブロックも、最新の4つが通知される。
SACKが発生した後、続くパケットが正しく受信されると、前記SACKブロックの終端が増加する。一方で続くパケットが廃棄されると、前記SACKブロックに加えて別のSACKブロックが新たに通知される。これを新規SACKブロックと呼ぶこととする。逆に言えば、新規SACKブロックが通知された場合、廃棄が発生したことが分かる。具体的には、新規SACKブロックが通知された時、その始端の値から、それまでに通知されたACKまたはSACKブロックの終端のうち最も近いものとの差が廃棄されたセグメント数となる。廃棄されたパケット数は前記セグメント数をパケットサイズで割った値となる。
図6は本発明の第1の実施例におけるパケットカウント部における処理のフローチャートである。パケットカウント部は新規SACKブロックを受信すると(301)、前述した方法により廃棄パケット数を計算し、rtsをカウントアップする(302)。
本実施例では送信端末1に独自TCP機能3が内蔵される例を示したが、送信端末1に独自TCP機能3を実装できない場合、図7のように送信端末1と同一のLocal Area Network (LAN)46内に独自TCP機能3を含むプロキシ装置5を設置し、利用することができる。図7はプロキシ装置5のハードウェア構成図である。送信端末1に独自TCP機能3を含む場合との違いは、送信端末1と接続するためにLAN46用のNIF40が追加されている点である。図7においても、独自TCP機能3がすべてソフトウェアにより構成されている例を示したが、独自TCP機能3の一部またはすべてを処理装置27またはNIF10に実装し、これを用いることも可能である。
前述のプロキシ装置の機能ブロック図を図8に示す。このプロキシ装置5にはLAN側NIF40、送信端末1と通信を行うための一般TCP機能6およびWAN4と接続するNIF10、WAN4を介して受信端末2と通信を行う独自TCP機能3、ならびに、独自TCP機能3と一般TCP機能6のバッファ間でデータを転送するプロキシ29も含まれる。
本実施例および以降の実施例において、説明の簡略化のため送信端末1内に独自TCP機能3が内蔵される場合のみを説明するが、プロキシ装置を用いる場合も、独自TCP機能3に各実施例と同様のものを用いれば、同様の効果が得られる。
第2の実施例では、パケット廃棄率が高く、SACKブロックが大量に発生している場合を想定している。このとき、受信端末2が新規パケットを受信中にさらなるパケット廃棄が発生すると、新たなSACKブロックが発生することとなる。しかし、一般的な実装では、SACKブロックの記憶領域には容量の制限があり、一定の個数で限界を迎える。その場合の動作は2通り考えられ、受信端末2がACKを返さない場合と、SACK付きのACKを返すが全てのSACKブロックが変化しない場合である。
また、前述のSACKブロック数が限界となっているとき一部のパケットが再送され、SACKブロック数が一定数を下回った場合、それまでに送られた新規パケットは、前述のSACKブロック数が限界となっているため破棄されるが、その後に送られた新規パケットは、新たなSACKブロックが作成可能な状態となっているため受信され、新規SACKブロックが発生する。このとき、実施例1の方法では、rtsとして計算される値が非常に大きくなる。一定間隔で計算を行う場合には、前回区間で発生した廃棄が今回区間でのrtsに計上されてしまい、rtsがsndを上回る可能性がある。よって正確な廃棄率の測定が行われない。
図9は本発明の第2の実施例における通信シーケンスである。受信端末2がSACK付きのACKを返すが、全てのSACKブロックが変化しない場合を示している。送信端末1が受信端末2にシーケンス番号「600」のパケット(121)を送信しているが、これ以前のパケット送信ですでに大量の廃棄が発生しており、受信端末2はACK番号「100」SACK番号「400-500, …」を送信端末1に通知していたとする。また、シーケンス番号「600」のパケット(121)を受信した時点で受信端末2の廃棄記憶領域が限界に達したとする。受信端末2はACK番号「100」SACK番号「600-700, 400-500, …」を送信端末1に通知する(128)。
その間に、送信端末1はシーケンス番号「700」のパケットを送信する(122)。このパケットがネットワーク中で廃棄される。また、送信端末1はシーケンス番号「800」のパケットを送信し(123)、これは受信端末2に届く。本来なら新たなSACKブロックが生成されるが、SACKブロックの記憶領域には容量の制限があるため、受信端末2は新たなSACKブロックを保持することができず、直前のACKパケットと同様に、ACK番号「100」SACK番号「600-700, 400-500, …」を送信端末1に通知する(129)。シーケンス番号「900」のパケット(124)に対しても等しいACKおよびSACKを返す(130)。以降、シーケンス番号「2900」までのパケットを送信し、すべて受信端末2にて破棄されたとする。
その後、送信端末1がシーケンス番号「500」のパケットを再送する(125)。これによりSACKブロックの「400-500」および「600-700」がつながり、新たに「400-700」となるので、これを通知する(131)。受信端末2が保持するSACKブロック数が減少するため、新たなパケットを受信することが可能となる。
ここで、送信端末1が新たなパケット「3000」を送信する(126)。これを受信端末2が受信し、新たなSACKブロック「3000-3100」が通知される(132)。シーケンス番号「3100」のパケット(127)も正しく受信され、SACK番号「3000-3200」が返される(133)。
ここで、図9のようにsndのカウント区間(134)およびrtsのカウント区間(135)をRTTごとに設定する。このとき、snd = 3となるが、新しく受信されたSACKの値より、rts = (3000 - 700)/100 = 23となり、実施例1の方式では廃棄率の計算値が1を超えてしまう。しかし他の区間で同様に計算すると、snd = 3となるが、新たなSACKブロックが通知されないためrts = 0となり、受信端末が受信していないにもかかわらず廃棄率を0と計算してしまう。
これに対応するため、第2の実施例では、図10のような機能ブロック図で表される構成をとる。実施例1との差は、パケットカウント部15のカウンタから、再送要求数をカウントするrtsカウンタ21が無くなり、ACKパケット数をカウントするackカウンタ22、SACKブロックの情報が完全に重複したACKパケット数をカウントするsack.dupカウンタ23、ならびに前回のACKパケットにおけるSACKブロックを記憶する記憶部24が、新たにパケットカウント部15に追加されている点である。記憶部24は第一〜第四ブロックの始端(SLE1〜4)30,32,34,36、第一〜第四ブロックの終端(SRE1〜4)31,33,35,37を記憶する。
図11は本発明の第2の実施例におけるパケットカウント部15のフローチャートである。ACKを受信(311)するたびにackを1増加し(312)、SACK付きパケットであれば(313)、記憶部24から一つ前に受信したSACKの値を読み出し(314)、SACKの値が一つ前に受信したSACKの値とすべて等しければ(315)sack.dupを1増加する(316)。そうでなければ、SACKブロックの値を前回SACKブロックに記録して(317)先頭に戻る。
この結果をもとに、廃棄率計算部16は廃棄率を計算する。廃棄率は正しく受信された確率を1から引いた値として求める。ただし記憶容量の制限により受信端末で破棄されたパケットは、送っても受信されないパケットであるため、正しく受信されたパケット数から除外する。よって、廃棄率はloss_ratio = 1 - (ack - sack.dup) / sndとして計算する。本計算式はACKを返さない場合と、SACK付きのACKを返すが全てのSACKブロックが変化しない場合の双方に対応している。
実施例1の方法が高廃棄の場合に適さないことは実施例2中に記した。一方で実施例2の方法は低廃棄の場合に適さない。なぜなら、RFC 1122によれば、ACKパケットは間引いて送信することができるが、実施例2に記載の方法は、ACKパケット数を用いて廃棄率を求めるため、ACKパケットを間引いてしまうと正確な値を求めることができなくなるためである。
よって、低廃棄時又は高廃棄時のどちらであっても、廃棄率を正確に測定するには、これらの式を切り替えて用いることが有効である。本来、送信パケット数snd、ACKパケット数ackおよび再送要求パケット数rtsの間にはsnd = ack + rtsなる関係が成立するはずである。よって、例えば、この関係をもとに計算式の切り替えを行う。
図12は本発明の第3の実施例における廃棄率計算部16のフローチャートである。廃棄率の計算はRTTごとに行う(401)。低廃棄の場合、RFC 1122によりACKパケットが間引かれ、snd > ack + rtsとなる。よってsnd > ack + rtsの場合(402)は実施例1と同様に廃棄率をloss_ratio = rts / sndとして計算する(403)。一方高廃棄時は、ACKが間引かれることがない一方で、rtsの値がsndよりも大きくなる場合があるので、snd <= ack + rtsとなる。この場合は実施例2と同様にloss_ratio = 1 - (ack - sack.dup) / sndとして計算する(404)。
図1は本発明の第3の実施例における機能ブロック図である。実施例2との差は、パケットカウント部15に、rtsのカウンタ21が追加されている点である。
図13は本発明の第3の実施例におけるパケットカウント部15のフローチャートである。これは実施例1および実施例2のフローチャートを組み合わせたものである。ACKを受信(311)するたびにackを1増加し(312)、SACK付きパケットであれば(313)、記憶部24から一つ前に受信したSACKの値を読み出し(314)、SACKの値が一つ前に受信したSACKの値とすべて等しければ(315)sack.dupを1増加する(316)。そうでなければ、新規SACKブロックであるかどうかを判断し(301)、新規SACKブロックであれば、「SACKされなかった、つまり受信確認されなかったセグメント数÷パケット長」により廃棄パケット数を計算し、rtsをカウントアップする(302)。SACKブロックの値を記憶部24に記録して(317)先頭に戻る。
前記実施例1〜3よりも統一的な方法で正確に廃棄率を測定する方法として、ACKまたはSACKにより新規に受信確認されたセグメント数を数える方法がある。この場合の機能ブロック図を図14に示す。実施例1〜3との差は、パケットカウント部15のカウンタが、sndカウンタ20および実際にACKまたはSACKされたパケット数をカウントするack.realカウンタ25となっている点である。また、前回のSACKブロックを記憶する記憶部24から構成される。
図15は本発明の第4の実施例におけるパケットカウント部15のフローチャートである。パケットカウント部15はACKを受信(311)するたびACK番号が進んだかどうかを判断し(321)、進んでいない場合は記憶部24から一つ前に受信したSACKの値を読み出し(314)、SACKブロックのうち始端の番号が小さくなるか、終端の番号が大きくなるか、あるいは2つ以上のブロックがつながっていないかを判断する(322)。ACKまたはSACKに変化が見られた場合は、そのセグメント数を計算してパケット長で割り、新規に受信端末2に受信されたパケット数を計算する(323)。この値をack.realに計上する(324)。SACKブロックの値を記憶部24に記録して先頭に戻る(317)。
廃棄率計算部16は、廃棄率をloss_ratio = 1 - ack.real / sndとして計算する。
この方法では、実施例1〜3よりも統一的な方法で正確に廃棄率を測定することができるため、送信端末1の計算能力に余裕がある場合は、この方式が有効である。
(上記の廃棄率測定方法を用いて帯域制御方法)
本実施例では、実施例1〜4のいずれかにより求めた廃棄率を用いて、送信帯域を制御する方法を示す。また、本実施例の方法は、独自TCP機能3が送信端末1に内蔵される場合でも、プロキシ装置5を用いる場合でも適用可能である。
図16は送信制御部17の機能ブロック図である。本実施例における送信制御はトークンバケツアルゴリズムによって行われる。トークンバケツアルゴリズムでは、トークンバケツに単位時間当たり決められた量のトークンが蓄積されていき、これが送信パケット長に達するとパケットを送信することができる。パケットを送信すると、パケット長分のトークンがトークンバケツから減らされる。
そのため、送信制御部17はトークンバケツ329およびタイマ330を持ち、また、トークンの計算に必要な値を記憶する記憶部332およびトークンを計算するトークン更新部331を持つ。記憶部には廃棄率計算部16により計算された廃棄率を保持するloss_ratio記憶部333、トークンが更新される以前のloss_ratio値を記憶するold_loss_ratio記憶部334、次回のトークン更新時刻の基準となる時刻を記憶する基準時刻記憶部335、現在のトークンの値を記憶するtoken記憶部336、トークンが更新される以前のtokenの値を記憶するold_token記憶部337、tokenの値をold_tokenに移す時に一時的に記憶しておくtmp_token記憶部338、およびトークンが更新される以前のACK番号を記憶するold_ack_seg記憶部339からなる。
図17は送信制御部17の動作を示すフローチャートである。まずタイマ330にて、現在時刻と基準時刻との差が、あらかじめ決められたインターバルより大きいかどうか判断する(340)。インターバルとして、計測されたRTT等を用いてもよい。現在時刻と基準時刻との差がインターバルよりも大きい場合はloss_ratioに廃棄率計算部16から取得した廃棄率を保存する(341)。また、tmp_tokenにtokenの値を退避させる(342)。
次にACK未確認データの先頭シーケンス番号が変化しているか調べる(343)。変化していた場合はバッファに未送信データがあるかどうかチェックし(344)、未送信データがある場合にはtokenをACK受信量に設定する。
343にてシーケンス番号が進んでいた場合は、あらかじめ決められた1以上の定数Kに対してold_loss_ratioのK倍がloss_ratioよりも大きいか調べる(348)。大きかった場合は、tokenをold_tokenよりも小さくなるよう、rtsに基づいて減少させる。例えば、token ← old_token - rtsとする(349)。348でold_loss_ratioのK倍がloss_ratioよりも小さかった場合はtokenを任意の量だけ増加させる(350)。
345、349、350の後、loss_ratioをold_loss_ratioに、tmp_tokenをold_tokenに、および現在のACK番号をold_ack_segに代入し(346)、基準時刻の更新(347)およびトークンバケツ329の更新(348)を行う。
1 送信端末
2 受信端末
3 独自TCP機能
4 WAN
5 プロキシ装置
6 一般TCP機能
10 NIF
11 送信部
12 送信バッファ
13 受信部
14 受信バッファ
15 パケットカウント部
16 廃棄率計算部
17 送信制御部
20 送信パケット数カウンタ
21 再送要求パケット数カウンタ
22 確認応答パケット数カウンタ
23 重複部分的確認応答パケット数カウンタ
24 記憶部
25 実際に受信されたパケット数カウンタ
29 プロキシ
40 LAN側NIF
41 LAN側受信部
42 LAN側受信バッファ
43 LAN側送信部
44 LAN側送信バッファ
45 LAN側制御部
46 LAN

Claims (13)

  1. ネットワークに接続される通信装置であって、
    他の通信装置に前記ネットワークを介してパケットを送信する送信部と、
    前記他の通信装置から、前記送信部より送信されたパケットに対する選択的確認応答の情報と確認応答の情報とを含む確認応答パケットを、前記ネットワークを介して受信する受信部と、
    前記送信部より送信されたパケットの数である送信パケット数を求めるパケットカウント部と、
    前記送信パケット数と前記確認応答及び前記選択的確認応答の情報とに基づいて、所定期間における前記送信部から送信されたパケットの廃棄率を求める廃棄率測定部と、を有し、
    前記パケットカウント部は、前記受信部が受信した確認応答パケットの数である確認応答パケット数、及び、前記受信部が受信した確認応答パケットのうち、前記選択的確認応答の情報が該確認応答パケットの直前に受信した確認応答パケットの前記選択的確認応答の情報と一致する前記確認応答パケットの数である重複パケット数、を求め、
    前記廃棄率測定部は、前記送信パケット数と前記確認応答パケット数と前記重複パケット数とに基づいて、前記廃棄率を求めること、を特徴とする通信装置。
  2. 請求項1に記載の通信装置であって、
    前記パケットカウント部は、前記確認応答及び前記選択的確認応答の情報に基づいて、前記送信部から送信されたパケットのうち再送要求されたパケットの数である再送要求パケット数を求め、
    前記廃棄率測定部は、前記送信パケット数と前記再送要求パケット数とに基づいて、前記廃棄率を求めること、を特徴とする通信装置。
  3. ネットワークに接続される通信装置であって、
    他の通信装置に前記ネットワークを介してパケットを送信する送信部と、
    前記他の通信装置から、前記送信部より送信されたパケットに対する選択的確認応答の情報と確認応答の情報とを含む確認応答パケットを、前記ネットワークを介して受信する受信部と、
    前記送信部より送信されたパケットの数である送信パケット数を求めるパケットカウント部と、
    前記送信パケット数と前記確認応答及び前記選択的確認応答の情報とに基づいて、所定期間における前記送信部から送信されたパケットの廃棄率を求める廃棄率測定部と、を有し、
    前記廃棄率測定部は、前記確認応答パケットを返さない場合、選択的確認応答パケットを変化させない場合、又は確認応答パケットを間引いて送信する場合に、前記廃棄率の求め方を変更すること、を特徴とする通信装置。
  4. ネットワークに接続される通信装置であって、
    他の通信装置に前記ネットワークを介してパケットを送信する送信部と、
    前記他の通信装置から、前記送信部より送信されたパケットに対する選択的確認応答の情報と確認応答の情報とを含む確認応答パケットを、前記ネットワークを介して受信する受信部と、
    前記送信部より送信されたパケットの数である送信パケット数を求めるパケットカウント部と、
    前記送信パケット数と前記確認応答及び前記選択的確認応答の情報とに基づいて、所定期間における前記送信部から送信されたパケットの廃棄率を求める廃棄率測定部と、を有し、
    前記パケットカウント部は、前記受信部が受信した確認応答パケットの数である確認応答パケット数と、前記確認応答及び前記選択的確認応答の情報に基づいて前記送信部から送信されたパケットのうち再送要求されたパケットの数である再送要求パケット数と、を求め、
    前記廃棄率測定部は、前記送信パケット数と、前記再送要求パケット数と、前記確認応答パケット数との関係に応じて、前記廃棄率の求め方を変更すること、を特徴とする通信装置。
  5. 請求項に記載の通信装置であって、
    前記廃棄率測定部は、前記送信パケット数が前記確認応答パケット数と前記再送要求パケット数との合計よりも大きい場合、前記送信パケット数と前記再送要求パケット数とに基づいて、前記廃棄率を求める
    こと、を特徴とする通信装置。
  6. 請求項に記載の通信装置であって、
    前記パケットカウント部は、前記受信部が受信した確認応答パケットのうち、前記選択的確認応答の情報が該確認応答パケットの直前に受信した確認応答パケットの前記選択的確認応答の情報と一致する前記確認応答パケットの数である重複パケット数を求め、
    前記廃棄率測定部は、前記送信パケット数が前記確認応答パケット数と前記再送要求パケット数との合計よりも小さい場合、前記送信パケット数と前記確認応答パケット数と前記重複パケット数とに基づいて、前記廃棄率を求めること、を特徴とする通信装置。
  7. 請求項1に記載の通信装置であって、
    前記パケットカウント部は、確認応答パケットに含まれる前記確認応答及び前記選択的確認応答の情報と、該確認応答パケットの直前に前記受信部が受信した確認応答パケットに含まれる前記確認応答及び前記選択的確認応答の情報との差分から、前記他の通信装置が受信したパケットの数である受信パケット数を求め、
    前記廃棄率測定部は、前記送信パケット数と前記受信パケット数とに基づいて前記廃棄率を求めること、を特徴とする通信装置。
  8. ネットワークに接続される通信装置であって、
    他の通信装置に前記ネットワークを介してパケットを送信する送信部と、
    前記他の通信装置から、前記送信部より送信されたパケットに対する選択的確認応答の情報と確認応答の情報とを含む確認応答パケットを、前記ネットワークを介して受信する受信部と、
    前記送信部より送信されたパケットの数である送信パケット数を求めるパケットカウント部と、
    前記送信パケット数と前記確認応答及び前記選択的確認応答の情報とに基づいて、所定期間における前記送信部から送信されたパケットの廃棄率を求める廃棄率測定部と、
    前記廃棄率の変化に応じて、パケットを前記他の通信装置に送信するための帯域を制御する帯域制御部と、を更に有し、
    前記送信部は、前記制御された帯域に従ってパケットを送信すること、を特徴とする通信装置。
  9. 通信装置からネットワークに送出されたパケットの廃棄率を測定するパケット廃棄率測定方法であって、
    前記通信装置から前記ネットワークに送出されたパケットの数である送信パケット数を求め、
    前記送信パケット数と、前記通信装置が前記ネットワークを介して受信した確認応答パケットに含まれる確認応答及び前記選択的確認応答の情報と、に基づいて、所定期間における前記通信装置から前記ネットワークに送出されたパケットの廃棄率を求め
    前記通信装置が受信した確認応答パケットの数である確認応答パケット数、及び、前記通信装置が受信した確認応答パケットのうち、前記選択的確認応答の情報が該確認応答パケットの直前に受信した確認応答パケットの前記選択的確認応答の情報と一致する確認応答パケットの数である重複パケット数を求め、
    前記送信パケット数、前記確認応答パケット数、及び、前記重複パケット数に基づいて、前記廃棄率を求めること、を特徴とするパケット廃棄率測定方法。
  10. 請求項に記載のパケット廃棄率測定方法であって、
    前記確認応答及び前記選択的確認応答の情報に基づいて、前記ネットワークに送出されたパケットのうち再送要求されたパケットの数である再送要求パケット数を求め、
    前記送信パケット数と前記再送要求パケット数とに基づいて、前記廃棄率を求めること、を特徴とするパケット廃棄率測定方法。
  11. 通信装置からネットワークに送出されたパケットの廃棄率を測定するパケット廃棄率測定方法であって、
    前記通信装置から前記ネットワークに送出されたパケットの数である送信パケット数を求め、
    前記送信パケット数と、前記通信装置が前記ネットワークを介して受信した確認応答パケットに含まれる確認応答及び前記選択的確認応答の情報と、に基づいて、所定期間における前記通信装置から前記ネットワークに送出されたパケットの廃棄率を求め、
    前記確認応答パケットを返さない場合、選択的確認応答パケットを変化させない場合、又は確認応答パケットを間引いて送信する場合に、前記廃棄率の求め方を変更すること、を特徴とするパケット廃棄率測定方法。
  12. 通信装置からネットワークに送出されたパケットの廃棄率を測定するパケット廃棄率測定方法であって、
    前記通信装置から前記ネットワークに送出されたパケットの数である送信パケット数を求め、
    前記送信パケット数と、前記通信装置が前記ネットワークを介して受信した確認応答パケットに含まれる確認応答及び前記選択的確認応答の情報と、に基づいて、所定期間における前記通信装置から前記ネットワークに送出されたパケットの廃棄率を求め、
    前記通信装置が受信した確認応答パケットの数である確認応答パケット数と、前記確認応答及び前記選択的確認応答の情報に基づいて前記通信装置から送信されたパケットのうち再送要求されたパケットの数である再送要求パケット数と、を求め、
    前記送信パケット数と、前記再送要求パケット数と、前記確認応答パケット数との関係に応じて、前記廃棄率の求め方を変更すること、を特徴とする廃棄率測定方法。
  13. 通信装置からネットワークに送出されたパケットの廃棄率を測定するパケット廃棄率測定方法であって、
    前記通信装置から前記ネットワークに送出されたパケットの数である送信パケット数を求め、
    前記送信パケット数と、前記通信装置が前記ネットワークを介して受信した確認応答パケットに含まれる確認応答及び前記選択的確認応答の情報と、に基づいて、所定期間における前記通信装置から前記ネットワークに送出されたパケットの廃棄率を求め、
    前記廃棄率の変化に応じて、パケットを前記通信装置から前記ネットワークに送信するための帯域を制御し、
    前記制御された帯域に従って前記通信装置がパケットを送信すること、を特徴とするパケット廃棄率測定方法。
JP2013023999A 2013-02-12 2013-02-12 パケット通信方法及び装置 Expired - Fee Related JP5941853B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013023999A JP5941853B2 (ja) 2013-02-12 2013-02-12 パケット通信方法及び装置
US14/650,201 US20150319064A1 (en) 2013-02-12 2013-10-25 Packet communication method and device
PCT/JP2013/078895 WO2014125680A1 (ja) 2013-02-12 2013-10-25 パケット通信方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013023999A JP5941853B2 (ja) 2013-02-12 2013-02-12 パケット通信方法及び装置

Publications (3)

Publication Number Publication Date
JP2014155080A JP2014155080A (ja) 2014-08-25
JP2014155080A5 JP2014155080A5 (ja) 2015-09-10
JP5941853B2 true JP5941853B2 (ja) 2016-06-29

Family

ID=51353699

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013023999A Expired - Fee Related JP5941853B2 (ja) 2013-02-12 2013-02-12 パケット通信方法及び装置

Country Status (3)

Country Link
US (1) US20150319064A1 (ja)
JP (1) JP5941853B2 (ja)
WO (1) WO2014125680A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104135395B (zh) * 2014-03-10 2015-12-30 腾讯科技(深圳)有限公司 Idc网络中数据传输质量监控方法和系统
US9654483B1 (en) * 2014-12-23 2017-05-16 Amazon Technologies, Inc. Network communication rate limiter
US11102273B2 (en) * 2015-05-13 2021-08-24 Cisco Technology, Inc. Uplink performance management
US10396939B2 (en) * 2017-05-22 2019-08-27 Zycada Networks, Inc. Dynamic management of packet loss
US11678332B2 (en) * 2017-08-22 2023-06-13 Qualcomm Incorporated Control and data multiplexing in uplink wireless transmissions
EP3701657B1 (en) * 2017-10-27 2022-08-03 Telefonaktiebolaget LM Ericsson (PUBL) Method and device for updating the number of retransmissions in a wireless mesh network
US11044184B2 (en) * 2019-05-28 2021-06-22 Servicenow, Inc. Data packet loss detection
US11456938B2 (en) * 2019-09-25 2022-09-27 Arista Networks, Inc. Quantifying performance of a connection by monitoring duplicate acknowledgement numbers

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3163479B2 (ja) * 1997-10-09 2001-05-08 株式会社超高速ネットワーク・コンピュータ技術研究所 帯域制御方法
JP2005244897A (ja) * 2004-02-27 2005-09-08 Fujitsu Ltd 信頼性のある通信方法及びその装置
US20090116402A1 (en) * 2004-10-21 2009-05-07 Nec Corporation Communication quality measuring apparatus and communication quality measuring method
EP1886443A4 (en) * 2005-05-06 2011-03-09 California Inst Of Techn ARCHITECTURE OF RECOVERY OF EFFECTIVE LOSS FOR TCP CUT OFF LOSS
JP5292444B2 (ja) * 2011-02-17 2013-09-18 日本電信電話株式会社 パケットロス率推定装置及び方法及びプログラム
JP5696032B2 (ja) * 2011-12-22 2015-04-08 日本電信電話株式会社 コンテンツ受信量推定装置及びプログラム
JP5942706B2 (ja) * 2012-08-29 2016-06-29 富士通株式会社 監視装置,監視プログラム,監視方法

Also Published As

Publication number Publication date
JP2014155080A (ja) 2014-08-25
WO2014125680A1 (ja) 2014-08-21
US20150319064A1 (en) 2015-11-05

Similar Documents

Publication Publication Date Title
JP5941853B2 (ja) パケット通信方法及び装置
JP5816718B2 (ja) 通信装置、通信システム、およびデータ通信の中継方法
JP4778453B2 (ja) 通信端末、輻輳制御方法および輻輳制御プログラム
JP4016387B2 (ja) データフロー制御方法
EP2979407B1 (en) Re-marking of packets for queue control
EP2978171B1 (en) Communication method, communication device, and communication program
US20070223529A1 (en) Methods and apparatus for estimating bandwidth of a data network
EP2922241B1 (en) Methods and apparatus to determine network delay with location independence from retransmission delay and application response time
KR100922472B1 (ko) 통신 단말, 통신 제어 방법 및 통신 제어 프로그램
US11153220B2 (en) Methods and apparatus to determine network delay with location independence
JP4435817B2 (ja) 通信端末、通信制御方法および通信制御プログラム
KR101039550B1 (ko) 데이터 전송률 계산 방법 및 이를 이용한 대역폭 설정 방법
CN113472604B (zh) 一种实现传输性能检测的方法、装置和系统
US9172654B2 (en) Transfer device and transfer method
US11962517B2 (en) Communications method, apparatus, and system for recovering lost packets
EP3100413B1 (en) Reliable network probing session
JP2004140596A (ja) Tcp上のデータ転送における品質を推定する方法およびシステム
US7907613B1 (en) Method and apparatus for measuring RTT in a cumulative acknowledgment transmission protocol
JP2014220621A (ja) パケット処理方法及びパケット処理装置
JP6920835B2 (ja) 設備監視装置
JP2010258631A (ja) サーバおよびack返信方法
WO2006058212A2 (en) Methods and apparatus for estimating bandwidth of a data network
JP2019012866A (ja) 制御システム、可用帯域推定システム、装置、方法およびプログラム
JP2011147035A (ja) 通信システム、送信装置、受信装置及び通信制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150723

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150723

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160523

R151 Written notification of patent or utility model registration

Ref document number: 5941853

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees