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>
Japan Special Interest Group
通常、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 Monitoring libraryをリンクし、RTI Monitorを使用する場合、以下に注意してください。
ディフォルトではrtiddsgenが作成するMakefile内で、リンクするライブラリが"-lnddscppz -lnddscz -lnddscorez"などとして指定されています。
このライブラリ名に"z"が付くのは静的リンクを行う時の指定です。動的リンクを行う時には"z"を外してください。
先日発見されたOpenSSLの"Heartbleed Bug"はRTIのWAN Transport及びTLS Support Librariesに影響します。
(どちらもOpenSSL 1.0.1eを使用しています。)
このため、RTI社ではこの不具合に対応した版を作成中で、近日リリース予定です。
誠に恐れ入りますが、RTIのWAN Transport及びTLS Support Librariesを使用されている方は"Heartbleed Bug"対応版が出るまでの間は、この不具合の存在を念頭に置いた運用を行ってください。
対応版のリリースにつきましては、随時RTI社のサポートポータルサイトをご確認ください。
RTI社はMicrosoft社のVisual Studio 2005サポート終了に伴い、RTI社製品におけるVS2005サポートを終了しました。もしも開発環境にVisual Studio 2005をご使用の方がおられましたら、新しい開発環境に移行してください。
なお、サポート終了に伴い、今後新たにリリースされるRTI ConnexにはVisual Studio 2005用ライブラリは含まれません。
また、何らかの不具合が発生しても、Visual Studio 2005版に対する修正等は行われません。
なお、Windows XPサポートについては、Microsoft社がWindows XPをサポートする開発環境をリリースし続ける間は、
これを用いたビルドが行えるため、結果として継続されます。
Windows XP用コード出力が可能なVisual Studioのサポートが終了すれば、これに伴いWindows XPサポートも終了します。
RTI Connext 4.5から搭載されているRTI Launcher(rtilauncher)のLinux版は英語環境以外ではライセンスファイルを認証できません。これは現行最新版の5.1.0に収録されているものでも同様です。
お手数ですが、rtilauncherを起動する際には事前に
export LANG=en_US.utf8
export GDM_LANG=en_US.utf8
を実行してください。
Large dataを取得できないときは、QoSファイルに以下の設定を加えてください。