WeSeong ログイン
← 記事一覧に戻る
ネットワーク

2. ネットワークの種類、OSIの7層、プロトコル(データリンク層、ネットワーク層、トランスポート層)

ネットワークの種類、OSIの7層、プロトコル(データリンク層、ネットワーク層、トランスポート層)

まずは、ネットワーク層のICMPプロトコルから始めましょう!


次に、VMwareのネットワークをHost-only, NAT, Bridgeに変える方法を学びたいと思います。(ところで、テトリスですか???)


Ⅰ. 概要

ネットワーク層 ICMP(Internet Control Message Protocol), IGMP(Internet Group Management Protocol)プロトコルがあります。 ICMPパケットの送受信プロセスにおけるエラーメッセージ用のプロトコルです IGMPマルチキャストに関与するプロトコルです。 トランスポート層大きい TCP(Transmission Control Protocol)と UDP(User Datagram Protocol)それは存在する。 TCPは 3-way-handshakeこれは、に基づいた信頼性の高い接続指向プロトコルです UDPこれは高速化のメリットを享受する、接続指向ではないプロトコルです。 ネットワーク サービスで NAT(Network Address Translation)一つありますが、それは内部です。 IPそして外側 IPが定義されます。次に DHCP(Dynamic Host Configuration Protocol)前回の投稿で説明したように、 IP アドレス割り当て方法を定義します。



Ⅱ. プロトコル(ネットワーク、トランスポート層に焦点を当てたもの)

  1. ネットワーク層プロトコル (Protocol)

前回の記事に続き、ネットワーク層について ICMP(Internet Control Message Protocol) プロトコルを説明すると、ホストサーバとゲートウェイ(ルーター)間のメッセージを制御し、エラーを報告します。 ICMPこれを使用する典型的なコマンドがいくつかあります。

ping 10.10.10.2

上記 ping 次回の接続が確立されているかどうかを確認するアドレス(IP アドレス、ドメイン名のアドレス、またはその両方入力すると、接続が正常な場合は下記のようなメッセージが表示されます。正常に接続できない場合は、エラー メッセージが表示されます。 pingサーバの応答状態を確認するために一時的なパケットを送信できます。


IP接続されていないプロトコルでは、パケットが到達することを保証しないため、ルータやノード(ホスト)でエラーが発生し、パケットが目的地に到達しない場合は、送信元にその状態を通知する必要があります。 ICMP プロトコルを受信する複数のルータの状況と、宛先ノードの状況を診断します。 ICMP プロトコルは IP プロトコルの上層で動作する上位層(トランスポート層) TCP, UDP プロトコルとは別物ではありますが、似ている部分もあります IP これは前の投稿で説明したように、プロトコルの上に作用します。 IP プロトコル TTL(Time To Live)関連しているのです。 ICMP パケット構造で注意すべき部分は次のとおりです。 Checksumです。 Checksumパケット内のエラーを検出する役割を果たし、1 バイトごとにチェックサムを計算します。 Carry ビット演算を反映し、最終的な Checksumを 計算します。


※ Checksum の計算方法や Carry のビット演算方法はまだ理解できていないので、他の投稿を参照してください。



Linux とネットワーキングの講義概要を参照してください

ICMP大きなエラー メッセージがありましたのための エラーメッセージと診断応答メッセージがあります。 ICMP Echo Request このメッセージは、送信ノードの送信パケットが宛先ノードまたはルータに到達したことを確認するために使用されます。送信ノード(要求を送信したホスト)は、 'ICMP Echo Request メッセージ'それを送信し、宛先ノードから受信します 'ICMP Echo Reply メッセージ'応答が受信されると、パケットは正常に送信されたものとして認識されます。 ICMP Destination Unreachable ルータが特定のノードから宛先にパケットを送信できない場合、送信ノードにメッセージを送信します。 'ICMP Destination Unreachable メッセージ'送ってくれ。 これには、宛先に到達できなかった理由も含まれます。宛先ノードへの IP アドレス経路が見つからなかったルータは、このメッセージを送信元ルータに返送します。送信元ルータはこのメッセージを解釈し、パケットが宛先に到達できなかったと判断します。


※ Echo は、Unix ベースのオペレーティングシステム上で文字列をターミナルに出力するコマンドです。Linux(ubuntu) も Unix ベースなので、このコマンドは存在します。文字列の出力だけでなく、シェルスクリプトでもよく使用されます。


ICMP Redirect ルータが、ソースノードへの適切でないパスで設定されている場合に送信されるメッセージ は、宛先ノードへの最適化されたパスを再設定します。 ICMP Time Exceeded 以前は、ネットワーク間でパケットが無限に循環するのを防ぐために IP プロトコルで使用されていたメッセージ TTL メッセージ 'ICMP Time Exceeded メッセージ' が、TTL が 0 のときに送信され、パケットは破棄されます。 パケットが最初のノードからルータを通過するたびに、値が 1 減少し、最終的な宛先ノードに到達する前に 0 に達した場合、パケットは正しく転送されていません。


Linux とネットワーキングの講義概要を参照してください

ICMP Source Quench 低速の広域回線などを使用した場合にメッセージが送信されます。 WAN 特定のルータ上 ボトルネックこのような状況が発生することがあり、この集中を緩和するために、送信機キューの値は「0」のままとなり、送信機は送信できなくなります。 'ICMP Source Quench メッセージ'このメッセージは送信ノードに送信され、ノードはメッセージを解釈し、ラインがどこかで混雑しているために送信されるパケットの量を制御します。



Linux とネットワーキングの講義概要を参照してください

※ 低速広域線どのようなものでしょうか? WAN 地域規模の通信ネットワークで、主に音声データの送信に使用されます。 VoIP (Voiceを IP) などが使用されており、詳しい概念については調べてみることをおすすめします。


次へ IGMP(Internet Group Management Protocol)プロトコルがあります。 マルチキャストグループマルチキャストを管理するプロトコルとして説明する前に、ユニキャストとブロードキャストについて理解する必要があります。 ユニキャストホストと別のホストの間には、一対一の関係があります。通常 IP すべてのデータ転送はユニキャストです。私たち(一般ユーザー)はNaverまたは Googleインターネットに接続するプロセスは、ユニキャストとして考えることができます。 放送ホスト上にあります IP データをネットワーク上のすべてのホストに転送します。前回の投稿では IP プロトコルのクラス概念を考慮すると、データは各クラスに対応するすべてのネットワークセグメント、たとえばスイッチに接続されたすべてのデバイスに送信されます。 '255.255.255.255'そして特定のネットワークへの放送 直接放送そこには、「211.32.34.0' ネットワーク上でデータを送信するには、宛先アドレス '211.32.34.255'それを指定するだけです。つまり、特定のものです。 IP単一の伝送ではなく、広範なデータ転送です。 ARP(Address Resolution Protocol)が MAC 住所を探すときに使用するか、後で対処する DHCP(Dynamic Host Configuration Protocol)それが動的な場合 IP アドレスを割り当てるときに使用します。 マルチキャストこれは、単一ホストが特定のホストのグループを送信するユニキャストとブロードキャストのハイブリッド形式です。 この特定のホストをバインドしましたこれはマルチキャストグループであり、グループ内のすべてのホストがデータを受信するため、効率的です。


2. トランスポート層プロトコル (Protocol)

この層で最も重要なプロトコルは TCP(Transmission Control Protocol)と UDP(User Datagram Protocol)前回の記事で説明したような、田舎の祖母や祖父に手紙を送るという状況を考えてみましょう。その場合、私はペンで小さな紙に手紙を書きます。手紙は封筒に入れられ、郵便受けに投函されます。この場合、手紙は封筒にしっかりと入れられているように、パケットとして送信されます。のための 情報は増え続けています OSI 7つのレイヤーは、各レイヤーにおけるプロトコルの役割を表しています。メールボックスは、パケットが最初の物理レイヤーのLANカードから開始されるように、LANカードと考えることができます。この場合、郵便局はゲートウェイ(ルーター)となり、手紙は各ゲートウェイを通過し、最終的な宛先に届けられます。郵便局では、手紙に通常の郵便または迅速な配達を目的とした定形郵便の印を押します。この印が、 TCPと UDPそれがなる。


それから TCP説明するために、 TCPこれは、送信者が受信者にパケットを受信したことを確認し、受信者が誰であるかを正確に知るための方法です(3-way-handshake)それは互いにコミュニケーションを取るということです。 接続指向型Connectionoriented) プロトコルとして知られ、データの流れを管理し、データの正確性を検証し、通信を行います。 利点としては高い信頼性、データの制御フロー、データのチェックサム、タイムアウト、および再送がありますが、欠点としては速度が遅いことです。 その一方で、 UDP送信後、正しく受信されたかどうかを判断するための応答を受信する確認プロセスを経ずに送信されます(応答を要求することはできますが、正しく受信されることを保証することはできません。). それはただ送信して完了するだけです 切断指向型 これはプロトコルです。送信システムと宛先システムの間に相互通信がないため、送信中にデータが一部損失しても再送信は必要ありません。最初から接続されていないため、失われたデータに関する情報も必要ありません。 よくわからない。代わりに、の利点は、非常に高速でネットワーク負荷を軽減することですが、データが失われることや信頼性が低下することがデメリットになります。高速であるため、ビデオストリーミングやゲームなどのリアルタイムタスクに適しています。そのため、アプリケーションに応じてTCPやUDPを使用できます。特に優れた伝送方法はありません。


※ どちらの伝送方法を使用するかを決定するために、ヘッダで操作モードを定義する必要があります。


TCP重要な概念の一つは '3-way-handshake'クライアントとサーバが通信すると、クライアントはサーバに接続することが許可されているかどうかを尋ねます。 SYN(Synchronize)が送信されます。これを正しく受け取ったサーバ SYNと ACK(Acknowledgement)応答を送信します。応答を受信したクライアントは、接続が成功したことを示すためにサーバに接続します。 ACKその後、要求はサーバーに戻され、3つのステップを経て処理されます。たとえば、友達の家に電話をかけ、彼らがいるかどうかを確認するのはステップ1、彼らがいるという応答を受けるのはステップ2、電話に出た友達に自分が誰かを伝えるのはステップ3です。コネクションは、通話が終了するまで継続的に維持されます。このプロセスを説明するために、


Linux とネットワーキングの講義概要を参照してください

これはどのように機能するかというと、接続を切ろうとすると、クライアントはサーバーにFIN(Finish)を送信します。サーバーはこれに応答してACKを送信し、その後FINを送信します。クライアントはこれを受信し、サーバーにACKを返信して接続を切ります。このプロセスを図で表すと、次のようになります。


Linux とネットワーキングの講義概要を参照してください

それでいい。ここに。 SYNパケット内に接続要求に関する情報が含まれています TCP これはプロトコルセクションに入り、接続要求とセットアップが進むにつれて 1 ずつ増加します。 ACKは、通信相手のパケットシーケンスの値です。 FINは 1 TCP クライアントとサーバが切断すると、パケットにこの番号が含まれ、接続が終了していることを示します。


※ なぜ接続終了プロセスがあるのか疑問に思うかもしれません。 Naverなどの大規模なサービスを提供するサービスプロバイダーは、シームレスなサービスを提供するために多数のサーバーを保有していますが、サーバーのリソースは限られています。常にすべての接続を保持し、開いておく場合、当然ながら サーバーリソースは限られていますを 使用されることが予想されるため、必要なときに接続し、シャットダウンすることでメモリを効率的に管理するためのシャットダウンプロセスが必要です。



オペレーティングシステム内で実行されているプロセスまたはサーバの状態を確認するコマンド 'netstat'あります。上の方に '-anp'オプションです 'a'全体を意味する 'n'は IP それは住所を意味します 'p'それはプロセスです。 TCP3の場合way-handshake先ほど説明したクライアントとサーバー間の接続プロセス中 LISTEN知っているといいですね。 LISTENサーバは稼働しており、外部の要求に応答する準備が整っています。 Local Addressで '0.0.0.0:80 を要求すると、アクセスが許可されていることを意味します。 '0.0.0.0'すべてです IP それはアドレスを意味し、そのすぐ上に「127.0.0.1'それは彼のものだ IP アドレスは通常、ローカルホストです(Local Host)その名前は「On the far left, you can see a familiar term:」です。 TCPと UDPここでは、各サーバがどのように接続されているかを示します。 TCPと UDP分かるでしょうが、6という数字は馴染みがないでしょう。 TCPと TCP6違いは、アドレスシステムが IPv4 か IPv6 かを区別する点です。 TCP私たちが慣れ親しんだものです」0.0.0.0' IP アドレスに送信されていますが、 TCP6は ':::'それは書かれています。


'0.0.0.0'これらすべて IP アドレスからわかるように、「::」 IPv6すべてから IP それはアドレスを意味します。そして LISTEN 以下 ESTABLISHEDこれを表示すると、接続が成功したことになります。さらに、0.0.0.0:80では、':' の後に続く数字は 80 です。 ポート (Port) 番号現在、オペレーティングシステム上で実行されている複数のサーバーのいずれにも、同じポート番号を重複させることはできません。つまり、各サービスに対しては、一つのポート番号だけが許可されます。通常、ウェブサイト上のすべてのサービスはデフォルトのポート番号80を使用します。また、各プロトコルとサーバーにデフォルトのポート番号があることは知っておくと便利です。プロトコルのポート番号は0から40までの範囲で定義されています。クライアントにもポート番号があり、接続時にブラウザーによって自動的に割り当てられるため、重複することはありません。 IP アドレスが表示されていない場合、それはオペレーティングシステム内で実行されているプロセスを示しており、画面の最左側にあります。unix'この挙動は、システム内で実行されているプロセスを意味していることがわかります。この 'unix'多くのプロセスが実行されています Windows起動時に内部で実行されるプロセスも多くあります。起動プログラムを知っていれば、理解しやすくなります。共有フォルダ機能を実行するプロセスもあります。 Windows 画面の表示やマウスやキーボードによる操作のしやすさといった内部処理 これを「unix」に似ている Linux の一部と考えてください。


※ サービスが正常に動作しており、正しいポート番号にアクセスしているにもかかわらず、サーバにアクセスできない場合は、ファイアウォールを確認してください。



注記: これは Linux コマンドの特性に関係します。パイプ記号 | を使用すると、複数のコマンドを連続して実行できます。したがって、netstat -anp コマンドの後にパイプ記号を追加し、検索コマンド grep と検索対象を入力すると、実行中の関連するサーバーまたはプロセスのみが出力されます。


プロセスの処理について説明したので、関連するいくつかのコマンドを紹介しましょう: 'ps '-ef 'e' オプションではすべてのプロセス情報が表示され、'f' オプションではさらに詳細な情報が表示されます。


ここではこんな感じです。 PIDこれを知っていれば、プロセスを終了するためのコマンドを使用できます。 'kill -9 プロセス ID'これを入力すると、プロセスを終了でき、'9' オプションではシャットダウンを強制します。


※接続情報は、'w'コマンドを使用しても確認できます。



III. ネットワークサービス

  1. NAT(Network Address Translation)

以前にネットワークを初めて公開したときは、内部用でした IPそして外側 IPそのことについて話しました。 内部 IPルータですを通じて 接続されたデバイス間の共有 IP それが住所です。 外部 IPNaverです。 Googleなどの外部サービスを利用するには、どのような条件が必要ですか IP それが住所だった。中には IP 外部アドレス IP 住所で検索 マッピング (Mapping)これを実現する方法がありますが、それは NATです。 NAT一つの内部 IP アドレスと外部接続 IP アドレスを一対一でマッピングします Static NATそして複数の内部 IP アドレスと複数の外部 IP アドレスの動的マッピング Dynamic NATあります。 Static NAT変更するアドレスが既に指定されているため、「この内部 IPこれは外部のIPであることがわかりますので、外部から内部への通信が可能です。サービスを提供する観点から見ると、外部から外部への通信も可能です。 IP この方法は、アドレスにアクセスする際にサーバーが接続され、サービスが提供される必要があるために使用されます。 Dynamic NAT外部です IP Pool一つ作り、必要ないものを使わないようにしましょう。 IPそれを動的にマッピングします。外部 IP内部の数 IP 数値が 1 より小さい場合、一対一のマッピングは不可能なので、このメソッドが使用されます。 IP 内側の番号 IP 数よりも少ないので、すでに外側になっています IP使用中である場合、外部から別のプライベート(内部)ネットワークが入ってきています。 IPマッピングできません。



  1. DHCP(Dynamic Host Configuration Protocol)

DHCP サーバ前述にも説明したように、特定の (複数の) デバイスは同じネットワーク帯域に属している必要があります。 IP アドレスを要求し割り当てる機能を果たします。たとえば、ノートパソコンを使ってカフェに接続することができます。 WIFI接続すると、接続プロセス中に DHCP サーバーがあるかどうか 放送彼は尋ねる。受け取った DHCP サーバには独自の IP 住所を教えてください、私はそれを割り当てることができます。 IP アドレスを提供します。ブロードキャストなので、同じネットワークセグメント上のすべてのデバイスがメッセージを受信できます。 IP 住所が分かると、それを割り当ててもらうように申し出ます。 DHCP サーバーはリソースを割り当てる間に ネットワーク情報これは送信されます。このプロセスを説明するために、次の図にプロセスを示します。




レビュー

ほぼ半日かけてネットワーク、ネットワークの種類、OSIモデルの7層、データリンク、ネットワーク、そしてトランスポート層のプロトコルについて説明しました。まだまだ学ぶことがたくさんあり、ネットワークは広大な分野だと思います。😔少しがっかりですが、短い時間で完全に理解したり暗記したりすることはできないことがたくさんありますので、これだけで満足し、勉強を続けてギャップを埋めていきます。🙂