今回の記事では、サーバーネットワークに関するもの、イーサネットから始め、MACアドレス、ポート番号、ルーティング、そしてARPについて詳しく解説します。また、TCPとUDPの違いとそれぞれの使い分けについても触れていきます。

ネットワークがどのように動作するのか?どうやってデバイス同士が通信するのか、そしてそれらがどう関連しているのか。

これらの疑問に答えるために、このブログをお読みいただければと思います。

1.サーバーネットワーク – イーサネットとMACアドレスの基本

1-1. サーバーネットワーク – イーサネット

イーサネットは、ネットワーク機器同士をつなげるためのプロトコルです。

具体的には、コンピュータ、プリンター、ルーター、スイッチなどのネットワーク機器がデータを送受信する際の「ルール」を定めています。

また、このイーサネットは、物理層とデータリンク層という基本的な層で使われます。

物理層では、具体的にどのようなケーブルやコネクタを使うか?信号はどのように送られるか?といった、物理的な側面が決められていています。

一般的には、RJ-45と呼ばれるコネクタとツイストペアケーブルが用いられます。

一方のデータリンク層では、データの送受信をどのように行うか?エラーはどう処理するかなど、データのやり取りに関するルールが定められています。

イーサネットは特にLANで広く採用されていています。LANは、一定の小さな範囲内で複数のデバイスを繋げるネットワークのこと。家庭やオフィス、学校などでよく見られます。

イーサネットのおかげで、これらの場所でスムーズなネットワーク通信が可能です。

イーサネットのイメージ

1-2. サーバーネットワーク – MACアドレス

MACアドレスは?
コンピューターやスマホ、ネットにつながる機器に割り当てらているアドレスです。

このアドレスは、製造時に機器に割り当てられているので、世界中で一つだけのアドレスとなります。この番号があるおかげで、インターネット上で他の機器と区別することができます。

このMACアドレスは、先ほどあげた「イーサネット」で通信するときに重要です。

このルールに従って、機器はMACアドレスを使います。そしてどの機器からどの機器へデータを送るかを決めます。

MACアドレスはインターネット上での「名札」のようなものです。イーサネットがこの名札を見て、データを正確に送ったり受け取ったりしています。

このようにして、インターネット上でスムーズな通信が行われています。

MACアドレスは世界でひとつだけのイラスト

2. サーバーネットワーク – ポート番号の必要性

2-1. ポート番号の役割

まずはコンピューターの世界における「ポート」を想像してみてください。このポートは、まるで都市のバスターミナルや空港のようなものです。さまざまなデータが出入りする場所であり、それぞれのデータには目的地があります。

ここで大事なのが「ポート番号」です。この番号がなければ、データは目的地にたどり着けません。

バスに乗るときと同じです。どのバス停で降りるかを知らないと目的地にたどり着けません。

ポート番号は、通信を行うアプリケーションやサービスが使う「仮想的な入口・出口」を識別する役割を果たします。

例えば、ウェブブラウジングでよく使われるHTTP。これは通常ポート番号80を使います。この番号はウェブサーバーが「これはウェブページをリクエストしている」と理解するための合図です。

また、メールサービスは通常、SMTPです。ポート番号25、POP3(Post Office Protocol 3)。ポート番号110を使います。これにより、メールサーバーは判断ができます。

ポート番号と㍶のイラスト

2-2. サーバーネットワーク – ポート番号の種類

サーバーネットワーク – ポート番号にはいくつかの異なる「種類」があります。主には「ウェルノウンポート」、「登録済みポート」、「動的・プライベートポート」の3つに分類されます。

  1. ウェルノウンポート(0-1023)
    よく知られたサービスやプロトコルに割り当てられています。例えば、HTTPはポート80、HTTPSはポート443を使用します。これらのポート番号は、インターネット全体で共通の目的で使われます。

  2. 登録済みポート(1024-49151)
    これらのポートは特定のアプリケーションやサービスによって予約されています。しかしウェルノウンポートほど広くは知られていません。企業や開発者が自分たちのアプリケーションで使用するために登録することが多いです。

  3. 動的・プライベートポート(49152-65535)
    これらのポートは一般的には予約されておらず、動的に割り当てられることが多いです。つまり、一時的な通信や内部的な用途で使われます。

ポート番号

範囲名称用途
0-1023ウェルノウンポートよく知られたサービスやプロトコルに使用されます。例:HTTP(80)、HTTPS(443)
1024-49151登録済みポート特定のアプリケーションやサービスが予約して使用します。企業や開発者が主に利用します。
49152-65535動的・プライベートポート一般に予約されておらず、動的に割り当てられます。一時的な通信や内部用途で使用されます。

ポート番号のこれらの「種類」は、通信が行われる際にどのようなサービスやアプリケーションが関与しているのかを理解する手がかりになります。

例えば、下の表、ポート80が開いているという情報があります。それは、そのコンピュータがウェブサービスを提供している可能性が高いと判断できます。

このように、ポート番号はただの数字ではありません。その背後には通信の「ルール」や「目的」が隠されているのです。それぞれの番号が持つ意味を理解することで、ネットワーク通信の仕組みもより深く理解できるでしょう。

プロトコル

プロトコルポート番号概要
FTP (データ)TCP/20サーバーとクライアント間でのファイル転送を担当。ログイン関連の処理もこのポートで行われる。
FTP (コントロール)TCP/21ファイル転送の制御と指示を行う。
SSHTCP/22セキュアなリモートアクセスを提供。
TELNETTCP/23セキュリティが低いが、リモートでのコマンド操作が可能。
SMTPTCP/25電子メールの送信に使用。
DNSUDP/53ドメイン名とIPアドレスのマッピングを提供。
DHCP (サーバー)UDP/67IPアドレスを動的に割り当てるサーバーの役割。
DHCP (クライアント)UDP/68IPアドレスを自動で受け取るデバイス側の役割。
HTTPTCP/80ウェブページのロードやデータの取得に使用。
POP3TCP/110メールサーバーからメールを取得する際に使用。
NTPUDP/123コンピュータの時計を正確に保つためのプロトコル。
IMAPTCP/143メールサーバーでメールを管理し、クライアントがアクセスできるようにする。
HTTPSTCP/443ウェブ通信を暗号化してセキュリティを高める。

3. サーバーネットワーク – ルーティングの仕組み

3-1. ルーターとルーティング

サーバーネットワーク – インターネットやTCP/IPネットワークでは、データは「パケット」という単位に分割して送受信されます。

この「パケット」という言葉は、英語で小包という意味です。大きなデータを小さな部分に分け、それぞれを別々に送るというのが基本です。

過去に、多くのパケットを送受信することで高額な通信料が発生する現象がありました。

インターネット自体は、多数のネットワークが相互に接続されて形成されていて、通信の際には、IPアドレスという固有の番号で相手を特定します。しかし、パケットが目的地に到達するまでには、通常、複数のネットワークを経由する必要があります。

これらのネットワークは「ルーター」と呼ばれる機器で相互接続されていますルーターは、受け取ったパケットの宛先アドレスを確認し、最適な次のネットワークへとパケットを送り出します。このプロセスを「ルーティング」と呼びます。

ルーターがこのように働くことで、パケットは確実に宛先のネットワークまで転送されます。

ルーティングの流れを書いた図
※おおまかなイメージ

3-2. サーバーネットワーク – ルーティングテーブルの働き

ルーターは、事前に設定された「ルーティングテーブル」を用いてIPパケットの送信先を管理します。このルーティングテーブルは、宛先ネットワークとその宛先に対する次の送信先である「ネクストホップ」のIPアドレスで構成されています。

ルーターはIPパケットを受け取ると、その宛先IPアドレスとルーティングテーブルの宛先ネットワークを照合します。もし一致する場合、そのパケットはネクストホップのIPアドレスに転送され、一致しない場合は、そのパケットは破棄されます。

ルーティングテーブルの作成には、主に「静的ルーティング」と「動的ルーティング」という二つの方法があります。静的ルーティングは手動でルーティングテーブルを作成する方法で、宛先ネットワークとネクストホップを一つひとつ設定します。この方法は、特に小規模なネットワーク環境でよく使用されています。

一方で、動的ルーティングは隣接するルーター間でルート情報を交換し、自動的にルーティングテーブルを作成します。このためのプロトコルを「ルーティングプロトコル」と呼びます。動的ルーティングはネットワーク環境の変化に柔軟に対応できるため、中規模から大規模なネットワークでよく使用されています。

専門用語集

  • ルーター
    – ネットワーク間でデータパケットを転送する装置。最適な経路を選ぶ役割も担っています。

  • ルーティングテーブル
    – ルーターがデータパケットの送信先を決定するために参照する情報表。宛先ネットワークとネクストホップのIPアドレスが記載されています。

  • 宛先ネットワーク
    – データパケットが送られる目的地のネットワーク。ルーティングテーブルに記載されています。

  • 宛先IPアドレス
    – データパケットが最終的に到達すべきコンピューターやネットワーク装置のIPアドレス。

  • ネクストホップ
    – データパケットが次に到達するべきルーターまたはネットワーク装置のIPアドレス。

  • 静的ルーティング
    – 手動でルーティングテーブルを設定する方法。主に小規模なネットワークで使用されます。

  • 動的ルーティング
    – ルーター間でルート情報を自動的に交換してルーティングテーブルを生成する方法。中規模から大規模なネットワークで使用されます。

  • ルーティングプロトコル
    – ルーター間でルート情報を交換するための通信規約。

4. サーバーネットワーク – ARP(アドレス解決プロトコル)

4-1. サーバーネットワーク – ARPについて

サーバーネットワーク – ARP(アドレス解決プロトコル)は、イーサネットネットワーク内でIPアドレスとMACアドレスを結びつけるためのプロトコルです。イーサネットではMACアドレスがコンピューターの識別子として用いられますが、IP通信を行うためには、このMACアドレスとIPアドレスの対応関係を明確にする必要があります。

ARPはこの対応関係を確立するために、ARPリクエストという問い合わせメッセージをネットワーク内の全コンピューターにブロードキャストします。この問い合わせ、つまり、ブロードキャストを受信したPCに対して、指定されたIPアドレスを持つコンピューターがARPリプライという形でMACアドレスを返信します。

ARPリクエストとARPリプライを説明した図
※ARPリクエストイメージ

4-2. サーバーネットワーク – ARPの流れを時系列でみてみる

コンピュータがネットワークからIPパケットを受け取ると、まずそのパケットの宛先IPアドレスを確認します。もし宛先が同じネットワーク内のコンピュータであれば、そのIPアドレスに対応するMACアドレスを「ARPテーブル」と呼ばれるメモリ上のテーブルで問い合わせます。

この問い合わせはARPリクエストとARPリプライを用いて行われます。その後、得られた情報を基にイーサネットフレームを生成します。

一方で、もし宛先が異なるネットワークのコンピュータであれば、デフォルトゲートウェイのMACアドレスをARPで問い合わせ、同様の処理を行います。

デフォルトゲートウェイとは、外部のネットワークにアクセスする際に使用する出口のIPアドレスです。多くの場合、ファイアウォールやルーターのIPアドレスがデフォルトゲートウェイとして設定されています。

未知のネットワークの宛先IPアドレスを持つIPパケットが来た場合、コンピュータはデフォルトゲートウェイのMACアドレスに送信を試みます。

宛先が同じ場合

STEP1
IPパケット受信

コンピュータがネットワークからIPパケットを受け取る。

STEP2
宛先IPアドレス確認

受け取ったIPパケットの宛先IPアドレスを確認する。

STEP3
ネットワーク判定

宛先IPアドレスが同じネットワーク内にあるか、異なるネットワークにあるかを判定する。

STEP4
ARP問い合わせ

もし宛先が同じネットワーク内にあれば、そのIPアドレスに対応するMACアドレスをARPで問い合わせる。

STEP5
フレーム作成

同一ネットワークの場は、ARPで得られたMACアドレスを用いて、イーサネットフレームを作成し送信する。

宛先が異なる場合

STEP4
デフォルトゲートウェイ確認

もし宛先が異なるネットワークにあれば、デフォルトゲートウェイ(通常はルーターまたはファイアウォール)のIPアドレスを確認する。

STEP5
ARP問い合わせ

デフォルトゲートウェイのMACアドレスをARPで問い合わせる。

STEP6
フレーム作成

ARPで得られたデフォルトゲートウェイのMACアドレスを用いて、イーサネットフレームを作成し送信する。

専門用語集

  • ルーター
    – ネットワーク間でデータパケットを転送する装置。最適な経路を選ぶ役割も担っています。

  • ルーティングテーブル
    – ルーターがデータパケットの送信先を決定するために参照する情報表。宛先ネットワークとネクストホップのIPアドレスが記載されています。

  • 宛先ネットワーク
    – データパケットが送られる目的地のネットワーク。ルーティングテーブルに記載されています。

  • 宛先IPアドレス
    – データパケットが最終的に到達すべきコンピューターやネットワーク装置のIPアドレス。

  • ネクストホップ
    – データパケットが次に到達するべきルーターまたはネットワーク装置のIPアドレス。

  • 静的ルーティング
    – 手動でルーティングテーブルを設定する方法。主に小規模なネットワークで使用されます。

  • 動的ルーティング
    – ルーター間でルート情報を自動的に交換してルーティングテーブルを生成する方法。中規模から大規模なネットワークで使用されます。

  • ルーティングプロトコル
    – ルーター間でルート情報を交換するための通信規約。

5. サーバーネットワーク – TCPとUDP

5-1. IPの不安定なところを補う

サーバーネットワーク – TCP/IPネットワークでは、データはパケットと呼ばれる単位に分割されて送信されます。しかし、送信されたパケットが必ずしも順番通り、またはエラーなく到達するわけではありません。この問題を解決するためにTCPが用いられます。

TCPは通信の確立から終了までの一連の手順をセッションとして管理し、エラーが発生した場合にはパケットの再送や順序の整理を行います。

一方で、UDPはTCPとは異なり、エラーの訂正やデータの順序整理を行わないシンプルなプロトコルです。これにより、UDPは高速なデータ転送が可能ですが、信頼性は犠牲になる場合があります。

インターネットは「ベストエフォート(最善を尽くすが保証はしない)」の原則に基づいて動作しています。この環境下で、TCPはデータの信頼性を確保する非常に重要な役割を果たしています。一方で、UDPは高速なデータ転送が求められる場面でよく用いられます。

このように、TCPとUDPはそれぞれ異なる特性と用途があり、状況に応じて選ばれることで、インターネット上の通信が多様なニーズに対応しています。

TCPの役割を簡単に説明した図

5-2. サーバーネットワーク – TCPとUDPの違いと使い分け

TCPとUDPは、IPの上位層にあるプロトコルで、データの送受信方法や特徴が異なります。

TCPは、データを送信する前に相手との接続を確立し、データの到達や順序を確認しながら送受信します。このため、TCPは信頼性が高く、データの欠損や重複がないことを保証します。しかし、接続の確立や確認に時間がかかるため、データ転送速度は遅くなります。

UDPは、相手との接続を確立せずにデータを送信します。このため、UDPは高速なデータ転送を可能にしますが、データの到達や順序を保証しません。また、データのサイズも制限されます。

TCPとUDPの違いと使い分けは以下のようになります。

TCP : 信頼性が重要な通信に適しています。例えば、ウェブサイトやメールなどの情報交換やファイル転送などにTCPが使用されます。

UDP : 速度が重要な通信に適しています。例えば、音声や動画などのストリーミングやオンラインゲームなどにUDPが使用されます。

UDPの役割を簡単に説明した図