JP4497322B2 - 通信方法 - Google Patents

通信方法 Download PDF

Info

Publication number
JP4497322B2
JP4497322B2 JP2005516898A JP2005516898A JP4497322B2 JP 4497322 B2 JP4497322 B2 JP 4497322B2 JP 2005516898 A JP2005516898 A JP 2005516898A JP 2005516898 A JP2005516898 A JP 2005516898A JP 4497322 B2 JP4497322 B2 JP 4497322B2
Authority
JP
Japan
Prior art keywords
packet
node
flow
transmission
route
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
JP2005516898A
Other languages
English (en)
Other versions
JPWO2005067261A1 (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2005067261A1 publication Critical patent/JPWO2005067261A1/ja
Application granted granted Critical
Publication of JP4497322B2 publication Critical patent/JP4497322B2/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
    • 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
    • H04L1/1887Scheduling and prioritising arrangements

Landscapes

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

Description

本発明はフローの存在する2ノード間のパケット通信に関し、特に再送制御に関する。
インターネット上を経由して2ノードがパケット通信する場合には、パケット損失、パケット順序ミスが発生する。パケット損失に対処する方法として、パケットの再送方法の技術が提案されている(例えば、特許文献1)。特許文献1の技術は、送信ノードと受信ノードとの間で送信パケットのフロー制御及び順序制御を行うが、受信ノードでパケット損失による順序待ちが発生した場合、一定時間内に順序待ち対象のパケットを受信しなかった場合、送信ノードに対して順序待ち対象のパケットの再送要求を通知するものである。
また、2ノード間に複数のフローが存在する場合には、フローそれぞれを単位として、例えばTCP(”Transmission Control Protocol”, rfc793)などを利用して、パケットの再送や順序制御を行っていた。
以下に、従来技術による順序制御やパケット損失の検出による再送制御を、図19を用いて説明する。
図19は、3本のフロー1、フロー2、フロー3からのパケットを一つの経路を介して送信する場合におけるパケット損失の検出を示している。
図19によれば、フロー1からはパケット1-1、パケット1-2及びパケット1-3を受信し、フロー2からはパケット2-1、パケット2-2及びパケット2-3を受信し、フロー3からはパケット3-1、パケット3-2及びパケット3-3を受信している。尚、各パケットには、フローと各フローのパケットの順番(シーケンス番号)とを示す識別情報が付されている。例えば、パケット2-1は、フロー2において2番目の順番であることを示している。
受信したパケットは一つの経路4に送信するにあたって、各フローより順番にひとつずつのパケットを選択し、経路4に送信している。すなわち、パケット1-1、パケット2-1、パケット3-1、…、パケット1-3、パケット2-3、パケット3-3の順番で経路4に送信される。受信側では、経路4から受信されたパケットを、パケットの識別情報に基づいて、フロー毎に並べなおす順序制御が行われると共に、損失したパケットを検出して再送の要求(再生制御)が行われていた。
特開平9−46375号公報
しかしながら、従来技術では、多数のパケットを送受信するにも関わらず、順序制御をしながらパケット損失の検出を行う為、パケット損失の検出が遅れるという課題があった。
例えば、図19で示される従来技術において、経路4上でパケット2-2の損失が発生した場合を考えると、受信側では、パケットが送信された順序で受信するので、パケット1-1、パケット2-1、パケット3-1、…、パケット1-3、パケット2-3、パケット3-3の順番でパケットを受信することになる。損失したパケットはパケット2-2であるので、パケット1-2の次に受信されるパケットはパケット3-2である。
この時点では、パケット2-2が損失したことを検出することは出来ず、損失したパケット2-2と同じフローの次のパケット2-3が受信されて順序制御が行われ、パケット2-1と、パケット2-3とが検出され、初めてパケット2-2の損失が検出される。すなわち、図19の例においては、損失したパケット2-2の3パケット先であるパケット2-3の受信及び順序制御を待たなければ、パケット2-2の損失を検出することが出来なかった。
そこで、本発明は上記課題に鑑みて発明されたものであって、その目的は上記課題を解決し、従来のフロー毎の再送制御に比較して早期のパケット損失の検出が可能となる技術を提供することにある。
また、本発明の目的は上記課題を解決し、従来のパケット損失の検出に比較して早期のパケット損失の検出が可能となる技術を提供することにある。
また、本発明の目的は、順序制御の為の識別情報とは別に、パケットの損失検出及び再生制御の為の識別情報をパケットに付与し、順序制御とパケット損失の検出及び再生制御とを独立に行うことにより、早期にパケットを検出して再送の制御が行える技術を提供することにある。
上記課題を解決する第1の発明は、送信ノードと、受信ノードとの間の通信方法であって、
送信ノードにおいて、
順序制御に関する第1の基準に基づいた1以上のフローを有する第1のフロー群と、再送制御に関する第2の基準に基づいた1以上のフローを有する第2のフロー群とを設け、前記第1のフロー群に属する各々のフローに一意の第1の識別子を割り当て、前記第2のフロー群に属する各々のフローに一意の第2の識別子を割り当て、
入力されたパケットを、前記第1の基準に基づいて前記第1のフロー群に属する1以上のフローに分類し、かつ、前記第2の基準に基づいて前記第2のフロー群に属する1以上のフローに分類し、前記パケットに、前記第1の識別子と、前記第1の識別子で特定される第1のフロー内で一意の第1のシーケンス番号と、前記第2の識別子と、前記第2の識別子で特定されるフロー内で一意の第2のシーケンス番号とを付与して送信し、
受信ノードにおいて、
受信した全てのパケットを第2の識別子に基づいて分類し、各第2のフローに関して、受信していない第2のシーケンス番号のパケットをチェックし、送信ノード対してこれらの再送を要求し、
送信ノードにおいて、
受信ノードからの要求された第2のフローの第2のシーケンス番号のパケットを再送し、
受信ノードにおいて、
受信した全てのパケットを第1の識別子に基づいて分類し、各第1のフローに関して、第1のシーケンス番号に基づいてパケットを順番に並べ、順番になっているパケットから受信処理を行うことを特徴とする。
上記課題を解決する第2の発明は、上記第1の発明において、送信ノードと受信ノードは一つの通信経路で結ばれ、送信ノードの第2のフロー群は単一のフローで構成され、単一の通信経路を利用してパケットを送信することを特徴とする。
上記課題を解決する第3の発明は、上記第1の発明において、送信ノードは、パケットを送信する通信経路が複数ある場合、パケット送信のスケジュールに関する第3の基準に基づいて、パケットを送信する通信経路を選択することを特徴とする。
上記課題を解決する第4の発明は、上記第3の発明において、送信ノードと受信ノードとは複数の通信経路で結ばれ、送信ノードは、第2の基準として、送信するパケットの通過する通信経路に対応して一意のフローに分類し、第3の基準として、再送時に初回送信時とは独立に通信経路を選択することを特徴とする。
上記課題を解決する第5の発明は、上記第3の発明において、送信ノードと受信ノードとは複数の通信経路で結ばれ、送信ノードは、第2の基準として、送信するパケットの通過する通信経路よりも少ない数のフローに分類し、第3の基準として、再送時に初回送信時とは独立に通信経路を選択することを特徴とする。
上記課題を解決する第6の発明は、上記第1から第3のいずれかの発明において、送信ノードは他の通信ノードの送信するパケットを転送する送信側転送ノードであり、受信ノードは他の通信ノードの受信するパケットを転送する受信側転送ノードであることを特徴とする。
上記課題を解決する第7の発明は、上記第6の発明において、送信ノードと受信ノードは一つの通信経路で結ばれ、送信ノードの第2のフロー群は、単一のフローで構成され、単一の通信経路を利用してパケットを送信することを特徴とする。
上記課題を解決する第8の発明は、上記第6の発明において、送信ノードと受信ノードとは複数の通信経路で結ばれ、送信ノードは、第2の基準として、送信するパケットの通過する通信経路に対応して一意のフローに分類し、第3の基準として、再送時に初回送信時とは独立に通信経路を選択することを特徴とする。
上記課題を解決する第9の発明は、上記第6の発明において、送信ノードと受信ノードとは複数の通信経路で結ばれ、送信ノードは、第2の基準として、送信するパケットの通過する通信経路よりも少ない数のフローに分類し、第3の基準として、再送時に初回送信時とは独立に通信経路を選択することを特徴とする。
上記課題を解決する第10の発明は、上記第3の発明において、送信ノードの第3の基準として、送信側ノードにおいて入力されるパケットごとに、選択可能な各経路の経路状態情報と、前記経路状態情報が有効となる時刻又は送信済みパケットの識別情報と、前記経路状態情報が有効となる時刻以降の送信履歴又は送信済みパケットの識別情報で特定されるパケットの送信以降の送信履歴とに基づいて、経路の選択または選択優先度を行うことを特徴とする。
上記課題を解決する第11の発明は、上記第10の発明において、前記経路状態情報は、経路の遅延を含むことを特徴とする。
上記課題を解決する第12の発明は、上記第10又は第11の発明において、前記経路状態情報は、経路の通信速度を含むことを特徴とする。
上記課題を解決する第13の発明は、上記第10から第12のいずれかの発明において、前記経路状態情報は、経路の負荷を含むことを特徴とする。
上記課題を解決する第14の発明は、上記第10から第13のいずれかの発明において、経路の選択又は選択優先度の更新に際し、各経路の経路状態情報が更新されると、更新以前に送信されたパケットに関する送信コスト計算結果に修正を加えることを特徴とする。
上記課題を解決する第15の発明は、上記第10から第14のいずれかの発明において、各経路の送信コスト計算結果の修正に際し、最新の経路状態情報が有効となる最初の送信済パケット以前の履歴を破棄することを特徴とする。
上記課題を解決する第16の発明は、上記第10から第15のいずれかの発明において、パケットを送信する経路として、受信側ノードでの受信完了時刻の推定値が最も早い経路を選択することを特徴とする。
上記課題を解決する第17の発明は、上記第10から第16のいずれかの発明において、パケットを送信する経路として、受信側ノードで特定時刻までに受信完了できるデータ量の推定値が最大の経路を選択することを特徴とする。
上記課題を解決する第18の発明は、上記第10から第17のいずれかの発明において、各経路につき、推測される現在の経路状態に応じてデータの送信を中断することを特徴とする。
上記課題を解決する第19の発明は、上記第18の発明において、前記データ送信中断の基準が、推定受信完了時刻が特定の値以上であることを特徴とする。
上記課題を解決する第20の発明は、上記第10から第19のいずれかの発明において、経路選択又は送信中断の判断を、送信データの属性ごとに異なるポリシーにより行うことを特徴とする。
上記課題を解決する第21の発明は、パケットを送信する送信部とパケットを受信する受信部とから構成され、パケットの再送制御と順序制御とを独立に行うノードであって、
前記送信部は、
順序制御に関する第1の基準に基づいた第1のフロー群の各フローに一意に割り当てられた第1の識別子と、前記第1のフロー群に属する各々のフロー内で一意の第1のシーケンス番号と、再送制御に関する第2の基準に基づいた第2のフロー群の各フローに一意に割り当てられた第2の識別子と、前記第2のフロー群に属する各々のフロー内で一意の第2のシーケンス番号とを、送信するパケットに付加して送信する手段と、
パケットを受信したノードから再送を要求されたパケットを、前記第2の識別子及び第2のシーケンス番号から特定し、そのパケットを再送する手段と
を有し、
前記受信部は、
受信した全てのパケットを前記第2の識別子に基づいて分類し、各第2のフローに関して、受信していない第2のシーケンス番号のパケットをチェックし、その第2の識別子と第2のシーケンス番号とを、パケットに送信したノードに対して送信して再送を要求する手段と、
受信した全てのパケットを前記第1の識別子に基づいて分類し、各第1のフローに関して、前記第1のシーケンス番号に基づいてパケットを順番に並べ、順番になっているパケットから受信処理を行う手段と
を有することを特徴とする。
上記課題を解決する第22の発明は、上記第21の発明において、ノード間は一つの通信経路で結ばれ、第2のフロー群は単一のフローで構成され、単一の通信経路を利用してパケットを送信することを特徴とする。
上記課題を解決する第23の発明は、上記第21の発明において、パケットを送信する通信経路が複数ある場合、パケット送信のスケジュールに関する第3の基準に基づいて、パケットを送信する通信経路を選択する手段を有することを特徴とする。
上記課題を解決する第24の発明は、上記第23の発明において、ノード間は複数の通信経路で結ばれ、第2の基準として、送信するパケットの通過する通信経路に対応して一意のフローに分類し、第3の基準として、再送時に初回送信時とは独立に通信経路を選択することを特徴とする。
上記課題を解決する第25の発明は、上記第23の発明において、ノード間は複数の通信経路で結ばれ、第2の基準として、送信するパケットの通過する通信経路よりも少ない数のフローに分類し、第3の基準として、再送時に初回送信時とは独立に通信経路を選択することを特徴とする。
上記課題を解決する第26の発明は、上記第21から第23のいずれかの発明において、ノードの送信部は他の通信ノードの送信するパケットを転送する送信側転送ノードであり、ノードの受信部は他の通信ノードの受信するパケットを転送する受信側転送ノードであることを特徴とする。
上記課題を解決する第27の発明は、上記第26の発明において、ノード間は一つの通信経路で結ばれ、第2のフロー群は、単一のフローで構成され、単一の通信経路を利用してパケットを送信することを特徴とする。
上記課題を解決する第28の発明は、上記第26の発明において、ノード間は複数の通信経路で結ばれ、第2の基準として、送信するパケットの通過する通信経路に対応して一意のフローに分類し、第3の基準として、再送時に初回送信時とは独立に通信経路を選択することを特徴とする。
上記課題を解決する第29の発明は、上記第26の発明において、ノード間は複数の通信経路で結ばれ、第2の基準として、送信するパケットの通過する通信経路よりも少ない数のフローに分類し、第3の基準として、再送時に初回送信時とは独立に通信経路を選択することを特徴とする。
上記課題を解決する第30の発明は、上記第23の発明において、前記通信経路を選択する手段は、第3の基準として、ノードにおいて入力されるパケットごとに、選択可能な各経路の経路状態情報と、前記経路状態情報が有効となる時刻又は送信済みパケットの識別情報と、前記経路状態情報が有効となる時刻以降の送信履歴又は送信済みパケットの識別情報で特定されるパケットの送信以降の送信履歴とに基づいて、経路の選択または選択優先度を行うことを特徴とする。
上記課題を解決する第31の発明は、上記第30の発明において、前記経路状態情報は、経路の遅延を含むことを特徴とする。
上記課題を解決する第32の発明は、上記第31の発明において、前記経路状態情報は、経路の通信速度を含むことを特徴とする。
上記課題を解決する第33の発明は、上記第30から第32のいずれかの発明において、前記経路状態情報は、経路の負荷を含むことを特徴とする。
上記課題を解決する第34の発明は、上記第30から第33のいずれかの発明において、前記通信経路を選択する手段は、経路の選択又は選択優先度の更新に際し、各経路の経路状態情報が更新されると、更新以前に送信されたパケットに関する送信コスト計算結果に修正を加えることを特徴とする。
上記課題を解決する第35の発明は、上記第30から第34のいずれかの発明において、前記通信経路を選択する手段は、各経路の送信コスト計算結果の修正に際し、最新の経路状態情報が有効となる最初の送信済パケット以前の履歴を破棄することを特徴とする。
上記課題を解決する第36の発明は、上記第30から第35のいずれかの発明において、前記通信経路を選択する手段は、パケットを送信する経路として、受信側ノードでの受信完了時刻の推定値が最も早い経路を選択することを特徴とする。
上記課題を解決する第37の発明は、上記第30から第36のいずれかの発明において、前記通信経路を選択する手段は、パケットを送信する経路として、受信側ノードで特定時刻までに受信完了できるデータ量の推定値が最大の経路を選択することを特徴とする。
上記課題を解決する第38の発明は、上記第30から第37のいずれかの発明において、前記通信経路を選択する手段は、各経路につき、推測される現在の経路状態に応じてデータの送信を中断することを特徴とする。
上記課題を解決する第39の発明は、上記第38の発明において、前記データ送信中断の基準が、推定受信完了時刻が特定の値以上であることを特徴とする。
上記課題を解決する第40の発明は、上記第30から第39のいずれかの発明において、前記通信経路を選択する手段は、経路選択又は送信中断の判断を、送信データの属性ごとに異なるポリシーにより行うことを特徴とする。
上記課題を解決する第41の発明は、パケットの再送制御と順序制御とを独立に行うノードの制御プログラムであって、
前記ノードがコンピュータであり、
前記制御プログラムは前記コンピュータを、
順序制御に関する第1の基準に基づいた第1のフロー群の各フローに一意に割り当てられた第1の識別子と、前記第1のフロー群に属する各々のフロー内で一意の第1のシーケンス番号と、再送制御に関する第2の基準に基づいた第2のフロー群の各フローに一意に割り当てられた第2の識別子と、前記第2のフロー群に属する各々のフロー内で一意の第2のシーケンス番号とを、送信するパケットに付加して送信する手段と、
パケットを受信したノードから再送を要求されたパケットを、前記第2の識別子及び第2のシーケンス番号から特定し、そのパケットを再送する手段と、
受信した全てのパケットを前記第2の識別子に基づいて分類し、各第2のフローに関して、受信していない第2のシーケンス番号のパケットをチェックし、その第2の識別子と第2のシーケンス番号とを、パケットに送信したノードに対して送信して再送を要求する手段と、
受信した全てのパケットを前記第1の識別子に基づいて分類し、各第1のフローに関して、前記第1のシーケンス番号に基づいてパケットを順番に並べ、順番になっているパケットから受信処理を行う手段と
して機能させることを特徴とする。
上記課題を解決する第42の発明は、上記第41の発明において、ノード間は一つの通信経路で結ばれ、第2のフロー群は単一のフローで構成され、単一の通信経路を利用してパケットを送信することを特徴とする。
上記課題を解決する第43の発明は、上記第41の発明において、前記制御プログラムは前記ノードを、パケットを送信する通信経路が複数ある場合、パケット送信のスケジュールに関する第3の基準に基づいて、パケットを送信する通信経路を選択する手段として更に機能させることを特徴とする。
上記課題を解決する第44の発明は、上記第43の発明において、ノード間は複数の通信経路で結ばれ、第2の基準として、送信するパケットの通過する通信経路に対応して一意のフローに分類し、第3の基準として、再送時に初回送信時とは独立に通信経路を選択することを特徴とする。
上記課題を解決する第45の発明は、上記第43の発明において、ノード間は複数の通信経路で結ばれ、第2の基準として、送信するパケットの通過する通信経路よりも少ない数のフローに分類し、第3の基準として、再送時に初回送信時とは独立に通信経路を選択することを特徴とする。
上記課題を解決する第46の発明は、上記第41から第43のいずれかの発明において、ノードの送信側は他の通信ノードの送信するパケットを転送する送信側転送ノードであり、ノードの受信側は他の通信ノードの受信するパケットを転送する受信側転送ノードであることを特徴とする。
上記課題を解決する第47の発明は、上記第46の発明において、ノード間は一つの通信経路で結ばれ、第2のフロー群は、単一のフローで構成され、単一の通信経路を利用してパケットを送信することを特徴とする。
上記課題を解決する第48の発明は、上記第46の発明において、ノード間は複数の通信経路で結ばれ、第2の基準として、送信するパケットの通過する通信経路に対応して一意のフローに分類し、第3の基準として、再送時に初回送信時とは独立に通信経路を選択することを特徴とする。
上記課題を解決する第49の発明は、上記第46の発明において、ノード間は複数の通信経路で結ばれ、第2の基準として、送信するパケットの通過する通信経路よりも少ない数のフローに分類し、第3の基準として、再送時に初回送信時とは独立に通信経路を選択することを特徴とする。
上記課題を解決する第50の発明は、上記第43の発明において、制御プログラムは、前記通信経路を選択する手段を、ノードにおいて入力されるパケットごとに、選択可能な各経路の経路状態情報と、前記経路状態情報が有効となる時刻又は送信済みパケットの識別情報と、前記経路状態情報が有効となる時刻以降の送信履歴又は送信済みパケットの識別情報で特定されるパケットの送信以降の送信履歴とに基づいて、経路の選択または選択優先度を行うように機能させることを特徴とする。
上記課題を解決する第51の発明は、上記第50の発明において、前記経路状態情報は、経路の遅延を含むことを特徴とする。
上記課題を解決する第52の発明は、上記第50又は第51の発明において、前記経路状態情報は、経路の通信速度を含むことを特徴とする。
上記課題を解決する第53の発明は、上記第50から第52のいずれかの発明において、前記経路状態情報は、経路の負荷を含むことを特徴とする。
上記課題を解決する第54の発明は、上記第50から第53のいずれかの発明において、制御プログラムは、前記通信経路を選択する手段を、経路の選択又は選択優先度の更新に際し、各経路の経路状態情報が更新されると、更新以前に送信されたパケットに関する送信コスト計算結果に修正を加えるように機能させることを特徴とする。
上記課題を解決する第55の発明は、上記第54の発明において、制御プログラムは、前記通信経路を選択する手段を、各経路の送信コスト計算結果の修正に際し、最新の経路状態情報が有効となる最初の送信済パケット以前の履歴を破棄するように機能させることを特徴とする。
上記課題を解決する第56の発明は、上記第50から第55のいずれかの発明において、制御プログラムは、前記通信経路を選択する手段を、パケットを送信する経路として、受信側ノードでの受信完了時刻の推定値が最も早い経路を選択するように機能させることを特徴とする。
上記課題を解決する第57の発明は、上記第50から第56のいずれかの発明において、制御プログラムは、前記通信経路を選択する手段を、パケットを送信する経路として、受信側ノードで特定時刻までに受信完了できるデータ量の推定値が最大の経路を選択するように機能させることを特徴とする。
上記課題を解決する第58の発明は、上記第50から第57のいずれかの発明において、御プログラムは、前記通信経路を選択する手段を、各経路につき、推測される現在の経路状態に応じてデータの送信を中断するように機能させることを特徴とする。
上記課題を解決する第59の発明は、上記第58のいずれかの発明において、前記データ送信中断の基準が、推定受信完了時刻が特定の値以上であることを特徴とする。
上記課題を解決する第60の発明は、上記第50から第59のいずれかの発明において、制御プログラムは、前記通信経路を選択する手段を、経路選択又は送信中断の判断を、送信データの属性ごとに異なるポリシーにより行うように機能させることを特徴とする。
上記課題を解決する第61の発明は、通信方法であって、送信パケットに、順序制御のための情報とは別に、送信フローを識別する識別子と、前記送信フロー内におけるシーケンス番号とを付与し、受信側で前記識別子と前記シーケンス番号とに基づいて、送信フローごとに再送制御を行うことを特徴とする。
上記課題を解決する第62の発明は、通信方法であって、送信パケットに、順序制御のための情報とは別に、送信フローを識別する識別子と、前記送信フロー内におけるシーケンス番号とを付与し、受信側で前記識別子と前記シーケンス番号とに基づいて、送信フローごとにパケットの損失を検出することを特徴とする。
上記課題を解決する第63の発明は、ノードであって、
順序制御に関する第1の基準に基づいた第1のフロー群の各フローに一意に割り当てられた第1の識別子と、前記第1のフロー群に属する各々のフロー内で一意の第1のシーケンス番号と、再送制御に関する第2の基準に基づいた第2のフロー群の各フローに一意に割り当てられた第2の識別子と、前記第2のフロー群に属する各々のフロー内で一意の第2のシーケンス番号とを、パケットに付加して送信する手段と、
前記第2の識別子と前記第2のシーケンス番号とに基づいて、送信フローごとに検出された損失パケットを再送する手段とを有することを特徴とする。
上記課題を解決する第64の発明は、ノードの制御プログラムであって、
前記ノードがコンピュータであり、
前記制御プログラムは前記コンピュータを、
順序制御に関する第1の基準に基づいた第1のフロー群の各フローに一意に割り当てられた第1の識別子と、前記第1のフロー群に属する各々のフロー内で一意の第1のシーケンス番号と、再送制御に関する第2の基準に基づいた第2のフロー群の各フローに一意に割り当てられた第2の識別子と、前記第2のフロー群に属する各々のフロー内で一意の第2のシーケンス番号とを、パケットに付加して送信する手段と、
前記第2の識別子と前記第2のシーケンス番号とに基づいて、送信フローごとに検出された損失パケットを再送する手段と
して機能させることを特徴とする。
本発明は、送信するパケットに、順序制御の識別子とは別に再送制御の識別子を付与し、順序制御は順序制御の識別子に基づいて行い、パケット損失の検出及び再生制御は再送制御の識別子に基づいて行う。再送制御の為の識別子は再送のフロー毎に識別子を設け、更に、そのフロー内で一意にパケットを特定できるシーケンス番号のような識別情報を付与する。通常、再送のフローと、送受信される経路とは一対一の関係にあるが、これに限る必要もない。
上述した本発明の概要を図15を用いて説明する。
図15では、送信側と受信側との間に一つの経路aを介してパケットの送受信を行う例を示している。
送信側の各フローのパケットには順序制御のフローを識別する第1の識別子と、各々のフロー内で一意の第1のシーケンス番号とが付与されている。例えば、フロー1の2番目のパケットならば、”1-2”である。
更に、本発明では、この順序制御の為の識別子とは別に、再送制御のフローを識別する第2の識別子と、各々のフロー内で一意の第2のシーケンス番号とが付与されている。ここでは、再送フローと経路aとが一対一の関係にあるので、再送フローを識別する識別子を”a”とし、この”a”で識別されるフロー(経路a)内で一意にパケットを特定できるようにシーケンス番号を付与する。従って、”a”で識別されるフロー(経路a)内における最初のパケットの再送制御の識別子は”a-1”となる。
送信側では上述のような識別子をパケットに付して、各フローより順番にひとつずつのパケットを選択し、経路aに送信する。すなわち、パケット(1-1, a-1)、パケット(2-1, a-2)、…、パケット(3-3, a-9)(順序制御用識別子,再送制御用識別子)の順番で送信されている。一方、送信したパケットは再送キューとして保持する。
ここで、経路a上でパケット(2-2, a-5)の損失が発生したとする。
受信側では、パケットが送信された順序で受信するので、パケット(1-1, a-1)、 パケット(2-1, a-2)、…、パケット(1-2, a-4)、パケット(3-2, a-6)、…、パケット(3-3, a-9)の順番でパケットを受信することになる。
ここで、本発明は、パケット損失の検出及び再送制御について、再送制御用識別子に基づいて行う。本例では、経路aから受信したパケットの再送制御用識別子を確認していくと、…、”a-4”、”a-6”、…、”a-9”であるので、パケット(3-2, a-6)を受信した時点で”a-5”が欠落していることが解る。従って、”a-5”の再送制御用識別子を持つパケット(2-2, a-5)が損失していることが解り、このパケット(2-2, a-5)の再送要求を送信側に行う。送信側では、再送制御用識別子”a-5” を持つパケットの再送要求を受けて、再送キューに保持している再送制御用識別子”a-5” を持つパケットを再送する。
一方、順序制御は、上述したパケット損失の検出及び再送制御とは独立に順序制御用識別子に基づいて行い、パケット損失に対する再送要求はしない。
このように、本発明ではパケット(3-2, a-6)を受信した時点で、パケット(2-2, a-5)の損失を検出することができ、従来技術と比較して早期にパケット損失の検出を行うことができ、更に、再送制御も独立に行うので、パケット損失に伴う順序制御の遅滞を防止することができる。
尚、再送制御のパケット損失の検出であるが、上述のようにパケット損失の検出を受信側で行う場合だけでなく、例えば、受信側では到着済みのパケットの情報を送信側に送信し、この情報に基づいて送信側でパケット損失を検出するようにしても良い。
本発明は、パケット通信において、順序制御と再送制御とを独立に行い、パケット損失を最も早期に検出可能な単位に対して再送IDを割り当てることにより、従来の順序制御に付随してフロー毎に行う再送制御に比較して早期のパケット損失の検出が可能となる。
また、本発明によれば、フロー毎の順序制御においても、あるフローのパケットの損失による他のフローのパケットの無駄な待ち時間が発生せず、転送されるという効果を奏する。
また、本発明は、送信に利用する経路と再送制御は独立であるため、ある経路が通信不能となった場合にもシステム全体として問題は発生しない。
図1は送受信ノード間経路が1本の場合の通信ネットワーク構成を示す図である。 図2は送信ノード、又は受信ノードの構成を示す図である。 図3はパケットの構成を示す図である。 図4第1の実施例における記憶部の保持する情報を示す図である。 図5は送受信ノード間経路がM本の場合の通信ネットワーク構成を示す図である。 図6は送信ノード、又は受信ノードの構成を示す図である。 図7は第2の実施例における記憶部の保持する情報を示す図である。 図8再送ID同一通信インタフェース・グループ決定アルゴリズムのフローチャートである。 図9は第3の実施例における記憶部の保持する情報を示す図である。 図10は送受信側転送ノード間経路がM本の場合の通信ネットワーク構成を示す図である。 図11はスケジューラの動作例1における送信側ノードおよび受信側ノードでのパケット処理タイミングを示す図である。 図12はスケジューラの動作例1におけるスケジューリング部の動作フローチャートである。 図13はスケジューラの動作例2における送信側ノードおよび受信側ノードでのパケット処理タイミングを示す図である。 図14はスケジューラの動作例2におけるスケジューリング部の動作フローチャートである。 図15は本発明を説明する為の図である。 図16は本発明の実施例1の具体的な動作を説明する為の図である。 図17は本発明の実施例1の具体的な動作を説明する為の図である。 図18はスケジューラの動作例1における送信側ノードおよび受信側ノードでのパケット処理タイミングの具体例を示した図である。 図19は従来技術を説明する為の図である。
符号の説明
101 送信ノード
102 受信ノード
110 経路
201 ソケット
202 入出力部
211,222 フロー識別部
212,224 フロー毎キュー
213 スケジューラ
214 再送制御部
215 再送キュー
216 記憶部
221 再送ID順序チェック部
223 フロー順序チェック部
301 送信ノード
302 受信ノード
312−1〜M 経路
401 ソケット
402−1〜M 入出力部
411,422 フロー識別部
412,424 フロー毎キュー
413 スケジューラ
414 再送制御部
415 再送キュー
416 記憶部
421 再送ID順序チェック部
423 フロー順序チェック部
501−1〜L 送信ノード
502 送信側転送ノード
503 受信側転送ノード
504−1〜N 受信ノード
511−1〜L 経路
512−1〜M 経路
513−1〜N 経路
600−1,2,3 データパケット
本発明は、パケット通信において、順序制御と再送制御とを独立に行いことを特徴とする。
その為、送信ノードは、順序制御に関する第1の基準に基づいた1以上のフローを有する第1のフロー群と、再送制御に関する第2の基準に基づいた1以上のフローを有する第2のフロー群とを設け、第1のフロー群に属する各々のフローに一意の第1の識別子を割り当て、前記第2のフロー群に属する各々のフローに一意の第2の識別子を割り当ている。そして、送信するパケットを、第1の基準に基づいて第1のフロー群に属する1以上のフローに分類し、かつ、第2の基準に基づいて第2のフロー群に属する1以上のフローに分類し、第1の識別子と、第1のフロー群に属する各々のフロー内で一意の第1のシーケンス番号と、前記第2の識別子と、前記第2のフロー群に属する各々のフロー内で一意の第2のシーケンス番号とを、送信するパケットに付与して送信する。
受信ノードでは、受信した全てのパケットを第2の識別子に基づいて分類し、各第2のフローに関して、受信していない第2のシーケンス番号のパケットをチェックし、受信していない第2のシーケンス番号に対応したパケットの再送を要求する。そして、送信ノードは、受信ノードからの要求された第2のフローの第2のシーケンス番号に対応するパケットを再送することにより、再送の制御を行う。
また、パケットの順序制御においては、受信ノードが、受信した全てのパケットを第1の識別子に基づいて分類し、各第1のフローに関して、第1のシーケンス番号に基づいてパケットを順番に並べ、順番になっているパケットから受信処理を行うことにより行われる。
以下、具体的な実施例について説明する。
本発明の実施例1を説明する。
実施例1では、送信ノードと受信ノードとがひとつの経路で結ばれている場合について説明する。
図1を参照すると、本発明の実施例1は、送信ノード101と、受信ノード102と、ノード間を結ぶ経路110とからなる。経路110は、インターネットなどのパケット通信網である。尚、通信は送信ノード101から受信ノード102に対するものと、受信ノード102から送信ノード101に対するものとどちらも考えられる。説明の便宜上、ノードには送信・受信と名前をつけているが、機能的には同一である。
次に、送信ノード101の構成を説明する。
図2は送信ノード101の構成を示す図である。
図2を参照すると、アプリケーションに対するAPI(Application Process Interface)であるソケット201と、入出力部202と、使用するポート番号と宛先のアドレス・ポート番号とからフローを識別してそれぞれのキューに振り分けるフロー識別部211と、フローIDからフローを識別子それぞれのキューに振り分けるフロー識別部222と、識別されたフロー毎にパケットを保持するフロー毎キュー212,224と、フロー毎キュー212の中から送信するパケットを選択して送信するスケジューラ213と、パケット送信時にパケットに再送IDをつけ、再送ID毎に再送キュー215に保持させて再送に備える再送制御部214と、再送ID毎にパケットを保持する再送キュー215と、経路ごとの遅延や、遅延分散などの情報、フロー毎や再送ID毎のシーケンス番号情報を記録しておく記憶部216と、パケット受信時にパケットの再送IDをチェックして順序どおりにパケットが到着したかをチェックする再送ID順序チェック部221と、フロー毎キュー224のうち順序がそろっているパケットについては転送を行うためにフロー毎キュー224をチェックするフロー順序チェック部223とからなる。
尚、受信ノード102の構成は、送信ノード101と同一である。
以下に、送信ノード101から受信ノード102にパケットを送信する場合の動作例を説明する。
送信ノードは、任意の数のアプリケーションによって、任意の数のTCPやUDPを利用した通信を発生させる。ここで、第1の基準とはパケットの順序制御に関する基準であり、TCPやUDPの各通信が第1のフローに相当する。
アプリケーションからソケット201がパケットを受信すると、フロー識別部211にパケットが渡され、フロー識別部211は自ノードのポート番号とパケットの宛先のアドレス・ポート番号からフローを識別する。識別されたパケットは、フロー毎キュー212にフロー毎に格納される。
図2では、70本のフロー毎のキューを持つ例を示しているが、この数に限定されることなく、多くても少なくてもかまわない。フロー毎キュー212に格納されたパケットは、スケジューラ213と再送制御部214によってパケットロスの際の再送に必要な処理を施した後、入出力端子202を介して受信ノード102に向けて送信されるとともに、パケットロスに対処するための再送キュー215にも保持される。
次に、スケジューラ213と再送制御部214との動作を説明する。
スケジューラ213は、送信するパケットの送信タイミングを定め、送信タイミングでフロー毎キュー212の中から受信ノード102にパケットを送信するキューを決定し、該当するキューからパケットを取り出す。取り出されたパケットは、再送に必要な処理を施すため、再送制御部214に渡される。
再送制御部214は、上述したパケット送信に関する基準である第1の基準とは異なる第2の基準で再送制御を行う。ここで、第2の基準とはパケットの再送に関する基準である。具体的には、再送制御部214は、記憶部216を参照して送信パケットに付加する再送IDと再送シーケンス番号とを決定し、再送キュー215の所定のキューにパケットを格納する。第二のフローは、この再送IDを単位としたパケット群に相当する。尚、ここでは、第二のフローと経路とが一対一に対応している。
再送制御部214は、決定した再送IDと再送シーケンス番号とをスケジューラ213に通知し、スケジューラ213は通知された再送ID及び再送シーケンス番号(再送制御の為の第2の識別子、第2のシーケンス番号)と、記憶部216から取得したフロー毎に一意に割り当てられるフローID及びフローでユニークなフローシーケンス番号(順序制御の為の第1の識別子、第1のシーケンス番号)とを独自ヘッダとして付加し、入出力部202を利用して受信ノード101に対してパケットを送信する。
以上の動作を行うために、記憶部216は、例えば図4に示されるような情報を保持している。図4では、送信用の情報として、順序制御のためのフローID(第1の識別子)及び転送済みパケットの最大フローシーケンス番号(第1のシーケンス番号)と、再送制御のための再送ID(第2の識別子)及び到着済みパケット再送シーケンス番号(第2のシーケンス番号)とが記憶されている様子を示している。例えば、フローID“1”では転送済みパケットの最大フローシーケンス番号が“25”である。また、再送ID“1”では到着済みパケット再送シーケンス番号が“1から200と、203”であることを示している。尚、到着済みパケット再送シーケンス番号において、記載されていない番号“201、202”は到着が確認されていないパケットのシーケンス番号である。
以上がスケジューラ213と再送制御部214の動作である。このときの送信パケットのフォーマットは、例えば図3のようになる。
続いて、受信ノード102について説明する。以下の説明では、受信ノード102が、送信ノード101の入出力部202から送信されたパケットを入出力部202を介して受信した場合について説明する。尚、本発明では、パケット損失が発生したと判断するノードはデータ受信側・送信側のどちらの場合でも適用可能であるが、ここではデータ受信側は到達確認を伝えるACKのみを送信側に送信し、送信側が任意の基準でパケット損失が発生したと判断する場合を示す。また、本発明では、送信ノード101、受信ノード102は同一の構成となるため、図2を用いて、受信ノード102の動作例を説明する。
入出力部202から受信されたパケットは、再送ID順序チェック部221に入力される。
再送ID順序チェック部221は、データパケットであることを確認すると、パケットから再送IDと再送シーケンス番号を取得し、受信したパケットの再送IDと、受信したパケットの再送シーケンス番号とからなるACK情報をスケジューラ213に渡す。
ACK情報を渡されたスケジューラ213は、送信ノード101にパケットを受信した事を通知するため、渡されたACK情報を含むACKパケットを入出力部202を経由して送信する。ACKパケットを送信するタイミングに、他の送信データパケットが存在する場合には、独立のACKパケットを生成せずにデータパケットのヘッダ部分に情報を付加することもできる。
また、再送ID順序チェック部221は、受信したパケットの再送IDの再送シーケンス番号情報を記憶部216に通知し、記憶部216に記憶されている再送シーケンス番号情報を更新して再送制御処理は完了する。再送制御処理の完了後、再送ID順序チェック部221は、受信したパケットをフロー識別部222に供給し、順序制御処理が行われる。
順序制御処理では、フロー識別部222は再送ID順序チェック部221から供給されたパケットからフローIDを取得し、フローIDに従いフロー毎キュー224の該当キューにパケットを送る。図2では、100本の異なるフローに対するキューを持つ構成例を示している。
また、同時に、新規にパケットを受信したことをフローIDと共にフロー順序チェック部223に通知する。フロー順序チェック部223は、記憶部216から該当するフローIDについて送信済みの最大フローシーケンス番号を取得する。
次に、フロー順序チェック部223は、入力されたフローIDに該当するキューをチェックする。チェックの結果、転送済み最大フローシーケンス番号に連続するパケットが存在するならば、この連続するパケットを取り出し、図3に示されるフレームフォーマット中のフローID、フローシーケンス番号、再送ID、再送シーケンス番号を取り除き、ソケット部201を経由しアプリケーションに渡す。一方、転送済み最大フローシーケンス番号に連続するフローシーケンス番号のパケットがなければ、フロー順序チェック部223は動作を終了する。
以降の動作は、上述した送信ノードの動作と同様である。
続いて、受信ノードからACK情報を受信した送信ノードについて説明する。
送信ノード101は、受信ノード102からのACK情報を含むパケットを入出力部202から受信すると、再送ID順序チェック部221においてACK情報を取り出す。次に、ACK情報から受信ノード102が受信した再送IDと再送シーケンス番号を取得し、この再送IDと再送シーケンス番号とを、到着確認済みのパケットとして記憶部216に記憶するとともに、その再送IDと再送シーケンス番号とに該当するパケットを再送ID毎キュー215から削除する。
また、送信ノード101は、定期的に、記憶されている到着済みの再送IDと再送シーケンス番号をチェックし、欠けている再送シーケンス番号を検出する。そして、欠けている再送ID及び再送シーケンス番号に該当するパケットは損失したとみなして、欠けている再送ID及び再送シーケンス番号に対応するパケットを再送IDキュー215から取り出し、スケジューラ213にパケットを渡すと共に再送が必要である事を通知する。スケジューラ213は渡されたパケット再送を行う。尚、このとき、再送するパケットには、先に送ったパケットに付された再送ID及び再送シーケンス番号と同一の再送ID及び再送シーケンス番号を付して再送する。
次に、上述した動作の具体例を図面を参照して説明する。
図16は送信ノード101と受信ノード102との間の具体的な動作を説明する為の図である。尚、以下の説明において、具体的な動作例を示す為、図2に示される構成と、図4に示した送信用情報とを例にして説明する。
まず、送信側ノード101のスケジューラ213により、フロー毎キュー212の70本のフローから一つずつパケットが取り出され、再送制御部214により、記憶部216が参照されて送信パケットに付加する再送IDと再送シーケンス番号とが付される。例えば、再送IDが”1”、シーケンス番号”200”であるならば、”1-200”というように付される。そして、この再送IDと再送シーケンス番号が付されたパケットは、入出力端子202を介して受信ノード102に向けて送信されるとともに、パケットロスに対処するための再送キュー215にも保持される。
図16の例では、一つのパケットにおいて前半につけられたものがフローID、フローシーケンス番号であり、後半につけられたものが再送ID及び再送シーケンス番号である。図16では、パケット(11-54, 1-200)、パケット(12-87, 1-201)、パケット(13-7, 1-202)、パケット(14-24, 1-203)…というように経路上を送信されている。尚、パケット(m-n, x-y)のうち、mはフローID、nはフローシーケンス番号、xは再送ID、yは再送シーケンス番号を示している。
このような状態で、パケット(12-87, 1-201)、パケット(13-7, 1-202)が損失した場合を考える。
受信ノード側では、パケット(11-54, 1-200)、パケット(14-24, 1-203)…が入出力部202から受信され、再送ID順序チェック部221に入力される。再送ID順序チェック部221は、データパケットであることを確認すると、パケットから”1-200”、”1-203”というように再送IDと再送シーケンス番号を取得し、この受信したパケットの再送IDと再送シーケンス番号とからなるACK情報をスケジューラ213に渡す。
ACK情報を渡されたスケジューラ213は、送信ノード101にパケットを受信した事を通知するため、渡されたACK情報を含むACKパケットを入出力部202を経由して送信する。
また、再送ID順序チェック部221は、受信したパケットの再送IDの再送シーケンス番号を記憶部216に通知し、記憶部216に記憶されている受信済みパケット再送シーケンス番号を更新して再送制御処理は完了する。再送制御処理の完了後、再送ID順序チェック部221は、受信したパケットをフロー識別部222に供給し、順序制御処理が行われる。
順序制御処理では、フロー識別部222は再送ID順序チェック部221から供給されたパケットから、フローID”11”、…、フローID”14”、…、フローID”1”を取得し、フローIDに従いフロー毎キュー224の該当キューにパケットを送る。図16では、受信したパケット(14-24)をフロー14に、パケット(11-54)をフロー11に、パケット(1-23)をフロー1に送信した様子を示している。
一方、送信ノード101では、受信ノード102からのACK情報を含むパケットを入出力部202から受信すると、再送ID順序チェック部221において、ACK情報を取り出す。
次に、ACK情報から受信ノード102が受信した再送IDと再送シーケンス番号を取得し、この再送IDと再送シーケンス番号とを、到着確認済みのパケットとして記憶部216に記憶するとともに、その再送IDと再送シーケンス番号とに該当するパケットを再送ID毎キュー215から削除する。
例えば、”1-200”、”1-203”というACK情報を取得した場合、送信用情報の再送ID”1”における到着済みパケット再送シーケンス番号に”200”と”203”とを加えるとともに、再送ID毎キュー215から再送シーケンス番号が”200”、”203”のパケットを削除する。
また、再送制御部214は、一定の周期毎に到着済みの再送IDと再送シーケンス番号をチェックし、欠けている再送シーケンス番号を検出する。図16の例では、再送シーケンス番号”201”、”202”が欠落している。そこで、欠けている再送シーケンス番号”201”、”202”に該当するパケットは損失したとみなして、再送シーケンス番号”201”、”202”に対応するパケットを再送IDキュー215から取り出し、スケジューラ213にパケットを渡すと共に再送が必要である事を通知する。スケジューラ213は渡されたパケット再送を行う。尚、このとき、再送するパケットには、先に送ったパケットに付された再送ID及び再送シーケンス番号、すなわち、”1-201”、”1-202”を付して再送する。
以上の動作により、パケット損失を早期に発見できるため、受信ノード102と送信ノード101との間でデータ送受信をより短い時間で行う事が可能となる。
次に、受信側ノード102でパケット損失を検出する場合の例について述べる。
図17は受信側ノード102でパケット損失を検出する場合を説明する為の図である。尚、受信側ノード102でパケット損失を検出する為に用いられる情報として、図4で示した受信用情報を用いる。また、送信側ノードから受信ノードまで到達するまでの動作を上述の動作と同様であるので、具体的な説明は省略する。
図17において、経路上で、パケット(11-54, 1-100)、パケット(12-87, 1-101)、パケット(13-7, 1-102)、パケット(14-24, 1-103)…というように経路上を送信されている。ここで、パケット(12-87, 1-101)が損失した場合を考える。
受信ノード側では、パケット(11-54, 1-100)、パケット(13-7, 1-102)、パケット(14-24, 1-103)…が入出力部202から受信され、再送ID順序チェック部221に入力される。再送ID順序チェック部221は、データパケットであることを確認すると、パケットから”1-100”、”1-102”というように再送IDと再送シーケンス番号を取得し、この再送IDと再送シーケンス番号と、記憶部216の受信用情報に記憶されている再送ID及び受信済みパケット再送シーケンス番号とを比較する事により,受信が期待されるパケットを受信したかどうかを判断する。
判断の結果、期待されるパケットであった場合には、受信したパケットの再送IDと、受信したパケットの再送シーケンス番号とからなるACK情報をスケジューラ213に渡す。一方、期待されるパケットでなかった場合には、受信したパケットの再送IDと、受信したパケットの再送IDで最初から連続して受信したパケットのうち最大の再送シーケンス番号とからなるACK情報をスケジューラ213に渡す。
ここでは、受信したパケット(11-54, 1-100)は期待されるパケットであるので、受信したパケットの再送IDと、受信したパケットの再送シーケンス番号とからなるACK情報、すなわち”1-100”をスケジューラ213に渡す。そして、受信したパケットの再送ID、再送シーケンス番号情報である”1-100”を記憶部216に通知し、記憶部216に記憶されている再送シーケンス番号情報を更新して再送制御処理は完了する。
続いて、受信したパケット(13-7, 1-102)は、本来ならば再送シーケンス番号が101のパケット(12-87, 1-101)である。そこで、受信したパケットの再送IDで最初から連続して受信したパケットのうち最大の再送シーケンス番号、すなわち、”1-100”をスケジューラ213に渡す。そして、受信したパケットの再送ID、再送シーケンス番号情報である”1-102”を記憶部216に通知し、記憶部216に記憶されている再送シーケンス番号情報を更新して再送制御処理は完了する。
次に、受信したパケット(1-23, 1-103)は期待されるパケットであるので、受信したパケットの再送IDと、受信したパケットの再送シーケンス番号とからなるACK情報、すなわち”1-103”をスケジューラ213に渡す。そして、受信したパケットの再送ID、再送シーケンス番号情報である”1-103”を記憶部216に通知し、記憶部216に記憶されている再送シーケンス番号情報を更新して再送制御処理は完了する。
ACK情報を渡されたスケジューラ213は、送信ノード101にパケットを受信した事を通知するため、渡されたACK情報を含むACKパケットを入出力部202を経由して送信する。
再送制御処理の完了後の順序制御処理については、上述と同じ動作であるので、説明を省略する。
続いて、受信ノードからACK情報を受信した送信ノードについて説明する。
送信ノード101は、受信ノード102からのACK情報を含むパケットを入出力部202から受信すると、再送ID順序チェック部221においてACK情報を取り出す。次に、ACK情報から受信ノード102が受信した再送IDと再送シーケンス番号を取得し、この再送IDと再送シーケンス番号とを、到着確認済みのパケットとして記憶部216に記憶するとともに、その再送IDと再送シーケンス番号とに該当するパケットを再送ID毎キュー215から削除する。
ここでは、ACK情報の情報として、まず、”1-100”、”1-100”、”1-103”を受信する。まず、”1-100”については、到着確認済みのパケットとして記憶部216に記憶するとともに、その再送IDと再送シーケンス番号とに該当するパケットを再送ID毎キュー215から削除する。続いて、同じ内容の”1-100”を受信した場合には、その再送シーケンス番号の次の番号である”1-101”に対応するパケットが損失したとみなして再送を行う。すなわち、2回連続して同じ番号の再送シーケンス番号がきた場合には、その再送シーケンス番号の次の番号に対応するパケットが損失したとみなして再送を行うのである。尚、再送するパケットには、先に送ったパケットに付された再送ID及び再送シーケンス番号と同一の再送ID及び再送シーケンス番号を付して再送する。
以上で、送信側でのパケット損失の検出と受信側でのパケット損失の検出との例を説明したが、本発明はこの例に限られない。例えば、他の例としては、受信ノードが、連続した再送シーケンス番号でパケットを受信しなかった場合、その抜けている再送シーケンス番号だけを再送要求情報として送信ノードに送信し、この抜けている再送シーケンス番号に対応するパケットを送信ノードが送信する方法も考えられる。
本発明の実施例2を説明する。
実施例2は、送信ノードと受信ノードとを結ぶ経路が複数ある場合について説明する。
図5は送信ノードと受信ノードとを結ぶ経路が複数ある場合の構成図である。
図5を参照すると、送信ノード301と、受信ノード302と、ノード間を結ぶM本の経路312−1〜312−Mからなる。経路312−1〜312−Mは、インターネットなどのパケット通信網である。M本の経路が複数存在する場合とは、送信ノード301と受信ノード302との両ノード、あるいはどちらか一方のノードが複数の通信インタフェースを保持する場合である。例えば、送信ノード301と受信ノード302とのうちどちらかがM本の通信インタフェースを持つ場合、あるいは送信ノード301と受信ノード302とがそれぞれS個、t個の通信インタフェースを持ち、M=s×tとなる場合である。
但し、通信は送信ノード301から受信ノード302に対するものとするが、受信ノード302から送信ノード301に対しては、送達確認(ACK)メッセージが送信される。このように、本実施例では、送信ノード301から受信ノード302への通信を説明するが、一般に、双方向の通信を行うためには、送信ノード301と受信ノード302は同一機能をもつ必要がある。
次に、送信ノード301の構成を説明する。
図6を参照すると、アプリケーションに対するAPIであるソケット401と、入出力部402−1〜402−Mと、使用するポート番号と宛先のアドレス・ポート番号とからフローを識別しそれぞれのキューに振り分けるフロー識別部411と、フローIDからフローを識別子それぞれのキューに振り分けるフロー識別部422と、識別されたフロー毎にパケットを保持するフロー毎キュー412,424と、フロー毎キューの中から送信するパケットを選択して送信するスケジューラ413と、パケット送信時に再送IDをつけ再送キューに再送ID毎に保持し再送に備える再送制御部414と、再送ID毎にパケットを保持する再送キュー415と、経路ごとの遅延や遅延分散などの情報、フロー毎や再送ID毎のシーケンス番号情報を記録しておく記憶部416と、パケット受信時にパケットの再送IDをチェックして順序どおりにパケットが到着したかをチェックする再送ID順序チェック部421と、フロー毎キューのうち順序がそろっているパケットについては転送を行うためにフロー毎キューをチェックするフロー順序チェック部423とからなる。
尚、入出力部402−1〜402−Mは、経路312−1〜312−Mに対応した論理的なものであり、送信ノード301の持つ物理的な通信インタフェースの数はM本とは限らない。また、受信ノード302は、送信ノード301と同一である。
次に、上述の構成における実施例2の動作を説明する。
実施例2の動作は、実施例1の動作とほぼ同じであるが、経路が複数あることからスケジューラと再送制御部の処理が異なる。以下にその異なる部分の動作を説明する。
スケジューラ413は、送信するパケットの送信タイミングを定め、送信タイミングでフロー毎キュー412の中から受信ノード302にパケットを送信するキューを決定し、該当するキューからパケットを取り出す。また、スケジューラ413は、経路選択に関する第3の基準に基づき経路312−1〜312−Mのいずれの経路を利用するかを決定する。
スケジューラ413は、再送に必要な処理を施すために、利用する経路の情報と共に取り出したパケットを再送制御部414に渡す。再送制御部414は、記憶部416を参照して送信パケットに付加する再送IDと再送シーケンス番号を決定し、再送キュー415の所定のキューにパケットを格納する。送信パケットに対して再送IDを決定する記憶部416の情報は、たとえば図7の経路と再送IDのテーブル部分に示すものである。再送IDの数は入出力部の数であるM個に等しく、入出力部と1対1で対応している。第二のフローはこの再送IDを単位としたパケット群を指す。再送制御部414は決定した再送IDと再送シーケンス番号をスケジューラ413に通知し、スケジューラ413は通知された再送IDと再送シーケンス番号、記憶部416から取得したフロー毎に一意に割り当てられるフローIDとフローでユニークなフローシーケンス番号とを独自ヘッダとして付加し、先ほどの選択に従い入出力部402−1〜402−Mのいずれかを利用し受信ノード302に対してパケットを送信する。このときの送信パケットのフォーマットは、例えば図3のようになる。
パケット受信時の受信ノード302の動作は、ACK送信の際の動作のみが異なる。以下にその動作を説明する。
スケジューラ413は、再送IDと再送シーケンス番号を含むACK情報を送信ノード301に送信する。ACKパケットを送信するタイミングに、送信データパケットが存在する場合には、独立のACKパケットを生成せずにデータパケットのヘッダ部分に情報を付加することもできる。通信経路を選択する第三の基準に従い、適当なタイミングで入出力部402−1〜402−Mのいずれかを利用して、送信ノード301に対してパケットを送信する。第3の基準としては、例えば、各経路の負荷状況に基づき、負荷の最も少ない経路を選択するものがある。
ACKを受信した際の送信ノード301の動作もスケジューラ413の動作が異なる。以下に説明する。
スケジューラ413は渡されたパケットを任意のタイミングで入出力部402−1〜402−Mのいずれかから再送を行う。このとき、スケジューラ413は、第3の基準に基づき以前に同一パケットを送信した経路とは独立に送信経路を選択可能である。
以上の動作により、パケット損失を早期に発見できるため、受信ノード301と送信ノード302との間でデータ送受信をより短い時間で行う事が可能となる。
尚、図5、図6の構成では一つのフローに属する複数のパケットは、送信ノードのスケジューラ413により一般に異なる経路に振り分けられる。各経路の遅延やレートが独立に揺らぐ場合、スケジューラによる経路間遅延差の相殺には限界があり、特に安定性が低い無線リンクを含む場合に完全に経路間のジッターを相殺することは難しい。
従って、フローに注目したとき、受信ノードにおけるパケットの到着順序は送信ノードにおける送信順序を反映することが保証されない。例えばあるフローに属するパケットAを経路312−1より送信し、その後に同じフローに属し、パケットAより大きいシーケンス番号を有するパケットBを経路312−2より送信したとする。またこのとき経路Aの遅延がスケジューラの予想より大きく、受信ノードにおいてはAより先にBが受信されたとする。
このとき、受信ノードがもし、順序制御のフローごとのシーケンス番号に基づく損失の検出を行っていると、パケットBの受信時に、よりシーケンス番号の若いパケットAが受信されていないため受信ノードはパケットAの損失を検出する。ところが実際にはパケットAは、遅延の大きい経路312−1を通ってBの受信後に受信されるので損失ではなく、パケットAの損出検出は誤検出となる。
再送制御を順序制御のフローごとに行わず、経路ごとに行う本実施例においては、各経路の順序逆転が生じない限りは、再送に用いるシーケンス番号の受信ノードにおける不連続は必ずパケット損失を反映するため、上記に説明したような誤検出は回避される。また経路間のジッターによるフロー内の順序逆転に比べ各経路の順序逆転が生じる確率が低ければ、本発明による誤検出の低下が期待できる。
本発明の実施例3を説明する。
実施例3は、ノードの配置、ノードの機能構成は、すべ実施例2と同じであるが、送信ノードにおいて送信パケットに対して再送IDを決定する処理のみが異なるので以下に説明する。
実施例3では、経路と再送IDとが1対1に対応せず、自由に変更できる。通常、複数の経路を一つの再送IDにまとめた場合、その再送IDに属するそれぞれの経路の遅延や遅延分散によっては、受信ノードがパケットを受信する際のパケットの到着順序が著しく乱れる可能性がある。そのため、一つの再送IDに属するパケットの到着順序が正しくない確率が一定以下となるように、一つの再送IDに属する複数の経路を決定するアルゴリズムを説明する。
送信ノード301と受信ノード302との各経路312−1〜312−Mについて、片方向、または往復の遅延時間と遅延分散とを常に測定しており、任意のタイミングで経路と再送IDのマッピングを行う。タイミングは、例えば、一定時間間隔ごとや、経路情報が更新されたタイミングなどである。マッピングの方法は、例えば、図8のようなアルゴリズムによって経路312−1〜312−Mに再送IDをマッピングする。
図8を参照すると、現在時刻における経路312−1〜312−Mを遅延時間の大きい順に並べ替え、また一次的な変数i=1にセットする(ステップA001)。次に、i==Mであるかどうかをチェックする(ステップA002)。最初はi==Mでないので(ステップA003)に進み、一時的な変数j=1にセットする。次に経路(i+j)の遅延と遅延分散、経路iの遅延分散を取得する(ステップA004)。
送信側が到着時間を見計らって受信側で順序どおりにパケットを受信できるように送信した場合に、最初に到着すべき経路iのパケットが到着するまでに、経路(i+j)の任意の数のパケットが先に到着してしまう確率をある一定に抑えられるかどうかのチェックを行う(ステップA005)。図8の例は、経路(i+j)の3個のパケットが経路iのパケットより先に到着してしまう確率が1.5%以下であることを条件としたものである。条件を満たしているならば、jをインクリメントし、i+j==Mであるかどうかチェックし、全ての経路について処理を完了したかチェックする(ステップA006)。全ての経路についての処理がまだ完了していなければ(ステップA004)に戻り、次に遅延の大きな経路についても同様のチェックを行う。
ステップA006において、i+j==Mの場合には(ステップA007)に進む。(ステップA004)と(ステップA005)を繰り返すうちに、(ステップA005)の条件を満たせない経路が出現すると(ステップA007)に進む。(ステップA007)では、経路iから経路(i+j-1)を同一の再送IDに設定し、(ステップA002)に戻る。
以上の処理を繰り返し、全ての経路についての再送IDを設定し終えると、つまりステップA002においてi==Mとなると終了し、次回のマッピング処理が起動されるまでスリープする。
以上の処理によって、例えば図9のテーブルに示される経路と再送IDとをマッピングするテーブル部分が完成する。これに従い、スケジューラは再送IDを決定することになる。
また、他にフローと再送IDを固定的にマッピングする方法や、遅延や遅延分散などの情報に無関係に経路ごとに一つ再送IDをマッピングする方法なども考えられる。
上述した実施例1、実施例2及び実施例3では、End-to-Endの送受信ノード間の通信を仮定していたが、多数のEnd-to-End通信が必ず経由する二ノード間についても、本発明を適用することができる。
図10を参照すると、任意の数の送信ノード501−1〜501−Lと、送信側転送ノード502と、受信側転送ノード503と、任意の数の受信ノード504−1〜504−Nからなり、次のようにリンクされている。各送信ノードは送信側転送ノードと、それぞれ経路511−1〜511−Lで結ばれている。送信側転送ノードと受信側転送ノードとは1以上の任意の数の経路512−1〜512−Mの複数経路で結ばれている。各受信ノードは受信側転送ノードと、それぞれ経路513−1〜513−Nで結ばれている。
例えば、送信側転送ノードと受信側転送ノード間の経路数Mが1の場合は、実施例1の形態と同様である。
また、送信側転送ノードと受信側転送ノード間の経路数Mが2以上の場合は、実施例2実施例3と同様である。
但し、上述の場合、それぞれ実施例1、実施例2、実施例3における送信ノードは送信側転送ノード、同様に受信ノードは受信側転送ノードとなる。また、送信側転送ノード内構成におけるソケットは、送信ノードから受信するパケットの入力部、受信側転送ノード内構成におけるソケットは受信ノードに送信するパケットの出力部となる。
また、この場合、第1のフローは送信ノード501−1〜501−Lと、受信ノード受信ノード504−1〜504−Nとの間の通信を送信元・宛先のアドレス・ポート番号で一意に決まるパケット群を指す。
以上の動作により、パケット損失を早期に発見できるため、送信ノード501−1〜501−Lと受信ノード504−1〜504−Nとの間でデータ送受信を、より短い時間で行う事が可能となる。
本発明の実施例5を説明する。
実施例5は、実施例2、実施例3、実施例4に示すスケジューラ213,413が、以下のような第3の基準に従う経路選択動作を行う場合である。この動作により、送信ノードと受信ノードとの間に複数の経路がある場合、受信ノードでは送信ノードが期待した順番通りにパケットを受信する確率が高くなるため、順序間違いに起因する再送頻度を減らすことができる。また、特に実施例3や、その応用である実施例4のように複数の経路でノード間が結ばれている構成に適用した場合には、より多くの通信経路を一つの再送単位として上記の再送制御を適用可能となるため通信性能向上が期待できる。
ここで、第3の基準とは、予測されたデータの到着時刻又は受信完了時刻に基づいて、最も適切な経路、例えば到着時刻が最も早いと予測される経路を選択するものである。
例えば、データ(パケット)送信時において、送信データ(パケット)の送信履歴を記憶する。この送信履歴には、送信データ(パケット)を識別する識別子や、送信開始時刻等を記述する。一方、受信側では、データ(パケット)が通る経路の状態情報(例えば、速度やパケット遅延)を送信側に送信する。この経路状態情報には、上述したデータ(パケット)の識別子のような、経路状態情報が適用される最新のデータ(パケット)を識別する情報を含める。送信側では、経路の状態情報を受信し、この経路状態に含まれているデータ(パケット)を識別する情報(例えば、識別子)により、この経路状態が有効となる送信済みのデータ(パケット)を、送信履歴から求める。そして、求めたデータ(パケット)以降のデータについて、受信した経路の状態を適用して受信完了時刻等を予測し、更に、この予測と受信した経路の状態情報とに基づいて、各経路におけるこれから送信しようとするデータの到着時刻又は受信完了時刻を予測する。
経路選択においては、予測されたデータの到着時刻又は受信完了時刻に基づいて、最も適切な経路、例えば到着時刻が最も早いと予測される経路を選択する。
ここで経路状態情報とは、通信性能の指標となる情報一般を指す。本実施の形態では、そのうち経路の速度とパケット遅延を用いる。また、経路状態情報の有効時とは、送信ノード側における経路状態情報の更新時を意味するものでなく、経路状態情報で示される経路状態となった時間、その経路状態において伝送されたパケットで特定される時刻等である。従って、経路状態情報の有効時以降の送信履歴とは、経路状態情報の有効時以降に送信されたパケットの送信履歴等をいう。尚、この時刻は、その測定の元になったパケット情報(パケットを識別する識別子)や、受信ノード側から送信される受信時等から得られるが、多少のずれはかまわない。また、経路状態情報を得る為、受信ノードが速度や遅延を測定する方法は各種提案されているが、想定している方法を以下に述べる。
送信ノードは、受信ノードへのパケットの各々に識別子と送信時刻を挿入して転送するものとする。受信ノードはパケット遅延を、送信ノードが挿入した送信時刻と自身が受信した時刻を比較することで測定する。また、送信ノードは定期的に測定用のパケット列を送信し、受信ノードはその到着時間のばらつきから速度を推定できる。推定の方法の詳細は例えば文献「Dovrolis, Ramanathan, and Moore, ”What DoPacket Dispersion Techniques Measuere?,” IEEE INFOCOM 2001」で紹介されている。前記Dovrolisらの文献においては、送信側ノードが2つのパケットを同時に送信し、送信側でこの2つのパケットの到着時刻差からリンク速度を推定する。パケットの到着間隔を広げるのは伝送遅延であり、伝送遅延はリンク速度と関係があることから、到着間隔より速度を推定可能である。
受信ノードは、定期的にこれらの測定値または推定値を経路状態情報として送信ノードに送信する。また、そのときまでに受信した最新のパケットの識別子を、送信する状態情報が有効となるパケットの識別情報として同時に送信する。これらの情報が、レポートとして送信ノードで受信される。尚、以上の方式は一例であり、本発明の実施可能性は経路状態情報及びこれが有効となるパケットの決定及び伝達の方法には依存しない。
以下に、具体的な動作を説明する。
スケジューラ213もしくは413は、次に転送すべきパケットにつき、送信経路毎に現在までに受信している経路情報等のレポートおよびその情報が有効となるパケットの送信以降の送信履歴を参照し、受信側ノードでの到着遅延を予測する、送信履歴は記憶部216もしくは416に記憶されている。スケジューラ213もしくは413は、予測した到着遅延が最小となる経路を次に転送すべきパケットの送信経路として選択し、選択した経路へのパケット転送後、その転送時刻を記憶部216もしくは416上の送信履歴に加える。
スケジューラ213もしくは413で動作する経路ごとの到着遅延推定方法の一例としてスケジューラ動作例を図11に示す。
図11中600-1, 600-2, 600-3はデータパケットであり、その送信側ノードでの送信履歴および予測と受信側ノードでの受信履歴および予測がそれぞれ時間軸上で示されている。例えばデータパケット600-1は送信側ノードで時刻T1に送信が開始され、時刻T2に送信が完了している。また同じパケット600-1は受信側ノードで時刻T3より受信が開始され、時刻T4に受信が完了している。ここでT1とT3との差I1が伝送遅延である。また、T4とT2との差I2が、伝送遅延I1に送信インタフェースと転送経路の速度差とにより生じるパケットの分散を加えた総遅延となる。
ここで、時間軸上TPの現在時刻において、パケット600-3を送信しようとしているものとする。そして、この経路につき、T5とTPの間でレポート結果通知の受信により、送信側ノードが有している経路状態情報が更新され、この経路状態情報が有効となるパケットは600-1からとする。そこで、経路状態情報が有効となるパケット600-1、600-2の送信履歴に基づいて、パケット600-1、パケット600-2を考慮したパケット600-3の受信完了時刻の推定を行う。
すると、パケット600-1より後に送信されたパケット600-2の受信側ノードでの受信開始時刻及び完了時刻は現在受信している経路状態情報に含まれる速度及び伝送遅延から推定される。推定された受信開始時刻は図11中T5、受信完了時刻はT7である。ここで、この推定を行わず、経路状態情報が示す伝送遅延がI1と等しいとすると、TPに送信開始したパケット600-3は時刻T6に受信開始されるはずである。しかし、T6では、いまだ受信側ノードでは、パケット600-2の受信が完了していないと推定されるので、パケット600-3の推定受信開始時刻はパケット600-2の受信が完了すると推定されるT7以降となり、パケット600-3の推定受信完了時刻は現在受信している経路状態情報に含まれる経路速度から推定されるパケット分散を加えたT8となる。同様にパケット600-3の受信完了時刻の推定を各経路につき行い、それが最も早い時刻となる経路にパケット600-3は送出される。
なお、図11におけるTPの時点での受信側の到着時刻推定に用いている経路状態情報は、T5とTPの間でレポート結果通知の受信により更新されたものである。すると、パケット600-2を送信した際の到着時刻推定はTPにおけるより古い経路状態情報に基づいて行われたことになる。この古い状態情報を情報A、T5とTPとの間で更新された新しい情報を情報Bとすると、リンク状態の変動により情報Aと情報Bに含まれる遅延や経路速度が異なれば、Aに基づく到着時刻予測は、図11に示される情報Bに基づく到着時刻予測と異なっていたはずである。したがって、より正確な予測を行うために、図11に示したパケット600-1および600-2の到着時刻予測は情報Bを得た結果の修正を反映している。ひとたび経路状態情報の更新が行われると、その更新が有効となるパケット以前の送信履歴は参照不要となるのでこれを破棄する。
更に、本発明を適用した場合のパケット到着時刻推定及び受信完了時刻と、従来のパケット到着時刻推定及び受信完了時刻との差を、図18を用いて具体的に説明する。
図18中500-1, 500-2, 500-3は送出されるデータパケットであり、その送信側ノードでのパケットの送信履歴(実線)と受信側ノードでの実際のパケットの受信履歴(実線)がそれぞれ時間軸上で示されている。また、パケットの到着及び受信完了時刻の予測(点線)もそれぞれ時間軸上で示されている。また、図18の上部に記した曲線は、伝送経路の速度変化を示すものである。図18では、時間が経過するとともに伝送速度が遅くなっている旨を示している。
まず、実際のパケットの送受信であるが、送信側ノード側から時刻T1にデータパケット500-1の送信が開始され、時刻T2に送信が完了している。そして、受信側ノードで、パケット500-1は、時刻T3より受信が開始され、時刻T5に受信が完了している。
その後、送信側ノード側から時刻T4にデータパケット500-2の送信が開始され、時刻T8に送信が完了している。そして、受信側ノード側では、通信速度の低下により、データパケット500-2は、時刻T7より受信が開始され、時刻T13に受信が完了している。
更に、送信側ノード側から時刻T9にデータパケット500-3の送信が開始され、時刻T10に送信が完了している。そして、受信側ノード側では、データパケット500-3が、時刻T14より受信が開始され、時刻T16に受信が完了している。
次に、上述のような実際のパケットの送受信において、本発明を適用した場合のパケットの到着時刻及び受信完了時刻の予測について説明する。
上述の如く、データパケット500-1は、時刻T1に、データパケット500-1の送信時刻及びパケット識別子の情報と共に送信側ノードで送信が開始され、時刻T2に送信が完了している。このとき、送信側ノードでは、送信履歴としてデータパケット500-1の送信時刻及びパケット識別子を記憶している。
続いて、送信側ノードより、データパケット500-2が、データパケット500-2の送信時刻及びパケット識別子の情報と共に時刻T4に送信が開始され、時刻T8に送信が完了している。このとき、送信側ノードでは、上述と同様に、送信履歴としてデータパケット500-2の送信時刻及びパケット識別子を記憶している。
受信ノード側では、データパケット500-1が、時刻T3より受信が開始され、時刻T5に受信が完了している。このとき、受信ノード側は、データパケット500-1の識別子、受信完了時刻及び通信速度等の情報をレポートとして、送信ノードに送信する。
送信ノード側では、時刻TXに受信ノードからレポートを受信したとする。そして、レポートに含まれるデータパケット500-1の識別子により、レポートの経路状態情報の有効時は、データパケット500-1の送信時刻T1と判断する。
そこで、送信ノードは、時刻T1以降の送信履歴に基づいて、データパケット500-3の到着時刻及び受信完了時刻の予測を行う。時刻T1以降の送信履歴によると、対象となるデータパケットはデータパケット500-1、データパケット500-2である。データパケット500-1の受信完了時刻は、レポートにより、時刻T5とわかる。データパケット500-2の到着時刻及び受信完了時刻の予測には、レポートのデータパケット500-1の通信速度や、受信完了時刻が用いられ、これらの情報により、伝送遅延やパケットの総遅延の時間がわかる。尚、伝送遅延はT1とT3との差I1である。また、パケットの総遅延は、伝送遅延I1に送信インターフェースと転送経路の速度差とにより生じるパケットの分散を加えた時間であり、T5とT2との差I2である。データパケット500-2の到着時刻は、伝送遅延I1により求められ、データパケット500-2の送信時刻T4に伝送遅延I1を加えた時刻T6と予測される。また、データパケット500-2の受信完了時刻は、レポートの通信速度によりパケット遅延を求めることができるので、データパケット500-2の受信完了時刻は時刻T12と予測することができる。従って、この経路において、データパケット500-3の受信ノードの到着時刻は、時刻T12以降と予測することができる。また、この時刻T12から受信が開始された場合の受信完了時刻は、上述したパケット分散の予測により、時刻T15と予測することができる。このような予測の結果によれば、予測したデータパケット500-3の到着時刻T12と、実際のデータパケット500-3の到着時刻T14との差は、時間ID1である。
一方、従来技術によるパケットの到着時刻及び受信完了時刻の予測では、受信ノードより得られたレポートの到着時刻において、レポートで示される経路状態を有効としており、データパケット500-3の予測にあたっても、レポートで示される経路状態をそのまま適用している。すなわち、データパケット500-3の到着時刻の予測にあたって、データパケット500-3の送信時刻T9に伝送遅延I1を加えた時刻T11と予測している。このような予測の結果によれば、予測したデータパケット500-3の到着時刻T11と、実際のデータパケット500-3の到着時刻T14との差は、時間ID2である。
従って、実際の到着時間との誤差時間ID1と誤差時間ID2とでは、本発明による予測による誤差時間ID1の方が、誤差時間ID2よりも誤差が少ないことは、図面からも明らかである。
次に、以上説明したような到着時刻推定を含む、スケジューラの経路選択の手順を図12に示す。
まず、キューイング部312により、パケットが受信される(Step 100)。
次に、いずれかの経路で、その経路から最後のパケットを送信した後に経路状態情報が更新されたかを判断する(Step 101)。経路状態情報が更新された場合には、更新された全ての経路で、経路状態情報が有効となる以前の送信履歴を削除する(Step 102)。
続いて、各経路において、経路状態情報と送信履歴とに基づいて、パケットの到着時刻を予測(推定)する(Step 103)。そして、予測(推定)到着時刻が最も早い経路にパケットを送信する(Step 104)。
最後に、パケット送信に用いた経路の送信履歴を更新する(Step 105)。
以上の如く、経路状態情報更新の際にはそれ以前に送信済みのパケットの到着時刻予測が修正され、それ以降のパケット送信の際の判断に反映されるので、結果的に過去の送信実績の補償が可能になる。この補償の効果は各経路の往復遅延が大きく、経路の状態変動の周期に対して無視できない場合に顕著になる。以下にその理由を述べる。
経路の状態変動が往復遅延程度の時間で起こる場合、ある状態情報を送信側ノードが取得したころには既に当該経路の状態は変わっているかもしれないのでその情報は信頼するに足らない。したがってパケットを送信する時点で経路選択およびタイミング設定を最適に行うことは不可能であり、一般には非最適な経路およびタイミングでパケットが送信されることになる。状態情報更新の際に到着時刻予測を修正することは、既に行われた非最適な送信のインパクトを、状態情報更新間隔分の時間が経ってから推定することに等しい。例えば、以前に高すぎるレートで送信していた場合、状態情報の更新により送信済みパケットの到着予測時刻は延長されてその経路の送信コストは引き上げられる。
以上のような、状態情報更新による過去の送信パケットの到着時刻予測の修正は経路選択の最適化の効果があるが、経路選択のみならず送信タイミング制御に到着時刻予測の修正をフィードバックすると各経路の輻輳制御も長期的に最適化される。
次に、実施するための他の形態について説明する。
以下の形態では簡単なタイミング制御を実装した場合の動作を説明する。
次に示す他の形態では、上述した形態と同様に送出パケットの受信完了時刻を経路ごとに推定し、最も評価値の高い経路を選択するが、新たに経路ごとに許容推定遅延を定義し、推定遅延がその値を超えないよう送信側ノードが送信タイミングを制御する簡単なタイミング制御を導入することもできる。図13を用いて本形態の動作を説明する。
図13中、許容推定遅延をTMとしている。この意味は、TPの時点でパケットを送出するにはそのパケットはTM+TPまでに受信完了すると推定されなければならないということである。ところが上述した形態と同様な手段でパケット400-3の受信完了時刻を推定するとT8となり、これはTM+TPよりも未来である。したがって推定受信完了時刻がTM+TPとなるまでの間、送信側ノード100はこの経路からパケット400-3を送出できない。この場合送信側ノード100はいずれかの経路の推定受信完了時刻がTM+TP以下となるまでパケット400-3を保留し、最も早く保留が解ける経路よりこのパケットを送信する。以上の形態でのスケジューリングの動作を図14に示す。
まず、キューイング部312により、パケットが受信される(Step 200)。
次に、いずれかの経路で、その経路から最後のパケットを送信した後に経路状態情報が更新されたかを判断する(Step 201)。経路状態情報が更新された場合には、更新された全ての経路で、経路状態情報が有効となる以前の送信履歴を削除する(Step 202)。
続いて、各経路において、経路状態情報と送信履歴とに基づいて、パケットの到着時刻を予測(推定)する(Step 203)。そして、予測(推定)された到着時刻を用いて、全ての経路について、(予測(推定)到着時刻)>(現在時刻+許容推定遅延)であるかを判断し(Step 204)、いずれかの経路で(予測(推定)到着時刻)≦(現在時刻+許容推定遅延)である場合には、それらの経路のうち予測(推定)到着時刻が最も早い経路にパケットを送信する(Step 205)。
一方、全ての経路で、(予測(推定)到着時刻)>(現在時刻+許容推定遅延)である場合には、いずれかの経路で現在時刻が(予測到着時刻−許容推定遅延)となるまで待機し、いずれかの経路で条件を満たした場合にはStep 205に進む(Step 206)。
最後に、パケット送信に用いた経路の送信履歴を更新する(Step 207)。
尚、許容遅延TMの値は経路ごとに独立に設定してよい。例えば各経路の遅延や経由するサーバのバッファ量等が大きく異なる場合、特に高負荷下ではTMの設定値を各経路で異なる設定とすることで各経路の帯域の有効活用が図れると考えられる。
また、経路選択の判断は推定受信完了時刻の他に、例えばパケット欠落率や回線使用料金などが監視可能であればそれらを優先して評価してもよい。また判断の方法は送られるデータの属性により異なってもよい。例えば音声データであれば遅延を、緊急ではないファイル転送データであれば回線使用料金を重視した選択を行うなどである。本実施例の特徴は、いずれの場合においても、送信ノードが経路状態情報を更新する際に同時にその更新が有効となる送信パケットまたは時刻を取得し、有効パケットまたは有効時刻以降の送信履歴より送信コストへのインパクトを推定し、コスト最小の経路に次のパケットを送信することである。その結果、遅延が大きく経路の状態変動の時定数に比べ無視できないほど大きい場合にも、過去の非最適な送信により既に与えてしまったコスト基準へのインパクトをその後の送信タイミングの調整に反映させることで補償することができ、経路の利用効率を向上させる効果がある。
尚、上述した実施例1、実施例2、実施例3、実施例4及び実施例5において、ノードのフロー識別部211,222と、スケジューラ213と、再送制御部214と再送ID順序チェック部221と、フロー順序チェック部223等をそれぞれ別の部として構成したが、これらの全部又は一部を、制御プログラムで動作するCPU等で構成しても良い。

Claims (64)

  1. 送信ノードと、受信ノードとの間の通信方法であって、
    送信ノードにおいて、
    順序制御に関する第1の基準に基づいた1以上のフローを有する第1のフロー群と、再送制御に関する第2の基準に基づいた1以上のフローを有する第2のフロー群とを設け、前記第1のフロー群に属する各々のフローに一意の第1の識別子を割り当て、前記第2のフロー群に属する各々のフローに一意の第2の識別子を割り当て、
    入力されたパケットを、前記第1の基準に基づいて前記第1のフロー群に属する1以上のフローに分類し、かつ、前記第2の基準に基づいて前記第2のフロー群に属する1以上のフローに分類し、前記パケットに、前記第1の識別子と、前記第1の識別子で特定される第1のフロー内で一意の第1のシーケンス番号と、前記第2の識別子と、前記第2の識別子で特定されるフロー内で一意の第2のシーケンス番号とを付与して送信し、
    受信ノードにおいて、
    受信した全てのパケットを第2の識別子に基づいて分類し、各第2のフローに関して、受信していない第2のシーケンス番号のパケットをチェックし、送信ノード対してこれらの再送を要求し、
    送信ノードにおいて、
    受信ノードからの要求された第2のフローの第2のシーケンス番号のパケットを再送し、
    受信ノードにおいて、
    受信した全てのパケットを第1の識別子に基づいて分類し、各第1のフローに関して、第1のシーケンス番号に基づいてパケットを順番に並べ、順番になっているパケットから受信処理を行うことを特徴とする通信方法。
  2. 送信ノードと受信ノードは一つの通信経路で結ばれ、送信ノードの第2のフロー群は単一のフローで構成され、単一の通信経路を利用してパケットを送信することを特徴とする請求項1に記載の通信方法。
  3. 送信ノードは、パケットを送信する通信経路が複数ある場合、パケット送信のスケジュールに関する第3の基準に基づいて、パケットを送信する通信経路を選択することを特徴とする請求項1に記載の通信方法。
  4. 送信ノードと受信ノードとは複数の通信経路で結ばれ、
    送信ノードは、第2の基準として、送信するパケットの通過する通信経路に対応して一意のフローに分類し、第3の基準として、再送時に初回送信時とは独立に通信経路を選択することを特徴とする請求項3に記載の通信方法。
  5. 送信ノードと受信ノードとは複数の通信経路で結ばれ、
    送信ノードは、第2の基準として、送信するパケットの通過する通信経路よりも少ない数のフローに分類し、第3の基準として、再送時に初回送信時とは独立に通信経路を選択することを特徴とする請求項3に記載の通信方法。
  6. 送信ノードは他の通信ノードの送信するパケットを転送する送信側転送ノードであり、
    受信ノードは他の通信ノードの受信するパケットを転送する受信側転送ノードであることを特徴とする請求項1に記載の通信方法。
  7. 送信ノードと受信ノードは一つの通信経路で結ばれ、
    送信ノードの第2のフロー群は、単一のフローで構成され、単一の通信経路を利用してパケットを送信することを特徴とする請求項6に記載の通信方法。
  8. 送信ノードと受信ノードとは複数の通信経路で結ばれ、
    送信ノードは、第2の基準として、送信するパケットの通過する通信経路に対応して一意のフローに分類し、第3の基準として、再送時に初回送信時とは独立に通信経路を選択することを特徴とする請求項6に記載の通信方法。
  9. 送信ノードと受信ノードとは複数の通信経路で結ばれ、
    送信ノードは、第2の基準として、送信するパケットの通過する通信経路よりも少ない数のフローに分類し、第3の基準として、再送時に初回送信時とは独立に通信経路を選択することを特徴とする請求項6に記載の通信方法。
  10. 送信ノードの第3の基準として、送信側ノードにおいて入力されるパケットごとに、選択可能な各経路の経路状態情報と、前記経路状態情報が有効となる時刻又は送信済みパケットの識別情報と、前記経路状態情報が有効となる時刻以降の送信履歴又は送信済みパケットの識別情報で特定されるパケットの送信以降の送信履歴とに基づいて、経路の選択または選択優先度を行うことを特徴とする請求項3に記載の通信方法。
  11. 前記経路状態情報は、経路の遅延を含むことを特徴とする請求項10に記載の通信方法。
  12. 前記経路状態情報は、経路の通信速度を含むことを特徴とする請求項10に記載の通信方法。
  13. 前記経路状態情報は、経路の負荷を含むことを特徴とする請求項10に記載の通信方法。
  14. 経路の選択又は選択優先度の更新に際し、各経路の経路状態情報が更新されると、更新以前に送信されたパケットに関する送信コスト計算結果に修正を加えることを特徴とする請求項10に記載の通信方法。
  15. 各経路の送信コスト計算結果の修正に際し、最新の経路状態情報が有効となる最初の送信済パケット以前の履歴を破棄することを特徴とする請求項14に記載の通信方法。
  16. パケットを送信する経路として、受信側ノードでの受信完了時刻の推定値が最も早い経路を選択することを特徴とする請求項10に記載の通信方法。
  17. パケットを送信する経路として、受信側ノードで特定時刻までに受信完了できるデータ量の推定値が最大の経路を選択することを特徴とする請求項10に記載の通信方法。
  18. 各経路につき、推測される現在の経路状態に応じてデータの送信を中断することを特徴とする請求項10に記載の通信方法。
  19. 前記データ送信中断の基準が、推定受信完了時刻が特定の値以上であることを特徴とする請求項18に記載の通信方法。
  20. 経路選択又は送信中断の判断を、送信データの属性ごとに異なるポリシーにより行うことを特徴とする請求項10に記載の通信方法。
  21. パケットを送信する送信部とパケットを受信する受信部とから構成され、パケットの再送制御と順序制御とを独立に行うノードであって、
    前記送信部は、
    順序制御に関する第1の基準に基づいた第1のフロー群の各フローに一意に割り当てられた第1の識別子と、前記第1のフロー群に属する各々のフロー内で一意の第1のシーケンス番号と、再送制御に関する第2の基準に基づいた第2のフロー群の各フローに一意に割り当てられた第2の識別子と、前記第2のフロー群に属する各々のフロー内で一意の第2のシーケンス番号とを、送信するパケットに付加して送信する手段と、
    パケットを受信したノードから再送を要求されたパケットを、前記第2の識別子及び第2のシーケンス番号から特定し、そのパケットを再送する手段と
    を有し、
    前記受信部は、
    受信した全てのパケットを前記第2の識別子に基づいて分類し、各第2のフローに関して、受信していない第2のシーケンス番号のパケットをチェックし、その第2の識別子と第2のシーケンス番号とを、パケットに送信したノードに対して送信して再送を要求する手段と、
    受信した全てのパケットを前記第1の識別子に基づいて分類し、各第1のフローに関して、前記第1のシーケンス番号に基づいてパケットを順番に並べ、順番になっているパケットから受信処理を行う手段と
    を有することを特徴とするノード。
  22. ノード間は一つの通信経路で結ばれ、第2のフロー群は単一のフローで構成され、単一の通信経路を利用してパケットを送信することを特徴とする請求項21に記載のノード。
  23. パケットを送信する通信経路が複数ある場合、パケット送信のスケジュールに関する第3の基準に基づいて、パケットを送信する通信経路を選択する手段を有することを特徴とする請求項21に記載のノード。
  24. ノード間は複数の通信経路で結ばれ、
    第2の基準として、送信するパケットの通過する通信経路に対応して一意のフローに分類し、第3の基準として、再送時に初回送信時とは独立に通信経路を選択することを特徴とする請求項23に記載のノード。
  25. ノード間は複数の通信経路で結ばれ、
    第2の基準として、送信するパケットの通過する通信経路よりも少ない数のフローに分類し、第3の基準として、再送時に初回送信時とは独立に通信経路を選択することを特徴とする請求項23に記載のノード。
  26. ノードの送信部は他の通信ノードの送信するパケットを転送する送信側転送ノードであり、
    ノードの受信部は他の通信ノードの受信するパケットを転送する受信側転送ノードであることを特徴とする請求項21に記載のノード。
  27. ノード間は一つの通信経路で結ばれ、
    第2のフロー群は、単一のフローで構成され、単一の通信経路を利用してパケットを送信することを特徴とする請求項26に記載のノード。
  28. ノード間は複数の通信経路で結ばれ、
    第2の基準として、送信するパケットの通過する通信経路に対応して一意のフローに分類し、第3の基準として、再送時に初回送信時とは独立に通信経路を選択することを特徴とする請求項26に記載のノード。
  29. ノード間は複数の通信経路で結ばれ、
    第2の基準として、送信するパケットの通過する通信経路よりも少ない数のフローに分類し、第3の基準として、再送時に初回送信時とは独立に通信経路を選択することを特徴とする請求項26に記載のノード。
  30. 前記通信経路を選択する手段は、第3の基準として、ノードにおいて入力されるパケットごとに、選択可能な各経路の経路状態情報と、前記経路状態情報が有効となる時刻又は送信済みパケットの識別情報と、前記経路状態情報が有効となる時刻以降の送信履歴又は送信済みパケットの識別情報で特定されるパケットの送信以降の送信履歴とに基づいて、経路の選択または選択優先度を行うことを特徴とする請求項23に記載のノード。
  31. 前記経路状態情報は、経路の遅延を含むことを特徴とする請求項30に記載のノード。
  32. 前記経路状態情報は、経路の通信速度を含むことを特徴とする請求項30に記載のノード。
  33. 前記経路状態情報は、経路の負荷を含むことを特徴とする請求項30に記載のノード。
  34. 前記通信経路を選択する手段は、経路の選択又は選択優先度の更新に際し、各経路の経路状態情報が更新されると、更新以前に送信されたパケットに関する送信コスト計算結果に修正を加えることを特徴とする請求項30に記載のノード。
  35. 前記通信経路を選択する手段は、各経路の送信コスト計算結果の修正に際し、最新の経路状態情報が有効となる最初の送信済パケット以前の履歴を破棄することを特徴とする請求項34に記載のノード。
  36. 前記通信経路を選択する手段は、パケットを送信する経路として、受信側ノードでの受信完了時刻の推定値が最も早い経路を選択することを特徴とする請求項30に記載のノード。
  37. 前記通信経路を選択する手段は、パケットを送信する経路として、受信側ノードで特定時刻までに受信完了できるデータ量の推定値が最大の経路を選択することを特徴とする請求項30に記載のノード。
  38. 前記通信経路を選択する手段は、各経路につき、推測される現在の経路状態に応じてデータの送信を中断することを特徴とする請求項30に記載のノード。
  39. 前記データ送信中断の基準が、推定受信完了時刻が特定の値以上であることを特徴とする請求項38に記載のノード。
  40. 前記通信経路を選択する手段は、経路選択又は送信中断の判断を、送信データの属性ごとに異なるポリシーにより行うことを特徴とする請求項30に記載のノード。
  41. パケットの再送制御と順序制御とを独立に行うノードの制御プログラムであって、
    前記ノードがコンピュータであり、
    前記制御プログラムは前記コンピュータを、
    順序制御に関する第1の基準に基づいた第1のフロー群の各フローに一意に割り当てられた第1の識別子と、前記第1のフロー群に属する各々のフロー内で一意の第1のシーケンス番号と、再送制御に関する第2の基準に基づいた第2のフロー群の各フローに一意に割り当てられた第2の識別子と、前記第2のフロー群に属する各々のフロー内で一意の第2のシーケンス番号とを、送信するパケットに付加して送信する手段と、
    パケットを受信したノードから再送を要求されたパケットを、前記第2の識別子及び第2のシーケンス番号から特定し、そのパケットを再送する手段と、
    受信した全てのパケットを前記第2の識別子に基づいて分類し、各第2のフローに関して、受信していない第2のシーケンス番号のパケットをチェックし、その第2の識別子と第2のシーケンス番号とを、パケットに送信したノードに対して送信して再送を要求する手段と、
    受信した全てのパケットを前記第1の識別子に基づいて分類し、各第1のフローに関して、前記第1のシーケンス番号に基づいてパケットを順番に並べ、順番になっているパケットから受信処理を行う手段と
    して機能させることを特徴とするノードの制御プログラム。
  42. ノード間は一つの通信経路で結ばれ、第2のフロー群は単一のフローで構成され、単一の通信経路を利用してパケットを送信することを特徴とする請求項41に記載のノードの制御プログラム。
  43. 前記制御プログラムは前記ノードを、パケットを送信する通信経路が複数ある場合、パケット送信のスケジュールに関する第3の基準に基づいて、パケットを送信する通信経路を選択する手段として更に機能させることを特徴とする請求項41に記載のノードの制御プログラム。
  44. ノード間は複数の通信経路で結ばれ、
    第2の基準として、送信するパケットの通過する通信経路に対応して一意のフローに分類し、第3の基準として、再送時に初回送信時とは独立に通信経路を選択することを特徴とする請求項43に記載のノードの制御プログラム。
  45. ノード間は複数の通信経路で結ばれ、
    第2の基準として、送信するパケットの通過する通信経路よりも少ない数のフローに分類し、第3の基準として、再送時に初回送信時とは独立に通信経路を選択することを特徴とする請求項43に記載のノードの制御プログラム。
  46. ノードの送信側は他の通信ノードの送信するパケットを転送する送信側転送ノードであり、
    ノードの受信側は他の通信ノードの受信するパケットを転送する受信側転送ノードであることを特徴とする請求項41に記載のノードの制御プログラム。
  47. ノード間は一つの通信経路で結ばれ、
    第2のフロー群は、単一のフローで構成され、単一の通信経路を利用してパケットを送信することを特徴とする請求項46に記載のノードの制御プログラム。
  48. ノード間は複数の通信経路で結ばれ、
    第2の基準として、送信するパケットの通過する通信経路に対応して一意のフローに分類し、第3の基準として、再送時に初回送信時とは独立に通信経路を選択することを特徴とする請求項46に記載のノードの制御プログラム。
  49. ノード間は複数の通信経路で結ばれ、
    第2の基準として、送信するパケットの通過する通信経路よりも少ない数のフローに分類し、第3の基準として、再送時に初回送信時とは独立に通信経路を選択することを特徴とする請求項46に記載のノードの制御プログラム。
  50. 制御プログラムは、前記通信経路を選択する手段を、ノードにおいて入力されるパケットごとに、選択可能な各経路の経路状態情報と、前記経路状態情報が有効となる時刻又は送信済みパケットの識別情報と、前記経路状態情報が有効となる時刻以降の送信履歴又は送信済みパケットの識別情報で特定されるパケットの送信以降の送信履歴とに基づいて、経路の選択または選択優先度を行うように機能させることを特徴とする請求項43に記載のノードの制御プログラム。
  51. 前記経路状態情報は、経路の遅延を含むことを特徴とする請求項50に記載のノードの制御プログラム。
  52. 前記経路状態情報は、経路の通信速度を含むことを特徴とする請求項50に記載のノードの制御プログラム。
  53. 前記経路状態情報は、経路の負荷を含むことを特徴とする請求項50に記載のノードの制御プログラム。
  54. 制御プログラムは、前記通信経路を選択する手段を、経路の選択又は選択優先度の更新に際し、各経路の経路状態情報が更新されると、更新以前に送信されたパケットに関する送信コスト計算結果に修正を加えるように機能させることを特徴とする請求項50に記載のノードの制御プログラム。
  55. 制御プログラムは、前記通信経路を選択する手段を、各経路の送信コスト計算結果の修正に際し、最新の経路状態情報が有効となる最初の送信済パケット以前の履歴を破棄するように機能させることを特徴とする請求項54に記載のノードの制御プログラム。
  56. 制御プログラムは、前記通信経路を選択する手段を、パケットを送信する経路として、受信側ノードでの受信完了時刻の推定値が最も早い経路を選択するように機能させることを特徴とする請求項50に記載のノードの制御プログラム。
  57. 御プログラムは、前記通信経路を選択する手段を、パケットを送信する経路として、受信側ノードで特定時刻までに受信完了できるデータ量の推定値が最大の経路を選択するように機能させることを特徴とする請求項50に記載のノードの制御プログラム。
  58. 御プログラムは、前記通信経路を選択する手段を、各経路につき、推測される現在の経路状態に応じてデータの送信を中断するように機能させることを特徴とする請求項50に記載のノードの制御プログラム。
  59. 前記データ送信中断の基準が、推定受信完了時刻が特定の値以上であることを特徴とする請求項58に記載のノードの制御プログラム。
  60. 制御プログラムは、前記通信経路を選択する手段を、経路選択又は送信中断の判断を、送信データの属性ごとに異なるポリシーにより行うように機能させることを特徴とする請求項50に記載のノードの制御プログラム。
  61. 通信方法であって、
    送信パケットに、順序制御のための情報とは別に、送信フローを識別する識別子と、前記送信フロー内におけるシーケンス番号とを付与し、受信側で前記識別子と前記シーケンス番号とに基づいて、送信フローごとに再送制御を行うことを特徴とする通信方法。
  62. 通信方法であって、
    送信パケットに、順序制御のための情報とは別に、送信フローを識別する識別子と、前記送信フロー内におけるシーケンス番号とを付与し、受信側で前記識別子と前記シーケンス番号とに基づいて、送信フローごとにパケットの損失を検出することを特徴とする通信方法。
  63. ノードであって、
    順序制御に関する第1の基準に基づいた第1のフロー群の各フローに一意に割り当てられた第1の識別子と、前記第1のフロー群に属する各々のフロー内で一意の第1のシーケンス番号と、再送制御に関する第2の基準に基づいた第2のフロー群の各フローに一意に割り当てられた第2の識別子と、前記第2のフロー群に属する各々のフロー内で一意の第2のシーケンス番号とを、パケットに付加して送信する手段と、
    前記第2の識別子と前記第2のシーケンス番号とに基づいて、送信フローごとに検出された損失パケットを再送する手段と
    を有することを特徴とするノード。
  64. ノードの制御プログラムであって、
    前記ノードがコンピュータであり、
    前記制御プログラムは前記コンピュータを、
    順序制御に関する第1の基準に基づいた第1のフロー群の各フローに一意に割り当てられた第1の識別子と、前記第1のフロー群に属する各々のフロー内で一意の第1のシーケンス番号と、再送制御に関する第2の基準に基づいた第2のフロー群の各フローに一意に割り当てられた第2の識別子と、前記第2のフロー群に属する各々のフロー内で一意の第2のシーケンス番号とを、パケットに付加して送信する手段と、
    前記第2の識別子と前記第2のシーケンス番号とに基づいて、送信フローごとに検出された損失パケットを再送する手段と
    して機能させることを特徴とするノードの制御プログラム。
JP2005516898A 2004-01-09 2005-01-07 通信方法 Expired - Fee Related JP4497322B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2004004795 2004-01-09
JP2004004795 2004-01-09
JP2004260332 2004-09-07
JP2004260332 2004-09-07
PCT/JP2005/000124 WO2005067261A1 (ja) 2004-01-09 2005-01-07 通信方法

Publications (2)

Publication Number Publication Date
JPWO2005067261A1 JPWO2005067261A1 (ja) 2007-12-27
JP4497322B2 true JP4497322B2 (ja) 2010-07-07

Family

ID=34752104

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005516898A Expired - Fee Related JP4497322B2 (ja) 2004-01-09 2005-01-07 通信方法

Country Status (5)

Country Link
US (1) US20060256803A1 (ja)
EP (1) EP1705870B1 (ja)
JP (1) JP4497322B2 (ja)
KR (1) KR100863539B1 (ja)
WO (1) WO2005067261A1 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070070895A1 (en) * 2005-09-26 2007-03-29 Paolo Narvaez Scaleable channel scheduler system and method
WO2007083687A1 (ja) * 2006-01-23 2007-07-26 Nec Corporation 通信方法、通信システム、ノードおよびプログラム
US7551929B2 (en) * 2006-05-08 2009-06-23 Skyhook Wireless, Inc. Estimation of speed and direction of travel in a WLAN positioning system using multiple position estimations
US8014788B2 (en) * 2006-05-08 2011-09-06 Skyhook Wireless, Inc. Estimation of speed of travel using the dynamic signal strength variation of multiple WLAN access points
US7835754B2 (en) * 2006-05-08 2010-11-16 Skyhook Wireless, Inc. Estimation of speed and direction of travel in a WLAN positioning system
US7551579B2 (en) 2006-05-08 2009-06-23 Skyhook Wireless, Inc. Calculation of quality of wlan access point characterization for use in a wlan positioning system
WO2008006077A2 (en) 2006-07-07 2008-01-10 Skyhook Wireless Inc. Systems and methods of gathering information from wlan- enabled access points to estimate position of a wlan positioning device
US9379852B2 (en) 2006-09-05 2016-06-28 Nec Corporation Packet recovery method, communication system, information processing device, and program
JP2008098798A (ja) * 2006-10-10 2008-04-24 Nec Corp 通信システムにおけるデータ伝送状況判定方法および通信装置
KR100859499B1 (ko) * 2007-01-15 2008-09-22 강릉대학교산학협력단 데이터 송수신 방법 및 그에 따른 통신 시스템
US8923141B2 (en) * 2007-03-16 2014-12-30 Cisco Technology, Inc. Providing clock synchronization in a network
US9686045B2 (en) * 2007-04-04 2017-06-20 Lantiq Beteiligungs-GmbH & Co. KG Data transmission and retransmission
US20080248741A1 (en) * 2007-04-05 2008-10-09 Farshid Alizadeh-Shabdiz Time difference of arrival based estimation of direction of travel in a wlan positioning system
US20080248808A1 (en) * 2007-04-05 2008-10-09 Farshid Alizadeh-Shabdiz Estimation of position, speed and bearing using time difference of arrival and received signal strength in a wlan positioning system
JP5205819B2 (ja) * 2007-06-06 2013-06-05 日本電気株式会社 通信システムおよびそのパケットスケジューリング方法ならびに送信ノード
EP2066101B1 (en) * 2007-11-28 2012-10-17 Alcatel Lucent System and method for an improved high availability component implementation
US8121128B2 (en) * 2008-02-26 2012-02-21 Qualcomm Incorporated Method and apparatus for link control in a wireless communication system
KR101039550B1 (ko) 2008-06-10 2011-06-09 (주)씨디네트웍스 데이터 전송률 계산 방법 및 이를 이용한 대역폭 설정 방법
JP2010033188A (ja) * 2008-07-25 2010-02-12 Fujitsu Ltd 送信経路選択装置、データ送信システム、コンピュータ装置および送信経路選択方法
JP5308802B2 (ja) * 2008-12-16 2013-10-09 ルネサスエレクトロニクス株式会社 Canノード
ES2359522B1 (es) * 2008-12-18 2012-04-02 Vodafone España, S.A.U. Procedimiento y estación base de radio para planificar tr�?fico en redes telefónicas celulares de �?rea amplia.
US20100306442A1 (en) * 2009-06-02 2010-12-02 International Business Machines Corporation Detecting lost and out of order posted write packets in a peripheral component interconnect (pci) express network
JPWO2011046056A1 (ja) * 2009-10-14 2013-03-07 日本電気株式会社 パケット通信の伝送制御方法及びパケット通信システム
JP4973749B2 (ja) * 2010-03-02 2012-07-11 沖電気工業株式会社 通信装置及び通信制御方法
JP5682618B2 (ja) * 2010-03-03 2015-03-11 日本電気株式会社 パケット再送制御システム、方法、及びプログラム
US9276870B2 (en) * 2010-07-09 2016-03-01 Telefonaktiebolaget L M Ericsson (Publ) Switching node with load balancing of bursts of packets
CN102404166B (zh) * 2011-10-27 2015-04-08 华为技术有限公司 丢包检测方法和***、发送设备及接收设备
US9614646B2 (en) * 2015-03-20 2017-04-04 Vmware, Inc. Method and system for robust message retransmission
CN111345009B (zh) * 2017-11-17 2023-10-31 株式会社Ntt都科摩 通信装置以及通信方法
US10785271B1 (en) 2019-06-04 2020-09-22 Microsoft Technology Licensing, Llc Multipoint conferencing sessions multiplexed through port

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08288949A (ja) * 1995-04-12 1996-11-01 Nippon Telegr & Teleph Corp <Ntt> 情報転送システム
JPH10243050A (ja) * 1997-02-28 1998-09-11 Mitsubishi Electric Corp データ通信システム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5594490A (en) * 1994-05-23 1997-01-14 Cable Services Technologies, Inc. System for distributing video/audio files from central location to a plurality of cable headends
US6512761B1 (en) * 1999-02-02 2003-01-28 3Com Corporation System for adjusting billing for real-time media transmissions based on delay
US7024222B2 (en) * 1999-09-21 2006-04-04 Ipr Licensing, Inc. Dual mode unit for short range, high rate and long range, lower rate data communications
US7327683B2 (en) * 2000-03-16 2008-02-05 Sri International Method and apparatus for disseminating topology information and for discovering new neighboring nodes
JP4475835B2 (ja) * 2001-03-05 2010-06-09 富士通株式会社 入力回線インタフェース装置及びパケット通信装置
US20030103459A1 (en) * 2001-11-16 2003-06-05 Connors Dennis P. Method and implementation for a flow specific modified selective-repeat ARQ communication system
US7239608B2 (en) * 2002-04-26 2007-07-03 Samsung Electronics Co., Ltd. Router using measurement-based adaptable load traffic balancing system and method of operation
ATE418254T1 (de) * 2002-12-23 2009-01-15 Alcatel Lucent Überlastkontrolle in einem optischen netzwerk mit burstschaltung
WO2005018170A1 (en) * 2003-08-19 2005-02-24 Ntt Docomo, Inc. Accurate control of transmission information in ad hoc networks
US6826123B1 (en) * 2003-10-14 2004-11-30 International Business Machines Corporation Global recovery for time of day synchronization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08288949A (ja) * 1995-04-12 1996-11-01 Nippon Telegr & Teleph Corp <Ntt> 情報転送システム
JPH10243050A (ja) * 1997-02-28 1998-09-11 Mitsubishi Electric Corp データ通信システム

Also Published As

Publication number Publication date
JPWO2005067261A1 (ja) 2007-12-27
KR100863539B1 (ko) 2008-10-15
EP1705870B1 (en) 2012-08-29
EP1705870A1 (en) 2006-09-27
EP1705870A4 (en) 2010-10-06
US20060256803A1 (en) 2006-11-16
KR20060116217A (ko) 2006-11-14
WO2005067261A1 (ja) 2005-07-21

Similar Documents

Publication Publication Date Title
JP4497322B2 (ja) 通信方法
EP1705845B1 (en) Load distributing method
US8717871B2 (en) Packet retransmission control system, method and program
JP4632874B2 (ja) 通信端末
CN101189840B (zh) 数据单元中继设备和控制该数据单元中继设备的方法
US8989005B2 (en) Monitoring endpoint buffer occupancy to determine congestion in an Ethernet network
CN102859950A (zh) 估计拥塞的方法
JPWO2005067227A6 (ja) 負荷分散方法、ノード及び制御プログラム
EP2978171B1 (en) Communication method, communication device, and communication program
KR20070011315A (ko) 병렬 통신을 위한 시스템 및 방법
JP4924285B2 (ja) 通信装置、通信システム、転送効率向上方法及び転送効率向上プログラム
EP3576358B1 (en) Method and computer-readable medium for equalizingtransmission delay in a network
JP2015027100A (ja) パケット通信の伝送制御方法及びパケット通信システム
JP5738324B2 (ja) 送信装置、通信装置、通信システムおよび送信方法
WO2005086436A1 (ja) パケット転送装置、パケット転送ネットワークシステム、および、端末装置
CN111224888A (zh) 发送报文的方法及报文转发设备
US20120106344A1 (en) Data communication acknowledgement in a network
JP2017092692A (ja) データ伝送制御システム及び方法、並びに、データ伝送制御プログラム
JP4930275B2 (ja) 通信システム、通信方法、送信機、受信機、レート計算方法およびプログラム
JP2010206608A (ja) 送信装置、送信レート算出方法及び送信レート算出プログラム
JP2020524935A (ja) 再送に起因してパケットに追加される遅延の表示
CN100579128C (zh) 通信方法、节点以及节点的控制装置
De Vuyst et al. Performance analysis of Stop-and-Wait ARQ for wireless channels
Han et al. Queuing Analysis Model for the SR-ARQ Protocol with a Finite Retransmission Persistence

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100226

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

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

Free format text: PAYMENT UNTIL: 20130423

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4497322

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100406

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

Free format text: PAYMENT UNTIL: 20130423

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140423

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees