講義資料 (インターネットプロトコル)

通信とネットワーク
(Communication and Network)
第1回,第2回:インターネットプロトコル
概要
•
•
•
•
•
•
通信とネットワークの役割
ネットワークプロトコル
Ethernet (イーサネット)
インターネットプロトコル
アドレス解決プロトコル (ARP)
各種プロトコル:DHCP, TCP, NAT, DNS, HTTP, SMTP, FTP
1
1 はじめに
1.1 本講義の目的
なぜ国際開発工学を勉強するべきか
• 「情報処理概論」(1回目) では,工学の視点から
– 工学は変わらなくてはいけない
• 「線形システム論」(2回目) では,技術者の視点から
– 国際化 (交通・ネットワークの低価格化)
– コンピュータの発展
– 普通の技術者には興味ありません
• 「通信とネットワーク」(3回目) は,少し変わった?視点から
– 人間は何のために生きているかを科学的に考えてみよう
2
持続的に開発するため
• 自然を破壊するため。
• エントロピーをより速く増大させるため。
• すべてをより速く約 2.7K の輻射に変えるため?
3
限界
• 持続的な社会と言うけれど。
• 現在のような,1.2%の人口増加が続くと,
– 120 億光年:L = 120 × 108 × 356 × 24 × 3600 × 3 × 108 = 1.11 × 1026m
– 120 億光年の球の体積:V = (4π/3)L3 = 5.69 × 1078m3
– 現在の P = 7 × 109 (70 億) 人の人間が,宇宙全体で 1m3 に 1 人ずつに
なるまで増える年 n は,次の方程式を解けば良い。
V = P × 1.012n
– n = log(V /P )/ log(1.012) = 68.910/0.005181 =13,302 年となる。
– 光速を突破できない。
⇒1.3 万年では 120 億光年に広がることはできない。
– 宇宙にそんな物質もない。
• 増えすぎた人口は宇宙でも吸収できない。
4
• 人口をコントロールする必要がある。ただ,まともな手段では無理。
• 遺伝的進化の呪縛から脱しなくてはいけない。
誰もが文化的に生き,自由意志により子供を作るような環境
⇒ 人口をコントロールしようとする遺伝子より,人口を増やそうとす
る遺伝子の方が優位になる。
• 現在人口をコントロールしようとする遺伝子が残っている理由は,その
ような遺伝子が存在した方が,結局は人口が増やすことができたから。
• 時間が経つほど,人口を増やそうとする性質の遺伝子が増える。
• 結局は,生存できるかできないかぎりぎりのところまで,人口を押し
上げてしまう。
⇒ 遺伝子をコントロールする必要がある。
⇒ 人間を設計する必要がある。
• 何を基準にして最適化すれば良い?
• 人間は何のために生きている?
5
• エントロピー (乱雑さの尺度)
• エントロピー増大の法則
• しかし,乱雑にならずに構造を持ったものが現れる。
例:対流セル,渦,複雑な化学反応系,生物,人間
• プリゴジン:散逸過程
「系が熱的非平衡状態 (エントロピーが低い状態) にあった場合,散逸
過程 (構造を持ったもの) は,その存在によってより早くその非平衡状
態を解消することができるときに生じる。そして,複数の散逸過程が
考えられる時は,エントロピー生成速度が最も速いものが選ばれる。」
• 人間はエントロピーを最速に増大させるものであるので存在できる。
• 逆に言えば,同じ資源を使い,人間よりもエントロピーを速く増大さ
せる過程が存在すれば,人間は存在できなくなる。
• やはり,エントロピーをより速く増大させる開発こそ人の進むべき道
• だた,無配慮に開発すれば良いというものではない。
6
•
•
•
•
勾配法:最も勾配が急な方に登っていけば,高いところへ到達できる。
極大点 (その近傍で最高な点) に捕まってそれ以上大きくなれない。
人間の知恵はこの極大点を捕まらないためにある。
例:火
– 酸化反応によってエントロピーをかなり高速に増大できる。
– しかし,やがて燃えるものがなくなって消えてしまう。
– もし,火に知恵あったら,燃えやすいものは逆に取っておく。
⇒ 雨が降った時などのため
⇒ その方が長期的にはエントロピーを増大させることができる。
– ところが,火はバカだからどんどん燃やして消えてしまう。
• でも,人間もあまり変わらない?
– 化石燃料をどんどん消費して,地球温暖化などの問題を引き起こし
ている。(この問題を解決することは難しそう。)
– 自然エネルギーを推進しようという現実逃避も流行している。
7
• 自然を保護しなくていはいけない。
⇒ さらなる開発のため。
• 自然保護は手段であって,目的でなはない。
はき違えている方も多いので,念のため。
• 自然保護が目的ならば,人間などいなくなった方が良い。
• 人的資源や資金をもっと開発・科学技術の発展に使うべき。
– ゼロサムゲーム,無駄な競争,特許回避のための発明
• 目的が幸福というのも良く分からない。
– 明確な不幸な状況は減らすべきとは思う。
(不幸にはある程度普遍性がある)
– 普遍的なものではないし,幸福感が設計できるようになったら?
幸福感を設計する基準が幸福では,どんな不幸な状況でも幸福感を
得られるようにすれば良い。それでは麻薬と同じ。
⇒ 目的ではありえない。
• 目的は開発 ← 結論
8
• 国際開発工学の目的は,持続できる開発
⇒ 国際開発工学は自然のグローバルな破壊を目指す由緒正しい学問
• 「通信とネットワーク」は世界で仕事を行うための, 基本的知識
• ネットワークの建設・維持の仕事も国際開発のために非常に重要。
立派な道路があってもネットワークがなければ使えない場所になる。
• ネットワークのトラブル対策にも,基礎知識が必要。
基礎知識がないと機器のマニュアルが読めない。
• ネットワークをささっと設定できるとカッコいいかも知れない
(残念ながら現実はそんなに甘くはないが)。
• 皆さんが研究室に所属したとき,ネットワークの設定などの管理がで
きれば,私が呼ばれることがなくなり,私の仕事が減って嬉しい。
9
1.2
ネットワークの歴史
•
•
•
•
•
•
•
•
駅伝 (BC6–4, 古代ペルシャ)
のろし (BC3, 中国)
郵便 (中世,ヨーロッパ)
腕木 (1793–,ヨーロッパ)
電信 (1832, イギリス), Telex (1933–2000 年代)
電話 (1876–, グラハム・ベル)
無線通信 (1894–, マルコーニ)
パソコン通信・モデム (1980–)
ISDN (Integrated Service Digital Network)
• インターネット (1969–, 1990 年から普及)
すべての通信がインターネット化されようとしている。
– データ通信
– 電話,携帯電話
10
1.3
情報通信の目的
過去:
• 戦争:戦況を知る。軍を動かす。
• 統治:状況を把握する。指示の伝達する。
現在:
• 世界の人々とコミュニケーションをする。
• 情報を集める・発信する。
–
–
–
–
社会:電子メール,ウェブ,電子政府,社会情報
経済:電子メール,ウェブ,電子商取引,広告,経済情報
生活:電子メール,ウェブ,娯楽 (2ch, ニコ動),ブログ,生活情報
学術:電子メール,ウェブ,論文の電子発行,学術情報
11
1.4
講義予定
1. インターネットプロトコル (TCP/IP)
計算機ネットワークの役割,Ethernet, IP,ARP
2. インターネットプロトコル (TCP/IP)
TCP, DNS, DHCP, SMTP, FTP, HTTP
3. ネットワーク理論 I
4. ネットワーク理論 II
5. ネットワーク理論 III
6. ルーティング
7. 通信方式 I
8. 通信方式 II
9. 中間試験
10. 通信方式 III
11. 情報源符号化 I
12. 情報源符号化 II
13. 通信路符号化 I
14. 通信路符号化 II
15. 暗号
12
16. 期末試験
12/2
12/6
12/9
12/13
12/16
12/20
12/23
1/6
1/10
1/17
1/20
1/24
1/27
1/31
2/3
2/7?
2
ネットワークプロトコル
• プロトコル:規約,約束ごと
• 階層:
– ケーブルで接続され 1 or 0 を送ることができる。
– ケーブルで接続されたコンピュータで,パケットデータを送ること
ができる。
– 世界中に動画を配信する。
• ISO (International Standard Orgaizaiotn) の
OSI (Open System Interconection) の 7 階層モデル。
• アプリケーション層:データの意味内容
• プレゼンテーション層:表現形式 (圧縮,暗号)
• セッション層:アプリケーションに共通な機能,送信権制御
• トランスポート層:トランスペアレント (UDP, TCP)
• ネットワーク層 (レイヤー 3):パケット単位 (IP, Internet protocol)
• データリンク層 (レイヤー 2):point to point (Ethernet, Modem)
• 物理層:ビット単位の伝送 (電圧,コネクタ形状, RS-232C)
13
余談:
• OSI もインターネットのようなネットワークの規格。
• 昔,KDD が導入しようとがんばっていたが,インターネットに負けた。
• インターネット以外のネットワーク:
–
–
–
–
–
マイクロソフトネットワーク
NetBIOS
DECNet
トークンリング (IBM)
CAMAC (計測のネットワーク)
14
2.1
Ethernet
• 物理層とデータリンク層のプロトコル
• Xerox 社と DEC 社が LAN (Local Area Network) のために開発
• CSMA/CD (Carrier Sense Multiple Access with Collision Detect)
1 本のケーブルに多数のコンピュータを接続できる
(当時は結構革新的だったそうです)
• パケット伝送
• IEEE 802.3 で標準化
• 10Base-2 : 1 本の同軸ケーブルに多数のコンピュータを接続する。
• 10Base-5 : 同軸ケーブルとコネクタで接続
• 10Base-T : スター結線,コンピュータとハブ (スイッチ) を接続する。
• ハブ : すべてのケーブルに同じ信号を流す。
• スイッチ : 信号の宛先を見て,特定のケーブルに信号を流す。
(レイヤー 2 スイッチ,レイヤー 3 スイッチ)
15
•
•
•
•
10Base-2∼10Base-T の伝送速度は 10M bit/s
100Base-T (100 Mbit/s)
1000Base-T (1000 Mbit/s)
10GBase-T (10 Gbit/s)
16
2.2 Ethernet のパケット
2.2.1 MAC アドレス
• Media Access Control address
• 例:00:14:22:0A:1A:D4
• 上位 24 bit が組織のアドレス (OUI, Organizationally Unique Identifier,
IEEE に 1,650 ドル支払って割り当てを受ける)
• 下位 24 bit は,その組織が自由に付けることができる。
• 「ハードウエアアドレス」とも呼ばれる。
• 原則として,Ethernet の機器 1 つに 1 つの番号が割り当てられ,同じ
番号が重複することはない。
余談:
• MAC アドレスは機器固有のため,ソフトウエアのライセンス管理や,
ケーブルテレビの接続管理のために使われたりしていた。
• 通信のために,MAC アドレスを直接指定することは少ない。
17
2.2.2
Ethernet パケットの構造
• パケット:その通信路が扱うデータの単位
– 長いデータは分割して,複数のパケットとして通信する。
– データの他に,送信先,発信元,通し番号などの情報を付加する。
• Ethernet (RFC 894)
– RFC : Request For Comments :
インターネットの規格のための書式番号
• IEEE 802.2/802.3(RFC 1042) として標準化された。
しかし,Ethernet の規格しか対応しない機器も多い。
18
• パケットの構造
– あて先アドレス (6 byte,MAC アドレス)
– 発信元アドレス (6 byte,MAC アドレス)
– 形式 (2 byte) (0800 : IP データグラム,0806 : ARP,8035 RARA)
載せているデータの種類
– データ (40∼1500 byte)
– CRC (Cyclic Redundancy Check) (0∼4 byte)
余談:
回線交換 (従来の電話) ⇔ パケット交換
19
2.3
インターネットプロトコル (IP)
• ネットワーク層 (レイヤー 3) のプロトコル
• Advanced Research Project Agency (ARPA) による支援・指揮の下で研
究された。
• ARPANET (1969-) が,インターネットの原型である。
• 「ネットワークをつなぐ」という意味
• 目的:負荷共有,メッセージサービス,情報の共有,プログラム共有,
遠隔ログイン
• 「パケット交換」を採用。
• 日本の最初の ARPANET への接続は,1981 年の東北大学のハワイの ALOHAnet への参加である。
• 日本の network は,UUCP (Unix to Unix Copy Protcol, データ転送を行
うための UNIX のコマンド群,IP パケットを UUCP を使って送ること
ができる) による東大,慶応,東工大を接続した 1984 年から始まった
JUNET (Japan University NETwork) が有名。
20
• WWW(World Wide Web, 1989–) の実用化と共に,インターネットが
爆発的に広がった。
余談:
• タイム誌の「インターネットは核攻撃下でのコミュニケーションの生
き残りを想定して開発された」というのは本当ではない。
• マイクロソフトは,Windows 95 から
「インターネットはマイクロソフトです。」
と言うようになった。それ以前は・
・
・
・
21
22
2.4 インターネットプロトコル (IP) パケット
2.4.1 IP アドレス
•
•
•
•
IP アドレス:コンピュータやネットワークに付ける識別番号
32 bit (最大 4294967296 個)
ネットワーク ID とホスト ID からなる。
クラスが分けされた。(次ページ)
余談:
• インターネットでは,日本からアメリカに通信しても,アメリカから
日本に通信しても,接続料は日本側が支払う。少し前までは,日本か
らフィリピンに通信しても,フィリピンから日本に通信しても,両者
がアメリカに料金を支払っていた。
Tier 1 のプロバイダー (10 社)
• アドレスがだんだん不足してきている。
• 東工大はクラス B (65536 個のアドレス) を持っている。
23
24
• サブネットマスク
– クラスによる分類だけでは柔軟性がない。
– ネットワーク ID とホスト ID の区別は,サブネットマスクによって行
う。
– サブネットマスクも 32bit で,前半に 1 が並び,後半に 0 が並ぶ。
– 1 が並んでいる部分がネットワーク ID で,0 が並んでいる部分がホス
ト ID である。
– 例えば,IP アドレスが 131.112.80.201,サブネットマスク 255.255.255.192
のネットワークアドレスとホスト ID を考えてみよう。
• ネットワークアドレス
– ホスト ID が 0 の場合は,ネットワーク自体を示す。
• ブロードキャストアドレス
– ホスト ID のビットがすべて 1 の場合は,そのネットワークに対して
ブロードキャストすることを意味するアドレスになる。
– ブロードキャストアドレスに送ると,そのネットワーク全てのホス
トがそのパケットを受け取る。
25
• ネットワークアドレスとブロードキャストアドレスを,ホストにつけ
てはいけない。
• マルチキャストアドレス
– 目的別にアドレスが決まっていて,目的に合致した複数のホストが
受信する。
– 1 つのパケットで,その情報を必要とする複数のホストへ送ることが
できるので効率的である。
• IP パケットは,その到達が保証されない。
すなわち,送信側は受信されたかどうか直接的にはわからない。
26
IP パケットの構成
• バージョン (4 bit)
• ヘッダ長 (4 bit)
• サービスタイプ (TOS 8 bit)
• 全長 (バイト単位) (16 bit)
• 識別 (送り手側がパケットの識別のために使う) (16 bit)
• ビットフラグ (3 bit の中で 2bit を利用:
More Fragment bit,Don’t Fragment bit)
• フラグメントオフセット (このフラグメントされたデータの先頭が,も
とのデータ先頭からどの位置にあるか 8byte 単位で示す,13 bit)
• 生存時間 (異なるネットワークに転送される度に 1 ずつ減らす,現在の
推奨値は 64,TTL 8 bit)
• プロトコル (搭載するデータのプロトコルの番号
(TCP:6, UDP:17, ICMP:1 など),8 bit)
• IP ヘッダチェックサム (16 bit)
• 発信元 IP アドレス (32 bit)
27
• 宛先 IP アドレス (32 bit)
• オプション (ない場合もある)
• データ (長さは最大パケット長で制限を受ける)
TOS の構成
•
•
•
•
•
•
使われていない (3bit)
最小遅延 (1bit)
最大スループット (1bit)
最大信頼性 (1bit)
最小金銭コスト (1bit)
0 (1bit)
28
29
フラグメントフラグ
• Ethernet では,1500byte のデータしか格納できない。
MTU (Maximum Transmission Unit) が 1500byte
• IP パケットがそれより長い場合,分割する必要がある。
• 1 つの Ethernet パケットに,1 つの分割された IP パケットを格納する。
• 分割されたパケットにも,ヘッダーを付ける。
• 使われていない (1bit)
• フラグメント禁止ビット (1bit)
• モアフラグ (フラグメントされたデータ他にあることを示す,1bit)
30
2.5
ARP (Address Resolution Protocol)
• 同じ Ethernet 上にあるコンピュータに IP パケットによってデータを送
る。
– 送りたいデータを分割し,送り先の IP アドレスなどと共に IP パケッ
トを構成する。
– IP パケットを Ehternet パケットに格納する。
– 送り先の Mac アドレスはどうする?
Mac アドレスがないと,データを送ることができない。
Ethernet のブロードキャストアドレス:
• 直接接続されているすべての機器を表すアドレス。
• ブロードキャストアドレスに送られたパケットは,すべての機器が受
け取り,その内容に応じた処理を行う。
• MAC アドレスでは,FF:FF:FF:FF:FF:FF (すべてのビットが 1)
(IP アドレスのブロードキャストは,ホスト番号の部分のビットが 1)
31
• Ethernet の規格にある ARP (Address Resolution Protocol, アドレス解決
プロトコル) を使って,IP アドレスから MAC アドレスを調べる。
• ARP パケット形式は Ethernet の規格で決まっている。
• 送信先の IP アドレスを格納した ARP パケット (Ehternet のパケット) を,
ブロードキャストアドレス宛に送る。
• そのパケットを Ethernet 上の全ての機器が受けとる。
• そのパケットに格納されていた IP アドレスが自分の IP アドレスと等し
い場合,自分の Mac アドレスを格納した Ethernet のパケットを作成し,
送り返す。
• Mac アドレスを受け取ったら,(分割した)IP パケットのデータを格納し
た Ehternet パケットをその Mac アドレスに宛てに送る。
• IP アドレスと Mac アドレスの関係はキャッシュしておく (一時的に蓄え
ておく)。
32
余談:
• RARP (Reverse Address Resolution Protocol):自分の MAC ア
ドレスを送って,だれかに IP アドレスを教えてもらう。ディスクレス
システムなどに使う。
2.6
IPv6
• IPv4 (インターネットプロトコル バージョン 4)
– 現状のインターネットプロトコル (IPv4) では,32bit のアドレスしか
ないため,最大でも,40 億個程度のアドレスしかない。
• IPv6 (インターネットプロトコル バージョン 6)
• 128 bit (16 進数で 32 個,4 ずつコロンで区切って記述する)
– 例:FE80:CD00:0000:1234:00CD:0000:2342:DC2F
– 4 つの区切りで,先頭の 0 は省略できる。
FE80:CD00:0:1234:CD:0:2342:DC2F
33
– 0 が続くときの表記法がある。ループバック
0000:0000:0000:0000:0000:0000:0000:0001 は,::1/128 と記される。
• ユニキャスト:その番号をもつ唯一のインターフェースに対応する。
• エニーキャスト:その番号をもつ近くのインターフェースに対応する。
• マルチキャスト:その番号をもつ複数のインターフェースに対応する。
• ユニキャストアドレスは,前半 64bit がサブネットプリフィックス,後
半 64bit がインターフェース識別子からなる。
• サブネットプリフィックスは,48bit のグローバルルーティングプリフ
ィックス,16bit のサブネット識別子で構成されている。
• これらの長さは可変になる。
• Windows はコロンをドライブ (C:など) を示すために使うので,-を使う
ことがある。
• 3G/4G 携帯は IPv6 の番号が付いている。
• アジア太平洋地域では,IPv4 のアドレスが枯渇して新規配布はできな
い。
• 環境問題と同じで,IPv6 になかなか移行しない。
34
3
TCP と UDP
• TCP : Transmission Control Protocol の略
• UDP : User Datagram Protocol の略
• トランスポート層のプロトコル
35
3.1
TCP
• IP パケットのデータ領域に,TCP ヘッダとデータを格納する。
• コネクション指向:
– 大きなデータは,自動的に分割される。
アプリケーションはパケット長を意識しないで良い。
– 受信側では,データが届くと「確認応答」を送り手側に通知する。
– 一定時間以内に届いたとの通知がない場合は,送り手はパケットを
再送する (再度パケットを送り出す)。
– 受信側は,チェックサムによりデータをチェックし,正しくない場合
は,確認応答を送信しない。
– パケットの順番が伝送中に変化することがある。受信側はデータを
それを元の通りに並び替え,アプリケーションに渡す。
– 同じデータパケットが届いた場合は,1 つ以外を破棄する。
– ポート番号で相手のアプリケーションを指定できる。
– データをバッファする。
36
3.1.1
•
•
•
•
•
•
•
TCP ヘッダ
発信元ポート番号 (16 bit)
あて先ポート番号 (16 bit)
シーケンス番号 (32 bit):全体の中で,何バイトまで送信したか示す。
確認応答番号 (32 bit) : 全体の中で,何バイトまで受信したか示す。
ヘッダ長 (4 bit)
予約済み (6 bit)
フラグ (URG, ACK, PSH, RST, SYN, FIN, 各 1 bit)
–
–
–
–
–
–
URG : 緊急であること示す。
ACK : 確認応答番号が有効であることを示す。
PSH : すぐにアプリケーションに引き渡すこと示す。
RST : TCP 接続の中断または拒否した場合を示す。
SYN : TCP 接続を要求することを示す。
FIN : TCP 接続を終了することを示す。
37
•
•
•
•
ウィンドウサイズ (16 bit):受信側のバッファサイズ
TCP チェックサム (16 bit)
緊急ポインタ (16 bit)
オブジョン (16 bit)
• 送信・受信側の IP アドレスなどを書き込んだ,擬似ヘッダを加えるこ
とができる。
• その理由は,TCP のレベルでも本当に正しいホストに到着したどうか
を確かめ,信頼性を向上させるため。
38
39
3.2
UDP
• IP パケットのデータ領域に,UDP ヘッダとデータを格納する。
• データグラム (パケットのようなもの) 指向:
– ポート番号でアプリケーションを相手の指定できる。
– チェックサムでエラーを検出し,エラーがある場合パケットを破棄
する。
– データが届いたかどうかは,UDP では関知しない。
– データを自動的に分割しない。
3.2.1
•
•
•
•
UDP ヘッダ
発信元ポート番号 (16 bit)
あて先ポート番号 (16 bit)
UDP データ長 (16 bit)
UDP チェックサム (16 bit)
40
3.3
ポート番号
• コンピュータに IP パケットが届いても,そのデータをどのプログラム
が使うか分からない。
• あて先ポート番号によって受け取るべきプログラムを指定する。
• 受け取ったプログラムがデータを返すとき,受け取った TCP or UDP
パケットの発信元ポート番号をあて先ポート番号として送り返す。
• 例:
–
–
–
–
–
–
–
–
–
15/tcp : netstat : NETwork STATstics
20/tcp : ftp-data : data of File Transfer Protocol
21/tcp : ftp : control of File Transfer Protocol
22/tcp : telnet : TELE-NETwork login
25/tcp : smtp : Simple Mail Transform Protocol
53/tcp,udp : DNS : Domain Name Server
80/tcp,upd : http : Hyper Text Transfer Protocol
995/tcp,udp : pop3 : Post Office Protocol V.3
443/tcp,udp : https : Hypertext Transfer Protocol over SSL
41
– 995/tcp,udp : pop3s : pop3 over SSL
4
gateway (router)
• インターネットは,ネットワークの集合体
• 1 つのネットワーク:
– 同じネットワークアドレス (サブネットマスクで 1 が立っている bit の
部分の値) をもつホストからなる。
– ブロードキャストアドレスを使ってすべてのホストに連絡できる。
• gateway,router
– 2 つの IP アドレスを持つ。
– LAN に接続されされた方は,LAN 側の IP アドレスで通信する。
– WAN (Wide area network) に接続された方は,WAN 側の IP アドレス
で通信する。注意:LAN と WAN という名前は相対的
– ネットワーク間でデータの受け渡しをする。
42
– LAN 側の IP アドレスを 1 つだけ持っている一般のホストが,外部の
ネットワークと通信する時には,まず,gateway (router) にパケット
を送る。
– gateway は,そのパケットを,目的のホストに近い gateway に渡す。
– その経路を決める操作を,routing と呼ぶ。
– gateway は,来たパケットをどこに送るか決めなくてはいいけない。
– routing table に従って,パケットを転送する。
– default gateway (default router) :転送先がすぐにわからないときに送
る gateway (router)
– 通常のホストは,default gateway のアドレスを指定するだけ。
– 基幹となるような gateway は,routing table を 動的に書き換える。
(東工大の外部接続の gateway は 10 万個以上のネットワークアドレス
のルーティング情報を持っている。)
– ネットワークに gateway は 1 つとは限らない。
43
traceroute または tracepath (Windows では,tracert) コマンド:
どの gateway を通ったか調べるためのコマンド (gateway 側が教えてくれ
る場合)。
yamasita@white:~$ traceroute www.stanford.edu
1: black.ide.titech.ac.jp
1: sekisho.ide.titech.ac.jp
1: sekisho.ide.titech.ac.jp
2: 131.112.80.66
3: 131.112.254.246
4: 131.112.254.254
5: 131.112.255.106
6: 131.112.255.118
7: 131.112.254.233
8: 150.99.186.229
9: tokyo-dc-gm2-ae0-vlan10.s4.sinet.ad.jp
10: lax-dc-gm1-xe1-1-0-vlan10.s4.sinet.ad.jp
11: cenichpr-1-lo-jmb-702.lsanca.pacificwave.net
12: svl-hpr2--lax-hpr2-10g.cenic.net
13: hpr-stanford--svl-hpr2-10ge.cenic.net
14: boundarya-rtr.Stanford.EDU
15: no reply
16: no reply
17: www-v6.Stanford.EDU
Resume: pmtu 1500 hops 17 back 239
0.097ms pmtu 1500
0.612ms
0.585ms
2.256ms
2.325ms
2.942ms
1.515ms
1.358ms
1.051ms asymm 8
1.515ms
1.624ms
102.183ms
102.717ms
110.399ms
111.048ms
111.231ms
111.552ms reached
44
4.1
NAT
Network Address Translation
4.1.1
目的
• IP アドレスの枯渇
– アドレスは最大でも 232 個しかない。
– しかも,実際にはネットワーク単位であるため有効に利用しにくい。
(東工大は 65536 個のアドレスを持っている。コンピュータの数はそ
んなに多くない。)
• セキュリティ:外から直接アクセスでできないようにしたい。
4.1.2
NAT の処理の概要
• グローバル IP アドレス:世界中で唯一つの IP アドレス
• プライベート IP アドレス:
LAN (local area network) の中だけで通じる IP アドレス
別の LAN の中で同じ IP アドレスが使われていても良い。
45
• LAN に含まれるコンピュータ間の通信は,プライベート IP アドレスを
使って行う。
• LAN の中のホストが外部のホストへ通信したい時は?
– gateway が単純にパケットを転送するのではなく,送信元の IP アド
レスを,gateway のグローバル IP アドレスに書き換える。
– 書き換える前のパケットの LAN 側 (発信元) アドレスと WAN 側 (あて
先) アドレスを記憶しておく。
– WAN 側に送ったパケットに対する,WAN 側ホストからの返信のパ
ケットのあて先アドレスは,すべて gateway のグローバルアドレスに
なる。
– gateway は,そのパケットの発信元 IP アドレスと,それが以前に転送
した LAN 内のホストからのパケットのあて先アドレスを比較する。
– アドレスに一致したものがある場合,WAN 側からのパケットのあて
先アドレスを,一致したパケットの LAN のホストのローカルアドレ
スに書き換えて,LAN のホストに転送する。
46
– 一致しない場合は,破棄する,あるいは,LAN 内の決まったホスト
に転送する。
• 利点:1 つのグローバルアドレスで,多数のホストがインターネット上
のホストとデータをやりとりできる。
• 利点・欠点:LAN 内のホストから外部のホストに通信することはでき
るが,外部から内に直接通信することができない (決められた 1 台は可
能である)。
• 欠点:LAN 内の 2 つ以上のホストが,同じ外部のホストと通信した場
合に,gateway はそのパケットを LAN 内のどのホストに転送すればよ
いか分からない。
47
48
49
50
4.2
NAPT
Network Address Port Translation
• IP Masquerade とも呼ばれる。この名前は, Linux での実装名。
• NAT における,LAN 内の異なるホストが,外部の同じアドレスのホス
トへ通信できないという問題を解決すする。
• UDP, TCP のポート番号を使う。
• 一般に,UDP, TCP でパケットに対して返信するとき,そのパケット
のあて先ポート番号は,初めに送られてきたパケットの発信元ポート
番号を使う。
• 処理の概要
– 異なる LAN 内のホストから,同じ WAN 側のホストへ通信する時に,
発信元のポート番号を異なるように書き換える。
– もとのパケットの LAN 側 (発信元) アドレスとポート番号,WAN 側 (あ
て先) アドレスとポート番号を記憶しておく。
– WAN からの返信のパケットの発信元アドレス,あて先ポート番号と,
以前に転送した LAN 内のホストからパケットのあて先アドレス,書
51
き換えた発信元ポート番号を比較する。
– それらが一致するものがある場合,WAN 側からのパケットのあて先
アドレスとあて先ポート番号を,一致したパケットの LAN のホスト
のローカルアドレスと書き換える前の発信元ポート番号に書き換え
て,LAN のホストに転送する。
– 一致しない場合は,LAN 内の決まったホストに転送等を行う。
余談:
• 最近ならば,一家に一台は存在している「ブロードバンドルータ」は,
NAPT を行っている。
52
53
54
5
DHCP
• Dynamic Host Configuration Protocol の略
• ネットワークの設定は面倒
–
–
–
–
–
IP アドレス
サブネットマスク
ディフォルトルータ
DNS サーバ (DNS サフィックス)
NIS サーバ,プリンタサーバ,NTP サーバ,WINS サーバなど
• DHCP は自動的に設定を行うためのプロトコル。
– DHCP サーバ : 設定情報を送るホスト。
– DHCP クライアント :
設定情報を受け取るホスト。(初めは,IP アドレスなどは設定され
ていない)
55
• 手順
1. クライアントが DHCP サーバを探すために,ブロードキャスト
(255.255.255.255) 宛に UDP パケットを送る (DISCOVER)。
2. そのネットワークの全てのホストが受け取る。
3. DHCP サーバは自分の IP アドレスを含んだパケットを,クライアン
トの MAC アドレスに送る (OFFER)。(DHCP サーバー以外のホスト
は,そのパケットを破棄する。)
4. DHCP クライアントは,DHCP サーバの IP アドレスを含んだパケッ
トをブロードキャスト宛に送る (REQUEST)。
5. 指定されたサーバは,DHCP サーバが自分か管理している IP アドレ
スの中から空いているアドレスを探し,その他の情報と共にクライ
アントの MAC アドレスに送る (PACK)。だめな場合は,PNAK パ
ケットを送る。
6. PACK パケットの情報を使って,クライアントが自分のネットワーク
を設定する。
7. クライアントは通常の IP プロトコルで,通信を開始する。
56
6
DNS
•
•
•
•
•
•
Domain Name Service (System) の略
IP アドレスは覚えにくい。名前で呼びたい。
例:www.ide.titech.ac.jp, www.google.co.jp
通信するためには,IP アドレスが必要。
ドメイン名:インターネット上のホストのグループの名前。
名前から IP アドレスに変換できるようなシステムが必要。
「解決 (resolve) する」と呼ぶ。
• 管理容易なように,階層化され,木構造で管理されている。(IP アドレ
スは,ネットワークの柔軟性のために階層化していない。)
• www.ide.titech.ac.jp は,www, ide, titech, ac, jp という 5 階層からできて
いる。
– www.ide.titech.ac.jp というホストは,ide.titech.ac.jp ドメインに属す
る。
– ide.titech.ac.jp ドメインは,titech.ac.jp ドメインに属する。
– titech.ac.jp ドメインは,ac.jp ドメインに属する。
57
– ac.jp ドメインは,jp ドメインに属する。
– jp ドメインは,ルートノードに属する。
• ルートノード : ’.’
• TLD (Top Level Dmain) : com, org, jp など
6.1
ドメインネームサーバ (DNS)
• ドメインに関する情報を提供するサーバー
• ある階層に対するドメインネームサーバ (DNS) は次の情報を保持して
いる。
– 自分のドメイン (以下) に属するホスト名とその IP アドレス
– 自分のドメイン (以下) に属するドメイン名とそドメインネームサー
バの IP アドレス
• ドメインネームサーバは,自分の階層以下のホスト名に関する問い合
わせが来たとき,
– 自分がその情報を持っている場合は,その情報を返信する。
58
– 持っていない場合は,下層のドメインネームサーバに問い合わせて,
その返答を返信する。
• 自分が管理していないドメインに関する問い合わせが来たとき
ルートノードの DNS に問い合わせる (13 台の IP アドレスが指定されて
いる)。
6.2
逆引き
• IP アドレスから,ホスト名を検索できるようにする。
• IPv4 の場合,in-addr.arpa というドメイン名を用いる。
• 例えば,131.112.80.21 には,21.80.112.131.in-addr.arpa というドメイン名
を用いる。
• ドメインネームサーバには,逆引き専用のレコードを使う (PTR レコー
ド)。ホスト名検索のためのレコード (A レコード) を使うわけではない。
59
7
HTTP
• Hypertext Transfer Protocol の略
• Hypertext : 文書中に,他の文書へのリンク (ハイパーリンク) を埋めこ
み,複数の文書を相互に連結できる文書
• WWW で用いられ,HTML (Hyper Text Markup Langage) で書かれた文
書を送るなどのために用いられる。
• データの受け渡し形式
– ヘッダ部
– 空行
– データ部
60
• ブラウザからサーバーへのヘッダの例
(http://www.ide.titech.ac.jp/)
ET /ja/ HTTP/1.1
Host: www.ide.titech.ac.jp
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:24.0) Gecko/2010010
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ja,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: wp-settings-2=editor%3Dhtml%26urlbutton%3Dfile%26libraryContent%3D
Connection: keep-alive
61
• サーバーからブラウザへのヘッダの例
HTTP/1.1 200 OK
Date: Tue, 22 Oct 2013 07:00:14 GMT
Server: Apache
X-Powered-By: PHP/5.3.3
X-Pingback: http://www.ide.titech.ac.jp/ja/xmlrpc.php
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
62
• ブラウザからサーバーへのデータの例 (一部)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-tra
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<title>東京工業大学</title>
<meta name="description" content="東京工業大学大学案内、入学案内、学部・大学院等の紹介、研究活動、図書
館・研究所、産学連携・国際交流など、東京工業大学に関する情報をご覧頂けます。" />
<meta name="keywords" content="東京工業大学, 東工大, とうこうだい,Tokyo Institute of Technology,TOKYO TECH,
理工系, 東京, 大学, 国立大学, 教育, 研究" />
<meta name="verify-v1" content="2e/g2jAwGrA7LItr726JNTI2TORHz0dw75JZ14wOSYA=" />
<meta property="og:image" content="http://www.hyoka.koho.titech.ac.jp/main/3rd_academic_group.jpg" />
<link rel="stylesheet" type="text/css" href="/reb2012/common/css/cmn_layout.css" media="all" />
<link rel="stylesheet" type="text/css" href="/reb2012/common/css/cmn_style.css" media="all" />
<link rel="shortcut icon" type="image/x-icon" href="/img/favicon.ico" />
<script type="text/javascript" src="/reb2012/common/js/jquery.js"></script>
<script type="text/javascript" src="/reb2012/common/js/common.js"></script>
<script type="text/javascript" src="/reb2012/common/js/liquidImg.js"></script>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push([’_setAccount’, ’UA-7676767-1’]);
_gaq.push([’_setDomainName’, ’titech.ac.jp’]);
63
_gaq.push([’_setAllowLinker’, true]);
_gaq.push([’_trackPageview’]);
(function() {
var ga = document.createElement(’script’); ga.type = ’text/javascript’; ga.async = true;
ga.src = (’https:’ == document.location.protocol ? ’https://ssl’ : ’http://www’) + ’.google-analytic
var s = document.getElementsByTagName(’script’)[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body>
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/ja_JP/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, ’script’, ’facebook-jssdk’));</script>
<div id="wrapper">
<div id="headerTop" class="clearfix">
<h1 id="hd_logo"><a href="/"><img src="/reb2012/common/img/logo01.gif" width="230" height="75" alt="東
京工業大学" /></a></h1>
<div id="hd_lang" class="clearfix">
<ul class="clearfix">
<li><a href="/"><img src="/reb2012/common/img/btn_lang01_on.gif" width="40" height="23" alt="日本
64
語" /></a></li>
<li><a href="/english/"><img src="/reb2012/common/img/btn_lang02_no.gif" width="40" height="23" alt="E
</ul>
<!-- /hd_lang --></div>
<div id="hd_search">
<p class="tit"><img src="/reb2012/common/img/tit_serch01.gif" alt="サイト内検索" width="69" height="20" /
<form action="http://www.titech.ac.jp/search.html" id="cse-search-box">
<input type="hidden" name="cx" value="016737275621795016578:dqlkmknbecu" />
<input type="hidden" name="cof" value="FORID:10" />
<input type="hidden" name="ie" value="UTF-8" />
<p class="txt"><input type="text" name="q" value="" maxlength="300" /></p>
<p class="icon"><input type="image" name="sa" src="/reb2012/common/img/icon_serch01.gif" alt="検索" /><
</form>
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse-search-box&amp;lang=ja
<!-- /hd_search --></div>
<!-- /headerTop --></div>
<div id="contentsTop">
<div id="leftArea" class="png">
<div id="gNaviTop">
<ul>
<li id="gNavTop01"><a href="/main.html">メインページへ</a></li>
<li id="gNavTop02"><a href="/prospect/">高校生・受験生の方へ</a></li>
<li id="gNavTop03"><a href="/enrolled/">在学生の方へ</a></li>
<li id="gNavTop04"><a href="/alumni/">卒業生の方へ</a></li>
<li id="gNavTop05"><a href="/company/">企業・研究者の方へ</a></li>
<li id="gNavTop06"><a href="/public/">一般・社会人の方へ</a></li>
65
</ul>
<!-- /gNavi --></div>
<ul class="topBanner">
<li><a href="/admission/colleger/request.html"><img src="/reb2012/img/ban_top01_no.jpg" width="200" he
資料請求 大学紹介やカリキュラムの詳しい内容を知りたい方はこちらから資料をご請求ください。" class="over" /></a></li>
<!-- /topBanner --></ul>
<!-- /leftArea --></div>
<div id="rightArea">
<p><a href="/admission/introduction/category3.html"><img src="http://www.hyoka.koho.titech.ac.jp/main/3r
東工大で学ぶ 自分に最適な道へ進むため、まずは類を選んでスタートします。 第 3 類 人の役に立つ化学技術を学びた
い!" width="1600" height="912" /></a></p>
<!-- /rightArea --></div>
<!-- /contentsTop --></div>
<div id="footerTop" class="clearfix">
<ul id="ft_social" class="clearfix">
<li class="tweet"><a href="https://twitter.com/share" class="twitter-share-button" data-url="http://www.
<li class="fb"><div class="fb-like" data-href="http://www.titech.ac.jp/" data-send="false" data-layout="
</ul>
<p id="ft_copyright">Copyright &copy; 2012Tokyo Institute of Technology. All rights reserved.</p>
<!-- /footerTop --></div>
<!-- /wrapper --></div>
</body>
</html>
66
8
SMTP
• Simple Mail Transfer Protocol の略
• MTA (Mail Transfer Agent):メールサーバ
– SMTP を使って,MTA 間でメールを配送する。
– 複数の MTA を仲介してメールを転送することができる。
(最近はあまりその必要はないけれど。)
• MUA (Mail User Agent):メールクライアント ( Outlook, Thunderbird)
– MUA が MTA にメールを配信を依頼するときは,SMTP を使って通信
する。
– MUA が MTA に届いたメールを取得すときは,POP あるいは IMAP
を使って取得する。
– メールアドレスは,ユーザ名@ドメイン名で,ドメイン名は,POP で
メールを取得する MTA に付けられたもの。
– MTA のドメイン名は,ドメインネームサーバーから得られる (MX レ
コード)。
• SMTP の通信はテキストベース,例 (Linux):
67
telnet mx1.mail.yahoo.co.jp 25
Trying 124.83.171.244...
Connected to mx1.mail.yahoo.co.jp.
Escape character is ’^]’.
220 mta303.mail.ogk.yahoo.co.jp ESMTP YSmtp service ready
HELO goat.ide.titech.ac.jp
250 mta303.mail.ogk.yahoo.co.jp
MAIL FROM: <[email protected]>
250 sender <[email protected]> ok
RCPT TO: <[email protected]>
250 recipient <[email protected]> ok
DATA
354 go ahead
To: [email protected]
Subject: testtest
From: [email protected]
kougino test
.
250 ok dirdel
QUIT
221 mta303.mail.ogk.yahoo.co.jp
Connection closed by foreign host.
68
9
FTP
• File Transfer Protocol の略
• レンタルサーバにデータをアップするときになどに使っている学生も
いるのでは?
9.1
FTP に関して
• anonymous FTP (匿名 FTP)
• ファイルタイプ (クライアントから指定する)
– ASCII (英文)
– Binary (データ)
• SFTP (secure FTP)
– データを暗号化して通信する。
69
9.2
アクティブ FTP
• 昔ながらの FTP
• 手順の概要
1. あて先ポート番号 21 番で,クライアント側が,login,データに関す
るクライアント側ポート番号,転送するファイル名の指定を行う。
2. データに関するサーバー側ポートは 20 番に固定されている。
3. クライアント側ポートは,先にクライアント側で指定している。
4. データ転送時にサーバー側からクライアントに向けて,転送要求
(SYN) を出す。
5. データ転送を行う。
6. 通信の終了
• もともとは,同じデータを持った複数のサーバから,効率的にデータ
を転送するための仕組みだった。
• 最近のクライアントは,外部から直接は接続できないものも多い (NAT,
firewall) ので,この方式は使えない。
70
9.3
パッシブ FTP
• 手順の概要
1. 宛先ポート番号 21 番で,login を行う。
2. 21 番ポートで,サーバーからデータを取得するホストの IP アドレス
と,そのサーバのポート番号が送付される。
3. クライアントが,指定された IP アドレスとポート番号に向けて,要
求を出す。
4. データの転送を行うサーバに対してやデータ転送するファイル名の
指定を行う。
5. データ転送を行う。
6. 通信の終了
• データ転送時もクライアント側から通信を開始するので,NAT や firewall を越えることができる。
71
10
ネットワークの設定
• 研究室に配属されたら,コンピュータをネットワークに接続する。
• 電話は業者が設定することが普通であるが,コンピュータやルータに
関しては自分達で設定する。
• 接続ができない ⇒ 先輩に聞く ⇒ 先生に聞く ⇒ · · ·
• コンピュータやルータの設定はできるようになってほしい。
10.1
Windows パソコン のネットワークの設定
• IP アドレス
– ネットワークアドレス
– ホストアドレス
• サブネットマスク
• ディフォルトゲートウェイ
• DNS (Domain Name Server)
72
73
74
75
76
77
78
79
10.2
今日の最後に
• telnet を Windows 7 で使いたい場合,
「コントロールパネル」→ 「プロ
グラム」 → 「プログラムと機能」の下の「Windows の機能の有効化ま
たは無効化」をクリックして,
「Telnet クライアント」をチェックして,
OK をクリックする。
• しっかりと,復習しておこう。
80