いくつかのソケットに関する質問があり、明確な「はい」または「いいえ」を見つけることができなかったので、再投稿である場合は事前にお詫び申し上げます:) プラットフォームは Linux 2.6.30、C++ アプリです。ネットワーキングにはまだ非常に慣れていないため、スピードを上げています。
ソケット API スレッドは安全ですか? たとえば、ミューテックスを使用せずに複数のスレッドから送信した場合、または独自のミューテックスを使用してそれを確認する必要がありますか?
送信を行って送信APIの内部キューイングに送信を任せるよりも、送信がブロックされてから送信を行うかどうかを確認するためにポーリング/選択する方が良いですか? とにかくスレッドがブロックされる場合 (つまり、タイムアウトを使用しない場合)、ポーリングとそれに続く送信が必要な理由がわかりません。
Linux ではソケットはデフォルトでゼロコピーですか、それともコピーが関係していますか? コピーがある場合のサイズ制限はありますか (API の観点ではなく、粒度の観点から)? 答えが、カーネルがコピーを行うというものである場合、ゼロ コピー ソケットはありますか?
2 台のマシン間で通信する必要がある場合、単一のソケットよりも複数のソケットの方が帯域幅をはるかにうまく利用できると思います。それは正しい仮定でしょうか?2 台の通常の Linux マシン間で全帯域幅を利用する最善の方法は何ですか?
5.インターフェイスの現在の帯域幅使用量を測定するためのお気に入りのツールは何ですか? これはおそらく単なる好みです。私は iptraf などを見ましたが、他の人が何を使用し、最も気に入っているのかを知りたいと思います。