Huayun Data: ping が失敗した場合は、家主に問い合わせてください - ping パケットからネットワーク転送の原理を分析する

Huayun Data: ping が失敗した場合は、家主に問い合わせてください - ping パケットからネットワーク転送の原理を分析する

クラウドコンピューティング事業の急速な発展に伴い、国内外のクラウドコンピューティング企業間の特許紛争はますます激しくなっています。クラウド コンピューティングなどの技術分野では、特許保有量が企業の究極の技術力を表すことがよくあります。今回の Huayun Data の「Smart Huayun」コラムでは、ping パケットからのネットワーク転送の原理を分析し、クラウド コンピューティング分野の最新のテクノロジとソリューションを皆様と共有します。

背景

「大家さん、電話がつながりません。」家を離れて働いて家を借りている人なら誰でもこのような経験をしたことがあると思います。 Ping の失敗は単純な現象ですが、実際には多くのプロセスが含まれています。今日は、ping が失敗した場合にどうするかについてお話します。

基本概念

本題に入る前に、いくつかの概念を紹介しましょう。

1. Pingパケット

ping パケットは ICMP プロトコルを使用します。 ICMP プロトコルとは何ですか?これはインターネット制御メッセージ プロトコルです。文字通りの意味は理解しにくいですが、その機能は非常に単純で、リンクを検出するためにいくつかの制御メッセージを送信することです。

プロトコルを理解するには、通常、まずそれがどのようにカプセル化されているかを確認します。あなたが調べた本はすべて偽物です。最善の方法は、自分でパケットをキャプチャすることです。パケットキャプチャツールにはさまざまな種類があります。私は Wireshark (Windows) と tcpdump (Linux) を使うのが好きです。パケット キャプチャ ツールの使用方法については、Baidu をご覧ください。

キャプチャされたメッセージは次の通りであり、段階的に分析されます。

まずイーサリアムのヘッダー

MAC アドレスはネットワーク カードを一意に識別するために使用されることがわかっており、現時点では、ネットワーク カードのハウス番号として理解できます。

DMAC: 宛先 MAC、つまりデータ パケットの送信先。

SMAC: ソース MAC、独自のネットワーク カードのハウス番号

タイプ: データパケットのタイプ

ヒント: ちょっとした知識ですが、ここに一文があります。レイヤー 3 転送の場合、DMAC は通常ゲートウェイの MAC アドレスです。レイヤー 2 転送の場合、DMAC は宛先の MAC アドレスです。これは、データ パケットがレイヤー 2 転送かレイヤー 3 転送かを区別する最良の方法でもあります。

[[258835]]

IP レイヤーを中心にいくつか見ていきましょう。

DSCP: *** の目的は、メッセージの優先度を区別することです。プロトコル メッセージには高い優先度が必要であることは誰もが知っています。

flags: フラグメントのフラグ。次のフラグメント オフセットは、フラグメントのオフセットを指します。

プロトコル: プロトコルタイプ。pingがicmpプロトコルを介して行われていることがわかります。

icmp のさらに重要な 2 つのタイプとコードは、icmp メッセージの目的を決定するために使用されます。

ここで、タイプ 8 コード 0 は ICMP 要求です。具体的な意味については RFC792 を参照してください。

https://tools.ietf.org/html/rfc792

何? RFC とは何ですか?私はKFCについてしか聞いたことがありません。大きな問題はありません。 Baidu にアクセスしてください。

[[258836]]

2. ARP

ARPとは何ですか?アドレス解決とは、IP アドレスに基づいて MAC アドレスを取得することを意味します。上記のメッセージもご覧になったと思います。誰かに ping を送信したい場合は、その人の IP と MAC を知る必要があります。ゲートウェイにメッセージを送信する場合は、ゲートウェイの MAC を知る必要があり、宛先にメッセージを送信する場合は、宛先の MAC を知る必要があります。

ARP プロセスは非常に簡単です。まずクライアントが ARP 要求を送信します。たとえば、IP アドレス 10.10.10.10 はわかっているが、Mac がわからない場合は、IP アドレスを取得するために ARP 要求を送信する必要があります。

さて、ARP がどのように機能するかを確認するために、通常どおりパケットをキャプチャしてみましょう。

ARP 要求メッセージはブロードキャスト メッセージなので、その dmac は ff:ff:ff:ff:ff:ff です。相手の IP はわかっていますが、相手の MAC はわかりません。そのため、ターゲット MAC には 00:00:00:00:00:00 と入力できます。上の画像を見てください。これは ARP 要求メッセージです。10.51.30.122 の MAC を知りたいのです。 ARP 要求メッセージはローカル エリア ネットワーク内でブロードキャストされます。 10.51.30.122 でない場合は、このメッセージを受信した後、処理されずに破棄されます。 IP 10.51.30.122 の場合は、ARP 応答が行われます。

別の ARP 応答メッセージを見てみましょう。

ARP 要求を受信すると、アドレス 10.51.30.122 からユニキャスト メッセージが送信され、MAC が通知されます。同時に、私の Mac と IP も記録され、ARP 情報も保存されます。同時にその情報も保存します。次回接続するときに、ARP テーブルを直接確認できます。別の ARP 要求を送信する必要はありません。もちろん、ARP が古くなった場合は、このプロセスを繰り返す必要があります。

3. DNS

Baidu に ping するのが好きな人もいます。ドメイン名を ping すると、中間にドメイン名解決という追加の処理レイヤーが存在します。さあ、パケットのキャプチャを続けましょう。

ご覧のとおり、Baidu の IP がわからなかったので、まずドメイン名解決サーバーである 114.114.114.114 に送信して解決し、IP を教えてもらいました。

そこでメッセージを再カプセル化し、宛先 IP でアドレス 216 を直接選択して ICMP 要求を送信しました。

完了しました。ping が機能しています。

トラブルシューティング

どうしたの?記事のタイトルは「Ping が失敗しました」ではないですか?では、なぜ Ping の成功について詳しく説明しているのですか?実際に、原理を逆にして、Ping が失敗する理由を調べてみましょう。すべてのリンクをチェックすれば問題は解決します。

[[258837]]

さあ、まずは図を描いてみましょう。ゲートウェイを通過しない第2層転送は描かず、直接3層転送図を描きます。

[[258838]]

これは簡単な図です。手順を一つずつ書いてみます。 Baidu に ping するとします。通常、Baidu に ping を実行してインターネットにアクセスできるかどうかを確認します。

1. まず、クライアントは Baidu のドメイン名を解決して IP アドレスを取得し、さらに独自の ping パケットをカプセル化する必要があるため、最初にそれをドメイン ネーム サーバーに送信します (114.114.114.114 に設定されていると仮定します)。ドメイン ネーム サーバーが解決を手伝ってくれた後、Baidu の IP アドレス 220.181.57.216 が提供されます。ここで、ドメイン ネーム サーバーにアクセスします。どうやってそこへ行けばいいですか?もちろん、最初にルーティングテーブルを確認します。

明らかに、114.114.114.114 への直接ルートがないので、上の図の 192.168.0.1 であるゲートウェイに送信することしかできず、ゲートウェイがそれを処理します (ゲートウェイの MAC がわからない場合は、最初にブロードキャスト ARP をゲートウェイに送信し、ゲートウェイの MAC を取得して ARP テーブルを維持する必要があります)。その後、ゲートウェイはドメイン名解決の結果を私に返し、Baidu の IP アドレスを取得します。

2. 宛先 IP を使用すると、クライアントはメッセージをカプセル化する準備が整います。 3層転送なので、BaiduのMACアドレスを知る必要はありません。ゲートウェイの Mac だけを知っておく必要があります。 dmac=ゲートウェイmac、dip=Baidu IPで、pingパケットを直接送信します。ゲートウェイの Mac に ARP 要求が 1 回送信されているため、すべてのゲートウェイ ARP がクライアントの ARP テーブルに保存されています。

3. データ パケットがゲートウェイに到達します。パブリックネットワークに送信されるので、ここでは処理の詳細については説明しません。 1 つのコマンドを使用して、データ パケットが通過したホップの数を確認できます。

4. Baidu は私の ping パケットを受信すると、同じ方法でゲートウェイ ARP 情報を取得し、カプセル化された icmp 応答を私に返します。ゲートウェイはこの応答を受信すると、宛先 IP が私であることを認識し、ルーティングを通じて私に直接転送します。ここでプロセス全体が完了します。

ヒント: 着信データ パケットの場合、ゲートウェイはデータ パケットの送信元 MAC 情報を独自に学習し、独自の MAC テーブルと ARP テーブルを維持します。

さて、ping が失敗した場合は、その理由について考えてみましょう。段階的に確認し、パケットをキャプチャして段階的に分析すると、原因を見つけることができます。 ping が失敗した場合は、家主に連絡する必要はありません。ネットワーク ケーブルを自分でまっすぐにすれば接続されます。

<<:  南京-アマゾンAWS共同イノベーションセンターが正式に開設

>>:  メーカーが PTC と Rockwell Automation のテクノロジー スイートでデジタル変革をリード

推薦する

新しいサイトの例分析ウェブサイトの構造をどのように配置するか

ウェブサイト構築のプロセスにおいて、ウェブサイト構造の配置は非常に重要です。あなたが新人ウェブマスタ...

QQスペースをマーケティングの優れたリソースとして活用する

QQは中国最大のチャットツールであり、QQ Spaceは多くのユーザーを魅了しています。したがって、...

最適化プロジェクトの難易度を判断する7つのステップ

企業でも個人でも、プロジェクトが小規模でも大規模でも、仕事を引き受ける前に、まずプロジェクトの最適化...

arkecxはどうですか?ロサンゼルス中国最適化クラウドサーバーの実評価: cn2 gia+as4837+cmi

arkecxはどうですか? arkecxは良いですか? arkecx ロサンゼルス最適化クラウド サ...

より多くの人に WeChat コンテンツをクリックしてもらうにはどうすればよいでしょうか?

初めて WeChat の公開アカウントをフォローしたときの興奮を今でも覚えています。毎日好きな記事が...

CTO が混乱を避けるためのクラウド イノベーションのヒントを提供

現在の状況では、クラウド移行が加速しており、経営幹部の 56% がクラウド移行は「絶対に必要な」対策...

クラウド移行のベストプラクティス

企業がクラウドに移行する理由は、管理オーバーヘッドの削減、ボタンをクリックするだけでストレージのニー...

ファーウェイのクラウドSaaSスターライトプログラムがスタート、スターライト基金に2億元を投資し、数千のパートナーに力を与える

2021年4月22日、「蘇州・ファーウェイクラウドシティサミット2021」において、ファーウェイクラ...

VMware、企業のアプリケーション近代化を支援する製品ポートフォリオを強化

[51CTO.comより元記事] 疫病の影響により、今年のVMworld2020はオンラインライブ放...

アマゾン ウェブ サービスが北京で無料枠を開始

本日 2022 年 8 月 25 日、Amazon Web Services は Sinnet との...

留学ウェブサイト編集経験

私はこの業界に4年以上いるので、あまりプロフェッショナルとは言えません。しかし、教育ポータルの留学チ...

オートホーム、米国で株式公開を計画:最大1億2000万ドルを調達

新浪科技報、北京時間11月5日朝のニュースによると、中国の自動車情報ウェブサイトAutohomeは本...

百度の検索機能は徐々に改善している

Baidu の検索機能の改善は、さまざまなユーザーのニーズに基づいています。私たちはユーザーのニーズ...

私がウェブサイトを台無しにしてしまった経緯

はじめに:2月にSEOに触れ、3月中旬に熱意を持って現在のサイトを引き継ぎました。では、これ以上前置...

適切なフレームワークの選び方 - 分散タスクスケジューリングフレームワークの選択

1. 背景スケジュールされたタスクは、私たちの開発において不可欠な部分です。たとえば、一部の電子商取...