JP4680860B2 - データ通信方法 - Google Patents

データ通信方法 Download PDF

Info

Publication number
JP4680860B2
JP4680860B2 JP2006266332A JP2006266332A JP4680860B2 JP 4680860 B2 JP4680860 B2 JP 4680860B2 JP 2006266332 A JP2006266332 A JP 2006266332A JP 2006266332 A JP2006266332 A JP 2006266332A JP 4680860 B2 JP4680860 B2 JP 4680860B2
Authority
JP
Japan
Prior art keywords
data
client
block
block data
server
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
JP2006266332A
Other languages
English (en)
Other versions
JP2008085932A (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 JP2006266332A priority Critical patent/JP4680860B2/ja
Priority to KR20070020658A priority patent/KR100858472B1/ko
Priority to US11/785,890 priority patent/US8296460B2/en
Priority to EP20070107234 priority patent/EP1926244A1/en
Priority to CN2007101039615A priority patent/CN101155144B/zh
Publication of JP2008085932A publication Critical patent/JP2008085932A/ja
Application granted granted Critical
Publication of JP4680860B2 publication Critical patent/JP4680860B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • 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/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1887Scheduling and prioritising arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • H04L12/1868Measures taken after transmission, e.g. acknowledgments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0093Point-to-multipoint

Landscapes

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

Description

本発明は、データ通信方法に関し、特に、サーバから複数のクライアントに大容量のデータを複数のブロックデータに分割してマルチキャスト通信により送信するデータ通信方法に関する。
サーバクライアントシステムにおいて、大容量のデータをサーバからクライアントへ送信する場合、クライアントのハードウエアの制限から、1個のデータが複数のブロック(ブロックデータ)に分割されて送信される。
このようなサーバクライアントシステムにおいては、サーバの負担を軽減し、ネットワークの負荷を軽減するために、効率的なシステムを構築することが提案されている(特許文献1及び2参照)。即ち、サーバは、各々のブロックデータをマルチキャスト通信により送信する。所定のクライアントは、受信したブロックデータをキャッシュ(保存)して、他のクライアントからの要求に応じて、キャッシュしたブロックデータを当該他のクライアントに提供する。
特表2005−518120号公報 特開2000−089996号公報
本発明者の検討によれば、サーバからマルチキャスト通信により送信されたブロックデータを受信する場合、クライアントの性能の差に起因して、クライアントにおけるブロックデータの処理時間が異なり、ブロックデータの受信におけるズレが発生する。従って、全クライアントを同期させるため、図13(A)に示すように、ブロックデータの受信処理の終了の都度、各々のクライアント121〜123からサーバ101へ応答確認(Ack又はNack)を送信する必要がある。しかし、この場合、1個のサーバ101が全クライアント121〜123からの応答確認を処理するため、サーバ101における処理の遅延が発生する。また、クライアント121〜123における処理の遅延を考慮して、サーバ101が、送信したデータをキャッシュ(保存)しておく必要がある。しかし、この場合、サーバ101が、現在送信しているブロックデータをキャッシュすることで、全てのクライアント121〜123に対する再送処理を行うことができるが、サーバ101のパフォーマンスは低下する。また、クライアントの数が多い場合、サーバ101の受信性能にも依存はするものの、サーバ101のパフォーマンスは低下する。
そこで、全てのクライアント121〜123との間で応答確認を行うのではなく、図13(B)に示すように、全てのクライアント121〜123を代表する1個のクライアント(代表クライアント)121だけと応答確認することが考えられる。しかし、この場合、1個の代表クライアント121に応答確認の処理が集中する。また、応答確認を行っても、代表クライアント121以外のクライアント122及び123がデータ処理を終了した保証がない。更に、このために、遅延が発生したクライアントに対応するために、サーバ101が、全てのブロックデータを保存する必要があり、全てのブロックデータに対応する数のデータバッファ115を備えなければならない。
本発明は、データ通信システムのパフォーマンスを低下させること無く、サーバから複数のクライアントに大容量のデータを複数のブロックデータに分割してマルチキャスト通信により確実に送信することができるデータ通信方法を提供することを目的とする。
本発明のデータ通信方法は、サーバが複数のクライアントに対してマルチキャスト通信により複数のブロックデータからなるデータを送信するデータ通信方法である。本発明のデータ通信方法において、前記サーバが、前記複数のブロックデータの各々について、当該ブロックデータを受信した際に応答確認を送信する代表クライアントを、前記複数のクライアントに所定の順番に割り当てる。前記サーバが、前記複数のブロックデータの中のブロックデータを、これに割り当てられた前記複数のクライアントの中の代表クライアントを示す情報と共に、マルチキャスト通信により前記複数のクライアントに送信する。前記代表クライアントが、前記応答確認を前記サーバに送信する。前記サーバが、前記代表クライアントからの応答確認を受信した場合に、前記複数のブロックデータの中の前記ブロックデータの後続のブロックデータを、これに割り当てられた前記複数のクライアントの中の代表クライアントを示す情報と共に、マルチキャスト通信により前記複数のクライアントに送信する。前記代表クライアントが、自己が対応するブロックデータを、他のクライアントへの再送信のためにキャッシュし、前記キャッシュしたブロックデータを、当該代表クライアントが再度代表クライアントであることを示す情報を受信した後に、廃棄する。
好ましくは、本発明の一実施態様において、前記サーバが、前記データの送信の開始に先立って、前記複数のクライアントとの通信に基づいて、前記データを受信する前記複数のクライアントを登録するクライアントリストを作成する。前記サーバが、前記複数のブロックデータの各々について、前記代表クライアントを、前記クライアントリストに基づいて、その登録の順番にラウンドロビンにより割り当てる。
好ましくは、本発明の一実施態様において、前記代表クライアントが、前記複数のブロックデータの中の前記ブロックデータに先行するブロックデータの全てについて、当該代表クライアントが正常に受信していることを確認して、これに基づいて、前記応答確認を前記サーバに送信する。
本発明のデータ通信方法によれば、サーバが、複数のブロックデータの各々についての代表クライアント(応答確認クライアント)を、複数のクライアントに所定の順番に割り当てる。この上で、サーバが、ブロックデータとこれに割り当てられた代表クライアントを示す情報とを、マルチキャスト通信により複数のクライアントに送信し、代表クライアントからの応答確認を受信した場合に、後続のブロックデータとこれに割り当てられた代表クライアントを示す情報とをマルチキャスト通信により複数のクライアントに送信する。これにより、ブロックデータ毎に代表クライアントが変更されるので、1個の代表クライアントに、応答確認の処理が集中することを防止することができる。また、代表クライアントは割り当てられたブロックデータを必ず受信しているので、ブロックデータ毎に代表クライアントを変更することと併せて、複数のブロックデータが複数の代表クライアントのいずれかに存在することを保証することができる。従って、サーバが全てのブロックデータをキャッシュしておく必要が無いので、サーバの負担を無くすことができる。また、代表クライアントが、キャッシュしたブロックデータを、自己が代表クライアントであることを示す情報を再度受信した後に廃棄する。これにより、代表クライアントが、当該保持したブロックデータについて、他のクライアントからの再送要求を処理することができ、再送処理の負担を均等に分散することができる。
本発明の一実施態様によれば、複数のブロックデータの各々について、代表クライアントを、複数のクライアントを登録するクライアントリストの登録の順番にラウンドロビンにより割り当てる。これにより、複数のクライアントに所定の順番で固定的かつ均等に代表クライアントを割り当てることができる。
本発明の一実施態様によれば、代表クライアントが、自己が対応するブロックデータを保持する。これにより、代表クライアントが所定のブロックデータを保持することを保証することができる。また、複数のブロックデータが複数のクライアントに均等に存在するようにすることができる。
本発明の一実施態様によれば、代表クライアントが、自己が保持すべきブロックデータに先行するブロックデータの全てについて、正常に受信していることを確認した上で、応答確認をサーバに送信する。これにより、代表クライアントが、先頭のブロックデータから自己が保持すべきブロックデータまでのブロックデータを、必ず保持していることを保証することができる。従って、当該代表クライアントが、他のクライアントからの再送要求を処理することができる。
図1は、本発明のデータ通信システムの一例を示す構成図であり、図2は、本発明のデータ通信システムの構成を説明する説明図である。
図1のデータ通信システムは、サーバクライアントモデルによるコンピュータシステム(サーバクライアントシステム)であって、サーバ1と、複数のクライアント2(21〜23)と、これらの間を接続するネットワーク3とからなる。ネットワーク3は、例えばインターネット、LAN(Local Area Network)等からなり、マルチキャスト通信又はユニキャスト通信を行う。
サーバ1は、マルチキャスト通信によりデータを送信するデータ送信元サーバ(コンピュータ)である。サーバ1は必要に応じてユニキャスト通信を行う。サーバ1は、ネゴシエーション処理部11と、応答クライアント決定処理部12と、送受信処理部13と、クライアントリスト14と、データバッファ15とを備える。
クライアント21は、マルチキャスト通信によりデータを受信するデータ受信クライアント(コンピュータ)である。クライアント21は必要に応じてユニキャスト通信を行う。クライアント21は、接続要求処理部211と、応答確認処理部212と、送受信処理部213と、データキャッシュ214とを備える。他の複数のクライアント22及び23も、クライアント21と同様である。
以上の各処理部11〜13及び211〜213は、各々、サーバ1又はクライアント2であるコンピュータにおいて、その主メモリ(図示せず)上に存在する当該処理プログラムを、そのCPU(図示せず)で実行することにより実現される。
サーバ1において、ネゴシエーション処理部11は、データの送信の開始に先立って、ネゴシエーション処理を行う。ネゴシエーション処理は、サーバ1からマルチキャスト通信によりデータを受信するクライアント2を、予めサーバ1に登録する処理である。
具体的には、ネゴシエーション処理部11は、データ転送開始が指示されるまで、図2(A)に示すように、マルチキャスト通信に対するクライアント2の接続要求処理部211からの接続要求を受け付ける。当該データを受信したいクライアント2は、接続要求処理部211により、当該接続要求をサーバ1に送信する。ネゴシエーション処理部11は、接続要求を受信した全てのクライアント2との通信に基づいて、これらについてのクライアントリスト14を作成する。
クライアントリスト14は、図2(B)に示すように、マルチキャスト通信によるデータを受信する複数のクライアント2を登録するリストである。クライアントリスト14は、例えばクライアント(名)毎に、当該クライアント(名)に対応して、そのIPアドレス等を格納(登録)する。登録の順番は、サーバ1への前記接続要求が受け付けられた順番である。
送受信処理部13は、データの送信の開始に先立って、図2(C)に示すように、当該送信対象であるデータを、複数のブロックデータに分割する。ブロックデータの大きさは、例えば固定長とされる。例えば、1個のデータ(本来のデータ)が、当該データ内でユニークなブロックデータ番号(以下、ブロック番号)1〜Zまでのブロックデータに分割される。ブロック番号(N−1)のブロックデータをブロックデータ(N−1)という。ブロックデータ(N−1)を、単にブロック(N−1)と表す。
なお、ブロックデータも複数のよりサイズの小さいデータ(以下、単位データ)に分割される。実際の送信は、この単位データ毎に行われる。単位データには、当該ブロックデータ内でユニークなデータ番号が付与される。
1個のデータは、例えばメモリ(図示せず)に格納される。送受信処理部13は、図2(C)に示すように、当該データの送信すべき1個のブロックデータをメモリから取り出して、データバッファ15に格納する。従って、データバッファ15は、送受信処理部13が現在送信中のブロックデータのみを格納する。これにより、サーバ1は、現在送信中のブロックデータのみをキャッシュすれば良いので、データバッファ15は1個のみで良く、そのサイズも小さくて良い。
応答クライアント決定処理部(以下、決定処理部)12は、データの送信の開始に先立って、前記データの分割に基づいて、複数のブロックデータの各々について、代表クライアント2(としての処理)を割り当てる。これにより、代表クライアント2がブロックデータ毎に変更される。代表クライアント2は、当該ブロックデータを受信した際に応答確認Ackを送信するクライアント(応答確認クライアント)である。
代表クライアント2は、複数のクライアント2に対して、所定の順番に割り当てられる。この割り当ての順番は、1個のデータを送信する間(1回のセッションの間)は固定とされる。この割り当ての順番は、セッション毎に割り当てすべきクライアントの数が変化し、データ毎にブロックデータの数が変化するので、セッション毎及びデータ毎に変更される。
具体的には、決定処理部12は、複数のブロックデータの各々について、代表クライアント2を、クライアントリスト14に基づいて、その登録の順番にラウンドロビンにより割り当てる。ここで、ラウンドロビンとは、所定の順で、繰り返し(周期的に)、順番を割り当てることを言う。
例えば、図2(B)のクライアントリスト14に基づいて、登録の順番が第1位のクライアント#1であるクライアント21に、ブロック(N−1)についての代表クライアント2が割り当てられるとする。この場合、ラウンドロビンにより、クライアント#2であるクライアント22にはブロック(N)が、クライアント#3であるクライアント23にはブロック(N+1)が、各々、割り当てられる。このように代表クライアント2の割り当てが1周する(ラウンドする)と、再度、クライアント#1であるクライアント21に、ブロック(N+2)についての代表クライアントが割り当てられる(図3〜図6参照)。これにより、複数のクライアント2に対して、代表クライアント2が均等にかつ固定的な順番で割り当てられ、ブロックデータ毎に定められた順番で(クライアントリスト14に従って)ラウンドロビンにより変更される。
送受信処理部13は、複数のクライアント2に対して、マルチキャスト通信により、複数のブロックデータからなるデータを送信する。実際には、送受信処理部13は、当該ブロックデータをマルチキャストIPに送信する。複数のクライアント2は、クライアントリスト14に予め登録されたクライアント2に限られる。具体的には、送受信処理部13は、複数のブロックデータの中の1個のブロックデータ(第1の又は先行ブロックデータ)を、複数のクライアントの中の当該ブロックデータに割り当てられた代表クライアント(第1の代表クライアント)2を示す情報と共に、送信する。代表クライアント2を示す情報は、当該ブロックデータを含むパケット(データパケット)のヘッダにおいて、所定の位置に格納される。
一方、クライアント2において、送受信処理部213は、マルチキャスト通信により送信されたブロックデータを受信する。実際には、送受信処理部213は、マルチキャストIPへ送信されたブロックデータ(のパケット、以下同じ)を受信して解析し、これがマルチキャストIPに向けたパケットであることを知り、例えばメモリ(図示せず)に格納する。
送受信処理部213は、当該ブロックデータを正常に受信したか否かを検査して、受信に失敗した場合、再送要求Resend(を含むパケット、以下同じ)を送信する。この再送要求Resendはマルチキャスト通信により送信される。再送要求Resendは、応答確認Ackとは異なり、例えばブロックデータの中の単位データの受信に失敗した場合(例えば、欠落した場合又はエラーを含む場合)に送信される。
再送要求Resendは、必ずマルチキャスト通信により送信される。これは、クライアント2は、当該再送要求Resendの対象であるブロックデータを、他のどのクライアント2が保持しているかを知ることができないためである。
サーバ1において、送受信処理部13は、現在送信中のブロックデータに対する再送要求Resendを、クライアント2から受信する。この時点では、当該ブロックデータは、サーバ1のデータバッファ15にキャッシュされている。従って、送受信処理部13は、現在送信中のブロックデータについて、再送データをマルチキャスト通信により再送信する。サーバ1が再送信するのは、現在送信中のブロックデータのみについてである。再送データは、再送要求Resendに対する応答ResendData(を含むパケット、以下同じ)として送信される。
応答ResendDataは、マルチキャスト通信により送信される。これは、当該ブロックデータに対する再送要求Resendが重なった場合、応答ResendDataの送信を1回のみとすることができるからである。なお、応答ResendDataをユニキャスト通信により送信するようにしても良い。
一方、サーバ1(送受信処理部13)が既に送信済みのブロックデータについては、複数のクライアント2のいずれかから、再送データがマルチキャスト通信により再送信される。サーバ1が当該ブロックデータを再送信することは無い。この時点では、当該ブロックデータは、サーバ1のデータバッファ15には存在しない。
サーバ1において、送受信処理部13は、1個のブロックデータの送信を終了すると、当該ブロックデータに対応する代表クライアント2との間で、応答確認Ack又はNack(以下、単に応答確認Ack)の送受信を行う。応答確認Ack又はNackは、各々、当該データ(ブロックデータ)の受信に成功した(正常に受信した)こと又は受信に失敗したことを示す情報(を含むパケット、以下同じ)である。代表クライアント2から当該ブロックデータについての応答確認Ackを受信すると、送受信処理部13は、当該ブロックデータの送信を終了し、次のブロックデータの送信を行う。応答確認Nackを受信すると、送受信処理部13は、当該ブロックデータを応答確認Nackに記載されたブロック内のデータ番号から再送信する。
当該クライアント2が代表クライアント2である場合、その応答確認処理部212は、当該代表クライアント2が対応する(応答確認すべき)ブロックデータに先行するブロックデータ(先行ブロックデータ)について、当該代表クライアント2が正常に受信していることを確認して、これに基づいて、応答確認Ackをサーバ1に送信する。これにより、サーバ1から送信されたブロックデータは、代表クライアント2においては確実に受信されていることが保証される。
応答確認Ackは、クライアント2がサーバ1のIPアドレスを知っているので、サーバ1へのユニキャスト通信により送信される。これにより、サーバ1に応答確認Ackが確実に送信される。なお、応答確認Ackをマルチキャスト通信により送信するようにしても良い。
サーバ1において、送受信処理部13が、代表クライアント2からの応答確認Ackを受信した場合、当該代表クライアント2の対応するブロックデータに続く(の後続の)ブロックデータ(第2の又は後続ブロックデータ)を、これに割り当てられた代表クライアント(第2の代表クライアント)2を示す情報と共に、マルチキャスト通信により複数のクライアント2に送信する。
代表クライアント2は、再送信用のデータキャッシュ214を備え、自己が対応するブロックデータを、他のクライアント2に再送信するためにキャッシュする。即ち、当該クライアント2が代表クライアント2である場合、その送受信処理部213は、そのデータキャッシュ214に、当該クライアント21がキャッシュ(保持)すべきブロックデータを格納する。データキャッシュ214が格納するブロックデータは、当該クライアント21が応答確認Ackをサーバ1に送信すべきブロックデータである。従って、サーバ1はデータのキャッシュを持つ必要が無く、また、現在送信中の代表クライアント2に対してのみ再送するだけで、システム全体のデータが保証される。代表クライアント2は、前記キャッシュしたブロックデータを、当該代表クライアント2が再度代表クライアント2であることを示す情報を受信した後に、廃棄する。
代表クライアント2において、送受信処理部213は、応答確認Ackの送信に先立って、複数のクライアント2における他のクライアント2に対して、当該ブロックデータに先行するブロックデータの中で正常に受信していないブロックデータについての再送要求Resendを送信し、前記他のクライアント2から前記正常に受信していないブロックデータを受信する。
一方、(代表)クライアント2が、複数のクライアント2における他のクライアント2から、前記キャッシュしたブロックデータについての再送要求Resendを受信した場合、当該ブロックデータを、マルチキャスト通信により又はユニキャスト通信により送信する。即ち、クライアント2は、受信したパケットが再送要求Resendであり、かつ、自己が代表クライアント2として応答確認Ackの送受信を行ったブロックデータである場合、その再送要求Resendに対しての応答を行う。
サーバ1において、送受信処理部13が、全てのブロックデータの送信を終了した後に、データの送信の終了を示すデータ転送終了を、マルチキャスト通信により複数のクライアント2に送信する。実際には、図2(C)に示すように、データ転送終了のパケットが送信される。なお、この送信は、任意のブロックデータの送信が終了した時点で行うことができる。
データ転送終了のパケットを受信した複数のクライアント2は、各々、複数のブロックデータの全てについて正常に受信していることを確認して、データ転送終了に対する応答確認Ackをサーバ1に送信する。即ち、全てのブロックデータ番号のデータ受信が終了している場合は、サーバ1に対して応答確認Ackを送信する。データ転送終了に対する応答確認Ackは、全てのクライアント2がマルチキャスト通信により又はユニキャスト通信により行う。全てのブロック番号のブロックデータの受信を終了していない場合、マルチキャスト通信により再送要求Resendを送信する。
送受信処理部13は、全てのクライアント2からデータ転送終了に対する応答確認Ackを受信した場合、更に、当該通信の終了を示す通信終了(のパケット)を、全ての(複数の)クライアント2に送信する。全てのクライアント2は、各々、通信終了のパケットを受信するまで、通信(セッション)を保持して、他のクライアント2からの再送要求Resendの受信に備える。
以上のように、全てのクライアント2が、サーバ1との応答確認Ackの送受信を行い、その後サーバ1からの指示で通信を終了する。即ち、代表クライアント2との間でのみ実行していた応答確認Ackが、データ転送終了についてのみ、全クライアント2との間で行われる。これにより、全てのクライアント2において、全てのブロックデータの受信及び整合性を保証することができる。
以下、図3〜図8を参照して、本発明のデータ通信システムにおけるデータ送信について具体的に説明する。図3、図4、図5及び図6は、本発明のデータ通信システムにおけるデータ通信の説明図であり、各々、ブロック(N−1)、ブロック(N)、ブロック(N+1)及びブロック(N+2)の送信について示す。図7及び図8は、本発明のデータ通信システムにおけるデータの状態の説明図である。
図3に示すように、このデータ通信システムにおいて、1個のサーバ1と3個のクライアント21〜23がネットワーク3に接続されている。サーバ1がIPアドレス「A.B.C.D」を有し、クライアント21、22及び23が、各々、IPアドレス「A.B.C.E」「A.B.C.F」及び「A.B.C.G」を有する。ネットワーク3は、マルチキャストIPアドレスを有する。
3個のクライアント21、22及び23は、サーバ1のクライアントリスト14に、この順に登録されている。従って、3個のクライアント21、22及び23は、各々、クライアント番号#1、#2及び#3を割り当てられ、従って、この順に代表クライアントとして動作する。
マルチキャスト通信により送信すべきデータが、前述の図2(C)に示すように、ブロック番号1〜Zまでのブロックデータに分割される。サーバ1は、現在、ブロック(N−1)を、マルチキャスト通信により送信中である(マルチキャストIPアドレスに送信している)。ブロック(N−1)についての(即ち、現時点での)代表クライアントは、クライアント#1である。
図3において、現時点での代表クライアント#1は、自己が応答確認Ackを送信すべきブロック(N−1)のキャッシュを行う。これにより、ブロック(N−1)が代表クライアント#1に保存される。その際、代表クライアント#1は、自己が応答確認Ackを送信すべきブロック(N−1)までのブロックデータは、当該代表クライアント#1において、全て正常に受信していることを確認する。
サーバ1は、1個の代表クライアント#1にだけデータを転送しているに等しく、応答確認Ackも1個の代表クライアント#1だけから取得する(図4〜図6においても同じ)。応答確認Ackの受信により、サーバ1は、この時点での送信対象であるブロック(N−1)の送信を終了する。クライアント#1〜#3は、各々、ブロック(N−1)を受信する。
クライアント#1は、ブロック(N−1)の処理をした後、次回に自己が再度代表クライアントとなるまで、ブロック(N−1)に対する他のクライアント#2又は#3からの再送処理Resendに応答して、当該データを送付する。クライアント#1では、ブロック(N−1)が確実に受信されていることが保証される。
次に、図3の処理に続けて、図4に示すように、サーバ1は、送信対象のブロックデータを変更する。即ち、ブロック(N−1)に代えて、新たにブロック(N)がマルチキャスト通信により送信される。サーバ1は、ブロックデータの変更に伴って、代表クライアントも変更する。即ち、クライアント#1に代えて、新たにクライアント#2が代表クライアントとされる。
図4において、代表クライアント2をクライアント#2に変更して送信処理が行われる。クライアント#2も、クライアント#1と同様に、ブロック(N)のキャッシュを行う。クライアント#3でブロック(N−1)の受信の失敗が発生した場合、クライアント#1に対して(正確には、マルチキャストIPに対して)、データの再送を要求する。クライアント#1は、ブロック(N−1)を保持しているので、再送することができる。
この時、クライアント#3でブロック(N−1)の中の受信に失敗した場合、クライアント#3はマルチキャストIPに対して、ブロック(N−1)の再送要求Resendを送信する。ブロック(N−1)はクライアント#1が保持しているので、クライアント#1は、再送要求Resendに対する応答ResendDataとして、ブロック(N−1)をクライアント#3に送信する。これにより、クライアント#3における受信の失敗を回復することができる。この時、サーバ1はクライアント#3からの再送要求Resendに対応しない。一方、クライアント#2は、サーバ1に対して応答確認Ackを送信する。これにより、クライアント#2により、ブロック(N)までのデータを確実に受信していることが保証される。
以上のように、サーバ1は、この時点での送信対象であるブロック(N)のマルチキャスト通信による送信を終了する。クライアント#1〜#3は、各々、ブロック(N)を受信する。代表クライアント#2は、自己が応答確認Ackを送信すべきブロック(N)までの正常な受信を確認して、その後、サーバ1にブロック(N)の応答確認Ackを送信する。
次に、図4の処理に続けて、図5に示すように、サーバ1は、送信対象のブロックデータを変更する。即ち、ブロック(N)に代えて、新たにブロック(N+1)がマルチキャスト通信により送信される。サーバ1は、ブロックデータの変更に伴って、代表クライアントも変更する。即ち、クライアント#2に代えて、新たにクライアント#3が代表クライアントとされる。
図5において、代表クライアントをクライアント#3に変更して送信処理が行われる。クライアント#3も、クライアント#1及び#2と同様に、ブロック(N+1)のキャッシュを行う。
この時、クライアント#1でブロック(N)の受信を失敗した場合、クライアント#1は、マルチキャストIPに対してブロック(N)の再送要求Resendを送付する。ブロック(N)はクライアント#2によってキャッシュされているので、クライアント#2は、ブロック(N)を再送する。これにより、クライアント#1はブロック(N)の受信失敗を回復することができる。
また、クライアント#3がブロック(N+1)の応答確認Ackの送受信を行うことで、クライアント#3にブロック(N+1)までのブロックデータが確実に保持されていることが保証される。
以上のように、サーバ1は、この時点での送信対象であるブロック(N+1)のマルチキャスト通信による送信を終了する。クライアント#1〜#3は、各々、ブロック(N+1)を受信する。代表クライアント#3は、自己が応答確認Ackを送信すべきブロック(N+1)までの正常な受信を確認して、その後、サーバ1にブロック(N+1)の応答確認Ackを送信する。
次に、図5の処理に続けて、図6に示すように、サーバ1は、送信対象のブロックデータを変更する。即ち、ブロック(N+1)に代えて、新たにブロック(N+2)がマルチキャスト通信により送信される。サーバ1は、ブロックデータの変更に伴って、代表クライアントも変更する。即ち、クライアント#3に代えて、新たにクライアント#1が、再度、代表クライアントとされる。
図6において、ブロック(N+2)は、クライアントリスト14におけるラウンドロビンに従って、再度、クライアント#1により応答確認され、キャッシュされる。クライアント#1は、前述の場合と同様に、ブロック(N+2)についての処理を実行する。
クライアント#1がブロック(N+2)を送信しているということは、これに先立って、サーバ1がブロック(N+1)の応答確認Ackを必ず受信している。従って、その時点で、他のクライアント#2及び#3は、ブロック(N−1)からブロック(N+1)までの全てのブロックデータを確実に受信している。従って、クライアント#1は、先の応答確認Ackの対象であったブロック(N−1)を破棄することができる。
即ち、クライアント#2及びクライアント#3は、ブロック(N)及びブロック(N+1)の応答確認Ackを送信しているので、必ずブロック(N−1)を受信していることが保証されている。よって、クライアント#1はブロック(N−1)を破棄することができる。従って、厳密には、この時点でブロック(N−1)の処理が全て終了したことになる。このように、代表クライアント2が一巡した(ラウンドした)場合、当該一巡した範囲内で、クライアント2が受信しているブロックデータ(N−1)、(N)及び(N+1)については、全てのクライアント2にデータが受信されている。
以上をまとめると、図7及び図8に示すようになる。即ち、図7において、サーバ1は、現在、ブロック(N+1)を送信中であり、クライアント23が代表クライアント2である。他のクライアント21及び22は、マルチキャストにより同じブロック(N+1)を受信中(取得中)である。サーバ1がブロック(N+1)を送信しているので、これに先立って、サーバ1はブロック(N)についての応答確認Ackを受信している。他のブロックデータについても同様である。従って、ブロック(N)までのブロックデータは、必ずいずれかのクライアント2に正常に受信され、存在することが保証されている。
次に、図8において、サーバ1がブロック(N+2)を送信する。これに伴って、代表クライアント2がクライアント21となる。代表クライアント21は、代表クライアント2が一巡するまでの間のデータを正常に受信している。従って、代表クライアント21は、ブロック(N−1)からブロック(N+1)までのブロックデータを確実に受信している。このように、代表クライアント2が一巡した(ラウンドした)場合、一巡した範囲内に送信されたブロックデータは、全てのクライアント2において受信されていることを保証することができる。
この状態で、代表クライアント21がブロック(N+2)の受信に失敗すると、その再送要求Resendを受信したサーバ1が、ブロック(N+2)を再送信する。他のクライアント22及び23がブロック(N+2)の受信に失敗すると、再送要求Resendを受信した代表クライアント21が、ブロック(N+2)を再送信する。
また、例えば、クライアント21がブロック(N)の受信に失敗しているとする。この場合、クライアント21は、ブロック(N)の再送要求Resendを送信する。これを受信したブロック(N)についての代表クライアント22が、ブロック(N)を再送信する。即ち、応答ResendDataを送信する。
このように、代表クライアント2がデータのキャッシュを行い、その代表クライアント2をラウンドロビンで順次交代させることにより、サーバ1にキャッシュを持つことなく、処理を確実に行うことが可能となる。また、クライアント2におけるデータの受信の失敗に対応することができ、クライアント2の数が数100〜数1000であっても、マルチキャスト通信により同時に行うことができ、システムのパフォーマンスの低下を招くことが無い。
図9は、本発明のデータ通信システムにおけるサーバ1とクライアントとの間のネゴシエーション処理フローである。
サーバ1が、クライアント2からの接続要求待ちの状態にある(ステップS11)。この状態のサーバ1に対して、クライアント2が、接続要求を送信し(ステップS12)、データの転送待ちの状態となる(ステップS13)。サーバ1は、データの転送を開始する指示が入力されると(ステップS14)、その時点で、クライアント2からの接続要求の受信を終了して、クライアントリスト14を作成して、これに基づいて、代表クライアント2を決定し、当該データの転送を開始する(ステップS15)。
図10は、本発明のデータ通信システムにおけるサーバ1の実行する送信処理フローである。
サーバ1は、図9の処理に続けて、ブロックデータの送信を開始し、送信すべき当該ブロックデータ内のデータ番号を判断(確認)して(ステップS21)、当該データ番号のデータを含むパケット(データパケット)をマルチキャスト通信により送信する(ステップS22)。この送信中に、サーバ1は、クライアント2からのパケットを受信すると(ステップS23)、当該パケットがブロックデータの終了を示すパケット(転送終了パケット)か否かを調べる(ステップS24)。当該パケットが転送終了パケットでない(再送要求Resendを含むパケットである)場合、サーバ1はステップS21以下を繰り返す。
当該パケットが終了パケットである場合、サーバ1は、代表クライアント2との間での応答確認Ackの送受信を行って、これに基づいて、代表クライアント2への当該ブロックデータの再送が必要か否かを調べる(ステップS25)。再送が必要である場合、サーバ1は、ステップS21以下を繰り返す。再送が必要でない場合、サーバ1は、当該ブロックデータの送信を終了する。
図11は、本発明のデータ通信システムにおけるクライアントの実行する受信処理フローである。図11は、サーバが実行する図10の処理に対応するクライアントの実行する処理である。
ブロックデータの受信を開始したクライアント2は、サーバ1からのパケットを受信すると(ステップS31)、当該パケットが再送要求パケットかデータパケットか否かを調べる(ステップS32)。当該パケットが再送要求パケットである場合、クライアント2は、自己が取得しているブロックデータを再送し(ステップS33)、ステップS31以下を繰り返す。
当該パケットがデータパケットである場合、クライアント2は、当該取得中のブロックデータの確認を行って(ステップS34)、処理を継続するか、再送が必要か、又は、ブロックデータの終了か否かを調べる(ステップS35)。処理を継続する場合、クライアント2は、ステップS31以下を繰り返す。再送が必要である場合、クライアント2は、再送要求Resendを送信し(ステップS36)、ステップS31以下を繰り返す。ブロックデータの終了である場合、クライアント2は、自己が代表クライアントである場合、サーバ1との間で応答確認Ackの送受信を行って(ステップS37)、ブロックデータの受信を終了する。なお、当該クライアント2が代表クライアントでない場合、ステップS37は省略される。
図12は、本発明のデータ通信システムにおけるクライアントの実行する終了処理フローである。
ブロックデータの受信を開始したクライアント2は、サーバ1からのパケットを受信すると(ステップS41)、当該パケットが再送要求パケット、データ転送終了パケット又は通信終了パケットのいずれであるかを調べる(ステップS42)。当該パケットが再送要求パケットである場合、クライアント2は、自己が取得しているブロックデータを再送し(ステップS43)、ステップS41以下を繰り返す。
当該パケットがデータ転送終了パケットである場合、クライアント2は、当該取得中のブロックデータの確認を行って(ステップS44)、再送が必要か、又は、ブロックデータの終了のいずれであるかを調べる(ステップS45)。処理を継続する場合、クライアント2は、ステップS41以下を繰り返す。再送が必要である場合、クライアント2は、再送要求Resendを送信し(ステップS46)、ステップS41以下を繰り返す。データ転送終了パケットである場合、クライアント2は、自己が代表クライアントであるか否かに拘らず、サーバ1との間で応答確認Ackの送受信を行って(ステップS47)、ステップS41以下を繰り返す。従って、この応答確認Ackは全てのクライアント2が実行する。
ステップS42において、当該パケットが通信終了パケットである場合、クライアント2は、ブロックデータの受信のためのマルチキャスト通信を終了する。
クライアント2の実行する図12の処理に対応するサーバ1が実行する処理は、その図示を省略する。簡単に説明すると、図12から判るように、サーバ1は、最後のブロックデータの送信後に、データ転送終了パケットをマルチキャスト通信により送信し、このデータ転送終了パケットに対する応答確認Ackを全てのクライアントとの間で行った後、通信終了パケットをマルチキャスト通信により送信する。
以上から判るように、本発明の実施形態の特徴が以下のように把握される。
(付記1) サーバが複数のクライアントに対してマルチキャスト通信により複数のブロックデータからなるデータを送信するデータ通信方法において、
前記サーバが、前記複数のブロックデータの各々について、当該ブロックデータを受信した際に応答確認を送信する代表クライアントを、前記複数のクライアントに所定の順番に割り当て、
前記サーバが、前記複数のブロックデータの中のブロックデータを、これに割り当てられた前記複数のクライアントの中の代表クライアントを示す情報と共に、マルチキャスト通信により前記複数のクライアントに送信し、
前記代表クライアントが、前記応答確認を前記サーバに送信し、
前記サーバが、前記代表クライアントからの応答確認を受信した場合に、前記複数のブロックデータの中の前記ブロックデータの後続のブロックデータを、これに割り当てられた前記複数のクライアントの中の新たな代表クライアントを示す情報と共に、マルチキャスト通信により前記複数のクライアントに送信する
ことを特徴とするデータ通信方法。
(付記2)前記代表クライアントが、マルチキャスト通信により又はユニキャスト通信により、前記応答確認を前記サーバに送信する
ことを特徴とする付記1記載のデータ通信方法。
(付記3)前記サーバが、前記データの送信の開始に先立って、前記データを前記複数のブロックデータに分割し、これに基づいて、前記複数のブロックデータの各々に前記代表クライアントを割り当てる
ことを特徴とする付記1記載のデータ通信方法。
(付記4) 前記サーバが、前記データの送信の開始に先立って、前記複数のクライアントとの通信に基づいて、前記データを受信する前記複数のクライアントを登録するクライアントリストを作成し、
前記サーバが、前記複数のブロックデータの各々について、前記代表クライアントを、前記クライアントリストに基づいて、その登録の順番にラウンドロビンにより割り当てる
ことを特徴とする付記1記載のデータ通信方法。
(付記5) 前記代表クライアントが、自己が対応するブロックデータを、他のクライアントへの再送信のためにキャッシュする
ことを特徴とする付記4記載のデータ通信方法。
(付記6) 前記代表クライアントが、前記キャッシュしたブロックデータを、当該代表クライアントが再度代表クライアントであることを示す情報を受信した後に、廃棄する
ことを特徴とする付記5記載のデータ通信方法。
(付記7) 前記代表クライアントが、前記複数のクライアントの中の他のクライアントから、前記キャッシュしたブロックデータについての再送要求を受信した場合、前記ブロックデータを、マルチキャスト通信により又はユニキャスト通信により送信する
ことを特徴とする付記6記載のデータ通信方法。
(付記8) 前記代表クライアントが、前記複数のブロックデータの中の前記ブロックデータに先行するブロックデータの全てについて、当該代表クライアントが正常に受信していることを確認して、これに基づいて、前記応答確認を前記サーバに送信する
ことを特徴とする付記5記載のデータ通信方法。
(付記9) 前記代表クライアントが、前記応答確認の送信に先立って、前記複数のクライアントの中の他のクライアントに対して、前記ブロックデータに先行するブロックデータの中で正常に受信していないブロックデータについての再送要求を送信し、前記他のクライアントから前記正常に受信していないブロックデータを受信する
ことを特徴とする付記5記載のデータ通信方法。
(付記10) 前記代表クライアントが、前記再送要求を、マルチキャスト通信により送信する
ことを特徴とする付記9記載のデータ通信方法。
(付記11) 前記他のクライアントが、前記正常に受信していないブロックデータを、マルチキャスト通信により又はユニキャスト通信により送信する
ことを特徴とする付記10記載のデータ通信方法。
(付記12) 前記サーバが、前記複数のブロックデータの送信を終了した後に、前記データの送信の終了を示すデータ転送終了を、前記複数のクライアントに送信し、
前記複数のクライアントが、各々、前記複数のブロックデータの全てについて正常に受信していることを確認して、マルチキャスト通信により又はユニキャスト通信により、前記データ転送終了に対する応答確認を前記サーバに送信する
ことを特徴とする付記1記載のデータ通信方法。
(付記13) 前記サーバが、前記複数のクライアントから前記データ転送終了に対する応答確認を受信した場合、当該通信の終了を示す通信終了を、前記複数のクライアントに送信する
ことを特徴とする付記12記載のデータ通信方法。
(付記14) データを構成する複数のブロックデータの各々について、当該ブロックデータを受信した際に応答確認を送信する代表クライアントを、ラウンドロビンにより割り当てる応答クライアント決定処理部と、
ブロックデータを、これに割り当てられた前記複数のクライアントの中の代表クライアントを示す情報と共に、マルチキャスト通信により前記複数のクライアントに送信し、前記代表クライアントからの前記応答確認を受信した場合に、前記ブロックデータの後続のブロックデータを、これに割り当てられた前記複数のクライアントの中の新たな代表クライアントを示す情報と共に、マルチキャスト通信により前記複数のクライアントに送信する送受信処理部とを備える
ことを特徴とするデータ通信装置。
(付記15) サーバと、複数のクライアントと、これらの間を接続するネットワークとからなるデータ通信システムにおける前記サーバを実現するプログラムであって、
データを構成する複数のブロックデータの各々について、当該ブロックデータを受信した際に応答確認を送信する代表クライアントを、ラウンドロビンにより割り当てる処理手順と、
ブロックデータを、これに割り当てられた前記複数のクライアントの中の代表クライアントを示す情報と共に、マルチキャスト通信により前記複数のクライアントに送信する処理手順と、
前記代表クライアントからの前記応答確認を受信した場合に、前記ブロックデータの後続のブロックデータを、これに割り当てられた前記複数のクライアントの中の新たな代表クライアントを示す情報と共に、マルチキャスト通信により前記複数のクライアントに送信する処理手順とを、コンピュータに実行させる
ことを特徴とするプログラム。
(付記16) 複数のクライアントに対してマルチキャスト通信により複数のブロックデータからなるデータを送信するサーバにおけるデータ通信方法において、
前記複数のブロックデータの各々について、当該ブロックデータを受信した際に応答確認を前記サーバに対して送信する代表クライアントを、前記複数のクライアントに所定の順番に割り当て、
前記ブロックデータのいずれかに割り当てられた代表クライアントを示す情報を、前記ブロックデータに付加してマルチキャスト通信により前記複数のクライアントに送信し、
前記代表クライアントからの応答確認を受信した場合に、当該応答確認に対応するブロックデータの後続のブロックデータを、これに割り当てられた新たな代表クライアントを示す情報と共に、マルチキャスト通信により前記複数のクライアントに送信する
ことを特徴とするデータ通信方法。
(付記17) サーバからマルチキャスト通信によりブロックデータを受信するクライアントにおけるデータ通信方法において、
前記サーバが、前記複数のブロックデータの各々について、当該ブロックデータを受信した際に応答確認を送信する代表クライアントを、前記複数のクライアントに所定の順番に割り当て、
前記サーバから受信したブロックデータ中に、自身を識別する情報が付加されているか否かを判定し、
前記ブロックデータ中に、自身を識別する情報が付加されている場合には、前記受信したブロックデータに対する応答確認を前記サーバに送信する
ことを特徴とするデータ通信方法。
以上、説明したように、本発明によれば、データ通信方法において、1個の代表クライアントに応答確認の処理が集中することを防止し、複数のブロックデータが複数の代表クライアントのいずれかに存在することを保証することができる。従って、複数のクライアントに所定の順番で固定的かつ均等に代表クライアントを割り当てることができる。また、代表クライアントが、先頭のブロックデータから自己が保持すべきブロックデータまでのブロックデータを、必ず保持していることを保証することができる。更に、代表クライアントが、当該保持したブロックデータについて、他のクライアントからの再送要求を処理することができ、また、再送処理の負担を複数のクライアントに均等に分散することができる。
一方、サーバは、送信中のブロックデータのみをキャッシュしておくのみで良く、全てのブロックデータをキャッシュしておく必要が無いので、これについてのサーバの負担を無くすことができる。また、サーバは、送信済みのブロックデータについては再送処理をする必要がないので、これについてのサーバの負担を無くすことができる。
また、以上から、クライアントの数が増加した場合でも、これにより通信速度が低下することを防止することができる。また、サーバ1が、複数の通信セッションを実行した場合でも、これにより通信速度が低下することを防止することができる。これにより、高速で信頼性の高い大規模なデータ通信を実現することができる。
本発明のデータ通信システムの構成の一例を示す構成図である。 本発明のデータ通信システムの構成を説明する説明図である。 本発明のデータ通信システムにおけるデータ通信の説明図である。 本発明のデータ通信システムにおけるデータ通信の説明図である。 本発明のデータ通信システムにおけるデータ通信の説明図である。 本発明のデータ通信システムにおけるデータ通信の説明図である。 本発明のデータ通信システムにおけるデータの状態の説明図である。 本発明のデータ通信システムにおけるデータの状態の説明図である。 本発明のデータ通信システムにおけるサーバとクライアントとの間のネゴシエーション処理フローである。 本発明のデータ通信システムにおけるサーバの実行する送信処理フローである。 本発明のデータ通信システムにおけるクライアントの実行する受信処理フローである。 本発明のデータ通信システムにおけるクライアントの実行する終了処理フローである。 本発明の背景となったデータ通信システムの構成を示す構成図である。
符号の説明
1 サーバ
2(21〜23) クライアント
3 ネットワーク
11 ネゴシエーション処理部
12 応答クライアント決定処理部
13 送受信処理部
14 クライアントリスト
15 データバッファ
211 接続要求処理部
212 応答確認処理部
213 送受信処理部
214 データキャッシュ

Claims (3)

  1. サーバが複数のクライアントに対してマルチキャスト通信により複数のブロックデータからなるデータを送信するデータ通信方法において、
    前記サーバが、前記複数のブロックデータの各々について、当該ブロックデータを受信した際に応答確認を送信する代表クライアントを、前記複数のクライアントに所定の順番に割り当て、
    前記サーバが、前記複数のブロックデータの中のブロックデータを、前記複数のブロックデータの中の前記ブロックデータに割り当てられた前記複数のクライアントの中の代表クライアントを示す情報と共に、マルチキャスト通信により前記複数のクライアントに送信し、
    前記代表クライアントが、前記応答確認を前記サーバに送信し、
    前記サーバが、前記代表クライアントからの応答確認を受信した場合に、前記複数のブロックデータの中の前記ブロックデータの後続のブロックデータを、前記後続のブロックデータに割り当てられた前記複数のクライアントの中の代表クライアントを示す情報と共に、マルチキャスト通信により前記複数のクライアントに送信し、
    前記代表クライアントが、自己が対応するブロックデータを、他のクライアントへの再送信のためにキャッシュし、前記キャッシュしたブロックデータを、当該代表クライアントが再度代表クライアントであることを示す情報を受信した後に、廃棄する
    ことを特徴とするデータ通信方法。
  2. 前記サーバが、前記データの送信の開始に先立って、前記複数のクライアントとの通信に基づいて、前記データを受信する前記複数のクライアントを登録するクライアントリストを作成し、
    前記サーバが、前記複数のブロックデータの各々について、前記代表クライアントを、前記クライアントリストに基づいて、前記クライアントリストにおける前記複数のクライアントの登録の順番にラウンドロビンにより、前記複数のクライアントに割り当てる
    ことを特徴とする請求項1に記載のデータ通信方法。
  3. 前記代表クライアントが、前記複数のブロックデータの中の前記ブロックデータに先行するブロックデータの全てについて、当該代表クライアントが正常に受信していることを確認して、前記確認に基づいて、前記応答確認を前記サーバに送信する
    ことを特徴とする請求項に記載のデータ通信方法。
JP2006266332A 2006-09-29 2006-09-29 データ通信方法 Expired - Fee Related JP4680860B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2006266332A JP4680860B2 (ja) 2006-09-29 2006-09-29 データ通信方法
KR20070020658A KR100858472B1 (ko) 2006-09-29 2007-02-28 데이터 통신 방법
US11/785,890 US8296460B2 (en) 2006-09-29 2007-04-20 Method and apparatus for communicating data and program thereof
EP20070107234 EP1926244A1 (en) 2006-09-29 2007-04-30 Method and apparatus for communicating data and program thereof
CN2007101039615A CN101155144B (zh) 2006-09-29 2007-05-17 用于数据通信的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006266332A JP4680860B2 (ja) 2006-09-29 2006-09-29 データ通信方法

Publications (2)

Publication Number Publication Date
JP2008085932A JP2008085932A (ja) 2008-04-10
JP4680860B2 true JP4680860B2 (ja) 2011-05-11

Family

ID=39256587

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006266332A Expired - Fee Related JP4680860B2 (ja) 2006-09-29 2006-09-29 データ通信方法

Country Status (5)

Country Link
US (1) US8296460B2 (ja)
EP (1) EP1926244A1 (ja)
JP (1) JP4680860B2 (ja)
KR (1) KR100858472B1 (ja)
CN (1) CN101155144B (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010154154A (ja) * 2008-12-25 2010-07-08 Silex Technology Inc 同報通信システム及び同報通信装置
US20100179984A1 (en) * 2009-01-13 2010-07-15 Viasat, Inc. Return-link optimization for file-sharing traffic
JP5385847B2 (ja) * 2010-05-06 2014-01-08 富士フイルム株式会社 中継サーバ,その動作制御方法およびその動作制御プログラム
US9007978B2 (en) * 2010-12-07 2015-04-14 Alcatel Lucent Method and apparatus for improved multicast service
EP4024760A1 (en) 2011-06-14 2022-07-06 ViaSat Inc. Transport protocol for anticipatory content
US9307059B2 (en) * 2012-11-09 2016-04-05 Sap Se Retry mechanism for data loading from on-premise datasource to cloud
US8930311B1 (en) 2012-12-14 2015-01-06 Netapp, Inc. Push-based piggyback system for source-driven logical replication in a storage environment
CN103905145B (zh) * 2012-12-27 2018-05-15 北京新媒传信科技有限公司 基于数据分块的数据传输方法和装置
US10019718B2 (en) 2015-05-12 2018-07-10 Bank Of America Corporation Customer-based associate interfaces
KR101727272B1 (ko) * 2016-01-19 2017-04-17 쉬프트정보통신 주식회사 자바스크립트 언어 기반의 비동기 통신 환경에서 클라이언트와 서버 사이의 대용량 데이터 분할 전송 및 처리 방법
CN108886433A (zh) * 2016-01-19 2018-11-23 华为技术有限公司 一种针对上行信道的反馈方法及装置
US10742512B2 (en) * 2017-07-24 2020-08-11 Singlewire Software, LLC System and method for multicast mapping

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000183873A (ja) * 1998-12-11 2000-06-30 Fujitsu Ltd データ転送方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4725834A (en) * 1984-02-27 1988-02-16 American Telephone And Telegraph Company, At&T Bell Laboratories Reliable broadcast protocol for a token passing bus network
GB8916489D0 (en) * 1989-07-19 1989-09-06 British Telecomm Data communication method and system
US5541927A (en) * 1994-08-24 1996-07-30 At&T Corp. Method of multicasting
US5553083B1 (en) 1995-01-19 2000-05-16 Starburst Comm Corp Method for quickly and reliably transmitting frames of data over communications links
US5561637A (en) * 1995-09-12 1996-10-01 International Business Machines Corporation Pace control for multicasting in a video server environment
US6507562B1 (en) * 1998-06-30 2003-01-14 Sun Microsystems, Inc. Dynamic optimization for receivers using distance between a repair head and a member station in a repair group for receivers having a closely knit topological arrangement to locate repair heads near the member stations which they serve in tree based repair in reliable multicast protocol
JP2000089996A (ja) 1998-09-16 2000-03-31 Nec Corp 情報処理装置およびデータベースシステム
US7043524B2 (en) * 2000-11-06 2006-05-09 Omnishift Technologies, Inc. Network caching system for streamed applications
JP2002359641A (ja) * 2001-05-31 2002-12-13 Matsushita Electric Ind Co Ltd ファイル配信システム、ファイル配信サーバ装置、及び受信クライアント装置
JP2003224601A (ja) * 2002-01-30 2003-08-08 Pfu Ltd 同報通信装置、方法、システム及びそのプログラム、プログラム記録媒体
SE524679C2 (sv) 2002-02-15 2004-09-14 Ericsson Telefon Ab L M System för broadcast/multicast-utsändning av datainformation emot en lokal del av ett trådlöst nät
KR100559979B1 (ko) 2003-04-03 2006-03-13 엘지전자 주식회사 이동통신 시스템에서의 메시지 전송방법
US7577750B2 (en) * 2003-05-23 2009-08-18 Microsoft Corporation Systems and methods for peer-to-peer collaboration to enhance multimedia streaming
US20050086469A1 (en) * 2003-10-17 2005-04-21 Microsoft Corporation Scalable, fault tolerant notification method
KR20050093389A (ko) * 2004-03-19 2005-09-23 주식회사 대우일렉트로닉스 무선랜기반 멀티캐스팅 시스템의 멀티미디어 데이터 처리방법
US7593333B2 (en) * 2004-07-07 2009-09-22 Microsoft Corporation Efficient one-to-many content distribution in a peer-to-peer computer network
KR20060003764A (ko) * 2004-07-07 2006-01-11 삼성전자주식회사 이동통신시스템에서의 동기 재전송 방법
JP4554420B2 (ja) 2005-04-06 2010-09-29 エヌ・ティ・ティ・コミュニケーションズ株式会社 ゲートウェイ装置及びそのプログラム
US7925781B1 (en) * 2006-05-26 2011-04-12 The Hong Kong University Of Science And Technology Distributed storage to support user interactivity in peer-to-peer video streaming

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000183873A (ja) * 1998-12-11 2000-06-30 Fujitsu Ltd データ転送方法

Also Published As

Publication number Publication date
EP1926244A1 (en) 2008-05-28
CN101155144A (zh) 2008-04-02
KR100858472B1 (ko) 2008-09-16
KR20080030439A (ko) 2008-04-04
US8296460B2 (en) 2012-10-23
JP2008085932A (ja) 2008-04-10
US20080082632A1 (en) 2008-04-03
CN101155144B (zh) 2011-04-13

Similar Documents

Publication Publication Date Title
JP4680860B2 (ja) データ通信方法
US11792114B2 (en) System and method for facilitating efficient management of non-idempotent operations in a network interface controller (NIC)
CN109120383B (zh) 无人机及其地面站、数据传输方法
US6744765B1 (en) Mechanism for completing messages in memory
US8190960B1 (en) Guaranteed inter-process communication
US8233483B2 (en) Communication apparatus, communication system, absent packet detecting method and absent packet detecting program
CN102368700B (zh) 一种分布式系统中消息的传递方法
US9231784B2 (en) Method for eliminating redundant connections
JP4872952B2 (ja) Tcpバッファコピー分散並列処理装置、方法及びプログラム
TWI734380B (zh) 電腦實施的方法和系統以及非暫態電腦可讀儲存媒體
CN114520711B (zh) 数据包的选择性重传
CN103957169A (zh) 一种基于反向请求的可靠udp的实现方法
TW200537877A (en) Retransmission system and method for a transport offload engine
US7000024B1 (en) Systems and methods for providing transmission control protocol communications
JP5062121B2 (ja) マルチキャスト通信におけるパケット再送制御方法及び装置
US20120331107A1 (en) Systems and methods for negotiated accelerated block option for trivial file transfer protocol (tftp)
JP2006191368A (ja) ネットワーク伝送装置
US20040148422A1 (en) Communication control method, communication system, and communication apparatus that can improve throughput
JP2013179486A (ja) パケット監視装置、パケット監視方法およびパケット監視システム
JP6182779B1 (ja) 転送装置、転送方法およびプログラム
KR20060096623A (ko) 통신시스템에서 데이터그램 프로토콜을 이용하여 실시간 데이터의 신뢰성을 보장하기 위한 방법
CN117203627A (zh) 用于远程直接内存访问的设备和方法
CN117640530A (zh) 集群网络的低延迟可靠数据传输方法和装置
JP2012088955A (ja) データ複製システム、データ複製サーバ、データ複製方法、及び、データ複製プログラム
JP2019161363A (ja) ファイバチャネル通信システム、末端装置、ファイバチャネル通信方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101116

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110117

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110117

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110117

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110203

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140210

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees