The Client-Server Model
The client-server model is the dominant paradigm for the modern internet.
Clients
- A machine or process that sends data to, or requests data from, a server. Typically this is a personal computer, browser, phone or app, but it can also be another server.
Servers
- A machine or process that provides data or some kind of service to clients, typically by listening for network calls. A server can also be a client for another server.
DNS Queries
- A client will ask a pre-determined set of servers: what’s the IP address of some other server?
- An IP address is a unique identifier for a specific server
- These IPs are assigned by some kind of authority - Amazon/Google Cloud
Requests
- A source IP address sends a series of bytes as packets
- The server uses this source IP adddress to return another series of packets
Ports
- If an IP address is similar to a mailing address, a port is equivalent to the flat number
- Machines have 16k (14 bits?) ports
- You can attempt to communicate with any of them, but typically the port you have to request is dictacted by the protocol
http
uses port 80https
uses port 443