開発者ドキュメント

ネットワーキングの用語、インターフェイス、およびプロトコルの概要

序章


サーバーを管理する人にとって、ネットワーキングの基本的な理解は重要です。 サービスをオンラインにしてスムーズに実行するために不可欠であるだけでなく、問題を診断するための洞察も提供します。

このドキュメントでは、いくつかの一般的なネットワーキングの概念の基本的な概要を説明します。 基本的な用語、一般的なプロトコル、およびネットワーキングのさまざまな層の責任と特性について説明します。

このガイドはオペレーティングシステムに依存しませんが、サーバーでネットワーキングを利用する機能やサービスを実装する場合に非常に役立ちます。

ネットワーキング用語集


ネットワーキングについて深く議論する前に、このガイド全体、およびネットワーキングに関する他のガイドやドキュメントに表示されるいくつかの一般的な用語を定義する必要があります。

これらの用語は、以下の適切なセクションで拡張されます。

あなたが出くわすかもしれない他の多くの用語があります、そしてこのリストは網羅的である余裕がありません。 他の用語については、必要に応じて説明します。 この時点で、今後のトピックについてより適切に議論できるようにする、いくつかの基本的な高レベルの概念を理解する必要があります。

ネットワークレイヤー


ネットワークは、トポロジの観点から水平方向に議論されることがよくありますが、ホスト間では、その実装はコンピュータまたはネットワーク全体で垂直方向に階層化されます。

これが意味するのは、通信がより簡単に機能するために、互いに積み重ねられた複数のテクノロジーとプロトコルがあるということです。 連続する上位レイヤーはそれぞれ、生データをもう少し抽象化し、アプリケーションとユーザーが簡単に使用できるようにします。

また、これらのタイプのトラフィックを処理するプロトコルとアプリケーションを開発するために時間とエネルギーを投資することなく、新しい方法で下位層を活用することもできます。

各レイヤリングスキームについて話すために使用する言語は、使用するモデルによって大幅に異なります。 レイヤーの説明に使用されるモデルに関係なく、データのパスは同じです。

データは1台のマシンから送信されるため、スタックの最上位から始まり、下向きにフィルタリングされます。 最も低いレベルでは、別のマシンへの実際の送信が行われます。 この時点で、データは他のコンピューターのレイヤーを経由して戻ってきます。

各レイヤーには、隣接するレイヤーから受信するデータの周囲に独自の「ラッパー」を追加する機能があります。これにより、データが渡されたときにデータをどのように処理するかを決定するのに役立ちます。

OSIモデル


歴史的に、ネットワーク通信のさまざまな層について話す1つの方法は、OSIモデルです。 OSIはOpenSystemsInterconnectの略です。

このモデルは、7つの別々のレイヤーを定義します。 このモデルのレイヤーは次のとおりです。

ご覧のとおり、ベアハードウェアへの近接性とそれらが提供する機能に基づいて説明できるさまざまなレイヤーがあります。

TCP/IPモデル


より一般的にインターネットプロトコルスイートとして知られているTCP/IPモデルは、より単純で広く採用されているもう1つの階層化モデルです。 これは4つの別個の層を定義し、その一部はOSIモデルと重複しています。

ご覧のとおり、TCP/IPモデルはもう少し抽象的で流動的です。 これにより、実装が容易になり、ネットワーク層を分類するための主要な方法になりました。

インターフェース


インターフェイスは、コンピュータのネットワーク通信ポイントです。 各インターフェイスは、物理または仮想のネットワークデバイスに関連付けられています。

通常、サーバーには、使用しているイーサネットまたはワイヤレスインターネットカードごとに1つの構成可能なネットワークインターフェイスがあります。

さらに、「ループバック」またはローカルホストインターフェイスと呼ばれる仮想ネットワークインターフェイスを定義します。 これは、単一のコンピューター上のアプリケーションとプロセスを他のアプリケーションとプロセスに接続するためのインターフェースとして使用されます。 これは、多くのツールで「lo」インターフェースとして参照されていることがわかります。

多くの場合、管理者は、インターネットへのトラフィックを処理するための1つのインターフェイスと、LANまたはプライベートネットワーク用の別のインターフェイスを構成します。

DigitalOceanでは、プライベートネットワークが有効になっているデータセンターでは、VPSに(ローカルインターフェイスに加えて)2つのネットワークインターフェイスがあります。 「eth0」インターフェースはインターネットからのトラフィックを処理するように構成され、「eth1」インターフェースはプライベートネットワークと通信するように動作します。

プロトコル


ネットワーキングは、多数の異なるプロトコルを相互にピギーバックすることによって機能します。 このようにして、1つのデータを、相互にカプセル化された複数のプロトコルを使用して送信できます。

私たちは、あなたが遭遇する可能性のあるいくつかのより一般的なプロトコルについて話し、違いを説明しようとするだけでなく、それらがプロセスのどの部分に関与しているかについてのコンテキストを提供します。

下位のネットワーク層に実装されたプロトコルから始めて、より高度な抽象化を備えたプロトコルに進みます。

媒体アクセス制御


媒体アクセス制御は、特定のデバイスを区別するために使用される通信プロトコルです。 各デバイスは、製造プロセス中に一意のメディアアクセス制御アドレス(MACアドレス)を取得し、インターネット上の他のすべてのデバイスと区別することになっています。

MACアドレスでハードウェアをアドレス指定すると、最上位のソフトウェアが操作中にその特定のデバイスの名前を変更する可能性がある場合でも、一意の値でデバイスを参照できます。

媒体アクセス制御は、定期的に対話する可能性が高いリンク層からの唯一のプロトコルの1つです。

IP


IPプロトコルは、インターネットの機能を可能にする基本的なプロトコルの1つです。 IPアドレスはネットワークごとに一意であり、マシンがネットワークを介して相互にアドレス指定できるようにします。 これは、IP/TCPモデルのインターネット層に実装されています。

ネットワークは相互にリンクできますが、ネットワークの境界を越える場合はトラフィックをルーティングする必要があります。 このプロトコルは、信頼性の低いネットワークと、同じ宛先への複数のパスが動的に変更される可能性があることを前提としています。

プロトコルにはさまざまな実装があります。 今日最も一般的な実装はIPv4ですが、使用可能なIPv4アドレスの不足とプロトコル機能の改善により、代替としてIPv6の人気が高まっています。

ICMP


ICMPは、インターネット制御メッセージプロトコルの略です。 これは、デバイス間でメッセージを送信して、可用性またはエラー状態を示すために使用されます。 これらのパケットは、pingやtracerouteなどのさまざまなネットワーク診断ツールで使用されます。

通常、ICMPパケットは、別の種類のパケットが何らかの問題に遭遇したときに送信されます。 基本的には、ネットワーク通信のフィードバックメカニズムとして使用されます。

TCP


TCPは、伝送制御プロトコルの略です。 これは、IP / TCPモデルのトランスポート層に実装され、信頼性の高い接続を確立するために使用されます。

TCPは、データをパケットにカプセル化するプロトコルの1つです。 次に、下位層で使用可能な方法を使用して、これらを接続のリモートエンドに転送します。 一方、エラーをチェックし、特定の部分の再送を要求し、情報を1つの論理部分に再構成して、アプリケーション層に送信することができます。

プロトコルは、スリーウェイハンドシェイクと呼ばれるシステムを使用してデータ転送の前に接続を構築します。 これは、通信の両端が要求を確認し、データの信頼性を確保する方法について合意するための方法です。

データが送信された後、同様の4方向ハンドシェイクを使用して接続が切断されます。

TCPは、WWW、FTP、SSH、電子メールなど、インターネットで最も一般的に使用されている多くの用途に最適なプロトコルです。 今日私たちが知っているインターネットは、TCPなしではここに存在しないと言っても過言ではありません。

UDP


UDPは、ユーザーデータグラムプロトコルの略です。 これはTCPの一般的なコンパニオンプロトコルであり、トランスポート層にも実装されています。

UDPとTCPの基本的な違いは、UDPが信頼性の低いデータ転送を提供することです。 接続のもう一方の端でデータが受信されたことは確認されません。 これは悪いことのように聞こえるかもしれませんが、多くの目的でそうです。 ただし、一部の機能にとっても非常に重要です。

データが受信され、データの再送信が強制されたという確認を待つ必要がないため、UDPはTCPよりもはるかに高速です。 リモートホストとの接続を確立するのではなく、単にそのホストへのデータを起動し、データが受け入れられるかどうかは関係ありません。

単純なトランザクションであるため、ネットワークリソースの照会などの単純な通信に役立ちます。 また、状態を維持しないため、1台のマシンから多くのリアルタイムクライアントにデータを送信するのに最適です。 これにより、VOIP、ゲーム、および遅延を許容できないその他のアプリケーションに最適です。

HTTP


HTTPは、ハイパーテキスト転送プロトコルの略です。 これは、Webでの通信の基礎を形成する、アプリケーション層で定義されたプロトコルです。

HTTPは、リモートシステムに何を要求しているかを伝えるいくつかの関数を定義します。 たとえば、GET、POST、およびDELETEはすべて、要求されたデータと異なる方法で対話します。

FTP


FTPはファイル転送プロトコルの略です。 また、アプリケーション層にあり、あるホストから別のホストに完全なファイルを転送する方法を提供します。

本質的に安全ではないため、パブリックのダウンロード専用リソースとして実装されていない限り、外部向けのネットワークにはお勧めしません。

DNS


DNSはドメインネームシステムの略です。 これは、インターネットリソースに人間にわかりやすい命名メカニズムを提供するために使用されるアプリケーション層プロトコルです。 これは、ドメイン名をIPアドレスに結び付け、ブラウザで名前を使用してサイトにアクセスできるようにするものです。

SSH


SSHはセキュアシェルの略です。 これは、アプリケーション層に実装された暗号化されたプロトコルであり、安全な方法でリモートサーバーと通信するために使用できます。 エンドツーエンドの暗号化とユビキタス性により、このプロトコルを中心に多くの追加テクノロジーが構築されています。

同様に重要な、まだ取り上げていないプロトコルは他にもたくさんあります。 ただし、これにより、インターネットとネットワーキングを可能にするいくつかの基本的なテクノロジーの概要がわかります。

結論


この時点で、いくつかの基本的なネットワーキング用語に精通し、さまざまなコンポーネントが相互に通信する方法を理解できる必要があります。 これは、他の記事やシステムのドキュメントを理解するのに役立ちます。

モバイルバージョンを終了