BH: Yucky video. Otherwise okay. We should get TCP out of the TIF -- it's the only real activity!
MF: Brian wants to make improvements to this project--can that become an optional project? We don't have any for U4.
On this page, you will learn the system for ensuring that communication is reliable on the Internet.
What you will do: You will watch a video, read, and explore a simulation of unreliable IP transmissions.
What you will learn: You will learn about how the Internet sends data reliably by using protocols.
On your own: You can code your own Transmission Control Protocol.
Computers, servers, and routers are fairly reliable, but every once in a while a packet will be lost, and devices on the Internet need to tolerate these faults. One way to tolerate faults is not to care. (If you lose one frame of video, it doesn't matter.) Another way (called TCP) is to keep sending packets until they are acknowledged as having been received correctly. TCP (Transmission Control Protocol) guarantees reliable data transmission by keeping track of which packets have been received successfully, resending any that have been lost or damaged, and specifying the order for reassembling the data on the other end.
TCP/IP is a pair of protocols that provide an abstraction. IP lets your computer pretend it has a direct connection to another computer. TCP lets your computer pretend it has a reliable connection to the other computer.
The TCP/IP end-to-end design of the Internet is an abstraction:
The routers don't know anything about the messages they carry; all they care about is transmitting them. The computers that send and receive the messages are the only ones concerned with what the messages mean.
TCP works by including additional information along with each packet so that the receiving computer can keep track of how many packets it has received, re-request any missing packets, and reorder the packets to reconstruct the original message. In this simulation, a packet either arrives correctly (even if it's out of order) or it doesn't arrive at all. But on the Internet, it's possible for a packet to arrive with erroneous data, so the real TCP has to check for errors and request re-transmission of packets with errors too.