Introduction to Computer Networking: Protocols, Architectures, and Layers
Chapter 1: Introduction to Computer Networks
Protocol
A protocol defines the format and order of messages exchanged between communicating entities, as well as the actions taken upon message transmission or reception. Key internet protocols include TCP and IP, collectively known as TCP/IP.
Internet
The Internet connects millions of devices, including traditional computers and increasingly, non-traditional devices like smartphones and IoT devices. These devices, called hosts or end systems, communicate through a network of communication links and packet switches.
Network Edge
The network edge encompasses activities within end systems, which host applications like web browsers and email clients. Hosts can be categorized as clients (e.g., PCs, smartphones) or servers (e.g., machines storing and distributing web pages).
Access Networks
Access networks connect end systems to the first router (edge router) on the path to other end systems. Examples include DSL, cable, FTTH, dial-up, and satellite.
Home Internet Access Options
DSL and cable are prevalent broadband residential access types. DSL utilizes existing telephone infrastructure, while cable leverages cable television infrastructure (often hybrid fiber coax or HFC).
Physical Media
Physical media transmit bits as electromagnetic waves or optical pulses. They can be guided (e.g., fiber optic cable) or unguided (e.g., wireless LAN). Common types include twisted-pair copper wire, coaxial cable, and fiber optic cable.
Packet vs. Circuit Switching
Packet Switching: Data is broken into packets and transmitted independently. Packets may experience queuing delays and potential loss due to congestion.
Circuit Switching: Resources are reserved for the entire communication session, guaranteeing a dedicated path but potentially underutilizing resources.
Delay, Loss, and Throughput in Packet-Switched Networks
Key delays include nodal processing delay, queuing delay, transmission delay, and propagation delay. Packet loss can occur due to full queues. Performance is measured in terms of delay and probability of packet loss.
Models/Layers
The Internet protocol stack has five layers: physical, link, network, transport, and application. Each layer provides specific services to the layer above.
Internet Model
The Internet protocol suite is the model and set of protocols used on the Internet.
OSI Model
The OSI model has seven layers, with the presentation and session layers being additions to the five layers found in the Internet model.
Chapter 2: Network Application Architectures
Client-Server Architecture
Servers are always-on hosts with permanent IP addresses, often located in data centers. Clients communicate with servers and may have intermittent connections and dynamic IP addresses.
Peer-to-Peer (P2P) Architecture
No always-on server; arbitrary end systems communicate directly. Peers connect intermittently and have changing IP addresses.
Transport Services
Transport services provide data integrity, timing, throughput, and security.
TCP and UDP
TCP (Transmission Control Protocol): Provides reliable, connection-oriented transport with flow control and congestion control.
UDP (User Datagram Protocol): Provides unreliable, connectionless transport without guarantees for reliability, timing, or throughput.
Application Layer Protocols
Examples include HTTP (for the web), FTP (for file transfer), SMTP (for email), and DNS (for domain name resolution).
Peer-to-Peer Applications
Examples include file distribution (BitTorrent), streaming (KanKan), and VoIP (Skype).
Chapter 3: The Transport Layer
Overview
The transport layer provides logical communication between processes, relying on and enhancing network layer services.
Multiplexing and Demultiplexing
Multiplexing combines data from multiple sockets at the sender, while demultiplexing directs received segments to the correct socket at the receiver.
Principles of Reliable Data Transfer
Reliable data transfer protocols ensure data integrity, order, and no loss, even over unreliable channels.
TCP
TCP is a reliable, connection-oriented protocol offering in-order byte stream delivery, flow control, and congestion control.