トップページ > 過去ログ > 記事閲覧
TCP通信の挙動について
名前:S.Inoue(解決) 日時: 2011/09/21 19:40

こんにちは、P2PのTCP通信でよくわからない挙動をしているので どうやったら解決できるのかが知りたいです。 @ローカルで2台のマシンを用意し NetWorkSendでデータを相手に送り 相手からのデータをGetNetWorkDataLengthでループで同期待ち NetWorkRecvでデータを取得する処理をつくりました。 Aするとデータを取得できる時間が 1ms,1ms,388ms,1ms,1ms,400msみたいに 周期的に時間がかかることがあり リアルタイムな通信ができません。 1ms,1ms,10msのようにある程度安定させたいです。 たまに時間がかかる原因がよくわからないので質問させていただきました。

Page: 1 |

Re: TCP通信の挙動について ( No.1 )
名前:Will 日時:2011/09/21 14:58

原因は、お使いのPC内で別のソフトが何らかの通信をしているのかもしれませんし、 通信経路上のルータ内で遅延している可能性もあります。 そもそも、TCPは到着時間を保証しない通信方式なので、あらゆる環境で安定した速度を得ようとすることは ソフトレベルでは不可能と思います。
Re: TCP通信の挙動について ( No.2 )
名前:S.Inoue 日時:2011/09/22 15:32

ローカルでのテストなので、ルータは経由していないはずです。あるのはスイッチだけです TCP通信でリアルタイムに対戦できているゲームもあるそうです (東方非想天則,東方紅舞闘) Willさんの意見では、TCPでは不可能ということですね。 TCPで通信できるという人とできないという人がいるのでちょっと保留にします。 Wiiさん回答していただきありがとうございました。
Re: TCP通信の挙動について ( No.3 )
名前:tare 日時:2011/09/23 00:16

東方紅舞闘は知りませんが東方非想天則はUDPですよ。 東方紅舞闘も恐らくUDPでしょう。 TCPは速度を犠牲にする代わりに相手にデータが送信されたことをきちんと確認するプロトコルであるため、通信速度は不安定になります。 よってリアルタイムでのネット対戦はUDPやRUDPなどを用いるのが普通です。
Re: TCP通信の挙動について ( No.4 )
名前:S.Inoue 日時:2011/09/23 03:04

詳しくは知りませんが、東方非想天則は一時期TCPで動いていたそうです。 東方紅舞闘は、TCPであることは開発者から聞いたそうなので間違いないとは思います。 ネット対戦でTCPが使えない理由は なんとなくわかるのですが ローカルLANでも遅延する挙動が 起きていてそれがなんでだろうなってのが 質問した体です。 taraさん教えていただきありがとうございました。
Re: TCP通信の挙動について ( No.5 )
名前:クラスクラス 日時:2011/09/23 10:44

少し興味があるので、現象が出るサンプルソース有りませんか? できる範囲で調べてみたいと思います、もしお暇であればUPお願いいたします。 (え、自分で作れって、通信は昔から持ってる処理でガシガシしやってて、速度気にしたことないし><) (いや、気にしたこと無いと言うより、遅いなら遅いなりに、速いなら速いなりに作ってたし^^;)

Page: 1 |