インターネット基礎
ほとんど参考 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)に変換するシステム
標準的な名前解決の流れ:
- ユーザー → www.code.org にアクセス要求
- ローカルDNS → キャッシュを確認(なければ次へ)
- 再帰DNSサーバー → 上位サーバーに問い合わせ
- ルートDNSサーバー → .orgの管理サーバー情報を提供
- TLDサーバー → code.orgの権威サーバー情報を提供
- 権威DNSサーバー → 174.129.14.120 を回答
- 結果をユーザーに返答 → キャッシュに保存
分散階層アーキテクチャ
分散階層アーキテクチャにより、世界規模のリクエストを効率的に処理
- ルートDNSサーバー: 最上位(".")
- TLDサーバー: .com、.org、.jp等の管理
- 権威DNSサーバー: 各ドメインの詳細情報
- 再帰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)
すべてのパケット送受信を管理・追跡
保証配達サービスのような役割を提供
データの完全性と順序性を保証
通信フロー
- データをパケットに分割して送信
- 受信側がパケット到着を確認
- 各パケットの確認応答(ACK)を返送
- 全パケット受信確認後、データ再構成開始
品質保証メカニズム
- パケット欠落・破損の検出と再送信
- 完全なデータ受信まで処理を継続
- 順序がずれたパケットの正しい並び替え
参考動画: 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コラム|アイティーエム株式会社
インターネット通信の流れ
基本的な通信フロー
-
リクエスト送信
- デバイスがインターネットサービスプロバイダー(ISP)を介してパケットをDNSサーバーに送信
-
名前解決
- DNSサーバーがウェブサイトのドメイン名をIPアドレスに変換
-
ルーティング
- パケットがルーターやスイッチを経由して様々なネットワークを通過し、宛先サーバーへルーティング
-
レスポンス処理
- 宛先サーバーがリクエストを処理して応答を返す
IPアドレスの通信
- あなたのコンピュータが他のコンピュータに情報を要求
- 宛先のIPアドレスにメッセージを送信
- 同時に発信元アドレス(自分のIPアドレス)も送信
- 相手のコンピュータが応答の送信先を認識
- 双方向通信が成立
DNS解決の詳細プロセス
- ユーザー → www.code.org にアクセス要求
- ローカルDNS → キャッシュを確認(なければ次へ)
- 再帰DNSサーバー → 上位サーバーに問い合わせ
- ルートDNSサーバー → .orgの管理サーバー情報を提供
- TLDサーバー → code.orgの権威サーバー情報を提供
- 権威DNSサーバー → 174.129.14.120 を回答
- 結果をユーザーに返答 → キャッシュに保存
TCP通信フロー
- データをパケットに分割して送信
- 受信側がパケット到着を確認
- 各パケットの確認応答(ACK)を返送
- 全パケット受信確認後、データ再構成開始[Fetching Title#81tl]
HTTP
HTTP(HyperText Transfer Protocol)
コンピュータ間でウェブページを要求・転送するためのプロトコル
ウェブブラウザとサーバー間の標準通信言語
HTTPリクエストの種類
- GETリクエスト: ウェブページや文書の取得
- POSTリクエスト: データの送信(フォーム送信など)
HTML(Hyper Text Markup Language)
ウェブブラウザにページの外観を指示するマークアップ言語
文書構造と表示スタイルを定義
ウェブページ構成要素
- テキスト: HTML内に直接記述
- 画像・動画: 独自URLを持つ別ファイル
- 複数ファイル読み込み: 各要素に個別HTTPリクエストが必要
- パフォーマンス影響: 画像数増加 → リクエスト数増加 → 読み込み速度低下
Cookie(クッキー)
ウェブサイトがユーザーを記憶するための唯一の仕組み
ブラウザに保存される目に見えないデータ(見ようと思えば見える)
Cookie動作フロー
- ログイン成功 → サーバーが成功ページとCookieデータを返送
- ブラウザがCookieを自動保存
- 次回アクセス時にブラウザ側からCookieを自動送信
- サーバーが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台のコンピュータがプライベートに「会う」ことが不可能
非対称暗号(公開鍵暗号)
基本概念
- 公開鍵: 誰とでも交換可能、データの暗号化に使用
- 秘密鍵: 共有されない、復号化専用
- 公開鍵で暗号化 → 秘密鍵でのみ復号化可能
動作フロー
- 公開鍵を友人や公開サーバーに配布
- 他者が公開鍵を使用してメッセージを暗号化
- 暗号化されたメッセージを「郵便受け」に投函
- あなたのみが秘密鍵で「郵便受け」を開封・復号化
参考動画: The Internet: Encryption & Public Keys - YouTube
サイバーセキュリティと犯罪
コンピューターウイルス
ユーザーとコンピューターに害を及ぼす・他のコンピュータへの感染拡大能力
通常は意図せずにインストールされる実行可能プログラム
感染経路
- 偽装インストール: プログラムの目的を偽装(例:セキュリティアップデートを装う)
- 脆弱性悪用: ソフトウェアの脆弱性を利用した無許可インストール
感染後の被害
- ファイルの盗難・削除
- 他プログラムの制御
- 第三者によるコンピューターのリモート制御
DDoS攻撃(分散型サービス拒否攻撃)
協調攻撃によるウェブサイトのダウン
ウイルスで乗っ取られた世界中の数百万台のコンピューター
DDoS攻撃の仕組み
- 複数のコンピューターから同時にウェブサイトへ過剰なリクエストを送信
- 通常処理能力:1日数百万件のリクエスト
- 攻撃時負荷:数十億〜数兆件のリクエストが集中
- 結果:コンピューターの過負荷による応答停止
フィッシング詐欺
大量のスパムメール送信による個人情報詐取
一見信頼できるメールでアカウントログインを要求
メールのリンクから偽ウェブサイトに誘導
被害の流れ
- 偽サイトでログイン情報入力
- パスワード等の認証情報が詐取される
- ハッカーが本物のアカウントにアクセス
- 個人情報や金銭の盗難
参考動画: The Internet: Cybersecurity & Crime - YouTube
Discussion