feb 16
in the news
"Last week we were hit with a small SYN flood ...
at some point Verizon noticed these seemingly random
inbound packets, and escalated the issue [... by deciding]
to block traffic originating from our server."
coming
- homework this week on TCP
- gist of one chapter per week will get us through book in 4 weeks, then start HTML just before break
- midterm project : use wireshark to analyze and document a session of yours, putting in as much on everything we've talked about in the 1st half of the course: TCP, IP, MAC, HTTP, HTML, DNS, data sizes, sequence numbers, window sizes, ... the works.
this week : TCP
So this is our time to work through what TCP is and how it works, essentially walking through the material in, say, the wikipedia article on the topic.
the protocol stack :
application layer (e.g. HTTP) high, most abstract, data "inside"
TCP packet flow control
IP routing packets to destinations
network (e.g. 802.11) low, MAC address
This protocol is one of the corner stones of the internet. It's complicated and fairly messy, but for our purposes we don't need to get the bottom of every detail.
Ideas to discuss in class :
- What is TCP?
- What does it accomplish?
- Which software implements it?
- Header bits : see the wikipedia article.
- Setting up a connection : SYN, ACK
- Sequence numbers - what do they mean ?
- Acknowlegement numbers - what are they mean?
- retransmission - timeout
- How can packets get "lost"?
- How do packets know where to go? (answer: IP)
- What is the "window size"? Why is it needed?
- What are these "ports"?
- How many different sequence numbers are there? What happens when they get too big?
- Why is the initial sequence number randomly chosen?
- Do the sequence numbers refer to the incoming or outgoing data?
- How do you calculate the sequence number for the next packet?
- How do you calculate the acknowledgment number?
- Why is a more elaborate "selective ack" scheme often used? Where is that information passed?
- What is a "timeout" vaoue? How are they set?
security