18
1 1 プロトコルアナライザを用いた ネットワークプロトコルの仕組み理解 ネットワーク・プロトコル概説 実験第二 Iコンピュータサイエンスコース 素華 [email protected] 資料電子ファイル:http://www.tang.cs.uec.ac.jp/teaching.html 2 1. プロトコルとは? 2. データリンク層のプロトコル 3. ネットワーク層のプロトコル 4. トランスポート層のプロトコル 4. アプリケーション層のプロトコル ネットワーク・プロトコル概説

ネットワーク・プロトコル概説...2 3 プロトコル 約束ごと ネットワーク プロトコール “プロトコール” と”プロトコル” 外交 儀礼

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ネットワーク・プロトコル概説...2 3 プロトコル 約束ごと ネットワーク プロトコール “プロトコール” と”プロトコル” 外交 儀礼

1

1

プロトコルアナライザを用いた

ネットワークプロトコルの仕組み理解

〜 ネットワーク・プロトコル概説 〜

実験第二

I類コンピュータサイエンスコース

湯 素華[email protected]資料電子ファイル:http://www.tang.cs.uec.ac.jp/teaching.html

2

1. プロトコルとは?2. データリンク層のプロトコル3. ネットワーク層のプロトコル4. トランスポート層のプロトコル4. アプリケーション層のプロトコル

ネットワーク・プロトコル概説

Page 2: ネットワーク・プロトコル概説...2 3 プロトコル 約束ごと ネットワーク プロトコール “プロトコール” と”プロトコル” 外交 儀礼

2

3

プロトコル

約束ごと

ネットワーク

プロトコール

“プロトコール” と ”プロトコル”

外交

儀礼 Protocole (仏)

通信手順Protocol

1. プロトコルとは?

4

応用層

トランスポート層

ネットワーク層

データリンク層

物理層

エンドシステム

中継システム(ルータ)

ネットワーク層

データリンク層

物理層

エンドシステム

インターネットの階層化モデル

応用層

トランスポート層

ネットワーク層

データリンク層

物理層

1.1 通信機能の階層化

階層化する理由:

1)異種のシステムをつなぐ。

2)技術の発展に追従し易くする。

3)性能の違うシステムをつなぐ

Page 3: ネットワーク・プロトコル概説...2 3 プロトコル 約束ごと ネットワーク プロトコール “プロトコール” と”プロトコル” 外交 儀礼

3

5

(1) 物理層 (Physical Layer)(1) 物理層 (Physical Layer)

例 電気信号の場合:- ケーブル- 電圧- コネクタの形状、ピン

ビット列を伝送するための機械的規格、電気的規格、手順および機能特性を規定。

信号の種類: 電気信号/光信号/電磁信号

6

(2) データリンク層 (Data Link Layer)(2) データリンク層 (Data Link Layer)

Aケーブル

or無線

オープンシステム

オープンシステム

隣接するシステム間で、ビット列を ”フレーム”の単位で、正しく伝送する。順序制御や誤り制御を行う。

B

C

フレーム

例 - イーサネット(Ethernet)- PPP (Point to Point Protocol)

PPPoE- HDLC

(High Level Data Link Control)

オープンシステム

Page 4: ネットワーク・プロトコル概説...2 3 プロトコル 約束ごと ネットワーク プロトコール “プロトコール” と”プロトコル” 外交 儀礼

4

7

LAN

B

A

公衆網

A B

IPアドレス

(3) ネットワーク層(Network Layer)(3) ネットワーク層(Network Layer)

エンドシステム間でデータを転送する。経路制御や中継を行う。

例: IP(Internet Protocol)

8正しく相手側に送る

End A

B End

日本

アメリカ

フランス

網1

網2

網3

(4) トランスポート層 (Transport Layer)(4) トランスポート層 (Transport Layer)

使用するネットワークの品質によらず、エンドシステム間で高信頼にデータを転送する。順序制御や誤り制御を行う。

例: TCP(Internet Protocol)UDP (User Data Gram Protocol)

Page 5: ネットワーク・プロトコル概説...2 3 プロトコル 約束ごと ネットワーク プロトコール “プロトコール” と”プロトコル” 外交 儀礼

5

9

(5) 応用層 (Application Layer)(5) 応用層 (Application Layer)

例・ 電子メール・ ファイル転送

・ WWW・ リモートログイン・ ディレクトリ・ 銀行決済・ トランザクション処理・ 電子取引

アプリケーションに特有な情報交換を行う。

10

ヘッダ データ

ヘッダ データ

ヘッダ データ

ヘッダ データ

データリンク層

ネットワーク層

トランスポート層

応用層

プロトコルデータ単位(PDU)の階層構造

PDU : Protocol Data Unit

※ヘッダ: データを送るための制御情報

Page 6: ネットワーク・プロトコル概説...2 3 プロトコル 約束ごと ネットワーク プロトコール “プロトコール” と”プロトコル” 外交 儀礼

6

11

LANの基礎:

1973年 米国ゼロックス(Xerox)社3Mbps イーサネット

現在:

100Mbpsが標準的 => 高速化(Gbps)

2. データリンク層のプロトコル

ここでは、現在広く使われているLANのプロトコルについて学ぶ。

12

伝送路(バス)

ノード ノード ノード ノード

ノード ノード

ノードノード

制御装置

ノード ノード

ノードノード

2.1 ノードの接続形態(トポロジ)

バス型

リング型 スター型

Page 7: ネットワーク・プロトコル概説...2 3 プロトコル 約束ごと ネットワーク プロトコール “プロトコール” と”プロトコル” 外交 儀礼

7

13

2.2 メディアアクセス制御(MAC: Media Access Control)

・ 公平性 (アクセス)

・ 拡張性

・ 信頼性

AB

C

D

AB

C

B

C

共用の伝送路を利用するためには、フレームの衝突が繰り返されないように、特別なアクセス制御が必要

集中制御ではなく分散制御

14

CSMA/CDとイーサネットCSMA/CDとイーサネット

(1)データの伝送開始

(2)衝突検出

(3)再送

( Carrier Sense Multiple Access with Collision Detection : 衝突検出機構付き搬送波検知多重アクセス )

特徴

Page 8: ネットワーク・プロトコル概説...2 3 プロトコル 約束ごと ネットワーク プロトコール “プロトコール” と”プロトコル” 外交 儀礼

8

15

キャリアセンス

誰も使っていないかをみる

送る 待つ

再送(乱数に基づく待ち時間)

使っていない 使っている

衝突

Carrier: 搬送波

搬送波があるかないかをチェック

出力信号と入力信号を比較

(最大16回)

16

プリアンブル 開始デリミタ

宛先MACアドレス

送信元MACアドレス

データフィールド長

データ パッド チェックサム

(a) CSMA/CD のフレーム形式

(b) イーサネットのフレーム形式

バイト数 7 1 2 0~n 0~46

プリアンブル 開始デリミタ

宛先MACアドレス

送信元MACアドレス

データ パッド チェックサム

バイト数 7 1 6 6 2 0~1500 0~46

タイプ

4

4

CSMA/CD とイーサネットのフレーム形式

※ データフィールド長とタイプのフィールドは互換性あり。値が46~1,500ならデータフィールド長を示し、1,536(0x0600)以上ならタイプ(上位プロトコル)示す。0x0800=IP, 0x0806=APR…

アイドル状態(無信号)の検出によりフレームの最後を判断

データフィールド長によりフレームの最後を判断できる

6 6

Page 9: ネットワーク・プロトコル概説...2 3 プロトコル 約束ごと ネットワーク プロトコール “プロトコール” と”プロトコル” 外交 儀礼

9

17

プリアンブルとデリミタ

フレーム送信の開始を認識させ、同期をとるタイミングを与えるための信号

10101010 10101010 …..10101010 10101011

プリアンブル(7バイト) 開始デリミタ(1バイト)

18

3. ネットワーク層のプロトコル

ベストエフォート転送方式(最善努力)

・ IP (Internet Protocol)

・ ARP (Address Resolution Protocol)IPアドレス (32bits)

イーサネットアドレス (48bits)

・ ICMP (Internet Control Message Protocol)

IPのエラーメッセージや制御メッセージを転送

コネクションレス型プロトコル

ここでは、インターネットのネットワーク層プロトコルについて学ぶ。

Page 10: ネットワーク・プロトコル概説...2 3 プロトコル 約束ごと ネットワーク プロトコール “プロトコール” と”プロトコル” 外交 儀礼

10

19

ARP: MACアドレスを知りたいノードが対象のIPアドレスとMACアドレスの対応を調べるために使用。

リクエストはブロードキャスト リプライはユニキャスト

20

バージョン(4ビット)

ヘッダ長(4ビット)

フラグ(3ビット)

サービスタイプ(8ビット)

パケット長(16ビット)

識別番号(16ビット)

フラグメントオフセット(13ビット)

TTL(8ビット)

プロトコル番号(8ビット)

ヘッダチェクサム(16ビット)

送信元IPアドレス(32ビット)

宛先IPアドレス(32ビット)

オプション パディング

0 15 16 31

32ビット

IPv4ヘッダの構成

データ

ヘッダ

Page 11: ネットワーク・プロトコル概説...2 3 プロトコル 約束ごと ネットワーク プロトコール “プロトコール” と”プロトコル” 外交 儀礼

11

21

フィールド名称長さ

(bits)説明

バージョン 4 IPプロトコルのバージョン。現在使われているのはバージョン4。

ヘッダ長 4 IPヘッダの長さ。32ビット単位

サービスタイプ 8 もともとは優先度等を表す。近年はDiffServの仕様で利用。

パケット長 16 IPメッセージ全体の長さ。通常1,500バイト以下

識別番号16 個々のパケットを識別する番号。通常、パケットの通し番号を記

載。IPフラグメントにより分割された場合は、同じ番号をもつ。

フラグ 3 分割の可否、分割の最後か否か(最後・後続あり)かを示す。

フラグメント

オフセット

13 パケットに格納された部分が、IPメッセージの先頭から何バイト目かを示す。

生存期間(TTL)8 永久にパケットがネットワーク内を回り続けないように生存期間

を指定。ルータを経由する毎に、値が1ずつ減少。0になったらパケットを破棄。

プロトコル番号 8 このパケットが運ぶ上位のプロトコルを記載。TCP: 06Hex, UDP: 11Hex, ICMP: 01Hex

ヘッダチェックサム 16 誤り検査用データ。現在使われていない。

送信元IPアドレス 32 パケットの発信者のIPアドレス

宛先IPアドレス 32 このパケットの受信者のIPアドレス

オプション 可変長 ヘッダのオプションフィールド。32ビット単位。

IPv4のIPヘッダの各フィールド

22

クラス

4バイト

A

B

C

D

E

0

10

110

1110

11110

ネットワーク ホスト

ネットワーク ホスト

ネットワーク ホスト

マルチキャストアドレス

将来の使用のために予約されている

IPv4アドレス構成

Page 12: ネットワーク・プロトコル概説...2 3 プロトコル 約束ごと ネットワーク プロトコール “プロトコール” と”プロトコル” 外交 儀礼

12

23

4. トランスポート層のプロトコル

TCPTransmissionControlProtocol

UDPUserDatagramProtocol

・ 絶対確実に転送・ 処理に時間がかかる

・ 処理時間が早い・ 誤り回復無し

コネクションレス型プロトコル

コネクション型プロトコル

24

TCP

‐ コネクション型プロトコル

‐ パケットの順序制御、誤り回復等

Page 13: ネットワーク・プロトコル概説...2 3 プロトコル 約束ごと ネットワーク プロトコール “プロトコール” と”プロトコル” 外交 儀礼

13

25

ヘッダ

TCPパケットの構造

26

フィールドの名称長さ

(ビット)説明

送信元ポート番号 16 送信側プログラムのポート番号

宛先ポート番号 16 受信側プログラムのポート番号

シーケンス番号(送信データの連番)

32 先頭位置のデータが送信データの何バイト目かを通知

ACK番号(受信データの連番)

32何バイト目まで受信側に届いたかを通知

(次に受け取るデータの先頭バイト位置を指定)

データオフセット 4 データ部分の開始場所(ヘッダ長のこと) 32バイト単位

未使用 6 現在未使用

コントロールビット 6

URG: 緊急ポインタのフィールドが有効

ACK: 受信データの連番フィールドが有効。データが正しく受信側に届いたことを意昧。

PSH : flush動作によって送信されたデータ。

RST: 接続を強制的に終了。異常終了時に使用。

SYN: 送信側と受信倶で連番を確認。接続動作。

FIN : 切断。

ウィンドウサイズ 16 受信側から送信側にウインドウ・サイズ(受信確認を待たずに送信可能なデータ量) を通知

チェックサム 16 誤りの有無を検査

緊急ポインタ 16 緊急に処理すべきデータの位置

オプション 可変長 上のヘッダー・フィールド以外の制御情報。接続動作以外殆ど未使用

TCPパケットのフィールド

Page 14: ネットワーク・プロトコル概説...2 3 プロトコル 約束ごと ネットワーク プロトコール “プロトコール” と”プロトコル” 外交 儀礼

14

27

1バイト目から1300バイト送くったよ

1301バイト目から1200バイト送くったよ

2501バイト目から1400バイト送ったよ

3901バイト目から1300バイト送ったよ

3901バイト目から5200バイトACK無しで送っていいよ

5201バイト目から1400バイト送ったよ

6601バイト目から1200バイト送ったよ

7801バイト目から1200バイト送ったよ

6601バイト目から5200バイトACK無しで送っていいよ

TCPのフロー制御/ウィンドウ制御

送信側 受信側

データ

データ

データ

データ

データ

データ

データ

ACK

ACK

28

UDP

‐ コネクションレス型プロトコル

‐ パケットの順序制御、誤り制御しない

信頼性の高い回線を選ぶor

誤り回復は応用層で対処

Page 15: ネットワーク・プロトコル概説...2 3 プロトコル 約束ごと ネットワーク プロトコール “プロトコール” と”プロトコル” 外交 儀礼

15

29

UDPパケットの構造

ヘッダ

30

5. アプリケーション層のプロトコル

ARPANET が提供したプロトコル

FTP(ファイル転送)

TELNETプロトコル(リモートログイン)

SMTP(メール)

A

文書メール

Page 16: ネットワーク・プロトコル概説...2 3 プロトコル 約束ごと ネットワーク プロトコール “プロトコール” と”プロトコル” 外交 儀礼

16

31

現在良く使われるその他のプロトコル

DNS (Domain Name System) プロトコル

ホスト名からIPアドレスを問い合わせる

HTTP (Hyper Text Transfer Protocol)

Webアクセス (HTML文書の転送)

DHCP (Dynamic Host Configuration Protocol)

ネットワーク接続時のIPアドレス取得

SNMP (Simple Network Management Protocol)

ネットワーク監視・管理

32

TCP UDP

HTTP, SMTP, FTP, Telnet

SNMP, DHCP, DNSP

トランスポートプロトコル

アプリケーションプロトコル

アプリケーションプロトコルが利用するトランスポートプロトコル

コネクション型 コネクションレス型

Page 17: ネットワーク・プロトコル概説...2 3 プロトコル 約束ごと ネットワーク プロトコール “プロトコール” と”プロトコル” 外交 儀礼

17

33

WorldWideWeb

世界中 情報をへ

から発信入手

技術

・ HTML Hyper Text Markup Language

・ HTTPHyper Text Transfer Protocol

・ ハイパーリンク・ URL (場所)

Uniform Resource Locator

5.1 WWW

34

WWWの原理

Internet

クライアント

ブラウザ表示http://www.abc.co.jp

WWWサーバ(abc.co.jp) WWWサーバ(def.co.jp)

HTMLファイル

Hyper Link

HTMLファイル

Hyper Link

HTTPサーバー(Apache等)

HTTPサーバー(Apache等)

TCPコネクションHTTP over

Page 18: ネットワーク・プロトコル概説...2 3 プロトコル 約束ごと ネットワーク プロトコール “プロトコール” と”プロトコル” 外交 儀礼

18

35

HTTPにおけるメソッド

メソッド 意味

Get Webページの読み出し要求

HeadWebページヘッダ読み出し要求(ファイルの最終更新日時等の属性情報を調べる時等に使用)

Put Webページの書き込み要求

Post フォームデータをクライアントからサーバへ送信

Delete Webページの削除

Traceこのメッセージを受け取った最後のサーバは、受け取った要求行とヘッダ行をそのまま返送

Connect 暗号化したメッセージをプロキシで転送

Options 通信オプションを通知

※ HTTP/1.1の仕様 赤字はよく使用されるメソッド

HTTP: Hyper Text Transfer Protocol

36

http://www.textbook.com/hypertext/www/thepage.html

プロトコル名 サーバー名 ファイル名

URLの例

IPアドレス(18.23.0.24)

www.textbook.com ?

18.23.0.24 port 80にTCPコネクション確立要求

ブラウザ(例:IE)

Get//hypertext/www/thepage.html (ファイル読出要求)

DNSサーバ

WWWサーバ

18.23.0.24

thepage.html (HTMLファイル)

URL

画面表示

ACK(応答)

WWWサーバアクセスの流れ

DNSプロトコルDNSプロトコル

TCPTCP

HTTPHTTP

ACK