インターネットの仕組み
[教科書3.3.1]
「IP電話」というパケット通信を使った電話の場合、「固定電話」と本質的にはどこが違うのだろうか?
料金が安くなったとしたら、どうして安くなったのだろうか?
何か悪くなったことはないのだろうか?
インターネット
[教科書3.4.1]
- インターネット: ネットワークを相互に結合してできたネットワークの連合体
- ISP(Internet Service Provider,プロバイダ): 一般利用者に対してインターネットの接続を提供している業者。
プロバイダの相互接続図
- イントラネット: 企業などの組織のなかのネットワーク
- ネットワーク: インターネットのなかで中継せずに通信できる一部分
- ルータ: パケットを中継する装置。パケット交換機の一種。
- ルーティング: 目的地まで届けるための経路を決めること
- 各ルータはパケットの宛先を見て、より宛先に近いネットワークにそのパケットを転送する。
- ルーティングのための情報もインターネットで自動的に交換する。
- 途中のネットワークが故障していて、あるルートで送れない時は、
自動的に他のルートを使う。
→耐故障性が高い。構成の変更が容易 ← アメリカ国防省のARPANET(Advanced Research Projects Agency Network)が前身
東京大学のネットワークの構成はUTnetネットワーク構成図にある。
駒場はどのようにインターネットにつながっているか?
階層プロトコル
[教科書3.4.2]
- プロトコル: 通信規約。「GETを受け取ったら指定されたファイルの内容を返す。」というような決まり。
- こんにちは→
- ←こんにちは
- 私は「山口」です→
- ←確認しました。
- 私のパスワードは「川○」です→
- ←確認しました。命令をどうぞ。
- 私の口座の残高を教えてください。→
- ←マイナスです。
- それは困った→
- ←命令が理解できません。
- 階層プロトコル: プロトコルをレベル分けして整理したもの
- プロトコルをできるだけ共通にするためにレベル分けする。
- 携帯電話とPCで電子メールのやりとりができる。(物理的な通信方法は違う。上位が同じ)
- インターネットショッピングと対戦型ゲームでネットワークが共有できる。(応用は違う。下位が同じ)
階層プロトコルの例
- アプリケーション層: アプリケーション間の通信
- HTTP: ウェブにアクセスするためのプロトコル
- SMTP: 電子メールを送信するためのプロトコル
- DNS: ドメイン名(user.ecc.u-tokyoa.c.jp)からIPアドレス(133.11.70.15)を知るためのプロトコル(以下で説明)
- DHCP: 設定情報をもらうためのプロトコル。
持参したPCをインターネットに接続するような場合、ネットワークの設定情報をもらうために使う。
自宅でプロバイダにPCを接続する場合も設定情報をDHCPでもらうことがある。
- トランスポート層: 信頼性のある1:1の通信
- TCP: 仮想的な通信路を通して確実に届けるプロトコル。
telnetのように、送った文字がきちんと届くようにしていたのがこれ。
- UDP: 仮想的な通信路を作らずに送るプロトコル。
時刻同期など、失敗したらアプリケーション層でやりなおすものはこれを使う。
- ネットワーク層: ネットワーク間通信
- IP: 全世界のどこにでも、パケットを宛先に届けるためのプロトコル。
ただし、書留ではないので、パケットは壊れたりなくなったりすることがある。
- TCP/IP: インターネットでよく使うトランスポート層とネットワーク層の
プロトコルの組み合わせ。
- ネットワークインタフェース層: 直接つながっているネットワーク内の通信
インターネットになってみる
- カプセル化: プロトコルで必要な制御情報をデータの前や後ろにつけてパケットにまとめること。
上の層の「データ+制御情報」は下の層では単なる「データ」として扱う。
大きなデータは複数のパケットに分割して送ったりする。
デジタル化されたデータだけを扱うので、切ったり貼ったりが自由にできるのでこれが可能となっている。
携帯電話から電子メールを送るのと、PCから電子メールを送るので、共通のプロトコルは何か?
異なるプロトコルは何か?
携帯電話からPCに送った電子メールの文字が化けたのはなぜか?
IPアドレスとポート番号
[教科書3.4.3]
- IPアドレス: ネットワーク層で使う、宛先を特定するための32ビットのアドレス。
8ビットずつ10進数で表し、「.」で繋ぐ表記がよく使われる。
IPアドレスは全世界でユニークでなければならないので、勝手には使えず、割り当てて貰う必要がある。
日本ではJPNICが割り当てを行っている。
割り当てはWHOISで知ることができる。
「u-tokyo.ac.jp」の管理者を捜してみよ。
- ポート番号: コンピュータ内のアプリケーションを識別するための番号。
ウェブの仕組みの「telnet user.ecc.u-tokyo.ac.jp 80」の80がポート番号。
ポート番号が違うと、同じuser.ecc.u-tokyo.ac.jpでも違うサービスにアクセスすることになる。
ポート番号表の例。
攻撃の多いポートは閉じられている(そのポートへのパケットを受け付けない)ことがある。
新規の利用者に割り当てるIPアドレスがなくなってしまう、「IPアドレス枯渇問題」というものがある。
新規にIPアドレスが割り当てられなくなると誰がどのように困るのだろうか?
解決法はあるのだろうか?解決が進まない理由は何だろうか?
インターネット対戦型ゲームはどのようなポート番号を使っているかを調べてみよ。
「安全のために80番ポートへのパケットは通さないようになっています。」とプロバイダに言われたら何が起こったか?
DNS
[教科書3.4.1]
- ドメイン名システム(DNS: Domain Name System): ドメイン名(www.u-tokyo.ac.jpのようなもの)を
IPアドレス(133.11.128.254のようなもの)に変換するシステム。
- WWWシミュレータを
右ボタンで別ウィンドウで開く。
- WWWブラウザで右ボタン。URL入力。host.a.jp/index.htmlを入力→了解。
- WWWブラウザで右ボタン。HTTPリクエスト。リクエストが表示されたらOK。レスポンスが表示されたらOK。
- WWWブラウザで右ボタン。ページ表示。
- ドメイン名は木構造になっている。[教科書図4.21]
- いくつかのドメイン名にはそれ(以下)を管理するDNSサーバがある。
- u-tokyo.ac.jp直下は、東京大学のDNSサーバが管理している。
- ecc.u-tokyo.ac.jpは、東京大学情報基盤センターのDNSサーバが管理している。
- c.u-tokyo.ac.jpは、東京大学教養学部のDNSサーバが管理している。
木構造の下の方のDNSサーバから問い合わせて、分からなければ上位のサーバに聞く。
木構造の一番上にはルートサーバがある。
ルートサーバは全世界に13台あり、日本にも1台ある。
- nslookupコマンドを使ってホスト名を検索する。
- ターミナルを開く
- 「nslookup ホスト名」を入力する。(入力が終わったら
を押す)
- IPアドレスが表示される。どのDNSサーバで調べたかも表示される。
ちょっとした話題
- 「u-tokyo.ac.jp」: 東京大学が通常使っているドメイン名
最近jp直下のドメインも(jp直下を管理してる組織に)
申請して認められれば取得できるようになった。
- 「u-tokyo.jp」「東京大学.jp」:
東京大学のものと想像されるので、(防衛的に)東京大学が取得している。
- 「東大.jp」: 紛らわしいが、東京大学とは全く関係がないドメイン名。
申請したが取得できなかった。
ホスト名の代わりにIPアドレスを入力して、ウェブページを開いてみよ。
user.ecc.u-tokyo.ac.jpの場合はホスト名でもIPアドレスでも開くことができるが、
IPアドレスでしか開く事ができないウェブページはどのようなものと想像されるか?
試験情報があるのかと思ってhttp://user.ecc.u-tokyo.ac.jp/~yamaguch/shiken.htmlにアクセスしたら変なページが開いた。
どうして表示されたURLと違うページが開くのだろうか?
電子メールで文字を大きくしたり、色が付けられるようにしているのはどうしているのだろうか?
どうやったら調べられるだろうか?
他人のPCに、自分で用意したDNSサーバを使わせたらどのようなことができるだろうか?
例えば、その他人が、http://www.ginko.co.jp/index.htmlにアクセスし、インターネットバンキングで
送金しようとしているとする。PCはwww.ginko.co.jpのIPアドレスを知るために、DNSサーバに問合せを行う。
そこで問合せに対して任意のIPアドレスを返すことができたらどうだろうか?
yamaguch@mail.ecc.u-tokyo.ac.jp Copyright 2011 Kazunori Yamaguchi 山口和紀@東京大学総合文化研究科