Our setup: Application Layer (us) Transport Layer (TCP) Internet Layer (IPv4) Data Link Layer (802.3 Ethernet) Some of you have 802.11 (wifi) instead First: A simple demo Client and server in C, talking to each other Homework 1: Easy at this point Expanding a bit: Stream nature of TCP Let's send a string with a little delay in the middle Order will be preserved, and no bytes lost Let's try reading only part of a message We can read in any pattern we like Separation of messages: Let's look at how protocols do this How does 802.3 know where the end of a frame is? How does IP know the quantity of data in a packet? How does TCP know how much data to expect? We can do something like that too Read a particular quantity: recv with MSG_WAITALL