Skip to content

Instantly share code, notes, and snippets.

@LeeDDHH
Created August 9, 2021 23:29
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save LeeDDHH/485add53ba805ca7dbcbd4c98555f11b to your computer and use it in GitHub Desktop.
本当にやさしく学びたい人の! 絵解き ネットワーク超入門

本当にやさしく学びたい人の! 絵解き ネットワーク超入門

  • 昔は、ネットワークの仕組みをある程度知らなければ、ネットワークを使えなかった
  • ネットワークを使う側から、作る側になると感じる気持ちのハードルが高くなっている

1章 ネットワークって何だろう?

1 ネットワークってどんな技術?

ネットワークの技術

  • ネットワークを使える状態にするためのつなげる技術
    • データを送るための技術
    • 目的のサイトに正しくアクセスできる
    • データが途中で壊れない
    • 効率よく届く
    • など
  • ネットワークでやり取りしたデータを利用するための活用する技術
    • 送られたデータを見るための技術
    • 表示方法を工夫する
    • 動画を組み込む
    • 簡単に更新できるようにする
    • ユーザーの投稿を受け付ける
    • など

ネットワークは双方向

  • ネットワークでは、ユーザーと配信側がコミュニケーションをしながら、双方向にデータをやり取りする
  • ユーザー側が制御情報などのデータを送り、配信側はそれを活用してコンテンツをユーザーに届ける

2 サーバーとクライアント

  • ネットワークを利用してサービスを提供する立場のコンピューターがサーバー
  • サービスを受ける立場のコンピューターがクライアント

3 プロトコルという共通のルール

  • プロトコル
    • 問題なくデータをやり取りするための共通の決まりごと
    • ネットワークに参加しているすべての機器、OS、ネットワークを利用するソフトウェアも同じプロトコルに対応しなければならない
  • 標準プロトコル - TCP/IP

4 プロトコルのレイヤー構造

OSI参照モデル

  • 第7層 アプリケーション層
    第6層 プレゼンテーション層
    第5層 セッション層
    第4層 トランスポート層
    第3層 ネットワーク層
    第2層 データリンク層
    第1層 物理層
  • ネットワーク機器の機能を表現するときに使われる
  • 「レイヤー◯スイッチ」という危機がある場合、◯の階層のレイヤーから最下位のレイヤー(第1層)まで対応する

TCP/IPのレイヤー構造

  • 階層名 代表的なプロトコル
    アプリケーション層 HTTP、FTP、DNS、SMTP、POP3
    トランスポート層 TCP、UDP
    インターネット層 IP、ICMP、ARP
    ネットワークインターフェイス層 イーサネット、PPP、ISDN

5 ネットワークには住所がある

ネットワークは特定の相手に届ける

  • ネットワークにおいて、サーバーは多くのクライアントとの間で同時にデータをやり取りするが、それぞれのクライアントをすべて把握する
    • 相手を特定してデータをやり取りすることが、ネットワークの大きな特徴

ネットワークで相手を特定するには

  • 識別子を元に、送り先を特定する

次に持っていくところの住所も必要

  • 途中で複数のコンピューターや機器を経由してデータを送る
    • なので、最終的に受け取る識別子とは別に、次に持っていくところの識別子も必要
    • 次にデータを送る宛先は、途中で次々に変わっていく

1つのデータのやり取りには複数の住所が必要

  • さらに、ソフトウェアの住所も付けなければならない
    • データ1つにソフトウェアの住所コンピューターの住所次に送る住所
  • データのやり取りで行われる作業は、レイヤーとして整理されている
    • 送り主はレイヤーの上位から順に、送り先はレイヤーの下位から順に処理を行う

レイヤーごとに必要な住所がある

  • トランスポート層
    • ソフトウェア(アプリケーション層)にデータを渡す処理に必要な住所
  • インターネット層
    • 送り先のコンピューターや機器にデータを送る処理に必要な住所
  • ネットワークインターフェイス層
    • 次に送るコンピューターや機器にデータを送る処理に必要な住所

6 インターネットとLAN

LANとWANの特徴

  • ある範囲で閉じられたネットワーク
    • ネットワーク全体を管理できる
    • 機密情報を安心して扱える
    • 許可なくLANやWANに参加することはできない

インターネットの特徴

  • 世界中のネットワーク同士をつないで地球規模の巨大なネットワークを作り上げたのがインターネット
  • インターネットで使われる規格を決める団体はあるが、インターネット全体を管理している団体や、全体を管理しているサーバーはない

インターネットとイントラネット

  • イントラネットは、インターネットで使われている技術を使用したLAN
  • プロトコルはインターネットと同じTCP/IPを採用している
  • LANを使っているにで全体の管理はできる
  • LANでTCP/IPを利用することで、インターネットで利用されているサービスに近いサービスを、LANに手軽に導入することができる
  • 企業ネットワークの多くはイントラネット

LANでインターネットを使えるのはなぜ?

  • 企業ネットワークなどのLANに参加しているPCからは、インターネットを利用することができる
    • LANの内部にインターネットを利用するためのサービスを提供するサーバーや機器があり、各PCの代わりにインターネット接続の役割を担っているから

2章 データを相手に届けるための技術

1 データをやりとりする条件を知ろう

相手にデータを届け、相手からデータを受け取れること

  • ケーブルなどで物理的につなぐ技術
  • 複数のルートがあった場合に正しいルートを選ぶ技術
  • ほかのコンピューターや機器を経由する技術

データをやり取りする相手を特定し、届いたかを確認できること

  • データをやり取りする相手を特定する技術
  • お互いが確認しながらデータをやり取りする技術

お互いがデータを正しく理解できること

  • お互いがデータを正しく扱う技術
  • データをどのように扱えばいいかの情報をつける技術

2 パケットとヘッダー

パケットにはヘッダーとトレーラーが付けられる

  • ヘッダー
    • データ全体を扱う前に知っておきたい情報が入っている
    • 宛先、データの種類、識別番号など、データを適切に処理するための情報
  • トレーラー
    • データを全部受け取ったあとに確認するための情報
    • データが正しく送られたかどうかを確認するための情報

パケットはレイヤーごとに作られる

  • 同じデータをレイヤーの数だけ4回処理することになる
  • アプリケーション総出の処理 → トランスポート層 → データはパケットに分割され、ヘッダーが付けられる
  • トランスポート層で処理されたデータ → インターネット層 → さらに分割され、ヘッダーが付けられる
  • インターネット層で処理されたデータ → ネットワークインターフェイス層 → さらに分割してヘッダーとトレーラーをつける → ケーブルを通して他のコンピューターや機器へ送られる
  • カプセル化
    • あるレイヤーで付けられたヘッダーやトレーラーに含まれる制御情報は、他のレイヤーではデータ本体なので利用されない

セグメント、データグラム、フレーム、パケットの関係

  • プロトコルによって、セグメント、データグラム、フレームと呼ぶ
    • データを分割してヘッダーやトレーラーをつけるのは同じ
名称 プロトコル
セグメント TCP
データグラム UDP、IP
フレーム イーサネット

3 データ送信の方式

ユニキャストは1対1の関係

  • ユニキャスト
    • 1つの相手にデータを送ること
    • 自分たちが利用しているネットワークサービスのほとんどがユニキャストでデータを送り合っている

ユニキャスト以外の方式

  • マルチキャスト
    • 複数の相手にデータを送る
    • データはネットワークの途中にある機器で複製され、マルチキャストアドレスを持つ各コンピューターや機器に送られる
    • ビデオ会議システムやライブ中継などで使われる
    • 送る作業が1回で済むので、負担が軽い
  • ブロードキャスト
    • ネットワーク全体に送る
    • 1つのネットワークの中にいるすべてのコンピューターや機器に送る
    • DHCPサービスなどで使われる
    • IPv6では廃止される
    • 他のネットワークには送られない
  • エニーキャスト
    • 「どちらかよい方」に送る
    • 同じサーバーが複数あって、そのうちどれかにデータを送るときに使う
    • DNSサービス出使われるルートサーバーへデータを送るときに使う
  • IPアドレス、MACアドレスには「◯◯キャストにするときはこのアドレスを使う」というルールがあるので、決められたアドレスを使うことで送る方式をはっきりさせる

4 ネットワークの標準TCP/IP

RFC

  • IETF(Internet Engineering Task Force)という団体が作成し、公開している
  • TCP/IPの決まりごとの採用、見直し、修正などの議論をして、決定したものをRFCとして公開する

TCP/IPを実装する

  • TCP/IPを実装すること
    • コンピューターや機器に、TCP/IPの決まりごとに従って処理を行うTCP/IPプロトコルスタックを組み込むこと
  • TCP/IPに対応したハードウェア、TCP/IPプロトコル・スタック、TCP/IPにに対応したソフトウェアを揃えば、TCP/IPを採用したネットワークが利用できる

5 TCP/IPの4つのレイヤー

アプリケーション層はユーザーに一番近いレイヤー

  • 制御情報を追加、データ形式を変換など

データのやり取りを制御するトランスポート層

  • データをやり取りする相手と届いたかどうかを確認する
  • データを利用するソフトウェア(アプリケーション層)への経路を管理

最終目的地までたどり着くためのインターネット層

  • 識別子で相手を特定する
  • 最終目的地までの道のりを選択する

次の目的地までを担当するネットワークインターフェイス層

  • 隣り合ったコンピューターや機器との間のデータのやり取りを管理する
  • その他のコンピューターや機器を経由するよう、次の目的地までを担当する

何を担当するかによって使う住所が決まってくる

  • トランスポート層
    • アプリケーション層のソフトウェアを区別するために識別子として、ポート番号を使う
  • インターネット層
    • 最終的にデータを受け取る相手を特定するために識別子として、IPアドレスを使う
  • ネットワークンターフェイス層
    • 直接データをやり取りする相手を特定するために識別子として、MACアドレスを使う

6 TCPとUDP

ソフトウェアからソフトウェアまでの仮想的な通路をつくる

  • ネットワークで、1台のコンピューター出同時に複数のソフトウェアとサーバーを使ってサービスを利用できる
    • トランスポート層がソフトウェアごとに仮想的なデータの通路を作って管理しているから

ポート番号で仮想的なデータの通路を識別

  • トランスポート層は、複数の仮想的なデータの通路を区別するために、ポート番号を使う
  • 送り手のトランスポート層でやっていること
    • 送り手と送り先のポート番号をヘッダーの情報としてデータ本体に追加する
    • それぞれのポート番号を指定することによって、どのソフトウェアとの間でデータをやり取りするかの指定ができる
  • どうやって相手のポート番号を知るのか

ポート番号の決め方

  • トランスポート層では、自分のポート番号を49152~65535の中から1つ選んでヘッダーに追加する
    • 49152~65535は「動的/プライベートポート番号」
  • 送り先のポート番号は、利用するサーバーソフトの種類によって決められている
    • よく使われるポート番号は「ウェルノウンポート番号」
    • クライアントはこの範囲のポート番号を使わない

サーバーはクライアントが送ってきた動的/プライベートポート番号を宛先にする

  • サーバー側で適切な処理をした後、トランスポート層からクライアントにデータを返す際
    • ヘッダー情報にはクライアントのポート番号を宛先のポート番号として追加する
    • 送り主はサーバーソフトのポート番号

ポート番号

番号 種類 用途
0~1023 ウェルノウンポート番号 サーバーソフトが使用する
1024~49151 予約済みポート番号 特定のネットワークサービス、ソフトウェアに割り当てられている
サーバーもクライアントも使用できる
49152~65535 動的/プライベート番号 自由に使える
クライアントが使用する

確実にデータをやり取りするTCP

  • TCPが、確実にデータをやり取りするために持っている仕組み
    • 確認応答
      • 応答を、ACK(ACKnowledgeの略)
    • 再送
      • ACKが届かなかった場合、同じデータを再度送る
    • シーケンス番号
      • やり取りするデータに番号を付けて確認する

3ウェイハンドシェイク

  • トランスポートのプロトコルとしてTCPを使う場合、仮想的なデータの連絡を作る際に、3ウェイハンドシェイク方法をとる
    • 接続を要求するパケットをクライアントからサーバーへ送る(SYN)
    • サーバーで要求に応じられる場合は、応答確認をする(SYN、ACK)
    • クライアントから応答確認を送る(ACK)

7 IP

  • IP(Internet Protocol)

最終的にデータを受け取る相手との通信を担当

  • IPは最終的にデータを受け取る相手とのデータのやり取りに関する決まりごとを定める
  • 最終的にデータを受け取る相手を特定するためのIPアドレス
  • 相手のコンピューターまでの道のりを選択するルーティング

IPアドレスって何?

  • IPアドレスはTCP/IPネットワークに参加しているコンピューターや機器には必ず付けられている

IPアドレスの構成

  • IPv4において、IPアドレスは32ビットのデータ
    • 2進数が32個並ぶ
    • 8ビットずつ分けて、10進数とする
  • IPアドレスの構成要素
    • ネットワークアドレス
      • どのネットワークかを表す
    • ホストアドレス
      • そのネットワークのどのコンピューターや機器かを表す

IPアドレスのクラス

  • AからEクラス
  • ネットワークで使うのはA~C
  • Dはマルチキャストアドレス
  • Eは実験用のアドレス
  • ブロードキャストアドレス
    • ホストアドレスのビットがすべて1のIPアドレス

ネットワークの構成でクラスを使い分ける

  • ネットワークアドレスが多ければ、それだけ表せるネットワークの数が増える
    • しかし、ホストアドレスが減って、つなげられるコンピューターや機器の数が少なくなる
  • ネットワークに参加するコンピューターや機器の数に応じて、IPアドレスのクラスを使い分ける
    • ネットワークアドレス ホストアドレス
      クラスA 126個 約1600万個
      クラスB 約1600万個 約65000個
      クラスC 約200万個 254個
  • 同じネットワークに参加しているコンピューターや機器は、同じネットワークアドレスを持っている
    • ネットワークが異なれば、異なるネットワークアドレスが必要

サブネットマスクでネットワークを分割

  • IPアドレスをクラスで分ける仕組みでは、使わないIPアドレスが出てしまって、効率がよくない
    • サブネットマスクという仕組みが必要になった
  • ホストアドレスの一部をサブネットワークを表す部分として使うことで、1つのネットワークアドレスを異なるネットワークで利用できる
    • サブネットの分、ホストアドレスが減るので、表せるホストアドレスが減る

クラスレスアドレッシング

  • サブネットマスクを使う方法でも、クラスに分けるやり方に変わりなく、効率が良いとは言えない
  • クラスに分けること自体をやめるクラスレスアドレッシングが登場する
    • 先頭からどこまでがネットワークアドレスかをCIDRという表記で表す
    • 任意の単位でアドレスを区切ることができて、IPアドレスを効率的に利用できるようになった
    • 172.16.10.125/24 → 先頭から24ビットまでネットワークアドレス

グローバルIPアドレスとプライベートIPアドレス

  • IPアドレスの種類
    • グローバルIPアドレス
      • インターネットで通用するIPアドレス
      • ICANN(日本ではJPNIC)が重複しないように管理している
    • プライベートIPアドレス(ローカルIPアドレス)
      • 1つのネットワークの中だけで有効なIPアドレス
      • 別のネットワークに同じIPアドレスがあることもある
  • IPアドレスには「この範囲はプライベートIPアドレスとして使う」という範囲が決められている
  • プライベートIPアドレスの範囲
    • クラス名 範囲
      クラスA 10.0.0.0 ~ 10.255.255.255
      クラスB 172.16.0.0 ~ 172.31.255.255
      クラスC 192.168.0.0 ~ 192.168.255.255

8 IPv6

グローバルIPアドレスが足りない

  • インターネットの普及にともなって、グローバルIPアドレスが足りなくなる問題が発生した

    • そこで、IPバージョン6(IPv6)が策定され、IPアドレスの仕組みが大きく変更される
  • IPv4

    • 32ビットのデータ
    • IPアドレスの数は約43億個
  • IPv6

    • 128ビットのデータ
    • IPアドレスの数は約43億x約43億x約43億x約43億個
    • 16ビットずつ「:」で区切って16進数で表す

IPv4とIPv6を共存させる

  • インターネットは1つの企業や団体が管理しているわけではない
    • そのため、ある日を堺にすべてをIPv6へ切り替えることができない
    • 当面はIPv4とIPv6を共存させ、徐々にIPv6に切り替えていくことになる
    • カプセル化などの技術を使うことでIPv4とIPv6を共存させている
    • 一般的に使われているPCやスマホはIPv4とIPv6の両方に対応している

IPv6になると必要なくなるもの

  • IPv6では、IPアドレスを節約するための仕組みは必要なくなる
  • IPv6に機能として盛り込まれたことで必要なくなる仕組みもある
    • NAT、NAPT
    • ARP
    • DHCP

いろいろなものにIPアドレスを割り当てて活用する

  • IPv6では、IPアドレスの数を気にせず、さまざまなものに割り当てることができる

9 ルーティング

  • 最終的にデータを受け取る相手にたどり着くために、どのルートを通ればいいのかを選択する

ルートを決めるルーティングは、ルーターが担当

  • ルーティング(経路選択)
  • ほかのネットワークに参加しているコンピューターや機器との間でデータをやり取りするときに使われる
    • データを送りたい相手にたどり着くためにどのルートを選べばいいかを把握する
  • ルーターによって管理される

ルーティングテーブルでルートを選択

  • ルーターは、送るデータに付いているIPアドレスとルーティングテーブルを見て、どのルートを選べばいいかを判断する
  • ルーティングテーブル
    • 「該当するネットワークに参加しているコンピューターや機器に送る上で、どのネットワークのルータに送信するか」の指示が書かれている

スタティックルーティングとダイナミックルーティング

  • スタティックルーティング
    • ネットワーク管理者が手作業でルーティングテーブルを作る方法
    • 作業は面倒
    • 人間が作るからルーターとネットワークの負担が少ない
    • 小規模のネットワークやルートが決まっているネットワークで使われる
  • ダイナミックルーティング
    • ルーター同士が「ルーティングプロトコル」を使って情報を交換し、目的地にルーティングテーブルを作る方法
    • 作業が簡単
    • ルーターとネットワークの負担が大きい
    • 大規模のネットワークで使われる
      • 登録する情報が多いし、変更があったら登録し直す手間がかかるから

IGPとEGP

  • ルーティングプロトコル
    • ルーター同士がルーティングテーブルに必要な情報を交換するときの決まりごと
  • IGP
    • AS(自律システム)内で利用される
  • EGP
    • AS間で利用される
  • AS
    • インターネットのように大規模で全体の管理が難しいネットワークを、プロバイダーや企業などの単位で分けたもの

ディスタンスベクター型とリンクステート型

  • ディスタンスベクター型
    • 隣のルーターとルーティングテーブルの情報を交換する
    • 距離と方向をもとにルートを決める
  • リンクステート型
    • すべてのルーターと接続情報を交換して、その情報を元にルーティングテーブルを作る
    • 接続の状態をもとにルートを決める

10 ゲートウェイ

  • ルーターは、ルーティング以外にもネットワークの出入り口(ゲートウェイ)の役割をしている

ゲートウェイは異なるネットワークへの出入り口

  • あるネットワークと他のネットワークをつなぐ出入り口の役割を果たすコンピューターや機器
    • ネットワーク間のデータのやり取り時に必ずゲートウェイを経由する

ゲートウェイは複数のネットワークに対応している

  • ゲートウェイは、自分のネットワークとほかのネットワークの両方に参加している
    • 採用しているプロトコルが違う場合は、両方に対応する必要がある

ゲートウェイとして使われる機器やコンピューター

  • ゲートウェイとして機能するコンピューター
    • プロキシーサーバー
    • アプリケーションレベルゲートウェイ

ゲートウェイのグローバルIPアドレスを使ってインターネットを利用する

  • 家庭、企業のネットワークとも、参加しているコンピューターや機器にはプライベートIPアドレスを割り当てるのが一般的
    • しかし、このままではグローバルIPアドレスが必要なインターネットは使えない
    • そこで、ゲートウェイにグローバルIPアドレスとプライベートIPアドレスの両方を割り当てる
    • 家庭、企業のネットワークとゲートウェイ間ではプライベートIPアドレスでやり取り
    • インターネットとゲートウェイ間ではグローバルIPアドレスでやりとり
    • これで、プライベートIPアドレスしか持っていないコンピューターは、プライベートIPアドレスとグローバルIPアドレスの両方を持っているゲートウェイに頼んで、インターネットを利用する

ゲートウェイのIPアドレスをあらかじめ設定

  • コンピューターがインターネットなど他のネットワークのコンピューターとデータをやり取りする場合
    • まずゲートウェイにデータを送るためには、コンピューターにゲートウェイのIPアドレスが設定されている必要がある
    • 通常は自動的に設定される仕組みが用意されている
  • デフォルトゲートウェイ
    • 「他のネットワークに送る時、まずここにい送る」と設定されたゲートウェイ
  • Macの環境設定で確認する方法
    • システム環境設定 > ネットワーク > (接続するネットワークの)詳細 > TCP/IPタブ
    • ルーター にデフォルトゲートウェイのIPアドレスが記載されている
  • Macのターミナルで確認する方法
    • netstat -nr | grep default コマンドで確認する

NATとNAPT

  • NAT(Network Address Translation)
    • デフォルトゲートウェイがクライアントから送られてきたパケットのヘッダーにかかれている送り主のプライベートIPアドレスを、デフォルトゲートウェイ自身のグローバルIPアドレスに書き換える
    • クライアント -パケット(送り主のプライベートIPアドレス)→ デフォルトゲートウェイ(グローバルIPアドレスに書き換える) → ほかのネットワーク
    • この仕組がNAT
    • デフォルトゲートウェイは、どのクライアントから頼まれたてIPアドレスを変換したかの記録をとっておく
    • 最終的にデータのやり取りをする相手からゲートウェイが宛先とされているデータが届いたら、記録を参照してデータを頼んだクライアントのプライベートIPアドレスに宛先を変更してデータを送る
    • しかし、この方法では同時に行われるデータのやり取りの分だけグローバルIPアドレスが必要になる
  • NAPT(Network Address Port Translation)
    • NATでは効率が悪い
    • そこでグローバルIPアドレスとポート番号を組み合わせて使う
    • これで、同じグローバルIPを使ってポート番号の違いで複数のデータのやり取りができる

プロキシーサーバーにはセキュリティと利便性を高める役割もある

  • プロキシーサーバー(アプリケーションレベルゲートウェイ)じゃ、トランスポート層からアプリケーション層までのデータが扱えるゲートウェイ
  • ゲートウェイとしての役割とセキュリティ効果と利便性を高めることを目的として設置されることが多い

11 イーサネットと無線LAN

  • イーサネット
    • ネットワークインターフェイス層のプロトコルとして広く普及している
    • 有線のネットワークで使われる
    • ノートPCやスマホには無線LANを採用するケースも多く見られる

ネットワークインターフェイス層の2つの役割

  • ネットワークインターフェイス層
    • 隣り合った機器の間でデータをやり取りする際の決まりごとを定める(データリンク層)
    • ケーブルや端末、電気信号など、ネットワークの物理的な部分に関する決まりごとを定める(物理層)
      • デジタルデータとアナログデータの変換を行う

有線のネットワークならイーサネット

  • イーサネット
    • ケーブルで接続する有線のネットワークで使われるプロトコル
    • 有線で接続する機能を持ったコンピューター、機器などで備わっているもの
      • イーサネットの決まりごとに沿ったハードウェア
      • イーサネットで行う処理を実行するソフトウェア
  • イーサネットをLANと呼ぶこともある

無線LANのプロトコル「IEEE 802.11」

  • 無線LAN

    • 電波を使ってデータをやり取りするネットワーク
  • IEEE 802.11

    • 無線LANのネットワークインターフェイス層のプロトコルとして広く普及している
    • 通信速度などが異なるいくつかの種類に分かれている
    • 末尾に acnad などのアルファベットを付けて区別している
    • 無線LANで採用されているプロトコルの名前

WIFI、無線LANの呼び方を整理しておく

  • Wi-Fi
    • Wi-Fi Allianceというハードウェアの業界団体が定めるブランド名
  • Wi-Fiの認証を受けている機器同士は、メーカーや種類が違っていても、IEEE 802.11を採用した無線LANで問題なく使用できることを保証している
  • 認証の有無にかかわらず、IEEE 802.11を採用した無線LANでインターネットを利用することをWi-Fiと呼ぶケースも多く見られる

ネットワークインターフェイス層で使われるMACアドレス

  • MACアドレス物理アドレス
    • イーサネットやIEEE 802.11などがデータをうアリ取りする相手を特定するために使うアドレス
  • EUI-48
    • 現在広く使われている全48ビットのMACアドレス
    • 先頭から24ビットは、OUI(製造メーカー)を表す
    • 残りの24ビットは、製造メーカーが個々の機器につける
    • 16進数で表す
  • EUI-64
    • 64ビットのMACアドレス

MACアドレスはデータのやり取りの途中で次々に変わっていく

  • ネットワークインターフェイス層のプロトコルが作るパケットのヘッダーには、データをやり取りする相手の住所としてMACアドレスが書かれている
  • ネットワークの機器を経由するごとに経由する機器のネットワークインターフェイス層の処理で直接データをやり取りする相手の宛先が指定される
  • 直接データをやり取りする相手が変わっていくので、やり取りする相手を特定するMACアドレスも変わる
    • 中継するごとにMACアドレスが変わって、最終目的地については、別のレイヤーが担当する

最初はMACアドレスがわからない

  • はじめてネットワークに参加したPCやネットワーク機器は、データをやり取りする相手のMACアドレスを知らない
  • ARPというインターネット層のプロトコルを使って、MACアドレスを調べる
  • ARP
    • 最初に知りたいIPアドレスを持っている機器からMACアドレスを教えてもらうように、ネットワークに参加しているすべての機器にブロードキャストで問い合わせる
    • ブロードキャストアドレスは、48ビットがすべて1の「FF-FF-FF-FF-FF-FF」
    • 指定されたIPアドレスを持つ機器だけが返信する
  • 最終的にデータをやり取りしたい相手が同じネットワーク内にいない場合、デフォルトゲートウェイが直接データをやり取りする相手となる
    • デフォルトゲートウェイのIPアドレスを指定して、知りたいIPアドレスを持っている機器からMACアドレスを教えてもらうように、問い合わせをする

13 DHCPで接続情報を自動設定

  • DHCP
    • ネットワークを利用するために必要な情報を自動的に取得して設定するためのアプリケーション層のプロトコル

IPアドレスはいつ、誰がつけるのか

  • TCP/IPを採用しているネットワークでは、参加しているすべてのPCやサーバー、機器に、識別子としてIPアドレスが付けられる
  • しかし、ネットワークに接続しているユーザーが個別にIPアドレスを設定することはない
    • 接続に必要なIPアドレスなどの情報を自動的に割り当てるDHCP(Dynamic Host Configuration Protocol)というサービスを利用しているため

DHCPサーバーに情報をもらって自動的に設定

  • はじめてネットワークに参加するクライアントは、そのネットワークにあるDHCPサーバーから、自身のIPアドレスデフォルトゲートウェイのIPアドレスなどの情報をもらって、自動的に設定する
  • DHCPからもらう情報
    • クライアントが使うIPアドレス
    • サブネットマスク
    • デフォルトゲートウェイ
    • DNSサーバー(フルサービスリゾルバー)のIPアドレス
    • など
  • DHCPサーバーとクライアントがデータのやり取りをお始めるときは、お互いのIPアドレスがわからない
    • そこで、ブロードキャストを使ってDHCPサーバーを探す
    • DHCPサーバーは、クライアントのMACアドレス宛にユニキャストで返事する

IPアドレスの範囲と貸し出し期限

  • あらかじめ指定されたIPアドレスの範囲「アドレスプール」から使っていないIPアドレスを1つ選んでクライアントに割り当てる
    • 割り当てられたIPアドレスにはいつまでつかえるかの期限が決められている
    • 期限が切れると、クライアントは再度DHCPサーバーに連絡して新しいIPアドレスをもらう
  • 期限がある理由
    • 割り当てたのに使っていないIPアドレスがあると、非効率的だから

DHCPサービスのメリット

  • ユーザーは面倒な設定を行うことなくネットワークを利用できる
  • ネットワーク管理者も管理の手間が省ける
  • 固定でIPアドレスを付けておきたいサーバーや機器の場合
    • DHCPサーバーの設定できる
    • DHCPサーバーを使わず、サーバーや機器にIPアドレスなどの情報を直接指定することもできる

家庭用のルーターには、DHCPが備わっている

  • 家庭のネットワークで使われているルーターは、一般的にDHCPサーバーとしての機能も併せ持っている

3章 データを活用するための技術

1 ネットワークサービスを知ろう

アプリケーション層はユーザーとネットワークの橋渡し役

  • ユーザーが入力したデータやネットワーク経由で受け取ったデータを適切に処理して、ユーザーが活用できるようにする役割を持つ

ネットワークサービスとは

  • アプリケーション層のプロトコルに対応したクライアント側のソフトウェアがそのプロトコルに沿ってデータを適切に処理し、ユーザーが利用するもの

サーバー側ソフトもアプリケーション層のプロトコルに対応

  • サーバー側でもアプリケーション層プロトコルに対応したソフトウェア(サーバーソフト)が動作している

2 Webサービスの基本

ほとんどのインターネット利用はWebサービスのこと

  • Webサービス
    • HTTPを採用している
    • WWWの仕組みで表現している

HTTPを使ったデータのやり取りはシンプル

  • Webサービスのアプリケーション層のプロトコル
    • HTTPを使う
    • クライアントはHTTPリクエストを送り、サーバーは受け取る
    • サーバーはHTTPレスポンスを送り、クライアントは受け取る

HTTPレスポンスにはデータを適切に扱うための情報が付いている

  • HTTPレスポンス
    • クライアントに送るデータ本体
    • データのやり取りの状況を知らせるステートコード
    • データ本体の種類や更新日時などの情報を知らせるヘッダー
    • などが含まれている

WWWの仕組み

  • WWW(World Wide Web)
    • ネットワークを買入してドキュメントを公開するための方法を定めたもの

3 Webサイトのしくみ

Webサイトの基本的な作り方

  • 公開したいデータを用意する
  • ソフトウェアでWebページを作る
  • Webサーバーの所定のフォルダーに保存する
  • Webサイトとして公開する

Webブラウザーとは

  • Webサービスを利用するためのソフトウェア
    • データを送ってほしいWebサーバー宛にHTTPリクエストを送る
    • 送られてきたデータをHTML/CSSなどの決まりに沿って表示する

CMSとは

  • CMSを利用することで、Webサイトを作成した後の管理が簡単になる
    • CMSをWebサーバーに導入
    • CMSを使ってWebサイトのデザインや構成を決めて公開
    • CMSを使ってWebサイトを更新

4 SNSのしくみ

  • SNS
    • ユーザー同士のコミュニケーションをはかるのに便利な機能を持ったWebサービス

SNSもWebサービス

  • ユーザー同士のコミュニケーションの場としての役割を持っている
  • Webサイト
    • ユーザーに情報を伝えたい
  • SNS
    • コミュニケーションの場として使ってほしい

見た人の反応を目に見えるかたちに

  • SNSの機能
    • ユーザーが情報を手軽に発信する機能
      • 短い文章や絵文字でコミュニケーション
      • 見た人がコメントを残す
      • 引用できる機能
    • 発信した情報に対する反応がわかる機能
      • 相手が見たかわかる
      • 誰が見たかわかる
    • 交友関係を表示

ほかのコンテンツをおすすめする機能も

  • ほかのユーザーが発信した情報やニュースサイトの記事など、自分が興味を持ったコンテンツを引用できるのもSNSの特徴

5 動画配信のしくみ

  • 動画配信の形式
    • ダウンロード
    • ストリーミング
    • プログレッシブダウンロード

保存してから再生するダウンロード

  • 動画ファイルをネットワーク経由でダウンロードして保存してから再生する方法
  • ダウンロード完了まで再生ができない
  • 使用するプロトコル
    • HTTP

ダウンロードしながら再生するストリーミング

  • 動画のデータをダウンロードしながら再生する
  • ダウンロードが完了する前に再生を始められる
  • 専用のプロトコルを使う
    • サーバーとクライアントでストリーミングプロトコルに対応したソフトを用意する必要がある
    • RTSP、MMS、RTMP、HLSなど
  • 再生したデータは順次破棄される

HTTP Live Streaming, HLSのまとめ 概要・仕組み・課題など | Agora 開発者ブログ | ブイキューブ

手軽だがファイルが残るプログレッシブダウンロード

  • プロトコルにHTTPを使いつつも、ストリーミングのように届いたデータから順次再生していく形式
  • 再生した動画はクライアント側にファイルとして残る

6 ネット検索のしくみ

ディレクトリ型とロボット型

  • 検索結果のもとになる情報を集める方法によって分かれる
    • ディレクトリ型
      • 人間が手動で情報を収集
    • ロボット型
      • ロボット、クローラーなどと呼ばれるプログラムが、自動で情報を収集
  • 現在はネット検索サービスの大半がロボット型

ロボット型検索サービスの仕組み

  • ロボット型
    • インターネットで公開されているデータをプログラムによって自動で収集し、整理する
      • 内容を収集して、リンクをたどって、他のページに移動する
      • さらに収集して移動することを繰り返す
    • 収集・整理したデータをもとに検索結果をユーザーに提供する
      • ロボットが収集した情報を解析する
        • インデックスを作成してDBに保存する
      • ユーザーが検索したキーワードをもとにどのコンテンツを検索結果の上位にするかを決めるアルゴリズムに沿って処理する

8 クラウドのしくみ

クラウドはインターネットの活用法

  • クラウドの由来
    • インターネットを図で表すときに雲の形の絵を使うことから来ている
  • クラウド
    • インターネットの側にあるものを活用すること

クラウドで画像共有

  • 画像をサーバーに保管して共有するサービスが挙げられる
  • インターネットの側に画像を保管することで、複数の端末、複数のユーザーからその画像を活用することができる

クラウドで画像加工

  • 画像の保管・共有サービスを応用して、インターネット側で画像を加工することもできる
  • 画像加工ソフトをインストールする必要もなく、使用する機器を選ばない
    • 画像加工の指示のみ行い、処理自体はサーバーに任せる

ビジネスでのクラウド

  • 仕事で必要なファイルサーバーに保管して、外出先で利用したり、同じ仕事をしている人たちで共有したりできる

SaaS、IaaS、PaaSの違い

  • SaaS
    • クラウドを通してさまざまなサービスを提供することを目的としたクラウドの活用法
  • IaaS
    • 技術者に向けてハードウェアやネットワークを提供するクラウドの活用法
  • PaaS
    • 技術者に向けてハードウェアやネットワーク、開発環境を提供するクラウドの活用法

クラウドのメリット

  • 必要なデータやデータを処理する機能はインターネットの側にある
  • インターネットに接続できる機器と接続環境があれば、いつでもどこでもそのデータや処理機能を活用できる

クラウドのデメリット

  • インターネットに接続していないと利用できない
  • 利用しているクラウドサービスが将来的に利用できなくなる可能性もある
    • 重要なデータは手元の機器にコピーしておいて、クラウドが使えなくなった場合のことも考えた対策が必要

5章 ネットワークのセキュリティ

5 ファイアウォールでネットワークを守る

ゲートウェイにセキュリティ機能をもたせたファイアウォール

  • ファイアウォール
    • ゲートウェイに、危険なデータかどうかを判断して処理するセキュリティ機能をもたせたもの
    • 内部から外に出ていくデータも危険と判断したらストップ
  • 不正侵入対策の基本
  • インターネットに接続しているLANには、必ず必ずファイアウォールを設置する
  • マルウェア対策の機能を持ったファイアウォールを設置している企業ネットワークもよく見られる

ファイアウォールの種類

  • OSI参照モデルのどのレイヤーまでチェックするかで分かれる
    • ネットワーク層まで
      • パケットフィルタリング
      • イーサネット、無線LANとIPまで
      • データの中身はチェックしない
    • トランスポート層まで
      • サーキットレベルゲートウェイ
    • アプリケーション層まで
      • アプリケーションレベルゲートウェイ
      • データの中身もチェックして通す/通さないを判断できる
      • プロキシーサーバーとも言う

ファイアウォールを導入する

  • ゲートウェイをファイルウォールとして機能させるには、ファイアウォール用のソフトウェアを導入する
    • あらかじめ導入されたものもある
  • 家庭用のルーターには、パケットフィルタリングのソフトウェアが組み込まれていることが多い

インターネットに公開するサーバーがあるならDMZを設置する

  • インターネットに公開するサーバーを設置する場合、DMZ(DeMilitarized Zone)を設ける
    • 社内ネットワークから隔離されたセキュリティ上のエリア
  • インターネットに公開するサーバーは、DMZの中に設置する

6 プロキシの導入

  • プロキシー
    • 代理という意味
    • クライアントの代理となる通常のプロキシー
    • サーバーの代理となるリバースプロキシー

データを代理としてやり取りする

  • ネットワークサービスの1つ
  • クライアント、サーバーの代理としてデータをやり取りする
  • Webサービスのデータを代理でやり取りするのが一般的
  • プロキシー機能は、さーばーとして導入される

プロキシーサーバーでパケットがデータになる

  • プロキシーサーバーの特徴
    • 代理として売っけ取ったパケットを、いったんデータに戻して、パタパケットにして送り出す

セキュリティのためにプロキシーサービスを導入する

  • 代理でパケットからデータに戻したときに、データの中身を確認して安心かどうか判断する
    • クライアントが危険な相手と直接データをやり取りしなくて済む
    • 危険な相手からすると、攻撃対象の情報を集めたいのにプロキシーサーバーの情報しかわからない状態になる

7 データを暗号化するSSL/TLS

  • SSL/TLSプロトコルを使って、データをやり取りする
  • 暗号化、ハッシュ、サーバー証明書の仕組みを使う
    • 盗み見、改ざん、なりすましを防ぐ

ネットワークを行き来するデータは暗号化されていないのが普通

  • インターネットをはじめとしたネットワークでは、VPNなどのセキュリティを高める対策を講じない限り、データは暗号化されない
    • データのやり取りの途中で盗み見などの被害に遭う可能性がある

SSL/TLSはアプリケーション層の下に位置するプロトコル

  • SSL/TLSはOSI参照モデルのセッション層にある
    • アプリケーション層の下の層、TCPもしくはUDPの上の層になる

SSL/TLSは3つの危険からデータを守る

  • 盗み見を防ぐ暗号化
    • 公開鍵、秘密鍵を使ってデータを暗号化
  • 改ざんを防ぐハッシュ
    • データを元に計算したハッシュ値を一緒に送る
    • 受け取った側でも計算してハッシュ値が同じならデータは改ざんされていないと判断する
  • なる済ましを防ぐサーバー証明書
    • サーバー証明書があるかどうかで、偽サーバーではないことを確認する

8 無線LANのセキュリティ

無線ならではの危険性

  • 電波の届く離れた場所から勝手にネットワークを使われたり、機密データを盗まれたりする危険性がある

無線LANのセキュリティ規格

  • 無線LANで採用されているセキュリティ規格
  • IEEEが策定
    • WEP
      • 脆弱性があり、採用すると危険
    • IEEE 802.11i
      • IEEEがWEPの後続として策定
  • Wi-Fi Allianceが策定
    • WPA
      • 脆弱性があるWEPの代わりとしてWi-Fi Allianceが作ったセキュリティ規格
    • WPA2
      • 完成したIEEE 802.11iを反映したもので、仕組みはIEEE 802.11iと基本的に同じ
  • 使っている機器がWPA2もしくはIEEE 802.11iを使っているかを確認する

採用する技術や方式の名前を併記する

  • 規格によって利用する仕組みを選べるため、どの仕組みを使うかを規格名と一緒に表記する
    • WPA-PSK(AES) だと、PSKがユーザー認証、AESが暗号化の仕組みを表す
    • WPA2の暗号化、改ざん防止の仕組みは「CCMP」
      • CCMPが使っている暗号化の仕組みがAES
    • WPA2では、ユーザー認証の仕組みとしてPSKまたはIEEE 802.1Xを使う
      • PSKはパーソナル、IEEE 802.1Xはエンタープライズとも呼ぶ
  • 一般的に使われているPC、スマホはIEEE 802.1Xに対応している

セキュリティの設定はWPA2(AES)に

SSIDに会社の情報、ネットワーク情報を含めない

  • SSID
    • アクセスポイントの識別子
    • 他のアクセスポイントと区別するための名前
    • 会社の情報やネットワークの構成がわかるような名前を付けないようにする
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment