ルーティングチュートリアルチュートリアル tcp/ip編

29
ルーティング チュートリアル チュートリアル 2014/09/29 wakamonog meeting 6

Upload: yuya-rin

Post on 14-Jun-2015

535 views

Category:

Internet


7 download

DESCRIPTION

2014年9月29日にwakamonog meeting 6で行った「ルーティングチュートリアルチュートリアルのセッション」のうち私が担当したTCP/IP編のスライドです。

TRANSCRIPT

Page 1: ルーティングチュートリアルチュートリアル TCP/IP編

ルーティング チュートリアル チュートリアル

2014/09/29 wakamonog meeting 6

Page 2: ルーティングチュートリアルチュートリアル TCP/IP編

/ 29

構成✦ インターネットとTCP/IP:ゆやりん

✦ インターネットの構造:たいじ

✦ ルーティングプロトコル:なおくん

✦ ネットワーク構築例

‣ コンテンツプロバイダ:かっきぃ ‣ ISP:まつもと

2

Page 3: ルーティングチュートリアルチュートリアル TCP/IP編

/ 29

自己紹介✦ 川上 雄也 (@yuyarin)

‣ インターネットマルチフィード株式会社 ‣ 国内最大のInternet Exchange「JPNAP」の運用 - Ethernet網の設計・構築・運用からツールやシステムの  開発からコミュニティ活動まで幅広くやってます

‣ もともとドワンゴでプログラマとかやってましたが,   インターネットの楽しさに惚れ込みました

3

Page 4: ルーティングチュートリアルチュートリアル TCP/IP編

インターネットってなんですか?

Page 5: ルーティングチュートリアルチュートリアル TCP/IP編

TCP/IPのはなし

Webサイトを見るとき

Page 6: ルーティングチュートリアルチュートリアル TCP/IP編

/ 29

Webサイトを見るとき

6

Page 7: ルーティングチュートリアルチュートリアル TCP/IP編

/ 29

Webサイトを見るとき

インターネット

wakamonog.jp

Webブラウザ

Webサーバ

OS

203.0.113.4

192.168.0.2

IPv4アドレス

7

Page 8: ルーティングチュートリアルチュートリアル TCP/IP編

/ 29

Webサイトを見るとき✦ Webブラウザというアプリケーションがインターネットの先にあるWebサーバと通信する

‣ ブラウザはOSの機能(API)を使うことで,実際はOSが通信を行なっている

✦ 通信にはIPアドレスを使う

‣ そのために”wakamonog.jp”という「名前」から”203.0.113.4”というアドレスへの変換が必要

8

Page 9: ルーティングチュートリアルチュートリアル TCP/IP編

/ 29

名前からアドレスへの変換

インターネット

wakamonog.jp

203.0.113.4

192.168.0.29

Page 10: ルーティングチュートリアルチュートリアル TCP/IP編

/ 29

DNS: 名前からIPアドレスへ

インターネット

wakamonog.jp

203.0.113.4

192.168.0.210

キャッシュサーバ

.jp 権威サーバ

Page 11: ルーティングチュートリアルチュートリアル TCP/IP編

/ 29

Web(HTTP/HTML)

インターネット

wakamonog.jp

203.0.113.4

192.168.0.211

HTTPでHTMLをやりとりする

Page 12: ルーティングチュートリアルチュートリアル TCP/IP編

/ 29

通信するためには?✦ 宛先まで到達できること

12

IP (Internet Protocol)

Page 13: ルーティングチュートリアルチュートリアル TCP/IP編

/ 29

IP通信

インターネット

wakamonog.jp

203.0.113.4

198.51.100.113

Page 14: ルーティングチュートリアルチュートリアル TCP/IP編

/ 29

ルータがIPパケットを転送wakamonog.jp

インターネット

14

203.0.113.4

198.51.100.1

ルーティングテーブルに基づいて その都度適切なルータに転送される

=フォワーディング

適切な経路を決定する=ルーティング

Page 15: ルーティングチュートリアルチュートリアル TCP/IP編

/ 20

IPルーティングwakamonog.jp

203.0.113.4

198.51.100.1

インターネット

203.0.113.0/24はこっちだよ

真ん中の経路が一番近い!

経路広告

ルーティング

15

Page 16: ルーティングチュートリアルチュートリアル TCP/IP編

/ 20

IPルーティングwakamonog.jp

203.0.113.4

198.51.100.1

インターネット

上の経路が一番近い!

198.51.100.0/24はこっちだよ

非対称経路

16

Page 17: ルーティングチュートリアルチュートリアル TCP/IP編

/ 29

経路交換✦ 「ルーティングプロトコル」を使って経路情報を広告する ‣ 経路情報=(宛先, 次のルータ, 属性)

✦ 経路情報に基づいて、宛先に届けるための次のルータ(Next-Hop)を決定する(ルーティング)

✦ お互いに経路を広告し合う=経路交換

✦ 経路が広告されると、トラフィックが吸い込まれる

17

�������

���

Page 18: ルーティングチュートリアルチュートリアル TCP/IP編

/ 29

IPの大事なこと✦ IPのパケットは消えてしまうのは当たり前

‣ ルータの処理能力を超えたものは捨てられる ‣ 転送中にデータが壊れてたときも捨てられる

✦ 往路復路で非対称の経路になることが普通

✦ 宛先に対して評価値が同じ経路が複数ある場合はどっちにいくのかわからない(ECMP)

✦ パケットの到着順序は保証されない

18

Page 19: ルーティングチュートリアルチュートリアル TCP/IP編

/ 29

通信するためには?✦ 宛先まで到達できること

19

IP (Internet Protocol)

TCP (Transmission Control Protocol)

✦ 正しい順番で完全なデータが送られること

✦ 通信しているプログラムを区別できること

Page 20: ルーティングチュートリアルチュートリアル TCP/IP編

/ 29

TCPがやっていること✦ プログラムの区別(ポート番号)

✦ コネクションの確立

✦ 再送制御 ‣ 落とされたパケットを再送してもらう ‣ データの順序を保証する

✦ フロー制御 ‣ 通信相手や自分の忙しさ具合で流量を調整する

✦ 輻輳制御 ‣ 通信路の混み具合に応じて流量を調整する(公平性)

20

Page 21: ルーティングチュートリアルチュートリアル TCP/IP編

/ 29

3-way handshake✦ TCPのコネクションを確立する

SYN

SYN+ACK

ACK

開始まで1.5往復必要21

Page 22: ルーティングチュートリアルチュートリアル TCP/IP編

/ 29

TCPのデータの転送✦ 確実にデータを転送するために

DATA

ACK毎回ACKする

DATA

ACKまとめて送る

22

Page 23: ルーティングチュートリアルチュートリアル TCP/IP編

/ 29

TCPのデータの再送✦ ACKが無いともう一回送ってみる

DATA 1ACKがない

DATA 1

ACKもう一回送る

23

Page 24: ルーティングチュートリアルチュートリアル TCP/IP編

/ 29

TCPの輻輳制御✦ 輻輳=処理可能な容量を超えること

✦ パケットロスや遅延などから判断する

✦ OSによってアルゴリズムは違う ‣ 定義されているのはプロトコルのみで      アルゴリズムは各実装の自由

✦ 様々な輻輳制御アルゴリズムが提案されてきた ‣ 公平性を保ちながら高速性を向上させる

24

Page 25: ルーティングチュートリアルチュートリアル TCP/IP編

/ 29

TCPの問題点✦ データを送るたびにACKを待たなければいけないのでRTTが大きいと通信が遅い

✦ 動画ストリーミングなどに不向き

‣ 遅延はあってもいいのでスループットを出したい ‣ パケロスしても大丈夫なので信頼性は要らない

25

UDP (User Datagram Protocol)

Page 26: ルーティングチュートリアルチュートリアル TCP/IP編

/ 29

IPとTCPの完全分業制✦ IP

‣ コネクションレス=ステートレス ‣ パケットが落ちても気にしない ‣ 信頼性は無いけど宛先まで届ける機能

✦ TCP

‣ コネクションフル=ステートフル ‣ パケットが落ちていたら再送してもらう ‣ 信頼性のある通信路を構築する機能

スケールする!

26

Page 27: ルーティングチュートリアルチュートリアル TCP/IP編

/ 29

TCP/IP4層モデル

27

Application

TCP

IP

Ethernet

ありがとう!好き勝手やるよ!

パケットを宛先まで届けるよ

物理的な通信なら任せて!

通信の信頼性を保証するよ!

✦ 機能の分離とモジュール化

Page 28: ルーティングチュートリアルチュートリアル TCP/IP編

/ 29

まとめ✦ インターネットの通信はTCP/IPで動いている

✦ IPは宛先までパケットを届ける役目

✦ TCPはパケットの完全性を保証する役目

✦ 役割分担が機能しているおかげで、インターネットは世界規模でも動いている

28

Page 29: ルーティングチュートリアルチュートリアル TCP/IP編

/ 29

APRICOT-APAN2015

✦ アジア・パシフィック地域のネットワーク運用者の国際カンファレンス

‣ 前半チュートリアル ‣ 後半カンファレンス

✦ 来年は日本の福岡で開催

✦ wakamonogやるかもね!

29