ルーティングチュートリアルチュートリアル tcp/ip編
DESCRIPTION
2014年9月29日にwakamonog meeting 6で行った「ルーティングチュートリアルチュートリアルのセッション」のうち私が担当したTCP/IP編のスライドです。TRANSCRIPT
ルーティング チュートリアル チュートリアル
2014/09/29 wakamonog meeting 6
/ 29
構成✦ インターネットとTCP/IP:ゆやりん
✦ インターネットの構造:たいじ
✦ ルーティングプロトコル:なおくん
✦ ネットワーク構築例
‣ コンテンツプロバイダ:かっきぃ ‣ ISP:まつもと
2
/ 29
自己紹介✦ 川上 雄也 (@yuyarin)
‣ インターネットマルチフィード株式会社 ‣ 国内最大のInternet Exchange「JPNAP」の運用 - Ethernet網の設計・構築・運用からツールやシステムの 開発からコミュニティ活動まで幅広くやってます
‣ もともとドワンゴでプログラマとかやってましたが, インターネットの楽しさに惚れ込みました
3
インターネットってなんですか?
TCP/IPのはなし
Webサイトを見るとき
/ 29
Webサイトを見るとき
6
/ 29
Webサイトを見るとき
インターネット
wakamonog.jp
Webブラウザ
Webサーバ
OS
203.0.113.4
192.168.0.2
IPv4アドレス
7
/ 29
Webサイトを見るとき✦ Webブラウザというアプリケーションがインターネットの先にあるWebサーバと通信する
‣ ブラウザはOSの機能(API)を使うことで,実際はOSが通信を行なっている
✦ 通信にはIPアドレスを使う
‣ そのために”wakamonog.jp”という「名前」から”203.0.113.4”というアドレスへの変換が必要
8
/ 29
名前からアドレスへの変換
インターネット
wakamonog.jp
203.0.113.4
192.168.0.29
/ 29
DNS: 名前からIPアドレスへ
インターネット
wakamonog.jp
203.0.113.4
192.168.0.210
キャッシュサーバ
.jp 権威サーバ
/ 29
Web(HTTP/HTML)
インターネット
wakamonog.jp
203.0.113.4
192.168.0.211
HTTPでHTMLをやりとりする
/ 29
通信するためには?✦ 宛先まで到達できること
12
IP (Internet Protocol)
/ 29
IP通信
インターネット
wakamonog.jp
203.0.113.4
198.51.100.113
/ 29
ルータがIPパケットを転送wakamonog.jp
インターネット
14
203.0.113.4
198.51.100.1
ルーティングテーブルに基づいて その都度適切なルータに転送される
=フォワーディング
適切な経路を決定する=ルーティング
/ 20
IPルーティングwakamonog.jp
203.0.113.4
198.51.100.1
インターネット
203.0.113.0/24はこっちだよ
真ん中の経路が一番近い!
経路広告
ルーティング
15
/ 20
IPルーティングwakamonog.jp
203.0.113.4
198.51.100.1
インターネット
上の経路が一番近い!
198.51.100.0/24はこっちだよ
非対称経路
16
/ 29
経路交換✦ 「ルーティングプロトコル」を使って経路情報を広告する ‣ 経路情報=(宛先, 次のルータ, 属性)
✦ 経路情報に基づいて、宛先に届けるための次のルータ(Next-Hop)を決定する(ルーティング)
✦ お互いに経路を広告し合う=経路交換
✦ 経路が広告されると、トラフィックが吸い込まれる
17
�������
���
/ 29
IPの大事なこと✦ IPのパケットは消えてしまうのは当たり前
‣ ルータの処理能力を超えたものは捨てられる ‣ 転送中にデータが壊れてたときも捨てられる
✦ 往路復路で非対称の経路になることが普通
✦ 宛先に対して評価値が同じ経路が複数ある場合はどっちにいくのかわからない(ECMP)
✦ パケットの到着順序は保証されない
18
/ 29
通信するためには?✦ 宛先まで到達できること
19
IP (Internet Protocol)
TCP (Transmission Control Protocol)
✦ 正しい順番で完全なデータが送られること
✦ 通信しているプログラムを区別できること
/ 29
TCPがやっていること✦ プログラムの区別(ポート番号)
✦ コネクションの確立
✦ 再送制御 ‣ 落とされたパケットを再送してもらう ‣ データの順序を保証する
✦ フロー制御 ‣ 通信相手や自分の忙しさ具合で流量を調整する
✦ 輻輳制御 ‣ 通信路の混み具合に応じて流量を調整する(公平性)
20
/ 29
3-way handshake✦ TCPのコネクションを確立する
SYN
SYN+ACK
ACK
開始まで1.5往復必要21
/ 29
TCPのデータの転送✦ 確実にデータを転送するために
DATA
ACK毎回ACKする
DATA
ACKまとめて送る
22
/ 29
TCPのデータの再送✦ ACKが無いともう一回送ってみる
DATA 1ACKがない
DATA 1
ACKもう一回送る
23
/ 29
TCPの輻輳制御✦ 輻輳=処理可能な容量を超えること
✦ パケットロスや遅延などから判断する
✦ OSによってアルゴリズムは違う ‣ 定義されているのはプロトコルのみで アルゴリズムは各実装の自由
✦ 様々な輻輳制御アルゴリズムが提案されてきた ‣ 公平性を保ちながら高速性を向上させる
24
/ 29
TCPの問題点✦ データを送るたびにACKを待たなければいけないのでRTTが大きいと通信が遅い
✦ 動画ストリーミングなどに不向き
‣ 遅延はあってもいいのでスループットを出したい ‣ パケロスしても大丈夫なので信頼性は要らない
25
UDP (User Datagram Protocol)
/ 29
IPとTCPの完全分業制✦ IP
‣ コネクションレス=ステートレス ‣ パケットが落ちても気にしない ‣ 信頼性は無いけど宛先まで届ける機能
✦ TCP
‣ コネクションフル=ステートフル ‣ パケットが落ちていたら再送してもらう ‣ 信頼性のある通信路を構築する機能
スケールする!
26
/ 29
TCP/IP4層モデル
27
Application
TCP
IP
Ethernet
ありがとう!好き勝手やるよ!
パケットを宛先まで届けるよ
物理的な通信なら任せて!
通信の信頼性を保証するよ!
✦ 機能の分離とモジュール化
/ 29
まとめ✦ インターネットの通信はTCP/IPで動いている
✦ IPは宛先までパケットを届ける役目
✦ TCPはパケットの完全性を保証する役目
✦ 役割分担が機能しているおかげで、インターネットは世界規模でも動いている
28
/ 29
APRICOT-APAN2015
✦ アジア・パシフィック地域のネットワーク運用者の国際カンファレンス
‣ 前半チュートリアル ‣ 後半カンファレンス
✦ 来年は日本の福岡で開催
✦ wakamonogやるかもね!
29