目次
ネットワーク層
複雑なネットワーク環境で正当なパスを決定します。
IP プロトコル
TCP/IP 全体の重要なプロトコルとして、IP プロトコルは主に最終的なターゲット コンピュータにデータ パケットを送信する役割を果たします。したがって、IP により、世界中の任意の 2 台のコンピューター間の通信が可能になります。
ネットワーク層 IP: ホストがホスト A からホスト B にデータを送信できるようにします。「端末ノードより先に通信を実現する」 このような端末ノード間の通信は、「ポイント・ツー・エンド(エンド・ツー・エンド)通信」とも呼ばれます。
ネットワーク層が提供するのは、ネットワークを介してホスト A からホスト B にデータを送信することです。TCP は、信頼性の高い伝送を保証するために使用されます。
知的財産の基礎
IP は、IP アドレッシング、ルーティング (最終ノードまでの転送)、および IP パケット化とグループ化という 3 つの主要な機能モジュールに大まかに分けられます。
IPアドレス
コンピュータ通信では、「ネットワークに接続されたすべてのホスト間の通信の宛先アドレスを識別する」ためにIPアドレスが使用されます。したがって、TCP/IP 通信では、すべてのホストまたはルーターが独自の IP アドレスを設定する必要があります。
IP ヘッダー形式
- 4 桁のバージョン番号: IP プロトコルのバージョンを指定します。IPV4 の場合は 4
- 4 はヘッダーの長さです: IP ヘッダーの長さは 32 ビットです. これがヘッダーの長さです. それは length*4 の長さです。4bit は最大数が 15 であることを意味するため、最長の IP ヘッダーは 60 バイトです。
- 8 ビットのサービス タイプ: 3 ビットの優先度フィールド (非推奨)、4 ビットの TOS フィールド、および 1 ビットの予約フィールド (0 に設定する必要があります) 4 ビットの TOS はそれぞれ、最小遅延、最大スループット、最高信頼性を表します, 最小コスト. これらの 4 つは互いに競合し、1 つだけを選択できます. ssh/telnet などのアプリケーションでは、最小の遅延がより重要です; ftp などのプログラムでは、最大のスループットがより重要です.
- 16 ビットの全長: IP データグラム全体のバイト数。
- 16 ビット識別子: ホストから送信されたメッセージを一意に示します。IP パケットがデータ リンク層でフラグメント化されている場合、各フラグメントの ID は同じです。
- 3 ビットのフラグ フィールド: 最初のビットは予約され、2 番目のビットはフラグメンテーションが禁止されていることを示す 1 このとき、パケット長が MTU を超えると、IP モジュールはパケットを破棄します。3 番目のビットは「より多くのフラグメント」を意味します。フラグメント化されている場合、最後のフラグメント位置は 0 で、その他は 1 です (そうでない場合、メッセージは連続していません)。
- 13 はフラグメンテーション オフセットです。これは、元の IP パケットの先頭からの相対オフセットであり、元のパケット内の現在のフラグメントの位置を実際に示します。この値により、実際のオフセットバイト数が得られます*8。したがって、最後のメッセージを除いて、他のメッセージの長さは 8 の整数倍でなければなりません (そうでない場合、メッセージは連続しません)。
- 8 ビット プロトコル: 上位層プロトコルの種類を示します。
- 8 ビットの存続時間 (TTL): データグラムが宛先に到達するまでのホップの最大数。一般的には 64 です。ルートを通過するたびに。TTL -=1, 0 に減少し、到着していないため、長い間破棄されてきました. このフィールドは、主にルーティング ループを引き起こすために使用されます. ネットワークのバグやピア ホストの到達不能などの制御不能な要因により、IP パケットは消えることなくネットワーク内を長時間さまよっています。
- 32 ビットの送信元 IP アドレスと 32 ビットの宛先 IP アドレス: 送信者と受信者を示します。
- 16 ビット ヘッダー チェックサム: CRC を使用して、ヘッダーが破損しているかどうかを確認します。
ネットワークセグメント区分
IP はどのようにして相手のホストを見つけますか?
- IP の構成: ip = 宛先ネットワーク + 宛先ホスト (FF:FF:FF:FF)
- ネットワーク番号: 相互に接続された 2 つのネットワーク セグメントが異なる ID を持つようにします。
- ホスト番号: 同じネットワーク セグメントでは、ホストは同じネットワーク番号を持ちますが、異なるホスト番号を持つ必要があります。
したがって、IP ルーティングの場合、最初に宛先ネットワークに従ってルーティングし、宛先ネットワークを見つけてから、宛先ホストのホスト番号に従って宛先ホストを見つけます。
- 異なるサブネットは、実際には同じネットワーク番号を持つホストです
- サブネットにホストを追加する場合、ホストのネットワーク番号はサブネットのネットワーク番号と同じですが、ホスト番号はサブネット内の他のホストの番号と同じであってはなりません。
ホスト番号とネットワーク番号を適切に設定することにより、相互接続されたネットワークで、各ホストの IP アドレスが異なることを保証できます。
したがって、データ送信の本質は、最初にターゲット マシン (ターゲット ネットワーク + ターゲット ホスト) を見つけることです. 見つけることの本質は、排除のプロセスです! また、サブネット化により、多数のサブネットを一度に除外できます。見つけやすさ - ターゲット ホストの検索効率が向上
CIDR
不十分な IP の問題を解決するために、追加のサブネット マスクが導入され、ネットワーク番号とホスト番号を区別します。
- サブネット マスクも 32 ビットの正の整数で、通常は文字列「0」で終わります。
- IP アドレスとサブネット マスクに対して「ビットごとの AND」演算を実行すると、結果がネットワーク番号になります。
例:
したがって、ネットワーク番号は IP アドレスとサブネット マスクの AND を取ることで得られ、すべて 0 からすべて 1 までのホスト番号がサブネットのアドレス範囲になります。
140.252.20.68/24 のように、IP アドレスとサブネット マスクを表すよりコンパクトな方法もあります。IP アドレスが 140.252.20.68 で、サブネット マスクの上位 24 ビットが 1、つまり 255.255.255.0 であることを示します。
特別な IP アドレス
- IP アドレスのすべてのホスト アドレスを 0 に設定します。これがネットワーク番号になり、コードはこの LAN です
- IP アドレスのすべてのホスト アドレスを 1 に設定します。これがブロードキャスト アドレスになり、同じリンクで相互に接続されたすべてのホストにデータ パケットを送信するために使用されます。
- 127.* の IP アドレスはローカル ループバック (ループ バック) テストに使用され、通常は 127.0.0.1 です。
IPアドレス数の制限
IP アドレス (IPV4) は 4 バイト 32 ビットの正の整数であることがわかっているため、合計で 232 個の IP アドレス (約 43 億個) しかありません。TCP/IP プロトコルでは、各ホストに IP アドレスが必要であると規定されています。
これは、合計 43 億のホストのみがネットワークにアクセスできることを意味しますか?
実際には、特別な IP アドレスが存在するため、その数は 43 億をはるかに下回り、ホストの数に応じて IP アドレスが構成されているわけではありません。代わりに、各ネットワーク カードに 1 つ以上の IP アドレスを設定する必要があります。
CIDRにより、IPアドレス不足の問題はある程度緩和されましたが(使用率が向上し、無駄が減りましたが、IPアドレスの絶対的な上限は増えていません)、まだ十分ではありません.現時点では3つの解決方法があります. :
- IP アドレスを動的に割り当てる: ネットワークに接続されたデバイスにのみ IP アドレスを割り当てます。したがって、同じ MAC アドレスを持つデバイスは、インターネットに接続するたびに必ずしも同じ IP アドレスを取得するとは限りません。
- NAT テクノロジー
- IPV6: IPV6 は IPV4 の単純なアップグレード版ではありません。これらは 2 つの別個の契約です。IPV6 は 16 バイトと 128 ビットを使用して IP アドレスを表します。ただし、IPV6 はまだ普及していません。
プライベート IP アドレスとパブリック IP アドレス
組織内に LAN を構築する場合、IP アドレスは LAN 内の通信にのみ使用され、インターネットに直接接続されることはありません. 理論上は任意の IP アドレスを使用できますが、RFC 1918 では、ネットワークを構築するために使用されるプライベート IP アドレスが指定されています. LAN。
では、プライベート IP は IP 不足の問題をどのように解決するのでしょうか?
- 10.* 最初の 8 桁はネットワーク番号、合計 16,777,216 アドレス
- 172.16. ~ 172.31. 上12桁がネットワーク番号、合計1048576アドレス
- 192.168.* 最初の 16 桁はネットワーク番号、合計 65536 アドレス
この範囲に含まれるものはすべてプライベート IP になり、残りはグローバル IP (またはパブリック IP) と呼ばれます。
- ルーターは 2 つの IP アドレスで構成できます。1 つは WAN ポート IP、もう 1 つは LAN ポート IP (サブネット IP) です。
- ルーターの LAN ポートに接続されているホストは、現在の経路のサブネットに属しています。
- 異なるルーターは同じサブネット IP を持っています (通常は 192.168.1.1). サブネット内のホスト IP アドレスを繰り返すことはできませんが、サブネット間の IP アドレスは繰り返すことができます.
- すべてのホームルーターは、実際にはオペレータールーターのサブネット内のノードです. このようなオペレータールーターには多くのレベルがある場合があります. 最も外側のオペレータールーターであるWANポートIPはパブリックネットワークIPです.
- サブネット内のホストが外部ネットワークと通信する必要がある場合、ルーターは IP ヘッダーの IP アドレスを (WAN ポートの IP で) 置き換え、段階的に置き換えます. 最終的なデータ パケットの IP アドレスは、パブリック ネットワーク IP. この技術は NAT (ネットワーク アドレス変換) と呼ばれます.ローカル エリア ネットワーク内のデータはパブリック ネットワークに送信されます, 継続的に元の IP – NAT テクノロジに置き換える必要があります
- 自分で実装したサーバー プログラムをパブリック ネットワークでアクセスできるようにする場合は、プログラムを外部ネットワーク IP を持つサーバーに展開する必要があります.そのようなサーバーは Alibaba Cloud/Tencent Cloud で購入できます.
ルーティング
複雑なネットワーク構造の中で目的地までのルートを探す
ルーティング プロセスは、ホップ バイ ホップ (Hop by Hop) で「道順を尋ねる」プロセスです。
いわゆる「1 ホップ」とは、データ リンク層の間隔であり、具体的には、イーサネットの送信元 MAC アドレスと宛先 MAC アドレスの間のフレーム送信間隔を指します。
IPパケットの送信過程も道を尋ねるのと同じ
- IP パケットがルーターに到着すると、ルーターは最初に宛先 IP をチェックします。
- ルーターは、パケットを宛先ホストに直接送信できるか、次のルーターに送信する必要があるかを決定します。
- 宛先IPアドレスに到達するまで順番に繰り返します
では、現在のデータ パケットの送信先を特定するにはどうすればよいでしょうか。これは、各ノード内でルーティング テーブルを維持することに依存しています。
ルーティング テーブルは、route コマンドを使用して表示できます。
宛先 IP コマンドがルーティング テーブルに含まれている場合は、直接転送できます。
ルーティング テーブルの最後の行は、主にネクスト ホップ アドレスと送信インターフェイスで構成されます. 宛先アドレスがルーティング テーブルの他の行と一致しない場合、指定されたインターフェイスに従って最初のホップ アドレスに送信されます.デフォルトのルーティング エントリ。
ルーティング テーブルの Destination は宛先ネットワーク アドレス、Genmask はサブネット マスク、Gateway はネクスト ホップ アドレス、Iface は送信インターフェイスです。
Flags の U フラグは、このエントリが有効であることを示し (一部のエントリは無効にできる)、G フラグは、このエントリのネクスト ホップ アドレスがルーターのアドレスであることを示し、G フラグのないエントリは、宛先ネットワークがアドレスは、ローカル マシンとのインターフェイスです。直接接続されたネットワークは、ルーターによって転送される必要はありません。
IPの概要
- IP ヘッダーに精通し、IP の役割とフラグメンテーションとアセンブリを理解する
- ネットワーク セグメンテーションを理解する。ネットワークの全体像を構築するネットワーク セグメント分割とは何か、誰が、どのように行うか