A day in the life of an application
Network Applications
Dominant model: bidirectional, reliable byte stream connection
- HTTP client server
- BitTorrent peer to peer
- Skype
Abstracts away entire network -- just a pipe between two programs
Common Models
Client Server Model
- The most common communication model used is a bidirectional, reliable stream of bytes.
- Client sends a request by writing to the connection, the server reads the request, processes it and writes it back to the client.
Peer to Peer Model
- BitTorrent also use reliable bidirectional data stream
- BitTorrent file describes info about the data file and tracker node
- A tracker is a node that keeps track of what clients are member of the swarm.
- To join a torrent, your client contacts the tracker
Skype
- Unlike the web, where there's a client and a server, in the Skype case you have two clients
- Rather than having a personal computer request something from a dedicated server, you have two clients requesting data from each other.
- NAT