ルーティング 
チュートリアル 
チュートリアル 
2014/09/29 
wakamonog meeting 6
/ 29 
構成 
✦ インターネットとTCP/IP:ゆやりん 
✦ インターネットの構造:たいじ 
✦ ルーティングプロトコル:なおくん 
✦ ネットワーク構築例 
‣ コンテンツプロバイダ:かっきぃ 
‣ ISP:まつもと 
2
/ 29 
自己紹介 
✦ 川上 雄也 (@yuyarin) 
‣ インターネットマルチフィード株式会社 
‣ 国内最大のInternet Exchange「JPNAP」の運用 
- Ethernet網の設計・構築・運用からツールやシステムの   
開発からコミュニティ活動まで幅広くやってます 
‣ もともとドワンゴでプログラマとかやってましたが,   
インターネットの楽しさに惚れ込みました 
3
インターネットってなんですか?
Webサイトを見るとき 
TCP/IPのはなし
/ 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.2 
9
/ 29 
DNS: 名前からIPアドレスへ 
wakamonog.jp 
203.0.113.4 
インターネット 
192.168.0.2 
10 
キャッシュサーバ 
.jp 権威サーバ
/ 29 
Web(HTTP/HTML) 
インターネット 
wakamonog.jp 
203.0.113.4 
192.168.0.2 
11 
HTTPでHTMLをやりとりする
/ 29 
通信するためには? 
✦ 宛先まで到達できること 
12 
IP (Internet Protocol)
/ 29 
IP通信 
インターネット 
wakamonog.jp 
203.0.113.4 
198.51.100.1 
13
203.0.113.4 
/ 29 
ルータがIPパケットを転送 
wakamonog.jp 
ルーティングテーブルに基づいて 
その都度適切なルータに転送される 
=フォワーディング 
インターネット 
14 
198.51.100.1 
適切な経路を決定する=ルーティング
/ 20 
IPルーティング 
経路広告 
wakamonog.jp 
203.0.113.4 
203.0.113.0/24はこっちだよ 
198.51.100.1 
インターネット 
ルーティング 
真ん中の経路が一番近い! 
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 1 ACKがない 
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

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

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