- ベストアンサー
RS232Cからイーサネットへの通信移行
- RS232Cからイーサネットへの通信移行に関するスムーズな方法をご提案します。
- RS232Cからイーサネットへの通信移行においてTCPとUDPのどちらを選ぶべきかについて解説します。
- RS232Cからイーサネットへの通信移行に際して、アプリレベルでの通信手順に大幅な変更を加えずにどちらを選ぶべきかについてご意見をお聞かせください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>外部機器側ははっきりしませんが既存のRS232C通信を何かで変換するのではないかと思います。 外部機器側がどのような仕様になるか決まらないとPC側が決められないと思いますが、外部機器側の仕様の決定権は質問者さんにあるのでしょうか? >この手順をそのまま生かすのであればUDPにするのが妥当なような気がするのですが、TCPの方が一般的とも聞きます。TCPにした場合、通信エラーはTCPプロトコル内でリカバーされるのでアプリの再送要求などは無意味になってしまう用に思えます。解釈が違っているでしょうか。 TCPはデータが確実に届くことが保証されるプロトコルであるためこの認識は間違っていないです。 ただ、アプリケーションがプロトコルスタックからデータを受け取ることころまで保証されているわけではないので、全く無駄とまで言い切れないかもしれません。(この場合はアプリケーションのバグってことになりますが) また、どちらが一般的かはケースバイケースだと思います。 >通信方式として一般にTCPとUDPが考えられますが、どちらにするべきか決めかねています。 >通常は、PCからデータ送信要求を出す⇒外部機器からデータ送信⇒ACK応答⇒EOTの様な手順です(PCからデータを送ることもあります)。 確かに悩ましいところですが、私ならばUDPにすると思います。 理由は 1.現在のプロトコルがTCPでの使用を考慮していないこと、またプロトコルを変更するとアプリの改造が大きくなること 2.TCPコネクションをどうするかを考えないといけないこと 3.TCPは1回の送信が1回の受信で受けられるわけではないので、このへんの考慮がアプリに必要になること 4.TCP再送タイムアウトの問題 判断の参考になるかはわかりませんが、ひとつの意見としてです。
お礼
ありがとうございます。参考にさせていただきます。