Lecture Overview
TCP/IP
TCP/IP model.
- Implemented in the kernel
- Each computer has an IP address (IPv4 Address Exhaustion)
- Each computer has a collection of ports, numbered 1 through 65535 (216 - 1). While the IP address identifies a computer, a port identifies a program running on the computer. The combination of (address, port) identifies a program running on a specific computer.
- Data is transmitted in packets: each packet contains the following
- Source address
- Source port
- Destination address
- Destination port
- Arbitrary payload
- Intelligence at the edges
- TCP/IP allows arbitrary data payload, so that only the two communicating programs at the edge need to understand how the data payload is formatted. This allows innovation and new methods of communication to be developed in a decentralized fashion.
- The center of the network is not in control of the endpoints and so cannot control the rate at which packets are sent. Therefore, interior nodes must drop packets when a link becomes overloaded. TCP (which is implemented by the endpoints) takes care of retransmitting dropped packets so that a reliable communication is possible even when the network itself is unreliable. And despite not sounding bad, this is a good thing! At the cost of having to retransmit a few dropped packets we keep the intelligence at the edges.
- Even better, TCP can use dropped packets to determine at what rate to send packets. TCP will increase the speed of sending packets until a few drops happen, and keep trying to increase the speed if there have been no dropped packets recently. Also, if the number of dropped packets increases TCP will backoff the speed a little. TCP attempts to adjust the rate of packet flow so that only a few packets are dropped. This allows the endpoints to automatically discover the optimal rate of sending packets in a decentralized fashion without the center of the network in control.
Exercises
No exercises today. Study for the exam next Wednesday!