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

Preview:

Citation preview

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

( TCP/IP 編)

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

SA Study #4

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

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

前回の勉強会のおさらい

無線 LANアクセスポイント

スイッチングハブ

おわりました( IEEE802.3 )

ノートパソコン

おわりました( IEEE802.11 )

スイッチングハブ

ルーター

今日はここ

データリンク層

ネットワーク層

トランスポート層

アプリケーション層

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

物理層

プレゼンテーション層

セッション層

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

ここ

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

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

あ、

ハッシュタグは

#sa_studyらしいです

さて

前回はMAC アドレス

について学びました

パソコン 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

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

何が違うんだろう?

IP(Internet Protocol)

RFC 791という仕様

※ RFC :Request for Comments

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

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

※ IETF: Internet Engineering Task Force

ちょっとRFC 791

を覗いてみましょう

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

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

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

RFC791

1981 年 9 月生まれ( 34 歳)

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

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

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

で生まれた技術なのです

物理層

データリンク層

ネットワーク層

トランスポート層

セッション層

プレゼンテーション層

アプリケーション層

OSI 参照モデルでいうと、

7

6

5

4

3

2

1

物理層

データリンク層

ネットワーク層

トランスポート層

セッション層

プレゼンテーション層

アプリケーション層

←IP はここ

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

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

スイッチングハブ

192.168.1.1

192.168.1.2

192.168.1.3

192.168.1.4

スイッチングハブ

192.168.1.1

192.168.1.2

192.168.1.3

192.168.1.4

IP アドレス

IP アドレスIP アドレス

IP アドレス

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

セグメントと呼びます。

スイッチングハブ

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

セグメントと呼びます。

セグメント

スイッチングハブ

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

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

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

セグメント①

セグメント②

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

セグメント①

セグメント②

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

セグメント①

セグメント②

ここで

ルーター

ルーターのでばん!

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

セグメント①

セグメント②ルーター

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

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

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

これ

ipconfig / ifconfig の

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

スイッチングハブ

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

192.168.1.2

192.168.1.3

192.168.1.4

これを例にしましょう

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

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

やってみましょう

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

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

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

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)

サブネットマスクに注目

IP アドレス11000000.10101000.00000001.00000001

サブネットマスク

11111111.11111111.11111111.00000000

IP アドレス11000000.10101000.00000001.00000001

サブネットマスク

11111111.11111111.11111111.00000000

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

IP アドレス11000000.10101000.00000001.00000001

サブネットマスク

11111111.11111111.11111111.00000000

↑ネットワーク部

↑ホスト部

と呼びます

IP アドレス11000000.10101000.00000001.00000001

サブネットマスク11111111.11111111.11111111.00000000

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

同じセグメント

ネットワーク部

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

サブネットマスク11111111.11111111.11111111.00000000

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

ネットワーク部

スイッチングハブ

IP アドレス

192.168.1.1サブネットマスク

255.255.255.0

192.168.1.2

192.168.1.3

192.168.1.4

スイッチングハブ

IP アドレス

192.168.1.1サブネットマスク

255.255.255.0

192.168.1.2

192.168.1.3

192.168.1.4

同一セグメント

ちなみに

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

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

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

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

これ

ipconfig / ifconfig の

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

の役割を果たします

セグメント①

セグメント②ルーター

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

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

というリストがあります

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

192.168.1.0/24 if1 1

192.168.2.0/24 if2 1

192.168.3.0/24 if3 1

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

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

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

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

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

arp コマンド

IP アドレス MAC アドレス

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

物理層

データリンク層

ネットワーク層

トランスポート層

セッション層

プレゼンテーション層

アプリケーション層

MAC アドレス

IP アドレスルーター

スイッチングハブ

ARP

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

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

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

サブネットマスク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)

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

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

(今日は割愛)

無線 LANアクセスポイント

スイッチングハブ

おわりました( IEEE802.3 )

ノートパソコン

おわりました( IEEE802.11 )

ルーター

おわりました( Internet Protocol )

物理層

データリンク層

ネットワーク層

トランスポート層

セッション層

プレゼンテーション層

アプリケーション層

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

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

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

サーバー、パソコン

7

6

5

4

3

2

1

おさらい

物理層

データリンク層

ネットワーク層

トランスポート層

セッション層

プレゼンテーション層

アプリケーション層

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

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

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

サーバー、パソコン

7

6

5

4

3

2

1

おさらい

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

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

つぎ

TCP( Transmission Control Protocol )

RFC 793という仕様

※ RFC :Request for Comments

TCP

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

RFC793

1981 年 9 月生まれ( 34 歳)

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

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

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

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

HTTP

アプリケーション層

SSH

SMTPHTTPS

IMAP

トランスポート層

ネットワーク層

TCP

TCP

TCP

TCP

TCP

IP

IP

IP

IP

IP

物理層

データリンク層

ネットワーク層

トランスポート層

セッション層

プレゼンテーション層

アプリケーション層

←TCP はここ

HTTP

TCP

IP

TCP の役割のポイント

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

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

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

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

ポート番号

HTTP

サーバー

SSH

SMTPHTTPS

IMAP

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

HTTP

サーバー

SSH

SMTPHTTPS

IMAP

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

TCP

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

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

HTTP

サーバー

SSH

SMTPHTTPS

IMAP

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

:80

HTTP

サーバー

SSH

SMTPHTTPS

IMAP

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

データをお届け。

:80

TCP:80

物理層

データリンク層

ネットワーク層

トランスポート層

セッション層

プレゼンテーション層

アプリケーション層

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

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

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

7

6

5

4

3

2

1

TCP の役割

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

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

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

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

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

宛先MAC

アドレス

送信元MAC

アドレス

宛先IP

アドレス

送信元IP

アドレス

宛先TCP

ポート番号

送信元TCP

ポート番号

× × ○ × ○ ×

× × ○ ○ × ×

× × ○ ○ ○ ○

○ ○ ○ ○ ○ ○

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

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

宛先MAC

アドレス

送信元MAC

アドレス

宛先IP

アドレス

送信元IP

アドレス

宛先TCP

ポート番号

送信元TCP

ポート番号

× × ○ × ○ ×

× × ○ ○ × ×

× × ○ ○ ○ ○

○ ○ ○ ○ ○ ○

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

(今日は割愛)

ということで

Web ブラウザ

Web サーバー

なにかすごそうなもの

Web ブラウザ

Web サーバー

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

LAN ケーブル 無線 LAN電波

Ethernet

IP

TCP

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

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

DNS( Domain Name System )

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

今日はここまで。

データリンク層

ネットワーク層

トランスポート層

アプリケーション層

物理層

プレゼンテーション層

セッション層

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

へつづく…

おしまい

Recommended