情報 第 8 回
ファイルと その中身 ファイルと フォルダ コマンド ライン 簡単なプログラ Excel で計算・ 通信の符号 化 , その限界 暗号 情報の符号 化 , その限界 通信・ネットワーク , インターネット コンピュータの仕組み コンピュータにおける 情報の表現 プログラムの仕組み 基礎的概念
テーマ
ネットワークの一般論 LAN インターネット IP, DNS, TCP アプリケーションプロトコル ( メール ,Web) インターネット上の脅威 暗号と認証動機付け
プロバイダに契約 + 「つなぐだけ」で世界中の
HP が見られる理由
セキュリティ事件がなくならない理由
「通信」とは ?
情報の伝達 手段 , 媒体は様々 声 , ジェスチャー 電圧の変化 ( 銅線 ) 電磁波 ( 無線 LAN, 携帯 ) 光のパルス ( 光ファイバ ) 情報を , 「波」によって伝達される信号に符号 化する (etc. 電圧 HI = 1, 電圧 LO = 0)「信号の伝達」だけでは解決されな
い話
直接届かない相手との情報のやりとり 多人数の参加者の中から特定の相手との情報の やりとり 「ネットワーク」の機能「ネットワーク」の機能
直接信号が伝達できない相手との通信 ( 中継 ) 指定された相手に情報を届ける ( 経路づけ , ルーティング ) A A と通信 したい ! A Bよく目にするネットワークの構成機器
PC Ethernet スイッチ 無線 LAN ステーション モデム (ADSL, 光 ) ルータ ポートネットワークの基本要素
アドレス ネットワークへの参加者 ( ノード ) を識別する名前 経路づけ ( ルーティング ) 宛先アドレスへデータを届ける道順 , それを求める 仕組みローカルエリアネットワーク (LAN)
実例
Ethernet
無線 LAN (IEEE 802.11)
AppleTalk, Token Ring ( 廃れた )
「インターネット」以前から , 少数の機器 (PC,
プリンタ ,etc.) を接続し , 共有するために使わ れていた
Ethernet
について少し
アドレス = Ethernet MAC アドレス すべての PC のネットワークインタフェースカード (NIC), Ethernet スイッチ , などについている一意な ID 例 : 00:16:6F:4E:5F:D4 2 桁の 16 進数 x 6 = 48 bit 上位 3 つはベンダを識別 (http://standards.ieee.org/regauth/oui/oui.txt)Ethernet
のルーティング
機能 : スイッチと PC を , ループ ( 輪 ) を作らないように つなげるだけで , 任意の MAC アドレスにデータ ( フレーム ) を届けられるようになる 初期の機器 ( リピータハブ ) すべてのフレームをブロードキャスト 今日の機器 ( スイッチングハブ , スイッチ ) 後述リピータハブ
受け取ったフレームは全部のポートに送信 目的地へ届いたものは拾われる そうでないものは捨てられる 単純だが明らかに無駄 大規模化は不可能 00:16:6F:4E:5F:D4 リピータハブスイッチングハブ
フレーム受け取り時に「送信者アドレス」とそ のポートの組を記録する 後でその送信者アドレス向けのフレームを受け 取ったら , 覚えていたポートだけに転送 00:16:6F:4E:5F:D4 00:16:6F:11:22:33Ethernet (LAN)
のまとめ
「つなげるだけ」で使えるように設計されてい る 全世界規模への大規模化は困難 リピータハブは言うまでもない スイッチングハブでも 最初のブロードキャスト つながれている全機器の数だけ , 各スイッチが MAC アドレスとポートの対応を覚える必要が ある ( 不可能 )インターネット
1969 年アメリカ ARPA による実験用のネット ワーク ARPANET が前身 インターネット = WWW ( ホームページの閲覧 ) や , メール ( だけ ) のことではない 当初の技術的な位置づけ 複数の LAN をつなぐことインターネットはそれまでのネット
ワークと何が違ったのか ?
規模が大きい 2009 年 1 月で 6 億のホスト 世界中をつないでいる 複数の , 異なる規格の LAN をつなげる 信号伝達の物理的な仕組みによらない ネットワークの物理的な管理主体が一つでない 多数の管理主体が協調的に管理している規模 ( ホスト数 )
出典 : Internet Systems Consortium https://www.isc.org/solutions/survey
インターネットの核となる技術
IP (Internet Protocol)
LAN を越えてデータ ( パケット ) を届ける ( 経路づ
け )
DNS (Domain Name System)
ホスト名とアドレスとの対応を保持する
すべてのインターネットアプリケーションはこ
IP
アドレス
IP (Internet Protocol) におけるアドレス IP アドレスの例 124.83.147.205 66.249.89.104 Ethernet MAC アドレスと異なり , IP アドレス は機器に固有のものではなく , ソフトウェアに よって「設定」される 各 PC に「最初から」 IP アドレスがついているわIP
アドレスの形式
IP version 4 (IPv4) x.x.x.x (x は 0-255 までの数字 ) 8 bit 4 = 32 bit IP version 6 (IPv6) x:x:x:x:x:x:x:x (x は 16 進数で , 0000-ffff まで ) 16 bit x 8 = 128 bit 今日ほとんどの機器は IPv4 を用いているインターネットプロトコル (IP)
「インターネット」の技術的核心 Internet Protocol 「インターネット」をしいて技術的に定義する ならば , IP を使った通信方法のこと 123.234.56.78 111.234.56.78IP
の基本機能
あらゆる「ネットワーク」の機能と同様であ る . つまり , 宛先「 IP アドレス」を指定されたデータ ( パ ケット ) を , その IP アドレスを持つ機器へとど ける ( 経路づけ ) LAN の仕組みは大規模化できなかったLAN
の中の IP 通信
「宛先 IP アドレス → そのマシンの MAC アド
レス」の変換をすれば OK
その仕組み : ARP (Address Resolution
Protocol)
LAN 内にブロードキャスト ( 「この IP アドレスを
持っている人は MAC アドレスを教えてくださ い」 )
LAN
をまたがった IP 通信
パケットが複数 LAN を渡り歩く 各ステップ (hop) では , ルータと呼ばれる機器 がパケットを中継する (IP ルーティング ) ルータ 通常のホスト LAN ( サブネット )IP
ルーティング
機器 : IP ルータ , L3 スイッチ LAN におけるスイッチに相当 ただし MAC アドレスではなく IP アドレスを元に宛 先を決める LAN と LAN の境目に配置 ルータ間で情報を交換して「宛先 IP アドレス , ポート」の対応付けを覚える LAN LANIP
が大規模化できる理由
一つの LAN には「まとまった IP アドレスの範 囲」を割り当てる 例 : 133.11.238.0 〜 133.11.238.127 サブネットという IP ルータは個々の IP アドレスの経路を覚えず にサブネットや , より大きな範囲のアドレス範 囲ごとに覚える サブネット単位でのルーティング情報をやりと りする必要はあるが , そんなに激しく変わらな自分の IP アドレスは ?
Mac, Unix: ifconfig コマンド Windows: ipconfig コマンド
どの LAN につながっているかで IP アドレスは
異なる
ある IP アドレスと通信できるか ?
Mac, Unix, Windows: ping コマンド
ping 「 IP アドレス」
指定された IP アドレスに向かって IP パケット
ある IP アドレスまでどのような経
路で到達するか ?
Mac, Unix : traceroute コマンド Windows: tracert コマンド
traceroute 「 IP アドレス」
ping と似ているが途中のルータが表示される
セキュリティの懸念からわざと答えないルータ
DNS
Domain Name System
IP アドレスよりも「意味のわかりやすい」ホス トの名前 (DNS 名 ) インターネット上で , ホスト名 ( 計算機名 ) と して通常用いられる名前 例 : www.yahoo.co.jp www.ecc.u-tokyo.ac.jp
DNS
名
A.A. ... .A
各 A はアルファベット , 数字 , '_', '-' など
DNS
名が使われる , よく見る場面
ホームページの名前 (URL) の一部にホスト名を 使う http://www.ecc.u-tokyo.ac.jp/faq.html このページは , www.ecc.u-tokyo.ac.jp というホス トが持っているという意味 メールの設定で ,SMTP サーバ , POP サーバを 指定せよと言われることがある . そのような場 合に指定するサーバの名前も「 DNS 名」DNS
の基本機能
DNS 名 IP アドレスの対応を覚える 基本原理 対応を保持する計算機 (DNS サーバ ) を配置し , そ の計算機に問い合わせる これにはもちろん IP を使って通信する 再び「大規模化」が課題DNS
大規模化の課題
世界で 1 台の DNS サーバにすべての対応を覚 えさせる ? 世の中で問い合わせが発生する度にその DNS サー バとの通信が発生 一度実行した問い合わせの結果を覚えておく ? 実際使われている ( キャッシュ ) 世界で一台の DNS サーバの負荷が大きい事は変わ らないDNS
問い合わせの負荷分散
世界には多数の DNS サーバがある 個々の DNS サーバは「一部の」名前の問い合 わせにしか答えられない ( 答えなくてよい ) この場合 , 「どの名前の問い合わせは , どの DNS サーバへ送れば良いのか ? 」が問題とな る www.ecc.u-tokyo.ac.jp の IP アドレスを聞きたいの だがどの DNS サーバに尋ねれば良い ?DNS
負荷分散方式
DNS 名全体が ( ファイル名と似たような ) 階層 構造・木構造をなしていることに注意 1 台の DNS サーバが担当する範囲はこの木構 造のある部分木 X.u-tokyo.ac.jp を担当する X.ac.jp を担当する DNS サーバ X.jp を担当する DNS サーバ ルート DNS サーバ X.com を担当する DNS サーバ X.google.com を担当する DNS サーバDNS
負荷分散方式
各 DNS サーバは 親 DNS サーバ (u-tokyo.ac.jp 担当サーバであれば , ac.jp 担当サーバ ) 直接の子 DNS サーバ (u-tokyo.ac.jp であれば , ecc.u-tokyo.ac.jp, t.u-tokyo.ac.jp など ) の IP アドレス「だけ」を覚えている u-tokyo.ac.jp 担当 ac.jp 担当問い合わせの解決
個々の計算機はどの DNS サーバへ問い合わせ ても良い 問い合わせを受けた DNS サーバは , 自分が解決できる場合すぐに答える , 自分の子供が解決すべき問い合わせは子供へ転送 たとえば u-tokyo.ac.jp 担当が , www.ecc.u-tokyo.ac.jp の問い合わせを受けた それ以外は親へ転送あのマシンの IP アドレスは ?
Mac, Unix: host コマンド
Windows: nslookup コマンド
host DNS 名
まとめ : 一台のマシンを「インター
ネットにつなげる」のに必要な情報
自分の IP アドレス 自分が所属する LAN に割り当てられた IP アド レスの範囲 ( サブネット ) 自分のサブネット範囲外の IP アドレスを中継 してくれるルータ ( デフォルトゲートウェイ ) DNS 問い合わせを投げる DNS サーバ (Primary DNS サーバ ) の IP アドレスそんな大変な設定をした覚えはな
い ?
自宅では PPP, DHCP という仕組みで自動設定 されていることがほとんど 情報が , PC に自動的に供給され , 設定されて いる 誰が供給している ? 典型例 ブロードバンドルータ ( 使っている場合 ) LAN につながっているサーバ (DHCP サーバ ) ADSL ルータの向こう側にいるサーバ理解の確認 : Web ブラウザでページ
が表示できるまで
例 : http://www.yahoo.co.jp/index.html 1. www.yahoo.co.jp の IP アドレスを求める 1-1. Primary DNS サーバの IP アドレスに問い合わ せ 1-1-1. そのアドレスと自分のサブネットを見比 べる . 多くの場合 DNS サーバはサブネットの 範囲外 (LAN の外 ) 1-1-2. そこでデフォルトゲートウェイに IP パ ケットを送り転送してもらう ( デフォルトゲー 1-2. 得られた www.yahoo.co.jp の IP アドレスに 「このページ (/index.html) を送れ」というリクエス トを投げる 1-2-1. ここでもおそらくデフォルトゲートウェ イ経由となる 1-3. めでたく返事 ( ページの内容 ) が得られて , ページがブラウザで表示される
「つながらない」理由と診断手段
IP アドレス , ゲートウェイ etc. の設定が失敗 している ifconfig, ipconfig LAN の中に問題がある ping ゲートウェイの IP アドレス DNS に問題がある host サーバの DNS 名 サーバが落ちているTCP
IP : 信頼性のない通信 送ったパケットは届かないかもしれない 理由 : 機器の故障 , 一時的な負荷増大 TCP : 信頼性のある通信 一部の IP パケットが届かない場合 , それらを再送 するなどして , 任意のバイト列を失うことなく交換 する仕組み インターネット上のほとんどのアプリケーショ ンが TCP を用いているアプリケーション層プロトコル
TCP/IP によって , 任意の byte 列を , 世界中の 計算機と交換する事ができる WWW, メール , IP 電話 , ファイル交換ソフト など , あらゆるインターネット上のアプリケー ションは ,TCP 上にさらなる取り決めを用いて 必要な機能を実現している WWW: HTTP (Hyper Text Transfer Protocol)