TCPとFTP
演習第5回
情報通信技術論
インターネット工学
情報通信技術論/インターネット工学
TCP (Transmission Control Protocol)


トランスポート層のプロトコル
信頼性 (相手に確実に届く保証がある)
– 再送制御あり

ファイル転送・メール・Web 等に使用される
FTP
POP HTTP
SMTP
IMAP
応用層
FTP (File Transfer Protocol)
POP (Post Office Protocol)
SMTP (Simple Mail Transfer Protocol)
IMAP (Internet Message Access Protocol)
トランスポート層
ネットワーク層
物理・データリンク層
FTP, CBR
HTTP, SMTP
TCP
UDP
IP
Ethernet
HTTP (Hyper Text Transfer Protocol)
1
情報通信技術論/インターネット工学
階層アーキテクチャ
付加
送信側
受信側
データ
データ
TCPヘッダ
データ
付加
IPヘッダ
データ
付加 Ethernetフレームヘッダ
データ
応用層
TCPヘッダ
解析
データ
IPヘッダ
トランスポート層
解析
データ
Ethernetフレームヘッダ 解析
データ
送出
受信
通信媒体(LANケーブル・光ケーブル・無線など)
ネットワーク層
物理・
データリンク層
2
情報通信技術論/インターネット工学
TCPパケット・TCPヘッダ
イーサネット
ヘッダ
IPヘッダ
TCPヘッダ
発信元ポート番号
(16bit)
データ
宛先ポート番号
(16bit)
シーケンス番号
(32bit)
確認応答(ACK)番号
(32bit)
予約済み
(6bit)
FIN
SYN
RST
PSH
ACK
URG
ヘッダ長
(4bit)
チェックサム
(16bit)
ウインドウサイズ
(16bit)
緊急ポインタ
(16bit)
(オプション)
データ
3
情報通信技術論/インターネット工学
TCPヘッダ

シーケンス番号
– 送信したデータの位置を示す
– データを送信する度に、送信したデータのバイト数だけ加算される
(※ ns-2では、送信する度に1ずつ加算される)

確認応答(ACK: Acknowledge)番号
– 次に受信すべきデータのシーケンス番号


確認応答番号から1を引いた値までのデータを受信したことになる
次に送るデータのシーケンス番号と返された確認応答番号が
同じ場合には、正常に通信が行われたことになる
(※ ns-2では、連続して正常に受信されたデータの最大シーケンス番号である。
つまり、送ったデータのシーケンス番号とその確認応答番号が一致した場合、
正常に通信が行われていることになる。)
4
情報通信技術論/インターネット工学
ACKによる信頼性の確保
シーケンス番号
送信側
1
2
データ
パケット
3
ACK
受信側
次
は
次
は
次
は
確認応答(ACK)番号 2
3
4
1つのセグメントを受信するごとに確認応答をすると効率が悪い
 もっと大きな単位で確認応答すればよいのでは?
5
情報通信技術論/インターネット工学
ウインドウ制御の導入
ウインドウ
シーケンス番号
送信側
1 2 3 4
5 6 7 8
9 10 11 12
データ
パケット ACK
受信側
次次次次
はははは
次次次次
はははは
次
は
確認応答(ACK)番号 2 3 4 5
6 7 8 9
10
送信したセグメントに対する確認応答を待たずに、複数のセグメントを送信
※ ウインドウサイズ:ACKを待たずに送信できるデータの大きさ
6
情報通信技術論/インターネット工学
ウインドウ制御で速度向上

ウインドウサイズを変化させてレート調節を行う
ウインドウサイズ = 1セグメント の場合
ウインドウサイズ = 4セグメント の場合
シーケンス番号
シーケンス番号
1
2
3
1234
送信側
56 7 8
9101112
送信側
データ
パケット ACK
受信側
ACK番号
データ
パケット ACK
次
は
次
は
次
は
2
3
4
受信側
ACK番号
次次次次
はははは
次次次次
はははは
次
は
2345
6789
10
7
情報通信技術論/インターネット工学
最大ウインドウサイズ

ウインドウサイズ = 4セグメント の場合
ウインドウ
シーケンス番号
送信側
1 2 3 4
5 6 7 8
9 10 11 12
最大ウインドウサイズ
=
受信側のバッファサイズ
(rwnd: Receiver’s Window)
データ
パケット ACK
受信側
次次次次
はははは
次次次次
はははは
次
は
確認応答(ACK)番号 2 3 4 5
6 7 8 9
10
8
情報通信技術論/インターネット工学
再送制御 (タイムアウト)
一定期間 RTO
(Retransmission Time Out)
1
1
2
送信側
パケットロス
受信側
次
は
2
あるパケットに対するACKがRTO以内に返ってこない場合、
そのパケットは喪失したものと判断する再送
9
情報通信技術論/インターネット工学
再送制御 (重複ACK)
3つ目の重複ACKを受信再送
1 2 3 4 5 6 7 8 2
9 10 11
送信側
受信側
次
は
次 次 次 次 次 次 次
は は は は は は は
次 次 次
は は は
2
2 2 2 2 2 2 9
10 11 12
3つの重複ACK
一度受け取ったACKと同じものを3回連続して受け取った場合、
そのACKが示しているパケットは喪失したものと判断再送
10
情報通信技術論/インターネット工学
実験1-3
0
4
(ボトルネックリンク)
2
40Mbps
帯域: Bw
FTP/TCP
3
40Mbps
5
1
FTP
ダウンロード
TCP Agent
TCPSink Agent
ネットワーク
ルータ
ネットワーク
11
ダウンロード

UDPとCBR