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

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

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

それでは、ネットワーク層のICMPプロトコルから説明を始めます。


以下、VMwareでホスト専用、NAT、ブリッジネットワークを変更する方法について解説します。(さらに、テトリスについても触れます??)


Ⅰ. 概要

ネットワーク層の ICMP(インターネット制御メッセージプロトコル)、IGMP(インターネットグループ管理プロトコル)これらのプロトコルが存在します。ICMPは、パケットの送受信時に発生するエラーメッセージを扱うプロトコルであり、IGMPはマルチキャストに関わるプロトコルです。 伝送層は、大きく TCP(トランスポート層制御プロトコル)UDP (ユーザー・データグラム・プロトコル)TCPは、3ウェイハンドシェイクに基づいた信頼性の高いコネクテッドプロトコルであり、UDPは高速な通信が特徴のコネクテッドではないプロトコルです。 ネットワークサービス(羅) NAT(ネットワークアドレス変換)しかし、これには内部IPアドレスと外部IPアドレスの定義が含まれています。 次に DHCP (動的ホスト構成プロトコル)以前の投稿でも説明したように、このシステムはIPアドレスの割り当て方法を定義しています。



Ⅱ. プロトコル(ネットワーク、伝送層を中心に)

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

前回の投稿に続く、ネットワーク層について ICMP (インターネット制御メッセージプロトコル) プロトコルについて説明すると、ホストサーバーとゲートウェイ(ルーター)の間でメッセージを制御し、エラーを通知するものです。ICMPを使用する代表的なコマンドがあります。

ping 10.10.10.2

上記 ping 次のコマンド以降に、どのアドレスに接続されるのかを確認したい。(IPアドレス、ドメイン名など、いずれも対応可能)「を入力すると、下図のように正常に接続されている場合に、そのようなメッセージが表示されます。もし正常に接続できない場合は、エラーメッセージが表示されます。「ping」は、一時的なパケットを送信し、サーバーの応答状況を確認するためのコマンドです。


IPアドレスこれは、パケットが確実に送信されるという保証がない非同期プロトコルであるため、ルーターやノード(ホスト)などでエラーが発生し、宛先に到達できない場合に、送信側がその状態を知らせる必要がある。 ICMPプロトコルで受信した複数のルーターの状態と、宛先ノードの状態を分析する。 ICMPプロトコルは、IPプロトコルの上に存在する上位層(トランスポート層)のTCP、UDPプロトコルとは独立していますが、これもIPプロトコルの上に動作し、以前の投稿で説明したIPプロトコルと同様です。 TTL(有効期限)これに関連する部分として、ICMPパケットの構造で注意すべき点があります。 チェックサムこれは、パケット内のエラーを検出する役割です。1の補算を用いて、Carryビットの演算方法を考慮して最終的なチェックサムを計算します。


※ チェックサムの計算方法と、Carryビットの計算方法については、まだ理解できていないため、別の投稿を参照してください。



Linuxおよびネットワークに関する講義の資料を参照してください。

ICMPは、主にエラー報告と診断のためのメッセージで構成されています。 ICMP エコーリクエスト このメッセージは、送信側が送信したパケットが宛先ノードまたはルーターに到達したかどうかを確認するために使用されます。送信側のノード(リクエストを送信したホスト)は、宛先ノードに 「ICMP Echo Request メッセージ」そして、宛先ノードから 「ICMP Echo Reply メッセージ」応答が返信されると、パケットが正常に送信されたと認識されます。 ICMP 宛先到達不可 このメッセージは、ルーターが特定のノードからのパケットを宛先へ送信できない場合に、送信元のノードに送信されます。 「ICMP 宛先到達不可」というメッセージを送ります。 「この中に、目的地に到達できなかった理由が含まれています。」 宛先のノードのIPアドレスを特定できなかったルーターは、このメッセージを送信元のルーターに返送し、送信元のノードは、このメッセージを解釈して、パケットが宛先に到達していないことを認識する。


反響これは、UNIX系のオペレーティングシステムで、ターミナルに文字列を出力するコマンドです。Linux(Ubuntu)もUNIX系のシステムであるため、このコマンドは存在し、単に文字列を出力するだけでなく、シェルスクリプトで頻繁に使用されます。


ICMPリダイレクトメッセージルーターが、送信側のノードに適さない経路に設定されている場合に、宛先のノードへの最適な経路を再指定するメッセージを送信します。 ICMP 時間超過 このメッセージは、以前にIPプロトコルにおいて、パケットがネットワーク内を無限に循環しないように、TTL(Time To Live)が0になった場合に、TTLを活用するという仕組みについて説明しています。 「ICMP Time Exceeded メッセージ」パケットを元のノードに返し、パケットを破棄します。パケットは、最初のノードからルーターを通過するたびに1ずつ減っていき、最終的な宛先ノードに到達する前に0になると、パケットが正常に送信されなかったことを意味します。


Linuxおよびネットワークに関する講義の資料を参照してください。

ICMP ソースクエンチ このメッセージは、低速の広域回線などを使用する場合、WAN側で特定のルーターを使用することを意味します。 ボトルネック現象しかし、このような状況が発生する可能性があります。この状態を緩和するため、送信側のキューの値が「0」のままとなり、送信が不可能になる場合です。 「ICMP ソース クエンチ メッセージ」このメッセージを送信側のノードに送信し、送信側はこれを解釈して、回線が混雑している場合に送信パケットの数を調整する。



Linuxおよびネットワークに関する講義の資料を参照してください。

低速広域回線イラン?これは、主に音声データを送受信するために使用される、一定の規模を持つ通信ネットワークです。VoIP(Voice over IP)という技術が利用されており、詳細については調べてみることをお勧めします。


次に IGMP (インターネットグループ管理プロトコル)プロトコルが存在します。 マルチキャストグループマルチキャストについて話す前に、まずユニキャストとブロードキャストについて理解しておく必要があります。 ユニキャストこれは、あるホストから別のホストへ、個別の通信を行うものです。通常のIPデータ通信はすべてユニキャスト方式です。例えば、私たちがネ이버やGoogleにアクセスする際も、ユニキャスト方式で通信が行われています。 放送これは、ホストからIPネットワーク上のすべてのホストにデータを送信します。以前の投稿でIPプロトコルのクラスの概念について説明したように、各クラスに対応する「例えば、ルーターに接続されているすべてのデバイス」に対してデータが送信されます。一般的なブロードキャストは '255.255.255.255'そして、特定のネットワークにブロードキャストする機能を 直接放送とのことですが、「211.32.34.0」のネットワーク範囲にデータを送信するには、宛先アドレスを「211.32.34.255」に設定すればよい。つまり、特定のIPアドレスに送信するのではなく、広範囲のデータ送信を目的としている。主に ARP(アドレス解決プロトコル)は、MACアドレスを特定するために使用され、その後でDHCP(動的ホスト構成プロトコル)が、動的にIPアドレスを割り当てる際に使用されます。 マルチキャストこれは、ユニキャストとブロードキャストの中間的な形態で、特定のホストをまとめて送信する仕組みです。 この特定のホストに関連するすべての要素これはマルチキャストグループであり、このグループに所属するすべてのホストがデータを受信できるため、効率的です。


2. 伝送層プロトコル

この層で最も重要なプロトコルは TCP(トランスポート層制御プロトコル) UDP (ユーザー・データグラム・プロトコル)まず、これらのプロトコルについて説明する前に、以前の投稿で例として挙げた「田舎に住む祖父母に手紙を書く」という状況を考えてみましょう。私は、田舎に住む祖父母に手紙を書くために、手紙を作成します。この手紙は、最初は小さな紙にペンで書かれたものでしたが、封筒に入れて郵便ポストに入れることになります。この時、手紙は、OSIの7層において、各層のプロトコルの役割を果たす形で、安全に手紙が届くための情報が徐々に加わっていくことになります。そして、郵便ポストは、手紙が届く最初の段階であり、パケットが最初の物理層のルーターから出発するのと同様に、郵便ポストをルーターと考えることができます。この時、郵便局はゲートウェイ(ルーター)として機能し、手紙は各ゲートウェイを通過し、最終的な宛先に届けられます。郵便局では、手紙が通常の郵便で送られるか、迅速な配達のために登録郵便で送られるかを決定し、切手を貼ることになります。この切手が、TCPとUDPに対応することになります。


さらに、TCPについて説明します。TCPは、パケットを受け取った相手が誰であるかを正確に認識し、それを送信者に確認する仕組みです。(3人握手)これは、通信手段として利用されることを意味します。そのため、 コネクション指向型 これを「プロトコル」と呼び、データの流れを管理し、データの正確性を検証し、通信を行う仕組みです。 利点としては、高い信頼性、データ制御フロー、データチェックサム、タイムアウト時の再送などが挙げられますが、欠点としては、速度が遅くなる可能性がある点が挙げられます。 一方、UDPは、一度送信した後、受信確認のための応答を受け取るプロセスを経ない。(質問に答えることは可能ですが、確実に適切な回答が得られるとは限りません。)送信するだけで終わってしまう点において 非接続指向型 これはプロトコルです。送信システムと受信システム間で双方向の通信が行われないため、データが一部失われても再送を要求しません。そもそも接続型ではないため、失われたデータの情報を把握することができません。代わりに、 利点は非常に高速で、ネットワークの負荷を軽減できる点ですが、データの損失や信頼性の問題が欠点となる可能性があります。 高速であるため、リアルタイムな作業に適している場合(例えば、ビデオストリーミングやゲーム)には、TCPとUDPはそれぞれ用途に応じて利用できます。どちらの方式が優れているとは一概には言えません。


※ どちらの送信方法を選択するか ヘッダー動作方法を定義する必要があります。


TCP の重要な概念の一つである 「3ウェイハンドシェイク」クライアントとサーバーが通信する際、クライアントは、接続しても問題ないか、サーバーに確認する必要があります。 同期これを受信したサーバーは、SYNとともに ACK(応答)クライアントは、この手順に従って応答します。応答を受け取ったクライアントは、サーバーとの接続が確立されたことを示すACKをサーバーに再送します。この3つのステップを経て、クライアントとサーバーは継続的に通信を維持します。このプロセスを図で示すと、


Linuxおよびネットワークに関する講義の資料を参照してください。

そのような状況になります。接続を解除しようとすると 終了クライアントがサーバーにリクエストを送信します。サーバーはACK(確認応答)を返信し、その後FIN(切断)を送信します。受信したクライアントは、再びサーバーにACKを送信し、これにより接続が終了します。このプロセスも、図で示すと…


Linuxおよびネットワークに関する講義の資料を参照してください。

このような状況になります。ここでSYNは、接続要求に関する情報がTCPプロトコルの部分に含められます。SYNが1の場合、接続の確立と設定が行われるため、1ずつカウントアップされます。ACKは、通信相手のパケットの順番を示す値です。FINが1の場合、TCP接続を終了するという意味で、クライアントとサーバーが接続を終了する際に、この番号をパケットに含めます。


接続を終了する理由が疑問に思えるかもしれません。 同様に、大規模なサービスを提供する企業は、多数のサーバーを保有することで、スムーズなサービスを提供できます。しかし、すべての接続を常に維持することは、サーバーの資源が限られているため、現実的ではありません。 サーバーのリソースには限界があります。~を 接続が必要なため、必要な時に接続・切断を繰り返し、メモリを効率的に管理するために、切断の手順が重要です。



オペレーティングシステム内で動作するプロセスやサーバーの状態を確認するためのコマンド 「netstat」そこにはあります。上の方に。 '-anp'これはオプションです 「a」これは全体を指します。 「n」これはIPアドレスを意味します。 「p」これは、プロセスのことを指します。TCPにおける3ウェイハンドシェイクの説明で、クライアントとサーバー間の接続プロセスについて説明したものです。 聴くこれは覚えておくと役立ちます。「LISTEN」は、サーバーが起動し、外部からのリクエストに応答できる状態であり、「0.0.0.0:80」というアドレスからのリクエストに対して接続を許可することを意味します。 「0.0.0.0」これはすべてのIPアドレスを指し、その上に「127.0.0.1」は、通常、ローカルホスト(自身のIPアドレス)と呼ばれます。左側に表示されているのは、TCPとUDPといった一般的な用語です。これらの用語は、各サーバーがどのように接続するかを説明していますが、TCPとUDPは理解しやすいですが、数字の「6」が付いたものは、馴染みがないかもしれません。TCPとTCP6の違いは、アドレス体系がIPv4であるかIPv6であるかを区別することです。そのため、TCPは私たちがよく知っている「0.0.0.0」のIPアドレスですが、TCP6は 「:::」~となっている。


「0.0.0.0」がすべてのIPアドレスを表すのと同じように、「::」はIPv6においてすべてのIPアドレスを表します。そして、「LISTEN」の列の下に 設立「接続が成功し、接続が確立された」という意味です。さらに、「0.0.0.0:80」における「:」の後の数字「80」は ポート番号これは、現在動作しているオペレーティングシステムで開いている複数のサーバーのうち、どのサーバーにも重複がないことを示します。つまり、1つのサービスには1つのポート番号のみが割り当てられます。一般的に、ウェブサイトのすべてのサービスは、デフォルトのポート番号を80番に設定しており、各プロトコルやサーバーごとにデフォルトのポート番号が設定されている場合もあります。これらの情報を把握しておくと役立ちます。プロトコルポート番号は、0番から40番の範囲で定義されています。クライアント側でもポート番号を持つことがありますが、ブラウザが接続時に自動的に(重複しないように)割り当てます。最も下にあるIPアドレスが表示されない場合は、オペレーティングシステムの内部で動作しているプロセスを意味します。左側に「unix」が表示される場合は、この動作方式が内部プロセスを意味すると考えられます。Linuxでは、「unix」として表示されるプロセスは非常に多く、Windowsでも起動時に内部で動作するプロセスは多数存在します。開始プログラムを知っていれば、さらに理解が深まるでしょう。共有フォルダの機能を提供したり、Windowsの画面を表示したり、マウスやキーボードによる操作を容易にするなど、Linuxで「unix」として表示される部分は、内部プロセスによって実現されていると考えられます。


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



※ これは、Linuxコマンドの特性に関連しています。 「|」 このようなパイプ記号を使用することで、コマンドの連続実行が可能になります。そのため、`netstat -anp` の後にパイプ記号 (`|`) を追加し、検索コマンドである `grep` と検索語を入力すると、現在実行中のサーバーや動作しているプロセスの中から、指定したものを抽出することができます。


プロセスに関する情報が出ているため、関連するコマンドについてもう少し詳しく説明します。 `ps -ef`これらのオプションを使用すると、すべてのプロセスに関する情報(オプション 'e')、またはより詳細な情報(オプション 'f')を確認できます。


ここでPIDを知ることができれば、プロセスを停止させるコマンドを使用できます。 「kill -9 プロセスID」このオプションを入力すると、そのプロセスを強制終了できます。ここで「9」のオプションは、強制終了を実行します。


「w」 コマンドを使用して、接続情報も確認できます!



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

  1. NAT(ネットワークアドレス変換)

以前、ネットワークを初めて設定した際に、内部IPアドレスと外部IPアドレスについて説明しました。 内部IPアドレスこれは、共有ネットワークを通じて接続された同じデバイス間で共有されるIPアドレスです。 外部IPアドレスこれは、Yahoo! や Google などの外部サービスを利用するために必要なIPアドレスでした。この内部のIPアドレスを外部のIPアドレスに マッピング提供される方法があり、すぐに NATNAT(Network Address Translation)は、内部のIPアドレスと外部のIPアドレスを1対1で対応付ける仕組みです。 静的NATまた、複数の内部IPアドレスと複数の外部IPアドレスを動的にマッピングする ダイナミックNAT静的NATは、変更するIPアドレスがすでに指定されているため、「この内部IPは、この外部IPです」と明確に区別できるため、外部からの内部への通信も可能です。そのため、サービスを提供する側は、外部からの外部IPアドレスへのアクセス時に、サーバーとの接続を通じてサービスを提供する必要があるため、この方法を使用します。一方、動的NATは、外部IPアドレスのプールを作成し、未使用のIPアドレスを動的に割り当てる方法です。外部IPアドレスの数が内部IPアドレスよりも少ない場合、1対1の割り当てができないため、この方法を使用します。また、外部IPアドレスの数が内部IPアドレスよりも少ないため、すでに外部IPアドレスが使用中の場合は、外部からの別の内部IPアドレスとの割り当てはできません。



2. DHCP(動的ホスト構成プロトコル)

DHCP サーバーこれは以前にも説明した内容ですが、特定のデバイスが同じネットワーク帯域に所属するために、IPアドレスを要求し、割り当てる役割を担っています。例えば、ノートパソコンでカフェのWi-Fiに接続する場合、その接続プロセス中にDHCPサーバーが存在するかどうかを確認する必要があります。 放送「どのようなIPアドレスを希望しますか?」と尋ねます。DHCPサーバーに問い合わせると、自身のIPアドレスと、割り当て可能なIPアドレスを伝えます。ブロードキャスト方式で処理されるため、同じネットワークに接続されているすべてのデバイスがこのメッセージを受信できます。割り当て可能なIPアドレスを知った場合、割り当てを依頼し、DHCPサーバーは割り当てを行い、関連する情報を伝えます。 ネットワークに関する情報このプロセスを図で表現すると、以下のようになります。




おまけ

ほぼ半日かけて、ネットワークの種類、OSI参照モデルの7層、データリンク層、トランスポート層のプロトコルについて学びました。まだ十分に理解できていない部分が非常に多く、ネットワークという分野の広さを改めて認識しました。😔 残念ながら、限られた時間で全てを理解し、記憶することは難しいですが、まずはこの程度で満足し、その後、さらに学習を進めて知識を深めていきたいと思います。