RTI ConnextではDTLS/TLS plug-inを用いる事で暗号化DDS通信が可能となります。
(2015年後半にはOMG標準として新たに定義されたDDS Security規格に対応します。)
但しRTI ConnextのディフォルトではUDPv4およびshmemのtransport built inが組み込まれているため、
あらかじめこれらを削除する必要があります。
この為には、participant_qos.transport_builtin.maskにMASK_NONEを設定します。
以下に、暗号化通信用のtransport built inを組み込む例として、DTLS built inを組み込む場合を記すので、
これを参考にしてください。
<property>
<value>
<element>
<name>dds.transport.load_plugins</name>
(株)日新システムズ
通常、Topicの発行はwrite()実行時となります。(write()を呼ぶと、直接socket bufferに書き込み、書き込みが終わるとreturnします。)
しかし、Asynchronous Publisherを使用する(Large Data Topic発行時を含む)と、Topicはpublisher thread に渡され、FlowControllerのscheduling_
policyに従って発行されます。この時、write()はpublisher threadにTopicを渡し次第すぐにreturnします。(publisher thread はAsynchronous Publisher の使用時にのみ生成されます。)
FlowControllerのQosは以下の三種類があります。
DDS_RR_FLOW_CONTROLLER_SCHED_POLICY: ラウンドロビン
DDS_EDF_FLOW_CONTROLLER_SCHED_POLICY: デッドライン順
DDS_HPF_FLOW_CONTROLLER_SCHED_POLICY: プライオリティ順
これらのQoSでは、Topicの発行タイミングはConnextが内部で設定します。
RTI Connextは、通信効率および転送層(主にUDPv4)の制限からTopic sizeが64KiB弱(*1)を超えると自動的にTopicを分割して送信する様に作成されています。しかしながら、この分割送信処理については、最適化された処理を行っているわけではありません。
また、reliable 通信での送信失敗時に必要となる再送コスト(*2)を考えると、Topic sizeを大きくすることはお勧めできません。
以上のことと、RTPSプロトコルにおけるオーバーヘッド分を考え、Topic sizeが63KiBを超えるようであればアプリケーションレベルでTopicを分割し、63KiB以下に分割して送信する様にしてください。
2014年09月現在OMG DDSを構成する使用を以下に記します。
現在のDDS実装は少なくとも下記の二つをサポートしています。
DDS実装の相互接続・運用性を担保するためには最低でもこの二つがサポートされなくてはなりません。
Data Distribution Services version 1.2, DDS, formal/2007-01-01, http://www.omg.org/spec/DDS (次version審議中)
Real-time Publish-Subscribe Wire Protocol DDS Interoperability Wire Protocol Revision 2.2(2.1上位互換), DDSI-RTPS, formal/2014-09-01, http://www.omg.org/spec/DDSI-RTPS (次revision審議中)
2014年までの現在、RTI Connextを使用したDDS通信の場合、セキュアな通信を実現するにはDTLS/TLS transport plug-inを用いるのが一般的となっています。(2014年に"DDS Security"規格が定まったため、今後変化するでしょう。)
この時、当たり前のことですが、セキュアであるには同一内容のTopicが外部に流れないようにしなくてはなりません。
しかし、RTI Connextは「標準で」UDPv4およびshmem(どちらも平文)のtransport pluginが組み込まれています。
日本国内のRTI Connext User向けに日本語フォーラムが開設されました。
このフォーラムはユーザー同士の各種交流や日本語FAQ作成等にご利用ください。
私もお問い合わせいただいた事例から、順次FAQを作成していく予定です。
どうぞよろしくお願いします。
(株)日新システムズ RTIサポート担当 大村