PCやスマホが通信できる仕組み
PCやスマホがアプリ、OS、端末の通信機能、Wi-Fiルーターや基地局を通じて外部サービスと通信する流れを整理します。
PCやスマホでWebサイトを開いたり、メッセージを送ったり、動画を見たりするとき、端末の中では通信のための処理が行われています。
人間から見ると、通信はとても簡単に見えます。
ブラウザでURLを開く。 検索する。 メッセージを送る。 画像をアップロードする。 動画を再生する。
しかし、実際には、アプリが単独で勝手に外へ通信しているわけではありません。
通信は、アプリ、OS、端末のネットワーク機能、Wi-Fiルーターや基地局などが連携して成立しています。
この記事では、PCやスマホの中で通信がどのように始まり、どのように外部のネットワークへ送られるのかを説明します。
、DNS、HTTP/HTTPS、TCP/UDP、通信ログなどの詳しい仕組みは、別の記事で扱います。
PCやスマホはどうやって通信を始めるのか
通信は、多くの場合、アプリの操作から始まります。
たとえば、ブラウザでWebサイトを開く場合を考えます。
あなたが検索結果をクリックしたり、URLを入力したりすると、ブラウザは「このWebサイトを開きたい」という通信の内容を作ります。
メッセージアプリで文章を送る場合も同じです。
あなたが文章を入力して送信ボタンを押すと、アプリは「このメッセージを送りたい」という通信の内容を作ります。
画像をアップロードする場合は、「この画像データを送信したい」という通信内容が作られます。
動画アプリで動画を見る場合は、「この動画データを受け取りたい」という通信内容が作られます。
つまり、通信の最初のきっかけは、アプリが「外部とやり取りしたい内容」を作ることです。
ただし、アプリがそのまま世界中のサーバーに直接通信しているわけではありません。
アプリが作った通信内容は、OSに渡されます。
アプリは通信したい内容を作る
アプリとは、ブラウザ、メッセージアプリ、SNSアプリ、動画アプリ、地図アプリ、ゲームアプリなどのことです。
これらのアプリは、必要に応じて外部と通信します。
ブラウザは、Webページを取得するために通信します。
メッセージアプリは、文章、画像、音声、ファイルなどを送受信するために通信します。
地図アプリは、地図データや経路情報を取得するために通信します。
動画アプリは、動画データを受け取るために通信します。
このように、アプリは「何を送りたいのか」「何を受け取りたいのか」という通信の内容を作ります。
しかし、アプリだけでは通信は完了しません。
アプリは、OSに対して「この通信を外へ送ってほしい」と依頼します。
この時点で重要なのは、通信はアプリ単体の動きではなく、端末全体の仕組みを使って行われるということです。
OSは通信を外へ送る役割を持つ
OSとは、PCやスマホ全体を管理している基本ソフトウェアです。
PCであれば、Windows、macOS、Linuxなどがあります。
スマホであれば、AndroidやiOSがあります。
OSは、アプリの起動、ファイル管理、画面表示、キーボードやタッチ操作、セキュリティ、ネットワーク機能などを管理しています。
通信も、OSが管理する重要な機能の一つです。
アプリが通信したい内容を作ると、OSはその通信要求を受け取ります。
そして、どのネットワーク機能を使って外へ送るのかを処理します。
たとえば、端末がWi-Fiに接続されている場合、OSはWi-Fiを使って通信を外へ送ります。
スマホがモバイル回線を使っている場合、OSはモバイル通信機能を使います。
PCがLANケーブルで接続されている場合、有線LANを使います。
また、を使っている場合は、その通信がVPNを通るように処理されることもあります。
このように、OSはアプリからの通信要求を受け取り、端末のネットワーク機能を使って外へ送る役割を持っています。
通信は「アプリが勝手に外へ出ている」のではありません。
アプリが通信内容を作り、OSがそれを受け取り、ネットワーク機能を使って外部へ送る流れになっています。
端末には通信するための機能がある
PCやスマホには、外部と通信するための機能が入っています。
PCであれば、Wi-Fiアダプターや有線LANポートがあります。
Wi-Fiアダプターは、Wi-Fiの電波を使って通信するための部品です。
有線LANポートは、LANケーブルを使って通信するための接続口です。
スマホであれば、Wi-Fi機能やモバイル通信機能があります。
Wi-Fiを使う場合、スマホは近くのWi-Fiルーターと通信します。
モバイル通信を使う場合、スマホは近くの携帯基地局と通信します。
このような通信機能があることで、PCやスマホは外部のネットワークに接続できます。
ただし、PCやスマホが単体で世界中のサーバーと直接つながっているわけではありません。
端末は、まず近くのネットワーク機器へ通信を送ります。
自宅のWi-Fiであれば、まずWi-Fiルーターへ通信を送ります。
スマホのモバイル通信であれば、まず近くの基地局へ通信を送ります。
有線LANであれば、LANケーブルを通じてルーターやネットワーク機器へ通信を送ります。
そこから先で、通信事業者のネットワークやインターネット上の経路を通って、目的地へ進んでいきます。
情報は0と1のデータとして扱われる
ここで、端末の中で情報がどのように扱われるのかも見ておきます。
人間から見ると、情報にはいろいろな形があります。
文字。 画像。 音声。 動画。 ファイル。 アプリの操作。
しかし、コンピューターはこれらを人間と同じ形で理解しているわけではありません。
コンピューターは、文字、画像、音声などを数字のデータとして扱います。
その基本になるのが、0と1です。
たとえば、英字の「A」は、代表的な文字コードでは 01000001 のような0と1の並びで表せます。
人間には「A」という文字に見えていても、コンピューター内部では決められた数字のデータとして扱われています。
画像も同じです。
画像は、色や明るさの情報がたくさん集まったデータです。
画面上では写真やイラストに見えていても、コンピューター内部では、どの位置にどの色を表示するかという数字の集まりとして扱われます。
音声も同じです。
音声は、人間には音として聞こえます。
しかし、コンピューターの中では、音の波を細かく測った数字の集まりとして扱われます。
つまり、文字も、画像も、音声も、動画も、端末の中ではデータとして扱われ、その基本は0と1の組み合わせになっています。
0と1は信号として送られる
ただし、0と1という数字が、そのまま空中やケーブルの中を飛んでいるわけではありません。
0と1は、コンピューターが情報を扱うための表現です。
実際の通信では、0と1のデータは、電気、光、電波などの信号として送られます。
有線LANでは、ケーブル上の電気信号として情報が送られます。
光ファイバーでは、光の信号として情報が送られます。
Wi-Fiやモバイル通信では、電波の変化として情報が送られます。
つまり、端末の中で作られたデータは、外部へ送るときに物理的な信号へ変換されます。
このとき、電気の高い・低い、光の変化、電波の変化などによって、0と1に相当する情報が表されます。
通信とは、画面上でボタンを押すだけのものではありません。
アプリがデータを作り、OSが処理し、端末の通信機能が信号に変換し、その信号がネットワーク機器へ送られることで成立しています。
なぜ0と1が使われるのか
コンピューターが0と1を使う大きな理由は、機械が安定して判断しやすいからです。
機械にとって、2つの状態を区別するのは比較的簡単です。
たとえば、電圧が低いか高いか。
信号がないかあるか。
ある基準より下か上か。
このように2段階であれば、機械は安定して判断しやすくなります。
もし10段階のような細かい状態で情報を表そうとすると、機械は小さな違いを正確に見分けなければなりません。
しかし、現実の通信にはノイズがあります。
電気信号は乱れることがあります。
電波は他の電波の影響を受けることがあります。
距離が長くなると、信号が弱くなることもあります。
そのような環境では、細かい10段階を区別するよりも、0か1かという2段階を区別する方が安定します。
0と1は、コンピューターや通信機器にとって扱いやすく、ノイズにも比較的強い表現です。
そのため、コンピューターは情報を0と1の組み合わせとして扱います。
端末はまず近くの機器へ通信を送る
PCやスマホが通信するとき、端末はまず近くのネットワーク機器へ通信を送ります。
自宅や学校、会社などでWi-Fiを使っている場合、PCやスマホはまずWi-Fiルーターと通信します。
その後、Wi-Fiルーターから通信事業者のネットワークへ進み、さらにインターネット上の経路を通って、目的のサーバーへ向かいます。
スマホでモバイル通信を使っている場合は、スマホがまず近くの基地局と通信します。
その後、携帯通信会社のネットワークを通り、インターネット上の目的地へ向かいます。
有線LANを使っている場合は、PCからLANケーブルを通じてルーターやネットワーク機器へ通信が送られます。
この流れを簡単に整理すると、次のようになります。
- あなたがアプリを操作する
- アプリが通信したい内容を作る
- OSが通信要求を受け取る
- OSが端末のネットワーク機能を使って外へ送る
- Wi-Fi、モバイル通信、有線LANなどで信号が送られる
- まずWi-Fiルーターや基地局などの近くの機器に届く
- そこから外部のネットワークへ進む
このように、通信は端末だけで完結しているわけではありません。
アプリ、OS、端末の通信機能、ルーター、基地局、通信事業者のネットワークなどが連携しています。
通信は一つの部品だけで決まらない
ここまでの内容を整理すると、PCやスマホの通信は一つの部品だけで決まるものではありません。
アプリは、通信したい内容を作ります。
OSは、その通信要求を受け取り、ネットワーク機能を使って外へ送ります。
端末の通信機能は、データを電気、光、電波などの信号に変換します。
Wi-Fiルーターや基地局は、その信号を外部のネットワークへつなぎます。
このように、通信は複数の層で成り立っています。
そのため、通信の仕組みを理解するときは、「ブラウザが通信している」「スマホが通信している」と大きく見るだけでは不十分です。
実際には、その裏側でアプリ、OS、端末の通信機能、周囲のネットワーク機器がそれぞれ役割を持っています。
この視点を持つと、後からIPアドレス、DNS、HTTP/HTTPS、TCP/UDP、VPN、WebRTCなどを学ぶときにも理解しやすくなります。
匿名性を学ぶうえで大事な視点
匿名性を考えるとき、多くの人はブラウザに注目します。
もちろん、ブラウザは重要です。
Webサイトを見るとき、ブラウザは外部と通信します。
ブラウザの設定によって、外部に見える情報が変わることもあります。
しかし、ブラウザだけを見ていても不十分です。
実際の通信には、アプリ、OS、ネットワーク設定、Wi-Fi、モバイル回線、DNS設定、VPN設定などが関係します。
たとえば、ブラウザでは匿名性を意識していても、別のアプリが通信している可能性があります。
OS自体が、アップデート確認や時刻同期などの通信を行うこともあります。
DNS設定によって、どこに名前解決の問い合わせが送られるかも変わります。
VPNを使っているつもりでも、設定が不十分であれば、意図しない通信が通常の回線から出る可能性があります。
また、ブラウザにはWebRTCのように、設定によってはネットワーク情報の漏れにつながる機能もあります。
このように、匿名性を考えるには「ブラウザだけ」ではなく、「端末全体がどのように通信しているのか」を見る必要があります。
ブラウザ設定、DNS設定、VPN設定、WebRTC漏れなどを理解するためにも、まずは端末の通信がどこから始まり、どのように外へ出ていくのかを押さえておくことが重要です。
まとめ
PCやスマホの通信は、アプリの操作から始まります。
ブラウザでWebサイトを開く。
メッセージアプリで文章を送る。
画像をアップロードする。
動画を見る。
このような操作をすると、アプリは通信したい内容を作ります。
その通信内容は、OSに渡されます。
OSは、Wi-Fi、有線LAN、モバイル通信などのネットワーク機能を使って、通信を外へ送ります。
端末の通信機能は、データを電気、光、電波などの信号として送ります。
そして、その信号はまずWi-Fiルーターや基地局などの近くの機器に届き、そこから外部のネットワークへ進んでいきます。
また、端末の中では、文字、画像、音声、動画などの情報は数字のデータとして扱われます。
その基本になるのが0と1です。
0と1は、機械が安定して判断しやすく、ノイズにも比較的強いため、コンピューターや通信の基本として使われています。
この記事で重要なのは、通信は「アプリが勝手に外へ出ている」のではないということです。
アプリ、OS、端末のネットワーク機能、Wi-Fiルーターや基地局などが連携して、初めて通信は成立します。
この視点は、匿名性を学ぶうえでも重要です。
匿名性を考えるときは、ブラウザだけではなく、アプリ、OS、ネットワーク設定、Wi-Fi、モバイル回線、DNS設定、VPN設定などを含めて見る必要があります。
PCやスマホの中で通信がどのように始まり、どのように外へ出ていくのかを理解することが、ネットワークと匿名性を理解するための土台になります。
関連ツール
WhatIsMyIP
WhatIsMyIPは、Webサイト側から見える現在のパブリックIPアドレスを確認できる検証サイトです。
紹介する理由: VPNやTorなどを使ったあと、接続先から見えるIPアドレスが意図した経路のものに変わっているかを確認する入口になるためです。
DNSLeakTest
DNSLeakTestは、DNS問い合わせがどのDNSサーバーへ送られているかを確認できる検証サイトです。
紹介する理由: VPN使用中でもDNSだけが普段のISPや意図しないリゾルバへ出ていると、接続先ドメインの手がかりが残るためです。