JP2007180611A - 通信システム及び通信方法 - Google Patents

通信システム及び通信方法 Download PDF

Info

Publication number
JP2007180611A
JP2007180611A JP2005373504A JP2005373504A JP2007180611A JP 2007180611 A JP2007180611 A JP 2007180611A JP 2005373504 A JP2005373504 A JP 2005373504A JP 2005373504 A JP2005373504 A JP 2005373504A JP 2007180611 A JP2007180611 A JP 2007180611A
Authority
JP
Japan
Prior art keywords
transmission
transmitting
data packet
packet
reception
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.)
Pending
Application number
JP2005373504A
Other languages
English (en)
Inventor
Yoshimoto Yasui
良基 安居
Daisuke Yashima
大亮 八島
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2005373504A priority Critical patent/JP2007180611A/ja
Priority to US11/643,905 priority patent/US20070147437A1/en
Publication of JP2007180611A publication Critical patent/JP2007180611A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1874Buffer management
    • 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/1854Scheduling and prioritising arrangements

Abstract

【課題】パケット再送用バッファのサイズと確認応答の送信遅延(間隔)を最適化することができる通信システムを提供すること。
【解決手段】 送信コンポーネント10と受信コンポーネント20とが通信可能に接続された通信システムであって、送信コンポーネント10は、パケット送信部10−4からデータパケットを送信してから、受信コンポーネント20からの肯定応答を受信するまでの遅延時間を測定するACK DLLP受信遅延測定部10−3と測定された遅延時間と、再送バッファ10−2の容量とに基づいて、確認応答送信部20−2での肯定応答の送信間隔の適否を判断し、当該判断結果に基づいて肯定応答の送信間隔を変更する指示を受信コンポーネント20に送信する送信間隔指示部10−1とを具備する。
【選択図】 図3

Description

本発明は、通信システム及び通信方法に関し、特に、送信装置と受信装置間の通信において、送信装置からのデータパケットに対する確認応答の送信間隔を調整可能な通信システム及び通信方法に関する。
コンピュータ間のデータパケットの通信においては、信頼性のあるデータ配送を維持するために、送信装置からのデータパケットを誤りなく受信したときには、受信装置は確認応答を送信側に返すようにしている。このような通信システムにおいて、例えば特開2001−111618号公報は、送信局と受信局間でのパケット通信において、送信局がDTパケットの送信時刻を記録し、該パケットに対応するACKパケットの受信時刻を測定する手段を備え、ACKパケットの受信時刻と対応するDTパケットの送信時刻の差から往復応答時間を算出する手段と、ACKパケットの受信間隔を測定する手段と、前記応答往復時間と前記受信間隔とにもとづいて最適なウインドウサイズを計算する手段とを備えた通信システムを開示している。
特開2001−111618号公報
しかしながら、特開2001−111618号公報を従来の技術は、送信装置内に配置されたパケット再送のためのバッファのサイズと、受信装置からの確認応答の送信遅延(送信間隔)との関係を最適化することを意図したものではなかった。
本発明は、パケット再送用バッファのサイズと確認応答の送信遅延(間隔)を最適化することができる通信システム及び通信方法を提供することを目的とする。
上記の目的を達成するために、本発明の第1の態様は、送信装置と受信装置とが通信可能に接続された通信システムであって、前記送信装置は、データパケットを前記受信装置に送信するためのパケット送信部と、前記送信装置から前記受信装置に送信されるデータパケットを再送用として保持する再送バッファと、を具備し、前記受信装置は、前記送信装置からのデータパケットを受信して当該データパケットの正当性を判断する正当性判断部と、前記正当性判断部での判断結果に基づいて、前記パケットが承認されたことを示す肯定応答かあるいは前記パケットが承認されなかったことを示す否定応答を所定の間隔で前記送信装置に送信する確認応答送信部と、を具備し、前記送信装置はさらに、前記送信部から前記データパケットを送信してから、前記受信装置からの前記肯定応答を受信するまでの遅延時間を測定する遅延時間測定部と、前記遅延時間測定部で測定された遅延時間と、前記再送バッファの容量とに基づいて、前記確認応答送信部での肯定応答の送信間隔の適否を判断し、当該判断結果に基づいて前記肯定応答の送信間隔を変更する指示を前記受信装置に送信する送信間隔指示部と、を具備する。
また、本発明の第2の態様は、第1の態様において、前記送信間隔指示部は、前記遅延時間測定部で測定された遅延時間と、前記再送バッファの容量を前記データパケットの送信レートで割り算した値と、を比較し、当該比較結果に基づいて、前記肯定応答の送信間隔を変更する指示を前記受信装置に送信する。
また、本発明の第3の態様は、送信装置と受信装置とが通信可能に接続された通信システムであって、前記送信装置は、データパケットを前記受信装置に送信するためのパケット送信部と、前記送信装置から前記受信装置に送信されるデータパケットを再送用として保持する再送バッファと、を具備し、前記受信装置は、前記送信装置からのデータパケットを受信して当該データパケットの正当性を判断する正当性判断部と、前記正当性判断部での判断結果に基づいて、前記パケットが承認されたことを示す肯定応答かあるいは前記パケットが承認されなかったことを示す否定応答を所定の間隔で前記送信装置に送信する確認応答送信部と、を具備し、前記受信装置はさらに、前記送信装置からのデータパケットを受信する受信間隔を測定する受信間隔測定部と、前記受信間隔測定部で測定された受信間隔に基づいて、前記確認応答送信部から送信される肯定応答の送信間隔の適否を判断し、当該判断結果に応じて前記肯定応答の送信間隔を変更する送信間隔変更部と、を具備する。
また、本発明の第4の態様は、送信装置と受信装置とが通信可能に接続された通信システムであって、前記送信装置は、データパケットを前記受信装置に送信するためのパケット送信部と、前記送信装置から前記受信装置に送信されるデータパケットを再送用として保持するものであり、その容量を変更可能な再送バッファと、を具備し、前記受信装置は、前記送信装置からのデータパケットを受信して当該データパケットの正当性を判断する正当性判断部と、前記正当性判断部での判断結果に基づいて、前記パケットが承認されたことを示す肯定応答かあるいは前記パケットが承認されなかったことを示す否定応答を所定の間隔で前記送信装置に送信する確認応答送信部と、を具備し、前記送信装置はさらに、前記送信部から前記データパケットを送信してから前記受信装置からの前記肯定応答を受信するまでの遅延時間を測定する遅延時間測定部と、前記遅延時間測定部で測定された遅延時間に基づいて、前記再送バッファの容量を変更するバッファ容量変更部と、を具備する。
また、本発明の第5の態様は、送信装置と受信装置とが通信可能に接続された通信システムであって、前記送信装置は、データパケットを前記受信装置に送信するためのパケット送信部と、前記送信装置から前記受信装置に送信されるデータパケットを再送用として保持する再送バッファと、を具備し、前記受信装置は、前記送信装置からのデータパケットを受信して当該データパケットの正当性を判断する正当性判断部と、前記正当性判断部での判断結果に基づいて、前記パケットが承認されたことを示す肯定応答かあるいは前記パケットが承認されなかったことを示す否定応答を所定の間隔で前記送信装置に送信する確認応答送信部と、を具備し、前記受信装置はさらに、前記確認応答送信部から前記肯定応答および前記否定応答のいずれもが送信されていないときに、前記送信装置から再送のデータパケットを受信したか否かを判断し、当該判断結果に基づいて、前記肯定応答の送信間隔を変更する送信間隔変更部を具備する。
また、本発明の第6の態様は、送信装置と受信装置とが通信可能に接続された通信システムであって、前記送信装置は、データパケットを前記受信装置に送信するためのパケット送信部と、前記送信装置から前記受信装置に送信されるデータパケットを再送用として保持する再送バッファと、を具備し、前記受信装置は、前記送信装置からのデータパケットを受信して当該データパケットの正当性を判断する正当性判断部と、前記正当性判断部での判断結果に基づいて、前記パケットが承認されたことを示す肯定応答かあるいは前記パケットが承認されなかったことを示す否定応答を所定の間隔で前記送信装置に送信する確認応答送信部と、を具備し、前記送信装置はさらに、前記再送バッファの空き容量を確認する空き容量確認部と、前記空き容量確認部で確認された前記空き容量にしたがって、前記受信装置に対して前記肯定応答を前記送信装置に送信する指示を出力する肯定応答送信指示部と、を具備する。
また、本発明の第7の態様は、送信装置と受信装置とが通信可能に接続された通信システムであって、前記送信装置は、データパケットを前記受信装置に送信するためのパケット送信部と、前記送信装置から前記受信装置に送信されるデータパケットを再送用として保持する再送バッファと、を具備し、前記受信装置は、前記送信装置からのデータパケットを受信して当該データパケットの正当性を判断する正当性判断部と、前記正当性判断部での判断結果に基づいて、前記パケットが承認されたことを示す肯定応答かあるいは前記パケットが承認されなかったことを示す否定応答を所定の間隔で前記送信装置に送信する確認応答送信部と、を具備し、前記受信装置はさらに、前記送信装置からのデータパケットを計数し、前記送信装置により設定された所定数のパケットが送信されたか否かを判断するパケット計数部を具備し、前記確認応答送信部は、前記パケット計数部での判断結果に基づいて、前記送信装置に対して前記確認応答を送信する。
また、本発明の第8の態様は、送信装置と受信装置とで通信を行なう通信方法であって、前記送信装置において、データパケットを前記受信装置に送信する送信ステップと、前記送信装置から前記受信装置に送信されるデータパケットを再送用として再送バッファに保持するステップと、を具備し、前記受信装置において、前記送信装置からのデータパケットを受信して当該データパケットの正当性を判断するステップと、前記正当性判断ステップでの判断結果に基づいて、前記パケットが承認されたことを示す肯定応答かあるいは前記パケットが承認されなかったことを示す否定応答を所定の間隔で前記送信装置に送信する確認応答を行なうステップと、を具備し、前記送信装置においてさらに、前記送信ステップで前記データパケットを送信してから、前記受信装置からの前記肯定応答を受信するまでの遅延時間を測定するステップと、前記遅延時間測定ステップで測定された遅延時間と、前記再送バッファの容量とに基づいて、前記確認応答ステップでの肯定応答の送信間隔の適否を判断し、当該判断結果に基づいて前記肯定応答の送信間隔を変更する指示を前記受信装置に送信するステップと、を具備する。
また、本発明の第9の態様は、第8の態様において、前記送信間隔指示ステップは、前記遅延時間測定ステップで測定された遅延時間と、前記再送バッファの容量を前記データパケットの送信レートで割り算した値と、を比較し、当該比較結果に基づいて、前記肯定応答の送信間隔を変更する指示を前記受信装置に送信する。
また、本発明の第10の態様は、送信装置と受信装置とで通信を行なう通信方法であって、前記送信装置において、データパケットを前記受信装置に送信する送信ステップと、前記送信装置から前記受信装置に送信されるデータパケットを再送用として再送バッファに保持するステップと、を具備し、前記受信装置において、前記送信装置からのデータパケットを受信して当該データパケットの正当性を判断するステップと、前記正当性判断ステップでの判断結果に基づいて、前記パケットが承認されたことを示す肯定応答かあるいは前記パケットが承認されなかったことを示す否定応答を所定の間隔で前記送信装置に送信する確認応答を行なうステップと、を具備し、前記受信装置においてさらに、前記送信装置からのデータパケットを受信する受信間隔を測定するステップと、前記受信間隔測定ステップで測定された受信間隔に基づいて、前記確認応答ステップにおいて送信される肯定応答の送信間隔の適否を判断し、当該判断結果に応じて前記肯定応答の送信間隔を変更するステップと、を具備する。
また、本発明の第11の態様は、送信装置と受信装置とで通信を行なう通信方法であって、前記送信装置において、データパケットを前記受信装置に送信する送信ステップと、前記送信装置から前記受信装置に送信されるデータパケットを再送用として再送バッファに保持するステップと、を具備し、前記受信装置において、前記送信装置からのデータパケットを受信して当該データパケットの正当性を判断するステップと、前記正当性判断ステップでの判断結果に基づいて、前記パケットが承認されたことを示す肯定応答かあるいは前記パケットが承認されなかったことを示す否定応答を所定の間隔で前記送信装置に送信する確認応答を行なうステップと、を具備し、前記送信装置においてさらに、前記送信ステップにおいて前記データパケットを送信してから前記受信装置からの前記肯定応答を受信するまでの遅延時間を測定するステップと、前記遅延時間測定ステップで測定された遅延時間に基づいて、前記再送バッファの容量を変更するステップと、を具備する。
また、本発明の第12の態様は、送信装置と受信装置とで通信を行なう通信方法であって、前記送信装置において、データパケットを前記受信装置に送信する送信ステップと、前記送信装置から前記受信装置に送信されるデータパケットを再送用として再送バッファに保持するステップと、を具備し、前記受信装置において、前記送信装置からのデータパケットを受信して当該データパケットの正当性を判断するステップと、前記正当性判断ステップでの判断結果に基づいて、前記パケットが承認されたことを示す肯定応答かあるいは前記パケットが承認されなかったことを示す否定応答を所定の間隔で前記送信装置に送信する確認応答を行なうステップと、を具備し、前記受信装置はさらに、前記確認応答ステップにおいて前記肯定応答および前記否定応答のいずれもが送信されていないときに、前記送信装置から再送のデータパケットを受信したか否かを判断し、当該判断結果に基づいて、前記肯定応答の送信間隔を変更するステップを具備する。
また、本発明の第13の態様は、送信装置と受信装置とで通信を行なう通信方法であって、前記送信装置において、データパケットを前記受信装置に送信する送信ステップと、前記送信装置から前記受信装置に送信されるデータパケットを再送用として再送バッファに保持するステップと、を具備し、前記受信装置において、前記送信装置からのデータパケットを受信して当該データパケットの正当性を判断するステップと、前記正当性判断ステップでの判断結果に基づいて、前記パケットが承認されたことを示す肯定応答かあるいは前記パケットが承認されなかったことを示す否定応答を所定の間隔で前記送信装置に送信する確認応答を行なうステップと、を具備し、前記送信装置においてさらに、前記再送バッファの空き容量を確認するステップと、前記空き容量確認ステップで確認された前記空き容量にしたがって、前記受信装置に対して前記肯定応答を前記送信装置に送信する指示を出力するステップと、を具備する。
また、本発明の第14の態様は、送信装置と受信装置とで通信を行なう通信方法であって、前記送信装置において、データパケットを前記受信装置に送信する送信ステップと、前記送信装置から前記受信装置に送信されるデータパケットを再送用として再送バッファに保持するステップと、を具備し、前記受信装置において、前記送信装置からのデータパケットを受信して当該データパケットの正当性を判断するステップと、前記正当性判断ステップでの判断結果に基づいて、前記パケットが承認されたことを示す肯定応答かあるいは前記パケットが承認されなかったことを示す否定応答を所定の間隔で前記送信装置に送信する確認応答を行なうステップと、を具備し、前記受信装置においてさらに、前記送信装置からのデータパケットを計数し、前記送信装置により設定された所定数のパケットが送信されたか否かを判断するステップを具備し、前記確認応答送信ステップは、前記パケット計数ステップでの判断結果に基づいて、前記送信装置に対して前記確認応答を送信する。
本発明によれば、パケット再送用バッファのサイズと確認応答の送信遅延(間隔)を最適化することができる。
まず、本発明の概略を説明する。ここでは、本発明を次世代PCIバスインタフェース規格であるPCI Expressに適用した場合について説明する。PCI ExpressはPCIバスの上位互換となるシリアルバスであり、1レーンあたり最大2.5Gbpsで最大32レーンの広いデータバンド幅を有している。
以下に、PCI Expressの規格で定義されたデータリンク層に備えられた、リンク間で送受信されたTLP(Transaction Layer Packet)の正当性を保証する機能について図1を参照して説明する。
図1は、再送バッファとAck DLLP(Data Link Layer Packet)によるTLP承認の手順を説明するための図であり、受信バッファ11と再送バッファ12とを備える送信側コンポーネント10と、受信バッファ22と再送バッファ21とを備える受信側コンポーネント20とが通信可能に接続される。図1において、まず、送信側コンポーネント10からTLP a、TLP b、が受信側コンポーネント20に送信される(ステップS1、S2)。このTLP a、TLP b、は図2に示すように、後述するシーケンス番号SN(ここではD85,D86)とともに再送バッファ12に記録される。受信側コンポーネント20は、SN:D85,D86のTLPの受信を確認する(ステップS3)。ここでは、D85のTLPを受信した後D86のTLPを受信した場合を想定する。すると受信側コンポーネント20は送信側コンポーネント10に対してD86についてのAck DLLPを送信する(ステップS4)。送信側コンポーネント10はD86についてのAck DLLPを受信してD86のTLPが承認されたことを知る(ステップS5)。次に、送信側コンポーネント10はSN:D86までのTLPを承認済みとして再送バッファ12から削除する(ステップS6)。
以下に、上記した手順をより詳細に説明する。リンク間で送受信されたTLPの正当性を保証する機能を実現するために、TLP上にはシーケンス番号と、LCRCが用いられている。シーケンス番号は、過去4096個のTLPについて連番で固有の値を示す12bitのIDであり、送信側コンポーネント10からTLPを送信する際に生成される。受信側コンポーネント20は、その連続性を利用してTLPの受信抜け等がないかどうかについての正当性を判断できる。
一方、LCRCは32bitのCRC(cyclic redundancy check)である。LCRCは送信側コンポーネント10からTLPを送信する際に生成され、受信側コンポーネント20は受信側コンポーネント20自身で計算したCRCと比較し、誤りを検出することができる。
このように、受信側コンポーネント20のデータリンク層はシーケンス番号とLCRCが正しいか否かで、そのTLPの正当性を判断する。このとき受信側コンポーネント20のデータリンク層が、正当なTLPを受信した場合にはAck DLLP(肯定DLLP)を送り返し、不当なTLPを受信した場合にはNak DLLP(否定DLLP)を送り返す。
送信側コンポーネント10のデータリンク層は送信したTLPを一旦再送バッファに保持しており、Ack DLLPによって承認されることが通知された場合には、承認されたTLPを再送バッファ12から削除する。また、Nak DLLPによって少なくとも1つのTLPが非承認であることが通知された場合には、再送バッファ12に残っている承認されなかったTLP以降のすべてのTLPを受信側コンポーネント20に再送する。ただし、承認を示すAck DLLPは必ずしも受信側コンポーネント20が1つのTLPを受信する毎に送信する必要はなく、最後に承認したTLPのシーケンス番号をAck DLLPに載せて送ることで、そのシーケンス番号が示すTLPまでを同時に承認することが出来る。これはAck DLLPを送信する個数を抑制し、Ack DLLPの送信による帯域の減少を押さえる効果がある。
このAck DLLPの送信遅延は規格上厳密には定められておらず、大まかなガイドラインが示されているだけであり、実装依存となっている。
以下に、図面を参照して本発明の実施形態を詳細に説明する。
(第1実施形態)
図3は、本発明の第1実施形態の概略を説明するための図である。まず、送信側コンポーネント10のパケット送信部10−1は受信側コンポーネント20に対してTLPを送信する(ステップST1)。受信側コンポーネント20はTLPを受信すると、正当性判断部20−1でパケットの正当性を判断し正当であるならば、確認応答送信部20−2からAck DLLPを送信側コンポーネント10に送信する(ステップST2)。送信側コンポーネント10のAck DLLP 受信遅延/受信間隔測定部10−3は、Ack DLLPを受信した時刻に基づいて、TLPを送信してからAck DLLP受信までの遅延あるいは受信間隔を測定する(ステップST3)。
送信側コンポーネント10の送信間隔指示部10−4は、このときの測定結果に応じてAck DLLPの送信間隔を変更する指示を受信側コンポーネント20に送信する(ステップS4)。受信側コンポーネント20は当該指示を受信したならば、Ack DLLPの送信間隔を変更(ステップS5)した上でAck DLLPを送信側コンポーネント10に送信する。
以下に、上記した手順をより詳細に説明する。PCI Express のコンポーネントとして実装されるTLPを送信する側のデバイスとしての送信側コンポーネント内の再送バッファのサイズと、相手デバイスとしての受信側コンポーネントに実装されているAck DLLPの発行間隔を決めるAck 送信レイテンシーリミット値は相互に最適な実装あるいは設定が存在し、これが最適でない場合、例えば再送バッファのサイズに対して、Ack 送信レイテンシーリミット値が大きすぎる場合や小さすぎる場合には、それぞれ帯域が制限されることになる。PCI Expressの規格である、文献『PCI Express Base Specification 1.1』中には、 Ack 送信レイテンシーリミット値のおおよそのガイドラインは示されているものの、再送バッファのサイズとAck 送信レイテンシーリミット値は接続した受信コンポーネントの実装あるいは設定を考慮しなくては、最適な値を決定することは出来ない値である。
そこで第1実施形態では、送信側コンポーネントがTLPを送信してから、そのTLPについてのAck DLLPを受信側コンポーネントから受信するまでの時間を送信側コンポーネントにおいて測定し、その時間が適切ではない場合には、受信側コンポーネントに対して、Ack DLLPの送信遅延を変更する指示を伝達することによって問題を解決する。
指示を伝達する手段としては、特に制約を設けないが、例えば、PCI Express規格に定義されている、ユーザー(Vendor)に開放されたVendor Defined Message(VD Msg),Vendor Specific DLLP(VS DLLP)を使用してもよい。これらのパケットの中にはVendorが自由に定義してよい領域が有るため、その領域を使用して送信遅延を変更するための情報を伝達する。伝える情報はAck DLLP送信遅延そのものでもよいし、Ack DLLPの間隔を現状より長くする指示、Ack DLLPの間隔を現状より短くする指示を使い分けることで、Ack DLLP送信遅延をTLP送信側の意図した値に収束させる制御方法でもよい。
この送信遅延はAck DLLP発行側で操作できる範囲や、その粒度に制限がある可能性もあるので、TLP送信側からのAck DLLP送信遅延の変更指示もある程度の粒度を持つ。これより、遅延をある1点ではなく一定時間内に収めることを目的としたヒステリシス制御であることが望ましい。このようにすることで、Ack DLLPの操作できる限界を超えて、TLP送信側がAck DLLP送信遅延の調整を試み、結果としてVD MsgまたはVS DLLPを発行しすぎることで、帯域を減少させることを抑制する。
また、帯域の減少を抑える観点から、Ack DLLP送信遅延の制御を目的としたVD MsgまたはVS DLLPの発行は連続して発行する事を避け、一定数のTLP送信毎に、または一定時間毎に、VD MsgまたはVS DLLPの発行を行うことが望ましい。当然、Ack DLLP送信遅延がTLP送信側から見て最適であれば、VD MsgまたはVS DLLPを送信する必要はない。
図4は、VS DLLPでのAck DLLP送信遅延制御の実装例を示す図である。この実装例ではByte1が01hのとき、VS DLLPがAck DLLP送信遅延制御用VS DLLPであることを示し、Byte3のbit0が0bのときAck DLLP送信遅延を長くすることを、bit0が1bのときAck DLLP送信遅延を長くすることを示すものとしている。このVS DLLPを受信したデバイスがサポートする場合には、受信したVS DLLPのByte3 bit0の値にしたがって、以降のAck DLLP送信遅延を変更する。
受信側コンポーネント20のVS DLLPのサポート状況は、相手デバイスのConfiguration Registerにある、Vendor ID、Device IDから判断できることもあるが、通常一方のデバイスから相手のデバイスのサポート状況は解らない。このため、本発明によるAck DLLP送信遅延制御を数回試みても、Ack DLLP送信遅延の改善が見られない場合には、相手デバイスが未サポートである可能性が高いので、Ack DLLP送信遅延制御の機能、すなわちそれを示すVS DLLPの発行を止めた方が、帯域の減少を抑制することに繋がる。
前述のように、Ack DLLP送信遅延の制御に用いるパケットはVD Msg、VS DLLPのどちらでも可能だが、再送バッファやAck DLLPの制御はデータリンク層の機能なので、データリンク層のパケットであるDLLPを使用することが望ましい。そうすることで、VD Msgによって、再送バッファの容量を消費することを避ける効果もある。
図5(A)、(B)は、第1実施形態についてのTLP送信側の処理についてのフローチャートを示す。ここでは一例として、TLP受信側のAckNakレイテンシータイマー制御回路と類似した回路を実装した場合について示す。Ack DLLP 送信レイテンシー測定用のタイマーを実装し、未承認のTLPが存在する場合にタイマーを動作させ(図5(A)のステップS20〜S22)、Ack DLLPを受信するまでの時間を計測する(ステップS23〜S25)。
すなわち、Ack送信レイテンシー測定用のタイマーをリセット(ステップS20)した後、未承認のTLPが存在するか否かを判断し(ステップS21)、NOの場合にはステップS20に戻り、YESになった場合にはAck送信レイテンシー測定用のタイマーをスタートさせる(ステップS22)。次に、Ack DLLPを受信したか否かを判断し(ステップS23)、NOならばAck送信レイテンシー測定用のタイマーを1インクリメントし(ステップS24)、その後、ステップS23に戻る。また、ここでYESの場合にはAck送信レイテンシー測定用のタイマーの値を記録(ステップS25)した後、ステップS20に戻る。
次に、上記の方法により測定した時間をAck DLLP 送信レイテンシーとして、この値がTLP送信回路に適合しているかどうかの判定を図5(B)のステップST20〜ST24で行う。リンクが正常の場合、Ack DLLP送信レイテンシーが以下の場合にもっとも効率的であると考えられる。
Ack DLLP 送信レイテンシー=(再送バッファの容量)/(TLP 送信レート)
TLP送信レートは、更新FC DLLP等のDLLP、SKP Ordered Set等のOS、TLPのヘッダ等のオーバーヘッドを除いたレートで計算することが望ましい。
Ack送信レイテンシーが更新されたと判断されたならば(ステップS30)、Ack DLLP 送信レイテンシーが(再送バッファの容量)/(TLP 送信レート)よりも大きいか否かを判断する(ステップS31)。Ack DLLP送信レイテンシーが、測定したAck送信レイテンシーよりも小さい場合には、Ack DLLPの遅延のために再送バッファ12がフルになる可能性が高いため、Vendor Specific(VS) DLLPを用いてTLP受信側の回路へAck 送信レイテンシーを小さくすることを指示する(ステップS33)。逆に、計算したAck 送信レイテンシーが、測定したAck DLLP送信レイテンシーよりも著しく大きい場合には(ステップS32)、再送バッファの利用効率が悪い、頻繁なAck DLLP送信によるリンクの利用効率が悪いと考えられるため、Vendor Specific DLLPを用いてTLP受信側コンポーネントの回路へAck DLLP送信レイテンシーを大きくすることを指示する(ステップS34)。
図6は、第1実施形態についてのTLP受信側の処理についてのフローチャートを示している。受信側では、TLP送信側から送信されたVendor Specific DLLPを元に、実際のAck DLLP 送信レイテンシーを変更する。すなわち、まずAck送信レイテンシーリミットを小さくするVS DLLPを受信したか否かを判断し(ステップ41)、YESならばAck送信レイテンシーリミットを所定量だけ小さくし(ステップ42)、NOの場合にはAck送信レイテンシーリミットを大きくするVS DLLPを受信したか否かを判断し(ステップ43)、NOならばステップS41に戻り、YESならばAck送信レイテンシーリミットを所定量だけ大きくする(ステップS44)。
第1実施形態によれば、再送バッファサイズ/Ack送信レイテンシーリミットの関係を最適化するための具体的な方法が提示された。これによって帯域の最大化を容易に行うこと、または不要な再送バッファを持たないことでハードウェアリソースを節約することが出来る。
(第2実施形態)
以下に、本発明の第2実施形態を説明する。図7は、本発明の第2実施形態の概略を説明するための図である。まず、送信側コンポーネント10のパケット送信部10−1は受信側コンポーネント20に対してTLPを送信する(ステップSM1)。受信側コンポーネント20はTLPを受信すると正当性判断部20−1でパケットの正当性を判断し、正当であるならば、確認応答送信部20−2からAck DLLPを送信側コンポーネント10に送信する(ステップSM2)。このとき、受信側コンポーネント20のTLP受信間隔測定部20−3は、TLP受信間隔を測定する(ステップSM3)。確認応答送信部20−2は、このときの測定結果に応じて送信間隔を変更したAck DLLPを送信側コンポーネント10に送信する(ステップSM4)。
以下に、上記した手順をより詳細に説明する。PCI Expressによって接続されたデバイス間でTLPが流れなくなったり、流れるTLPの数が減る、あるいは間隔が長くなる原因は幾つか存在する。その1つが前述の送信側コンポーネント10の再送バッファ12のサイズと、受信側コンポーネント20のAck DLLP送信遅延の不整合による問題である。再送バッファ12のサイズに対して、Ack DLLPの送信遅延が大きすぎる場合には、再送バッファ12が未承認のTLPで満たされるために、次のTLPを送信できなくなるという可能性がある。
そこで第2実施形態では、あらかじめ想定し設定された値よりも、TLPの受信間隔が長い場合、あるいは一定期間内に受信したTLPの数が少ない場合には、Ack DLLPの送信遅延を短くすることで、相手デバイスの再送バッファの空きを作りやすくすることを特徴とする。
図8は第2実施形態の動作を示すフローチャートである。TLP受信間隔測定部20−3は送信側コンポーネント10からのTLPを受信してTLP受信間隔を測定する(ステップS50)。次に測定した間隔が長いか否かを閾値に基づいて判断し(ステップS51)、NOの場合にはステップS50に戻り、YESの場合、すなわち閾値よりも長かった場合には、Ack DLLP送信間隔を短縮する(ステップS52)。閾値の判定については、単純な比較でも良いし、バースト転送等の一定間隔のTLP受信の際のみ判定対象にしても良い。DLLP送信間隔の短縮を行うことでTLP受信間隔が短縮されれば(ステップS53)、送信側コンポーネント10の再送バッファ10−2が頻繁に空くようになったことを意味するため、この状態を保持する。
一方でTLP受信間隔に変化がなければ、Ack DLLP要因でTLP受信間隔が長いのではないと考えられるため、Ack DLLPの送信間隔を元に戻す(ステップS54)。これは、無駄にAck DLLPを送信して、送信帯域を浪費することがないようにするためである。
第2実施形態によれば、送信側コンポーネントの再送バッファの負荷を軽減することが可能になる。
(第3実施形態)
以下に、本発明の第3実施形態を説明する。図9は、本発明の第3実施形態の概略を説明するための図である。まず、送信側コンポーネント10のパケット送信部10−1は受信側コンポーネント20に対してTLPを送信する(ステップSL1)。受信側コンポーネント20はTLPを受信すると、正当性判断部20−1でパケットの正当性を判断し、正当であるならば、確認応答送信部20−2からAck DLLPを送信側コンポーネント10に送信する(ステップSL2)。送信側コンポーネント10のAck DLLP 受信遅延/受信間隔測定部10−3は、Ack DLLPを受信した時刻に基づいて、Ack DLLP受信までの遅延あるいは受信間隔を測定する(ステップST3)。次に、送信側コンポーネント10の再送バッファ変更部10−4は、このときの測定結果に応じて再送バッファの容量を変更する(ステップSL4)。
以下に、上記した手順をより詳細に説明する。再送バッファの実装方法には、再送バッファ専用の固定のハードウェアを持つ方法の他に、バッファ領域を他の機能とシェアする方法が考えられる。このような実装方法では再送バッファに割り当てるバッファ領域のサイズを最小限に抑えることで、他の機能が残りの領域を最大限に利用できるようにすることができる。しかし、前述のように相手デバイスのAck DLLPの送信遅延が判らないことから、通常再送バッファには十分なマージンを持って設計されることが普通である。
そこで第3実施形態ではTLPを送信してからAck DLLPを受信するまでの間隔を計測し、それを元に再送バッファのサイズを動的に調整することで、再送バッファが占有していたバッファ領域を開放し、他の目的に利用できるようにする。具体的には、おおよそ以下の式を満たすように再送バッファのサイズを決定すればよい。
要求された再送バッファサイズ=(Ack DLLP送信レイテンシー)×(TLP送信レート)
ここで、TLP送信レートは、更新 FC DLLP等のDLLP、SKP Ordered Set等のOS、TLPのHeader等のオーバーヘッドを除いたレートで計算することが望ましい。
図10(A)、(B)は第3実施形態の動作を示すフローチャートである。図10(A)のステップは図5(A)のステップと同一であるので説明を省略する。ステップS25の後は図10(B)のステップS51に移行してAck送信レイテンシーに変動があるか否かを判断する。Ack送信レイテンシーに変動があれば、変動値より上記の式に基づいて適切な再送バッファのサイズを計算し(ステップS52)、再送バッファを調整する。すなわち、再送バッファのサイズが変更可能か否かを判断し(ステップS53)、NOの場合には新たなバッファを割り当てるためのスペースはなしと判断して、再送バッファのサイズを変更するために、新たなバッファを割り当てる準備をする(ステップS55)。一方、ステップS53の判断がYESならば、再送バッファのサイズを変更する(ステップS54)。
ここで、再送バッファを減少(開放)させる場合には特に問題はないが、さらに確保する場合には確保が不可能な場合もある。その場合には更なる再送バッファの確保ができるまで待機するか、再送バッファの容量を維持するかのいずれかとなるであろう。
また、別の実装方法としては、再送バッファの書き込みポインタ(再送バッファ上の現在のTLP書き込み位置)と書き込み限界(再送バッファ上のTLP書き込み限界位置)の間隔を常に監視し、一定期間でもっとも両者の間隔が詰まったとき、つまりBufferを多く占有したときを基準に動的に調整することも可能である。
書き込み限界はAck DLLPを受信することで更新されるので、書き込みポインタと書き込み限界の間隔によって再送バッファのサイズを制御することは、TLPの送信頻度とAck DLLP送信遅延によって制御することに相当する。
図11は、一般的なリングバッファを用いた再送バッファの実装概略を説明するための図である。再送バッファ中には未承認のTLPが格納されており、トランザクション層の送信回路から送信されるTLPが再送バッファに格納される場合には書き込みポインタがインクリメントされ、一方で、Ack DLLPを対向するコンポーネントから受信することでTLPが承認され、再送バッファが書き込み限界をインクリメントすることによって開放される。ここで、書き込み限界から、書き込みポインタまでの部分が、再送バッファの空き領域(フリースペース)となる。
図12(A)、(B)は、ポインタベースの制御フローチャートを示す。再送バッファ内の空き領域(Free Space)は、書き込み限界と書き込みポインタによって支配され、これが常に計算される。この値が過去の最小値(最小空き領域レジスタr)を下回った場合には、最小空き領域レジスタが更新される(図12(A)のステップS60〜S62)。
次に、図12(B)のフローに移行して最小空き領域レジスタが0よりも大きいか否かを判断する(ステップS70)。
最小空き領域レジスタの値が0であるとすると、再送バッファが過去にフルになったということを示すため、再送バッファの容量を増加させることを試み(ステップS71)、再送バッファサイズが受信可能か否かを判断する(ステップS72)。YESの場合にはステップS76(後述する)に進み、NOの場合には新たなバッファを割り当てるスペースは無いと判断して、まだ再送バッファのサイズを拡大するか否かを判断する(ステップS73)。ここでYESならば再送バッファサイズを変更するために新たなバッファを割り当てる準備をし(ステップS74)、ステップS72に戻る。
一方、ステップS70の判断がYESすなわち、最小空き領域レジスタの値が正、あるいは一定以上の閾値以上であるならば、無駄な再送バッファが存在しうるということを示すため、例えば、図13(A)、(B)に示すように、書き込み限界値を減少させ、バッファの折り返し位置を変更することにより、再送バッファの空き領域のサイズを減少させる(ステップS75)。
次に、最小空き領域レジスタに従って再送バッファサイズを調整し(ステップS76)、続いて調整された再送バッファサイズに従って最小空き領域レジスタを調整する(ステップS77)。
このように再送バッファの容量を変化させることで、再送バッファの効率的な利用を実現させ、他の用途に無駄な再送バッファ分のメモリを割り当てることができる。
なお、再送バッファサイズを縮小した場合には、他の共有バッファに領域を割り当てることができる。一例として、例えば、受信バッファ(データリンク層またはトランザクション層)や、トランザクション層送信バッファが挙げられる。
第3実施形態によれば、Ack DLLP送信遅延に基づいて再送バッファのサイズを調整するようにしたので、再送バッファのサイズをつねに最適な大きさに調整できる。
(第4実施形態)
以下に、本発明の第4実施形態を説明する。図14は、本発明の第4実施形態の概略を説明するための図である。ここでは、送信側コンポーネント10がTLPを受信側コンポーネント20に送信したにもかかわらず、Ack DLLPを受信できない場合を想定する。このような場合、送信側コンポーネント10は受信側コンポーネント20に対して再送バッファ10−2内のTLPを再送する(ステップSS1)。受信側コンポーネント20は再送されたTLPを受信すると(ステップSS2)、正当性判断部20−1でパケットの正当性を判断し、正当であるならば、確認応答送信部20−2からAck DLLPを送信側コンポーネント10に送信する(ステップSS3)。このとき、送信間隔変更部20−4でAck DLLPの送信間隔を短縮した上で送信側コンポーネント10に送信する(ステップSS3)。
以下に、上記した手順をより詳細に説明する。PCI Expressでは、送信側コンポーネント10がTLP送信後に一定期間以上、Ack DLLPを受信できない場合、送信側コンポーネント10は、再送バッファ内にありまだ承認されていないTLPを再送する。このような状況はノイズなどの影響でレーンの状態が悪く、相手デバイス(受信側コンポーネント20)がパケットを正確に受信できなかった場合にも発生することだが、相手のデバイスが不完全な状態でTLPを受信していれば、TLPの非承認を示すNak DLLPを送り返すため、それを原因として再送が発生する。
そこで、第4実施形態では受信側コンポーネント20において、Ack DLLP/Nak DLLPをともに送信していないときに、受信側コンポーネント20で過去に受信したシーケンス番号のTLPを受信した場合、つまり送信側コンポーネント10によってTLPを再送していると考えられる場合、受信側コンポーネント20が以降のAck DLLPの送信遅延を小さくすることで、再送の発生を抑制する。
図15は第4実施形態の動作を示すフローチャートである。まず、TLPを受信し(ステップS80)、次に、受信コンポーネント20が過去に受信したシーケンス番号のTLP(Duplicated TLP)か否かを判断し(ステップS81、S82)、YESの場合には、Ack DLLP送信レイテンシーを短縮し(ステップS84)、その後、複製TLP受信シーケンス(Ack DLLPを送信する)に移行する(ステップS85)。また、ステップS82の判断がNOならば、不良TLPシーケンスに移行する(ステップS83)。
第4実施形態によれば、送信側コンポーネント10によってTLPを再送していると考えられる場合、受信側コンポーネント20が以降のAck DLLPの送信遅延を小さくするようにしたので、再送の発生を抑制することができる。
(第5実施形態)
以下に、本発明の第5実施形態を説明する。図16は、本発明の第5実施形態の概略を説明するための図である。ここでは、送信側コンポーネント10は空き容量確認部10−5で再送バッファ10−2の空き領域を検出し、その結果に応じてAck DLLPの送信間隔を変更する指示をパケット送信部10−1から受信側コンポーネント20に対して送信する(ステップSM1)。受信側コンポーネント20はこの指示を受信すると(ステップSM2)、正当性判断部20−1で指示の正当性を判断し、正当であるならば、送信間隔変更部20−4においてAck DLLPの送信間隔を当該指示通りに変更し、その後、確認応答送信部20−2からAck DLLPを送信側コンポーネント10に送信する(ステップSM3)。
以下に、上記した手順をより詳細に説明する。PCI Express規格では、Ack DLLPの送信遅延は、規定された一定時間内に送信することが定められているが、送信最小間隔については特に規定はない。第1実施形態では、送信側コンポーネント10から受信側コンポーネント20に対して、Ack DLLP送信間隔(時間)の調整を指示するようにしたが、この機構の動作が間に合わず、送信側の再送バッファの空き容量が不足してしまった場合には、TLPの送信が停止してしまう。
そこで第5実施形態では、Ack DLLPの送信要求をただちに受信側コンポーネント20に通知することによって受信側コンポーネント20がAck DLLPを送信するタイミングを早め、TLP送信を再開させることができるようにする。また、送信側コンポーネント10は再送バッファ10−2の空き容量は把握しているから、受信側コンポーネント20に対してそのつど再送バッファ10−2の空き領域におうじて数パケット後でのAck DLLP送信を要求することも可能である。
図17(A)、(B)は、第5実施形態の動作を示すフローチャートであり、Ack DLLP送信制御(即時/規定TLP受信時)の手順を示している。図18(A)は送信側コンポーネント10のフローであり、図18(B)は受信側コンポーネント20のフローである。
送信側コンポーネント10は、まず、再送バッファがフルか否かを判断し(ステップS90)、YESの場合には受信側コンポーネント20にAck DLLPを送信させるために、VS DLLPなどを発行する(ステップS92)。また、ステップS90の判断がNOならば、数個のTLP受信後、Ack DLLPを送信する必要があるか否かを判断し(ステップS91)、YESならば数個のTLP受信後にAck DLLPを発行させるために VS DLLPを発行する(ステップS93)。ステップS91の判断がNOならばステップS90に戻る。
次に、受信側コンポーネント20のフローにおいて、まず受信したVS DLLPがAck DLLPの発行を要求するか否かを判断する(ステップS100)。ここでYESの場合にはAck DLLPを直ちに発行する(ステップS102)。また、NOならば、受信したVS DLLPが数個のTLPの受信後に、Ack DLLPを発行するか否かを判断する(ステップS101)。ここでYESの場合には数個のTLPの受信後にAck DLLPを発行する(ステップS103)。NOの場合にはステップS100に戻る。
(第6実施形態)
以下に本発明の第6実施形態を説明する。第1実施形態では、送信側コンポーネントが時間に基づいて受信側コンポーネントのAck DLLPの送信遅延を制御する方法を示したが、別の制御方法として、パケット数によって制御する方法が考えられる。送信側コンポーネント10は例えば、VD Msg、VS DLLPを使用して何パケット周期でAck DLLPを欲しいか事前にパケット送信部10−1を介して受信側コンポーネント20に通知する(ステップSW1)。受信側コンポーネント20は受信したパケット(ステップSW2)の正当性を正当性判断部20−1で判断し、パケットが正当であるならば、パケット計数部20−5において受信したパケットの個数をカウントする。指定された個数を受信した段階で、確認応答送信部20−2からAck DLLPを送信側コンポーネント10に送信する(ステップSW3)。
図19は、第6実施形態の方法を用いるVS DLLPの実装例を示している。
なお、上記の実施形態において説明したAck DLLPの送信遅延の制御方法は、必ずしも個別に使用しなければならないものではなく、複数の制御方法を実装し、組み合わせて使用しても構わない。
再送バッファとAck DLLP(Data Link Layer Packet)によるTLP承認の手順を説明するための図である。 再送バッファの内容の一例を示す図である。 本発明の第1実施形態の概略を説明するための図である。 VS DLLPでのAck DLLP送信遅延制御の実装例を示す図である。 第1実施形態についてのTLP送信側の処理についてのフローチャートである。 第1実施形態についてのTLP受信側の処理についてのフローチャートである。 本発明の第2実施形態の概略を説明するための図である。 第2実施形態の動作を示すフローチャートである。 本発明の第3実施形態の概略を説明するための図である。 第3実施形態の動作を示すフローチャートである。 一般的なリングバッファを用いた再送バッファの実装概略を説明するための図である。 ポインタベースの制御フローチャートである。 書き込み限界値を減少させ、バッファの折り返し位置を変更するようすを示す図である。 本発明の第4実施形態の概略を説明するための図である。 第4実施形態の動作を示すフローチャートである。 本発明の第5実施形態の概略を説明するための図である。 第5実施形態の動作を示すフローチャートである。 (A)は送信側コンポーネント10のフローであり、(B)は受信側コンポーネント20のフローである。 第6実施形態の方法を用いるVS DLLPの実装例を示す図である。
符号の説明
10 送信側コンポーネント
10−1 送信バッファ
10−2 再送バッファ
10−3 ACK DLLP受信遅延/受信間隔測定部
11 受信バッファ
12 再送バッファ
20 受信側コンポーネント
20−1 正当性判断部
20−2 確認応答送信部
21 再送バッファ
22 受信バッファ

Claims (14)

  1. 送信装置と受信装置とが通信可能に接続された通信システムであって、
    前記送信装置は、データパケットを前記受信装置に送信するためのパケット送信部と、
    前記送信装置から前記受信装置に送信されるデータパケットを再送用として保持する再送バッファと、を具備し、
    前記受信装置は、前記送信装置からのデータパケットを受信して当該データパケットの正当性を判断する正当性判断部と、
    前記正当性判断部での判断結果に基づいて、前記パケットが承認されたことを示す肯定応答かあるいは前記パケットが承認されなかったことを示す否定応答を所定の間隔で前記送信装置に送信する確認応答送信部と、を具備し、
    前記送信装置はさらに、前記送信部から前記データパケットを送信してから、前記受信装置からの前記肯定応答を受信するまでの遅延時間を測定する遅延時間測定部と、
    前記遅延時間測定部で測定された遅延時間と、前記再送バッファの容量とに基づいて、前記確認応答送信部での肯定応答の送信間隔の適否を判断し、当該判断結果に基づいて前記肯定応答の送信間隔を変更する指示を前記受信装置に送信する送信間隔指示部と、
    を具備することを特徴とする通信システム。
  2. 前記送信間隔指示部は、前記遅延時間測定部で測定された遅延時間と、前記再送バッファの容量を前記データパケットの送信レートで割り算した値と、を比較し、当該比較結果に基づいて、前記肯定応答の送信間隔を変更する指示を前記受信装置に送信する請求項1記載の通信システム。
  3. 送信装置と受信装置とが通信可能に接続された通信システムであって、
    前記送信装置は、データパケットを前記受信装置に送信するためのパケット送信部と、
    前記送信装置から前記受信装置に送信されるデータパケットを再送用として保持する再送バッファと、を具備し、
    前記受信装置は、前記送信装置からのデータパケットを受信して当該データパケットの正当性を判断する正当性判断部と、
    前記正当性判断部での判断結果に基づいて、前記パケットが承認されたことを示す肯定応答かあるいは前記パケットが承認されなかったことを示す否定応答を所定の間隔で前記送信装置に送信する確認応答送信部と、を具備し、
    前記受信装置はさらに、前記送信装置からのデータパケットを受信する受信間隔を測定する受信間隔測定部と、
    前記受信間隔測定部で測定された受信間隔に基づいて、前記確認応答送信部から送信される肯定応答の送信間隔の適否を判断し、当該判断結果に応じて前記肯定応答の送信間隔を変更する送信間隔変更部と、
    を具備することを特徴とする通信システム。
  4. 送信装置と受信装置とが通信可能に接続された通信システムであって、
    前記送信装置は、データパケットを前記受信装置に送信するためのパケット送信部と、
    前記送信装置から前記受信装置に送信されるデータパケットを再送用として保持するものであり、その容量を変更可能な再送バッファと、を具備し、
    前記受信装置は、前記送信装置からのデータパケットを受信して当該データパケットの正当性を判断する正当性判断部と、
    前記正当性判断部での判断結果に基づいて、前記パケットが承認されたことを示す肯定応答かあるいは前記パケットが承認されなかったことを示す否定応答を所定の間隔で前記送信装置に送信する確認応答送信部と、を具備し、
    前記送信装置はさらに、前記送信部から前記データパケットを送信してから前記受信装置からの前記肯定応答を受信するまでの遅延時間を測定する遅延時間測定部と、
    前記遅延時間測定部で測定された遅延時間に基づいて、前記再送バッファの容量を変更するバッファ容量変更部と、
    を具備することを特徴とする通信システム。
  5. 送信装置と受信装置とが通信可能に接続された通信システムであって、
    前記送信装置は、データパケットを前記受信装置に送信するためのパケット送信部と、
    前記送信装置から前記受信装置に送信されるデータパケットを再送用として保持する再送バッファと、を具備し、
    前記受信装置は、前記送信装置からのデータパケットを受信して当該データパケットの正当性を判断する正当性判断部と、
    前記正当性判断部での判断結果に基づいて、前記パケットが承認されたことを示す肯定応答かあるいは前記パケットが承認されなかったことを示す否定応答を所定の間隔で前記送信装置に送信する確認応答送信部と、を具備し、
    前記受信装置はさらに、前記確認応答送信部から前記肯定応答および前記否定応答のいずれもが送信されていないときに、前記送信装置から再送のデータパケットを受信したか否かを判断し、当該判断結果に基づいて、前記肯定応答の送信間隔を変更する送信間隔変更部を具備することを特徴とする通信システム。
  6. 送信装置と受信装置とが通信可能に接続された通信システムであって、
    前記送信装置は、データパケットを前記受信装置に送信するためのパケット送信部と、
    前記送信装置から前記受信装置に送信されるデータパケットを再送用として保持する再送バッファと、を具備し、
    前記受信装置は、前記送信装置からのデータパケットを受信して当該データパケットの正当性を判断する正当性判断部と、
    前記正当性判断部での判断結果に基づいて、前記パケットが承認されたことを示す肯定応答かあるいは前記パケットが承認されなかったことを示す否定応答を所定の間隔で前記送信装置に送信する確認応答送信部と、を具備し、
    前記送信装置はさらに、前記再送バッファの空き容量を確認する空き容量確認部と、
    前記空き容量確認部で確認された前記空き容量にしたがって、前記受信装置に対して前記肯定応答を前記送信装置に送信する指示を出力する肯定応答送信指示部と、
    を具備することを特徴とする通信システム。
  7. 送信装置と受信装置とが通信可能に接続された通信システムであって、
    前記送信装置は、データパケットを前記受信装置に送信するためのパケット送信部と、
    前記送信装置から前記受信装置に送信されるデータパケットを再送用として保持する再送バッファと、を具備し、
    前記受信装置は、前記送信装置からのデータパケットを受信して当該データパケットの正当性を判断する正当性判断部と、
    前記正当性判断部での判断結果に基づいて、前記パケットが承認されたことを示す肯定応答かあるいは前記パケットが承認されなかったことを示す否定応答を所定の間隔で前記送信装置に送信する確認応答送信部と、を具備し、
    前記受信装置はさらに、前記送信装置からのデータパケットを計数し、前記送信装置により設定された所定数のパケットが送信されたか否かを判断するパケット計数部を具備し、
    前記確認応答送信部は、前記パケット計数部での判断結果に基づいて、前記送信装置に対して前記確認応答を送信することを特徴とする通信システム。
  8. 送信装置と受信装置とで通信を行なう通信方法であって、
    前記送信装置において、データパケットを前記受信装置に送信する送信ステップと、
    前記送信装置から前記受信装置に送信されるデータパケットを再送用として再送バッファに保持するステップと、を具備し、
    前記受信装置において、前記送信装置からのデータパケットを受信して当該データパケットの正当性を判断するステップと、
    前記正当性判断ステップでの判断結果に基づいて、前記パケットが承認されたことを示す肯定応答かあるいは前記パケットが承認されなかったことを示す否定応答を所定の間隔で前記送信装置に送信する確認応答を行なうステップと、を具備し、
    前記送信装置においてさらに、前記送信ステップで前記データパケットを送信してから、前記受信装置からの前記肯定応答を受信するまでの遅延時間を測定するステップと、
    前記遅延時間測定ステップで測定された遅延時間と、前記再送バッファの容量とに基づいて、前記確認応答ステップでの肯定応答の送信間隔の適否を判断し、当該判断結果に基づいて前記肯定応答の送信間隔を変更する指示を前記受信装置に送信するステップと、
    を具備することを特徴とする通信方法。
  9. 前記送信間隔指示ステップは、前記遅延時間測定ステップで測定された遅延時間と、前記再送バッファの容量を前記データパケットの送信レートで割り算した値と、を比較し、当該比較結果に基づいて、前記肯定応答の送信間隔を変更する指示を前記受信装置に送信する請求項1記載の通信システム。
  10. 送信装置と受信装置とで通信を行なう通信方法であって、
    前記送信装置において、データパケットを前記受信装置に送信する送信ステップと、
    前記送信装置から前記受信装置に送信されるデータパケットを再送用として再送バッファに保持するステップと、を具備し、
    前記受信装置において、前記送信装置からのデータパケットを受信して当該データパケットの正当性を判断するステップと、
    前記正当性判断ステップでの判断結果に基づいて、前記パケットが承認されたことを示す肯定応答かあるいは前記パケットが承認されなかったことを示す否定応答を所定の間隔で前記送信装置に送信する確認応答を行なうステップと、を具備し、
    前記受信装置においてさらに、前記送信装置からのデータパケットを受信する受信間隔を測定するステップと、
    前記受信間隔測定ステップで測定された受信間隔に基づいて、前記確認応答ステップにおいて送信される肯定応答の送信間隔の適否を判断し、当該判断結果に応じて前記肯定応答の送信間隔を変更するステップと、
    を具備することを特徴とする通信方法。
  11. 送信装置と受信装置とで通信を行なう通信方法であって、
    前記送信装置において、データパケットを前記受信装置に送信する送信ステップと、
    前記送信装置から前記受信装置に送信されるデータパケットを再送用として再送バッファに保持するステップと、を具備し、
    前記受信装置において、前記送信装置からのデータパケットを受信して当該データパケットの正当性を判断するステップと、
    前記正当性判断ステップでの判断結果に基づいて、前記パケットが承認されたことを示す肯定応答かあるいは前記パケットが承認されなかったことを示す否定応答を所定の間隔で前記送信装置に送信する確認応答を行なうステップと、を具備し、
    前記送信装置においてさらに、前記送信ステップにおいて前記データパケットを送信してから前記受信装置からの前記肯定応答を受信するまでの遅延時間を測定するステップと、
    前記遅延時間測定ステップで測定された遅延時間に基づいて、前記再送バッファの容量を変更するステップと、
    を具備することを特徴とする通信方法。
  12. 送信装置と受信装置とで通信を行なう通信方法であって、
    前記送信装置において、データパケットを前記受信装置に送信する送信ステップと、
    前記送信装置から前記受信装置に送信されるデータパケットを再送用として再送バッファに保持するステップと、を具備し、
    前記受信装置において、前記送信装置からのデータパケットを受信して当該データパケットの正当性を判断するステップと、
    前記正当性判断ステップでの判断結果に基づいて、前記パケットが承認されたことを示す肯定応答かあるいは前記パケットが承認されなかったことを示す否定応答を所定の間隔で前記送信装置に送信する確認応答を行なうステップと、を具備し、
    前記受信装置はさらに、前記確認応答ステップにおいて前記肯定応答および前記否定応答のいずれもが送信されていないときに、前記送信装置から再送のデータパケットを受信したか否かを判断し、当該判断結果に基づいて、前記肯定応答の送信間隔を変更するステップを具備することを特徴とする通信方法。
  13. 送信装置と受信装置とで通信を行なう通信方法であって、
    前記送信装置において、データパケットを前記受信装置に送信する送信ステップと、
    前記送信装置から前記受信装置に送信されるデータパケットを再送用として再送バッファに保持するステップと、を具備し、
    前記受信装置において、前記送信装置からのデータパケットを受信して当該データパケットの正当性を判断するステップと、
    前記正当性判断ステップでの判断結果に基づいて、前記パケットが承認されたことを示す肯定応答かあるいは前記パケットが承認されなかったことを示す否定応答を所定の間隔で前記送信装置に送信する確認応答を行なうステップと、を具備し、
    前記送信装置においてさらに、前記再送バッファの空き容量を確認するステップと、
    前記空き容量確認ステップで確認された前記空き容量にしたがって、前記受信装置に対して前記肯定応答を前記送信装置に送信する指示を出力するステップと、
    を具備することを特徴とする通信方法。
  14. 送信装置と受信装置とで通信を行なう通信方法であって、
    前記送信装置において、データパケットを前記受信装置に送信する送信ステップと、
    前記送信装置から前記受信装置に送信されるデータパケットを再送用として再送バッファに保持するステップと、を具備し、
    前記受信装置において、前記送信装置からのデータパケットを受信して当該データパケットの正当性を判断するステップと、
    前記正当性判断ステップでの判断結果に基づいて、前記パケットが承認されたことを示す肯定応答かあるいは前記パケットが承認されなかったことを示す否定応答を所定の間隔で前記送信装置に送信する確認応答を行なうステップと、を具備し、
    前記受信装置においてさらに、前記送信装置からのデータパケットを計数し、前記送信装置により設定された所定数のパケットが送信されたか否かを判断するステップを具備し、
    前記確認応答送信ステップは、前記パケット計数ステップでの判断結果に基づいて、前記送信装置に対して前記確認応答を送信することを特徴とする通信方法。
JP2005373504A 2005-12-26 2005-12-26 通信システム及び通信方法 Pending JP2007180611A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005373504A JP2007180611A (ja) 2005-12-26 2005-12-26 通信システム及び通信方法
US11/643,905 US20070147437A1 (en) 2005-12-26 2006-12-22 Communication system and communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005373504A JP2007180611A (ja) 2005-12-26 2005-12-26 通信システム及び通信方法

Publications (1)

Publication Number Publication Date
JP2007180611A true JP2007180611A (ja) 2007-07-12

Family

ID=38193658

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005373504A Pending JP2007180611A (ja) 2005-12-26 2005-12-26 通信システム及び通信方法

Country Status (2)

Country Link
US (1) US20070147437A1 (ja)
JP (1) JP2007180611A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010098430A (ja) * 2008-10-15 2010-04-30 Sumitomo Electric Ind Ltd 通信装置
JP2010154060A (ja) * 2008-12-24 2010-07-08 Sumitomo Electric Ind Ltd 通信装置
JP2011061536A (ja) * 2009-09-10 2011-03-24 Ricoh Co Ltd 通信システム及び再送バッファ容量の測定装置
WO2013128885A1 (ja) * 2012-03-02 2013-09-06 日本電気株式会社 コネクション型通信を実行する通信装置及びコネクション型通信方法
US8700866B2 (en) 2009-09-14 2014-04-15 Ricoh Company, Limited Data transfer apparatus, data transfer device, and data transfer method in a data transfer device

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009246855A (ja) * 2008-03-31 2009-10-22 Yamatake Corp 通信システム
NZ586889A (en) * 2010-07-19 2013-05-31 Tait Ltd Methods and systems for Broadcasting to Terminals in a Wireless Network
US9596177B2 (en) * 2012-04-12 2017-03-14 Lantiq Deutschland Gmbh Method for a retransmission roundtrip correction
ES2688696T3 (es) * 2012-09-29 2018-11-06 Huawei Technologies Co., Ltd. Procedimiento y dispositivo de medición de un retardo de red
CN102946330B (zh) * 2012-09-29 2017-03-15 华为技术有限公司 网络丢包测量方法、装置和系统
US20200153593A1 (en) * 2018-11-12 2020-05-14 Qualcomm Incorporated Reducing latency on long distance point-to-point links
US11231934B2 (en) * 2020-03-05 2022-01-25 Samsung Electronics Co., Ltd. System and method for controlling the order of instruction execution by a target device
US11336592B2 (en) * 2020-08-14 2022-05-17 Google Llc Flexible link level retry for shared memory switches

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6587985B1 (en) * 1998-11-30 2003-07-01 Matsushita Electric Industrial Co., Ltd. Data transmission method, data transmission apparatus, data receiving apparatus, and packet data structure
US6831912B1 (en) * 2000-03-09 2004-12-14 Raytheon Company Effective protocol for high-rate, long-latency, asymmetric, and bit-error prone data links
EP1349285A1 (en) * 2002-03-28 2003-10-01 Matsushita Electric Industrial Co., Ltd. Method for making efficient use of the bits allocated to the sequence number when transmitting compressed header data
JP3801559B2 (ja) * 2002-12-26 2006-07-26 ソニー株式会社 通信装置および方法、記録媒体、並びにプログラム
US20060209837A1 (en) * 2005-03-16 2006-09-21 Lee Jai Y Method and apparatus for dynamically managing a retransmission persistence

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010098430A (ja) * 2008-10-15 2010-04-30 Sumitomo Electric Ind Ltd 通信装置
JP2010154060A (ja) * 2008-12-24 2010-07-08 Sumitomo Electric Ind Ltd 通信装置
JP2011061536A (ja) * 2009-09-10 2011-03-24 Ricoh Co Ltd 通信システム及び再送バッファ容量の測定装置
US8700866B2 (en) 2009-09-14 2014-04-15 Ricoh Company, Limited Data transfer apparatus, data transfer device, and data transfer method in a data transfer device
WO2013128885A1 (ja) * 2012-03-02 2013-09-06 日本電気株式会社 コネクション型通信を実行する通信装置及びコネクション型通信方法

Also Published As

Publication number Publication date
US20070147437A1 (en) 2007-06-28

Similar Documents

Publication Publication Date Title
JP2007180611A (ja) 通信システム及び通信方法
US20070291646A1 (en) Retransmission control method and device
TWI296083B (en) Communication controller, host-side controller, communication system, usb system, communication equipment, communication method, packet-based communication method, packet-based communication program, and storage medium
US9875206B2 (en) Methods and devices for extending USB 3.0-compliant communication
JP2007089177A (ja) 無線通信システムにおける状態報告信号の伝送速度を改善する方法及び装置
JPH0832585A (ja) 無線lanシステム
JP2005107683A (ja) 通信コントローラ、通信システム、通信機器、および通信方法
US20040198223A1 (en) Flow control in a bluetooth wireless communication system
JP5475790B2 (ja) 無線通信装置および通信プログラム
KR20120091321A (ko) 데이터 통신을 위한 시스템들, 방법들 및 장치
JP2015188163A (ja) データ受信装置、データ受信装置の制御方法及びデータ送信装置とデータ受信装置とを有するデータ送受信システム
KR101769133B1 (ko) Tcp/ udp를 적응적으로 선택하는 전자기기 및 이의 패킷 송수신 방법
US7292601B2 (en) Error-rate management in wireless systems
JP5532775B2 (ja) 通信システム及び再送バッファ容量の測定装置
US20120087379A1 (en) Method of reducing required capacity of retry buffer for real-time transfer through PCIe and related device
JP2009188508A (ja) データ送受信装置
JP5003611B2 (ja) 無線通信の再送制御方法及び無線通信装置
JP2005107677A (ja) 通信コントローラ、通信システム、通信機器、および通信方法
JP2004187010A (ja) データ処理装置、通信装置、データ処理方法、データ処理プログラム、データ処理プログラムを記録したコンピュータ読取可能な記録媒体
JP2016019198A (ja) 通信装置、通信装置の制御方法、プログラム
JP2005167352A (ja) 送信装置およびプログラム
JP5182417B2 (ja) 伝送データのエラーチェック装置および方法
WO2021203227A1 (zh) 基于内部集成电路协议的数据传输方法和传输装置
KR20110074476A (ko) 무선 통신 네트워크에서 자동 반복 요청 피드백을 통신하는 장치 및 방법
KR20090128311A (ko) 트래픽 특성에 따른 패킷의 집합 통신 방법 및 장치