+ All Categories
Home > Documents > トランスポート層とフロー制御 · 2017-11-16 · TCP Tahoe TCP Reno TCP SACK TCP Vegas...

トランスポート層とフロー制御 · 2017-11-16 · TCP Tahoe TCP Reno TCP SACK TCP Vegas...

Date post: 14-Mar-2020
Category:
Upload: others
View: 10 times
Download: 0 times
Share this document with a friend
26
トランスポート層とフロー制御 8
Transcript

トランスポート層とフロー制御

第8章

Science and Technology

OSI階層モデル

階層 内容 情報交換の単位

第7層 アプリケーション層(application layer)

WWW、電子メール、ファイル転送などのアプリ

ケーションが機能するためのプロトコル。http、smtp、ftpなど。

APDU

第6層 プレゼンテーション層(presentation layer)

アプリケーション層で利用されるデータの表現形式および表現形式間の変換。

PPDU

第5層 セッション層

(session layer)セッション(通信の開始から終了までの一連の手順、エンドエンド間データの同期など)プロトコル。

SPDU

第4層 トランスポート層(transport layer)

エンドエンド間データ転送プロトコル、信頼性の高いTCP、リアルタイム性の高いUDPなど。

TPDU

第3層 ネットワーク層(network layer)

エンドエンド間のルーティング(通信経路選択) 。IPなど。

パケット

第2層 データリンク層

(data link layer)隣接ノード間送受信のためのデータのパケット化の方法と送受信プロトコル。

フレーム

第1層 物理層 (physical layer)

データリンク層からのフレームをビット列へ変換、あるいはその逆。物理媒体の電気的インターフェイスおよび変調方式など。

ビット

高位レイヤ

低位レイヤ

APDU: Application Protocol Data Unit

表1.1

Science and Technology

インターネット上のTCPによる高信頼通信サービス

高信頼TCPコネクション TCPコネクション型通信送信

TCPコネクション型通信受信

ユーザから見た高信頼通信サービスインターネット上の

高信頼通信サービスの実装

TCPセグメント

TCPセグメント

TCPセグメント

TCPセグメント

アプリデータ

アプリデータ

アプリデータ

アプリデータ

IPパケット IPパケットネットワーク層

トランスポート層

アプリケーション層

低信頼コネクションレス

あて先ノード発信ノード あて先ノード発信ノード

図8.1

Science and Technology

UDPヘッダ

(16ビット)宛先ポート番号

(16ビット)データ長(16ビット)

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

アプリケーションデータ

32ビット

図8.1

発信元ポート番号

Science and Technology

8.2 UDP5

UDP(User Data Protocol)Ack(受信確認)なし

エラー発生時、パケットを捨てる

上位での処理が必要

→大容量データ

マルチキャスト(放送型)

長距離でのデータ転送

Science and Technology

インターネットアプリケーションとトランスポートプロトコル

アプリケーションアプリケーション

プロトコル

トランスポート

プロトコル

電子メール SMTP TCP

リモートログイン telnet TCPWWW HTTP TCPファイル転送 ftp TCP

ストリーミング RTSP TCP UDPIP電話 RTP UDPルーチングプロトコル RIP UDP

アドレス変換 DNS UDP

SMTP:simple mail transfer protocolHTTP: hyper text transfer protocol

ftp: file transfer protocolRTSP: real time streaming protocol

RTP:real time protocolRIP: routing information protocol

DNS: domain name server

表8.1

Science and Technology

UDPを使用するアプリケーションとポート番号の例

ポート番号 アプリケーション 用途

7 echo エコーパケット

37 time 時間

39 rlp リソースロケーションプロトコル

42 Nameserver ホストネームサーバ

53 domain ドメインネームサーバ

69 tftp トリビアルファイル転送

123 ntp ネットワーク時間プロトコル

161 snmp SNMP

520 router RIP

546 dhcpv6-client DHCPv6 クライアント

547 dhcpv6-server DHCPv6 サーバ

554 RTSP リアルタイムストリーミングプロトコル

5004 RTP リアルタイムプロトコル

SNMP: Simple Network Management ProtocolDHCP: Dynamic Host Configuration Protocol

表8.2

Science and Technology

TCPヘッダ

32ビット

アプリケーションデータ

発信元ポート番号(16ビット)

宛先ポート番号(16ビット)

シーケンス番号(32ビット)

確認応答番号(32ビット)

ヘッダ長(4ビット)

ウインドウサイズ(16ビット)

緊急ポインタ(16ビット)

(オプション)

予約ビット(6ビット)

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

UR

GAC

KPS

HPS

TSY

NFI

N

フラグ(各1ビット)

図8.3

Science and Technology

エンドエンド制御

• End-to-End の確認応答による誤り制御とフロー制御

ルータ

パケット

ACKパケット

• ポート番号によるアプリケーションの識別

エンドホスト

エンドホスト

Science and Technology

8.3 TCP(1/3)10

TCP(Transmission Control Protocol)

受信確認(確定的な高信頼転送)目的:高信頼なデータ転送を行う→Ack処理エラー検出と訂正フロー制御パケット順序制御上位アプリケーションに転送するインタフェース

送信側 受信側SN=#5

SN=#5タイムアウト

Ackがないと再送

データ

Ack

Science and Technology

8.3 TCP(2/3)11

① シーケンス番号 宛先ホストでは、この番号によってセグメントの順番を正しく並べ替えたり、届かなかったセグメントの再送要求を出すことができる。

② 確認応答番号 データを受信したホストが送信元ホストに受信の確認を行うための番号である。

③ ヘッダ長 TCPヘッダの長さを4オクテット(32ビット)単位で示す。

④ 予約ビット 将来の機能拡張のための予備ビットである。

Science and Technology

8.3 TCP(3/3)12

⑤ フラグ 6ビットからなり、つぎの六つのフラグフィールド(各1ビット)から構成されている。• URG(緊急データ) 緊急伝送用であることを示す。

• ACK(確認応答) コネクション確認要求の 初のパケット以外は、すべて1である。

• PSH(逐次処理) 転送強制フラグである。1の場合は受信したデータをただちに上位層へ渡す。

• PST(強制切断) 1の場合はコネクションの強制解除を行う。

• SYN(接続要求) 同期フラグである。1の場合はコネクション設定を開始する。

• FIN(切断要求) 転送終了フラグである。1の場合はコネクションを終了する。

⑥ ウィンドウサイズ 宛先ホストは、到着したセグメントを「ウィンドウ」と呼ばれる受信バッファに一度蓄積し、上位層に渡す。ウィンドサイズが残っているまで一括して送信可能。

Science and Technology

ウィンドウ コントロール13

(a)ウィンドコントロール (b)ウィンド処理によるAckパケットの節約

Possible to receive

packets in a short time

Window=2

Sends the 2nd packet without waiting for Ack

Node A Node B

Send back only the Ack for #8

ノードA ノードB

Science and Technology

受信者送信者

セグメント

ACK

T

T

T

T

T

受信者が受取れている間隔(受信間隔)でAckを返送=ボトルネック速度の擁立

ACK

送出のタイミングを生成

V.Jacobson: “Congestion Avoidance and Control,” SIGCOM’88.

帯域使い切り

セルフ・クロッキング

ボトルネック

受信のタイミングでAckを生成

Science and Technology

• 最も少ない帯域割り当てを受けているユーザに対し、最大の帯域割り

当てを行う動作を、すべてのユーザに対して繰り返す (最小最大公平)。

1

2

4

3

5

(例) すべてのリンク容量が 1 の場合の以下 (①から⑤の5 セッション) の最小最大公平は?

① ボトルネックリンク→ 公平に 1/3 割り当て

② ボトルネックリンク→ 残りの 2/3 割り当て

③ ボトルネックリンク→ 帯域 1 を割り当て

D.Bertsekas and R.Gallager: “Data Networks,” Prentice Hall.

小 大フロー制御

Science and Technology

時間

使用帯域セッション開始 別のセッション開始

時間

使用帯域

セッション開始 別のセッション開始

理想:

TCP: スロースタート + ふくそう回避*端末毎の分散制御

最小最大公平

TCP Reno の場合

TCPにおけるフロー制御

Science and Technology

TCPポート番号例

TCPポート番号

アプリケーション

用途

20 ftp-dataファイル転送(データ本体)

21 ftpファイル転送(コントロール)

22 sshシェル:SSH(セキュア)

23 telnet シェル:telnet

25 smtp メール送受信

53 domain DNS

70 gopher gopher

80 http WWW

110 pop3 メール受信(POP)

119 nntp ネットニュース

143 imap メール(IMAP)

443 https WWW(セキュア)

表8.3

Science and Technology

アプリケーションとポート番号の例

FTP

ポート番号21

TELNET

ポート番号23

SMTP

ポート番号25

HTTP

ポート番号80

RTSP

ポート番号554

TCP

IP

ホストRTP

ポート番号5004

UDP

FTP: file transfer protocolSMTP:simple mail transfer protocolHTTP: hyper text transfer protocolRTSP: real time streaming protocol

RTP:real-time transport protocol

図8.4

Science and Technology

UDPとTCPのまとめ

UDP TCP

接続形態 1:1 および 1:n 1:1

アプリケーションの特定方法 UDPポート番号 TCPポート番号

送受信の単位 パケット(*1) ストリーム(*2)

宛先までの到達保証 なし あり

パケット損失時の動作 なし 再送

事前のアプリケーション同士の接続動作(コネクションの確立)

不要(*3) 必要(*4)

処理の重さ 軽い 重い

(*1)パケット……送信側が送ったパケットが、 そのままの形で受信側に届く。•(*2)ストリーム…送信されるデータはさまざまな長さを持つ。•(*3)コネクションレス型通信•(*4)コネクション型通信

表8.4

Science and Technology

TCP Tahoe

TCP Reno

TCP Vegas

要点

スロースタート + ふくそう回避 + 高速再送

Tahoe + 高速回復

RTT (round trip delay) ベースのふくそう制御

* 広く用いられているのは TCP Reno

• スロースタート: slow start• ふくそう回避: congestion avoidance• 高速再送: fast retransmission• 高速回復: fast recovery

いろいろなTCP

Science and Technology

TCPによる輻輳ウインドウとスロースタート(TCP Tahoe)

スロースタート

パケットが損失するまでウインドウサイズを2倍づつ

増加

⑤スロースタート閾値に達したら輻輳回避モードへ移行 輻輳回避

ウインドウサイズ

時間

③スロースタート閾値=ネットワークの許容量の1/2に設定

輻輳ウインドウ

スロースタート

④スロースタート

スロースタート

ネットワークの

許容量

②ネットワークの許容量の検知=パケット損失発生

図8.5

しきい値 輻輳回避

Science and Technology

8.5 輻輳ウィンドウとスロースタート22

TCP Tahoe(場所の名前)の例〔1〕スロースタート

TCPは輻輳ウィンドウサイズを1から開始し、ウィンドウサイズを2倍ずつ増加させる(スロースタート)。ネットワークの空き帯域で、転送可能な 大ウィンドウサイズを超えるとパケット損失が発生する。パケット損出を検知したTCPは、パケット損出直前のウィンドウサイズの1/2をスロースタート閾値として設定する。そして輻輳ウィンドウサイズを、1から再度設定し、スロースタートを繰り返す。

〔2〕輻輳回避

ウィンドウサイズが設定されたスロースタート閾値に達すると輻輳回避段階に入り、ネットワークの許容量に達するまで、ウィンドウサイズを1ずつ増加させる。1ずつ増加させることにより、ネットワークの許容量に到達する時間が遅くなり、スロースタートによってウィンドウサイズを増加させるよりも平均スループットが大きくなる。

Science and Technology

TCP Reno

スロースタート

パケットが損失するまでウインドウサイズを2倍づつ

増加

⑤スロースタート閾値に達したら輻輳回避モードへ移行

ウインドウサイズ

時間

③スロースタート閾値=ネットワークの許容量の1/2に設定

輻輳ウインドウ

④スロースタート

ネットワークの

許容量

②ネットワークの許容量の検知=パケット損失発生

輻輳回避

Tahoeの問題点

Tahoe

Reno

スロースタートに戻る必要なし!パケット廃棄前の半分(現在値)

Science and Technology

• Reno の問題点:

故意にパケット廃棄を発生させて最適なスルー

プットを探っている。

パケット廃棄を起こさなければ、スループットは

もっと上がるはず。

• ラウンドトリップ遅延 (RTT) に基づくスロースタート:

TCP Vegas

Science and Technology

セッション開始 別のセッション開始Tahoe

Reno

Vegas

直感的な比較

Science and Technology

TCP Tahoe

TCP Reno

TCP SACK

TCP Vegas

要点

スロースタート + ふくそう回避 + 高速再送

Tahoe + 高速回復

Reno + 選択的再送 (selective repeat)

RTT (round trip delay) ベースのふくそう制御

* 広く用いられているのは TCP Reno

• スロースタート: slow start• ふくそう回避: congestion avoidance• 高速再送: fast retransmission• 高速回復: fast recovery

いろいろなTCP


Recommended