
今日、ルーターのファームウェアの作業を行っていましたが、アップデートを完了するために再起動する必要がありました。すると、インターネットが 1 分間切断され、起動が完了するとコンピューターがオンラインに戻ったことに気付きました。コンピューターはどのようにしてオンラインであることを正確に認識したのでしょうか?
ゲートウェイへの ping テストを継続的に実行し、その後どこかのインターネットに ping テストを実行していますか? もしそうなら、世界中のどこかのサーバーで ping-of-death を引き起こすことはあるのでしょうか?
答え1
「切断」にはさまざまな方法があります。どうやって切断されたと検出される状況はさまざまです:
物理的に切断されたケーブル
有線接続が物理的に切断された場合、NIC は当然、回路が切断されたことを認識します。これは、プラグが抜かれたためにライトが消えるようなものです。
論理的に切断されたケーブル
有線接続が論理的に切断された場合 (ケーブルはまだ差し込まれているが、モデムまたはルーターの電源がオフになっている)、回路は技術的にはまだ切断されているため、NIC はそれを認識します。これは、ライトはまだ差し込まれているが電源が切れているようなものです。NIC (図 1) とルーター (図 2) のリンク ステータス LED がオフになっていることにも気づくでしょう。
論理的に切断されたワイヤレス
ワイヤレス接続の場合は少し複雑です。ワイヤレスモデムやルーターが故障した場合、ワイヤレスアダプタは物理的な接続がなくても電波が残っているため、接続が失われたことを検出できます。のように振る舞う直接の物理的な接続と、NICの無線モジュールの回路は、無線信号の有無を検出できるように設計されています。(もちろん、詳細はこのサイトの範囲を超えており、電気工学。
インターネットから切断されました
切断が発生するもう 1 つの原因は、インターネット全体から切断されることです。これは、ネットワーク アダプタがまだ接続されているため、論理的な切断に似ています。異なるのは、この場合、モデムやルーターもまだオンでアクティブであり、ローカル ネットワークが存在する場合はそれにもアクセスできることです。これは確かに ping によって判断されますが、ゲートウェイではなくサーバーです。外ネットワーク、つまりインターネット上の何か。
Windows Vista以降では、インターネットに接続しているかどうかは、Microsoftサーバーに定期的にpingを送信することで確認されます。これはNCSIによって行われますが、似たような頭字語を持つテレビ番組と混同しないでください。ネットワーク接続ステータスインジケーターは、2 つの Microsoft URL のいずれかからダミー ファイルを取得する Windows 関数です (IPv4 を使用しているか IPv6 を使用しているかによって異なります)。ファイルを取得できた場合は何も実行されませんが、失敗した場合はインターネット接続がないことを示します (図 3)。
それだけです想定ただし、これを継続的に行うのではなく、時々行うようにしてください(トリガーセクションを参照してください)。ただし、この現象が時々発生することに気付いた人もいます (ただし、これはおそらく、不安定な接続が原因で、Windows が再チェックを続けているためです)。ただし、これを独自のサーバーに変更したり、完全に無効にしたりすることはできます。
図1: イーサネットポートのリンクLED
図2: ルーターの接続LED
図3: Microsoft の NCSI サービスがインターネット接続の欠如を報告
答え2
ゲートウェイとインターネットのどこかに対して継続的に ping テストを実行していますか?
いいえ。
コンピュータがネットワークに接続されているかどうかを検出できるようにするために、インターネット接続が必要なわけではありません。ルーター(またはブロードバンドモデム)と外部との間のケーブルを抜いてみてください。コンピュータは切断に気付かないことに気づくでしょう。なぜなら、コンピュータにとってはまだネットワークに接続しているからです。ネットワークがアクセスを許可しないということは、特定のネットワーク(インターネットは) まったく別の問題です。(インターネットで使用されているのとまったく同じ技術とまったく同じ機器を使用して、完全に別のネットワークを構築できます。それはインターネットではありませんが、コンピューターの場合は、特定の既知のプロパティを持つ実際の特定の既知のホストをプローブしない限り、インターネットと完全に区別がつきません。)
または、任意の電源付きネットワーク スイッチを用意し、それとコンピューターの間にネットワーク ケーブルを接続します。それ以外は何も行いません。コンピューターによるとリンクは存在しますが、まったくどこにも接続できません。
コンピュータはする検出はの喪失電気リンクネットワーク ポート上。技術的には、物理的なあるいはおそらくデータリンクレイヤー リンク。その事実は (ここでは簡略化した説明ですが) ハードウェアからオペレーティング システムに報告され、オペレーティング システムはそれを適切と思われる方法でユーザーに報告できます (まったく報告しないことも含む)。
例えば、kernel: networkdriver 0000:02:00.0: eth0: link down
通常の Linux は、 ( は0000:02:00.0
ネットワーク カードのシステム ハードウェア識別子、は論理識別子)のようなものをeth0
システム ログに出力します。NetworkManager などのユーザー空間アプリケーションは、同じ情報を取得して、よりユーザー フレンドリな形式でレポートできます。ユーザーがログインしている場合、Windows はほぼ同じ情報を取得しますが、ポップアップ メッセージで「ネットワーク切断が検出されました」などと表示します。
答え3
継続的なpingは必要ありません
コンピュータは最初にイーサネット層の接続の喪失を検出しました。つまり、イーサネットポート(ケーブルが差し込まれている物理的なソケット)に電流が流れなくなったということです。イーサネットポートの緑のライトが消えたことにも気づくでしょう。これは、イーサネットケーブルが2つの端のいずれかから引き抜かれたときに起こります。その後、ルータがオンラインに戻ったときに、最初に電気が検出され、ライトが緑に点灯しました。後また、PC システム トレイのアイコンにも、ネットワーク接続が機能していることが示されています。その時点では、IP 層は動作していると言えるため、コンピューターはルーターに接続できることを認識し、IP パケットを送受信できることがわかります。
OSI ネットワーク層モデルを見てみましょう。http://en.wikipedia.org/wiki/OSI_モデル
答えは、pingプログラムはネットワーク層レベルただし、コンピュータ (ソフトウェアによって統合されたさまざまな部分を使用するシステムとして) はすべてのレイヤーを「認識」しています。したがって、最も基本的なレイヤーがワイヤの切断時に中断された場合、それは物理レイヤー レベル (ワイヤ上、通常はイーサネット) で発生します。ネットワーク アダプタは、物理レイヤーで常に送信信号を受信しています。これは、アナログ電話ネットワークのキャリアに例えることができます。固定電話の受話器を取ると、キャリア トーンを聞くことができます。それが聞こえない場合は、電話回線が機能していないことがわかります。同様に、コンピュータは、イーサネット ワイヤが両端で切断されていることを「認識」します。これは、「キャリア」が存在しないためです (この比喩を使用する場合)。したがって、コンピュータが物理ネットワークに接続されていることを認識するために、ping を常に使用する必要はありません。
また、私たちが話すときも覚えておいてくださいピン私たちが話しているのはTCP/IP プロトコル スタック(特にICMPプロトコル)。Webブラウザでのインターネット接続の仕組みを説明するために、次のことを考えてみましょう。通常、FirefoxブラウザがURL(例:ホームページ) は、まずコンピューターに tinyurl.com の IP アドレスを尋ねます。次に、システムはリゾルバ ライブラリを使用して DNS サーバーに問い合わせ、195.66.135.249 などの回答を返します。次に、Firefox はコンピューターに tinyurl.com から既定の Web ページを取得するように要求します。コンピューターは、IP 195.666.135.249 のコンピューターと TCP 接続を確立し、既定の Web ページを要求する http プロトコル メッセージを送信します。次に、tinyurl.com は、TCP プロトコルによって作成された仮想「パイプライン」を移動する http プロトコルを介して既定のページを送り返します。これにより、TCP/IP プロトコルのさまざまな部分がどのように相互運用されるかがわかり、コンピューターが物理ネットワーク、ローカル ネットワーク、およびインターネットに接続されているかどうかを「認識」する方法が多数あることがわかります。
レイヤーの概念をより良く理解するには、おそらくいくつかの図と理論を参照する必要があります。http://www.hardwaresecrets.com/article/The-OSI-Reference-Model-for-Network-Protocols/431/1重要なアイデアは、各レベルのプロトコルがリモート コンピュータ上の同じレベルのプロトコルと通信しているように「見せかける」ことができ、他のプロトコルについてあまり知る必要はなく、上位/下位レベルのプロトコルにメッセージを受信/渡す方法だけを知ればよいというものです。文字が詰め込まれた類似性は、非常に便利だとおわかりいただけると思います。
OSI モデルを見ると、TCP/IP スイートが唯一のネットワーク プロトコルではないことがわかります。数年前、Netware IPX/SPX プロトコルはオフィス ネットワーク設定でより確立されており、TCP/IP は新参者でした。当時のケーブルは、イーサネット ツイスト ペアではなく、同軸ケーブルであることが多いです。