Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
1
2008/8/28 校内研修会(樟葉南小学校) 1
インターネットの仕組み
京都教育大学
多田 知正
2008/8/28 校内研修会(樟葉南小学校) 2
インターネットの普及
インターネットはごく身近な存在に
子どもが普通にネットを使う時代
子どもの「なぜ」の対象に
大人は答えられる?
2008/8/28 校内研修会(樟葉南小学校) 3
子どもの「なぜ」
なぜインターネットはあんな細い線で写真や音楽を送れるの?
なぜ1つのデータをわざわざパケットに分ける
の?
「光」はどうして速いの?
パケットはどうやって世界中に届くの?
もしパケットが途中で消えるとどうなるの?
2008/8/28 校内研修会(樟葉南小学校) 4
情報伝達の方法
2008/8/28 校内研修会(樟葉南小学校) 5
ここでのテーマ
電気でどうやって文章,画像,音声などを送るのか?
ところがこれで何でも送ってしまう日記,写真,音楽 etc.
インターネットの計算機はケーブルでつながっているケーブル上は電気が流れるだけ
2008/8/28 校内研修会(樟葉南小学校) 6
電気で何かを伝えようどういうわけか2本のケーブルでつながっている2つの家
鈴木家 佐藤家
何かを伝えたくてこうしてみた
2
2008/8/28 校内研修会(樟葉南小学校) 7
電気で何かを伝えよう
スイッチOFF
スイッチON
電球は消えている
電球がつく
当たり前ですが...
鈴木さん
佐藤さん
2008/8/28 校内研修会(樟葉南小学校) 8
電気で何かを伝えよう
ここで,2つの約束を決める1. スイッチOFFで0,スイッチONで1を表す2. 1秒間隔でスイッチを切り替える
ON,OFF,ON,ON,OFF→1,0,1,1,0ね
1,0,1,1,0を伝えましょう→ON,OFF,ON,ON,OFF
「0と1のならび」が電気を使って伝わった!!
2008/8/28 校内研修会(樟葉南小学校) 9
0と1だけで数字を表そう
0と1だけじゃつまらない
→普通の数字も伝えたい
普通の数字は0から9を使って表せる16, 256, 1024, 65536,etc.→10で桁が繰り上がるから(10進法)
だったら「2で桁が繰り上がる数」を使おう!(2進法)0, 1, 2, 3, 4, 5, …→ “0”, “1”, “10”, “11”, “100”, “101”,…
どんな数でも0と1だけで表せる!(とりあえず整数だけ)
でも...
普通の101と区別するためこの資料では“ ”ではさみます
2008/8/28 校内研修会(樟葉南小学校) 10
0と1だけで数字を表そう
さっき電気で伝わった「0と1のならび」ですが...
100101001010010100011001…いったいどこで切れるの!!
約束を1つ追加1. 0はスイッチOFF,1はスイッチON2. 1秒間隔でスイッチを切り替える
3. 8個ごとに切れる
100101001010010100011001
“10010100”, “10100101”, “00011001”=140, 165, 25ね
と,いうわけでどんな数字でも電気で伝えられる!!“11111111”(255)以上の数は...
2008/8/28 校内研修会(樟葉南小学校) 11
大きい数を送りたいとき
あらかじめ切れ目を大きめにしておく
1. 0はスイッチOFF,1はスイッチON2. 1秒間隔でスイッチを切り替える
3. 8個ごとに切れる
32個にしておけば,“11111111111111111111111111111111”=4294967295(42億9496万7295)まで大丈夫(まあこれくらいあれば)
32個
その代わり,1つの数字を伝えるのに時間がかかる
2008/8/28 校内研修会(樟葉南小学校) 12
数字で何でも表そう
電気を使って数字が伝えられる→数字で表せるものは,何でも電気で伝えられる
何でも数字で表してやろう→どうやって?
213,3,32,65,53,…
日記日記を表した数字
213,3,32,65,53,…
もとの日記日記を表した数字
送る側
受け取る側
数字を送る
数字を受け取る
3
2008/8/28 校内研修会(樟葉南小学校) 13
数字で文章を表そう
文章=文字の集まり→それぞれの文字を数字で表せば,文章が数字で表せる!
A→1, B→2, …, Z→26 と決める
“I AM VERY HAPPY”を数字で表すと?Iが9だから, 初が9で...あれ,空白はどうする?
空白記号→0とすると
“I AM VERY HAPPY”= 9,0,1,13,0,22,5,18,25,0,8,1,16,16,25
と,いうわけで「文章」は電気を使って送ることができる!
2008/8/28 校内研修会(樟葉南小学校) 14
文字に数字を割り当てる
英語の文字• アルファベット26文字 x 2• 記号(コンマ,ピリオド etc.)
文字への数字の割り当て「文字コード」
大文字A(65)
空白記号(32)
コード(code): 符号
あることを表すために,一定の体系に基づいて作られたしるし
英語の標準文字コード「情報交換のための米国標準コード」略してASCII(アスキー)
2008/8/28 校内研修会(樟葉南小学校) 15
文字に数字を割り当てる
日本語の文字• かな50文字 x 2(ひらがな,カタカナ)• 漢字たくさん• 記号が少々
もちろん日本語の文字にもそれぞれ数字が割り当てられている
例えば,“数”の文字コードは...→知らなくていいです
日本語の文字コードは?
延々と続く...
2008/8/28 校内研修会(樟葉南小学校) 16
文字化けはなぜ起きるか?
実は日本語の文字コードにはいくつか種類があるJISコードEUCコードシフトJISコードユニコード
送られてきた文章の文字コードを,違う文字コードとして解釈するとめちゃくちゃな文字が表示される
→同じ文字でも割り当てられている数字が異なる
� �$BJ8;z2=$1 (B(“文字化け”って書いてます)
正しい文字コードを計算機に教えてあげれば直ります
2008/8/28 校内研修会(樟葉南小学校) 17
数字で画像を表そう
ここに一枚の写真があります
この部分を拡大すると
2008/8/28 校内研修会(樟葉南小学校) 18
数字で画像を表そう
さらにこの部分を拡大すると
4
2008/8/28 校内研修会(樟葉南小学校) 19
数字で画像を表そう
写真というのは小さな点の集合それぞれの点には色がついている
白
グレー
緑
紫
黄
「画素」という
2008/8/28 校内研修会(樟葉南小学校) 20
数字で画像を表そう
それぞれの点の色に数字を割り当てると,画像が数字で表せる!
たとえば白:0,黒:1,赤:2とすれば1,1,1,1,1,1,1,1,1,1,1,1,11,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,2,2,2,0,0,0,0,11,0,0,0,2,2,2,2,2,0,0,0,11,0,0,0,2,2,2,2,2,0,0,0,11,0,0,0,0,2,2,2,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,11,1,1,1,1,1,1,1,1,1,1,1,1
と,いうわけで「画像」は電気を使って送ることができる!
2008/8/28 校内研修会(樟葉南小学校) 21
色に数字を割り当てる
色にどの数字を割り当てるか?→世の中にはたくさんの色がある→適当に数字を割り当てると大変なことに
水色→じゃあ,32(みずで32)
うすい水色?→うーん,132( 初の1は薄いってことで...)じゃ,これは?
緑色→とりあえず3(みどりだけに)
こんな調子で全ての色に数字を割り当てていると日が暮れる→というかそもそも覚えられない
2008/8/28 校内研修会(樟葉南小学校) 22
色に数字を割り当てる光の3原色=赤,緑,青
3つの色を混ぜることでいろんな色が表せる
3つの色の強さ(明るさ)によって色が決まる
+ =
+ =
混ぜれば混ぜるほど明るくなる→絵の具とは逆
赤 暗い青 赤紫
暗い赤 青 青紫
強い
弱い
2008/8/28 校内研修会(樟葉南小学校) 23
色に数字を割り当てる
赤,青,緑の色の強さ(明るさ)を数字で表そう
+=赤の強さ100赤紫
+
+赤の強さ100
青の強さ50
青の強さ100+
緑の強さ0
緑の強さ100
→(100,0,50)=
白
→(100,100,100)
強を100, 弱を0とすると
あらゆる色が,3つの数字を使って表せる!
このような割り当て方を「RGBカラーモデル」という(RGBはRed Green Blueの略)
2008/8/28 校内研修会(樟葉南小学校) 24
数字で動画を表そう
動画=画像の連続したもの
画像が数字で表せるのだから,動画ももちろん数字で表せる!
と,いうわけで「動画」は電気を使って送ることができる!
5
2008/8/28 校内研修会(樟葉南小学校) 25
数字で音を表そう
音ってそもそも何でしょう?→音とは,空気の振動です
「空気の振動」をどうやって数字で表すか?
楽器は,自分が振動することで空気を振動させる
人間は,鼓膜の振動を音として感じる
振動は,空気中を伝わって耳の中の鼓膜を振動させる
2008/8/28 校内研修会(樟葉南小学校) 26
数字で音を表そう
「振動」を数字で表すには?
地震計の記録
振動といえば地面の振動→地震
地面の振動する様子をギザギザ(波形)で表している
横軸:時間の経過縦軸:どのくらいずれたか(振幅)
2008/8/28 校内研修会(樟葉南小学校) 27
数字で音を表そう
「音=空気の振動」も同じように波形であらわせる
例えば,時報の「ポーン」はこんな感じ
時間
振幅
音量の小さい「ポーン」→振幅が小さい
時間
振幅
時間
振幅音の高い「ポーン」→周波数が高い
2008/8/28 校内研修会(樟葉南小学校) 28
数字で音を表そう
波形を数字で表すには
時間
振幅
一定時間ごとに振幅を調べて,数字で表す
0
103
-3 -10
0,3,7,9,10,9,7,3,0,-3,-7,-9,-10,-9,…
2008/8/28 校内研修会(樟葉南小学校) 29
数字で音を表そう
0,3,7,9,10,9,7,3,0,-3,-7,-9,-10,-9,…
時間
振幅
数字の列
点の並び
元の波形→音声
音声も数字で表せる!
間を適当に埋めると
数字の列から元の波形に
2008/8/28 校内研修会(樟葉南小学校) 30
数字で音を表そう
スピーカーは,音の波形に合わせて振動して,空気を振るわせる→音が鳴る
と,いうわけで「音声」も電気を使って送ることができる!
6
2008/8/28 校内研修会(樟葉南小学校) 31
計算機はどうやっているのか?
1. 送りたいデータを0と1のならび
で表す2. それに合わせて高速なスイッ
チでON/OFFを切り替える
電流が流れたり止まったり
1. 電流の変化から0と1のならびを読み取る
2. 0と1のならびを元の
データに直す
計算機は のように電球を点けたり消したりはしていない
2008/8/28 校内研修会(樟葉南小学校) 32
ネットワークの速さとは?
スイッチを高速に切り替えるほど,たくさんのデータが送れる
実はネットワークの速さは,この切り替えの速さで決まる→電気の流れる速さとは関係がない
例えば,50Mbpsとは,1秒間に5千万回スイッチを切り替えるという意味→1秒で5千万個の0と1のならびが送れる→日本語の文章なら1秒で312.5万文字送れる
ネットワークの速さ=一定時間にどれだけのデータが送れるか
ON,OFF,OFF,ON,ON,ON,OFF,ON…
Mbps:メガビーピーエス• M(mega):100万• b(bit):0か1• p(per):~あたり• s(second):秒
2008/8/28 校内研修会(樟葉南小学校) 33
ネットワークの速さとは?
ネットワーク速さは電気の速さとは関係がないでも遠くは近くよりデータの移動に時間がかかるのでは?
...その通りです実際にデータは遅れて到着します
速いネットワーク(でも遠い)
遅いネットワーク(でも近い)
2008/8/28 校内研修会(樟葉南小学校) 34
ネットワークの速さとは?
速いネットワーク(でも遠い)
遅いネットワーク(でも近い)データは少し遅れてドバッとつく
データはちょっとずつチョロチョロとつく
データの到着の仕方はどう違うのか?
パイプにたとえると速いネットワーク:太いパイプ遅いネットワーク:細いパイプ
01011011010101101
1 1 0 1
2008/8/28 校内研修会(樟葉南小学校) 35
ネットワークの速さとは?ネットワークの速さのことを帯域幅(bandwidth)という
ブロードバンドとは,帯域幅(bandwidth)が広い(broad)ことちなみに逆はナローバンド(narrowband)です(なぜあまり耳にしないかというと「自慢にならないから」)
帯域って何?帯域とは本当は周波数帯域のことでそもそも...→どうでもいいのでやめときます
要するにネットワークの速さのことを幅で表すということ
2008/8/28 校内研修会(樟葉南小学校) 36
ネットワークは光の時代
光ファイバーを使ったネットワークが広まりつつある
速い「光」に乗り換えよう
7
2008/8/28 校内研修会(樟葉南小学校) 37
「光」はなぜ速いのか?
そりゃあなんたって「光」ですから
299,792,458 m/s
この世で一番速い
あのー,電気が伝わるのも同じ速度ですが...
2008/8/28 校内研修会(樟葉南小学校) 38
電気による通信と光による通信
電気の強弱(電圧の変化)で信号を送る
光の強弱で信号を送る
導線
光ファイバー
2008/8/28 校内研修会(樟葉南小学校) 39
「なぜ光が速いのか」の答え
http://ja.wikipedia.org/プリズムによる分光
2008/8/28 校内研修会(樟葉南小学校) 40
光の色と波長
光の色は波長の違い
http://www1.c3-net.ne.jp/kato/colcube/index.html
2008/8/28 校内研修会(樟葉南小学校) 41
プリズムの意味するもの普段我々の目にする光は波長の異なる複数の光が合わさったもの
波長ごとに光を分解することができる
と,いうことは
2008/8/28 校内研修会(樟葉南小学校) 42
光をまとめて送る
波長の異なる複数の光を1つにまとめて
目的地で元の光に分解する
1本の光ファイバーにのせて送る
8
2008/8/28 校内研修会(樟葉南小学校) 43
だから光は速い1本の光ファイバーにたくさんの波長の光をのせることが出来る
もし1000波長のせれば1000倍の情報を送れる
→速いネットワーク
http://www.ntt.co.jp/RD/OFIS/active/2005pdf/hot/nw/07.html2008/8/28 校内研修会(樟葉南小学校) 44
余談:データの大きさ
何もしないとデータはハンパじゃなく大きくなる画像の場合• 点(画素)の数が縦640個,横480個の写真(約30万画素)• 約167万色で,約46万文字に相当
動画の場合• 1秒間に約30枚の画像で,1秒あたり約1380万文字(+音声)
音声の場合• CDと同じ音質で,1秒あたり約88000文字に相当
→さすがにそのまま送るのは大変
2008/8/28 校内研修会(樟葉南小学校) 45
余談:データの圧縮
さまざまな圧縮方法が用いられている画像:GIF, JPEG, PNG音声:MP3, WMA, AAC動画:MPEG1, MPEG2, MPEG4, DivX, WMV
データを変換して大きさを小さくする→「データの圧縮」
インターネットでいろいろなものを送れるのは,実は圧縮のおかげ
2008/8/28 校内研修会(樟葉南小学校) 46
ここまでのまとめ
電気でいろんなものが送れるのはなぜか?
いろんなものが数字で表せる
文章,画像,動画,音声
数字が0と1だけで表せる
電気で0と1の並びが送れる
ネットワークの速さは電気の流れる速さとは関係がない
ネットワークの速さは帯域の広さで表される
2008/8/28 校内研修会(樟葉南小学校) 47
LANでの通信の仕組み
2008/8/28 校内研修会(樟葉南小学校) 48
ここでのテーマ
asahi.com
なぜ同時にたくさんの通信を行えるのか?
電話では同時に通信できるのは1人だけ
インターネットは同時に多数通信できる
メール
WWWダウンロード
9
2008/8/28 校内研修会(樟葉南小学校) 49
電話の場合
交換機線と線をつなぐスイッチ
通話する相手と直接線をつなぐ電話を切るまでずっとつなぎっぱなし→同時に1人としか通信できない
ネットワークは方法がぜんぜん違う→どう違うのか?2008/8/28 校内研修会(樟葉南小学校) 50
先ほど説明したネットワーク
送信側 受信側
お互いにデータを送りあうにはどうするか?通信できる計算機の数を増やすにはどうするか?多数の通信を同時に行うにはどうするか?
2台の計算機からなるネットワーク
送信側から受信側にデータを送ることができる
2008/8/28 校内研修会(樟葉南小学校) 51
お互いにデータを送りあう
送信側 受信側
もともとケーブルには方向なんて無い→一方がデータを送ってないときはもう一方が送ってもかまわない
受信側 送信側
54,67,32,12
93,34,15,77
2008/8/28 校内研修会(樟葉南小学校) 52
データの終わり
データはいつ送り終わるのか?
電流が流れていない
• 00000…を送り続けている?• 何も送っていない?
どちらか分からない
そう言えば言い忘れていたことが...
「データの終わり」を知らせるにはどうすればいいか?
2008/8/28 校内研修会(樟葉南小学校) 53
データの長さ
「本当に送りたい数字」の前に,「今から送る数字の数」をくっつけて送る例えば9,0,1,13,0,22,5,18,25,0,8,1,16,16,25(15個の数字)
を送りたいとき15,9,0,1,13,0,22,5,18,25,0,8,1,16,16,25を送る
「約束」を1つ追加4. 初の数字は送りたい数字の数を表す
全部で4つ12,49,0,0はい終了12,49,0,0
4,12,49,0,0
2008/8/28 校内研修会(樟葉南小学校) 54
データを送りあう方法
4,12,49,0,0
6,8,97,20,1,24,11
送りたいが少し待とう
送り終わったな
データが送られてきた
1本のケーブルでは両方同時に送れない
→データを送る前に相手がデータを送っていないか調べる
10
2008/8/28 校内研修会(樟葉南小学校) 55
みんなで1本のケーブルを使う
通信できる計算機の数を増やしたい→なるべく安く簡単に
1本のケーブルにみんなつないでしまおう
1本のケーブルでどうやって通信するのか?
2008/8/28 校内研修会(樟葉南小学校) 56
1本のケーブルでのデータの届き方
1つの計算機が送ったデータはもちろん全員に届く
→本当に送りたいのはそのうちの1つ
どうやって1つの計算機だけにデータを送るのか?
1本のケーブルでつながっているということは...
2008/8/28 校内研修会(樟葉南小学校) 57
計算機に名前をつける
とにかく,計算機を区別しないといけない→計算機に名前をつける
18 7 36 12 56
同じ名前が2つあってはいけない
名前は何でも良いとりあえず数字にしておく
2008/8/28 校内研修会(樟葉南小学校) 58
データのあて先
「本当に送りたい数字」の前の「今から送る数字の数」の前に「データのあて先の計算機の名前」をくっつけて送る
例えば4,97,3,77,2(5個の数字)を計算機12に送りたいとき12,5,4,97,3,77,2を送る
「約束」をちょっと変更4. 初の数字はあて先の計算機の名前を表す5. 次の数字は送りたい数字の数を表す
どの計算機に送りたいのかを指定しないといけない
2008/8/28 校内研修会(樟葉南小学校) 59
あて先のついたデータの受信
18 7 36 12 56
12,5,4,97,3,77,2
「あて先のついたデータ」が全員に届く→各計算機は「自分あてのデータ」のみを受け取る「自分あてでないデータ」は見て見ぬふりをする
無視 無視 無視4,97,3,77,2
2008/8/28 校内研修会(樟葉南小学校) 60
通信のための約束
これまでにいくつかの約束を決めた1. 0はスイッチOFF,1はスイッチON2. 1秒間隔でスイッチを切り替える3. 8個ごとに切れる
4. 初の数字はあて先の計算機の名前を表す5. 次の数字は送りたい数字の数を表す
11
2008/8/28 校内研修会(樟葉南小学校) 61
通信プロトコル
電気を使うかどうかにかかわらず,通信を行うには約束が必要→ある信号を送って,それを相手が解釈することで通信が成り立つ
モールス信号野球のサイン暗号文
約束がちゃんとされてないと,解釈に失敗し,通信は成り立たない文字化け(約束の取り違え)ノストラダムスの大予言(そもそも約束すらしていない→勝手な解釈)
ネットワークでは,この約束のことを通信プロトコルという
ちなみに,IPアドレスのIPはInternet Protocolの略
→要するにインターネットで通信する際の約束という意味
2008/8/28 校内研修会(樟葉南小学校) 62
1本のケーブルで送る方法
誰か送っているな
1本のケーブルでは同時に送れない
→データを送る前に誰かがデータを送っていないか調べる
空いたな
2008/8/28 校内研修会(樟葉南小学校) 63
通信が待たされる
12,50000,4,97,3,77,2,18,44,37,91,35,63,8…
18 7 36 12 56
まだ? まだ? まだ?長いな…
これでは不便→「1本のケーブル」で「同時にたくさんの通信」を行うには?
前の人が送り終わるまでデータを送れないもし,だれかが長ーいデータを送ると...
2008/8/28 校内研修会(樟葉南小学校) 64
データの分割
長いデータを送るには時間がかかる→他の人が長時間待たされるそこで,送りたいデータを小さな断片に分ける
12,50000,4,97,3,77,2,18,44,37,91,35,63,8…
多数の断片
すごく長いデータ
小さく分割する
2008/8/28 校内研修会(樟葉南小学校) 65
断片について
それぞれの断片には「あて先」と「長さ」がついている
あて先の計算機名
断片の長さ
12,50000,4,97,3,77,2,18,44,37,91,35,63,8…
12,20,54,22,74,88,24,6,1,0,55,19,66,24,72,7…
1つ1つの断片は小さいので,一瞬で送ることができる
2008/8/28 校内研修会(樟葉南小学校) 66
断片を用いた通信各計算機が順番に断片を1つずつ送る(1)
(2)
(3)
(4)
(5)
(6)
各計算機は待たされることなく少しずつデータを送る→同時にたくさんの通信が可能!
12
2008/8/28 校内研修会(樟葉南小学校) 67
通信を行う順番
各計算機は「順番に」データの断片(パケット)を送る→順番はどうやって決めるのか?
次? 次?次?
2008/8/28 校内研修会(樟葉南小学校) 68
順番はどうやって決めるか?
実は順番なんて決めていない→各計算機は「空いていればいつでも」データの断片を送れる
誰か送っているな
空いたな
Go!
送り終わった
2008/8/28 校内研修会(樟葉南小学校) 69
通信の衝突
誰か送っているな
空いたな
あ!あ!
たまにこういうことも...
複数の通信が同時に発生することを通信の衝突という
続けて送ろう
2008/8/28 校内研修会(樟葉南小学校) 70
衝突の検出
通信が衝突するとどうなるか??2つ以上の計算機が同時に電流のON/OFFを切り替えようとする
→お互いに混じりあってごちゃごちゃになる
データを送信しているときのケーブル上の電流の変化がおかしい→衝突が起きたことがわかる
ON,OFF,OFF,ON,ON,ON,OFF,ON…
OFF,OFF,ON,OFF,ON,OFF,ON,ON…
2008/8/28 校内研修会(樟葉南小学校) 71
衝突を検出したら
やられた!1秒待とう
今度はOK!
少し待って送りなおす
残念!2秒待とう
今度はOK!衝突の1秒後
衝突の2秒後
待ち時間はランダムに決める(もし 初から決まってたら?)2008/8/28 校内研修会(樟葉南小学校) 72
おさらい(電話の場合)
電話は通話時に相手と直接線をつなぐ→同時に1人としか通信できない
このような方法を回線交換方式という
13
2008/8/28 校内研修会(樟葉南小学校) 73
おさらい(ネットワークの場合)
ネットワークはもともと全員がつながっているデータを細かく分割して順に送りあう→同時にたくさんの通信が行える
このような方法をパケット交換方式という分割されたデータの断片をパケットという
2008/8/28 校内研修会(樟葉南小学校) 74
じゃあインターネットって...
世界中が一本のケーブルでつながっている?
さすがにそういうわけではありません
2008/8/28 校内研修会(樟葉南小学校) 75
LANとインターネット
じつは,ここまでは小規模のネットワークに関する話会社のxx部xx課のネットワーク大学の研究室のネットワーク家庭内のネットワーク
このような小規模のネットワークのことをLAN(Local Area Network)という
インターネットはこのようなたくさんの小さなネットワークがお互いにつながって巨大なネットワークを構成しています
「ネットワークをつなぐ」とは?いったいどのようにつながっているのか?
2008/8/28 校内研修会(樟葉南小学校) 76
ここまでのまとめ
同時にたくさんの通信が行えるのはなぜか?もともと全部の計算機がつながっているただし小規模のネットワーク(LAN)での話
データを細かく分割して順番に送る(パケット交換方式)
1回に送れるデータは少しでも,順番がすぐ回ってくる
実は順番なんてない空いていれば送る衝突したら少し待って送りなおす
インターネットはたくさんの小さいネットワークがつながったもの
2008/8/28 校内研修会(樟葉南小学校) 77
LANからインターネットへ
2008/8/28 校内研修会(樟葉南小学校) 78
ここでのテーマ
インターネットは非常に大きなネットワーク→データの通り道はかなり複雑
ところがすべてのデータは正しく目的地にたどり着く
データが迷わず目的地にたどりつくのはなぜか?
14
2008/8/28 校内研修会(樟葉南小学校) 79
ここでのテーマ
インターネットは膨大な数の機械が集まったもの機械はいつか壊れる→インターネットはいつもどこかが必ず壊れている
ところがインターネット自体はめったに壊れない
インターネットはなぜ壊れにくいのか?2008/8/28 校内研修会(樟葉南小学校) 80
復習
小規模なネットワーク:全部の計算機が 初からつながっているデータを細かく分割して順に送りあう→同時にたくさんの通信が行える
この小さなネットワークをLAN(Local Area Network)というインターネットは膨大な数のLANがつながったもの
どのようにつながっているか?
2008/8/28 校内研修会(樟葉南小学校) 81
2つのLANをつなぐ
1つのLANは1本のケーブル
単純な方法ケーブルを直接つないでしまう
これで何とかなりそうただし困ったことが...
2008/8/28 校内研修会(樟葉南小学校) 82
困ったこと
各計算機はデータの断片を順番に送りあう
同時にデータを送る計算機も増える
なかなかデータを送れない
データを送る速度が遅くなる
LANをつなぐと計算機が増える
順番がなかなか回ってこない
2008/8/28 校内研修会(樟葉南小学校) 83
LANに玄関を作る
そこで,LANの玄関を用意する他のLANへの出口
LANの玄関同士がつながっている
この玄関のことをゲートウェイ(gateway)というLANの内側と外側を仕切っている
2008/8/28 校内研修会(樟葉南小学校) 84
ゲートウェイの仕事
LANと外のネットワークの両方につながっている
必要なデータだけを転送する
外の計算機あて
LAN内の計算機あて
LAN
LAN内の計算機あて
外の計算機あて
LAN
OK! だめ!
15
2008/8/28 校内研修会(樟葉南小学校) 85
ゲートウェイがあるとLANにデータを流したときLAN内のすべての計算機に届く(あて先以外は見て見ぬふり)
ゲートウェイの外側には出て行かない
2008/8/28 校内研修会(樟葉南小学校) 86
LANの中の計算機にデータを送る
同じLAN内の計算機にデータを送るとき両方のLANで同時にデータを送ることができる
LANをつないでも遅くならない
2008/8/28 校内研修会(樟葉南小学校) 87
LANの外の計算機にデータを送る
別のLAN内の計算機にデータを送るには1. まず自分のLANのゲートウェイにデータを送る2. 自分のLANのゲートウェイから相手のLANのゲートウェイ
にデータが送られる3. 相手のLANのゲートウェイから目的の計算機にデータが
送られる
2008/8/28 校内研修会(樟葉南小学校) 88
データのあて先は?
でも本当はここに送りたい
とりあえずここに送る
ゲートウェイにも普通の計算機と同じく名前がある→データのあて先はどちらの名前を書けばいいのか?
ゲートウェイ,目的地の計算機?
2008/8/28 校内研修会(樟葉南小学校) 89
データのあて先は目的地
• データには 終的な目的地をあて先として書く(そうしないとデータを届けようがないので)
• ゲートウェイの名前は各計算機にあらかじめ登録しておく• 各計算機は
• あて先がLAN内の計算機→そのまま送る• あて先がLAN外の計算機→ゲートウェイにとりあえず送る
2008/8/28 校内研修会(樟葉南小学校) 90
まだある困ったこと
計算機の名前はそれぞれのネットワークでつける
2つのLANをつないで1つにすると
計算機の名前が重複する場合がある
17 1724 5 48 33 59 4
LANをつなぐときは,両方のLANで重複が無いように
計算機の名前をつけておかなければならない→かなり面倒
16
2008/8/28 校内研修会(樟葉南小学校) 91
しかも
ゲートウェイではLAN内の計算機あてのデータとそれ以外のデータを
区別しなければならない
データのあて先で区別するしかない
えーと,うちのLANの計算機の
名前は2と5と12と54と67と87と98,…
だから,あんたはだめ
LAN内の計算機の名前をいちいち覚えておくのは大変
18あてのデータ
2008/8/28 校内研修会(樟葉南小学校) 92
LANに名前をつける
この2つの問題を一度に解決できるいい方法が
それはLANに名前をつけること
14 36データのあて先を(LANの名前,計算機の名前)にする
2008/8/28 校内研修会(樟葉南小学校) 93
LANに名前をつけると
17 1724 5 48 33 59 4
いいことその1違うLANに同じ名前の計算機があってもあて先が重複しない
14 36
(36,17)あて
計算機の名前はLAN内で重複がないようにするだけでよい
2008/8/28 校内研修会(樟葉南小学校) 94
LANに名前をつけると
いいことその2ゲートウェイの仕事が楽になる
うちのLANの名前は43だから
あんたはだめ(24,18)あてのデータ
LAN内の計算機の名前を覚える必要がない
2008/8/28 校内研修会(樟葉南小学校) 95
たくさんのLANをつなぐ
簡単なやり方ゲートウェイ同士をLANのようにそのままつないでしまう
こうなると2つと言わずもっとたくさんつなぎたくなる
LAN LAN LAN LAN
2008/8/28 校内研修会(樟葉南小学校) 96
困ったこと
LAN LAN LAN LAN
LAN LAN LAN LAN
LANの間を結ぶケーブルは1本→LAN間の通信は順番に行う
LANを越えてデータを送る場合も増える
なかなかデータを送れない
データを送る速度が遅くなる
世界中のLANをつなぐと大変な数に
順番がなかなか回ってこない
17
2008/8/28 校内研修会(樟葉南小学校) 97
ネットワークの中継地点
そこで,中継地点を用意する
この中継地点をルータ(router)という
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
2008/8/28 校内研修会(樟葉南小学校) 98
ルータ
3つ以上のケーブルにつながっているケーブルの先はLANまたは別のルータ
あるケーブルから来たデータをあて先に応じて適切なケーブルに転送する
えーっと,24のLANはこっちでーす
(24,18)あてのデータ
2008/8/28 校内研修会(樟葉南小学校) 99
データが送られる様子
それぞれのルータで適切な行き先が選ばれて目的地にたどり着く
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
2008/8/28 校内研修会(樟葉南小学校) 100
ルータのなぞ
なぜルータはデータをどのケーブルに転送すればいいかがわかるのか
えーっと,長年の経験とあとは勘ですね,勘
そんなわけはない
2008/8/28 校内研修会(樟葉南小学校) 101
実は...
表に全部書いてある
この表のことを経路表という
...
2008/8/28 校内研修会(樟葉南小学校) 102
経路表
4番のケーブルそれ以外
3番のケーブル462番のケーブル371番のケーブル241番のケーブル17どのケーブル?LANの名前
1 2 43
すべてのルータがこういう表を持っている経路表は自動的に作られる
LANごとにどのケーブルに転送するか書いてある
18
2008/8/28 校内研修会(樟葉南小学校) 103
経路表の例
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
4他
346237124117
37
2417
4650
各ルータは自分の経路表を見てデータを転送する
66
2他
366428150131
3128
1481
21
43
2
12
3 4
2008/8/28 校内研修会(樟葉南小学校) 104
LAN
ルータの故障
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
もしルータが壊れたら...
2008/8/28 校内研修会(樟葉南小学校) 105
LAN
経路表の更新
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
1他
346237124117
1
43
2
自動的に代わりの経路を発見して,経路表を更新する
37
2417
4650
663128
1481
2
2008/8/28 校内研修会(樟葉南小学校) 106
ルータが直ったら
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
4他
346237124117
37
2417
4650
663128
1481
2
再び経路表を更新し,もとの経路でデータを送る
1
43
2
2008/8/28 校内研修会(樟葉南小学校) 107
経路制御
ネットワークの状況が変化したときルータが壊れた
新しいルータが追加された
など...
各ルータは自動的に良い経路を見つけ出し,自動的に経路表を更新
→インターネットがめったに壊れないのはこのため
このように経路を自動的に決定することを経路制御という
2008/8/28 校内研修会(樟葉南小学校) 108
ここまでのまとめ
世界中の計算機はどのようにつながっているか?小さなネットワーク(LAN)がルータを通じてつながってい
る
ルータはデータを目的地まで導いてくれる
LANの入り口にはゲートウェイがあり,必要なデータだ
けを転送してくれる
LAN内の計算機は1本のケーブルでつながっている
19
2008/8/28 校内研修会(樟葉南小学校) 109
IPのはたらき
2008/8/28 校内研修会(樟葉南小学校) 110
ここでのテーマIPアドレスのIPはインターネットプロトコルの略
インターネットで通信するために必要ないろいろなことを決めている
IPはどういうことを決めているのか?
2008/8/28 校内研修会(樟葉南小学校) 111
IPの話の前に
これまでの話に出てきた「データの断片」のことを以下ではパケットという
パケット(packet): 小さな包み
「パケ代半額」の「パケ」はパケットのこと
2008/8/28 校内研修会(樟葉南小学校) 112
IPで決めていること
パケットにくっつける情報あて先,パケットの大きさ,etc.
あて先の指定の仕方
パケットの送り方どうやって目的地に届けるか?道に迷ったパケットをどうするか?
インターネットを使って,世界中にパケットを送るために必要なことを決めている
2008/8/28 校内研修会(樟葉南小学校) 113
IPアドレス
インターネットでの計算機のあて先
LANの名前と計算機の名前からなる
0~255までの数字が4つ並んだもの”.”(ピリオド)で区切って書く
133.1.244.14
LANの名前 計算機の名前
2008/8/28 校内研修会(樟葉南小学校) 114
IPアドレスのクラス
IPアドレスはいくつかのクラスにわかれているクラスによって切れ目がちがう→作れるLANの大きさが異なる
クラスA(1~127で始まるアドレス)
60.120.122.5
133.1.244.14クラスB(128~191で始まるアドレス)
202.112.2.16クラスC(192~223で始まるアドレス)
LANの名前 計算機の名前
LANの名前 計算機の名前
LANの名前 計算機の名前
20
2008/8/28 校内研修会(樟葉南小学校) 115
IPアドレスの決め方
IPアドレスは自分勝手につけてはいけない→世界でただ1つでなければならない
IPアドレスはどうやって決めるのか?
世界中の人が話し合う?
2008/8/28 校内研修会(樟葉南小学校) 116
IPアドレスの割り当て
IPアドレスを管理する団体があるICANN(Internet Corporation for Assigned Names and Numbers )
IPアドレスを使いたいときは,申請をして配布してもらう
覚えなくてよい
ください133.1.244.0から133.1.244.255まであげます
もちろん誰でももらえるというものではない
2008/8/28 校内研修会(樟葉南小学校) 117
パケットにくっつける情報
パケットのあて先:データを送るのに当然必要
パケットの大きさ:パケットの終わりを区別するために必要
パケットの送り主:返事を返すために必要
パケットにどういう情報をどの順番にくっつけるかがIPで決められている
パケットの寿命:後で説明します
他にも
前回までに説明したもの
など...
2008/8/28 校内研修会(樟葉南小学校) 118
パケットの送り方
「パケットを受け取ったら,あて先により近いと自分が思うところにパケットを転送すること」とだけIPで決められている
LAN
LAN
データが無事に目的地に着くかに関してだれも責任を持たない→この無責任さこそがインターネットの真髄
2008/8/28 校内研修会(樟葉南小学校) 119
道に迷ったパケット
こういうことも起こりうる
永遠に回り続ける...
普通はこうならないように努力するが絶対ないとは言い切れない• ルータの故障• 人間の設定ミス
2008/8/28 校内研修会(樟葉南小学校) 120
パケットの寿命
そこで,パケットに寿命をくっつけて送るようにIPで決められている• TTL(Time To Live)
初にパケットを送り出すときにある値に設定するルータを通過するたびに1減る0になったパケットはそこで捨ててしまう
→永遠に回り続けることはない
43
2 10
21
2008/8/28 校内研修会(樟葉南小学校) 121
ルータの仕事
3つ以上のケーブルにつながっているケーブルの先はLANまたは別のルータ
あるケーブルから来たパケットをあて先に応じて適切なケーブルに転送する
えーっと,133.1のLANはこっちでーす
133.1.244.14あてのパケット
2008/8/28 校内研修会(樟葉南小学校) 122
ルータでのパケット処理
あて先をもとに経路表を調べて,どのケーブルに送るかを決める
どこかのケーブルからパケットが入ってくる
ケーブルにパケットを送り出す
2008/8/28 校内研修会(樟葉南小学校) 123
ルータにたまるパケット
パケットを処理するのに少し時間がかかる→パケットが一度にくると処理できないパケットがたまっていく
今忙しいからちょっと待ってね
2008/8/28 校内研修会(樟葉南小学校) 124
パケットがたまると
後から来たパケットは転送するまでに長い時間待たされる
ただいまの待ち時間約2時間悪
2008/8/28 校内研修会(樟葉南小学校) 125
さらにパケットがたまると
ルータがためられるパケットの量には限界がある→パケットをこれ以上ためられなくなる
Oh My God!!
2008/8/28 校内研修会(樟葉南小学校) 126
パケットがいっぱいになると
ルータはパケットを捨ててしまう!
もう限界!
22
2008/8/28 校内研修会(樟葉南小学校) 127
日々捨てられるパケット
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
じつはインターネット上では今日もあちこちでパケットが捨てられている
2008/8/28 校内研修会(樟葉南小学校) 128
捨てられたパケットはどうなる?
基本的にはほったらかしです
少なくともIPでは「捨てられたパケットをどうするか」は
決められていませんパケットは必ず相手に届くとは限らないのです
文章は,写真はどうなる...→後で話します
2008/8/28 校内研修会(樟葉南小学校) 129
ここまでのまとめ
インターネットは相当いい加減
パケットはたらい回し
ちゃんと目的地に着くか誰も知らない
忙しくなると平気でパケットを遅らせる
場合によっては捨ててしまう
2008/8/28 校内研修会(樟葉南小学校) 130
TCPのはたらき
(パケットの再送)
2008/8/28 校内研修会(樟葉南小学校) 131
ここでのテーマ
しかし,生中継はともかく,データはきちんと送られている
「インターネットはもともとデータを確実に送るためのもの」とかいいながら実際にはパケットを途中で勝手にぼんぼん捨てている
なぜか?
2008/8/28 校内研修会(樟葉南小学校) 132
もう一人の主役IPはインターネットで重要な役割を果たしている
もう1つの重要なプロトコルTCP(Transmission Control Protocol)
パケットにくっつける情報パケットの送り方パケットの分割
「TCP/IP」という風に
常にセットで語られる→それくらい重要
23
2008/8/28 校内研修会(樟葉南小学校) 133
TCPは何を決めているか?
データを確実に相手に届ける方法来るはずのパケットが来ないときにどうするか?
2008/8/28 校内研修会(樟葉南小学校) 134
送信側と受信側
以降ではデータを送り出す方の計算機を送信側データを受け取る方の計算機を受信側という
送信側 受信側
2008/8/28 校内研修会(樟葉南小学校) 135
復習
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
インターネット上では今日もあちこちでパケットが捨てられている
2008/8/28 校内研修会(樟葉南小学校) 136
来るはずのパケットが来ない
ネットワークの途中でパケットが捨てられると来るはずのパケットが来ない
あれ?
それでもデータが飛び飛びになっては困る
捨てられてしまったパケットをどうするか?
2008/8/28 校内研修会(樟葉南小学校) 137
パケットが来ないとき
どうするか?といっても...送信側にもう一度送ってもらうしかない
ところがこれがなかなか難しい→どうして難しいのか?
おーいもう一回
あいよ
2008/8/28 校内研修会(樟葉南小学校) 138
能天気な計算機IPでは
送信側はパケットを送りっぱなし受信側はパケットを受け取るだけと決められている
これは大きな問題になる
? ?
今送ったパケットすら覚えてない
さっき受け取ったパケットすら覚えてない
24
2008/8/28 校内研修会(樟葉南小学校) 139
捨てられても気づかない
受信側は「パケットが途中で捨てられたこと」に気がつかない→当然「もう一回送って」ということもないので...
後のパケットが先に来る
前のパケットが捨てられる
飛び飛びのデータ2008/8/28 校内研修会(樟葉南小学校) 140
なぜ気づかないのか?
• 本当に受け取るはずのパケット• 後で受け取るはずのパケット→区別できない
受信側はこれまでにどんなパケットが来たか覚えていない→次にどんなパケットが来るはずなのかわからない
順調順調
私が先なのに...
2008/8/28 校内研修会(樟葉南小学校) 141
捨てられたことに気づくには
受信側は次に来るパケットが何番目かわかってないといけない→これまでにいくつパケットを受け取ったか覚えてないといけない
6
5
4321
5
2008/8/28 校内研修会(樟葉南小学校) 142
複数の通信
しかもインターネットでは同時に複数の通信を行う→送信側は1台とは限らない
結局「誰からいくつパケットを受け取ったか?」を全て覚えてないといけない
63
8
2008/8/28 校内研修会(樟葉南小学校) 143
通信相手を覚えておく
ということで,TCPでは
送信側,受信側ともに「現在誰と通信しているのか」を覚えておくように決められている
133.1.244.2と通信開始
56.4.2.87と通信開始
133.1.244.2と通信中
56.4.2.87と通信中
133.1.244.2と通信終了
56.4.2.87と通信終了
2008/8/28 校内研修会(樟葉南小学校) 144
誰と通信しているか覚えていれば
をもう一度送ってもらうにはどうするか?
6
5
4321
133.1.244.2と通信中これまでに133.1.244.2から4個受け取っている今133.1.244.2から が来た
→ が捨てられたらしい56
5
25
2008/8/28 校内研修会(樟葉南小学校) 145
良さげな方法
受信側が送信側に「もう一回送って」というメッセージの書かれたパケットを送る
もう一回送って
送信側はパケットを送りなおす
なかなか良さげでも,この方法はまずい
2008/8/28 校内研修会(樟葉南小学校) 146
問題点
もし「もう一回送って」というメッセージの書かれたパケットが途中で捨てられたら?
送信側,受信側ともにそのことに気づかない捨てられた元のパケットは永遠に届かない
?
2008/8/28 校内研修会(樟葉南小学校) 147
もっと良い方法
パケットを受け取ったら受信側は必ず返事を返す
返事を受け取ってから次のパケットを送る
送信側は返事が来るまで次のパケットを送らない受け取りました
届いたかな
返事まだ?
OK!では次
2008/8/28 校内研修会(樟葉南小学校) 148
もっと良い方法
しばらく待って返事が来なければ同じパケットをもう一度送る
失敗したか
送信側はそれでも返事を待つ
届いたかな
返事まだ?
送信側の送ったパケットが捨てられた時
捨てられた
2008/8/28 校内研修会(樟葉南小学校) 149
どこが「もっと良い」のか
送信側は返事が来なければ同じパケットをもう一度送る• 元のパケットが捨てられた場合• 返事のパケットが捨てられた場合どちらの場合もパケットがもう一度送られる
失敗したか
実はまだここにいる
ただし,• 返事のパケットが捨てられた場合• 返事が来るのが遅い場合元のパケットが捨てられていないのに同じものを送ってしまう→同じパケットが2つ届く
2008/8/28 校内研修会(樟葉南小学校) 150
返事を待たずに送る
いちいち返事が来るのを待っていては遅くなる
返事が来る前に続けてどんどん送ってしまう→返事も続けてどんどん届く
...もちろんこのままでは問題がある
おりゃー
遅い!
26
2008/8/28 校内研修会(樟葉南小学校) 151
どんどんデータを送ると
パケットが捨てられても返事がどんどん来る→どのパケットが捨てられたのかわからない
おりゃー
捨てられたパケットをどうやって知るか?
捨てられたのどれ?
2008/8/28 校内研修会(樟葉南小学校) 152
良さげな方法
受信側は返事に何番目のパケットの返事か書いておく
10 9 7 6
1 2 4
3つ目来ないなぁ
35
1312109
送信側はしばらく待って返事の来なかったパケットをもう一度送る
3つ目だめだった
のかなぁ2122 20
なかなか良さげでも,この方法はまずい
2008/8/28 校内研修会(樟葉南小学校) 153
問題点
送信側は「これまでに送った中でしばらく待って返事の来なかったパケット」をもう一度送る
「これまでに送ったパケットの中でまだ返事の来ていないパケット」についてどのくらい待っているかをすべて覚えておかないといけない
3
1312109
まだ返事が来ていないのは
(4秒経過),(3秒経過), …
35
2008/8/28 校内研修会(樟葉南小学校) 154
もっと良い方法
返事に「今何番目のパケットを待っているか」を書いておく
同じ返事が3つ続いたらそのパケットから後ろをすべて送り直す
10 9 8 7 6
2 3 3 3
3つ目来ないなぁ
57
3333
3つ目だめだった
のか46
33
2008/8/28 校内研修会(樟葉南小学校) 155
どこが「もっと良い」のか
どのパケットを送り直すかは返事に書いてある→返事の来ないパケットについて覚えておく必要がない
「しばらく待って」がない→送り直すまでの時間が短い
捨てられたパケットから後ろをすべて送り直す→データが前の方から確実に届く
10 9 8 7 6
2 3 3 3
3つ目来ないなぁ
ただし,捨てられたパケットから後はすべて送り直し→多くのパケットが無駄になる
無駄になる2008/8/28 校内研修会(樟葉南小学校) 156
ルータの混み合いと無駄なパケット
みんながどんどんパケットを送り出すとルータは混み合う→ルータでパケットが捨てられる
捨てられたパケットは後で送りなおすはめになる
あるルータでパケットが捨てられた場合そのパケットは無駄に送られたことになる
27
2008/8/28 校内研修会(樟葉南小学校) 157
混み合うと遅くなる
ルータが混み合うと多数のパケットが捨てられる→無駄なパケットが大量にネットワークを流れることに→ネットワークが普段よりさらに遅くなる
2008/8/28 校内研修会(樟葉南小学校) 158
パケット数の調節
そこで,TCPでは
ネットワークが混みすぎることの無いようにパケットを送り方を調節するよう決められている
2008/8/28 校内研修会(樟葉南小学校) 159
パケット数の制限
一度に送り出せるパケットの数を制限する
いくつかパケットを送ったら返事を待つ
返事が1つ返ってきたら次のパケットを1つ送る
2008/8/28 校内研修会(樟葉南小学校) 160
一度に送り出せるパケット数
一度にいくつのパケットを送り出せるのか?
これまたいろいろあって結構ややこしい
この後しゃべります
5個? 10個? 100個?
2008/8/28 校内研修会(樟葉南小学校) 161
ここまでのまとめ
IPのおかげでデータを世界中に送ること
ができる
TCPのおかげでデータを確実に送ること
ができる
パケットが捨てられたときの再送を行う
2008/8/28 校内研修会(樟葉南小学校) 162
TCPのはたらき
(フロー制御)
28
2008/8/28 校内研修会(樟葉南小学校) 163
ここでのテーマTCPの話のつづき
ネットワークの速度調節の方法
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
LAN
5080
30 60
2008/8/28 校内研修会(樟葉南小学校) 164
復習
ルータが混み合うと多数のパケットが捨てられる→無駄なパケットが大量にネットワークを流れることに→ネットワークが普段よりさらに遅くなる
2008/8/28 校内研修会(樟葉南小学校) 165
復習
なので,一度に送り出せるパケットの数を制限する
いくつかパケットを送ったら返事を待つ
返事が1つ返ってきたら次のパケットを1つ送る
2008/8/28 校内研修会(樟葉南小学校) 166
ウィンドウフロー制御
TCPはウィンドウフロー制御という方法でフロー制御を行う
ウィンドウとは?
このようにパケットの流れる(flow)量を制御(control)することを
フロー制御という
覚えなくて良い
? ?
2008/8/28 校内研修会(樟葉南小学校) 167
ウィンドウ
ウィンドウ=窓のこと
パケットの列の上にウィンドウがある
データ:パケットの列
ウィンドウを通して見えるパケットは?
2008/8/28 校内研修会(樟葉南小学校) 168
ウィンドウ内のパケット
送信ずみ 送信中 送信前
返事が来るとウィンドウを1つずらす
このパケットは相手に届いた 新たにこのパケットを送り出す
ウィンドウは「現在送信中のパケットが見える窓」
29
2008/8/28 校内研修会(樟葉南小学校) 169
ウィンドウサイズ
ウィンドウサイズ大
ウィンドウサイズ小
ウィンドウサイズ=一度に送り出せるパケットの数
2008/8/28 校内研修会(樟葉南小学校) 170
パケットの再送とウィンドウサイズ
送信ずみ(忘れてよい)
送信中(忘れるとまずい)
送信前
もし送信中のパケットが捨てられた場合同じパケットをもう一度送る必要がある
ウィンドウサイズが大きいほど,覚えておかなければならないパケットが増える→ウィンドウサイズはできれば小さくしたい
2008/8/28 校内研修会(樟葉南小学校) 171
ウィンドウサイズとネットワーク
ウィンドウサイズが小さすぎると
ウィンドウサイズが大きすぎると
返事を待つ時間が長い→遅くなる
パケットが大量に捨てられる→やっぱり遅くなる2008/8/28 校内研修会(樟葉南小学校) 172
理想的なウィンドウサイズ
ネットワークが混みすぎず,かつ空きすぎない
理想的なウィンドウサイズをどうやって決めればよいか?
2008/8/28 校内研修会(樟葉南小学校) 173
ウィンドウサイズに影響するもの
ネットワークの混み具合
ネットワークの距離
ネットワークの速さ(道の広さ)
ウィンドウサイズを決めるにはいろいろなことを考える必要がある
2008/8/28 校内研修会(樟葉南小学校) 174
ネットワークの混み具合
ネットワークが混んでいるとき
ネットワークが空いているとき
→ウィンドウサイズを大きく
→ウィンドウサイズを小さく
30
2008/8/28 校内研修会(樟葉南小学校) 175
ネットワークの距離
ネットワークの距離が遠いとき
ネットワークの距離が近いとき
→ウィンドウサイズを大きく
→ウィンドウサイズを小さく
2008/8/28 校内研修会(樟葉南小学校) 176
ネットワークの速さ
ネットワークが速いとき
ネットワークが遅いとき
→ウィンドウサイズを大きく
→ウィンドウサイズを小さく
2008/8/28 校内研修会(樟葉南小学校) 177
ウィンドウサイズの自動調節
いろいろな条件を考えてウィンドウサイズを決めるのは難しい
ネットワークの混み具合は時間とともに変化する
ウィンドウサイズを自動的に調節するしくみが必要どうやって?
2008/8/28 校内研修会(樟葉南小学校) 178
基本的な方法初は1からスタート
無事に返事が来たときウィンドウサイズを1増やす
パケットが再送されたとき(捨てられたとき)ウィンドウサイズを1に戻す
2008/8/28 校内研修会(樟葉南小学校) 179
ウィンドウサイズの増え方
返事が返ってくるたびにウィンドウサイズが1増える
一度にパケットを1つ送る→返事は1つ
一度にパケットを4つ送る→返事は?
ウィンドウサイズはあっという間に大きくなる
一度にパケットを2つ送る→返事は2つ
2008/8/28 校内研修会(樟葉南小学校) 180
ウィンドウサイズが増えすぎる
ウィンドウサイズは倍々ゲームで増えていく→限界を超えたときにははるかに大きいサイズになっている
0
2
4
6
8
10
12
14
16
18
ウィンドウサイズ
時間
多数のパケットが捨てられる
31
2008/8/28 校内研修会(樟葉南小学校) 181
少し改良
パケットが捨てられたときのウィンドウサイズを覚えておく→そこから先は慎重に増やしていく
0
2
4
6
8
10
12
14
16
18捨てられるパケットは
少しですむウィンドウサイズ
時間2008/8/28 校内研修会(樟葉南小学校) 182
ウィンドウサイズが減りすぎる
0
2
4
6
8
10
12
14
16
18
ウィンドウサイズ
時間
パケットが1つでも捨てられると,ウィンドウサイズは1になる
→ウィンドウサイズが小さい時間が長くなる
2008/8/28 校内研修会(樟葉南小学校) 183
ウィンドウサイズの減らし方パケットが捨てられた(パケットの再送が起きた)→ネットワークが混んでいる
パケットの数を減らさないといけない→ウィンドウサイズを小さくする
でもパケットの再送が起きるたびにいちいちウィンドウサイズを1にすることはないんじゃないの?
2008/8/28 校内研修会(樟葉南小学校) 184
2種類のパケットの再送
実はパケットの再送には2種類ある
普通の場合
深刻な場合
と
まあそういうこともあるでしょ
大変だわ
2008/8/28 校内研修会(樟葉南小学校) 185
復習(パケットの再送)
返事に「今何番目のパケットを待っているか」を書いておく
同じ返事が3つ続いたらそのパケットから後ろをすべて送り直す
10 9 8 7 6
2 3 3 3
3つ目来ないなぁ
57
3333
3つ目だめだった
のか46
33
2008/8/28 校内研修会(樟葉南小学校) 186
パケットの再送(普通の場合)
一部のパケットのみ捨てられた場合
同じ返事が連続で返ってくる→同じ返事が3つ来た時点で再送
いくつかのパケットは届いている→ネットワークはそんなには混んでいない
32
2008/8/28 校内研修会(樟葉南小学校) 187
パケットの再送(深刻な場合)
送ったパケットがすべて捨てられてしまった場合
返事がまったく返ってこなくなる→かなりの時間待った後に再送
パケットがまったく届かない→ネットワークはめちゃくちゃ混んでいる
2008/8/28 校内研修会(樟葉南小学校) 188
さらに改良
普通の場合に限り,ウィンドウサイズを今の半分にする深刻な場合,ウィンドウサイズを1にする
「パケットが再送されたときにウィンドウサイズを1にする」
というのはどうなの
「深刻な」場合はまあ仕方ない(どうせ届かないし)「普通の」場合には減らしすぎ(なにもそこまでしなくても)
この方法を高速リカバリ(fast recovery)という
覚えなくて良い
2008/8/28 校内研修会(樟葉南小学校) 189
改良の効果
0
2
4
6
8
10
12
14
16
18
ウィンドウサイズ
時間
「普通の再送」であればウィンドウサイズは半分以下にはならない→ウィンドウサイズが小さくなりすぎることはない
2008/8/28 校内研修会(樟葉南小学校) 190
通信をしているのは誰か?
これまでは計算機同士が通信していると言ってきました
実際には計算機の上で動いているプロセス同士が通信をしている
プロセスって?
2008/8/28 校内研修会(樟葉南小学校) 191
計算機とプログラムとプロセス
ハードディスクは「本棚」
プロセスは「社員」
プログラムは「仕事の仕方を書いた本」
計算機を会社に例えると(かなり強引ですが...)
メモリは「社屋」
CPUは「社員の能力」
2008/8/28 校内研修会(樟葉南小学校) 192
プロセス同士の通信
データ(パケット)は計算機から計算機に移動しているが実際にデータを送ったり受け取ったりしているのは計算機で動いているプロセス
33
2008/8/28 校内研修会(樟葉南小学校) 193
プロセスの処理
ネットワークがめちゃくちゃ速くて,かつ空いている場合送信側のプロセスはウィンドウサイズを大きくする
一度にたくさんのデータが受信側プロセスに到着→処理が間に合わない
ひー
2008/8/28 校内研修会(樟葉南小学校) 194
もう1つのウィンドウ
受信側のプロセスは返事のパケットにあとどれくらい処理できるかを書いておく
いっぱいいっぱいだ
送信側はもう1つウィンドウを持つ
→受信側の都合で変化するウィンドウ
あとこれくらい
2008/8/28 校内研修会(樟葉南小学校) 195
2つのウィンドウ
送信側がパケットを送るときはどちらか小さい方のウィンドウにあわせて送る
このパケットまでしか送れない
を輻輳ウィンドウ(congestion window)
を広告ウィンドウ(advertised window)
という
2008/8/28 校内研修会(樟葉南小学校) 196
TCPの弱点
IPだけではデータが消えることがありますがTCPと組み合わせることで
データを確実に届けられます
• 途中で捨てられたパケットは送りなおします• ネットワークが混みすぎないようにパケットの数を調整します
ただしいつ届くかは知りません
あといろいろやらないといけないのでちょっと遅いです
2008/8/28 校内研修会(樟葉南小学校) 197
いつでもTCP...とは限らない
そんな場合はTCPの代わりにUDP(User Datagram Protocol)を使います
「少々データ消えててもいいからごちゃごちゃ言わんとさっさと送ってくれ!!!」っていう状況があります
インターネットの生中継→確実性より速さが重要
「もう試合終わってるんですけど」
「さっきのホームランの画面やっと来ました」
2008/8/28 校内研修会(樟葉南小学校) 198
UDPは何を決めているか?
→ほとんど何も決めていない
プロセスを区別するためにポート番号をつけるということだけ
ようするにIPそのまま
パケットは捨てられっぱなしその代わり速い
TCPはいろんなことを決めていた
UDPは何を決めているか?
34
2008/8/28 校内研修会(樟葉南小学校) 199
ここまでのまとめ
パケットを送る速度を調節するのもTCPの役割
結構ややこしいことをしている
TCPにも弱点はある
遅いこと
確実性より速さが重要な場合にはUDPを使う
2008/8/28 校内研修会(樟葉南小学校) 200
ホームページURL
http://homepage2.nifty.com/htada/kuzuha/