📌

ミニマムで理解するネットワーク #基礎知識

に公開

ネットワークの説明をするときによくする説明まとめ

なんの記事?

「ネットワーク」というキーワードは広義でどこから手を付けていいかわからないと悩んでいる方が多いと思います。
キーワードのカテゴリを整理し、最低限のキーワードをなんとなく理解することがゴールです。

やらないこと

  • WAN、ネットワーク機器、モバイルネットワークに関する内容
  • 具体的な仕様や実装に関する内容
  • ※やる内容は目次をご参考に🙃

基礎知識: IPアドレス、ポート、プロトコル、クライアントとサーバ

ネットワークの説明をする上で理解しなければならないキーワードたち。

IPアドレス

ネットワークにおけるPCの住所のこと。
192.168.0.2 のような形式で表記する。 (IPv4の場合)
※「プライベートIP」と「パブリックIP」に関しては後述。

あくまで「ネットワークにおける」PCの住所のため、ネットワークを切り替えると変わる。

  • 細かく記載しないが、MACアドレスは変更不可なのに対して、IPアドレスは動的に変更される

IPアドレスの構造

\textcolor{blue}{192.168.0}\textcolor{green}{.2}

  • 前半三桁(青文字)→ ネットワークIPアドレス
  • 後半一桁(緑文字)→ ホストIPアドレス (ネットワークにおけるPCの住所)

ip

ポート

PCにおける窓口番号のようなもの。
IPアドレスで表現できるのはPCの住所まで。
一般的にPCには複数のプログラムが動作しているので、IPアドレスだけだとどのプログラムに届けていいかが判別できない。
ポートは、番号(0~65353) でどのプログラムへの通信なのかを表現できる。

port

ポートの分類

番号ごとに目的とプロトコルの割り当てが決まっている。

区分名 ポート番号 管理方法
システムポート 0番~1023番 IANA SSH(Port22), HTTP(Port80), HTTPS(Port443)
登録ポート 1024番~49151番 IANA Microsoft SQL Server(Port1433), RDP(Port3389)
プライベートポート 49152番~65535番 なし(OSが動的に割り当て) クライアントが一時的に使用するポートなど

IANAはDNS, IPアドレスを管理する国際機関
https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml

プロトコル

通信規格のこと。

プロトコルがないと通信データの内容を解読できない。
国語の教科書を参考に、数学の問題は解けないのと同じ。

PGでいうところの通信の「型」。
継承関係はこんな感じ?

  • Ethernetが誤解を招きそう。。。(修正案ください)
  • ブロックチェーンはまた別の話
NetworkInterface (物理的な通信の基盤)
├─── Ethernet(有線LAN)
├─── Wi-Fi(無線LAN)
├─── Bluetooth
├─── ARP (IPv4におけるIPアドレスとMACアドレスの解決)
└─── IP (インターネット層)
     ├─── ICMP (Ping、Tracerouteなど)
     ├─── TCP (信頼性の高い通信)
     │    ├─── HTTP (Web通信: Port 80, 8080, Hypertext Transfer Protocol)
     │    │    └─── HTTPS (セキュアなWeb通信: Port 443, HTTP over TLS/SSL)
     │    ├─── SMTP (メール送信: Port 25, Simple Mail Transfer Protocol)
     │    ├─── POP3 (メール受信: メッセージをダウンロード)
     │    ├─── IMAP4 (メール受信: サーバー上で管理)
     │    ├─── FTP (ファイル転送: Port 21, File Transfer Protocol)
     │    │    └─── FTPS (FTP over TLS/SSL: セキュアなファイル転送)
     │    ├─── SSH (リモート操作: Port 22, Secure SHell)
     │    │    └─── SFTP (SSH FTP: SSHベースのファイル転送)
     │    └─── VPN (TCPを基盤とする仮想プライベートネットワーク)
     │         ├─── OpenVPN (TLS/SSLベース: TCP/UDP両対応のためどちらにも含める)
     │         └─── SSTP
     └─── UDP (信頼性のない高速通信)
          ├─── DNS (ドメイン名解決: Port 53, Domain Name System)
          └─── DHCP (IPアドレスの自動割り当て: Port 67, 68, Dynamic Host Config Protocol)
          ├─── SNMP (ネットワーク機器監視)
          ├─── VPN (UDPを基盤とする仮想プライベートネットワーク)
          │    ├─── OpenVPN
          │    ├─── L2TP/IPsec
          │    ├─── IKEv2/IPsec
          │    └─── WireGuard
          └─── その他 (ゲームなどのリアルタイム通信)

クライアントとサーバ

これまでの図解ではわかりやすくするために端末間が直接やり取りするような形式にしていたが、多くの場合、ネットワーク内で役割の異なる端末が存在する。

役割: サーバ

サービスや機能を一元的に管理し、クライアントにサービスや機能を提供する役割。
多くの場合、1つの端末に複数のサーバが同居している。

  • メールサーバ: クライアントPCにメール機能を提供するサーバ
  • プリンタサーバ: クライアントPCに印刷機能を提供するサーバ
  • Gitサーバ: クライアントPCにGit機能を提供するサーバ

役割: クライアント

サーバが提供するサービスや機能を利用する役割。

  • メールソフト
  • Gitクライアント
  • Webブラウザなど

LAN

https://zenn.dev/slopwelljp/articles/fce6fb22a9811d

Web

https://zenn.dev/slopwelljp/articles/3296cbbc44fd88

VPN

https://zenn.dev/slopwelljp/articles/45e61f6b4c24b2

ハードウェア (割愛)

  • ルータ
  • ハブ
  • ケーブル
  • NAS
  • コリジョン
  • MACアドレス

モバイルネットワーク (割愛)

  • テザリング
  • PHS
  • Bluetooth
  • SIM

ブロックチェーン (割愛)

  • Web3
  • 暗号通貨
  • NFT/DAO

Discussion