TCP/IP Protocol Suite
Learning Objectives
By the end of this reading, you will be able to:
- Understand the structure and components of the TCP/IP protocol suite
- Explain IP addressing, including IPv4 and IPv6
- Perform subnetting calculations and understand CIDR notation
- Compare and contrast TCP and UDP protocols
- Explain the TCP three-way handshake and connection termination
- Understand port numbers and well-known services
- Trace packet routing through a network
Introduction
The TCP/IP (Transmission Control Protocol/Internet Protocol) suite is the foundation of the modern Internet. While the OSI model provides a conceptual framework, TCP/IP is what actually powers network communication worldwide.
In this reading, we'll explore the protocols that make up the TCP/IP suite, with a focus on IP addressing, subnetting, and the transport layer protocols TCP and UDP.
The TCP/IP Model
The TCP/IP model consists of four layers that map to the OSI model:
┌─────────────────────────────────────────┐
│ Application Layer │ ← HTTP, DNS, SMTP, FTP
│ (OSI Layers 5-7) │
├─────────────────────────────────────────┤
│ Transport Layer │ ← TCP, UDP
│ (OSI Layer 4) │
├─────────────────────────────────────────┤
│ Internet Layer │ ← IP, ICMP, ARP
│ (OSI Layer 3) │
├─────────────────────────────────────────┤
│ Network Access Layer │ ← Ethernet, Wi-Fi
│ (OSI Layers 1-2) │
└─────────────────────────────────────────┘
Internet Protocol (IP)
IP is the primary protocol in the Internet layer, responsible for addressing and routing packets across networks.
IP Characteristics
- Connectionless: No connection setup required
- Best-effort delivery: No guarantee of delivery
- Unreliable: No error checking or correction (left to higher layers)
- Packet-switched: Data divided into independent packets
IPv4 Addressing
IPv4 uses 32-bit addresses, typically written in dotted decimal notation.
Format: Four octets separated by dots Example: 192.168.1.1
Binary: 11000000.10101000.00000001.00000001
Decimal: 192 .168 .1 .1
Address Space: 2^32 = 4,294,967,296 addresses
IPv4 Address Classes
Historically, IPv4 addresses were divided into classes:
Class A: 0.0.0.0 to 127.255.255.255
[Network][ Host ][ Host ][ Host ]
Default Mask: 255.0.0.0 (/8)
Use: Large organizations
Class B: 128.0.0.0 to 191.255.255.255
[Network][Network][ Host ][ Host ]
Default Mask: 255.255.0.0 (/16)
Use: Medium organizations
Class C: 192.0.0.0 to 223.255.255.255
[Network][Network][Network][ Host ]
Default Mask: 255.255.255.0 (/24)
Use: Small networks
Class D: 224.0.0.0 to 239.255.255.255
Use: Multicast
Class E: 240.0.0.0 to 255.255.255.255
Use: Reserved/Experimental
Note: Classful addressing is largely obsolete, replaced by CIDR (Classless Inter-Domain Routing).
Special IPv4 Addresses
| Address/Range | Purpose |
|---|---|
| 0.0.0.0 | Default route/this network |
| 127.0.0.0/8 | Loopback (localhost) |
| 127.0.0.1 | Standard loopback address |
| 10.0.0.0/8 | Private network (Class A) |
| 172.16.0.0/12 | Private network (Class B) |
| 192.168.0.0/16 | Private network (Class C) |
| 169.254.0.0/16 | Link-local (APIPA) |
| 255.255.255.255 | Broadcast (all hosts) |
Subnet Masks
A subnet mask determines which portion of an IP address is the network and which is the host.
IP Address: 192.168.1.100
Subnet Mask: 255.255.255.0
Binary AND operation:
11000000.10101000.00000001.01100100 (IP)
& 11111111.11111111.11111111.00000000 (Mask)
= 11000000.10101000.00000001.00000000 (Network)
192.168.1.0
Network Address: 192.168.1.0 (all host bits = 0) Broadcast Address: 192.168.1.255 (all host bits = 1) Usable Hosts: 192.168.1.1 to 192.168.1.254
CIDR Notation
CIDR (Classless Inter-Domain Routing) uses a slash followed by the number of network bits.
192.168.1.0/24
/24 means 24 bits for network, 8 bits for hosts
Subnet Mask: 11111111.11111111.11111111.00000000
255.255.255.0
Common CIDR Blocks:
| CIDR | Subnet Mask | Hosts | Network Bits | Host Bits |
|---|---|---|---|---|
| /8 | 255.0.0.0 | 16M | 8 | 24 |
| /16 | 255.255.0.0 | 65K | 16 | 16 |
| /24 | 255.255.255.0 | 254 | 24 | 8 |
| /25 | 255.255.255.128 | 126 | 25 | 7 |
| /26 | 255.255.255.192 | 62 | 26 | 6 |
| /27 | 255.255.255.224 | 30 | 27 | 5 |
| /28 | 255.255.255.240 | 14 | 28 | 4 |
| /30 | 255.255.255.252 | 2 | 30 | 2 |
| /32 | 255.255.255.255 | 1 | 32 | 0 |
Subnetting
Subnetting divides a network into smaller sub-networks.
Example: Subnet 192.168.1.0/24 into 4 equal subnets
Determine new prefix:
- Need 4 subnets = 2^2, so borrow 2 bits
- New prefix: /24 + 2 = /26
Calculate subnet mask:
- /26 = 255.255.255.192
Determine subnet size:
- Host bits: 32 - 26 = 6 bits
- Hosts per subnet: 2^6 - 2 = 62
List subnets:
Subnet 1: 192.168.1.0/26
Network: 192.168.1.0
First Host: 192.168.1.1
Last Host: 192.168.1.62
Broadcast: 192.168.1.63
Subnet 2: 192.168.1.64/26
Network: 192.168.1.64
First Host: 192.168.1.65
Last Host: 192.168.1.126
Broadcast: 192.168.1.127
Subnet 3: 192.168.1.128/26
Network: 192.168.1.128
First Host: 192.168.1.129
Last Host: 192.168.1.190
Broadcast: 192.168.1.191
Subnet 4: 192.168.1.192/26
Network: 192.168.1.192
First Host: 192.168.1.193
Last Host: 192.168.1.254
Broadcast: 192.168.1.255
Subnetting Quick Reference
Formula: Number of subnets = 2^n (where n = borrowed bits) Formula: Hosts per subnet = 2^h - 2 (where h = host bits, -2 for network and broadcast)
IPv6 Addressing
IPv6 was developed to address IPv4 address exhaustion.
Key Features:
- 128-bit addresses
- Address space: 2^128 ≈ 340 undecillion addresses
- No need for NAT
- Built-in security (IPsec)
- Simplified header format
- Better support for mobile devices
Format: Eight groups of four hexadecimal digits separated by colons
Full IPv6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
Compressed: 2001:0db8:85a3::8a2e:0370:7334
Compression Rules:
- Leading zeros in each group can be omitted
- One sequence of consecutive zeros can be replaced with
::
IPv6 Address Types:
Unicast: Single interface
- Global Unicast: 2000::/3 (Internet routable)
- Link-Local: fe80::/10 (Not routable, local segment only)
- Unique Local: fc00::/7 (Private networks)
Multicast: Multiple interfaces (ff00::/8)
Anycast: Nearest of multiple interfaces
Special Addresses:
::1- Loopback (equivalent to 127.0.0.1)::- Unspecified address::ffff:192.168.1.1- IPv4-mapped IPv6
IP Packet Structure (IPv4)
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source IP Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination IP Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Key Fields:
- Version: IP version (4)
- TTL (Time to Live): Prevents infinite loops, decremented at each hop
- Protocol: Upper layer protocol (6=TCP, 17=UDP)
- Source/Destination IP: Addresses
Transport Layer Protocols
The transport layer provides end-to-end communication services.
TCP (Transmission Control Protocol)
Characteristics:
- Connection-oriented: Establishes connection before data transfer
- Reliable: Guarantees delivery through acknowledgments
- Ordered: Data arrives in order sent
- Flow control: Prevents overwhelming receiver
- Error checking: Detects and retransmits corrupted data
- Full-duplex: Simultaneous two-way communication
Use Cases:
- Web browsing (HTTP/HTTPS)
- Email (SMTP, POP3, IMAP)
- File transfer (FTP, SFTP)
- Remote access (SSH, Telnet)
TCP Segment Structure
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Acknowledgment Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data | |C|E|U|A|P|R|S|F| |
| Offset| Rsrvd |W|C|R|C|S|S|Y|I| Window |
| | |R|E|G|K|H|T|N|N| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | Urgent Pointer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Key Fields:
- Sequence Number: Byte number of first data byte
- Acknowledgment Number: Next expected byte
- Flags: SYN, ACK, FIN, RST, PSH, URG
- Window: Flow control, receiver's buffer size
TCP Three-Way Handshake
The TCP connection establishment process:
Client Server
| |
| SYN (seq=100) |
|------------------------------------>|
| |
| SYN-ACK (seq=300, |
| ack=101) |
|<------------------------------------|
| |
| ACK (seq=101, ack=301) |
|------------------------------------>|
| |
| Connection Established |
|<===================================>|
Step 1: SYN
- Client sends SYN packet with initial sequence number (e.g., 100)
- SYN flag set to 1
Step 2: SYN-ACK
- Server responds with SYN-ACK
- Acknowledges client's sequence number (ack=101)
- Sends its own sequence number (seq=300)
- SYN and ACK flags set to 1
Step 3: ACK
- Client sends ACK
- Acknowledges server's sequence number (ack=301)
- ACK flag set to 1
- Connection established, data transfer can begin
TCP Connection Termination (Four-Way Handshake)
Client Server
| |
| FIN (seq=500) |
|------------------------------------>|
| |
| ACK (ack=501) |
|<------------------------------------|
| |
| FIN (seq=800) |
|<------------------------------------|
| |
| ACK (ack=801) |
|------------------------------------>|
| |
| Connection Closed |
Alternative: Sometimes combined into three steps if server sends FIN+ACK together.
TCP Flow Control: Sliding Window
TCP uses a sliding window for flow control:
Sender's Window:
┌─────────────────────────────────────┐
│ Sent & ACKed │ Sent, Not ACKed │ Can Send │ Cannot Send Yet │
└─────────────────────────────────────┘
↑ ↑
Window Start Window End
Process:
- Receiver advertises window size (available buffer space)
- Sender can send data up to window size without waiting for ACK
- As ACKs arrive, window slides forward
- If receiver's buffer fills, window size = 0 (sender must wait)
UDP (User Datagram Protocol)
Characteristics:
- Connectionless: No connection setup
- Unreliable: No delivery guarantee
- Unordered: Packets may arrive out of order
- No flow control: Sends at any rate
- Lightweight: Minimal overhead (8-byte header)
- Fast: Lower latency than TCP
Use Cases:
- Video streaming
- VoIP (Voice over IP)
- Online gaming
- DNS queries
- DHCP
- Broadcasting/multicasting
UDP Datagram Structure
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Much simpler than TCP!
TCP vs UDP Comparison
| Feature | TCP | UDP |
|---|---|---|
| Connection | Connection-oriented | Connectionless |
| Reliability | Reliable | Unreliable |
| Ordering | Ordered | Unordered |
| Speed | Slower (overhead) | Faster |
| Header Size | 20-60 bytes | 8 bytes |
| Flow Control | Yes | No |
| Error Checking | Yes, with retransmit | Yes, but no retransmit |
| Broadcasting | No | Yes |
| Use Case | Accuracy critical | Speed critical |
Choosing Between TCP and UDP:
Need reliability? ──Yes──> TCP
│
No
│
▼
Need speed? ──Yes──> UDP
│
No
│
▼
Probably TCP
Port Numbers
Ports identify specific applications or services on a device.
Port Number Ranges
Well-Known Ports (0-1023):
Reserved for common services
Requires administrative privileges
Registered Ports (1024-49151):
Assigned to specific services by IANA
Can be used by regular applications
Dynamic/Private Ports (49152-65535):
Temporary ports for client connections
Ephemeral ports
Common Well-Known Ports
| Port | Protocol | Service |
|---|---|---|
| 20 | TCP | FTP Data Transfer |
| 21 | TCP | FTP Control |
| 22 | TCP | SSH (Secure Shell) |
| 23 | TCP | Telnet |
| 25 | TCP | SMTP (Email Sending) |
| 53 | TCP/UDP | DNS (Domain Name System) |
| 67 | UDP | DHCP Server |
| 68 | UDP | DHCP Client |
| 69 | UDP | TFTP (Trivial FTP) |
| 80 | TCP | HTTP (Web) |
| 110 | TCP | POP3 (Email Retrieval) |
| 123 | UDP | NTP (Network Time Protocol) |
| 143 | TCP | IMAP (Email Retrieval) |
| 161 | UDP | SNMP (Network Management) |
| 443 | TCP | HTTPS (Secure Web) |
| 445 | TCP | SMB (File Sharing) |
| 3306 | TCP | MySQL Database |
| 3389 | TCP | RDP (Remote Desktop) |
| 5432 | TCP | PostgreSQL Database |
| 8080 | TCP | HTTP Alternate/Proxy |
Socket Addressing
A socket uniquely identifies a network endpoint:
Socket = IP Address + Port Number
Examples:
192.168.1.100:80 (Web server)
10.0.0.5:22 (SSH server)
172.16.0.10:3306 (MySQL server)
A connection is defined by a 5-tuple:
- Protocol (TCP/UDP)
- Source IP
- Source Port
- Destination IP
- Destination Port
Example: TCP 192.168.1.100:52000 → 93.184.216.34:443
ICMP (Internet Control Message Protocol)
ICMP is used for diagnostic and error reporting.
Common ICMP Messages:
| Type | Message | Use |
|---|---|---|
| 0 | Echo Reply | Ping response |
| 3 | Destination Unreachable | Host/port unreachable |
| 5 | Redirect | Route optimization |
| 8 | Echo Request | Ping request |
| 11 | Time Exceeded | TTL expired (traceroute) |
Ping Example
Client Server (8.8.8.8)
| |
| ICMP Echo Request (Type 8) |
|---------------------------------->|
| |
| ICMP Echo Reply (Type 0) |
|<----------------------------------|
| |
Output:
64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=15.4 ms
Traceroute Example
Traceroute uses TTL to discover route:
1st Packet: TTL=1
→ 1st router decrements to 0
→ Sends ICMP Time Exceeded
→ Client learns 1st hop
2nd Packet: TTL=2
→ Passes 1st router (TTL=1)
→ 2nd router decrements to 0
→ Sends ICMP Time Exceeded
→ Client learns 2nd hop
...continues until destination reached
ARP (Address Resolution Protocol)
ARP resolves IP addresses to MAC addresses on a local network.
ARP Process
Computer A wants to send to 192.168.1.5 but doesn't know its MAC:
1. Computer A broadcasts ARP Request:
"Who has 192.168.1.5? Tell 192.168.1.2"
[ARP Request - Broadcast]
Src MAC: AA:BB:CC:DD:EE:01
Dst MAC: FF:FF:FF:FF:FF:FF (broadcast)
Src IP: 192.168.1.2
Dst IP: 192.168.1.5
2. Computer with 192.168.1.5 replies:
"192.168.1.5 is at 11:22:33:44:55:66"
[ARP Reply - Unicast]
Src MAC: 11:22:33:44:55:66
Dst MAC: AA:BB:CC:DD:EE:01
Src IP: 192.168.1.5
Dst IP: 192.168.1.2
3. Computer A caches the MAC address in ARP table
ARP Table Example
IP Address MAC Address Type
192.168.1.1 00:0a:95:9d:68:16 dynamic
192.168.1.5 11:22:33:44:55:66 dynamic
192.168.1.10 aa:bb:cc:dd:ee:ff static
NAT (Network Address Translation)
NAT allows multiple devices on a private network to share a single public IP.
NAT Translation Example
Private Network (192.168.1.0/24)
|
| Computer 192.168.1.100:52000 → Internet
|
[NAT Router]
| Public IP: 203.0.113.5
| Translates to: 203.0.113.5:60000 → Internet
|
Internet
NAT Table:
┌──────────────────────┬─────────────────────┐
│ Private │ Public │
├──────────────────────┼─────────────────────┤
│ 192.168.1.100:52000 │ 203.0.113.5:60000 │
│ 192.168.1.101:52001 │ 203.0.113.5:60001 │
│ 192.168.1.102:52002 │ 203.0.113.5:60002 │
└──────────────────────┴─────────────────────┘
Benefits:
- IP address conservation
- Security (hides internal network)
- Flexibility (change ISP without renumbering)
Drawbacks:
- Breaks end-to-end connectivity
- Complicates peer-to-peer applications
- NAT traversal needed for some services
Routing
Routing is the process of selecting paths for data across networks.
Routing Table Example
Destination Gateway Genmask Iface
0.0.0.0 192.168.1.1 0.0.0.0 eth0 (Default route)
192.168.1.0 0.0.0.0 255.255.255.0 eth0 (Direct)
10.0.0.0 192.168.1.50 255.0.0.0 eth0 (Static)
172.16.0.0 192.168.1.51 255.240.0.0 eth0 (Static)
Longest Prefix Match: Router chooses most specific route.
Example: Packet destined for 192.168.1.100
- Matches 192.168.1.0/24 (24 bits)
- Matches 0.0.0.0/0 (0 bits)
- Chooses 192.168.1.0/24 (longer prefix)
Exercises
Basic Exercises
IP Address Conversion: Convert the following:
- a) 192.168.1.1 to binary
- b) 11000000.10101000.00000001.00001010 to decimal
- c) What class is 172.16.5.10?
Subnet Identification: For the IP address 10.50.100.25/16:
- a) What is the subnet mask?
- b) What is the network address?
- c) What is the broadcast address?
- d) How many usable hosts?
TCP vs UDP: For each application, choose TCP or UDP and explain why:
- a) Video conferencing
- b) File download
- c) DNS query
- d) Email sending
Port Identification: What service typically uses these ports?
- a) 80
- b) 443
- c) 22
- d) 3306
Intermediate Exercises
Subnetting Problem: You have network 172.16.0.0/16. Create 8 equal subnets.
- a) What is the new subnet mask?
- b) What is the CIDR notation?
- c) List all 8 network addresses
- d) How many hosts per subnet?
Three-Way Handshake: Draw and label a TCP three-way handshake where:
- Client initial sequence number: 1000
- Server initial sequence number: 5000
- Show all flags and sequence/acknowledgment numbers
CIDR Calculation: How many /24 networks can fit in a /20 network? Show your work.
Private vs Public: Identify whether these addresses are public or private:
- a) 192.168.5.10
- b) 8.8.8.8
- c) 172.20.10.5
- d) 10.255.255.255
- e) 172.32.1.1
Advanced Exercises
Complex Subnetting: Design a subnet scheme for a company with:
- Building A: Needs 500 hosts
- Building B: Needs 200 hosts
- Building C: Needs 50 hosts
- 3 point-to-point links between buildings (2 hosts each)
- Starting with 192.168.0.0/16
- Minimize address waste using VLSM (Variable Length Subnet Mask)
Routing Analysis: Given this routing table, determine the outgoing interface for each destination:
Network Gateway Interface
10.0.0.0/8 0.0.0.0 eth0
172.16.32.0/19 0.0.0.0 eth1
192.168.1.0/24 172.16.32.1 eth1
0.0.0.0/0 10.0.0.1 eth0
Destinations to route:
a) 10.5.10.50
b) 172.16.40.100
c) 192.168.1.50
d) 8.8.8.8
e) 172.16.20.5
TCP Sequence Numbers: A TCP connection has:
- Client ISN: 1000
- Server ISN: 5000
- Client sends 500 bytes
- Server sends 800 bytes
- Client sends another 300 bytes
Show the sequence and acknowledgment numbers for each segment.
IPv6 Address Manipulation:
- a) Compress: 2001:0db8:0000:0000:0000:ff00:0042:8329
- b) Expand: fe80::1
- c) Identify the address type of: ff02::1
Network Design: Design a network addressing scheme for:
- 4 departments, each needing their own subnet
- Department sizes: 60, 30, 20, 10 hosts
- Use 10.0.0.0/24
- Minimize waste with VLSM
- Include network, first host, last host, and broadcast for each subnet
Summary
In this reading, we explored the TCP/IP protocol suite in depth:
- IP Addressing: IPv4 uses 32-bit addresses in dotted decimal notation; IPv6 uses 128-bit addresses to solve address exhaustion
- Subnetting: Divides networks into smaller segments using subnet masks and CIDR notation
- TCP: Connection-oriented, reliable protocol with three-way handshake, flow control, and ordered delivery
- UDP: Connectionless, unreliable protocol with minimal overhead, ideal for speed-critical applications
- Port Numbers: Identify specific services (0-1023 well-known, 1024-49151 registered, 49152-65535 dynamic)
- ICMP: Diagnostic protocol used by ping and traceroute
- ARP: Resolves IP addresses to MAC addresses on local networks
- NAT: Allows multiple private IP addresses to share a single public IP
- Routing: Directs packets across networks using routing tables
The TCP/IP suite is the foundation of Internet communication, providing the protocols necessary for devices worldwide to exchange data reliably and efficiently.
Key Takeaways
- IPv4 addresses are running out; IPv6 provides a massive address space
- CIDR notation (/24, /16, etc.) is more flexible than classful addressing
- TCP provides reliability at the cost of speed; UDP provides speed at the cost of reliability
- The three-way handshake establishes TCP connections reliably
- Port numbers allow multiple services to run on a single IP address
- NAT enables IP address conservation but complicates some applications
- Understanding subnetting is essential for network design and troubleshooting
Next Steps
Now that you understand the TCP/IP protocol suite, you're ready to explore application layer protocols. In the next reading, we'll cover:
- HTTP and HTTPS for web communication
- DNS for domain name resolution
- Email protocols (SMTP, POP3, IMAP)
- FTP for file transfer
- REST APIs and modern web services
Continue to: 03-application-layer.md
Additional Resources
- RFC 791: Internet Protocol (IPv4)
- RFC 793: Transmission Control Protocol
- RFC 768: User Datagram Protocol
- RFC 8200: Internet Protocol, Version 6 (IPv6)
- RFC 1918: Address Allocation for Private Internets
- Subnet calculator tools (online)
- Wireshark for packet analysis
This reading is part of Module 8: Networking