105
イイイイイイイイイイイイイイ TCP/IP イイイイイ イイイイ イイ イ 2016/03/17( イ ) SA Study #4

インターネッツの繋がるしくみ(TCP/IP編) #sa_study

Embed Size (px)

Citation preview

Page 1: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

インターネッツの繋がるしくみ

( TCP/IP 編)

スタジオ アルカナ 吉田 紳一郎・2016/03/17( 木 )

SA Study #4

Page 2: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

(免責事項)全体を通して悪ふざけが

混じっているように感じる方もいるかもしれませんが意識は低めでお願いします

Page 3: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

前回の勉強会のおさらい

Page 5: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

無線 LANアクセスポイント

スイッチングハブ

おわりました( IEEE802.3 )

ノートパソコン

おわりました( IEEE802.11 )

Page 6: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

スイッチングハブ

ルーター

今日はここ

Page 7: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

データリンク層

ネットワーク層

トランスポート層

アプリケーション層

インターネッツの繋がるしくみ( TCP/IP 編)

物理層

プレゼンテーション層

セッション層

インターネッツの繋がるしくみ( DNS/HTTP 編)

ここ

インターネッツの繋がるしくみ(物理層編)

Page 8: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

今回もネットワークのお話です

Page 9: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

あ、

Page 10: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

ハッシュタグは

#sa_studyらしいです

Page 11: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

さて

Page 12: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

前回はMAC アドレス

について学びました

Page 13: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

パソコン A パソコン B

スイッチングハブ

MAC アドレスを頼りにして機器同士の識別を行い通信する

B8-F6-B1-00-00-99

B8-F6-B1-00-00-44

B8-F6-B1-00-00-88

B8-F6-B1-00-00-11

Page 14: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

MAC アドレスってIP アドレスとは

何が違うんだろう?

Page 15: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

IP(Internet Protocol)

Page 16: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

RFC 791という仕様

※ RFC :Request for Comments

Page 17: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

RFC は、 IETF というインターネットで利用される

技術の標準化を策定する組織が発行する文書

※ IETF: Internet Engineering Task Force

Page 18: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

ちょっとRFC 791

を覗いてみましょう

Page 19: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

(日本語)  http://srgia.com/docs/rfc791j.html

インターネットプロトコル

DARPA :アメリカ国防高等研究計画局

RFC791

1981 年 9 月生まれ( 34 歳)

※ https://www.ietf.org/rfc/rfc791.txt

(わたし (32 歳 ) より年上のセンパイ…!)

Page 20: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

インターネットはDARPA( アメリカ国防高等研究計画局 )

で生まれた技術なのです

Page 21: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

物理層

データリンク層

ネットワーク層

トランスポート層

セッション層

プレゼンテーション層

アプリケーション層

OSI 参照モデルでいうと、

7

6

5

4

3

2

1

Page 22: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

物理層

データリンク層

ネットワーク層

トランスポート層

セッション層

プレゼンテーション層

アプリケーション層

←IP はここ

Page 23: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

IP では、各コンピュータにIP アドレスという

機器を判別するための番号を割り振って通信します。

Page 24: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

スイッチングハブ

192.168.1.1

192.168.1.2

192.168.1.3

192.168.1.4

Page 25: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

スイッチングハブ

192.168.1.1

192.168.1.2

192.168.1.3

192.168.1.4

IP アドレス

IP アドレスIP アドレス

IP アドレス

Page 26: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

IP では、コンピュータ同士が直接通信できる範囲を

セグメントと呼びます。

スイッチングハブ

Page 27: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

IP では、コンピュータ同士が直接通信できる範囲を

セグメントと呼びます。

セグメント

スイッチングハブ

同一セグメント内ではEthernet で通信できる

( MAC アドレスがあれば宛先がわかる)

Page 28: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

IP では、セグメントが違うと、

セグメント①

セグメント②

Page 29: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

IP では、セグメントが違うと、直接通信はできません。

セグメント①

セグメント②

Page 30: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

どうやったら通信ができるのでしょう?

セグメント①

セグメント②

Page 31: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

ここで

Page 32: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

ルーター

ルーターのでばん!

Page 33: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

ルーターを経由することでセグメントを超えた通信ができます

セグメント①

セグメント②ルーター

Page 34: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

でも、セグメントの範囲ってどう決まるんだろう?

Page 35: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

セグメントの範囲はパソコンに割り当てられた

IP アドレスとサブネットマスクによって決まります。

Page 36: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

これ

ipconfig / ifconfig の

Page 37: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

例えば、次のように設定されたパソコンがあった場合

Page 38: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

スイッチングハブ

IP アドレス: 192.168.1.1サブネットマスク: 255.255.255.0

192.168.1.2

192.168.1.3

192.168.1.4

これを例にしましょう

Page 39: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

IP アドレスとサブネットマスクを

計算することでセグメントが決まります。

Page 40: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

やってみましょう

Page 41: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

IP アドレス: 192.168.1.1サブネットマスク: 255.255.255.0

Page 42: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

まず、 2 進数に変換します

Page 43: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

IP アドレス: 192.168.1.1サブネットマスク: 255.255.255.0

Page 44: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

IP アドレス: 192.168.1.1サブネットマスク: 255.255.255.0

IP アドレス11000000.10101000.00000001.00000001 (192) . (168) . (1) . (1)

サブネットマスク11111111.11111111.11111111.00000000 (255) . (255) . (255) . (0)

Page 45: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

サブネットマスクに注目

Page 46: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

IP アドレス11000000.10101000.00000001.00000001

サブネットマスク

11111111.11111111.11111111.00000000

Page 47: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

IP アドレス11000000.10101000.00000001.00000001

サブネットマスク

11111111.11111111.11111111.00000000

1 の部分と 0 の部分に分けます

Page 48: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

IP アドレス11000000.10101000.00000001.00000001

サブネットマスク

11111111.11111111.11111111.00000000

↑ネットワーク部

↑ホスト部

と呼びます

Page 49: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

IP アドレス11000000.10101000.00000001.00000001

サブネットマスク11111111.11111111.11111111.00000000

IP アドレスのうちネットワーク部が同じだった場合が

同じセグメント

ネットワーク部

Page 50: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

IP アドレス11000000.10101000.00000001.00000001 (192) . (168) . (1) . (1)

サブネットマスク11111111.11111111.11111111.00000000

なので、この場合は192.168.1.1 ~ 192.168.1.254の IP アドレスが同じセグメント

ネットワーク部

Page 51: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

スイッチングハブ

IP アドレス

192.168.1.1サブネットマスク

255.255.255.0

192.168.1.2

192.168.1.3

192.168.1.4

Page 52: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

スイッチングハブ

IP アドレス

192.168.1.1サブネットマスク

255.255.255.0

192.168.1.2

192.168.1.3

192.168.1.4

同一セグメント

Page 53: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

ちなみに

Page 54: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

IP アドレス: 192.168.1.1サブネットマスク: 255.255.255.0

サブネットマスク11111111.11111111.11111111.00000000

24 ビット

192.168.1.1/24という書き方をすることもあります。

( CIDR( サイダー ) 記法と言います)

※ CIDR: Classless Inter-Domain Routing

Page 55: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

セグメントが同じだと直接通信ができるけど、

Page 56: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

セグメントが違う場合はどうなっちゃうの?

Page 57: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

セグメントが違う場合は、デフォルトゲートウェイへデータを届けます。

Page 58: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

これ

ipconfig / ifconfig の

Page 59: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

多くの場合、ルーターがデフォルトゲートウェイ

の役割を果たします

セグメント①

セグメント②ルーター

こいつがデフォルトゲートウェイ

Page 60: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

ルーターにはルーティングテーブル

というリストがあります

ルーター 宛先 インターフェイス ホップ数

192.168.1.0/24 if1 1

192.168.2.0/24 if2 1

192.168.3.0/24 if3 1

Page 61: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

ルーティングテーブルの宛先を確認し、どのセグメントにデータを送るかが決まります

ルーター 宛先 インターフェイス ホップ数

192.168.1.0/24 if1 1

192.168.2.0/24 if2 1

192.168.3.0/24 if3 1

セグメント192.168.1.x

セグメント192.168.2.x

セグメント192.168.3.x

if1

if2 if3

Page 62: インターネッツの繋がるしくみ(TCP/IP編) #sa_study
Page 63: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

IP アドレスと MAC アドレスの対応はどうやって調べるのでしょう?

Page 64: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

IP アドレスと MAC アドレスはARP(Address Resolution Protocol) というプロトコルで確認できます。

B8-F6-B1-00-00-11

192.168.1.1 192.168.1.2

192.168.1.3

192.168.1.4

B8-F6-B1-00-00-22

B8-F6-B1-00-00-44

B8-F6-B1-00-00-33

Page 65: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

arp コマンド

IP アドレス MAC アドレス

arp コマンドを使うと、 IP アドレスに対応するMAC アドレスの情報を得ることができる。

Page 66: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

物理層

データリンク層

ネットワーク層

トランスポート層

セッション層

プレゼンテーション層

アプリケーション層

MAC アドレス

IP アドレスルーター

スイッチングハブ

ARP

Page 67: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

(出展) https://ja.wikipedia.org/wiki/ ルーター

Page 68: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

さて、ここでテストです。

Page 69: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

2 台の PC に IPv4 アドレスを割り振りたい。サブネットマスクが 255.255.255.240 のとき,両 PC の IPv4 アドレスが同一ネットワークに所属する組合せはどれか。

192.168.1.14 と 192.168.1.17

192.168.1.17 と 192.168.1.29

192.168.1.29 と 192.168.1.33

192.168.1.33 と 192.168.1.49

(出典)基本情報技術者 平成 24 年秋期 午前問 36

Page 70: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

サブネットマスク11111111.11111111.11111111.11110000 (255) . (255) . (255) . (240)

IP アドレス11000000.10101000.00000001.00001110 (192) . (168) . (1) . (14) 11000000.10101000.00000001.00010001 (192) . (168) . (1) . (17) 11000000.10101000.00000001.00011101 (192) . (168) . (1) . (29) 11000000.10101000.00000001.00100001 (192) . (168) . (1) . (33) 11000000.10101000.00000001.00110001 (192) . (168) . (1) . (49)

Page 71: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

2 台の PC に IPv4 アドレスを割り振りたい。サブネットマスクが 255.255.255.240 のとき,両 PC の IPv4 アドレスが同一ネットワークに所属する組合せはどれか。

192.168.1.14 と 192.168.1.17

192.168.1.17 と 192.168.1.29

192.168.1.29 と 192.168.1.33

192.168.1.33 と 192.168.1.49

(出典)基本情報技術者 平成 24 年秋期 午前問 36

Page 72: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

IPv4 に絞って説明しましたがIPv6 というバージョンもあります

(今日は割愛)

Page 73: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

無線 LANアクセスポイント

スイッチングハブ

おわりました( IEEE802.3 )

ノートパソコン

おわりました( IEEE802.11 )

ルーター

おわりました( Internet Protocol )

Page 74: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

物理層

データリンク層

ネットワーク層

トランスポート層

セッション層

プレゼンテーション層

アプリケーション層

スイッチングハブ、無線 LAN アクセスポイント(ブリッジモード)

LAN ケーブル、無線 LAN の電波

ルーター、無線 LAN アクセスポイント(ルーターモード)

サーバー、パソコン

7

6

5

4

3

2

1

おさらい

Page 75: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

物理層

データリンク層

ネットワーク層

トランスポート層

セッション層

プレゼンテーション層

アプリケーション層

MAC アドレスで機器を識別して通信する

物理的な媒体を経由して電気信号で通信する

IP アドレスで機器を識別して通信する

サーバー、パソコン

7

6

5

4

3

2

1

おさらい

Page 76: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

とりあえず、 IP まで知っていればコンピュータ同士が繋がる

仕組みは把握できたようなものです。

Page 77: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

つぎ

Page 78: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

TCP( Transmission Control Protocol )

Page 79: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

RFC 793という仕様

※ RFC :Request for Comments

Page 80: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

TCP

DARPA :アメリカ国防高等研究計画局

RFC793

1981 年 9 月生まれ( 34 歳)

※ https://www.ietf.org/rfc/rfc793.txt

IP と一緒に設計されたので時期はほとんど同じ

Page 81: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

TCP は、アプリケーションと IP の中間で

通信サービスを提供します

Page 82: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

HTTP

アプリケーション層

SSH

SMTPHTTPS

IMAP

トランスポート層

ネットワーク層

TCP

TCP

TCP

TCP

TCP

IP

IP

IP

IP

IP

Page 83: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

物理層

データリンク層

ネットワーク層

トランスポート層

セッション層

プレゼンテーション層

アプリケーション層

←TCP はここ

Page 84: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

HTTP

TCP

IP

TCP の役割のポイント

通信するポート番号が決まる

データが確実に届いたか確認

データ欠落などあれば再送

届いたデータの順序を整理

Page 85: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

ポート番号

Page 86: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

HTTP

サーバー

SSH

SMTPHTTPS

IMAP

サーバーでは様々なプログラムが動作している

Page 87: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

HTTP

サーバー

SSH

SMTPHTTPS

IMAP

TCP パケットが届いたとき、どのプログラムに渡せばよいの?

TCP

Page 88: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

TCP では、コンピュータ上の送受信アプリケーションを識別

するために、ポート番号を使う。

Page 89: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

HTTP

サーバー

SSH

SMTPHTTPS

IMAP

例えば、 HTTP サーバーの場合は一般的に 80 番ポートを使う

:80

Page 90: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

HTTP

サーバー

SSH

SMTPHTTPS

IMAP

TCP には宛先ポート番号の情報が含まれているため、そのポートへ

データをお届け。

:80

TCP:80

Page 91: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

物理層

データリンク層

ネットワーク層

トランスポート層

セッション層

プレゼンテーション層

アプリケーション層

MAC アドレスで機器を識別して通信する

物理的な媒体を経由して電気信号で通信する

IP アドレスで機器を識別して通信する

7

6

5

4

3

2

1

TCP の役割

ポート番号でアプリケーションを識別して通信する

Page 92: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

(出展) https://ja.wikipedia.org/wiki/ ルーター

Page 93: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

さて、ここでテストです。

Page 94: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

TCP/IP のネットワークにおいて, TCP のコネクションを識別するために必要な情報の組合せはどれか。ここで,必要な情報は "○" で表し,不要な情報は "×" で表す。

(出典)基本情報技術者 平成 25 年春期 午前問 35

宛先MAC

アドレス

送信元MAC

アドレス

宛先IP

アドレス

送信元IP

アドレス

宛先TCP

ポート番号

送信元TCP

ポート番号

× × ○ × ○ ×

× × ○ ○ × ×

× × ○ ○ ○ ○

○ ○ ○ ○ ○ ○

Page 95: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

TCP/IP のネットワークにおいて, TCP のコネクションを識別するために必要な情報の組合せはどれか。ここで,必要な情報は "○" で表し,不要な情報は "×" で表す。

(出典)基本情報技術者 平成 25 年春期 午前問 35

宛先MAC

アドレス

送信元MAC

アドレス

宛先IP

アドレス

送信元IP

アドレス

宛先TCP

ポート番号

送信元TCP

ポート番号

× × ○ × ○ ×

× × ○ ○ × ×

× × ○ ○ ○ ○

○ ○ ○ ○ ○ ○

Page 96: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

TCP に絞って説明しましたがUDP というプロトコルもあります

(今日は割愛)

Page 97: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

ということで

Page 98: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

Web ブラウザ

Web サーバー

なにかすごそうなもの

Page 99: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

Web ブラウザ

Web サーバー

こんな仕組みで繋がっていたのです

LAN ケーブル 無線 LAN電波

Ethernet

IP

TCP

Page 100: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

あれ…?でも、ブラウザに入力する URL って

IP アドレスじゃなくてドメイン名を入力するけど、どうなっているんだろう?

Page 101: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

DNS( Domain Name System )

Page 102: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

… という話しに入りたかったんですが

今日はここまで。

Page 103: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

データリンク層

ネットワーク層

トランスポート層

アプリケーション層

物理層

プレゼンテーション層

セッション層

インターネッツの繋がるしくみ( DNS/HTTP 編)

へつづく…

Page 105: インターネッツの繋がるしくみ(TCP/IP編) #sa_study

おしまい