aida lab, school of engineering, the university of …aida/internetengineering.pdf24...
Post on 08-Mar-2020
1 Views
Preview:
TRANSCRIPT
1
情報工学概論(インターネット工学)
電子情報工学科
電気系工学専攻 融合情報学コース
相田 仁
2
講義の内容
• インターネットの歴史と現状
• インターネットの通信プロトコル
• インターネットのアプリケーション
• 情報セキュリティと著作権保護
3
講義資料等
• 新の講義資料– http://www.aida.t.u-tokyo.ac.jp/~aida/
InternetEngineering.pdf
• ビデオ・過去問– http://ocw.u-
tokyo.ac.jp/lecture?id=11314&r=610944248– http://www.aida.t.u-tokyo.ac.jp/~aida/
JouhouGaironA07.pdf, JouhouGaironA06.pdf
4
参考書
• タネンバウム著、水野、相田、東野、太田、西垣訳:コンピュータネットワーク第4版、日経BP、2003、ISBN4-8222-2106-7、¥7800+税(原著ISBN0-13-066102-3)
• 小林浩、江崎浩著:インターネット総論、共立出版、2002、ISBN4-320-12039-6、¥3400+税
• 電子情報通信学会知識ベース「知識の森」、http://www.ieice-hbkb.org/portal/
5
1. インターネットの概要
6
1.1 インターネットの歴史と現状
7
インターネットの歴史
• 1969 ARPANET• 1974~1983 TCP/IP• 1987 商用電子メール, 1990 商用ISP• 1991 CIX, 1992 Internet Society• 1993 Mosaic(WWWブラウザ), 1994 W3C• 1998 ICANN• 2011 IPv4アドレスの枯渇
8
世界のインターネット利用者数
*EstimatesSource: ITU World Telecommunication /ICT Indicators database
9Forbes Magazine July 7th, 1997
インターネット
携帯電話
パソコン
テレビ
ラジオ
電子レンジ
ビデオ
飛行機
電話
自動車
電気
普及の速さ
10
我が国のインターネット利用人口及び人口普及率の推移
11
属性別インターネット利用率
12
我が国のインターネットトラヒックの推移(平均)
13
ブロードバンド契約者の時間帯別ダウンロードトラヒックの推移
14
インターネット利用端末別の利用人口推移
(出典)総務省「通信利用動向調査」
(年末)
(万人)
15
パソコンと携帯電話によるインターネットの利用目的
16
インターネット利用による生活の変化
17
インターネットが利用できなくなると…
18
世帯の情報セキュリティ被害状況
19
企業の情報セキュリティ被害状況
20
情報通信の「基盤」に関する指標別の偏差値
21
情報通信の「利活用」に関する分野別の偏差値
22
公立学校のインターネット整備率/操作・指導可能な教員比率
23
1.2 インターネットの技術的特徴
24
パケット交換
• 電話網:回線交換
– 電話局が壊れると通信継続不能
• パケット交換:情報を決められた以下の大きさに分割し、それぞれに宛先をつけて独立に配送
– 情報の一部が失われても後続には影響なし
– 中継局が壊れても迂回して通信継続可能
25
研究所
IXIX
商用ISP
商用ISP
商用ISP
商用ISP
商用ISP
学術・研究ネットワーク
省庁間ネットワーク 実験ネットワーク
地域ネットワーク
商用ISP
大学
省庁
企業
家庭 企業
企業
家庭
大学研究所
企業
企業
IX: Internet eXchange
ネットワークのネットワーク
26
(あとから書かれた)
Architectural Principles of the Internet
• the goal is connectivity,• the tool is the Internet Protocol, and• the intelligence is end to end rather than
hidden in the network
27
1.3 インターネットの運営組織
28
ISOC (Internet Society)
ISOCインターネット学会
IABアーキテクチャ委員会
IETF技術標準化委員会
IESG運営管理委員会
IRTF次世代技術委員会
IRSG運営管理委員会
ISTF社会政策委員会
ワーキンググループ研究グループ
IAB: Internet Architecture Board
IRTF: Internet Research Task Force
IETF: Internet Engineering Task Force
ISTF: Internet Societal Task Force
IRSG: Internet Research Steering Group
IESG: Internet Engineering Steering Group
29
RFC (Request for Comments)
NEW IDEA!
インターネットドラフトインターネットドラフト
プロポーズドスタンダードプロポーズドスタンダード
ドラフトスタンダードドラフトスタンダード
スタンダードスタンダード
個人またはWGで提案
IESGで審査し、標準化を決定
RFC番号付与
STD番号付与
広範囲で実装し、運用試験
複数組織で独立に実装・試験6ヶ月後にIESGが審査・承認
30
ASO<3名>アドレス支持組織
ASO<3名>アドレス支持組織
PSO<3名>プロトコル支持組織
PSO<3名>プロトコル支持組織
DNSO<3名>ドメイン名支持組織
DNSO<3名>ドメイン名支持組織
ARIN(旧InterNIC)
ARIN(旧InterNIC)
RIPE NCCRIPE NCC
APNICAPNIC
At Large<5名>(一般会員)
At Large<5名>(一般会員)
ICANN理事会<19名>
ICANN理事会<19名>
IETFIETF
W3CW3C
ITUITU
ETSIETSI
営利企業営利企業
非営利組織非営利組織
ccTLDレジストリccTLDレジストリ
gTLDレジストリgTLDレジストリ
ISP/通信事業者ISP/通信事業者
レジストラレジストラ
知的所有権関係者知的所有権関係者
社長兼会長社長兼会長
JPNICJPRS
JPNICJPRS
DNSO: Domain Name Supporting OrganizationASO: Address Supporting OrganizationPSO: Protocol Supporting OrganizationccTLD:Country Code Top Level DomaingTLD: Generic Top Level DomainISP: Internet Service ProviderARIN: American Registry of Internet
NumbersRIPE NCC: Reseaux IP European Network
CoordinationAPNIC:Asia Pacific Network Information
CenterJPNIC: Japan Network Information CenterJPRS: Japan Registry Service Co., Ltd.IETF: Internet Engineering Task ForceW3C: World Wide Web ConsortiumITU: International Telecommunication
UnionETSI: European Telecommunications
Standards Institute
ICANN (Internet Corporation for Assigned Names and Numbers)
31
1.4 情報量を表す単位
32
情報量を表す単位
• ビット[bit]: 0/1の2進数1桁で表すことのできる情報量(=log2(場合の数))、および実際に0/1で表した桁数
• bps: ビット/秒(=bit per second)• バイト[byte, B]: 英数字1文字を表すことの
できるビット数。現在ではほとんどの場合8ビット(=オクテット[octet])
33
単位の接頭語(その1)
1024 ヨタ Y 109 ギガ G
1021 ゼタ Z 106 メガ M
1018 エクサ E 103 キロ k
1015 ペタ P 102 ヘクト h
1012 テラ T 101 デカ da
34
単位の接頭語(その2)
10-1 デシ d 10-12 ピコ p
10-2 センチ c 10-15 フェムト f
10-3 ミリ m 10-18 アト a
10-6 マイクロ μ 10-21 ゼプト z
10-9 ナノ n 10-24 ヨクト y
35
単位の接頭語(その3)
• コンピュータのメモリ容量を表す時は– 210=1,024 をキロ
– 220=1,048,576 をメガ
– 230=1,073,741,824 をギガ
と呼ぶ習慣があり、ディスク容量などにも用いられてきたが、メモリ容量以外では用いられなくなりつつある
• 103をk、210をKと書き分けることもある
36
2. インターネットにおける通信
37
2.1 通信プロトコル
38
アプリケーションプログラム間でのデータの受け渡し
• 同一コンピュータ上
→メモリ上に置いてポインタを渡す
• 近くにあるコンピュータ間
→ファイルに格納して渡す
• 離れたコンピュータ間
→通信回線を経由して送る
39
通信回線を経由して送る場合の問題点
• 相手のコンピュータがダウンしている
• 回線上で雑音によりデータが化ける
• 相手のコンピュータが忙しくてデータを取りこぼす
• 送った通りの順序でデータが届かない
• 途中の混雑によりデータが失われる
40
通信プロトコル
• データを誤りなく(時間内に)届けるために送り手と受け手の間であらかじめ取り決めておく通信の手順
– 誤り制御
– フロー制御
– 順序制御
– 輻輳制御
41
誤り制御
• 送る情報に冗長性を持たせる
– 誤り訂正ex. 3連送
– 誤り検出→再送ex. パリティ、CRC (Cyclic Redundancy Check)
42
誤り制御方式の比較
• メタル回線、無線では誤りはバースト的に起こる
→誤り訂正のためには大きな冗長性が必要
→多くの場合は誤り検出/再送の方が適当
43
誤り制御方式の比較(続き)
• 再送のオーバヘッドがデータを送る手間と比べて大きい場合には誤り訂正の方が良い場合もあるex. 光ファイバ、衛星
→帯域・遅延積(=回線上に乗るビット数)
44
フロー制御・輻輳制御
• ある程度データを送ったところで、しばらく待つ
→ウィンドウ方式、クレジット方式
• データを送るたびに少しずつ待つ
→レート制御方式
45
階層プロトコル
• 各種の機能を誤り無く作り上げるのは大変
→モジュール化
46
cf. パソコンのソフトウェア
オペレーティングシステム
デバイスドライバ
ハードウェア
アプリケーションプログラム• それぞれのソフト
ウェアは直下のモジュールの機能だけを使用
• とくに、ハードウェアの差異はデバイスドライバで吸収し、オペレーティングシステム以上は機種非依存
47
階層プロトコル
TCP
IP
イーサネット
アプリケーションプロトコル• それぞれの層の
ソフトウェアは直下の層の提供する機能だけを使用
• 上位層は下位層非依存
無線LAN
48
用語の定義
• エンティティ
→プロトコルを実現するプロセス
• インタフェース
→上下層間の呼び出し手順、パラメータなど
• サービス
→各層の提供する機能
49
いろいろなサービス
• 単方向/半2重/全2重
• コネクション指向/コネクションレス– コネクション指向:cf. 電話
– コネクションレス:cf. 手紙
• ギャランティード/ベストエフォート
50
階層プロトコル
• <N>層は、<N−1/N>インタフェースを通じて提供される<N−1>サービスを用いて<N>エンティティ間で<N>プロトコルに基づく通信を行うことにより、<N/N+1>インタフェースを通じてより付加価値の高い<N>サービスを<N+1>層に対して提供する
51
<N+1>層
<N>層
<N-1>層
コンピュータA コンピュータB
<N>プロトコル
<N/N+1>インタフェース
<N-1/N>インタフェース
<N>エン
ティティ
<N>サービス
<N-1>サービス
52
アプリケーション層
トランスポート層
ネットワーク層
データリンク層
アプリケーション層
トランスポート層
ネットワーク層
データリンク層
データ
階層プロトコルにおけるデータ伝送
制御
送信元MACアドレス
宛先MACアドレス
送信元IPアドレス
制御情報
宛先IPアドレス
宛先ポート
送信元ポート
制御情報
制御
TCPヘッダ
TCPヘッダ
データ
データ
データ
IPヘッダ
IPヘッダ
データリンクヘッダ
TCPヘッダ
データリンクトレイラ
53
OSI参照モデル
• ISO(International Standardization Organization: 国際標準化機構)でOSI(Open Systems Interconnection: 開放シス
テム間接続)のためのプロトコルの標準化を行うに当たって、まずプロトコル階層のモデル化を行った
54
OSI 7層モデル
• アプリケーション層
• プレゼンテーション層
• セッション層
• トランスポート層
• ネットワーク層
• データリンク層
• 物理層
上位3層
下位4層
55
物理層
• 電気的特性、変調方式、コネクタ形状などex. RS-232C、V.90
56
データリンク層
• 直接回線で接続されているコンピュータ間で(誤り無く)データを届ける– 媒体アクセス制御(MAC)副層
• 回線が共有されている場合に媒体へのアクセスを調停する
– リンクレベル制御(LLC)副層
• 誤り制御、フロー制御
57
ネットワーク層
• 宛先コンピュータに至る経路が複数ある場合に適切にデータを送り届ける
– 経路制御
• 経路情報の交換
• 経路選択
– 輻輳制御
58
トランスポート層
• 送信元コンピュータから宛先コンピュータまでエンド・エンドで正しくデータを送り届ける
– 誤り制御、フロー制御
– 順序制御
– 輻輳制御
59
セッション層
• セッション管理
• 同期制御
– チェックポインティング
60
プレゼンテーション層
• 同じ「意味」のデータを届ける
– 文字コード• ASCII/EBCDIC、JIS/Shift JIS/EUC
– データ表現• 1の補数/2の補数、浮動小数点形式
• (暗号化)
61
アプリケーション層
• 複数のアプリケーションで共通に使うことのできる機能
– ファイル転送
– 仮想端末(画面制御)
– 電子メール、電子掲示板
– 名前サービス、時刻合わせ
– WWW (World Wide Web)– ネットワーク監視・管理
62
プロトコル
TCP/IPのプロトコル階層
ARPANETネットワーク
SMTP
TCP UDP トランスポート
無線LAN
POP アプリケーション
層 (OSI 名称)
PPP 物理 +データリンク
HTTP
Ethernet
DNS
IP ネットワーク
63
2.2 物理層
64
どれだけ情報を送ることができるか?
• 伝送中に信号が減衰する
• 周波数によって減衰量が異なるため波形が歪む
• 周囲からの雑音が混入する
• 広い周波数帯域を使えば速く送れる
→信号対雑音比を周波数軸上で積分(シャノンの原理)
65
雑音
• 歪み・エコー– きちんと計算すれば除去可能
• 近端漏話・遠端漏話– チャンネルを分けることで対策可能
• 周囲からの雑音– 一旦混入すると除去困難
66
平行ケーブル
• 屋内電話線
• コンピュータとモデムをつなぐケーブル
• 数十kbps、十数m
67
より対線
• 電話線(日本ではカッド構造)– ADSL: 数Mbps、数km– VDSL: 数十Mbps、100m程度
• LANケーブル
– カテゴリ3: 10Mbps程度、100m– カテゴリ5: 100Mbps程度、100m– エンハンストカテゴリ5、カテゴリ6: 1Gbps
68
同軸ケーブル
• Ethernet: 10Mbps、500m• CATV: アナログ750MHz、数km
銅の芯 絶縁材料
網状の外部導体
保護プラスチックカバー
69
• ステップインデックス
• グレーデッドインデックス– コア径50μmまたは62.5μm– 100Mbps、2km– 1Gbps、数百m
クラッド
コア
ステップインデックス
グレーデッドインデックス
光ファイバ
70
光ファイバ(続き)
• シングルモード– コア径9μm程度
– 数十Gbps、数十~数百km• 波長多重(Wavelength Division Multiplex)
– 大数百波長を1本の芯線で伝送可能
シングルモード
71
無線
• 携帯電話– PDC: 28800bps、数km– PHS: 128kbps、数百m– 3G: 大数Mbps 、数km
• 無線LAN– IEEE 802.11b: 2.4GHz帯、11Mbps、数十m– IEEE 802.11a: 5GHz帯、54Mbps、屋内のみ
– IEEE 802.11g: 2.4GHz帯、54Mbps、屋外可
– IEEE 802.11n: 130~600Mbps、MIMO(Multiple Input Multiple Output)
72
ch1~3
ch4~6
ch7~9
• 大ゾーン方式9人までサービス可能
小ゾーン方式
• 小ゾーン方式57人までサービス可能
ch1~9ch1~3
ch4~6
ch7~9
ch1~3
ch4~6
ch7~9
ch1~3
ch4~6
ch7~9
ch1~3
ch4~6
ch7~9
ch1~3
ch7~9
ch4~6
ch4~6
73
位置登録
固 定 電 話 会 社 A
POI
携 帯 電 話 会 社 C 携 帯 電 話 会 社 D
HLR
MSC1 MSC2
VLR
固 定 電 話 会 社 B
HLR: Home Location RegisterVLR: Visitor Location RegisterMSC: Mobile Switching Center
74
CDMA(Code Division Multiple Access)
• 1ビットをmチップ使って伝送(m=128程度)
• 各通話に固有のチップ列を割り当てる– A:00011011 (−1 −1 −1 +1 +1 −1 +1 +1) – B:00101110 (−1 −1 +1 −1 +1 +1 +1 −1)→A+(−B): (0 0 −2 +2 0 −2 0 +2)
• 各通話は受信信号とチップ列の内積を取る– A: 0+0+2+2+0+2+0+2=8 → 1と認識
– B: 0+0+(−2)+(−2)+0+(−2)+0+(−2)=−8 → 0と認識
75
MIMO(Multiple Input Multiple Output)
t1
t2
r1
r2
h11h12
h21h22
⎟⎟⎠
⎞⎜⎜⎝
⎛⎟⎟⎠
⎞⎜⎜⎝
⎛=⎟⎟
⎠
⎞⎜⎜⎝
⎛⇒⎟⎟
⎠
⎞⎜⎜⎝
⎛⎟⎟⎠
⎞⎜⎜⎝
⎛=⎟⎟
⎠
⎞⎜⎜⎝
⎛−
2
11
2221
1211
2
1
2
1
2221
1211
2
1
rr
hhhh
tt
tt
hhhh
rr
76
2.3 データリンク層
77
データリンク層のおもな機能
• 同期・誤り制御
– フレーム化
• 媒体アクセス制御– 通信媒体が共有されている場合(LAN、無線)
78
ハミング距離
• 2進符号語間のハミング距離:対応する
ビットが何箇所異なっているか符号語1: 1 0 1 1 0 1 1 0符号語2: 0 1 1 1 0 0 1 1
1 1 0 0 0 1 0 1 → ハミング距離 4
• 符号全体のハミング距離:符号語間のハミング距離の 小値
79
誤り検出符号、誤り訂正符号
• mデータビット+r冗長ビット=nビット
• dビットの誤り検出→距離d+1が必要
• dビットの誤り訂正→距離2d+1が必要ex. m+r=3, d=1
000 001
011
111
010
110
101100
000 001
011
111
010
110
101100
80
単一誤り訂正:ハミング符号
• 2mの符号語のそれぞれに対してn個の誤りが対応→(n+1)2m≦2n→(m+r+1) ≦2r
• 2r−1 ≦ n ≦ 2r−1のとき、2のべき乗の位置のビットをチェックビットに使う例:x1=x3+x5+x7+x9+x11
x2=x3+x6+x7+x10+x11x4=x5+x6+x7+x12x8=x9+x10+x11+x12
81
Cyclic Redundancy Check
• 偶数パリティ:偶3進数に対応
– 10110001=37+35+34+1=2512• nビットの符号語をn-1次式と見なす
– a1xn-1+a2xn-2+…+an-1x+an
• 符号語がr次の生成多項式G(x)で「割り切
れる」ようにする– xrM(x)をG(x)で割った余りをxrM(x)から引く
82
1 0 0 1 1 11
10
11
00
00
00
11
00
00
00
101
11
00
00
00
11
11
00
00
00
00
01
10
10
10
10
11
00
00
00
00
00
00
01
10
10
10
10
11
01
10
11
00
00
00
10
01
10
10
101
00
00
01
101
10
01
101
00
000
余り
• 送るべきデータ1 1 0 1 0 1 1 0 1 1
• 生成多項式1 0 0 1 1
• データに0を4ビット付加1 1 0 1 0 1 1 0 1 1 0 0 0 0
• 余りを引いて送信1 1 0 1 0 1 1 0 1 1 1 1 1 0
Cyclic Redundancy Checkの例
83
Cyclic Redundancy Check
• 誤りE(x)がG(x)で割り切れなければ検出可能– G(x)=(x+1)Q(x)なら全ての奇数ビット誤りを検
出可能
– 長さ≦rの全てのバースト誤りを検出可能• xi(xk−1+…+1)
• G(x)の例– x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+
x2+x+1
84
• G(x)=x4+x+1の例
x4 x3 x2 x1 x0
+ +
ハードウェア
85
媒体アクセス制御
• コンテンション(競合)方式ex. Ethernet
• ポーリング方式ex. トークンパッシング
86
ALOHA
87
ALOHA
• 各地上局からランダムに衛星に向かって送信→衝突がなければACKが返る
→平均使用率が1/2の時スループットは 大となり、有効スループット1/2e≒0.184
• 衛星からのタイミング信号にあわせてパケットを送出(Slotted ALOHA)
→平均使用率が1の時スループットは 大となり、有効スループット1/e≒0.368
88
Ethernetの歴史
• 1973 Xerox PARC (3Mbps)• 1978 DIX(DEC, Intel, Xerox) 10Mbps• 1980 Ethernet version 1.0• 1982 Ethernet version 2.0• 1983~85 IEEE 802.3, ISO 8802/3• 1995 802.3u (100Mbps: Fast Ethernet)• 1998 802.3z (1Gbps: Gigabit Ethernet)• 2002 802.3ae (10Gbps: 10 Gigabit Ethernet)
89
CSMA/CD
• 送信する前に他のステーションが送信中でないか聴取し(Carrier Sense: 搬送波検知)
通信終了を待って送信開始
• 送信を始めてからも他のステーションとほぼ同時に送信を開始しなかったか確認する(Collision Detection: 衝突検出)
90
マンチェスタ符号と衝突検出
トランシーバ
50Ω50Ω
40mA
1 0 0 1 0 1 1
100ns
-1V
0V0 1 0 0
91
Exponential Backoff
• 衝突が検出されたときには、0~2i−1の範
囲の乱数を発生させ、その時間だけ待ってから再度試みる
• 時間の単位:スロット時間=512ビット
– 信号がネットワーク中を往復するのに十分な時間
– 衝突検出のため 小パケット長もこれだけ必要
92
時間
パケット長 < 往復時間
ケーブルの途中で衝突が起きているにもかかわらず、送信元では検出されない
93
時間
パケット長 > 往復時間
衝突が確実に検出される
94
競合スロット
競合期間
転送期間
アイドル期間
t0
フレーム フレーム
時間
フレーム フレーム
CSMA/CDの動作
95
フレーム構成
1010…1011 宛先 送信元 データ 誤り検出
64ビット 48ビット48ビット 1696ビット
搬送波検知
32ビット46~1500バイト
≦1500: データ部の長さ(802.3形式)>1500: プロトコル種別(Ethernet形式)
プリアンブル
96
11111111 11111111 11111111 11111111 11111111 11111111
1
MACアドレスネットワーク中での伝送順
表記法 00:03:93:6b:82:22 または 00-03-93-6b-82-22
製造元コード22ビット
マルチキャストアドレス
ブロードキャストアドレス
製品固有番号24ビット
00000000 11000000 11001001 11010110 01000001 01000100
00000000 00000011 10010011 01101011 10000010 00100010
マルチキャストグループプロトコル
97
配線の種類(バス型)
• 10BASE-5– 0.4インチ径50Ω同軸、500m、2.5m間隔
• 10BASE-2– 5mm径(RG58A/U)、185m、0.5m間隔30台
98
リピータ
• 1本のケーブルでは収容しきれないとき、
双方向に増幅、波形整形を行う装置でケーブル間を接続する
99
リピータ
• リピータを接続するトランシーバではSQEをoffにしなければならない
• リモートリピータ(10BASE-FL)
– 0.85mm帯光ファイバ、2km
100
10BASE-T
• バス型配線では能動機器は無いが、ショート、接触不良などの検出が困難→機器をリピータ(ハブ)に1対1で接続(スター型
配線)
• 10BASE-T– 2対のUTP (Unshielded Twisted Pair: シールド
無しの撚り対線)、100m
101
+
10BASE-T
102
ブリッジ
• リピータでは配線長は長くできるが、ある瞬間に送信可能な端末は1台だけ
→必要な時だけパケットを中継する装置
– トランスペアレントブリッジ
– ソースルーティングブリッジ
• スター配線 → スイッチングハブ
• バッファリング→全2重通信が可能
103
ブリッジ#1
#2
#3#4
MACアドレス ポート番号
00:01:02:03:04:05 #100:01:02:03:05:07 #200:12:34:01:02:03 #100:23:45:67:89:AB #3
ブリッジ
104
トランスペアレントブリッジ
• 各ポートに到着するパケットの送信元アドレスを見て学習
• 宛先コンピュータが到着ポートと同じポートに接続されている場合→何もしない
• 宛先の所在のわかっているパケット→そのポートでCSMA/CDを用いて送信
• 宛先の所在不明やマルチキャストのパケット→到着ポート以外のすべてのポートにコピー
• ループが存在する場合→スパニングツリー
105
ファストイーサネット
• クロックを10倍に高速化→到達距離10分の1(リピータ2段)
• 100BASE-T4– カテゴリ3のUTPを4対、8B6T、100m
• 100BASE-TX– カテゴリ5のUTPを2対、4B5B、100m
• 100BASE-FX– 1.3μm帯光ファイバ、2km(全2重)
106
ギガビットイーサネット
• 半2重ではパケット長を512バイトに延ばすことで衝突検出を確保
• 1000BASE-LX• 1000BASE-SX
– 光ファイバ、50, 62.5/125μm• 1000BASE-T
– エンハンストカテゴリ5のUTPを4対双方向伝送
• 1000BASE-TX– カテゴリ6のUTPを上り下り2対ずつ
107
10ギガビットイーサネット
• 全2重モードのみ
• LAN向け仕様「LAN PHY」: 10Gbps• WAN向け仕様「WAN PHY」: 9.2942Gbps• 850nm帯MMF、1310nm帯SMF、1550nm
帯SMF、1310nm帯WWDMとの組み合わせで計7種類の規格
• UTPを用いる規格10GBASE-Tも2006年6月に標準化
108
無線LAN:隠れ端末問題
AB
C
Aからの電波はCに届かないのでAがBに送信中にCが電波を出すとBのところで衝突が起こる
109
CSMA/CA(Collision Avoidance)
AB
C
Bが通信予約中でない時、AはBに通信時間を記したRTS(Request To Send: 送信要求)を送る
RTS
110
CSMA/CA(Collision Avoidance)
AB
C
Bは通信時間を記したCTS(Clear To Send: 送信許可)を返し、通信を予約する
CTS
111
CSMA/CA(Collision Avoidance)
AB
C
AがBに通信中、CはCTSに記された時間送信を
控える
112
CSMA/CA(Collision Avoidance)
AB
C
通信が終了するとBはACKを返し、通信の予約
が解ける
ACK
113
FDDI(Fiber Distributed Data Interface)
• デュアルリング
• 1.3μm帯62.5/125μm光ファイバ、ノード間2km
114
フレーム構成
宛先 送信元 データ 誤り検出プリアンブル
64ビット 32ビット48ビット48ビット8 8 4 12
スタートデリミタ
フレームコントロール
エンドデリミタ
フレームステータス
• 4B5B符号化 → データに現れないパター
ンを制御信号に使用
• MSB First(アドレスだけはLSBから)
• 大長4500バイト
115
トークンパッシング
• トークン: 送信権を表す特殊なパケット
– トークンを獲得したステーションはトークン保持時間(=トークン周回目標時間 ー トークン周回時間)の間
送信できる
• データを受け取ったステーションはフレームステータスを設定する– E: エラー
– A: 自分宛であることを認識
– C: 受信確認
116
トークンパッシング(続き)
• データを送り終わったらトークンを送出(アーリーリリース)
• 送信データが1周して戻ってきたら取り除く
• 同期伝送: あらかじめ予約した時間だけ送信権を得る(リアルタイムデータ用)
117
2.4 ネットワーク層(IP)
118
IPヘッダ
バージョン IPヘッダ長 サービスタイプ 全長
識別子
余命時間 プロトコル
フラグメントオフセット
ヘッダチェックサム
送信元アドレス
宛先アドレス
オプション (0語以上)
DF
MF
32ビット
119
プロトコル番号の例
番号 プロトコル名 用途
1 ICMP 制御メッセージ
6 TCP コネクション指向・ギャランティード
17 UDP コネクションレス・ベストエフォート
120
IPアドレス
• 32ビットの2進数
– 例:10011101 01010010 11110110 01111000• 8ビットずつ区切って10進数で表したものを
ドット(ピリオド)でつないで表記
– 例:157.82.246.120
121
cf. 市外局番
32ビット
アドレス範囲
1.0.0.0~127.255.255.255
128.0.0.0~191.255.255.255
192.0.0.0~223.255.255.255
224.0.0.0~239.255.255.255
240.0.0.0~247.255.255.255
クラス
0 ネットワーク ホスト
1 0 ネットワーク ホスト
1 1 0 ネットワーク ホスト
1 1 1 0 マルチキャスト・アドレス
1 1 1 1 0 将来の使用に備え予約
A
B
C
D
E
IPアドレスのクラス
122
サブネット
cf. 市外局番─市内局番─加入者番号
• 組織の外からはサブネットは見えない
• ドット表記または「IPアドレス/(サブ)ネットマスク長」で表記
32ビット
(サブ)ネットマスク
1 0 ネットワーク サブネット ホスト
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
123
東京大学のサブネットの例
• 可変長サブネットマスク
サブネット アドレス
工学部2号館(旧館) 133.11.82.0/23
工学部3号館 133.11.64.0/22
工学部14号館 133.11.76.0/22
新領域創成科学研究科物質系専攻 157.82.242.0/23
新領域創成科学研究科先端エネルギー工学専攻 157.82.247.0/24
新領域創成科学研究科基盤情報学専攻 157.82.246.0/24
新領域創成科学研究科複雑理工学専攻 157.82.244.0/23
124
CIDR(Classless Inter Domain Routing)
• クラスCより大きな組織に対してクラスBではなく連続する2n個のクラスCを与える
• トポロジ的に近いネットワークに近いアドレスを与える→経路情報をまとめる
194.0.0.0~195.255.255.255 ヨーロッパ
198.0.0.0~199.255.255.255 北米
200.0.0.0~201.255.255.255 中南米
202.0.0.0~203.255.255.255 アジア・太平洋
• プロバイダを変えるとアドレスも変わる
125
プライベートアドレス
• 10.0.0.0/8(クラスA×1)
• 172.16.0.0/12(クラスB×16)
• 192.168.0.0/16(クラスC×256)
126
インターネットへ
172.20.6.3
157.82.246.115
送信元ポート=54321
172.20.6.1 172.20.6.2
送信元ポート=1234
送信元IP=172.20.6.1 送信元IP=157.82.240.115
宛先ポート=54321宛先IP=157.82.240.115
宛先ポート=1234宛先IP=172.20.6.1
①
②
NATルータ
NAPT (Network Address and Port Translation)
① 内から外に向かうパケットがあるとNATルータはポート番号を割当
② その後外から来るパケットについてもIPアドレスとポート番号を変換
127
ARP (Address Resolution Protocol)
• ネットワーク層 (ex. IP) アドレスからMACアドレスを見い出す方法
• ネットワークアドレスを格納したパケットをブロードキャスト
→そのアドレスを持つ端末が応答
128
パソコン(DHCPクライアント)
①
②
DHCPサーバ
③
④
DHCP(Dynamic Host Configuration Protocol)
① パソコンは接続しているネットワークにDHCP DISCOVERをブロードキャスト
② DHCPサーバはDHCP OFFERでIPアドレス、ネットマスク、デフォルトゲートウェイ、DNSサーバアドレス等を返答
③ パソコンは使用しようとするIPアドレスをDHCP REQUESTでDHCPサーバに送信
④ DHCPサーバはDHCP ACKでIPアドレスの使用を確認
129
APIPA(Automatic Private IP Addressing)
• DHCP DISCOVERに対して応答がない場合、169.254.x.y/16のアドレスをランダムに
選び、他の端末が使用中でないことを確認して用いる。
→パソコンとネットワークプリンタの間のネットワークなどを設定不要・DHCPサーバ不
要で構成可能
130
ニックネーム
• IPアドレスは数字のみで覚えにくい
→英数字+ハイフンからなるニックネーム
• NIC (Network Information Center)が世界中のコンピュータのニックネームとIPアドレスの対応表(hosts.txt)をFTPで公開
– 頻繁に更新する必要
– ニックネームの衝突
131
DNS (Domain Name System)
com edu gov org net jp kr uk us
汎用トップレベルドメイン 国別トップレベルドメイン
stanfordmit isocicann ac co go ne
keio u-tokyo waseda
or
k tisspicrr
. . .. . .
aida
132
① パソコンは加入しているプロバイダのDNSサーバに問い合わせを送る
② プロバイダのDNSサーバはルートDNSサーバに問い合わせを送る
③ ルートDNSサーバはjpドメインのDNSサーバのIPアドレスを返す
④ プロバイダのDNSサーバはjpドメインのDNSサーバに問い合わせを送る
⑩ u-tokyo.ac.jpドメインのDNSサーバからの返答をパソコンに返す
DNSの問い合わせ手順
パソコン(DNSクライアント)
①
ルートDNSサーバ
②
⑨加入プロバイダのDNSサーバ
③④
jpドメインのDNSサーバ
ac.jpドメインのDNSサーバ
u-tokyo.ac.jpドメインのDNSサーバ
⑩
⑥⑤
⑦⑧
133
WindowsのIPアドレスの設定
134
DHCPの場合
135
ipconfigコマンドC:¥Documents and Settings¥aida>ipconfig /all
Windows IP Configuration
Host Name . . . . . . . . . . . . : Aida-W2FW6AXRPrimary Dns Suffix . . . . . . . :Node Type . . . . . . . . . . . . : HybridIP Routing Enabled. . . . . . . . : NoWINS Proxy Enabled. . . . . . . . : NoDNS Suffix Search List. . . . . . : t.u-tokyo.ac.jp
Ethernet adapter ローカル エリア接続:
Connection-specific DNS Suffix . : t.u-tokyo.ac.jpDescription . . . . . . . . . . . : Realtek RTL8139/810x Family Fast Ethernet NICPhysical Address. . . . . . . . . : 00-0B-97-2C-4A-53Dhcp Enabled. . . . . . . . . . . : YesAutoconfiguration Enabled . . . . : YesIP Address. . . . . . . . . . . . : 157.82.12.60Subnet Mask . . . . . . . . . . . : 255.255.252.0Default Gateway . . . . . . . . . : 157.82.15.254DHCP Server . . . . . . . . . . . : 133.11.72.4DNS Servers . . . . . . . . . . . : 133.11.123.45
133.11.90.1Lease Obtained. . . . . . . . . . : 2006年4月12日 17:28:46Lease Expires . . . . . . . . . . : 2006年4月12日 19:28:46
Ethernet adapter ワイヤレス ネットワーク接続:
Media State . . . . . . . . . . . : Media disconnectedDescription . . . . . . . . . . . : Intel(R) PRO/Wireless 2915ABG Network ConnectionPhysical Address. . . . . . . . . : 00-0E-35-E4-BA-CD
C:¥Documents and Settings¥aida>
136
APIPA
137
APIPA
138
APIPAC:¥Documents and Settings¥aida>ipconfig /all
Windows IP Configuration
Host Name . . . . . . . . . . . . : Aida-W2FW6AXRPrimary Dns Suffix . . . . . . . :Node Type . . . . . . . . . . . . : HybridIP Routing Enabled. . . . . . . . : NoWINS Proxy Enabled. . . . . . . . : No
Ethernet adapter ローカル エリア接続:
Connection-specific DNS Suffix . :Description . . . . . . . . . . . : Realtek RTL8139/810x Family Fast Eth
ernet NICPhysical Address. . . . . . . . . : 00-0B-97-2C-4A-53Dhcp Enabled. . . . . . . . . . . : YesAutoconfiguration Enabled . . . . : YesAutoconfiguration IP Address. . . : 169.254.33.0Subnet Mask . . . . . . . . . . . : 255.255.0.0Default Gateway . . . . . . . . . :
C:¥Documents and Settings¥aida>
139
無線LANの設定
140
パケットの転送
• パケットを中継する装置:ルータ
• 届いたパケットが自分宛なら処理
• 自分と同じサブネットのホスト宛ならARPで宛先のMACアドレスを見出して転送
• 自分と異なるサブネットのホスト宛なら自分と同じサブネット上にある他のルータに転送
141
リピータ/ブリッジ/ルータ
リピータ ブリッジ ルータ
全てのフレームを中継
MACアドレスの
全桁を見て中継
IPアドレスの一部を見
て中継
物理層 データリンク層 ネットワーク層
リピータ自体にアドレスは不要
ブリッジ自体にアドレスは不要
ポート毎に異なるサブネットに属するIPアドレス(とMACアドレ
ス)が必要
ブロードキャストを伝搬する
ブロードキャストを伝搬する
ブロードキャストを通常伝搬しない
142
ルーティングテーブル
宛先(サブ)ネットワーク (サブ)ネットマスク 転送先
10.0.0.0 255.0.0.0 10.0.0.1172.16.0.0 255.255.0.0 172.16.0.1172.17.0.0 255.255.0.0 172.16.0.2192.168.1.0 255.255.255.0 172.16.0.2192.168.2.0 255.255.255.0 172.16.0.2
ルータAのルーティングテーブル
10.0.0.1
ルータA
172.16.0.1
172.17.0.1
ルータB
172.16.0.2
172.17.0.2
ルータC
192.168.1.1
172.17.0.3
ルータD
192.168.2.1
143
ルーティングテーブル
宛先(サブ)ネットワーク (サブ)ネットマスク 転送先
10.0.0.0 255.0.0.0 172.16.0.1172.16.0.0 255.255.0.0 172.16.0.2172.17.0.0 255.255.0.0 172.17.0.1192.168.1.0 255.255.255.0 172.17.0.2192.168.2.0 255.255.255.0 172.17.0.3
ルータBのルーティングテーブル
10.0.0.1
ルータA
172.16.0.1
172.17.0.1
ルータB
172.16.0.2
172.17.0.2
ルータC
192.168.1.1
172.17.0.3
ルータD
192.168.2.1
144
ルーティングテーブル
宛先(サブ)ネットワーク (サブ)ネットマスク 転送先
10.0.0.0 255.0.0.0 172.17.0.1172.16.0.0 255.255.0.0 172.17.0.1172.17.0.0 255.255.0.0 172.17.0.2192.168.1.0 255.255.255.0 192.168.1.1192.168.2.0 255.255.255.0 172.17.0.3
ルータCのルーティングテーブル
10.0.0.1
ルータA
172.16.0.1
172.17.0.1
ルータB
172.16.0.2
172.17.0.2
ルータC
192.168.1.1
172.17.0.3
ルータD
192.168.2.1
145
ルーティングテーブル
宛先(サブ)ネットワーク (サブ)ネットマスク 転送先
10.0.0.0 255.0.0.0 172.17.0.1172.16.0.0 255.255.0.0 172.17.0.1172.17.0.0 255.255.0.0 172.17.0.3192.168.1.0 255.255.255.0 172.17.0.2192.168.2.0 255.255.255.0 192.168.2.1
ルータDのルーティングテーブル
10.0.0.1
ルータA
172.16.0.1
172.17.0.1
ルータB
172.16.0.2
172.17.0.2
ルータC
192.168.1.1
172.17.0.3
ルータD
192.168.2.1
146
デフォルトルート
• インターネット中の全てのネットワークをルーティングテーブルに書くことは困難
• 「その他のネットワーク」を一括してアドレス0.0.0.0、ネットマスク0.0.0.0で表現
• 「デフォルトゲートウェイ」のみ設定することも多い
147
netstatコマンドC:¥Documents and Settings¥aida>netstat -r
Route Table===========================================================================Interface List0x1 ........................... MS TCP Loopback interface0x2 ...00 0b 97 2c 4a 53 ...... Realtek RTL8139/810x Family Fast Ethernet NIC -パケット スケジューラ ミニポート0x3 ...00 0e 35 e4 ba cd ...... Intel(R) PRO/Wireless 2915ABG Network Connection- パケット スケジューラ ミニポート
======================================================================================================================================================Active Routes:Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 157.82.15.254 157.82.12.60 20127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
157.82.12.0 255.255.252.0 157.82.12.60 157.82.12.60 20157.82.12.60 255.255.255.255 127.0.0.1 127.0.0.1 20
157.82.255.255 255.255.255.255 157.82.12.60 157.82.12.60 20224.0.0.0 240.0.0.0 157.82.12.60 157.82.12.60 20
255.255.255.255 255.255.255.255 157.82.12.60 157.82.12.60 1255.255.255.255 255.255.255.255 157.82.12.60 3 1
Default Gateway: 157.82.15.254===========================================================================Persistent Routes:
None
C:¥Documents and Settings¥aida>
148
パケット分割
最大パケット長1500バイト
最大パケット長1000バイト
最大パケット長1500バイト
len=1500,Id=xyzMF=0, offset=0
len=996, Id=xyzMF=1, offset=0
len=524, Id=xyzMF=0,offset=122
len=996, Id=xyzMF=1, offset=0
len=524, Id=xyzMF=0,offset=122
ルータ ルータ ルータ ルータ
149
パケット分割
最大パケット長1500バイト
最大パケット長1000バイト
最大パケット長800バイト
len=1500,Id=xyzMF=0, offset=0
len=996, Id=xyzMF=1, offset=0
len=524, Id=xyzMF=0,offset=122
len=796, Id=xyzMF=1, offset=0
len=524, Id=xyzMF=0,offset=122
len=220, Id=xyzMF=1, offset=97
ルータ ルータ ルータ ルータ
150
ICMP (Internet Control Message Protocol)
タイプ 名称
0 エコー応答
3 宛先到達不能
4 送信元抑制
5 方向変換
8 エコー要求
11 生存時間超過
12 パラメータ障害
13 タイムスタンプ要求
14 タイムスタンプ応答
151
タイプ=3のコードコード 説明
0 宛先ネットワーク到達不能
1 宛先ホスト到達不能
2 宛先プロトコル到達不能
3 宛先ポート到達不能
4 Don’t Fragmentが指定されたパケットの分割が必要
5 ソースルート失敗
6 宛先ネットワーク不明
7 宛先ホスト不明
8 送信元ホスト隔離中
9 宛先ネットワークとの通信を管理上禁止中
10 宛先ホストとの通信を管理上禁止中
11 このサービス種別では宛先ネットワーク到達不能
12 このサービス種別では宛先ホスト到達不能
152
tracert(traceroute)コマンドC:¥Documents and Settings¥aida>tracert www.yahoo.com
Tracing route to www.yahoo.akadns.net [66.94.230.32]over a maximum of 30 hops:
1 <1 ms <1 ms <1 ms 157.82.15.2542 <1 ms <1 ms <1 ms ra36-vlan2.nc.u-tokyo.ac.jp [133.11.127.43]3 <1 ms <1 ms <1 ms ra37-vlan3.nc.u-tokyo.ac.jp [133.11.127.78]4 <1 ms <1 ms <1 ms tokyo-S1-G2-0.sinet.ad.jp [150.99.197.169]5 1 ms <1 ms 1 ms tokyo-core1-P3-0.sinet.ad.jp [150.99.197.37]6 1 ms 1 ms 1 ms nii-S1-P4-0.sinet.ad.jp [150.99.197.22]7 1 ms <1 ms <1 ms nii-gate2-P4-0.sinet.ad.jp [150.99.198.22]8 101 ms 101 ms 101 ms LAX-gate1-P4-1.sinet.ad.jp [150.99.199.14]9 101 ms 101 ms 101 ms 64.156.173.93
10 111 ms 101 ms 101 ms ae-2-52.bbr2.LosAngeles1.Level3.net [4.68.102.33]11 113 ms 113 ms 113 ms ae-0-0.bbr1.SanJose1.Level3.net [64.159.1.129]12 113 ms 119 ms 132 ms ge-10-1.ipcolo3.SanJose1.Level3.net [4.68.123.75]13 114 ms 114 ms 113 ms unknown.Level3.net [64.152.69.30]14 114 ms 114 ms 114 ms ten-1-3-bas1.scd.yahoo.com [66.218.82.217]15 114 ms 114 ms 114 ms p1.www.scd.yahoo.com [66.94.230.32]
Trace complete.
C:¥Documents and Settings¥aida>
153
IPv6ヘッダ
32ビット
バージョントラヒッククラス
フローラベル
ぺイロード長 次ヘッダ ホップ制限
送信元アドレス(16バイト)
宛先アドレス(16バイト)
154
拡張ヘッダ 内容
ホップバイホップオプション ルータに関する様々な情報
宛先オプション 宛先に関する付加情報
ルーティング 訪問すべきルータの厳密でないリスト
フラグメント化 データグラムフラグメントの管理
認証 送信元の身元確認
暗号化された安全ペイロード 暗号化された内容に関する情報
拡張ヘッダ
155
2.5 トランスポート層
156
TCPとUDP
• TCP (Transmission Control Protocol)– コネクション型、ギャランティード
– マルチキャスト・ブロードキャスト不可
• UDP (User Datagram Protocol)– コネクションレス、ベストエフォート
– マルチキャスト・ブロードキャスト可
cf. IP (Internet Protocol)– コネクションレス、ベストエフォート
157
ポート番号 プロトコル名 アプリケーション
21 FTP ファイル転送
23 telnet 遠隔ログイン
25 SMTP 電子メール
53 DNS ドメイン名
80 HTTP WWW110 POP-3 電子メール読み出し
143 IMAP 電子メール読み出し
443 HTTPS セキュアWWW
ポート番号の例
158
A B C D
アプリケーション層
アプリケーション層
トランスポート層
トランスポート層
A B C DA B C D A B C D
A B C D
C DA BC DA B C DA B
B CA D
A B C D
TCPのサービスモデル
A B C D
ネットワーク層
159
TCPセグメント
32ビット
送信元ポート 宛先ポート
順序番号
確認通知番号
TCPヘッダ長
UR
G
AC
K
PS
H
RS
T
SY
N
FI
Nウィンドウサイズ
チェックサム 緊急ポインタ
オプション (0 個以上の 32ビット語)
データ (無いこともある)
160
時間
ホスト1 ホスト2
SYN (SEQ = y, ACK = x + 1)
SYN (SEQ = x)
(SEQ = x + 1, ACK = y + 1)
ホスト1 ホスト2
SYN (SEQ = y, ACK = x + 1)
SYN (SEQ = x)
SYN (SEQ = y)
SYN (SEQ = x , ACK = y + 1)
(b)(a)
TCPのコネクション確立
(a) 通常のTCPコネクション確立
(b) 呼び出しの衝突
161
TCPの状態遷移
太い実線:クライアントの通常経路
太い点線:サーバの通常経路
CLOSED
LISTEN
ESTABLISHED
CLOSING CLOSEWAIT
(始め)CONNECT/SYN (3ウェイハンドシェークの第1段階)
LISTEN/-
SYN/SYN + ACK
SYNRCVD
FINWAIT 1
TIMEWAIT
LASTACK
FINWAIT 2
SYNSENT
RST/-
ACK/
(能動クローズ)
FIN/ACK
FIN + ACK/ACK
FIN/ACK
ACK/-
ACK/-
ACK/-
SEND/SYN
SYN/SYN + ACK (同時オープン)
(データ転送状態)
SYN + ACK/ACK
(3ウェイハンドシェークの第3段階)
CLOSE/FIN
CLOSE/FIN FIN/ACK
CLOSE/-
CLOSE/-
CLOSE/FIN
CLOSED
(受動クローズ)
(タイムアウト/)
(始めに戻る)
(3ウェイハンドシェークの第2段階)
162
ACK = 4096 WIN = 0
TCPのフロー制御アプリケーション層から2K受け取る
アプリケーション層から3K受け取る
アプリケーション層に2K渡す
送信側ブロック
送信側は2Kまで送信可能
受信側のバッファ
0 4K
2K
2K
空
満
2 K1K
送信側 受信側
ACK = 4096 WIN = 2048
ACK = 2048 WIN = 2048
SEQ = 2048 LEN = 2048
SEQ = 4096 LEN = 1024
SEQ = 0 LEN = 2048
163
送信側ブロック
送信側ブロック
送信側は2Kまで送信可能
送信側は2Kまで送信可能
アプリケーション層に2K渡す
アプリケーション層に2K渡す
アプリケーション層に2K渡す
受信側のバッファ
送信側 受信側
アプリケーション層が高速な場合
0 4K
2K
ACK = 2048 WIN = 2048
ACK = 4096 WIN = 2048
ACK = 6144 WIN = 2048
2K
2K
SEQ = 0 LEN = 2048
SEQ = 2048 LEN = 2048
SEQ = 4096 LEN = 2048
SEQ = 6144 LEN = 2048
空
空
空
空
164
連続送信可能ウィンドウサイズ
• ACKが戻ってくるよりウィンドウサイズが大
きければ連続的に送信可能
例:100Mbps, 片道20km≒0.1ms→ウィンドウサイズ: 20kbit=2500バイト
例:2Mbps, 往復200ms→ウィンドウサイズ: 400kbit=50,000バイト
• ウィンドウスケールオプション
165
送信側 受信側
×
TCPの誤り制御
タイムアウト
ACK = 2048 WIN = 4096
SEQ = 0 LEN = 2048
SEQ = 0 LEN = 2048
166
送信側 受信側
ACKが失われた場合
ACK = 2048 WIN = 4096
ACK = 2048 WIN = 2048
×タイムアウト
SEQ = 0 LEN = 2048
SEQ = 0 LEN = 2048
167
送信側 受信側
累積ACK
×
ACK = 2048
ACK = 12288
ACK = 16384
ACK = 4096
ACK = 6144
ACK = 8192
SEQ = 0 LEN = 2048
SEQ = 2048 LEN = 2048SEQ = 4096 LEN = 2048SEQ = 6144 LEN = 2048SEQ = 8192 LEN = 2048SEQ = 10240 LEN = 2048SEQ = 12288 LEN = 2048SEQ = 14336 LEN = 2088SEQ = 16384 LEN = 2088
168
送信側 受信側
×
Fast Retransmit
ACK = 2048
ACK = 2048
ACK = 2048
ACK = 2048
ACK = 2048
ACK = 2048
ACK = 14336
重複するACKが3つ続けて届いた
らタイムアウトを待たずに再送
SEQ = 0 LEN = 2048
SEQ = 2048 LEN = 2048SEQ = 4096 LEN = 2048SEQ = 6144 LEN = 2048SEQ = 8192 LEN = 2048SEQ = 10240 LEN = 2048SEQ = 12288 LEN = 2048SEQ = 2048 LEN = 2048SEQ = 14336 LEN = 2048
169
伝送速度の調節
伝送ネットワーク 内部の
輻輳
小容量の受信者
大容量の受信者
(a) (b)
フロー制御と輻輳制御
170
輻輳ウィンドウ(キロバイト)
スロースタート・輻輳回避44
40
36
32
28
24
20
16
12
8
4
00 2 4 6 8 10 12
タイムアウト
閾値
14 16 18 20 22 24経過時間(往復遅延)
閾値
171
輻輳(パケットロス)の検出
• タイムアウト– 閾値 ← 未確認データ量×1/2– 輻輳ウィンドウ ← 1MSS
• 3個の重複するACK– 閾値 ← 未確認データ量×1/2– 輻輳ウィンドウ ← 閾値
172
UDPヘッダ
32ビット
送信元ポート番号
UDP長
宛先ポート番号
UDPチェックサム
173
マルチメディアアプリケーション
RTPソケットインタフェース
UDPIP
イーサネット
(a) (b)
Ethernetヘッダ
IPヘッダ
UDPヘッダ
RTPヘッダ
RTPぺイロード
UDPペイロード
IPペイロード
イーサネットぺイロード
ユーザ空間
OSカーネル
RTP (Real-Time Transport Protocol)
174
RTPヘッダ
32ビット
バージョン
P X M ぺイロードタイプ 順序番号
タイムスタンプ
同期送信元識別子
寄与送信元識別子
CC
175
2.6 経路制御
176
DijkstraのアルゴリズムC (∞, -)
E (∞, -)
H (∞, -)G (6, A)
D (∞, -)A
A A
(a)
F (∞, -) D (∞, -)
(c)
B (2, A) C (8, B)
H (∞, -)
E (4, B)
G (6, A)
F (6, E)
(e)
B (2, A) C (8, B)
H (9, G)
E (4, B)
G (5, E)(f)
F (6, E)
(d)
B (2, A) C (8, B)
H (∞, -)
E (4, B)
G (5, E)
F (∞, -) D (∞, -)A
(b)
B (2, A)
D (∞, -)
HG
41
A D2
B 6 C
3
3 3
22 FE
2
6
A F (6, E)
B (2, A) C (8, B)
H (8, F)
E (4, B)
G (5, E)
D (∞, -)
177
距離ベクトル方式(Bellman-Fordの
アルゴリズム)
• 宛先ノードまでの遅延の見積値を隣接ノード間で交換
• 受け取った見積値にそのノードまでの遅延を加えた値を比較し、 小のものを選択
178
HG
41
A D2
B 6 C
3
3 3
22 FE
2
6
• Bから Fから Gから 計算結果
A 2B 0C 6D 9E 2F 4G 3H 6
A 6B 4C 3D 5E 2F 0G 3H 2
A 5B 3C 6D 7E 1F 3G 0H 4
A 4 BB 2 BC 5 FD 7 FE 0 -F 2 FG 1 GH 4 F
179
link state方式
• 隣接ノードとそこに至る遅延時間を他のすべてのノードに伝える
→各ノードにおいてDijkstraのアルゴリズム
により 短経路を計算
180
経路制御プロトコルの例
• RIP (Routing Information Protocol)– 距離ベクトル
– version 2でサブネットに対応
• OSPF (Open Shortest Path First)– link state
• BGP (Border Gateway Protocol)– 自律システム(≒プロバイダ)間の経路制御
– パスベクトル:距離だけでなく途中経路をすべて伝える
181
3. インターネットのアプリケーション
182
3.1 電子メール
183
① 送信者は加入しているプロバイダの送信メールサーバにメールを送る(SMTP)
② 送信メールサーバは宛先メールアドレスのドメインを担当するメールサーバをDNSで見出す
③ 送信メールサーバは宛先メールアドレスの受信メールサーバにメールを転送(SMTP)
④ 受信メールサーバは受信したメールをディスクに格納
⑤ 受信者が受信メールサーバに接続して届いたメールを読み出す(POPまたはIMAP)
電子メールが届くまで
送信者のパソコン
①
送信者のプロバイダの送信用メールサーバ
宛先メールアドレスドメインの受信メールサーバ
受信者のパソコン
②⑤
DNSサーバ
③
④
184
ヘッダ、本文、エンベロープ
Mr. Daniel Dumkopf18 Willow LaneWhite Plains, NY 10604
United Gizmo180 Main StBoston, MA 02120Sept. 1, 2002
Yours trulyUnited Gizmo
Subject: invoice 1081
Dear Mr. Dumkopf,
show that you still havenot paid the above invoiceof $0.00. Please send us acheck for $0.00 promptly.
エンベロープ
メッセージ
(a) (b)
本文
ヘッダ
エンベロープ37¢
Our computer records
Yours trulyUnited Gizmo
Dear Mr. Dumkopf,
show that you still havenot paid the above invoiceof $0.00. Please send us acheck for $0.00 promptly.
Our computer records
From: United GizmoAddress: 180 Main StLocation: Boston, MA 02120Date: Sept. 1, 2002Subject: invoice 1081
Name: Mr. Daniel DumkopfStreet: 18 Willow LaneCity: White PlainsState: NYZip code: 10604Priority: UrgentEncryption: None
185
各ヘッダの意味
ヘッダ 意味
From: 送信元
To: 主たる宛先
Cc: 「カーボンコピー」の宛先
Bcc: 「ブラインド・カーボン・コピー」の宛先
Date: 送信日時
Subject: 題名
Sender: 実際の送信者
Reply-To: 返信先
Message-Id: メッセージ識別子
In-Reply-To: 返信のもととなったメッセージの識別子
Received: メールの転送履歴
186
SMTP, POPプロトコル
• クライアントからサーバに1行コマンドを送信するとサーバからクライアントに1行以上
の応答が返ってくる
• 返答の先頭にステータスコード
• 複数行からなるデータを送るときにはピリオドだけからなる行で終わりを表す
187
25番ポートにコネクションを設定
220 aida.k.u-tokyo.ac.jp ESMTP Sendmail 8.11.6/8.11.6; Wed, 14 Jul 2004 22:15:20 +0900
HELO uso800.aida.k.u-tokyo.ac.jp
250 aida.k.u-tokyo.ac.jp Hello sail-450.sail.t.u-tokyo.ac.jp [172.20.1.1], pleased to meet you
MAIL From: aida@k.u-tokyo.ac.jp
250 2.1.0 aida@k.u-tokyo.ac.jp... Sender ok
RCPT To: aida@yyy.zzz.net
250 2.1.5 aida@yyy.zzz.net... Recipient ok
From: aida@k.u-tokyo.ac.jpTo: aida@yyy.zzz.netSubject: test
←ヘッダと本文の間は空行で区切るHello, how are you?. ←ピリオドだけからなる行
250 2.0.0 i6EDFkf17350 Message accepted for delivery
QUIT
221 2.0.0 aida.k.u-tokyo.ac.jp closing connection
354 Enter mail, end with "." on a line by itself
DATA
クライアント
サーバ
コネクションを切断
188
+OK 1 75712 49793 101424 62495 62646 71217 81758 114709 717310 1042211 521312 551413 588314 626815 561316 318117 1037. ←ピリオドだけからなる行
110番ポートにコネクションを設定
+OK <7330.1089811212@popichi06e>
USER aida
+OK
PASS aida1104
+OK
LIST
クライアント
サーバ
189
+OK 1037 octetsReturn-Path: <aida@k.u-tokyo.ac.jp>Delivered-To: aida@yyy.zzz.netReceived: (qmail 15008 invoked from network); 14 Jul 2004 22:17:03 +0900Received: from unknown (HELO ns.zzz.net) (192.168.1.136)
by drpichi01e with SMTP; 14 Jul 2004 22:17:03 +0900Received: (qmail 7939 invoked from network); 14 Jul 2004 22:17:03 +0900Received: from unknown (HELO aida.k.u-tokyo.ac.jp) (157.82.246.115)by mtiichi06e with SMTP; 14 Jul 2004 22:17:03 +0900
Received: from aida.k.u-tokyo.ac.jp (localhost [127.0.0.1])by aida.k.u-tokyo.ac.jp (8.11.6/8.11.6) with ESMTP id
i6EDGiB17357for <aida@yyy.zzz.net>; Wed, 14 Jul 2004 22:16:44 +0900
Received: from uso800.aida.k.u-tokyo.ac.jp (sail-450.sail.t.u-tokyo.ac.jp [172.20.1.1])
by aida.k.u-tokyo.ac.jp (8.11.6/8.11.6) with SMTP id i6EDFkf17350
for aida@yyy.zzz.net; Wed, 14 Jul 2004 22:16:02 +0900Date: Wed, 14 Jul 2004 22:16:02 +0900Message-Id: <200407141316.i6EDFkf17350@aida.k.u-tokyo.ac.jp>From: aida@k.u-tokyo.ac.jpTo: aida@yyy.zzz.netSubject: test
←ヘッダと本文の区切りHello, how are you?
. ←ピリオドだけからなる行
RETR 17
QUIT
+OK
クライアント
サーバ
コネクションを切断
190
注意すべき点
• パスワード・本文はそのまま送られる– APOP– POP over SSL
• MAIL FROM・メッセージヘッダのFromは本人確認されているわけではない– POP before SMTP– SMTP AUTH– PGP, S/MIME
191
3.2 マルチメディアデータ形式
192
MIME (Multipurpose Internet Mail Extensions)
• ASCII文字以外のデータを送るための仕
様– ヘッダ中の非ASCII文字
– 本文中の非ASCII文字(Transfer-Encoding)
– テキスト以外のデータ(Content-Type)– 複数部分からなる本文(添付ファイル等)
193
Content-Typeの例
• text/plain• text/enriched• image/gif• image/jpeg• audio/basic• video/mpeg
• application/octet-stream • application/postscript• multipart/mixed• multipart/alternative
194
デジタル化
• 標本化(サンプリング)– 高周波数の2倍以上高い周波数で標本化すれば
情報は失われない(ナイキストの原理)
• 量子化
– 必ず情報が失われる
195
(圧縮)符号化
• 変換– 偏りを大きくする
• (再量子化)
• エントロピー符号化
• 可逆 (lossless): 数分の1程度
• 不可逆 (lossy): 数十分の1以下のものも
196
オーディオ
• CELP: 音質あまり良くない→携帯電話
• MP3: 人間の聴覚特性を利用した圧縮
マスク信号が150Hzの可聴
閾値
周波数 (kHz)
音圧
(dB
)
.1 1 10 205.5.2.05.02 2
80
60
40
20
0
(a)周波数 (kHz)
(b)
マスクされる信号
可聴閾値f
音圧
(dB
)
80
60
40
20
0.1 1 10 205.5.2.05.02 2
197
静止画像
• BMP• GIF• PNG• JPEG• JPEG-2000
198
JPEG
– Y=0.30R+0.59G+0.11B– I=0.60R-0.28G-0.32B, Q=0.21R-0.52G+0.31B– 8×8画素のブロックごとにDCT変換
Q
Yx
y/2
Ix/2
1 Block = 8 pixel x 8 pixel8-Bit pixel
RGB
24-Bit pixel
y/2
yy
x
199
DCT (Discrete Cosine Transformation) 係数の符号化
1509252124210
807538
83210
403626
62100
46720000
21410000
10000000
00000000
DCT係数 量子化された係数量子化テーブル
11248
163264
11248
163264
22248
163264
44448
163264
88888
163264
1616161616163264
3232323232323264
6464646464646464
1410840100
1509226
31000
80751920000
201813
20000
43210000
11100000
00000000
00000000
00000000
200
グラフィックス
• Postscript• PDF• Flash
201
動画像
• Motion JPEG• MPEG-1• MPEG-2• H.264
202
動き補償
• 16×16画素のマクロブロックごとに参照フ
レーム内で も似ている位置(画素または半画素単位)を探し、その変位(動きベクトル)と差分画像を符号化
203
ピクチャ形式
• Iピクチャ
– 全てのブロックをJPEGと同じ方式で符号化
• Pピクチャ
– 直前のIまたはPピクチャから予測符号化
• Bピクチャ
– 直前のIまたはPピクチャと直後のIまたはPピク
チャの両方から予測符号化
204
GOP (Group of Pictures)
• 定期的にIピクチャを挿入することで伝送誤
りや頭出し等に対処
• I B B P B B P B B P B B P B B• I B B P B B P B B P B B P B B P• I P P P P P P P P P P P P P P
205
コンテンツ配信
• ダウンロード
• ストリーミング
• QuickTime• Real• Windows Media
206
3.3 World Wide Web
207
WWWの生い立ち
• 1989 CERN (European Center for Nuclear Research) で文書管理のために考案– 他の文書へのリンクを含むテキスト(HyperText)– HTML
• 1993 Mosaic– クリックするだけでリンク先にアクセスすることのでき
るグラフカルユーザインタフェース
• 1994 World Wide Web Consortium• Netscape Navigator vs. Internet Explorer
208
URL (Uniform Resource Locator)
スキーム名://ドメイン名:ポート番号/ファイル名
例:http://www.aida.k.u-tokyo.ac.jp:8080/index.html• 「:ポート番号」、「/ファイル名」は省略可能
• 「:ポート番号」を省略した場合にはスキーム
ごとの既定値が使用される
209
スキームの例
スキーム名 プロトコル ポート番号
http HTTP 80https 暗号化されたHTTP 443
file そのコンピュータ上のファイル
-
ftp ファイル転送プロトコル 21
mailto 電子メール 25
210
GET /~aida/koujichu.html HTTP/1.0←コマンドの終わりを表す空行
80番ポートにコネクションを設定
HTTP/1.1 200 OK ←ステータスDate: Thu, 21 Apr 2005 02:41:27 GMTServer: Apache/1.3.27 (Unix) (Red-Hat/Linux) mod_ssl/2.8.12 OpenSSL/0.9.6b DAV/1.0.3 PHP/4.1.2 mod_perl/1.26Last-Modified: Thu, 21 Apr 2005 02:17:43 GMTETag: "beedd-9d-42670d47"Accept-Ranges: bytesContent-Length: 157Connection: closeContent-Type: text/html
←ヘッダと本文を区切る空行<HTML>
<HEAD><TITLE>工事中</TITLE>
</HEAD><BODY><IMG SRC="koujichu.gif" ALT="工事中">申し訳ありませんがただい
ま工事中です</BODY>
</HTML>
クライアント
サーバ
コネクションを切断
211
ブラウザの構造
• 第1世代:全てのコンテンツをブラウザ自身が処
理
• ヘルパーアプリケーション
– 別ウィンドウで動作
• プラグイン
– ブラウザウィンドウ内で動作
• アプレット
– 実行可能なプログラムをコンテンツとしてダウンロード
212
ブラウザの構造
GIFJPEG
インタプリタ
HTMLインタプリタ
HTML
プラグイン
GIFJPEG等
Flash等
HTTP
ブラウザアプリケーション
Webコンテンツ
ヘルパーアプリケーション
アプレット
ユーザインタフェースReal等
213
HTML (HyperText Markup Language)
• 文書構造を記述するためのSGML (Standard Generalized Markup Language)をハイパーテキスト記述に応用
HTML 1.0
HTML 2.0
Netscape独自 Microsoft独自HTML 3.0
HTML 3.2
HTML 4.0
214
タグ
<タグ名 属性名=“属性値”>文字列</タグ名>開始タグ 終了タグ
• タグ名、属性名の大文字/小文字は区別しない
• 終了タグは省略されることもある
215
基本的なタグ
タグ名 意味 属性など
H1~H6 見出し 数字の小さい方が大きな見出し
P 段落 align=“right”など
BR 改行 終了タグなし
I イタリック
B ボールド
FONT フォント size, face, colorなど
IMG 画像埋め込み
src=“ファイル名” alt=“代替文字列”width, height、終了タグなし
216
記述例<H1>レベル1の見出し</H1><H2>レベル2の見出し</H2><H3>レベル3の見出し</H3>入力本文中で改行しても画面上では改行されないので画面上で改行したい場合には<P>や<BR>を使う必要があります。<P><B>と</B>で囲まれた部分は<B>ボールド</B>で表示されます。<BR><I>と</I>で囲まれた部分は<I>イタリック</I>で表示されます。<BR><U>と</U>で囲まれた部分は<U>下線付き</U>で表示されます。<BR>
217
218
ハイパーリンク(アンカー)
• <A href=“URL”>文字列</A>• <A href=“ファイル名”>文字列</A>• 多くのブラウザでは文字列の部分の色を
変えてアンダーラインを引くことでハイパーリンクの存在を意識させる
219
HTML文書の全体構造
<HTML><HEAD>
<TITLE>タイトル</TITLE></HEAD><BODY>
文書本体
</BODY></HTML>
220
リスト、表
タグ名 意味 属性など
UL Unnumbered List type=“disc”/”circle”/”square”OL Orderd List type, startなど
LI List Item リストの項目
TABLE Table borderなど
TR Table Row rowspan(行をまたがる)など
TD Table Data align, valign, rowspan, colspan, nowrapなど
TH Table Header ボールドでセンタリング
221
<UL><LI><B>と</B>で囲まれた部分は<B>ボールド</B>で表示されます。<LI><I>と</I>で囲まれた部分は<I>イタリック</I>で表示されます。<LI><U>と</U>で囲まれた部分は<U>下線付き</U>で表示されます。</UL><TABLE BORDER><TR><TH>タグ名<TH>意味<TH>属性など<TR><TD>TABLE<TD>Table<TD>borderなど<TR><TD>TR<TD>Table Row<TD>rowspan(行をまたがる)など<TR><TD>TD<TD>Table Data<TD>align, valign, rowspan, colspan, nowrapなど<TR><TD>TH<TD>Table Header<TD>ボールドでセンタリング</TABLE>
222
223
ブラウザ独自のタグ
• BLINK– 点滅表示
– Netscape Navigatorのみ
• MARQUEE– 横スクロール
– Internet Explorerのみ
224
XML (eXtensible Markup Language)
• 見かけではなく項目の意味づけを記述
– 利用者が新たなタグを定義
– 企業間でのデータ交換など多目的に利用可
• ブラウザに表示するためには見かけをXSL (eXtensible Stylesheet Language) によ
るスタイルシートで記述
225
XMLによるコンテンツ記述例
<?xml version="1.0" ?><?xml-stylesheet type="text/xsl" href="book_list.xsl"?><book_list><book> <title> Computer Networks, 4/e </title> <author> Andrew S.
Tanenbaum </author> <year> 2003 </year> </book><book> <title> Modern Operating Systems, 2/e </title> <author> Andrew
S. Tanenbaum </author> <year> 2001 </year> </book><book> <title> Structured Computer Organization, 4/e </title> <author>
Andrew S. Tanenbaum </author> <year> 1999 </year> </book></book_list>
226
XSLによるスタイルシート
<?xml version='1.0'?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"><xsl:template match="/"><html><body><table border="2">
<tr><th> Title</th><th> Author</th><th> Year </th>
</tr>
227
XSLによるスタイルシート(続き)
<xsl:for-each select="book_list/book"><tr>
<td> <xsl:value-of select="title"/> </td><td> <xsl:value-of select="author"/> </td><td> <xsl:value-of select="year"/> </td>
</tr></xsl:for-each>
</table></body></html></xsl:template></xsl:stylesheet>
228
229
動的文書・アクティブ文書
• クライアント側スクリプト– JaveScript– VBScript
• アプレット
• サーバー側スクリプト– ASP (Active Server Pages)
• サーバー側プログラム– CGI (Common Gateway Interface)– Java Servlet
230
動的文書・アクティブ文書
クライアントサイド
スクリプト
インタプリタ
ブラウザ
アプレット
インターネット
サーバサイドスクリプト
インタプリタ
Webサーバ
CGI CGIプログラム
クライアントコンピュータ Webサーバコンピュータデータベースコンピュータ
231
クライアント側スクリプトの例(クリックなしにリンク先を表示)
<html><head><script language="javascript" type="text/javascript">if (!document.myurl) document.myurl = new Array();document.myurl[0] = "http://www.aida.k.u-tokyo.ac.jp/~aida/rat.jpg";document.myurl[1] = "http://www.aida.k.u-tokyo.ac.jp/~aida/ox.jpg";document.myurl[2] = "http://www.aida.k.u-tokyo.ac.jp/~aida/tiger.jpg";function pop(m) {
popupwin = window.open(document.myurl[m],"mywind","width=256,height=256");}</script></head><body><p> <a href="#" onMouseover="pop(0); return false;" > rat </a> </p><p> <a href="#" onMouseover="pop(1); return false;" > ox </a> </p><p> <a href="#" onMouseover="pop(2); return false;" > tiger </a> </p></body></html>
232
クライアント側スクリプトの例(階乗の計算)
<html><head><script language="javascript" type="text/javascript">function response(test_form) {
function factorial(n) {if (n == 0) return 1; else return n * factorial(n - 1);}var r = eval(test_form.number.value); // r = typed in argumentdocument.myform.mytext.value = "Here are the results.¥n";for (var i = 1; i <= r; i++) // print one line from 1 to r
document.myform.mytext.value += (i + "! = " + factorial(i) + "¥n");}</script></head><body><form name="myform">Please enter a number: <input type="text" name="number"><input type="button" value="compute table of factorials" onclick="response(this.form)"><p><textarea name="mytext" rows=25 cols=50> </textarea></form></body></html>
233
フォーム
<FORM METHOD="GET" ACTION=”/cgi-bin/sample.cgi">氏名<INPUT TYPE="text" NAME="name">年令<INPUT TYPE="text" NAME="age" SIZE="5"><P>男<INPUT TYPE="radio" NAME="sex" VALUE="male">女<INPUT TYPE="radio" NAME="sex" VALUE="female">勤労学生<INPUT TYPE="checkbox" NAME="student" VALUE="1">障害者<INPUT TYPE="checkbox" NAME="handicapped"
VALUE="1"><INPUT TYPE="submit" VALUE="送信"></FORM>
234
235
CGIプログラムへのデータの渡し方
• METHOD=“GET”の場合– URLのファイル名の後に付けられる
GET /cgi-bin/sample.cgi?name=Hitoshi+AIDA&age=47&sex=male
– CGIプログラムの環境変数QUERY_STRINGに与えられる
• METHOD=“POST”の場合– CGIプログラムの標準入力に与えられる
236
CGIプログラムの例と実行結果
#!/bin/sh
echo "Content-type: text/plain"echo ""
echo '$QUERY_STRING'echo $QUERY_STRING
echo 'stdin'cat
$QUERY_STRING
name=Hitoshi+AIDA&age=47&sex=male
stdin
237
Cookie
• HTTPリクエストをまたいで状態を保持する手段
• Set-Cookie/Set-Cookie2レスポンス
– Set-Cookie: 変数名=値; Path=パス名 …
• Cookieリクエストヘッダ
– Cookie: 変数名1=値1; 変数名2=値2 …
• CGIでは環境変数HTTP_COOKIEで参照可
238
負荷分散
リクエスト分配スイッチ
データベース
Webサーバ
239
Content Delivery Network
従来のWebサーバシステム コンテンツ配信システム
240
Web 2.0「Web 1.0」 「Web 2.0」
DoubleClick Google AdSenseOfoto Flickr
mp3.com NapsterBritannica Online Wikipedia
個人のウェブサイト ブログ
ドメイン名の投機 検索エンジンへの 適化
ディレクトリ
(分類学)
タグ付け
(人々による分類”folksonomy”)
241
Web 2.0
• Webがプラットフォームとして振舞う
– WebをOSとみなし、その上でアプリケーション的な
サービスを展開する
• 集合知を利用する
– 小さな情報をたくさん集め、新しい価値を付け加えてみんなに提供する
• データは次世代の「インテル・インサイド」
– サービスの「核」となるデータを持つことで、支配的な立場を得る
242
Web 2.0
• ソフトウェア・リリースサイクルの終焉– ソフトのバージョンアップを繰り返して売る、というビジ
ネスはなくなる
• 軽量なプログラミングモデル– 迅速に開発できる環境、扱いやすいパーツで構成さ
れたプログラム
• 単一デバイスの枠を超えたソフトウェア– 携帯電話などPC以外の機器も意識して、Webの可能
性を広げる
• リッチなユーザー経験– PCでできることをWebだからとあきらめない
243
ロングテール
• 20:80の法則
– 20%の商品から80%の売り上げ
– 20%の社員から80%の成果 etc.• 実店舗では20%に注力
• アマゾン・ドット・コムでは230万品目中13万位以下の売り上げが57%
244
4. セキュリティと著作権保護
245
4.1 セキュリティ概論
246
セキュリティモデル
• 脅威
– 火災、地震
– 物理的侵入
– 攻撃
⇒脆弱性
– 物理的
– ソフトウェアの不具合
– 修正の未導入
– 不適切なアクセス許可
– 手続きの不備
⇒被害
– ハードウェア
– ソフトウェア
– データ
– サービス
– 社会的信用
– イメージ
247
攻撃の目的
• 邪魔(DoS)
• 盗聴
• なりすまし、権限の取得
• 改ざん
• しらばくれ
• 破壊
248
攻撃の手段
• 公開情報の分析
• 不正入手情報の活用
• セキュリティホール
• ソーシャルエンジニアリング
249
攻撃の形態
• 特定相手に直接
• 踏み台・DDoS• 自己増殖(ワーム・ウィルス)
250
防御手段
• 入口を狭めて関所を設ける– パケットフィルタ
– ファイアウォール
• セキュリティホールをふさぐ– 新のパッチを適用
– 新バージョンへの移行
• 侵入検知・ウィルス検出– 既知パターンとのマッチング
– 一貫性検査
– エキスパートシステム
251
ファイアウォールとDMZ
252
防御手段(続き)
• 暗号化
• 認証
– パスワード(ワンタイム・チャレンジレスポンス)
– ICカード
– バイオメトリクス
• デジタル署名
253
4.2 暗号技術
254
暗号のモデル
暗号化アルゴリズム
受動的侵入者(聞くのみ)
能動的侵入者(メッセージのすりかえを行う)
平文 P 平文復号
アルゴリズム
暗号化鍵 k 復号鍵 k’
暗号文 C=Ek(P)
侵入者
255
暗号解読のレベル
• 暗号文のみ
• 既知平文
– いくつかの暗号文と対応する平文が与えられている(例:PLEASE LOGIN)
• 結託攻撃
• 選択平文
– 暗号化すべき平文を解読者が指定できる
256
暗号方式の分類
• 共通鍵(対称鍵、秘密鍵)暗号
– 換字式暗号
– 転置式暗号
– プロダクト暗号
• 公開鍵(非対称鍵)暗号
257
換字式暗号
• 例:単一アルファベット換字– a→Q, b→W, c→E, d→R, e→T, f→Y, …– 26!通りの鍵があり得る
• 統計的性質を用いると容易に解読可能– 例:文字の出現頻度 e, t, o, a, n, i, …
th, in, er, re, an, …the, ing, and, ion, ...
258
転置式暗号
M E G A B U C K
7 4 5 1 2 8 3 6
p l e a s e t r 平文
pleasetransferonemilliondollarstomyswissbankaccountsixtwotwo
暗号文
AFLLSKSOSELAWAIATOOSSCTCLNMOMANTESILYNTWRNNTSOWDPAEDOBUOERIRCXB
a n s f e r o n
e m i l l i o n
d o l l a r s t
o m y s w i s s
b a n k a c c o
u n t s i x t w
o t w o a b c d
259
絶対に「解読」できない暗号
• バーナム暗号– ガイガーカウンタで採取するなどした真の乱数
を鍵として平文と排他的論理和をとる
– 鍵は使い捨てにする
– 送信する総データ量より長い鍵が必要
– 鍵を送受信者で安全に共有する必要
→実用にはならない
260
教訓
• 暗号のアルゴリズムには平文と暗号文の対応関係がわからない程度の複雑性を持たせ、個々の通信文の秘密は鍵を頻繁に変えることで維持
• 暗号のアルゴリズムは公開し、脆弱性がないか皆で検討
261
プロダクト暗号
S1
S2P1 P4P3P2
S3
S4
S5
S6
S7
S8
プロダクト暗号
(c)
Sボックス
デコ
ーダ
: 3 to
8
エン
コー
ダ: 8
to 3
(b)
Pボックス
(a)
S9
S10
S11
S12
262
標準暗号方式
• DES (Data Encryption Standard)– 64ビットブロック
– 56ビット鍵
– 16ステージ
• IDEA (International Data Encryption Algorithm)– 64ビットブロック
– 128ビット鍵
• AES (Advanced Encryption Standard)– 128ビットブロック
– 128ビットまたは256ビット鍵
263
電子符号ブックモードの問題点
氏名 地位 ボーナス
16 8 8バイト
D a v i s , B o b b i e J a n i t o r $ 5
C o l l i n s , K i m M a n a g e r $ 1 0 0 , 0 0 0
B l a c k , R o b i n B o s s $ 5 0 0 , 0 0 0
A d a m s , L e s l i e C l e r k $ 1 0
264
暗号ブロック連鎖方式
(a) (b)
+
E
初期化
ベクトル
鍵
鍵
C0
+
E
C1
+
E
C2
+
E
C3
D
P0
D
P1
D
P2
D
復号ボックス
暗号化ボックス
排他的論理和P3
C0 C1 C2 C3P0 P1 P2 P3
初期化
ベクトル
+ + + +
265
(a)
鍵
P10
C10
E
C2 C3 C4 C5 C6 C7 C8 C9
暗号化ボックス
最左バイトを選択
排他的論理和
(b)
鍵 E
64ビットシフトレジスタ
C2 C3 C4 C5 C6 C7 C8 C9
最左バイトを選択
暗号化ボックス
64ビットシフトレジスタ
C10
C10
C10 P10++
暗号フィードバックモード
266
公開鍵暗号
• Dk’(Ek(P))=P• EkからDk’を推測することはきわめて難しい
(選択平文攻撃によってもDk’は破られな
い)
– 例:大きな数の因数分解、離散対数、楕円曲線上の整数座標点
→Ekは公開してよい
267
RSA暗号
• 鍵の準備– 大きな2つの素数pとqを選ぶ(>10100)
– n=p×qとz=(p−1)×(q−1)を計算
– zと互いに素な数eを見つける
– (e×d) mod z=1を満たすdを見つける
• 暗号化:Ee,n(P)=Pe mod n• 復号:Dd,n(C)=Cd mod n
268
RSA暗号の計算例
• p=293, q=347 → n=101671, z=101032• 101032と互いに素な数 e=285• (285×d) mod 101032=1 より d=709
• P=54321 → C=P285 mod 101671=64858• 64858709 mod 101671=54321
269
共通鍵暗号と公開鍵暗号の比較
• 共通鍵暗号– 必要な鍵の総数:n(n-1)/2– 各ユーザは(n-1)個の鍵を安全に保持する必要あり
– 比較的高速
– 任意のビットパタンを鍵として使用可能
• 公開鍵暗号– 必要な鍵の総数:2n– 各ユーザは自分の秘密鍵を安全に保持すればよい
– 低速
– 鍵として使用可能なビットパタンに制約有り
→鍵のビット数が同じなら共通鍵暗号の方が強い
270
ハイブリッド型暗号
• ランダムなビット列を生成して公開鍵暗号で送り、それを共通鍵暗号の鍵として使用
共通鍵暗号化
共通鍵復号
公開鍵復号
公開鍵暗号化
平文P
ランダムビット列
KS
平文PKS(P)
EB(KS)
B夫の公開鍵EB
B夫の秘密鍵DB
A子
B夫
271
認証
• 毎回同じパスワードを用るのは危険
→チャレンジ・レスポンスプロトコル
A
RB
1
2
4
5
3 KAB(RB)
KAB(RA)
RA
A子
B夫
272
A子
B夫
プロトコルの短縮化
1
3
2 RB, KAB(RA)
KAB(RB)
A, RA
273
反射攻撃
1
5
2 RB, KAB(RT)
KAB(RB)
A, RT
3
4 RB2, KAB(RB)
A, RBT助
B夫
274
公開鍵を用いた認証
1EB(A, RA)
3KS(RB)
2EA(RA, RB, KS)A
子B夫
275
デジタル署名
• 受信者が送信者の身元を確認できる
• 送信者は、送ったメッセージの内容を否認できない
• 受信者がメッセージをでっち上げることはできない
276
公開鍵暗号によるデジタル署名
• Ek(Dk’(P))= Dk’(Ek(P))= P であるなら
通信回線A子のコンピュータ B夫のコンピュータ
A子の秘密鍵
DA
DA(P)P P
A子の公開鍵
EA
B夫の公開鍵
EB
A子の秘密鍵
DA
DA(P) DA(P)EB(DA(P))P P
B夫の秘密鍵
DB
A子の公開鍵
EA
277
メッセージダイジェスト
• PからMD(P)を計算するのは容易
• MD(P)からPを見つけるのは極めて困難
• MD(P)=MD(P’)となるP, P’の組を作成す
ることはできない
P, DA(MD(P))
EB(P, DA(MD(P)))
またはA子
B夫
278
公開鍵の安全な取得
• 公開鍵をホームページで公開したら…
4.メッセージをEBで暗号化
T助
1. B夫のホームページを要求
2. ホームページをETで偽装
3.メッセージをETで暗号化B夫A子
279
公開鍵証明書
デジタル署名アルゴリズムの識別子(証明書発行者の署名用)
証明書形式バージョン
証明書シリアル番号
発行者(認証機関)のx.509名前
有効期限(開始/終了日時)
主体者のx.509名前
主体者公開鍵情報
アルゴリズム識別子
公開鍵値
発行者のユニークな識別子
主体者のユニークな識別子
拡張
メッセージダイジェスト
電子署名生成
認証機関の電子署名
認証機関の秘密鍵
280
Certification Authorities
CA 3 CA 4 CA 5 CA 6 CA 7
CA 2CA 1
ルートCA
CA 7の公開鍵6384AF863B…を証明します。
CA 2の署名
ルートCAの署名
CA 1の公開鍵47383AE349…を証明します。
CA 7の公開鍵6384AF863B…を証明します。
CA 2の署名
ルートCAの署名
CA 1の公開鍵47383AE349…を証明します。
281
PGP, S/MIME
• PGP (Pretty Good Privacy)– 1991にPhil Zimmermannが開発
– フリーのPC向けパッケージソフト
– 「友達の友達は友達」信頼モデル
• S/MIME (Secure/MIME)– RSA Security社が開発→RFC2311~2315– 何らかの公開鍵証明書が必要
282
4.3 著作権保護
283
デジタルコンテンツと著作権
• デジタルコンテンツ:複製が容易かつ複製による劣化が生じない
• プログラムの不正コピー
• 海賊版CD• Napster, WinMX, Winny等のピアツーピア
ファイル交換ソフトウェア
284
電子透かし
• コンテンツのヘッダ等ではなくコンテンツ本体に情報を埋め込む
• コンテンツの品質をできるだけ劣化させず、コンテンツを編集・加工しても埋め込んだ情報が消えないことが望ましい
285
情報の埋め込み・検出方法
• 人の知覚特性を利用し、人が知覚困難な範囲でディジタルデータを改変
– オリジナルデータと比較することで検出な方式
– 鍵を知るものだけが検出可能な方式
– 誰でも検出可能な方式
286
電子透かしの用法
• 権利保有者の情報を埋め込む
– 不正使用を見つけた際に権利を主張
• 一次取得者の情報を埋め込む
– 不正使用を見つけた際に誰が「横流し」したのか確認できる
287
期末試験について
• 試験範囲:講義内容全体
• 1冊に綴じた講義資料・ノートを(1冊のみ)
持ち込み可。
top related