JP7374849B2 - 通信システム、通信方法およびプログラム - Google Patents

通信システム、通信方法およびプログラム Download PDF

Info

Publication number
JP7374849B2
JP7374849B2 JP2020095718A JP2020095718A JP7374849B2 JP 7374849 B2 JP7374849 B2 JP 7374849B2 JP 2020095718 A JP2020095718 A JP 2020095718A JP 2020095718 A JP2020095718 A JP 2020095718A JP 7374849 B2 JP7374849 B2 JP 7374849B2
Authority
JP
Japan
Prior art keywords
abnormality
message
communication
size
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020095718A
Other languages
English (en)
Other versions
JP2021190901A (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.)
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 JP2020095718A priority Critical patent/JP7374849B2/ja
Priority to US17/184,346 priority patent/US11882053B2/en
Publication of JP2021190901A publication Critical patent/JP2021190901A/ja
Application granted granted Critical
Publication of JP7374849B2 publication Critical patent/JP7374849B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6205Arrangements for avoiding head of line blocking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0659Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
    • H04L41/0661Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities by reconfiguring faulty entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)
  • Small-Scale Networks (AREA)

Description

本発明の実施形態は、通信システム、通信方法およびプログラムに関する。
TSN(Time-Sensitive Networking)規格等に対応したネットワークを介してリアルタイム通信する通信装置が知られている。TSNでは、時間単位でキューの送信可否を記載したゲート制御リストにより、フレームの送信可否を判定することで、送信タイミングおよび送信量を制御することができる。
IEEE Std 802.1Q-2018
しかしながら、従来技術では、通信のリアルタイム性が損なわれる場合があった。
実施形態の通信システムは、算出部を備える。算出部は、複数のキューそれぞれに対応する複数のゲートを開くか否かを定める複数のエントリを含むゲート制御情報に基づいて、送信するメッセージのサイズがキューにより送信可能なサイズより大きいことにより生じる異常を判定するための判定情報を算出する。
第1の実施形態にかかる情報処理システムの構成図。 第1の実施形態にかかる通信装置のハードウェア構成図。 第1の実施形態にかかる通信装置の機能ブロック図。 ゲート制御リストの例を示す図。 継続オープン時間の例を示す図。 異常フレームサイズの算出処理のフローチャート。 フレーム送信処理のフローチャート。 異常通知処理のフローチャート。 異常通知処理のフローチャート。 第1の実施形態の変形例のフレーム送信処理のフローチャート。 第1の実施形態の変形例のフレーム送信処理のフローチャート。 第1の実施形態の変形例のフレーム送信処理のフローチャート。 第2の実施形態にかかる通信装置の機能ブロック図。 第2の実施形態の変形例にかかる通信装置の機能ブロック図。 第3の実施形態にかかる通信装置の機能ブロック図。 第3の実施形態の変形例にかかる通信装置の機能ブロック図。 第3の実施形態の変形例にかかる通信装置の機能ブロック図。 第3の実施形態の変形例におけるフレーム送信処理のフローチャート。
以下に添付図面を参照して、この発明にかかる通信システムの好適な実施形態を詳細に説明する。以下では、リアルタイム通信の規格としてTSNを用いる例を主に説明するが、適用可能な規格はTSNに限られるものではない。
TSNでは、複数のキューそれぞれに対応する複数のゲートを開くか否かを定めるエントリを複数含むゲート制御リスト(ゲート制御情報の一例)が用いられる。例えばTSNでは、複数のキューそれぞれにおいて、ゲートの開放(オープン)状態が継続(連続)する場合には、ゲートが最終的に閉じられるまでの時間、複数のエントリにまたがってフレーム(メッセージの一例)送信をすることができる。規格上、ゲートの切替間隔(TimeInterval)は1ナノ秒の粒度で設定できる。このため、送信キューに挿入されたフレームが滞りなく送信されるためには、少なくともそのフレームの送信に要する時間以上の間、ゲートの開放状態が維持される必要がある。
このように定義されたIEEE 802.1Qbvの動作を実装する場合に、規格を忠実に再現しようとすると、特定の条件下では一種のデッドロック問題が発生する可能性がある。具体的には、ゲートの開放状態のTimeIntervalが短い送信キューに対して、一定サイズ以上のフレームが挿入されると、そのフレームの送信がいつまでも許可されないため、そのキューがデッドロックのような状態に陥る。また、このようなケースでは、問題を引き起こしたフレームの後に同じキューに挿入されたすべてのフレームの送信も一時的にストップする。このため、処理にリアルタイム性(定められた時間内に処理を完了する)を持たせることができない。
IEEE 802.1Qの規格では、queueMaxSDUおよびmaximum Bridge transit delay と呼ばれるパラメータが定義されている。queueMaxSDUは、ゲート制御情報に基づく通信の規格(IEEE 802.1Q)で定義されるメッセージのサイズの最大値に相当する。queueMaxSDUで指定されているサイズより大きなサイズのフレームが送信キューに挿入された場合に、直ちにそのフレームが破棄されることで、上記のようなデッドロックの状態が生じることが回避される。また、queueMaxSDU以下のフレームが送信キューに挿入された場合は、maximum Bridge transit delayで指定された時間でタイムアウトさせて問題を引き起こしているフレームが破棄される。
queueMaxSDUの設定により指定されたサイズより大きなフレームを破棄できる。しかし、規格では、queueMaxSDUの値を設定するときにゲートの開放状態のTimeIntervalは考慮されていない。このため、ゲートの開放期間に送信できるフレームサイズが、queueMaxSDUで指定されているサイズよりも小さい場合には上記の問題を解決できない。
また、規格では、maximum Bridge transit delayの推奨値および最大値として、それぞれ1秒および4秒の値が定められている。しかし、これらの値を用いた場合、デッドロック自体は解消されるものの、通信のリアルタイム性が損なわれる。リアルタイム性を維持するためにmaximum Bridge transit delayの値を単純に短く設定すると、例えば別の送信キューに記憶されている正常なフレームもタイムアウトにより破棄されるなど、望ましくない副作用を引き起こす可能性が生じる。従って、このような副作用を伴わずに上記の問題を解決することができない。
(第1の実施形態)
第1の実施形態にかかる通信システムは、デッドロック問題を引き起こす可能性のある異常フレームをリアルタイムに検知し、異常フレームを必要に応じて適切に処理する。これにより、通信のリアルタイム性が損なわれることを回避可能となる。例えば、異常フレームの後に同じ送信キューに挿入された正常フレームの通信のリアルタイム性を維持することが可能となる。
図1は、第1の実施形態にかかる情報処理システムの構成例を示す図である。図1に示すように、情報処理システムは、M個(Mは2以上の整数)の通信装置100~100と、制御装置300と、を備えている。複数の通信装置100~100と、制御装置300とは、ネットワークにより接続される。
通信装置100~100は、例えばTSNに従い通信可能な装置である。通信装置100~100は同様の機能を備えるため、区別する必要がない場合は単に通信装置100という。通信装置100は、通信システムの一例である。
制御装置300は、通信装置100を含む、ネットワーク上の通信装置を管理するサーバ装置である。
図2は、第1の実施形態にかかる通信装置100のハードウェア構成の例を示すブロック図である。図2に示すように、通信装置100は、メモリ1と、ホストプロセッサ2と、ストレージ3と、N個(Nは1以上の整数)のネットワークインタフェースコントローラ4~4と、を備えている。
メモリ1は、一次データを記憶する記憶媒体である。メモリ1は、ホストプロセッサ2のメモリコントローラを介してホストプロセッサ2に接続される。メモリ1は、例えばDRAM(Dynamic Random Access Memory)等により実現される。
ホストプロセッサ2は、データを処理する要素である。ホストプロセッサ2は、例えば、PCI Express(登録商標)等のバスを用いて、ストレージ3およびネットワークインタフェースコントローラ4~4と接続される。
ホストプロセッサ2は、ストレージ3に格納された実行プログラムのイメージをメモリ1に展開し、メモリ1上の命令およびデータを読みながら処理を実行する。処理は、ホストプロセッサ2に備えられた1つまたは複数のコアにより実行される。
ストレージ3は、二次データを記憶する。ストレージ3は、例えばHDD(Hard Disk Drive)およびSSD(Solid State Drive)等により実現される。
ネットワークインタフェースコントローラ4~4は、それぞれホストプロセッサ2をネットワーク200~200に接続する。ネットワークインタフェースコントローラ4~4は同様の機能を備えるため、区別する必要がない場合は単にネットワークインタフェースコントローラ4という。同様に、ネットワーク200~200は、区別する必要がない場合は単にネットワーク200という。
ネットワーク200は、例えばEthernet(登録商標)である。具体的には、ネットワーク200は、IEEE 802.1で定義された規格に対応したネットワークである。IEEE 802.1で定義された規格は、例えば、AVB(Audio Video Bridging)規格、および、TSN(Time-Sensitive Networking)規格等である。また、ネットワーク200の種類は任意でよい。ネットワーク200は、例えばオフィスネットワーク、データセンタ内部のネットワーク、車載ネットワーク、工場内ネットワーク、携帯基地局のネットワーク、および、コア設備のネットワーク等である。
ネットワークインタフェースコントローラ4は、例えばASIC(Application Specific Integrated Circuit)、または、FPGA(Field-Programmable Gate Array)等により実現される。また、ネットワークインタフェースコントローラ4は、ASIC、FPGAおよびプロセッサのうち2つまたは3つの組み合わせによって実現してもよい。また、ネットワークインタフェースコントローラ4は内部に上述のメモリ1とは異なるメモリを内蔵していてもよい。また、ネットワークインタフェースコントローラ4は、ホストプロセッサ2とは別のチップとして実装されてもよいし、SoC(System-on-a-Chip)として1つのチップとして実装されてもよい。
なお、メモリ1、ストレージ3、および、ネットワークインタフェースコントローラ4は、専用のデータパスでホストプロセッサ2に接続されてもよいし、共用のデータバスを介してホストプロセッサ2に接続されてもよい。
また、通信装置100は、例えば、ネットワーク上でフレームの送受信を行う終端ノードであってもよいし、ネットワーク上でフレームを中継するスイッチ装置等であってもよい。
図3は、第1の実施形態にかかる通信装置100の機能構成の一例を示すブロック図である。なお図3は、主に通信装置100に含まれるホストプロセッサ2(情報処理装置の一例)およびネットワークインタフェースコントローラ4(通信制御装置の一例)の機能構成の例を示す。図3ではネットワークインタフェースコントローラ4を1つのみ記載しているが、図2に示すようにネットワークインタフェースコントローラ4は複数備えられてもよい。
図3に示すように、ホストプロセッサ2は、スケジューリング情報記憶部121と、インタフェース部101と、算出部102と、L個(Lは1以上の整数)のアプリケーション110~110と、を備えている。
スケジューリング情報記憶部121は、送信制御で用いられるスケジューリング情報を記憶する。スケジューリング情報は、例えば、IEEE 802.1Qで定義されるEnhancements for scheduled trafficの制御を実行するために用いられるゲート制御リスト(Gate Control List)、および、ゲート制御リスト以外の情報を含む。ゲート制御リスト以外の情報は、例えば、ゲート制御を開始する時刻である。スケジューリング情報記憶部121は、例えばホストプロセッサ2内部に備えられるメモリにより実現される。スケジューリング情報記憶部121は、メモリ1により実現されてもよい。
ゲート制御リストは、予めストレージ3などに記憶しておいたものを入力して用いてもよいし、例えばIEEE 802.1Qccで定義されるCNC(Centralized Network Configuration)によってネットワーク200経由で入力して用いてもよい。
図4は、ゲート制御リストの例を示す図である。図4に示すゲート制御リストは、T00からT05までの6つのエントリを含む。各エントリは、8つのトラヒッククラスそれぞれに対応するキューのゲート状態と、タイムインターバルとを含む。TC0~TC7はトラヒッククラスを意味する。例えばTC7は、7番のトラヒッククラスを表す。各トラヒッククラスのゲート状態は“o”および“C”で表される。“o”は、ゲートが開放(オープン)されていることを意味する。“C”は、ゲートが閉じられていることを意味する。ゲート状態は、トラヒッククラスのキューにおける送信が許可されるか否かを示す。
タイムインターバルは、エントリが継続する時間を表す。例えば図4の例ではT00のエントリのタイムインターバルには、128μsが設定されている。これは、T00のエントリが128μs継続することを示している。T00から順にタイムインターバルの分、設定されたゲート状態を維持し、T01、T02、・・・と時間が経過するとともに、各トラヒッククラスのゲートのゲート状態が切り替えられる。最後のエントリ(図4の例ではT05)が終わるとT00に戻り、処理が繰り返される。
図3に戻り、インタフェース部101は、アプリケーション110~110と、ネットワークインタフェースコントローラ4との間のインタフェースとして機能する。インタフェース部101は、汎用OS(オペレーティングシステム)などに組み込まれているネットワークインタフェースドライバとして機能してもよい。
算出部102は、ゲート制御リストを参照して、異常を判定するための判定情報を算出する。例えば算出部102は、送信するメッセージのサイズがキューにより送信可能なサイズより大きいことにより生じる異常を判定するための判定情報を算出する。判定情報の算出処理の詳細は後述する。
アプリケーション110~110は、メッセージを送信する処理を含む各種情報処理を実行する。アプリケーション110~110を区別する必要がない場合は単にアプリケーション110という。
上記各部(インタフェース部101、算出部102、および、アプリケーション110)は、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPU(Central Processing Unit)などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のIC(Integrated Circuit)などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2以上を実現してもよい。
ネットワークインタフェースコントローラ4は、受付部201と、異常検知部202と、異常処理部203と、ゲート処理部204と、ゲート制御リスト記憶部221と、判定情報記憶部222と、フレーム記憶部223と、を備えている。
ゲート制御リスト記憶部221は、ホストプロセッサ2から受け付けられたゲート制御リストを記憶する。
判定情報記憶部222は、ホストプロセッサ2から受け付けられた異常フレームサイズを記憶する。異常フレームサイズは、判定情報の一例である。異常フレームサイズは、送信キューごとに算出される。従って、判定情報記憶部222は送信キューごとに異常フレームサイズを記憶する。
フレーム記憶部223は、ホストプロセッサ2から受け付けられた送信対象とするフレーム(送信フレーム)を記憶する。
受付部201は、ホストプロセッサ2から送信された各種情報の入力を受け付ける。例えば受付部201は、ゲート制御リストおよび判定情報(異常フレームサイズ)を受け付ける。
異常検知部202は、インタフェース部101から受け取ったフレームの異常を検知する。異常検知部202は、判定情報記憶部222に記憶された異常フレームサイズを用いて異常を検知する。
異常処理部203は、フレームの異常が検知された場合に、検知された異常に応じた異常処理を実行する。なお異常が検知されなかった場合、異常処理部203は、フレームを送信するために、受け取ったフレームをフレーム記憶部223に記憶する。
ゲート処理部204は、ゲート制御リストに従うフレームの送信処理を行う。ゲート処理部204は、IEEE 802.1Qbvで定められているタイムアウェアシェーパとして機能してもよい。例えば、ゲート処理部204は、ゲート制御リストの読み込み、各トランスミッションゲートの制御、ガードバンドの判定処理、トランスミッションセレクション、および、フレームを各送信キューから取り出して転送する処理などを実行する。
上記各部(受付部201、異常検知部202、異常処理部203、および、ゲート処理部204)は、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPUなどのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のICなどのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2以上を実現してもよい。
図3に示すように、ホストプロセッサ2の算出部102は、受付部201と接続されている。異常検知部202および異常処理部203は、インタフェース部101およびフレーム記憶部223の間のデータパス上に位置している。受付部201および異常検知部202は、判定情報記憶部222を介して接続されている。また、異常処理部203およびインタフェース部101は、異常に関する情報(異常フレームに関する情報)をフィードバックするために接続されている。
異常に関する情報は、例えば以下の情報を含む。
・フレーム送信を要求したアプリケーション110に関する情報
・フレーム送信の要求が発生したタイミングに関する情報
・フレームのヘッダに含まれる情報
・フレームの優先度に関する情報
・フレームのサイズに関する情報
・送信キューに関する情報(識別情報など)
・送信キューから送信が許可されるフレームサイズに関する情報
次に、判定情報の算出処理の詳細について説明する。以下では、判定情報として異常フレームサイズを算出する例を示す。
まず算出部102は、異常フレームサイズを送信キューごとに算出するための事前準備を行う。具体的には、算出部102は、スケジューリング情報記憶部121に記憶されているゲート制御リストのゲートステートおよびゲート制御リストのタイムインターバルを用いて、ゲートの継続オープン時間(continuousOpenDuration、COD)を送信キューごとに算出する。継続オープン時間は、ゲートのオープン状態が継続する時間を表す。継続オープン時間は、1以上の継続するエントリに対応する期間でメッセージを送信可能な時間と言い換えることができる。
図5は、図4のゲート制御リストから算出される継続オープン時間の例を示す図である。例えば、トラヒッククラスTC7のエントリT02については、T02からT03まで“o”が継続しており、T04で“C”となっている。T02およびT03のタイムインターバルは、512μsおよび128μsであるため、T02の先頭からは“o”は512+128=640μs継続することになる。同様に、T03の場合にはT04で“C”になるので、“o”は128μs継続することになる。なお、ゲート制御リストは最終エントリまで進むと最初に戻る。T05の場合は、T05からT00まで“o”が継続しているため、“o”は512+128=640μs継続することになる。トラヒッククラスTC0のように常に“o”の場合には、ゲート制御リストが変更にならない限り“o”が続くため、継続オープン時間は無限大(∞)となる。
次に、図6を参照して異常フレームサイズの算出について説明する。図6は、異常フレームサイズ(判定情報)の算出処理の一例を示すフローチャートである。なお、以下では、送信キュー(トラヒッククラス)が8つであり、0~7の数値で表される識別情報(qid)により送信キューが識別される場合を例に説明する。送信キューの個数および識別方法はこれに限られるものではない。
算出部102は、継続オープン時間の最大値(maximumContinuousOpenDuration、maxCOD)を送信キューごとに算出する(ステップS101)。算出部102は、各送信キューのmaxCODおよびネットワークのリンク速度(通信速度)を用いて、各送信キューから正常に送信できるフレームサイズの最大値(maximumPermissibleFrameSize、maxPFS)を、送信キューごとに算出する(ステップS102)。例えば、i番目(iは0~7の整数)の送信キューのmaxCODが1024ナノ秒、リンク速度が1Gbpsの場合、i番目の送信キューのmaxPFSの値を以下の(1)式のように算出することができる。
maxPFSi=1024×10-9×109(bps)/8=128(byte) ・・・(1)
このとき、算出部102は、メディア依存オーバーヘッドのビット数を考慮して各送信キューのmaxPFSの値を補正してもよい(ステップS103)。メディア依存オーバーヘッドは、例えば、通信媒体に応じて設定された終端のインターパケットギャップ、および、プリアンブルなどである。例えば、メディア依存オーバーヘッドのビット数の合計値を20バイトと仮定すると、上記の例では補正後のmaxPFSの値は128-20=108バイトとなる。
次に、算出部102は、各送信キューのmaxPFSの値をもとに各送信キューの異常フレームサイズ(localAbnormalFrameSize、localAFS)を、以下の(2)式により算出する(ステップS104)。
localAFSi=min(maxPFSi,queueMaxSDUi)+1 ・・・(2)
localAFSiは、i番目の送信キューのlocalAFSの値を示す。maxPFSiは、i番目の送信キューのmaxPFSの値を示す。queueMaxSDUiは、i番目の送信キューのqueueMaxSDUの値を示す。
(2)式の計算では、算出部102は、各送信キューのmaxPFSとqueueMaxSDUの値から、各送信キューのそれぞれのlocalAFSの値を算出する。具体的には、算出部102は、各送信キューのmaxPFSとqueueMaxSDUとを比較し、小さい値を選択する。
その後、算出部102は、この選択した値に、送信データサイズの最小単位(例:1バイト、1ビットなど)の値を加算してlocalAFSを算出する。(2)式は、最小単位を示す値が1の場合の例である。送信データサイズの最小単位を示す値が1以外の場合は、(2)式で加算する値を、送信データサイズの最小単位に合わせて調整してもよい。例えば最小単位を示す値が8(8バイト、8ビットなど)の場合、算出部102は、以下の(3)式を用いて異常フレームサイズを算出してもよい。
localAFSi=min(maxPFSi,queueMaxSDUi)+8 ・・・(3)
i番目の送信キューのmaxPFSの補正後の値を108バイトと仮定し(maxPFSi=108)、さらに、i番目の送信キューのqueueMaxSDUの値を1500バイトと仮定すると(queueMaxSDUi=1500)、算出部102は、i番目の送信キューのlocalAFSを以下の(4)式のように算出することができる。
localAFSi=min(108,1500)+1=109(byte) ・・・(4)
maxPFSの補正を行わない場合は、算出部102は、localAFSを以下の(5)式のよう算出することができる。
localAFSi=min(128,1500)+1=129(byte) ・・・(5)
このように、例えばIEEE 802.1Qbvで定められているガードバンドを算出する際にメディア依存オーバーヘッドのビット数を考慮する場合は、補正後のmaxPFSに基づいて算出されたlocalAFSの値(109バイト)を採用してもよい。また、例えば、ガードバンドを算出する際にメディア依存オーバーヘッドのビット数を考慮しない場合は、補正前のmaxPFSに基づいて算出されたlocalAFSの値(129バイト)を採用してもよい。
算出部102は、このようにして算出した異常フレームサイズを、ネットワークインタフェースコントローラ4(受付部201)に出力する。
ネットワークインタフェースコントローラ4の受付部201は、異常フレームサイズの算出結果を受け取り、判定情報記憶部222に記憶する(ステップS105)。このとき、受付部201は、異常フレームのサイズに関する情報として各送信キューのmaxPFSの値を受け取ってもよい。
その後、算出部102は、ゲート制御リストまたはリンク速度が変更されたか否かを判定する(ステップS106)。変更された場合(ステップS106:Yes)、ステップS101に戻り、算出部102は、更新された新しい値を用いて異常フレームサイズの算出をやり直す。
変更されていない場合(ステップS106:No)、算出部102は、他の通信装置100、または、制御装置300から異常に関する情報を受け取ったか否かを判定する(ステップS107)。受け取った場合(ステップS107:Yes)、算出部102は、必要に応じてステップS101に戻り異常フレームサイズの値を更新する。
上記のように、異常に関する情報は、例えば、異常が検知された送信キューの識別情報、および、異常が検知された送信キューの異常フレームサイズremoteAFSなどを含む。
例えば算出部102は、以下の(6)式に基づいて異常フレームサイズの値を更新することができる。
localAFSNewi=min(localAFSi,remoteAFSi) ・・・(6)
localAFSNewiは、i番目の送信キューの新しいlocalAFSの値を示す。localAFSiは、i番目の送信キューの現在のlocalAFSの値を示す。remoteAFSiは、外部の通信装置などから受け取ったi番目の送信キューのremoteAFSの値を示す。
算出部102は、(6)式により、現在のlocalAFSとremoteAFSの値を用いて、新しいlocalAFSの値を算出する。具体的には、算出部102は、localAFSiとremoteAFSiの値とを比較して、小さい値をlocalAFSNewiとして採用する。
算出部102は、queueMaxSDUの初期値、および、queueMaxSDUの変更後の値の少なくとも一方を、判定情報に基づいて決定してもよい。queueMaxSDUの変更後の値とは、例えばqueueMaxSDUの値が既に設定されている場合に、設定済みの値を変更するための新たな値を意味する。例えば、各送信キューのqueueMaxSDUの値を変更することが許される場合は、(2)式および(6)式によって算出されたlocalAFSを用いて、各送信キューのqueueMaxSDUを調整してもよい。例えば、算出部102は、(7)式に基づいて新しいqueueMaxSDUの値(queueMaxSDUNew)を決定することができる。
queueMaxSDUNewi=min(localAFSi-1、queueMaxSDUi) ・・・(7)
queueMaxSDUNewiは、i番目の送信キューの新しいqueueMaxSDUの値を示す。localAFSiは、i番目の送信キューのlocalAFSの値を示す。queueMaxSDUiは、i番目の送信キューの現在のqueueMaxSDUの値を示す。
算出部102は、(7)式により、localAFSとqueueMaxSDUの値を用いて、新しいqueueMaxSDUの値(queueMaxSDUNew)を算出する。具体的には、算出部102は、localAFSiから、送信データサイズの最小単位(例:1バイト、1ビットなど)の値を減算する。その後、算出部102は、減算後の値とqueueMaxSDUiの値とを比較して、小さい値をqueueMaxSDUNewiとして採用する。
送信データサイズの最小単位を示す値が1以外の場合は、(2)式の説明と同じような方法で、localAFSから減算する値を送信データサイズの最小単位に合わせて調整してもよい。例えば最小単位を示す値が8(8バイト、8ビットなど)の場合、算出部102は、以下の(8)式を用いて新しいqueueMaxSDUの値を算出してもよい。
queueMaxSDUNewi=min(localAFSi-8、queueMaxSDUi) ・・・(8)
算出部102は、例えば、以下の(9)式を用いてqueueMaxSDUの初期値を算出することができる。
queueMaxSDUi=maxPFSi ・・・(9)
初期値の算出方法はこれに限られるものではない。例えば算出部102は、制御装置300から指定された値を初期値として設定してもよいし、ネットワークのMTU(Maximum Transmission Unit)に基づいて初期値を決定してもよい。
上記の算出方法に従いlocalAFSまたはqueueMaxSDUの値を決定することで、例えば終端ノード間の通信経路上の中継ノード(スイッチ等の通信装置)で異常フレームとして判定される可能性のあるフレーム(潜在的な異常フレーム)を早い段階で検知することが可能となる。すなわち、送信ノード、または、送信ノードに近い中継ノードなどで潜在的な異常フレームを特定し、それに対処することができるようになる。これにより、通信経路上の帯域と、中継ノードの計算リソースおよびバッファ領域などを効率的に利用することが可能となる。
また、本実施形態では、(7)~(9)式により、queueMaxSDUについて、送信キューごとに個別の値(同一の値でもよいし、異なる値でもよい)を決定することができる。このため、異常をより高精度に検知可能となる。
次に、異常フレームの検知および異常フレームを検知した場合の異常処理について説明する。図7は、異常処理等を含むフレーム送信処理の一例を示すフローチャートである。
ホストプロセッサ2上で動作するアプリケーション110が新しいフレームを送信しようとすると、インタフェース部101は、フレームの送信要求を発行する。また、例えば、他の通信装置100からフレームを受け取って、別の通信装置100に転送する際にもフレームの送信要求が発行される。
異常検知部202は、フレームの送信要求を受信したか否かを判定する(ステップS201)。受信していない場合(ステップS201:No)、受信するまで処理が繰り返される。受信した場合(ステップS201:Yes)、異常検知部202は、送信が要求されたフレームをインタフェース部101から受け取り、受け取ったフレームの送信キューを識別する(ステップS202)。
例えば、異常検知部202は、インタフェース部101から直接的に指定された送信キューの識別情報(qid)、または、フレームのヘッダ等を参照して、送信キューを識別する。異常検知部202は、例えば、フレームのVLAN(Virtual Local Area Network)タグのPCP(Priority Code Point)の値から優先度を判別し、その優先度に関連付けられた送信キューを識別してもよい。
次に、異常検知部202は、受け取ったフレームのサイズと識別した送信キューのqueueMaxSDUの値とを比較して、フレームを破棄すべきか否か決定する。例えば異常検知部202は、フレームのサイズがqueueMaxSDUより大きいか否かを判定する(ステップS203)。フレームのサイズがqueueMaxSDUより大きい場合(ステップS203:Yes)、異常処理部203は、フレームを破棄し(ステップS204)、処理を終了する。
フレームのサイズがqueueMaxSDU以下の場合(ステップS203:No)、異常検知部202は、フレームのサイズと識別した送信キューのlocalAFSとを比較して、送信しようとしているフレームが一時的なデッドロック状態を引き起こす可能性のある異常フレームか否かを判断する。例えば異常検知部202は、フレームのサイズがlocalAFS以上であるか否かを判定する(ステップS205)。なお異常検知部202は、localAFSの代わりに、異常フレームのサイズに関する情報として受け取ったmaxPFSを用いて異常の検知を行ってもよい。
フレームのサイズがlocalAFS未満の場合(ステップS205:No)、異常検知部202は、フレームを異常処理部203に受け渡し、異常が発生していないことを通知する(ステップS206)。これにより受け取ったフレームは正常フレームとして送信処理が継続される。すなわち異常処理部203は、フレーム記憶部223の送信キューにフレームを挿入し、通常のフレームの送信処理を行い(ステップS207)、処理を終了する。
フレームのサイズがlocalAFS以上の場合(ステップS205:Yes)、異常検知部202は、フレームを異常処理部203に受け渡し、異常が発生したことを通知する(ステップS208)。また、異常処理部203は、異常に関する情報を他の通信装置100、または、制御装置300などにネットワーク経由で通知してもよい。異常に関する情報を通知する場合の処理の詳細は後述する。その後、異常処理部203は、異常フレームを破棄し(ステップS209)、処理を終了する。
次に、異常に関する情報を通知する場合の処理について説明する。図8は、異常通知処理の一例を示すフローチャートである。
異常処理部203は、異常に関する情報を制御装置300に通知する(ステップS301)。通知を受信した制御装置300は、通信経路上の他の通信装置100に対して異常フレームサイズの更新を指示する(ステップS302)。例えば制御装置300は、異常が検知された送信キューの識別情報、および、更新する異常フレームサイズを示す情報などを含む更新指示を他の通信装置100に送信する。また制御装置300は、異常フレームの送信元である通信装置100に対しては、異常処理の実行を指示する(ステップS303)。
図8は、制御装置300が異常処理等を管理する場合の異常通知処理の例である。制御装置300を用いず、複数の通信装置100の間で情報を送受信して異常処理を実行するように構成してもよい。なおこの場合、情報処理システムは制御装置300を備えないように構成されてもよい。図9は、異常通知処理の他の例を示すフローチャートである。
ある通信装置100の異常検知部202により異常が検知された場合、この通信装置100の異常処理部203は、異常に関する情報を、隣接する他の通信装置100に通知する(ステップS401)。通知を受信した通信装置100の異常処理部203は、異常が検知されたフレームの送信元であるか否かを判定する(ステップS402)。例えば異常処理部203は、異常の関する情報に含まれる、アプリケーション110に関する情報、および、フレームのヘッダの情報などを参照して、フレームの送信元であるかを判定する。
フレームの送信元である場合(ステップS402:Yes)、異常処理部203は、送信したフレームに対する異常処理を実行する(ステップS405)。フレームの送信元でない場合(ステップS402:No)、異常処理部203は、異常フレームサイズを、例えば上記の(6)式に従い更新する(ステップS403)。また、異常処理部203は、異常に関する情報を、さらに隣接する他の通信装置100に通知する(ステップS404)。
(変形例1)
各送信キューのqueueMaxSDUの値を変更することが許される場合は、例えば上記(7)式に従い算出されたqueueMaxSDUNewiの値を用いて異常を検知するように構成されてもよい。すなわち、localAFSを用いず、変更されたqueueMaxSDUNewiの値のみを用いて異常を検知するように構成されてもよい。
図10は、このように構成される変形例1のフレーム送信処理の一例を示すフローチャートである。ステップS501~ステップS504までは図7のステップS201~ステップS204と同様であるため説明を省略する。
本変形例では、フレームのサイズがqueueMaxSDU以下の場合(ステップS203:No)、異常検知部202は、フレームを異常処理部203に受け渡し、異常が発生していないことを通知する(ステップS505)。これにより受け取ったフレームは正常フレームとして送信処理が継続される。すなわち異常処理部203は、フレーム記憶部223の送信キューにフレームを挿入し、通常のフレームの送信処理を行い(ステップS506)、処理を終了する。
本変形例では、ゲート制御リストおよびリンク速度などに応じて動的にqueueMaxSDUを変更することができる。すなわち、例えばゲートの開放状態のTimeIntervalを考慮してqueueMaxSDUの値を設定することができる。このため、フレームの破棄をより適切に判定し、デッドロックの状態が生じることを回避可能となる。
(変形例2)
変形例2では、異常処理部203は、異常フレームを破棄するとともに、異常フレームに関する情報をアプリケーション110に通知する。図11は、変形例2のフレーム送信処理の一例を示すフローチャートである。ステップS601~ステップS608までは図7のステップS201~ステップS208と同様であるため説明を省略する。
本変形例では、異常処理部203は、異常フレームを破棄し、破棄したフレームに関する情報を上位のインタフェース、すなわちインタフェース部101に通知する(ステップS609)。インタフェース部101は、異常フレームの送信要求を発行したアプリケーション110に異常を通知する(ステップS610)。
これにより、異常フレームの送信元であるアプリケーション110に対して必要な対応を促すことができる。例えば、アプリケーション110は、異常フレームのサイズをlocalAFS未満になるように調整してからフレームを再送することができる。また、フレームのサイズがlocalAFS未満に収まらない場合は、アプリケーション110は、異常フレームを複数の正常フレームに分割して送信してもよい。このとき、アプリケーション110は、分割した各フレームのサイズがlocalAFS未満になるように調整する。
また、別の対処方法として、アプリケーション110は、異なる送信キューを使って異常フレームの再送を試みることもできる。このとき、アプリケーション110は、各送信キューのlocalAFSの値を確認して、再送を試みるフレームのサイズがlocalAFS未満になるような送信キューを選択する。
(変形例3)
変形例3では、異常処理部203は、異常フレームを破棄する代わりに、異常フレームを分割して送信する。図12は、変形例3のフレーム送信処理の一例を示すフローチャートである。ステップS701~ステップS708までは図7のステップS201~ステップS208と同様であるため説明を省略する。
本変形例では、異常処理部203は、異常フレームを送信しようとしている送信キューのlocalAFSの値を用いて、異常フレームを複数の正常フレームに分割する(ステップS709)。このとき、異常処理部203は、分割した各フレームのサイズが、送信キューのlocalAFS未満になるように調整する。異常処理部203は、フレーム記憶部223の送信キューに分割したフレームを挿入し、通常のフレームの送信処理を行い(ステップS710)、処理を終了する。
また、別の対処方法として、異常処理部203は、IEEE 802.1Qbuのフレームプリエンプションの仕組みを利用してフレームを分割してもよい。この場合、異常処理部203は、異常フレームをプリエンプション可能なMAC (Preemptable MAC)に転送する。フレームの分割処理自体は、Preemptable MACの内部で行われる。Preemptable MACは、フレームを分割して送信する制御部に相当する。
このように、第1の実施形態にかかる通信装置100は、各送信キューからフレームを送信する際にゲート制御リストの制約により一時的なデッドロック状態を引き起こす可能性のある異常フレームを検知し、デッドロック状態を回避するために異常フレームを処理する。これにより、IEEE 802.1Qbvに基づく送信制御による通信のリアルタイム性を維持することが可能となる。
(第2の実施形態)
ネットワークインタフェースコントローラが備える機能の一部は、ホストプロセッサ内に備えられてもよい。第2の実施形態では、ホストプロセッサが異常検知部、異常処理部、および、判定情報記憶部を備える例を説明する。図13は、第2の実施形態にかかる通信装置に含まれるホストプロセッサ2-2およびネットワークインタフェースコントローラ4-2の機能構成の一例を示す図である。
図13に示すように、ホストプロセッサ2-2は、スケジューリング情報記憶部121と、インタフェース部101と、算出部102-2と、L個のアプリケーション110~110と、異常検知部202と、異常処理部203と、判定情報記憶部222-2と、を備えている。また、ネットワークインタフェースコントローラ4-2は、受付部201と、ゲート処理部204と、ゲート制御リスト記憶部221と、フレーム記憶部223と、を備えている。
算出部102-2は、算出した判定情報(異常フレームサイズ)をホストプロセッサ2-2内の判定情報記憶部222-2に記憶する点が、第1の実施形態の算出部102と異なっている。
判定情報記憶部222-2は、受付部201を介さずに、算出部102-2から出力された判定情報を受け取って記憶する点が、第1の実施形態の判定情報記憶部222と異なっている。
他の構成は、第1の実施形態の機能構成を示す図3と同様であるため同一の符号を付し、説明を省略する。また、各部による処理の流れは、第1の実施形態(図6~図12)と同様であるため説明を省略する。
(変形例4)
図14は、第2の実施形態の変形例にかかる通信装置に含まれるホストプロセッサ2-2bおよびネットワークインタフェースコントローラ4-2の機能構成の一例を示す図である。本変形例では、判定情報記憶部222-2、異常検知部202、および、異常処理部203が、インタフェース部101-2bの内部機能として実装される。
このとき、例えば、汎用OSなどに組み込まれているネットワークインタフェースドライバがインタフェース部101として機能し、異常検知(異常検知部202)および異常処理(異常処理部203)を実行してもよい。
このように、第2の実施形態にかかる通信システムでは、第1の実施形態と各部の配置が異なるが、第1の実施形態と同様の機能を実現することができる。
(第3の実施形態)
ホストプロセッサが備える機能の一部は、ネットワークインタフェースコントローラ内に備えられてもよい。第3の実施形態では、ネットワークインタフェースコントローラが算出部を備える例を説明する。図15は、第3の実施形態にかかる通信装置に含まれるホストプロセッサ2-3およびネットワークインタフェースコントローラ4-3の機能構成の一例を示す図である。
図15に示すように、ホストプロセッサ2-3は、スケジューリング情報記憶部121と、インタフェース部101と、L個のアプリケーション110~110と、を備えている。また、ネットワークインタフェースコントローラ4-2は、算出部102-3と、受付部201と、異常検知部202と、異常処理部203と、ゲート処理部204と、ゲート制御リスト記憶部221と、判定情報記憶部222-3と、フレーム記憶部223と、を備えている。
算出部102-3は、受付部201を介して入力されたゲート制御リストを参照して判定情報を算出し、判定情報記憶部222-3に記憶する点が、第1の実施形態の算出部102と異なっている。
判定情報記憶部222-3は、受付部201を介さずに、算出部102-3から出力された判定情報を受け取って記憶する点が、第1の実施形態の判定情報記憶部222と異なっている。
他の構成は、第1の実施形態の機能構成を示す図3と同様であるため同一の符号を付し、説明を省略する。また、各部による処理の流れは、第1の実施形態(図6~図12)と同様であるため説明を省略する。
(変形例5)
図16は、第3の実施形態の変形例にかかる通信装置に含まれるホストプロセッサ2-3およびネットワークインタフェースコントローラ4-3bの機能構成の一例を示す図である。本変形例では、判定情報記憶部222-3、異常検知部202、および、異常処理部203がゲート処理部204-3bの内部機能として実装される。またゲート処理部204-3bは、ゲート部205-3bをさらに備えている。ゲート部205-3bは、例えばゲート制御リストのゲート状態(“o”および“C”)に従いフレームを出力する機能である。
また、本変形例では、異常検知部202および異常処理部203が、フレーム記憶部223-3bとゲート部205-3bの間に配置される。例えば、フレーム記憶部223-3bからフレームを読み出してゲート部205-3bに渡す間に異常検知(異常検知部202)と異常処理(異常処理部203)が実行される。
ゲート処理部204-3b内のトランスミッションセレクションアルゴリズムの機能の中に異常検知部202および異常処理部203の処理が組み込まれてもよい。
(変形例6)
図17は、第3の実施形態の他の変形例にかかる通信装置に含まれるホストプロセッサ2-3およびネットワークインタフェースコントローラ4-3cの機能構成の一例を示す図である。本変形例では、ゲート部205-3bとネットワークとの間に、Express MAC211-3cおよびPreemptable MAC212-3cがそれぞれ接続される。
異常処理部203は、正常フレームをゲート部205-3b経由でExpress MAC211-3cに転送してもよい。異常処理部203は、異常フレームをゲート部205-3b経由でPreemptable MAC212-3cに転送してもよい。
図18は、第3の実施形態の変形例6におけるフレーム送信処理の一例を示すフローチャートである。ステップS801~ステップS802までは図7のステップS201~ステップS202と同様であるため説明を省略する。
本変形例では、ゲート処理部204-3b内の異常検知部202が、フレーム記憶部223-3bの送信キューからフレームを受け取る(ステップS803)。
ステップS804~ステップS807までは図7のステップS203~ステップS206と同様であるため説明を省略する。また、ステップS809は、図7のステップS208と同様であるため説明を省略する。
本変形例では、異常が発生していない場合、異常処理部203は、正常フレームをゲート部205-3b経由でExpress MAC211-3cに転送する(ステップS808)。また異常が発生した場合、異常処理部203は、異常フレームをゲート部205-3b経由でPreemptable MAC212-3cに転送する(ステップS810)。
このように、本変形例では、2つのMAC(Express MAC211-3c、Preemptable MAC212-3c)を適切に使い分けることで、IEEE 802.1Qbuのフレームプリエンプションの仕組みを利用したフレームの分割および送信が可能となる。
以上説明したとおり、第1から第3の実施形態によれば、通信のリアルタイム性が損なわれることを回避可能となる。
(変形例7)
これまでは算出部が異常フレームサイズを判定情報として算出する例を説明した。例えば算出部は、上記(2)式により、異常フレームサイズlocalAFSを算出した。算出部は、異常フレームサイズlocalAFSを算出可能な情報を判定情報として算出してもよい。例えば算出部は、以下の情報を判定情報として算出してもよい。
・継続オープン時間の最大値(maxCOD)
・正常に送信できるフレームサイズの最大値(maxPFS)
これらの判定情報を用いる場合、例えば、判定情報を受け取ったネットワークインタフェースコントローラ(異常検知部など)が、受け取った判定情報から上記の各式を用いて異常フレームサイズlocalAFSを算出すればよい。
(変形例8)
上記実施形態は、1つの通信装置(通信システム)がホストプロセッサおよびネットワークインタフェースコントローラを備える例である。ホストプロセッサおよびネットワークインタフェースコントローラは、物理的に独立した複数の装置内の機能として実現されてもよい。例えば、本変形例の通信システムは、ホストプロセッサに相当する機能を備える情報処理装置と、ネットワークインタフェースコントローラに相当する機能を備える通信制御装置と、がネットワークで接続された構成とすることができる。
第1~第3の実施形態の各記憶部(スケジューリング情報記憶部、ゲート制御リスト記憶部、判定情報記憶部およびフレーム記憶部)は、通信装置に内蔵または外付けされたメモリまたはハードディスク、若しくは、CD-R、CD-RW、DVD-RAM、および、DVD-Rなどの記憶媒体などを適宜利用して実現することができる。
第1~第3の実施形態にかかる通信システムで実行されるプログラムは、ROM(Read Only Memory))等に予め組み込まれて提供される。
第1~第3の実施形態にかかる通信システムで実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD-ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD-R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
さらに、第1~第3の実施形態にかかる通信システムで実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第1~第3の実施形態にかかる通信システムで実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
第1~第3の実施形態にかかる通信システムで実行されるプログラムは、コンピュータを上述した通信システムの各部として機能させうる。このコンピュータは、コンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 メモリ
2、2-2、2-2b、2-3 ホストプロセッサ
3 ストレージ
~4 ネットワークインタフェースコントローラ
100~100 通信装置
101 インタフェース部
102、102-2、102-3 算出部
110~110 アプリケーション
121 スケジューリング情報記憶部
200~200 ネットワーク
201 受付部
202 異常検知部
203 異常処理部
204、204-3b ゲート処理部
205-3b ゲート部
221 ゲート制御リスト記憶部
222、222-2、222-3 判定情報記憶部
223、223-3b フレーム記憶部
300 制御装置

Claims (11)

  1. 複数のキューそれぞれに対応する複数のゲートを開くか否かを定める複数のエントリを含むゲート制御情報に基づいて、送信するメッセージのサイズが前記キューにより送信可能なサイズより大きいことにより生じる異常を判定するための判定情報を算出する算出部、を備え、
    前記異常は、前記メッセージの送信が許可されないことにより前記キューがデッドロックの状態となる異常であり、
    前記判定情報は、
    通信速度と、複数の前記キューそれぞれに対して算出される、1以上の継続するエントリに対応する期間でメッセージを送信可能な時間のうち最大値と、に基づいて算出される、送信可能なメッセージのサイズの最大値、および、前記ゲート制御情報に基づく通信の規格で定義されるメッセージのサイズの最大値、のうち小さい値に基づく情報、
    複数の前記キューそれぞれに対して算出される、1以上の継続するエントリに対応する期間でメッセージを送信可能な時間のうち最大値、および、
    通信速度と、複数の前記キューそれぞれに対して算出される、1以上の継続するエントリに対応する期間でメッセージを送信可能な時間のうち最大値と、に基づいて算出される、送信可能なメッセージのサイズの最大値、のうち少なくとも1つである、
    信システム。
  2. 前記判定情報を用いて前記異常を検知する異常検知部をさらに備える、
    請求項1に記載の通信システム。
  3. 検知された前記異常に応じた異常処理を実行する異常処理部をさらに備える、
    請求項2に記載の通信システム。
  4. 前記異常処理は、前記異常が生じないサイズとなるように前記メッセージを分割する処理、前記メッセージを分割して送信する制御部に対して前記メッセージを出力する処理、前記異常に関する情報を前記メッセージの送信元のアプリケーションに通知する処理、前記異常が生じた前記メッセージを破棄する処理、および、前記異常に関する情報をアプリケーションとのインタフェースであるインタフェース部に通知する処理の少なくとも1つである、
    請求項3に記載の通信システム。
  5. 前記算出部は、前記ゲート制御情報が変更された場合、通信速度が変更された場合、ネットワークにより接続される他の通信装置から異常に関する情報を受信した場合、および、ネットワークにより接続される他の通信装置を管理する制御装置から異常に関する情報を受信した場合、の少なくともいずれかの場合に、前記判定情報を算出する、
    請求項1に記載の通信システム。
  6. 前記異常が検知された場合に、ネットワークにより接続される他の通信装置、および、ネットワークにより接続される他の通信装置を管理する制御装置、の少なくとも一方に前記異常に関する情報を通知する異常処理部をさらに備える、
    請求項1に記載の通信システム。
  7. 前記算出部を備えるプロセッサと、
    前記判定情報を用いて前記異常を検知する異常検知部を備えるネットワークインタフェースコントローラと、を備える、
    請求項1に記載の通信システム。
  8. 情報処理装置と、前記情報処理装置とネットワークにより接続された通信制御装置と、を備え、
    前記情報処理装置は、前記算出部を備え、
    前記通信制御装置は、前記判定情報を用いて前記異常を検知する異常検知部を備える、
    請求項1に記載の通信システム。
  9. 前記算出部は、前記判定情報に基づいて、前記ゲート制御情報に基づく通信の規格で定義されるメッセージのサイズの最大値の初期値、および、変更後の値の少なくとも一方を決定する、
    請求項1に記載の通信システム。
  10. 通信システムが実行する通信方法であって、
    複数のキューそれぞれに対応する複数のゲートを開くか否かを定める複数のエントリを含むゲート制御情報に基づいて、送信するメッセージのサイズが前記キューにより送信可能なサイズより大きいことにより生じる異常を判定するための判定情報を算出する算出ステップ、を含み、
    前記異常は、前記メッセージの送信が許可されないことにより前記キューがデッドロックの状態となる異常であり、
    前記判定情報は、
    通信速度と、複数の前記キューそれぞれに対して算出される、1以上の継続するエントリに対応する期間でメッセージを送信可能な時間のうち最大値と、に基づいて算出される、送信可能なメッセージのサイズの最大値、および、前記ゲート制御情報に基づく通信の規格で定義されるメッセージのサイズの最大値、のうち小さい値に基づく情報、
    複数の前記キューそれぞれに対して算出される、1以上の継続するエントリに対応する期間でメッセージを送信可能な時間のうち最大値、および、
    通信速度と、複数の前記キューそれぞれに対して算出される、1以上の継続するエントリに対応する期間でメッセージを送信可能な時間のうち最大値と、に基づいて算出される、送信可能なメッセージのサイズの最大値、のうち少なくとも1つである、
    信方法。
  11. コンピュータに、
    複数のキューそれぞれに対応する複数のゲートを開くか否かを定める複数のエントリを含むゲート制御情報に基づいて、送信するメッセージのサイズが前記キューにより送信可能なサイズより大きいことにより生じる異常を判定するための判定情報を算出する算出ステップ、を実行させ、
    前記異常は、前記メッセージの送信が許可されないことにより前記キューがデッドロックの状態となる異常であり、
    前記判定情報は、
    通信速度と、複数の前記キューそれぞれに対して算出される、1以上の継続するエントリに対応する期間でメッセージを送信可能な時間のうち最大値と、に基づいて算出される、送信可能なメッセージのサイズの最大値、および、前記ゲート制御情報に基づく通信の規格で定義されるメッセージのサイズの最大値、のうち小さい値に基づく情報、
    複数の前記キューそれぞれに対して算出される、1以上の継続するエントリに対応する期間でメッセージを送信可能な時間のうち最大値、および、
    通信速度と、複数の前記キューそれぞれに対して算出される、1以上の継続するエントリに対応する期間でメッセージを送信可能な時間のうち最大値と、に基づいて算出される、送信可能なメッセージのサイズの最大値、のうち少なくとも1つである、
    ログラム。
JP2020095718A 2020-06-01 2020-06-01 通信システム、通信方法およびプログラム Active JP7374849B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020095718A JP7374849B2 (ja) 2020-06-01 2020-06-01 通信システム、通信方法およびプログラム
US17/184,346 US11882053B2 (en) 2020-06-01 2021-02-24 Communication system, communication method, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020095718A JP7374849B2 (ja) 2020-06-01 2020-06-01 通信システム、通信方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2021190901A JP2021190901A (ja) 2021-12-13
JP7374849B2 true JP7374849B2 (ja) 2023-11-07

Family

ID=78704672

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020095718A Active JP7374849B2 (ja) 2020-06-01 2020-06-01 通信システム、通信方法およびプログラム

Country Status (2)

Country Link
US (1) US11882053B2 (ja)
JP (1) JP7374849B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020039538A1 (ja) * 2018-08-23 2020-02-27 三菱電機株式会社 通信装置、通信方法及び通信プログラム
CN114500692A (zh) * 2022-02-11 2022-05-13 重庆邮电大学 一种时间敏感网络帧抢占优化方法
CN117640536A (zh) * 2022-08-19 2024-03-01 中兴通讯股份有限公司 控制方法、通信方法、控制器、节点设备、可读介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019096930A (ja) 2017-11-17 2019-06-20 株式会社東芝 情報処理装置、情報処理方法、およびプログラム
JP2019165380A (ja) 2018-03-20 2019-09-26 株式会社東芝 転送制御装置、転送制御方法及びプログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7400587B2 (en) * 2002-11-13 2008-07-15 Edgewater Computer Systems, Inc. Optimum frame fragmentation method for communication over error prone channels
JP2012133643A (ja) * 2010-12-22 2012-07-12 Sony Corp 情報処理装置、情報処理システム、情報処理方法、およびプログラム
JP5849786B2 (ja) * 2012-03-08 2016-02-03 富士通株式会社 データブロック出力装置、通信システム、データブロック出力方法、及び通信方法
US10153820B2 (en) * 2015-11-25 2018-12-11 Newracom, Inc. Receiver address field for multi-user transmissions in WLAN systems
US10681128B2 (en) * 2016-10-12 2020-06-09 Cisco Technology, Inc. Deterministic stream synchronization
US11509540B2 (en) * 2017-12-14 2022-11-22 Extreme Networks, Inc. Systems and methods for zero-footprint large-scale user-entity behavior modeling
JP7103788B2 (ja) * 2017-12-28 2022-07-20 トヨタ自動車株式会社 車載システム、ゲートウェイ、プログラム、情報処理方法、情報処理システム、及び車両
CN110891026B (zh) * 2018-09-07 2022-11-25 华为技术有限公司 一种流量调度方法、设备及系统
US11129179B2 (en) * 2019-07-25 2021-09-21 Landis+Gyr Innovations, Inc. Initiating or postponing radio transmissions in compliance with dwell time limitations
JP7337750B2 (ja) 2020-06-01 2023-09-04 株式会社東芝 通信制御装置、通信制御方法、情報処理装置、情報処理方法、および、プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019096930A (ja) 2017-11-17 2019-06-20 株式会社東芝 情報処理装置、情報処理方法、およびプログラム
JP2019165380A (ja) 2018-03-20 2019-09-26 株式会社東芝 転送制御装置、転送制御方法及びプログラム

Also Published As

Publication number Publication date
US11882053B2 (en) 2024-01-23
JP2021190901A (ja) 2021-12-13
US20210377181A1 (en) 2021-12-02

Similar Documents

Publication Publication Date Title
JP7374849B2 (ja) 通信システム、通信方法およびプログラム
JP7103788B2 (ja) 車載システム、ゲートウェイ、プログラム、情報処理方法、情報処理システム、及び車両
JP7337750B2 (ja) 通信制御装置、通信制御方法、情報処理装置、情報処理方法、および、プログラム
CN110546926A (zh) 减少时间敏感分组的分组延迟变化
CN111193635A (zh) 测量递送等待时间的方法、系统和计算机可读介质
US10892997B2 (en) Scheduling of data flow transmission in a data center
JP2009522867A (ja) ネットワークトラフィック監視用装置及び方法
EP3375151A1 (en) Packet processing technique for a communication network
WO2018072653A1 (en) Systems and methods for customizing layer-2 protocol
JP2008124967A (ja) イーサoamスイッチ装置
EP1037432B1 (en) Method and device for controlling the synchronization between two serial communication buses of a network
US11632334B2 (en) Communication apparatus and communication method
US11916768B2 (en) Information sharing method and apparatus in redundancy network, and computer storage medium
JP6517554B2 (ja) 伝送システムおよび伝送局
CN117014384A (zh) 一种报文传输方法以及报文转发设备
CN115603843A (zh) 出站分组的准确加时间戳
KR102463075B1 (ko) 분산형 지연 오프셋 매칭을 이용한 트래픽 무손실 전달 방법 및 이를 수행하기 위한 장치들
JP2006295930A (ja) レジデンシャルイーサネットにおけるスーパーフレームの開始を保証するための非同期フレーム伝送方法
EP4191969A1 (en) Communication control device, information processing device, communication control method, and information processing method
EP4191968A1 (en) Communication control device, information processing device, communication control method, information processing method, and storage medium
JP7321395B1 (ja) 通信システム、通信装置および通信方法
US20170005939A1 (en) Control method and network device
WO2024218926A1 (ja) 通信システム、管理方法、管理装置、及びプログラム
WO2023012948A1 (ja) 通信装置、通信システム、及び通信方法
JP2009206733A (ja) エッジノードおよび帯域制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220825

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230725

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230906

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231025

R151 Written notification of patent or utility model registration

Ref document number: 7374849

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151