Yamamoto's Laboratory
トップ
 
ブログ
 
 
 
図・動画作成
 
Google サービス
 
クラウドサービス
 
リモート操作
 
レンタルサーバー
 
 

インターネットに関すること

はじめに

このページでは,インターネットに関する話題を,筆者自身の体験と技術的な仕組みの両方から説明します.インターネットは,今ではスマートフォンや PC で毎日のように使う身近なものですが,その裏側では,多くのコンピューターや通信機器が共通の決まりに従って動いています.

前半では,インターネットが一般に普及する前のパソコン通信の時代から,筆者が初めてインターネットや Web に触れた頃のことを振り返ります.Mosaic のような初期のブラウザーを通して,Web がどのように身近なものになっていったのかを見ていきます.

後半では,インターネットの仕組みを初めて学ぶ人にもわかるように説明します.データがパケットに分けられて送られること,IP アドレスや DNS,HTTP/HTTPS の役割,通信を支えるハードウェアとソフトウェア,そして OSI 参照モデルによる整理を,順に扱います.

筆者のインターネット遍歴

この節では,インターネットが一般に普及する前後の筆者の体験を振り返ります.パソコン通信から初期の Web へと移っていった頃の雰囲気を,少しだけ紹介します.

前夜

インターネットの前,私はパソコン通信を使っていました.ニフティーサーブの会員で,フォーラムにちょくちょく顔を出していました.文字主体の通信でしたが,それが面白かったのです.最初はワープロで,次に Macintosh SE/30 とモデムを使って通信していました.通信速度は 2400 bps (理論上は約 300 byte/sec) で,今から見るととてもゆっくりでした.最初に接続できた時には感激しました.

初めてのインターネット

私が初めてインターネットに触れたのは,1991年のことです.当時,指導教官から「アメリカの研究所のコンピューターを使って計算しなさい」と言われました.telnet で接続して計算を行い,e-mail も使いました.特に印象に残っているのは FTP です.大型コンピューターからデータを取り出したり,時にはオーストラリアのサーバーにつながったりして,アプリケーションを含むさまざまなデータをダウンロードできました.コンピューターが外部の機械とつながっていることに驚きました.

私の初めての Web 体験は,Windows 95 が出る直前の 1995 年頃で,ワークステーションで動く Mosaic でした (図1).Mosaic は,テキストだけでなく画像も表示できるブラウザーで,とても感動しました.当時のインターネットは,まだ研究者のものという印象が強く,一般にはあまり普及していませんでした.しかし,Web の技術によって,インターネットは急速に身近なものになっていきました.

図1: Mosaic の画面

インターネットの仕組み

ここでは,インターネットで情報がどのように行き来しているのかを,できるだけ身近な言葉で説明します.スマートフォンで Web ページを見る,という日常的な操作を出発点にして,通信の基本,それを支える機器,そして通信の決まりへと順に見ていきます.

インターネットとは何か

インターネットとは,世界中のコンピューター,スマートフォン,サーバーなどをつないだ大きな通信の仕組みです.ただし,ひとつの巨大な機械や,ひとつの会社が持っている一本の線ではありません.家庭,学校,会社,研究所,データセンターなどにある多くのネットワークが互いにつながって,全体として大きなネットワークを作っています.そのため,インターネットは「ネットワークのネットワーク」と説明されます.

たとえば,スマートフォンで Web ページを見るとします.画面では URL を入力したり,リンクを押したりするだけですが,裏側ではいくつもの通信が行われています.スマートフォンは,まず相手先を見つけるための情報を調べ,そのサーバーへ「このページを送ってください」と頼みます.サーバーは HTML や画像などのデータを送り返し,ブラウザーがそれを組み立てて画面に表示します.

つまり,私たちが見ている Web ページは,遠くにあるサーバーから届いたデータを,手元の端末が整えて表示したものです.このやり取りを理解するには,まず「データをどうやって相手まで届けるのか」を見る必要があります.

通信の基本

インターネットでは,文章,画像,動画などのデータを,そのまま大きな一かたまりで送るわけではありません.データは小さな単位に分けられて送られます.この小さな単位を「パケット」と呼びます.荷物を小分けにして運ぶようなものです.

それぞれのパケットには,送り先と送り主の情報が付いています.送り先を表す代表的な情報が IP アドレスです.IP アドレスは,インターネット上の住所のようなもので,通信相手を見つけるために使われます.

パケットは,途中にある機器をいくつも通って目的地に向かいます.家庭の Wi-Fi ルーター,プロバイダーの機器,さらにその先の大きなネットワークの機器が,次にどちらへ送ればよいかを判断します.これは,バケツリレーのように,受け取ったものを次の相手へ渡していくイメージです (図2).

図2: パケットに分けたデータの配送

ハードウェア

通信を実際に運ぶためには,物理的な機器が必要です.スマートフォンや PC は,私たちが直接使う端末です.Web サーバーは,Web ページや画像などのデータを保存し,要求に応じて送り返すコンピューターです.

  • スマートフォンや PC は,通信の出発点や到着点になります.
  • Wi-Fi ルーター,LAN ケーブル,光回線は,家庭や会社から外のネットワークへ信号を運びます.
  • ルーター,スイッチ,携帯電話の基地局などは,途中でデータの通り道を作ります.

これらのハードウェアは,「信号を実際に運ぶもの」と考えるとわかりやすいです.電気信号,光信号,電波などの形で情報を運び,次の機器へ渡していきます.機器どうしのつながりを大まかに表すと,図3 のようになります.

図3: インターネット機器の接続形態

ソフトウェア

ハードウェアが信号を運ぶ道具だとすると,ソフトウェアは「どういう約束でデータを送るか」を決めるものです.機器がつながっていても,互いに同じ約束でやり取りしなければ通信は成り立ちません.

  • OS は,ネットワーク機能を管理し,アプリケーションが通信できるようにします.
  • ブラウザーやアプリは,人間の操作を通信の要求に変え,返ってきたデータを表示します.
  • TCP/IP は,IP で送り先まで届ける仕組みと,TCP で順番や到着を確認する仕組みを含む,インターネットの基本的な通信の約束です.
  • DNS は,example.com のような名前を IP アドレスに対応づけます.
  • HTTP/HTTPS は,Web ページを要求したり受け取ったりするための約束です.HTTPS では通信内容を暗号化します.

インターネットは,機械だけでも,ソフトウェアだけでも動きません.信号を運ぶハードウェアと,その信号をどのような意味として扱うかを決めるソフトウェアが組み合わさって,はじめて通信になります.

具体例で流れを追う

ここで,ブラウザーに example.com と入力した場合を考えます.実際には一瞬で終わるように見えますが,内部ではおおむね次のような順番で処理が進みます.

  1. ブラウザーが,example.com という名前の相手を探します.
  2. DNS に問い合わせて,example.com に対応する IP アドレスを調べます.
  3. 調べた IP アドレスを送り先として,Web サーバーへリクエストを送ります.
  4. Web サーバーが,HTML,CSS,画像などのデータを返します.
  5. ブラウザーが受け取ったデータを解釈し,画面上の Web ページとして表示します.

この流れを簡単に描くと,図4 のようになります.私たちは「ページを見る」と感じていますが,実際には名前の解決,要求の送信,データの受信,画面への描画という処理が連続して起きています.

図4: スマートフォンで Web ページを見るときの通信の流れ

OSI参照モデル

最後に,ここまでの話を整理するための考え方として,OSI 参照モデルがあります.OSI 参照モデルは,ネットワーク通信を 7 つの層に分けて考えるための整理方法です.実際の通信がいつもこの通りにきれいに分かれるわけではありませんが,どの部分で何が行われているかを理解する目安になります.

  • 物理層は,電気信号,光信号,電波など,実際に信号を運ぶ部分です.
  • データリンク層は,同じ LAN の中で機器どうしが通信するための部分です.
  • ネットワーク層は,IP アドレスを使って相手のネットワークまで届ける部分です.
  • トランスポート層は,通信のまとまりや到着確認を扱う部分です.TCP などがここに関係します.
  • セッション層,プレゼンテーション層,アプリケーション層は,アプリケーションに近いところで,通信の開始や終了,データ形式,Web やメールなどの具体的なサービスに関係します.

つまり,OSI 参照モデルは,「ケーブルや電波の話」から「ブラウザーで Web ページを見る話」までを,層に分けて眺めるための道具です (図5).

図5: OSI参照モデル



no counter