この記事の内容は、ネットワーク プロトコルとルーティング プロトコルに関する詳細な紹介 (例の説明) です。必要な友人が参考になれば幸いです。
前の例では、全員がローカル エリア ネットワーク内で作業していました。今日は範囲を拡大して、複数のローカル エリア ネットワーク、さらには広大なインターネット世界を旅して、その中間で何が起こっているのかを見てみましょう。
このプロセスでは、クロスゲートウェイ アクセスを最初に理解する必要があります。
クロスゲートウェイ アクセス
クロスゲートウェイ アクセスを理解するには、MAC アドレスと IP アドレスの変更が必要となるため、まず MAC ヘッダーと IP アドレスの詳細を見てみましょう。 IPヘッダー。
MACヘッダーとIPヘッダーの詳細
#ブログ パークでは、最初に通過するゲートウェイは、設定したデフォルト ゲートウェイである必要があります。マシンがデフォルト ゲートウェイにアクセスするときも、内部 LAN アクセスの手順に従います。
##送信元アドレスと宛先 IP アドレスを IP ヘッダーに入力します。- #ARP プロトコルを通じてゲートウェイの MAC アドレスを取得します。
- 送信元 MAC アドレスとゲートウェイの MAC アドレスを MAC ヘッダーに入れてゲートウェイに送信します。
- そして、私たちのゲートウェイは通常、
- 3 層の転送デバイスである自宅のルーターを指します
。 MAC ヘッダーと IP ヘッダーの両方が削除され、その内容を使用してデータ パケットを次にどこに転送するかを確認します。
多くの場合、人々はゲートウェイをルーターと呼びます。実際、私には準備ができていません。この比喩の方が適切です。
ルーターは、5 つのネットワーク ポートまたはネットワーク カードを備えたデバイスであり、それぞれが 5 つの LAN に接続されています。各ハンドの IP アドレスは LAN の IP アドレスと同じネットワーク セグメント内にあり、各ハンドは保持する LAN のゲートウェイになります。 他の LAN に送信したいパケットはいずれかに到着して取り込まれ、MAC ヘッダーと IP ヘッダーが取り除かれ、独自の
ルーティングに従って別のパケットが選択されます。アルゴリズム片手で、IP ヘッダーと MAC ヘッダーを追加して、それを捨てます。
上記のプロセスでは、
ルーティング アルゴリズムが表示されることに注意してください。次に、それを知ってみましょう。 ルーティング アルゴリズム
ルーティング アルゴリズムは、ルーティング アルゴリズムとも呼ばれ、ルーティング プロトコルの機能を向上させ、ルーティングによって生じるオーバーヘッドを最小限に抑えるアルゴリズムです。 ルーティング アルゴリズムは、目的地までの最適なルートを見つけるために、複数の特性に基づいて区別できます。
ルーティング アルゴリズムには、 静的と動的- 単一パスとマルチパス
など、多くの差別化ポイントがあります。
- フラット vs. レイヤード
- ホスト インテリジェンス vs. ルーター インテリジェンス
- ドメイン内 vs. インタードメイン
- リンクステータスと距離ベクトル ## ここでは主に
- 静的および動的
ルーティングアルゴリズムを紹介します。
静的ルーティング
静的ルーティング アルゴリズムは、基本的にゲートウェイによって設定されるマッピング テーブルです。 我が家のルーターはこのようなルーティング構成になっている可能性があります。
ブログ パークにアクセスするには、出口 2 から出てください。ネクストホップは IP2 です。
Baidu にアクセスするには、出口から出てください。 3 アウト、ネクストホップは IP3 です。 上記のようなルールは静的ルートであり、特定の構文に従ってルーターに保存されます。 どのポートから吐き出すかを選択したい場合は、ルールを 1 つずつ照合し、一致するルールを見つけたら、そのルールに従って動作し、指定されたポートから吐き出し、次のポートを見つけます。ホップIP。
ゲートウェイを介した「変える」と「変わらない」
以前、MACアドレスはLAN内でのみ有効なアドレスであると学びました。したがって、MACアドレスはゲートウェイを通過する限り必ず変化します。 IP アドレスはゲートウェイを通過した後は変更されない場合があります。
ゲートウェイ A を通過した後、IP アドレスが変化しない場合、A は
転送ゲートウェイであり、そうでない場合は
NAT ゲートウェイです。
転送ゲートウェイ
## 上記のように、サーバー A がサーバー B にアクセスしたい場合は、次を経由する必要があります:
1) サーバー A は、ゲートウェイ A
ゲートウェイのIPアドレスが設定されているので、ARPを送信してゲートウェイのMACアドレスを取得
- #パケットを送信
最後に送信されたパケットの内容は主に次のとおりです:
ソース MAC: サーバー A の MAC
テンプレートMAC: 192.168.1.1 ゲートウェイ MAC
ソース IP: 192.168.1.101
宛先 IP: 192.168.4.101
データ パケットがネットワーク ポート 192.168.1.1 に到達すると、ネットワーク ポートは MAC アドレスが自分のものであることを認識し、パケットを受信し、どこに転送するかを「検討」し始めます。
この時点で、ルータ A にはルール A1 が設定されています。
192.168.4.0/24 にアクセスするには、ネットワーク ポート 192.168.56.1 を経由し、ネクスト ホップは 192.168.56.2 です。
2) ゲートウェイ A からゲートウェイ B
したがって、ルーター A は A1 と一致し、192.168.56.1 ポートから 192.168.56.2 にパケットを送信する必要があります。そこで、プロセスが再び開始されました。
- #B のネットワーク セグメントを確認すると、同じネットワーク セグメントで ARP が MAC アドレスを取得していることがわかりました。
- Send Packet
- Source MAC: MAC
- of 192.168.56.1 #テンプレート MAC: 192.168.56.2
- 送信元 IP: 192.168.1.101
- 宛先 IP: 192.168.4.101
3) ゲートウェイ B からサーバー B
ルーター B は B1 と一致します。 192.168.4.1 から 192.168.4.101 にエクスポートします。パケットの内容:- ソース MAC: 192.168.4.1 の MAC #テンプレート MAC: 192.168.4.101
- #宛先 IP: 192.168.4.101
## サーバー B がデータ パケットを受信し、MAC を検出しますアドレスがそれに属しているため、パケットは受信されます。
上記のプロセスからわかるように、MAC アドレスは新しい LAN に到達するたびに変化しますが、IP アドレスは変化しません。 IP ヘッダーには、ゲートウェイ IP アドレスは保存されません。
私たちが話しているネクストホップ
は、この IP アドレスを MAC に変換して MAC ヘッダーに入れる必要がある特定の IP です。
NAT ゲートウェイ NAT ゲートウェイ、ネットワーク アドレス変換。
# 各 LAN には独自のネットワーク セグメントがあるため、IP の競合が発生しやすくなります。上図のように、アメリカのサーバーAのIPアドレスとフランスのサーバーBのIPアドレスは、どちらも192.168.1.101/24となっており、IP的には自分自身にアクセスしているように見えます。実際、米国の 192.168.1.101 はフランスの 192.168.1.101 にアクセスします。 この問題を解決するにはどうすればよいですか? IP の割り当ては LAN 間で交渉されておらず、全員がそれぞれのビジネスを行っているため、海外に行くとき、つまり真ん中の LAN では、海外に行くときと同じように、別のアドレスを使用する必要があります。パスポート。
国際 ID
を持っている必要があり、ゲートウェイ B では国際 ID 192.168.56.2 が対応していることに注意します。国内 ID は 192.168.1.101 です。192.168.56.2 にアクセスしたい場合は、ゲートウェイを 192.168.1.101 に変更する必要があります。 したがって、ソース サーバー A がターゲット サーバー B にアクセスしたい場合、ターゲット アドレスは国際 IP アドレス 192.168.56.2 になります。プロセスは次のとおりです。1) ソース サーバー A がデータ パケットをゲートウェイ A
サーバー B の IP を確認します。同じネットワークセグメント
- ARP がゲートウェイの MAC アドレスを取得します #パケットの送信
- ##パケットの内容パケットは次のとおりです。
- 送信元 MAC: サーバー A
- ソース IP: 192.168.1.101
- 宛先 IP: 192.168.56.2
- ネットワーク ポート 192.168。 1.1 ルータ A がデータ パケットを受信します。 最後に、MAC アドレスが一致していることを確認して、パケットを受信します。
- ルーター A でルールが設定されています: 192.168.56.2/24 にアクセスする場合は、192.168.56.1 ネットワーク ポートから 192.168.56.2 に送信します。ネクスト ホップはありません。
2) ゲートウェイ A からゲートウェイ B
ネットワーク パケットが中間 LAN に送信される場合、サーバー A も国際 ID を持っている必要があります。したがって、送信元 IP アドレス 192.168.1.101 を 192.168.56.1 に変更する必要があるため、データ パケットの内容は次のようになります。
#送信元 MAC: MAC# 192.168.56.1 の番号
#宛先 MAC: 192.168.56.2の MAC
- #送信元 IP: 192.168.56.1
ターゲット IP: 192.168.56.2
パケットがネットワーク ポート 192.168.56.2 に到着すると、MAC が一貫していることがわかり、パケットが受信されます。
ルーター B は NAT ゲートウェイであり、国際 ID 192.168.56.2 が国内 ID 192.168.1.101 に対応するように設定されているため、ターゲット アドレスは 192.168.1.101 に変更されます。
同様に、ルータ B でルールが設定されています。
192.168.1.101 にアクセスする場合は、192.168.1.1 ネットワーク ポートを経由して外に出ます。ネクスト ホップはありません。
したがって、データ パケットはネットワーク ポート 192.168.1.1 から 192.168.1.101 に送信されます。
3) ゲートウェイ B からサーバー B
データ パケットが 192.168.1.1 ネットワーク ポートから送信された後、次の手順も実行されます。
同じネットワーク セグメント内のサーバー B の IP を確認します
- #ARP がサーバー B の MAC アドレスを取得します #パケットを送信
- このときのデータパケットは次のようになります:
- 送信元 MAC: 192.168.1.1 の MAC
- #宛先 MAC : 192.168 MAC of .1.101
##ソース IP: 192.168.56.1
宛先 IP: 192.168.1.101
-
パケットを受信した後、サーバーは MAC アドレスが一致していることを確認し、データ パケットを受信します。
サーバー B が受信したデータ パケットから、送信元 IP がサーバー A の国際 ID であることがわかります。したがって、返信パケットを送信するとき、ルーター A もこの国際 ID に送信します。 NAT を使用して国内 ID に変換します。
動的ルーティング
動的ルーティング アルゴリズム
距離ベクトル ルーティング アルゴリズム
1) 基本的な考え方ベースベルマン・フォードアルゴリズムについて。各ルーターは、複数の行を含むルーティング テーブルを保存します。各行は、ネットワーク内のルーターに対応し、1 つはターゲット ルーターに向かう回線、もう 1 つはターゲットまでの距離です。
2) 問題がありますa. 良いニュースはすぐに広がりますが、悪いニュースはゆっくりと広がります。
新しく追加されたルーターは、新しいルーター情報をすぐにブロードキャストできます。ただし、ルータがハングアップした場合、ハングアップ メッセージはブロードキャストされません。このダウンしたノードを通過する各ルータは、ノードがダウンしていることを知る方法がありませんが、他のパスを介してそのノードにアクセスしようとします。すべてのパスが試行されるまで、ルータがダウンしていることがわかりません。例:
b.メッセージが送信されるたびに、グローバル ルーティング テーブル全体を送信する必要があります
上記の 2 つの問題により制限が生じますディスタンス ベクトル ルーティング
ネットワーク サイズは、小規模ネットワーク (ホップ 15 未満) にのみ適しています。リンクステートルーティングアルゴリズム1) 基本的な考え方
ダイクストラアルゴリズムに基づいています。ルーターがネットワークに参加すると、まず近隣ルーターを検出し、近隣ルーターに挨拶し、近隣ルーターが応答します。次に、隣人までの距離を計算し、エコーを送信し、2 で割って距離を取得します。次に、それ自体と近隣ルータの間のリンク ステータス パケットをブロードキャストし、ネットワーク全体のすべてのルータに送信します。このアルゴリズムでは、各ルーターは完全なグラフをローカルで構築し、このグラフでダイクストラのアルゴリズムを使用して 2 点間の最短パスを見つけることができます。
ディスタンス ベクター ルーティング プロトコルとは異なり、更新時にルーティング テーブル全体が送信されます。リンクステート ルーティング プロトコルは、更新または変更されたネットワーク トポロジのみをブロードキャストするため、更新メッセージが小さくなり、帯域幅と CPU 使用率が節約されます。また、ルーターがハングアップすると、近隣ルーターがニュースをブロードキャストするため、悪いニュースがすぐに収束します。 ダイナミック ルーティング プロトコルリンク ステート ルーティング アルゴリズムに基づく OSPF
##OSPF (Open Shortest Path First、オープン最短パス ファースト) プロトコル、データセンターで広く使用されているプロトコル。主にデータ センター内でルーティングの決定に使用されるため、インテリア ゲートウェイ プロトコル (略して IGP) と呼ばれます内部ゲートウェイ プロトコルの焦点は、最短パスを見つけることです
と呼ばれることがよくあります。 等コスト ルーティングを使用すると、トラフィックを共有できるだけでなく、1 つのパスがブロックされた場合でも、別のパスを介して宛先に到達できるようになります。 距離ベクトル ルーティング アルゴリズムに基づく BGP
ネットワーク間のルーティング プロトコルは、ボーダー ゲートウェイ プロトコル (略して BGP) と呼ばれます各データセンターには独自のルーティング構成があります。たとえば、どの外部 IP が内部で知られているか、どの内部 IP が外部で知られているか、どの IP がパススルー可能で、どの内部 IP がパススルーできないかなどです。
したがって、さまざまなデータセンターと通信する場合、データセンター間の最適なルートを見つけるために、隣接するデータセンターのルーティング構成を知ることができるプロトコルが必要です。
BGP 契約はそのような契約です。ルートの検出と計算ではなく、ルート伝播の制御と最適なルートの選択に重点を置いています。
概要
この LAN から出るには、データ パケットはルーターのネットワーク ポートであるゲートウェイを通過する必要があります;
ルーターは 3 層のデバイスであり、その理由は次のホップを見つける方法にルールがあるためです。
ルーターを通過した後の MAC ヘッダーは、確実に変わります。 IP が変更されない場合は フォワーディング ゲートウェイ 、そうでない場合は NAT ゲートウェイ になります。ルーティングは静的ルーティングと動的ルーティングに分けられます。 、および動的ルーティングを構成できます。 複雑なポリシー ルーティング、制御転送戦略;
動的ルーティングには、距離ベクトル アルゴリズムとリンク ステート アルゴリズムという 2 つの主流アルゴリズムがあります。 BGP プロトコルと OSPF プロトコルという 2 つのアルゴリズムに基づいて 2 つのプロトコルが生成されます。
以上がネットワークプロトコルとルーティングプロトコルの詳しい紹介(説明例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ドリームウィーバー CS6
ビジュアル Web 開発ツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。
