はじめに real time
ネットワーキングは、どのようなネットワーク状況でも「タイムリー」な方法であなたの情報の提供を保証できないという基本的な事実のために存在しません。リアルタイムコンピューティングはしばしば混同されます high performance computing
。第二に、NICはあまりにも多くのビットを突き出すと破裂する可能性がある送水管のようなものではないため、「NICの容量を超えることはできません」。 NICの「容量」(または帯域幅)は 物理的 1つの接続されたインターフェースが物理的にビットを「ストリーミング」できる速度(アップ/ダウン)の制限値。1秒あたりのメガビット数で測定されます(一般的な誤称のようなメガバイトではありません。
1)トラフィックがNIC容量の制限を超えるとどうなりますか? Windowsでは、各アプリケーションの速度は同等に低下しますか?それとも、先に起動したアプリケーションが優先されますか。 MacやLinuxではどうでしょうか。
「ネットワークリソース」(またはソフトウェアエンジニアが「ソケット」と呼ぶもの)を要求する、実行する各アプリケーションは、アプリケーションが「バインド」されている(待機している)最大速度でダウンロード/アップロードできます。この種の「機能」は、多かれ少なかれOSに依存しないことに注意してください(すなわち、WindowsのソケットはLinux / Macのものと同じ基本的な制限/概念を持っています)。したがって、アプリケーション(Webサーバーなど)が実行されている場合、それは、理論的には、待機しているインターフェイスの最大速度(1Gb /秒で 'nic 1')でWebページを「提供」できます1秒間に125MBのファイル/要求を受信し、同時に125MBのファイル/応答を送信します(全二重の場合)。実際には速度は多くの理由ではるかに低いですが...
これを考えて、私たちの「完璧な」ウェブサーバーは今やFTPリクエストも処理する必要があるとし、そして同じNIC上で待ち受ける同じマシン上にFTPサーバーをロードするとします(この例では「nic 1」)。 FTPサーバーアプリケーションが起動すると、送受信も可能になります。 まで NICの理論上の最大値(この例では125MB / s)。これはあなたが実行するすべてのアプリケーション(ウェブブラウザ、ビデオゲーム、Netflix / Huluなど)にも当てはまります。最も重要な点は、NICの最大帯域幅を使用できる2つ以上のアプリケーション(この例ではwebとftp)があることです。これが、一般的なネットワーキングとOSの実装が登場するところです。
この例では、Webサーバーから10Mb / sでダウンロードする人が80人(合計800Mb / s)いるとします。その後、さらに30人がFTPサーバーからそれぞれ10MB / sで合計1100Mb / sでダウンロードを開始します。 ;理論的には、各アプリケーションは、NICが物理的に処理できる1000Mbの帯域幅を均等に共有することになります(OSが最大100%のCPU負荷で実行中のアプリケーション間でCPUを「共有」する方法と同様)。実際にはあります LOT どのアプリケーションを決定するさまざまな要因の 用途 与えられた瞬間にどのくらいの帯域幅の量。これらの要因は、リソースを要求しているユーザーの数から、単純なハードウェアの問題、3ネットワークホップダウンストリームまでさまざまです。これらの問題は、ユーザーの制御の範囲を超えています。帯域幅割り当てで。この1100Mb / sのシナリオでは、FTPが40%になっている間にWebサーバーが60%の帯域幅の実効レートで動作している可能性があります。 Webサーバーは20%しか使用せず、FTPは40%の速度で続行できるため、Webサーバーの受信側のユーザーが制限されます。
これらはすべて理解を深めるための一般的なシナリオであり、「実社会」のケースは完全に異なり、ユーザーベースの帯域幅ニーズを満たすことができるようにするためには多くの計画と設計作業が必要です。 。
2)インターネットからデータをダウンロードするとき、私はブラウザができるだけ速くそれをダウンロードすると思います。この動作は、リアルタイムアプリケーションのネットワーキングにどの程度影響しますか?
ブラウザは「彼らが」できるほど速くはダウンロードせず、他のアプリケーションができる限り速くダウンロードし、他のアプリケーションがそうであるようにシステムの全帯域幅に影響を与えます(1の答えを参照)。
3)Windowsでは、プロセスの優先順位を設定することができます。同様にネットワークの優先順位を設定することはできませんか?またMacやLinuxはどうですか? (私はWindowsでネットワークの優先順位を設定するサードパーティ製のアプリケーションを知っていますが、OSはサポートしていません?)
「ネットワーク」の「優先順位」を設定することは可能ですが、プロセスの優先順位を設定するのと同じ意味ではありません。 「ネットワークの優先順位」を設定するということは、NICの優先順位を別の優先順位に設定するなど、いくつかのことを意味します(Win / Mac / Linuxで行うことができ、「ネットワークインターフェイスメトリック」の設定とも呼ばれます)。あなたの意図が特定のプロセスのネットワークの優先順位または「ネットワークトラフィックのタイプ」を設定することである場合でも、これはとして知られています 「サービス品質(QoS)」 そしてWin / Mac / Linuxにも適用することができます(あなたのプラットフォームのQoSの設定と設定はこの質問/回答の範囲外ですが)。 QoSを使用すると、特定のものに割り当てられる帯域幅を制限または評価できます。たとえば、他に何もダウンロードしていないときにトレントダウンロードの最大帯域幅を許可するようにQoSを設定し、他のネットワークアクティビティによってトレントダウンロードが帯域幅のすべてを使い果たさないように自動的に制限します。あなたのEメールをチェックしようとしている間またはYouTubeを見ている間(ちょうど例として)。
4)各IPヘッダは優先順位設定を含むTOSフィールドを有する。ほとんどのオペレーティングシステムとルーターはこのフィールドを無視すると聞きました。本当?
の 「サービスの種類」 定義されたフィールド これらによって 2つのRFC 以来、「差別化サービスコードポイント」として知られるものに変貌しました。それは ではない それが単に「使われていない」のと同じくらい無視されます。言い換えれば、パケットがフィールドセットを持っているからといって(ネットワークデバイスの実装者として)実際にそれを「何でもする」必要があるわけではないので、ToSはQoSの一部であり、したがってあなたの特定のOS /デバイスはサポートしなければなりません。 ToS / DSフィールドとはいえ、ほとんどのOS /ネットワーク機器には、いくつかのQoSポリシーを介してこれらのフィールドを使用できるようにするためのいくつかの機能があります(少なくとも私が最近知っていることは知らない)。 しないで 何らかのQoS実装を持っています)。
繰り返しますが、「リアルタイムネットワーキング」のような表記法はありません。代わりに「リアルタイム」は要求された/実装されたものの保証された時間の配信を意味するので「低レイテンシ」と言います。操作。ネットワーク上で実行される操作が特定の時間配信Xを持つことを保証することはできません。代わりに、ネットワーク操作が特定のノードでXよりも高い/低い待ち時間を持たないことを保証できると言えます。
それはあなたの質問の文脈を与えられた後にあなたの後であるかもしれないと思われるので私はまたQoSについて読み上げることを提案する。
それが役立つことを願っています。