📌

インターネット基礎

に公開

ほとんど参考 How does the internet work? - roadmap.sh

インターネットとは

標準化した一連のプロトコル(共通作業手順・TCP/IPプロトコル)を通じて通信する、相互に接続されたコンピューターのグローバル ネットワーク

インターネットの起源(ARPANET)

  • 起源: 国防総省の高等研究計画局(ARPA)研究プロジェクト
  • 目的: 核攻撃に耐えうる通信システムの構築(ポール・バラン設計)
  • 技術: メッセージをパケットに分割し、メッシュネットワーク経由で高速送信

特徴

分散型システム

  • 中央管理者なし: 「誰も管理していない」=「皆が管理している」
  • 独立運営: 膨大な数の独立ネットワークで構成
  • 完全分散: パケットルーティングや接続に中央制御なし
  • 事業者判断: 各ネットワーク事業者が独立してビジネス決定

エンドツーエンド接続

  • あらゆるデバイス間での通信実現
  • 世界中のどのデバイスとも接続可能(電話システムと同様)
  • 史上初の規模と構造を持つ通信システム

参考動画: What Is the Internet?

データ伝送の物理的仕組み

インターネット上のすべて(文章、メール、画像、動画)は1と0のバイナリデータになる
バイナリデータは電子パルス、光線、電波などで送られる

バイナリ情報の基礎

  • ビット: 情報の最小単位(1=オン、0=オフ)
  • バイト: 8ビット = 1バイト = 2の8乗 = 256
  • 容量単位: 1,000バイト = 1キロバイト、1,000キロバイト = 1メガバイト
  • 実例: 音楽ファイル約3-4メガバイト、すべてのデジタル情報はビットで構成

伝送方式

電気による伝送

  • 仕組み: 銅線を通じた電気信号でビットを送信
  • タイミング制御: クロック/タイマーで正確なビット送信(例:1秒/1ビット)
  • 制限: 数百フィート(約100m)で信号劣化が発生

光ファイバー伝送

  • 仕組み: ガラス繊維内で光を反射させてデータ送信
  • 優位性: 光速での伝送・長距離でも信号劣化なし・複数ビットの同時送信可能

無線伝送

  • 仕組み: 1と0を異なる周波数の電波に変換
  • 制限: 長距離では信号劣化
  • 現実: Wi-Fiも最終的に有線インターネットに依存

帯域幅とレイテンシ

  • ビットレート: 秒あたりの伝送可能ビット数
  • 計算例: 3MBの音楽を3秒でダウンロード = 約800万ビット/秒
  • レイテンシ: 1ビットが送信元から宛先まで移動する時間

参考動画 The Internet: Wires, Cables & Wifi - YouTube

IPアドレスとDNS

IPアドレス

IPアドレスは、インターネット上の各デバイスを識別するための固有の番号
電話番号や住所と同様の役割を果たし、データパケットが正確な宛先に到達するために不可欠

  • 各デバイスに固有の識別子・階層構造(ネットワーク部 + ホスト部)
  • インターネットプロトコル(IP Internet Protocolの略)の中核要素

IPv4

  • ビット数: 32ビット(4バイト)
  • アドレス数: 約43億個(2³²)
  • 表記例: 192.168.1.1
    • 各要素は8ビットで構成
    • 最初の数字:国・地域のネットワーク識別
    • 中間部分:サブネット情報
    • 最後の数字:特定デバイスの識別

IPv6

  • 開発理由: IPv4アドレス枯渇への対応
  • ビット数: 128ビット(16バイト)
  • アドレス数: 約340澗個(2¹²⁸)
    • 事実上無限のアドレス空間
  • 表記例: 2001:0db8:85a3::8a2e:0370:7334

DNS

DNSは、人間が理解しやすいドメイン名(例:google.com)をコンピュータが理解するIPアドレス(例:172.217.175.14)に変換するシステム

標準的な名前解決の流れ

  1. ユーザー → www.code.org にアクセス要求
  2. ローカルDNS → キャッシュを確認(なければ次へ)
  3. 再帰DNSサーバー → 上位サーバーに問い合わせ
  4. ルートDNSサーバー → .orgの管理サーバー情報を提供
  5. TLDサーバー → code.orgの権威サーバー情報を提供
  6. 権威DNSサーバー → 174.129.14.120 を回答
  7. 結果をユーザーに返答 → キャッシュに保存

分散階層アーキテクチャ
分散階層アーキテクチャにより、世界規模のリクエストを効率的に処理

  1. ルートDNSサーバー: 最上位(".")
  2. TLDサーバー: .com、.org、.jp等の管理
  3. 権威DNSサーバー: 各ドメインの詳細情報
  4. 再帰DNSサーバー: エンドユーザー向けサービス

分散化の理由

  • 1台のサーバーで数十億のリクエストを処理することは不可能
  • ゾーン分割により責任を分散
  • 冗長性とパフォーマンスの向上・障害時の影響局所化

DNSスプーフィング

  • ハッカーがDNSサーバーに侵入
  • ドメイン名と偽のIPアドレスを対応付け
  • ユーザーを悪意のあるサイトに誘導
  • 個人情報盗取やマルウェア感染のリスク

その他の脅威

  • DNSハイジャック:DNS設定の不正変更
  • DDoS攻撃:大量リクエストによるサービス停止
  • キャッシュポイズニング:不正データの注入

技術的対策

  • DNSSEC: デジタル署名による応答の真正性確保
  • DNS over HTTPS/TLS: クエリの暗号化
  • レート制限: 異常なリクエスト数の制限
  • 監視システム: 不正アクセスの検出

参考動画 The Internet: IP Addresses & DNS - YouTube

パケット通信とルーティング

パケット通信

情報は「パケット」単位で分割されてコンピュータ間を移動
交通渋滞と同様に、状況に応じて異なるルートを選択
各パケットが独立して最適経路を通って宛先に到達

データ分割の仕組み

  • 大容量データ(画像、動画など)は複数パケットに分割
  • 各パケットは独立してネットワークを移動
  • 宛先で元のデータに再構成される

パケット分割の詳細

  • 大容量画像ファイル:数千万ビット → 数百〜数千のパケットに分割
  • 各パケットに送信元・送信先のIPアドレスを付与
  • パケット自体に経路選択機能はなし(ネットワークが制御)

ルーター

インターネット上のトラフィックマネージャーとして動作
パケットのネットワーク通過を制御・最適化
混雑状況に応じて動的な経路変更を実行

経路選択のアルゴリズム

  • 宛先IPアドレスに基づいた最適経路の計算
  • 「最も安価」な経路を選択(コストではなく効率性重視)
  • 時間、政治的関係、企業間関係などの要因を考慮
  • 物理的最短距離ではなく、総合的最適解を追求

フォールトトレランス(耐障害性)

冗長性による信頼性

  • 複数経路選択肢により障害耐性を実現
  • 一部ネットワーク障害時も通信継続が可能
  • インターネットの信頼性を支える基盤技術

TCP(伝送制御プロトコル Transmission Control Protocol)

すべてのパケット送受信を管理・追跡
保証配達サービスのような役割を提供
データの完全性と順序性を保証

通信フロー

  1. データをパケットに分割して送信
  2. 受信側がパケット到着を確認
  3. 各パケットの確認応答(ACK)を返送
  4. 全パケット受信確認後、データ再構成開始

品質保証メカニズム

  • パケット欠落・破損の検出と再送信
  • 完全なデータ受信まで処理を継続
  • 順序がずれたパケットの正しい並び替え

参考動画: The Internet: Packets, Routing & Reliability - YouTube

OSI参照モデル

OSI参照モデルとは、コンピュータネットワークに求められる機能(通信機能)を7階層の構造定義
ISO(国際標準化機構)とITU(国際電気通信連合)により
OSI(Open Systems Interconnection:開放型システム間相互接続)と呼ばれるネットワーク標準規格の策定された
以下は詳しくは記載せず大まかな区分だけ記載

名称 規格(プロトコル) 概要 利用例
7 アプリケーション HTTP,FTP,DNS,SMTP,POPなど アプリケーション間のやり取り www,メール
6 プレゼンテーション SMTP,FTP,Telnetなど データの表現形式の定義 HTML
5 セッション TLS,NetBIOSなど 接続の手順 HTTPS
4 トランスポート TCP,UDP,NetWare/IPなど データ通信の定義 TCP,UDP
3 ネットワーク IP,ARP,RARP,ICMPなど インターネットの最適な経路で送信 IP
2 データリンク PPP,Ethernetなど 同一インターネットの通信 Ethernet
1 物理 RS-232,UTP,無線 物理的な接続、電気信号 UTPケーブル,光ファイバーケーブル
プロトコル層 コメント
アプリケーションプロトコル層 7・6層 WWW、電子メール、FTP などのアプリケーションに固有のプロトコル。
伝送制御プロトコル層
5・4層
TCP はポート番号を使用して、コンピュータ上の特定のアプリケーションにパケットを送信します。
インターネットプロトコル層 3層 IP は、IP アドレスを使用してパケットを特定のコンピューターに送信します。
ハードウェア層
2・1層
バイナリ パケット データをネットワーク信号に変換し、その逆も行います。
(例: イーサネット ネットワーク カード、電話回線用モデムなど)

参考資料OSI参照モデルとは?TCP/IPとの違いを図解で解説 | ITコラム|アイティーエム株式会社

インターネット通信の流れ

基本的な通信フロー

  1. リクエスト送信
    • デバイスがインターネットサービスプロバイダー(ISP)を介してパケットをDNSサーバーに送信
  2. 名前解決
    • DNSサーバーがウェブサイトのドメイン名をIPアドレスに変換
  3. ルーティング
    • パケットがルーターやスイッチを経由して様々なネットワークを通過し、宛先サーバーへルーティング
  4. レスポンス処理
    • 宛先サーバーがリクエストを処理して応答を返す

IPアドレスの通信

  1. あなたのコンピュータが他のコンピュータに情報を要求
  2. 宛先のIPアドレスにメッセージを送信
  3. 同時に発信元アドレス(自分のIPアドレス)も送信
  4. 相手のコンピュータが応答の送信先を認識
  5. 双方向通信が成立

DNS解決の詳細プロセス

  1. ユーザー → www.code.org にアクセス要求
  2. ローカルDNS → キャッシュを確認(なければ次へ)
  3. 再帰DNSサーバー → 上位サーバーに問い合わせ
  4. ルートDNSサーバー → .orgの管理サーバー情報を提供
  5. TLDサーバー → code.orgの権威サーバー情報を提供
  6. 権威DNSサーバー → 174.129.14.120 を回答
  7. 結果をユーザーに返答 → キャッシュに保存

TCP通信フロー

  1. データをパケットに分割して送信
  2. 受信側がパケット到着を確認
  3. 各パケットの確認応答(ACK)を返送
  4. 全パケット受信確認後、データ再構成開始[Fetching Title#81tl]

HTTP

HTTP(HyperText Transfer Protocol)

コンピュータ間でウェブページを要求・転送するためのプロトコル
ウェブブラウザとサーバー間の標準通信言語

HTTPリクエストの種類

  • GETリクエスト: ウェブページや文書の取得
  • POSTリクエスト: データの送信(フォーム送信など)

HTML(Hyper Text Markup Language)

ウェブブラウザにページの外観を指示するマークアップ言語
文書構造と表示スタイルを定義

ウェブページ構成要素

  • テキスト: HTML内に直接記述
  • 画像・動画: 独自URLを持つ別ファイル
  • 複数ファイル読み込み: 各要素に個別HTTPリクエストが必要
  • パフォーマンス影響: 画像数増加 → リクエスト数増加 → 読み込み速度低下

Cookie(クッキー)

ウェブサイトがユーザーを記憶するための唯一の仕組み
ブラウザに保存される目に見えないデータ(見ようと思えば見える)

Cookie動作フロー

  1. ログイン成功 → サーバーが成功ページとCookieデータを返送
  2. ブラウザがCookieを自動保存
  3. 次回アクセス時にブラウザ側からCookieを自動送信
  4. サーバーがCookieでユーザーを識別

Webセキュリティ

HTTPはすべての接続が共有される完全オープンシステム
情報がプレーンテキストで送信される→ハッカーによる個人情報の盗み見が可能

SSL/TLS暗号化技術

  • SSL: Secure Sockets Layer(旧技術)
  • TLS: Transport Layer Security(SSL の後継技術)
  • 機能: 通信を暗号化し、盗み見や改ざんから保護

HTTPS(HTTP Secure)

  • HTTPリクエストの安全性と保護を保証
  • ブラウザのアドレスバーに鍵マークで表示
  • SSL/TLS有効時の安全な通信プロトコル

デジタル証明書

ウェブサイトの身元を証明する公式IDカードみたいなもの
認証局(Certificate Authority)が発行

証明書検証プロセス

  • 信頼できる認証局による身元検証と証明書発行
  • 不正な証明書使用時はブラウザが警告を表示

参考動画: The Internet: HTTP & HTML - YouTube

暗号化とセキュリティ

暗号化の基本概念

暗号化・復号化

  • 暗号化: メッセージをスクランブル・変更して元テキストを隠すプロセス
  • 復号化: 暗号化されたメッセージを解読して判読可能にするプロセス
  • 歴史: 何世紀にもわたって実践されてきた技術

シーザー暗号(古典的暗号化)

  • ローマの将軍ジュリアス・シーザーが軍事命令の暗号化に使用
  • アルファベットの各文字を特定のステップ数だけシフト
  • シフト数が送信者・受信者だけが知る「鍵」

256ビット暗号化

  • 現代の安全な通信で使用される標準
  • 2^256通りの鍵の組み合わせ
  • 10万台のスーパーコンピュータ(各々毎秒1000億鍵を試行)でも解読に何兆兆兆年が必要

対称暗号

  • 送信者と受信者が同じ鍵を共有
  • 暗号化・復号化に同一の鍵を使用
  • 事前に秘密鍵の合意が必要
  • インターネットでは2台のコンピュータがプライベートに「会う」ことが不可能

非対称暗号(公開鍵暗号)

基本概念

  • 公開鍵: 誰とでも交換可能、データの暗号化に使用
  • 秘密鍵: 共有されない、復号化専用
  • 公開鍵で暗号化 → 秘密鍵でのみ復号化可能

動作フロー

  1. 公開鍵を友人や公開サーバーに配布
  2. 他者が公開鍵を使用してメッセージを暗号化
  3. 暗号化されたメッセージを「郵便受け」に投函
  4. あなたのみが秘密鍵で「郵便受け」を開封・復号化

参考動画: The Internet: Encryption & Public Keys - YouTube

サイバーセキュリティと犯罪

コンピューターウイルス

ユーザーとコンピューターに害を及ぼす・他のコンピュータへの感染拡大能力
通常は意図せずにインストールされる実行可能プログラム

感染経路

  • 偽装インストール: プログラムの目的を偽装(例:セキュリティアップデートを装う)
  • 脆弱性悪用: ソフトウェアの脆弱性を利用した無許可インストール

感染後の被害

  • ファイルの盗難・削除
  • 他プログラムの制御
  • 第三者によるコンピューターのリモート制御

DDoS攻撃(分散型サービス拒否攻撃)

協調攻撃によるウェブサイトのダウン
ウイルスで乗っ取られた世界中の数百万台のコンピューター

DDoS攻撃の仕組み

  • 複数のコンピューターから同時にウェブサイトへ過剰なリクエストを送信
  • 通常処理能力:1日数百万件のリクエスト
  • 攻撃時負荷:数十億〜数兆件のリクエストが集中
  • 結果:コンピューターの過負荷による応答停止

フィッシング詐欺

大量のスパムメール送信による個人情報詐取
一見信頼できるメールでアカウントログインを要求
メールのリンクから偽ウェブサイトに誘導

被害の流れ

  1. 偽サイトでログイン情報入力
  2. パスワード等の認証情報が詐取される
  3. ハッカーが本物のアカウントにアクセス
  4. 個人情報や金銭の盗難

参考動画: The Internet: Cybersecurity & Crime - YouTube

英語参考資料

参考資料

Discussion