Network: assume infrastructure is shared by many users. Infrastructure defines a network. We usually use Internet as "the network" but there exists other network in early years.
basic building blocks: nodes are connected by links
scaling network involving building wires
a network is owned by many private organizations (campus, home, ISP, ...)
Internet: a network of networks
ISP: job of ISP is to connect one client network to the other using their own network
Unlike non-Internet network, Internet allow heterogeneous applications
Networks that is not Internet: radio, cable TV, phone. They all designed for one application.
Switch: transfer the information from one node to another
Telephone Network: circuit switching by human (one wire is used for the duration of the call)
Internet: send information by packets
Store and forward: Switches use the address in the packet to determine how to forward the packets
Planes:
Forwarding Plane - Moves packets from input to output.
Control Plane - Determines how packets should be forwarded.
Management Plane - Methods of configuring the control plane (CLI, SNMP, etc.)
Protocol: An agreement between parties on how communication should take place.
Syntax: Data encoding, language, etc. (interpretable format)
Semantics: Error handling, termination, ordering of requests, etc. (action rules)
The challenge is that Internet is complex (as picture below) And most people are competeing against each other
Modules
Physical Layer: wires between hosts
Datalink Protocol: protocol on physical layer
Network Layer Protocol: protocol to talk to other networks
Application: ...
Network has failures, for example:
packet loss
replicated packet
corrupted packet
Question: in what layer should we correct the failures Answer: there is no fixed answer. Some application allow some error, others are not. Inforcing correctness requires effort. So we don't build any error correction in non-application level (end-to-end error correction). We let application correct itself. (But WiFi is an exception because of its huge packet loss rate, hop-by-hop error correction) Further Reading: “End-to-End Arguments in System Design.” Saltzer, Reed, and Clark.
Layers:
physical: bit synchronization, bit rate control, bus, simplex/half-duplex/full-duplex (implemented by physical wires)
data-link: Logical Link Control (LLC), Media Access Control (MAC) (implemented by switch)
network (IP): routing, logical IP address (implemented by router)
transport: port number, break message into segments and reassemble, TCP, UDP (implemented by operating system)
session: maintaining sessions, authentications, security, HTTP, RPC (application-implemented)
presentation: Translation layer, encryption/decryption, compression (application-implemented)
application: your code (application-implemented)
Note that TCP/IP is different from TCP protocol. TCP/IP is a network model that is compared to OSI model. TCP protocol is compared to UDP protocol in Transport layer of OSI model.
The stack has two types of interfaces:
Service: each layer relies on services from layer below and exports services to layer above (For example: in order to send data from browser, it invoke switch, switch then invoke physical wires, ... going from above to bottom)
Protocol: defines interaction with peer on other hosts, implies communication
Internet Goals:
connect networks: yes
survivability: traffic re-route
support types of service: not really, but people make hacks to voice info, video, etc
must accommodate a variety of networks: yes
allow distributed management: yes
Allow host attachment with a low level of effort: yes
Be cost effective: kinda
Allow resource accountability: no, ISP limit us ISP, controlled by government
Survivability: it is costly if a stateful switch fails, then it need time to restore the states after it get back up. Stateless switches and routers are preferred. (Now most switches are stateful but can recover quickly)
For horizontal connections, we need to ensure all nodes can talk to each other within their layer, this is done by adding headers.
How do the receiver know which protocol (TCP or UDP) in one layer? We add a demultiplexing field to Transport Layer.
only Physical and Application layer don't need demultiplexing filed
there is an exception: WiFi
The Internet Engineering Task Force (IEF):
unlike IEEE, it does not need membership
designed http and other protocol by researchers (and now )
Process of Making Protocol
Table of Content