Transport Layer 3-1
What is the Transport layer for? Where does the code for the transport layer live? What are the two protocols at this layer? What is the basic idea behind these? How does the transport layer share a network connection among programs? What are well-known port numbers for? Transport Layer 3-2
What information is needed to decide which socket a packet is associated with? What is port scanning? Why is it a concern? Why does DNS use UDP instead of TCP? What is a checksum? Transport Layer 3-3
How can we take this apart? Transport Layer a7 a2 d a ec #......Z....E a d5 2a a 32 c0 a8 46 9b 0a 01.:.*.... J2..F a d 3f &.fM? f 6e p eterson f 6d com.....
What sort of things do we worry about to achieve reliability? How do we address these issues? What is going on with these state machines? Explain what happens if a packet is lost between sender and receiver Transport Layer 3-5
What if an acknowledgement is lost? Why do we need to pipeline packets? What is RTT? MSS? What is the difference between Go Back N and Selective Repeat? How does TCP handle out of order packets? How do we adjust the timeout value when doing TCP? Transport Layer 3-6
What are send and receive buffers? How does the protocol deal with these? What are the sequence # and ack # fields used for? What does the ACK bit mean? What is a cumulative acknowledgement? How does TCP adapt to changing network conditions? Transport Layer 3-7
How does TCP determine the link capacity? How is the window size managed? Why does the fast retransmit wait for 3 duplicate acks instead of 2? How do we avoid overwhelming a slow program with data? What is the “SYN” bit? What is the 3-way handshake? Transport Layer 3-8
Scenarios: Attacker is in the “middle” with packets passing through Attacker is able to sniff the packets and inject new ones into the stream Attacker is blind and doesn’t understand anything about the session Transport Layer 3-9
The initial sequence number is chosen randomly so that a hostile packet can’t appear to be part of the communication stream. It’s easy to send a packet that impersonates a random IP address – you just can’t get a reply Transport Layer 3-10
Suppose someone injects a random bit of data into a session – what will happen? Transport Layer 3-11
Transport Layer a ec a7 a2 d Z.... #.....E b e 06 7c d5 81 aa d7 1e c0 | b f 13 b1 61 3d 07 ac F..P..d...a=..P b 94 8b b e e c 6f......g. SYN flo f d 0a e od).. 2. Predic e f t the ne xt SEQ o e f 6d d f X in s ome way a e e e. 3. Se nd a SYN f 6d d 3e from A -> X (sp f 6f f 6d d 0a 20 oofed fr om T).. 00a e c e wait, and se 00b0 6e e 7c b f nd a SYN |ACK fro 00c0 6d d 3e f 6f m A -> X (spoofe See )..