I TCP 1/2 1
Transport layer: a birds-eye view Hosts maintain state for each transport endpoint Routers don t maintain perhost state H R R R R H Transport IP IP IP IP IP Copyright(C)2011 Youki Kadobayashi. All rights reserved. 2
n n n (flow control) (congestion control) Copyright(C)2011 Youki Kadobayashi. All rights reserved. 3
Internet n TCP (RFC793) Transmission Control Protocol n SCTP (RFC4960) n DCCP (RFC4340) n UDP (RFC768) User Datagram Protocol Advanced topic; out of scope IP + Copyright(C)2011 Youki Kadobayashi. All rights reserved. 4
TCP n (IP, port) n TCP (source IP, source port, destination IP, destination port) (163.221.52.100, 1040) (203.178.136.36, 22) 1040 connection 22 2137 80 connection 163.221.52.100 203.178.136.36 Copyright(C)2011 Youki Kadobayashi. All rights reserved. 5
TCP (1) n n n (full duplex) n O L L E H OK TCP being viewed as byte-stream service O L L E H OK Copyright(C)2011 Youki Kadobayashi. All rights reserved. 6
n (ACK: Acknowledgment) Active acknowledgment n Duplicate ACK n n n (Exponential back-off) Copyright(C)2011 Youki Kadobayashi. All rights reserved. 7
ACK Sender Sent and acknowledged Sent but unacknowledged Nara Institute of Science and Technology User data arrives 10 16 Packets in transit Receiver Nara Insti Copyright(C)2011 Youki Kadobayashi. All rights reserved. 8
Piggybacking: Sender Receiver Sent and acknowledged Sent but unacknowledged Nara Institute of Science and Technology User data arrives Graduate S Packets in transit Receiver Sender Nara Insti Graduate School of Information Science User data arrives Sent and acknowledged Sent but unacknowledged Copyright(C)2011 Youki Kadobayashi. All rights reserved. 9
Duplicate ACK Sender Sent and acknowledged Sent but unacknowledged Nara Institute of Science and Technology User data arrives 10 16 16 Packet loss Packets in transit Receiver Nara Institute o Copyright(C)2011 Youki Kadobayashi. All rights reserved. 10
Questions? Copyright(C)2011 Youki Kadobayashi. All rights reserved. 11
: TCP TCP IP Header TCP Header TCP segment TCP data 16bit source port 16bit destination port 32bit sequence number 32bit acknowledgment number 4bit hlen reserved flags 16bit window size 16bit TCP checksum 16bit urgent pointer (options) 20 octets (TCP data) Copyright(C)2011 Youki Kadobayashi. All rights reserved. 12
Nagle n Q. 1byte 20byte+20byte n Nagle algorithm (RFC896) ACK RTT LAN RTT WAN Copyright(C)2011 Youki Kadobayashi. All rights reserved. 13
Q. n Nagle algorithm Copyright(C)2011 Youki Kadobayashi. All rights reserved. 14
TCP (2) n n Copyright(C)2011 Youki Kadobayashi. All rights reserved. 15
Buffered transfer Process Process Write() Read() block/unblock Write() Read() send buffer recv buffer send buffer recv buffer TCP connection OS kernel Copyright(C)2011 Youki Kadobayashi. All rights reserved. 16
(1): TCP n 3-way handshake n SYN, SYN-ACK, ACK n SYN URG ACK PSH RST SYN FIN SYN-ACK 16bit source port 16bit destination port 32bit sequence number 32bit acknowledgment number 4bit hlen reserved flags 16bit TCP checksum 16bit window size 16bit urgent pointer ACK Copyright(C)2011 Youki Kadobayashi. All rights reserved. 17
TCP : n n n n n dv# tcpdump tcp and host mint100.aist-nara.ac.jp tcpdump: listening on de0 12:16:00.146101 dv.aist-nara.ac.jp.49626 > mint100.aistnara.ac.jp.telnet: S 686685713:686685713(0) win 65535 <mss 1460,nop,wscale 1,nop,nop,timestamp 110942140 0> (DF) [tos 0x10] 12:16:00.146350 mint100.aist-nara.ac.jp.telnet > dv.aist-nara.ac.jp. 49626: S 2312441307:2312441307(0) ack 686685714 win 17520 <mss 1460> (DF) 12:16:00.146405 dv.aist-nara.ac.jp.49626 > mint100.aistnara.ac.jp.telnet:. ack 1 win 65535 (DF) [tos 0x10] Sequence number + 1 Ack Copyright(C)2011 Youki Kadobayashi. All rights reserved. 18
tcpdump n n n time src.port > dst.port flag [ from:to(nbytes) ack # ] win # opt 12:16:00.146101 dv.aist-nara.ac.jp.49626 > mint100.aistnara.ac.jp.telnet: S 686685713:686685713(0) win 65535 <mss 1460,nop,wscale 1,nop,nop,timestamp 110942140 0> (DF) [tos 0x10] 12:16:00.146350 mint100.aist-nara.ac.jp.telnet > dv.aist-nara.ac.jp. 49626: S 2312441307:2312441307(0) ack 686685714 win 17520 <mss 1460> (DF) 32bit sequence number 32bit acknowledgment number flags Copyright(C)2011 Youki Kadobayashi. All rights reserved. 19
Questions? Copyright(C)2011 Youki Kadobayashi. All rights reserved. 20
(2): TCP close FIN Ack of FIN FIN close Ack of FIN 12:16:07.086568 mint100.aist-nara.ac.jp.telnet > dv.aist-nara.ac.jp.49626: FP 713:721(8) ack 245 win 17520 (DF) [tos 0x10] 12:16:07.086738 dv.aist-nara.ac.jp.49626 > mint100.aist-nara.ac.jp.telnet:. ack 722 win 65535 (DF) [tos 0x10] 12:16:07.086998 dv.aist-nara.ac.jp.49626 > mint100.aist-nara.ac.jp.telnet: F 245:245(0) ack 722 win 65535 (DF) [tos 0x10] 12:16:07.087180 mint100.aist-nara.ac.jp.telnet > dv.aist-nara.ac.jp.49626:. ack 246 win 17519 (DF) [tos 0x10] Copyright(C)2011 Youki Kadobayashi. All rights reserved. 21
TCP n RST Abortive release Nonexistent port n n 13:48:35.948096 dv.aist-nara.ac.jp.49635 > mint100.aist-nara.ac.jp.8080: S 1342403683:1342403683(0) win 65535 <mss 1460,nop,wscale 1,nop,nop,timestamp 111497668 0> (DF) [tos 0x10] 13:48:35.948265 mint100.aist-nara.ac.jp.8080 > dv.aist-nara.ac.jp.49635: R 0:0(0) ack 1342403684 win 0 Copyright(C)2011 Youki Kadobayashi. All rights reserved. 22
(3): n TCP options in 3-way handshake n 12:16:00.146101 dv.aist-nara.ac.jp.49626 > mint100.aistnara.ac.jp.telnet: S 686685713:686685713(0) win 65535 <mss 1460,nop,wscale 1,nop,nop,timestamp 110942140 0> (DF) [tos 0x10] MSS option (RFC793, Sep 1981) Window scale option (RFC1323, May 1992) Timestamp option (RFC1323) Selective ACK option (RFC2018, Oct 1996) etc. Copyright(C)2011 Youki Kadobayashi. All rights reserved. 23
: TCP Copyright(C)2011 Youki Kadobayashi. All rights reserved. 24
Questions? Copyright(C)2011 Youki Kadobayashi. All rights reserved. 25
n n Internet TCP n TCP n : ACK, piggybacking, Nagle algorithm n Copyright(C)2011 Youki Kadobayashi. All rights reserved. 26