1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ネットワーク技術の基礎 -AWS VPCへ挑む前の下準備Part1-

Posted at

はじめに

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

3.2 TCPコネクション:TCP通信の信頼性を支える通信路

TCPコネクションは、TCP通信における信頼性を支える通信路です。通信を始める前に、送信側と受信側でコネクションを確立し、通信が終われば切断します。

  • コネクション確立 (SYN/ACKハンドシェイク):

    1. 送信側 → 受信側へ SYNパケット送信: 「通信したい!」と開始の合図を送ります。
    2. 受信側 → 送信側へ SYN-ACKパケット返信: 「開始OK!準備OK!」と返事をします。
    3. 送信側 → 受信側へ ACKパケット返信: 「OK返事もらった!通信開始しよう!」と最終的な返事をします。
      この3段階のやり取りで、二者間に通信路(TCPコネクション)が確立します。
  • コネクション切断 (FINパケット):
    通信が終了したら、コネクションを解放します。二者間で FINパケットをやり取りすることで、お互いに「もう通信終わりだね」と確認し合い、コネクションを終了します。

3.3 TCP通信:シーケンス番号が順序を保証

シーケンス番号は、TCP通信においてデータ伝送の順番を保証するための背番号のようなものです。

  • シーケンス番号の役割:
    • 順序保証: 送信パケットに順番に番号を振ることで、受信側は番号順にパケットを並び替え、正しい順番でデータを受け取れます。
    • 再送制御: パケットが紛失した場合、受信側は「〇〇番のパケットが届いてないよ!」と送信側に知らせることができます。送信側は、紛失したパケットを再送することで、データ紛失を防ぎます。

4. まとめ

今回の記事では、ネットワーク技術の基礎を整理しました。

ポイントをまとめると…

  1. 層モデルを理解する: OSI参照モデル、TCP/IP階層モデルで、ネットワーク全体の構造を把握する
  2. プロトコルの目的を理解する: IP、TCP、UDPなど、主要プロトコルの原理や用途を覚えておく
  3. 応用例を結びつける:ウェブ閲覧、メール、リモートログインなど、具体的な利用シーンと対応するプロトコルをチェックしておく
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?