すべてc++開発者にとって知っておくべきこネットワークプログラミング?
-
21-08-2019 - |
質問
私たくさんの高性能ネットワークプログラミングを向上::Asio(やAsioまた、いか把握の必需品とTCPとUDPプロトコル私が、私はまだないもの専門家ネットワークにもかかわらず、知識、何よりもすることができるフレームのニーズに合わせた幅広い種類のうネットワークプログラマが知るべきで、特にその性能に大きなネットワークベースのアプリケーション?
あの論プログラマー、何をすべきかを知メモリ(以下参照)、いったい場合は取りそろえております。うためのネットワークです。
解決
一段落程度の箇条書きの私の頭のものを知っておきたい:
- となるTCPのし---3方握手、承認、遅延ack,nagling、摺動画面プロトコルです。がコンクリートの理由を一つ一つの特徴...ですべて破壊するアプリケーションのパフォーマンスの取り扱い不良となります。
- UDPマルチキャスト...だなという思いを大切にしていいのかを把握しておく必要があり、なぜかその存在することができるので教育を受け決定を設計する場合。
- IP断片化の影響のMTU.
- バイナリーの直列化およびネットワークバイト順序ていてもようを使用したプロト-バッファのは、嬉しい理解 なぜ その効率化).
- Ascii直列化およびメッセージ枠組み(ものは何か
\r\n\r\n
平均HTTP?) - 異なるI/O派遣モデルApache-スタイルpreforking、スレッド間の接続には、イベントに基づく単一のネジ付き、イベントに基づく作業者のスレッドなど。
- の影響のバッファオーバーフロー脆弱性のネットワークアプリ
- プロトコルに基づくデザインとショッピングモーや図書館に基づくデザイン
- 非同期vs同期プロトコル多くの高性能システムは非同期。HTTPでは同期を使用しない限りの組織では成果が、その後も、多くの制限に出すことができるように...ないための対応です。
更新:うなプロトコルに基づくデザインを意味するのか。
考えるHTTPプロトコルコのweb.Apache,IIS,Lighttpd、Firefox、Opera、WebKit。すべてのこれらのソフトウェア語HTTP.できることは無かったのコードです。下の方には、もちろんのこと、増加の可能性のバグにより、当期純量のコードです。数多くのupsides:
- プログラムで伝えようかを問わず実施言語
- 軽量-組込み環境を選ぶサブセットのプロトコルではなく、全体
- での最適化、プロトコルハンドラの特定の場面でのすることはできませんの最適化には、図書室を犠牲にせずにます。
- 様々な異なる実装勢力図書館プロバイダにアドレスのバグではなく吹いているだけまってからでも、みんな同じます。
- ありません組織または契約上の負担をユーザーのHTTP、ライセンス費用です。
設計する場合には、ネットワークプロトコル、することで作ることができる自分のくつかのApiは、各わけ特定の使用例です。たりすることで作ることができるものの返却費用はかかりません。ネットワークソフトウェアコンポーネントにアップグレードする独立します。基本的に、すべて聞こえるのは良いの約Java/C#のインタフェースとC++による抽象クラスが適用されるネットワーク層ではなく、プログラミング言語層します。
所属していません StackOverflow