COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application...

24
COS 461 Fall 1997 Transport Layer FTP HTTP SMTP DNS Finger TCP UDP IP Ethernet ATM modem SHRIMP application layer transport layer network layer data link layer

Transcript of COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application...

Page 1: COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.

COS 461Fall 1997

Transport Layer

FTP HTTP SMTP DNS Finger

TCP UDP

IP

Ethernet ATM modem SHRIMP

applicationlayer

transportlayer

networklayer

data linklayer

Page 2: COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.

COS 461Fall 1997

UDP (User Datagram Protocol)

unreliable, unordered datagrams

the main difference from IP:– IP sends datagram to a

machine

– UDP sends datagram to (machine, port) pair

» port is 16-bit identifier

IP header

src port dest port

checksum length

data follows

32 bits

Page 3: COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.

COS 461Fall 1997

UDP and AcmeNet

an AcmeNet NetAddress is a (machine, port) pair

AcmeNet NetworkInterfaces communicate via UDP– very simple layering– look at NetworkInterface source code if you’re

interested in how this works

Page 4: COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.

COS 461Fall 1997

TCP

stands for Transmission Control Protocol reliable, bidirectional byte stream

– hides datagram boundaries– handles connection setup and shutdown cleanly– acknowledgement, timeout, and retransmission– flow control: slows down sender so receiver isn’t

overwhelmed– congestion control: slows down sender so network

isn’t overwhelmed

Page 5: COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.

COS 461Fall 1997

Challenges for TCP

robust connection setup and shutdown high variance in round-trip time packets can “hide” in the net for a long time varying resources available at endpoints

– must learn each other’s needs, and adapt robust congestion control

Page 6: COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.

COS 461Fall 1997

Byte Streams and Segments

data not divided into chunks; functions like a continuous byte-stream– sender buffers data

» use largest buffer size that avoids IP fragmentation

– data sent when buffer fills, or on periodic clock tick, or when explicitly flushed

– receiver buffers data too like buffering in Assignment 2

Page 7: COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.

COS 461Fall 1997

Sequence Numbers

each packet carries a sequence number seq nums identify bytes, not datagrams initial sequence numbers chosen “randomly”

each packet carries an acknowledgement (with sequence number acked)

no distinction between data/ack packets

Page 8: COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.

COS 461Fall 1997

TCP Header Format

IP header

src port dest port

sequence number

ack sequence number

hdr len 0 flags advertised window

checksum urgent data ptr

options (if any)

data follows

32 bits

Page 9: COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.

COS 461Fall 1997

TCP Header

src port, dest port– same meaning as UDP

sequence number– last byte of data sent, before this packet

ack sequence number– first byte of data not yet received

hdr len– length of TCP header, in 32-bit words

Page 10: COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.

COS 461Fall 1997

TCP Header

flags– URG: if 1, packet contains urgent data– ACK: if 1, “ack seq num” field is valid– PSH: if 1, tells receiver not to buffer this

packet, or anything ahead of it– RST: if 1, denotes serious error– SYN: if 1, this is a connection-setup packet– FIN: if 1, this packet closes the connection

Page 11: COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.

COS 461Fall 1997

TCP Header

advertised window– number of bytes sender can accept at present

» counts forward from ack seq num value

checksum– Internet checksum, covers TCP info + data

urgent pointer– location of end of “urgent data” in packet

Page 12: COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.

COS 461Fall 1997

TCP Header

options: examples– negotiate packet size– window size larger than 64k– modified ack/retransmit information

Page 13: COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.

COS 461Fall 1997

How TCP Uses Ports

serversocket

Client machine Server machine

socket

connect

socket

accept

Page 14: COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.

COS 461Fall 1997

Connection Setup three-way handshake

– client says “I want to connect”, gives seq num» SYN flag set

– server says “I accept”, gives seq num, acks client’s seq num

» SYN + ACK flags set

– client says “OK”, acks server’s seq num» ACK flag set

careful handling of errors, timeouts, etc. complex state transition diagram

Page 15: COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.

COS 461Fall 1997

Sliding Window Protocol

LastByteAcked LastByteSent

LastByteWritten

Sending Host

NextByteExpected LastByteReceived

LastByteRead

Receiving Host

Goals: reduce memory requirements;don’t overrun receiver’s buffers;keep the pipe full.

Page 16: COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.

COS 461Fall 1997

Sliding Window Constraints

receiver decides how much memory to dedicate to this connection (call it M)

receiver advertises window of M-(LastByteReceived-NextByteRead)

sender stops sending when LastByteSent-LastByteAcked = Window

acks from receiver update the window size special hack to get out of Window=0 case

Page 17: COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.

COS 461Fall 1997

Keeping the Pipe Full

recall: optimum performance requires window size equal to latency-bandwidth product

receiver tries to allocate enough memory to keep window size large enough

with fast network, can overflow 16-bit “advertised window” field– use TCP header option to get bigger window

Page 18: COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.

COS 461Fall 1997

Timeout and Retransmission

use timeout and retransmission optimal timeout is just more than round-trip

transmission time– don’t time out if no packets dropped– recover quickly if packets are dropped

for TCP– packet loss rate is nontrivial– round-trip time varies widely

Page 19: COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.

COS 461Fall 1997

Timeout: Original Algorithm

keep running average of round-trip time– interval between sending and arrival of ack

time out after twice the estimated RTT problem: matching problem after

retransmission problem: bad if variance is high

Page 20: COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.

COS 461Fall 1997

Timeout: Better Algorithm

three improvements:– don’t include retransmitted packets in estimate

» avoids matching problem

– estimate average and standard deviation; timeout after avg + 4 * deviation

– on retransmission, double timeout (temporarily) for next retransmission

Page 21: COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.

COS 461Fall 1997

Using TCP in Java

classes in java.net package on the client side:

– new Socket(serverHostName, serverPort) connects to a server

– Socket::getInputStream and Socket::getOutputStream get byte streams to use for communicating with server

Page 22: COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.

COS 461Fall 1997

Using TCP in Java

on the server side:– new ServerSocket(portNum) advertises a

connection point– ServerSocket::accept accepts a connection

from a client; returns a Socket» ServerSocket can accept many connections

– after getting the Socket, treat it same as the client does

Page 23: COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.

COS 461Fall 1997

Using TCP in C

uglier interface– form of IP addresses– hostname lookup– arguments as structs– one kind of socket used for server-socket and

ordinary sockets usually write code by cut-and-paste for a good source, see course’s Miscellaneous

Links page

Page 24: COS 461 Fall 1997 Transport Layer FTPHTTPSMTPDNSFinger TCPUDP IP EthernetATMmodemSHRIMP application layer transport layer network layer data link layer.

COS 461Fall 1997

Well-Known Ports

many standard services live at the same port on almost all machines– http on port 80– telnet on port 23

allows outside clients to find them “portmapper” allows a level of indirection