What does the application want to send?
Bytes, stream, request?
Applications generate data without needing to know every physical hop.
Side 55
A study of how data moves between machines. Computer networks turn messages into packets, packets into link transmissions, and local connections into routed end-to-end communication.
Packetization allows many flows to share links while keeping forwarding decisions local.
Bytes, stream, request?
Applications generate data without needing to know every physical hop.
Transport layer.
Transport protocols add ports, sequencing and reliability behavior.
IP header + payload.
Packets carry source/destination addressing and move independently through routers.
Link-layer encapsulation.
Frames change as packets cross different local networks.
Ordering + integrity.
Higher layers rebuild the application’s intended data stream or message.
Different media trade bandwidth, latency, range, mobility and interference differently.
Frames move across switched local networks with high throughput and low latency.
Fiber provides high bandwidth over long distances with low signal loss.
Wireless stations contend for airtime and experience interference and variable signal quality.
Cellular systems coordinate spectrum, handoff and shared infrastructure for mobility.
Propagation, serialization, queueing and processing all contribute delay.
High bandwidth does not eliminate latency, and available throughput may be lower than nominal link rate.
Routing protocols build forwarding information from local and network-wide knowledge.
IP addresses support hierarchical routing across interconnected networks.
Routers match packet destinations against forwarding tables.
Cost can reflect hop count, policy, bandwidth or other routing attributes.
Routing systems need time to learn failures and settle on new paths.
Between autonomous systems, business and security policy influence which routes are accepted and advertised.
The network can deliver packets independently; transport protocols decide whether applications see reliable streams, datagrams or controlled congestion.
| Feature | TCP | UDP | Question |
|---|---|---|---|
| Connection | Connection-oriented | Connectionless | Does the application need session state? |
| Reliability | Retransmits lost data | No built-in retransmission | Who handles loss? |
| Ordering | Ordered byte stream | Independent datagrams | Does order matter? |
| Congestion control | Built in | Application responsibility | How is network overload managed? |
| Overhead | Higher | Lower | What trade-off between control and simplicity? |
It detects missing data and recovers through retransmission and control.
Naming, requests, responses and state live above the packet-routing substrate.
The Domain Name System distributes hierarchical naming across many servers and caches.
HTTP defines application semantics while transport handles delivery.
TLS protects application data against eavesdropping and tampering when configured correctly.
Different protocols handle submission, transfer and mailbox retrieval.
Applications buffer and adapt quality to changing throughput and delay.
Network APIs layer data formats and operations over transport protocols.
Links drop packets, routes change, names expire and endpoints disappear; resilient communication depends on detection, redundancy and bounded trust.
Detect corruption in transmitted data.
Recover from lost packets when reliability is required.
Allow routing around failed links or nodes.
Prevent applications from waiting indefinitely on failed peers.
Verify identity before trusting a peer or endpoint.
Limit reach and blast radius by separating networks and privileges.
Inspect latency, DNS resolution, connection setup, server processing, packet loss and application round trips rather than assuming the bottleneck is link capacity.
Routing can select an alternate path if topology and policy provide one, but reconvergence takes time and may temporarily drop packets.
Encryption protects data in transit; it does not prove the endpoint itself is trustworthy or secure.