はじめに
AWSのVPCを学んでいると「そもそもネットワークの知識がないと無理ゲーじゃない?」「2進数と10進数の違いって?」「IPアドレスとサブネットマスクって?」といった非常に基礎的なところから積み上げないと、ただの暗記になってしまうと思ったため、2回に分けて整理します。
今回の第一弾では「ネットワーク技術の基礎」を、次回の第二弾では「IPアドレスとサブネットマスクとは」を扱います。
1. ネットワーク技術とは?
ネットワーク技術を一言で表すなら、「コンピューター同士が情報をやり取りするための仕組み」 です。
例えば、あなたが友達に手紙を出すとしましょう。
手紙を書く人(あなた)、手紙を受け取る人(友達)、手紙を運ぶ郵便屋さん、手紙を入れる封筒、手紙の宛先…色々な要素が必要になりますよね。
ネットワークも同じです。コンピューター同士が情報をやり取りするためには、様々なルールや道具が必要になります。この「ルール」や「道具」が、ネットワーク技術です。
ネットワーク技術は、インターネットだけでなく、会社の中のネットワークや、家庭内のWi-Fiなど、様々な場所で使われています。
そして、私たちが普段何気なく使っている、
- メールを送受信する
- ウェブサイトを閲覧する
- YouTubeで動画を見る
- LINEでメッセージを送る
- オンラインゲームで遊ぶ
こういった便利なサービスは、全てネットワーク技術の上に成り立っています。
2. ネットワークの層モデル
ネットワークの世界は、複雑に見えても実は整理されています。
それが層モデルという考え方です。
層モデルは、ネットワークの機能をいくつかの階層に分け、それぞれの階層に役割を与えることで、全体をシンプルに理解できるようにしたものです。
例えるなら、会社組織のようなものです。
社長、部長、課長、社員…と役割が分かれているからこそ、会社全体がスムーズに動きますよね。
ネットワークも同じように、層ごとに役割分担することで、複雑な通信を効率的に行っているのです。
層モデルには、代表的なものとしてOSI参照モデルとTCP/IP階層モデルの2つがあります。
2.1 OSI参照モデル:7つの階層
OSI参照モデルは、ネットワークの設計図のようなものです。
通信機能を7つの階層に分け、各階層の役割を定義しています。
階層 | 名称 | 役割 | 例 |
---|---|---|---|
第1層 | 物理層 | ケーブルの種類、コネクタの形状、電気信号の伝送方法など、物理的なデータ伝送を規定 | LANケーブル、光ファイバー、無線LAN (Wi-Fi) |
第2層 | データリンク層 | 信頼性の高いデータ伝送を実現。MACアドレスによる識別やエラー検出・訂正を行う | MACアドレス (Media Access Control address)、イーサネット |
第3層 | ネットワーク層 | 異なるネットワーク間でのデータ転送(ルーティング)を行う | IP (Internet Protocol)、ルーティング |
第4層 | トランスポート層 | アプリケーション間の通信において、信頼性や速度など、データ伝送の品質を保証 | TCP (Transmission Control Protocol)、UDP (User Datagram Protocol) |
第5層 | セッション層 | アプリケーション間の通信セッションの開始・維持・終了を管理 | セッション管理、認証 |
第6層 | プレゼンテーション層 | データの形式や符号化を変換。データの暗号化や圧縮も行う | データ暗号化、データ圧縮、文字コード変換 |
第7層 | アプリケーション層 | ユーザーが利用するアプリケーションにネットワークサービスを提供 | HTTP (Hypertext Transfer Protocol)、SMTP (Simple Mail Transfer Protocol)、DNS (Domain Name System) |
OSI参照モデルは、ネットワークの機能を階層的に理解するための概念的なフレームワークとして非常に有用です。
2.2 TCP/IPモデル:インターネットで活躍する4つの階層
TCP/IPモデルは、インターネット事実上の標準となっている4つの階層からなるモデルです。OSI参照モデルをより実用的にシンプル化したモデルと言えます。
階層 | 名称 | 役割 | 例 |
---|---|---|---|
第1層 | ネットワークインターフェース層 | OSI参照モデルの物理層とデータリンク層に相当。物理メディアやMACアドレスを用いた通信を担当 | イーサネット、無線LAN (Wi-Fi)、LANケーブル |
第2層 | インターネット層 | OSI参照モデルのネットワーク層に相当。IPアドレスを用いたアドレス指定やルーティングを担当 | IP (Internet Protocol)、ICMP (Internet Control Message Protocol)、ARP (Address Resolution Protocol) |
第3層 | トランスポート層 | OSI参照モデルと同じくトランスポート層。信頼性重視のTCPや高速性重視のUDPを提供 | TCP (Transmission Control Protocol)、UDP (User Datagram Protocol) |
第4層 | アプリケーション層 | OSI参照モデルのセッション層、プレゼンテーション層、アプリケーション層をまとめた層 | HTTP (Hypertext Transfer Protocol)、SMTP (Simple Mail Transfer Protocol)、DNS (Domain Name System)、FTP (File Transfer Protocol) |
インターネット層:住所で宛先を特定する層
- インターネット層の主な役割は、データを目的地まで届ける ことです。
- インターネットの世界では、全ての機器に IPアドレス という住所のようなものが割り振られています。
- インターネット層では、このIPアドレスを使って、送信元から宛先までデータを届けます。
- IP (Internet Protocol) というプロトコル(通信規約)が中心的な役割を果たしており、データを パケット という小さな単位に分割して送受信します。
- また、ルーティング という、どの道を通ってデータを送るかを決める仕組みも、この層の重要な役割です。
- 例えるなら、郵便番号のようなものです。郵便番号によって、手紙がどの地域に送られるか特定できますよね。
関連するプロトコルとしては、以下があります。
- IP (Internet Protocol):データ配送の基本
- ICMP (Internet Control Message Protocol):通信状況の確認やエラー通知
- ARP (Address Resolution Protocol):IPアドレスから物理アドレス(MACアドレス)を調べる
- DHCP (Dynamic Host Configuration Protocol):IPアドレスを自動で割り当てる
トランスポート層:確実or高速!データ配送方法を選ぶ層
- トランスポート層は、アプリケーション同士の通信をサポートする層です。
- ここでは、主にTCP (Transmission Control Protocol) とUDP (User Datagram Protocol) という2つのプロトコルが使われます。
TCP は、信頼性重視 のプロトコルです。
- 接続型:通信を始める前に、相手との間で「これから通信しますよー」という合図を送受信します(SYN/ACKハンドシェイク)。
-
確実なデータ伝送:データが紛失したり、順番が入れ替わったりしないように、制御や再送の仕組みがあります。
例えるなら、宅配便の「書留」のようなものです。正確に、確実に荷物を届けてくれますよね。
UDP は、高速性重視 のプロトコルです。
- 非接続型:合図を送受信する手順を省き、すぐにデータを送り始めます。
- 高速データ伝送:制御手順を最小限にしているため、高速にデータを送れます。
-
非信頼性:データの到着保証はしません。「送ったけど、届いたかな?」というデータ伝送方法です。
例えるなら、普通郵便のようなものです。早く送れるけど、届く保証はありません。
どちらのプロトコルを使うかは、アプリケーションによって使い分けられます。
- TCP向きのアプリケーション:ウェブ閲覧、メール送受信、ファイル転送など(確実性が重要なもの)
- UDP向きのアプリケーション:動画配信、オンラインゲーム、音声通話など(多少のデータ紛失は許容できるが、速度が重要なもの)
アプリケーション層:アプリが利用するプロトコルの層
アプリケーション層は、ユーザーが直接利用するアプリケーションに近い、一番上位の層です。
代表的なものは以下があります。
用途 | 利用プロトコル | 説明 |
---|---|---|
Webアクセス | HTTP/HTTPS | ウェブページの閲覧に使うプロトコル。HTTPS は暗号化対応版。 |
電子メール | SMTP, POP, IMAP | メール送信、受信、管理に使う。 |
リモートログイン | TELNET, SSH | 他のコンピューターを遠隔操作。SSH は暗号化されるためセキュア。 |
ファイル転送 | FTP, rsync | ファイルのアップロード、ダウンロード、同期に使う。 |
ファイル共有 | NFS, SMB | ネットワーク経由でファイルを共有する。 |
VoIP通話 | SIP, RTP | インターネット電話や音声通話に使う。 |
システム運用管理 | DNS, DHCP, NTP, SNMP | ドメイン名変換、IPアドレス自動割当、時刻同期、機器監視などに使う。 |
Xプロトコル | X11 | グラフィカルなユーザーインターフェース(GUI) 提供に使う。 |
3. 各プロトコルの補足
3.1 ポート番号:通信の窓口
ポート番号は、コンピューター上で動作するアプリケーションを識別するための番号です。一台のコンピューターで複数のネットワークサービスを同時に提供するために、ポート番号が使われます。例えるなら、アパートの部屋番号のようなものです。IPアドレスが住所、ポート番号が部屋番号に相当し、ポート番号によって、どのアプリケーション宛のデータかを特定できます。
-
代表的なポート番号の例
-
HTTP (Web閲覧):
80
番 -
HTTPS (セキュアWeb閲覧):
443
番 -
SSH (リモートログイン):
22
番
-
HTTP (Web閲覧):
3.2 TCPコネクション:TCP通信の信頼性を支える通信路
TCPコネクションは、TCP通信における信頼性を支える通信路です。通信を始める前に、送信側と受信側でコネクションを確立し、通信が終われば切断します。
-
コネクション確立 (SYN/ACKハンドシェイク):
- 送信側 → 受信側へ SYNパケット送信: 「通信したい!」と開始の合図を送ります。
- 受信側 → 送信側へ SYN-ACKパケット返信: 「開始OK!準備OK!」と返事をします。
- 送信側 → 受信側へ ACKパケット返信: 「OK返事もらった!通信開始しよう!」と最終的な返事をします。
この3段階のやり取りで、二者間に通信路(TCPコネクション)が確立します。
-
コネクション切断 (FINパケット):
通信が終了したら、コネクションを解放します。二者間で FINパケットをやり取りすることで、お互いに「もう通信終わりだね」と確認し合い、コネクションを終了します。
3.3 TCP通信:シーケンス番号が順序を保証
シーケンス番号は、TCP通信においてデータ伝送の順番を保証するための背番号のようなものです。
-
シーケンス番号の役割:
- 順序保証: 送信パケットに順番に番号を振ることで、受信側は番号順にパケットを並び替え、正しい順番でデータを受け取れます。
- 再送制御: パケットが紛失した場合、受信側は「〇〇番のパケットが届いてないよ!」と送信側に知らせることができます。送信側は、紛失したパケットを再送することで、データ紛失を防ぎます。
4. まとめ
今回の記事では、ネットワーク技術の基礎を整理しました。
ポイントをまとめると…
- 層モデルを理解する: OSI参照モデル、TCP/IP階層モデルで、ネットワーク全体の構造を把握する
- プロトコルの目的を理解する: IP、TCP、UDPなど、主要プロトコルの原理や用途を覚えておく
- 応用例を結びつける:ウェブ閲覧、メール、リモートログインなど、具体的な利用シーンと対応するプロトコルをチェックしておく