📌 Chapter 1: Foundation – Key Points
1. Problem: Building a Network
o Goal: Build a network that can grow to global scale.
o Must support diverse applications:
Teleconferencing
Video on demand
E-commerce
Distributed computing
Digital libraries
o Questions:
What technologies should be used as building blocks?
What software architecture integrates them into an effective
communication service?
2. Definition of a Computer Network
o Earlier: "Network" = set of serial lines attaching dumb terminals to mainframes.
o Other networks:
Telephone networks (voice).
Cable TV networks (video).
o These specialized networks:
Handle only one kind of data (keystrokes, voice, or video).
Connect to special-purpose devices (phones, TVs, terminals).
3. How Computer Networks Differ
o Built mainly from general-purpose programmable hardware.
o Not limited to a single application (e.g., phone calls, TV signals).
o Can support a wide range of applications (e.g., email, web, file sharing, video
conferencing).
o Applications are implemented by software, not fixed hardware.
4. Today’s Trend
o Increasing number of applications depend on networks.
o Networks must handle:
Different functionalities.
Different performance requirements.
o Importance of network architecture:
5.
Identifies available hardware and software components.
Defines how they form a complete system.
5. Beyond Building: Operating & Managing Networks
o Important to understand how networks are used and managed, not just built.
o Networks exist in:
Homes, offices, even cars.
o Operating networks is no longer limited to specialists.
o New generation of programmable, network-attached devices enables rapid
application development.
6. Perspectives to Consider
o Networks should be studied from viewpoints of:
Builders (design & architecture).
Operators (management & maintenance).
Application developers (software that runs on networks).
7. Chapter Roadmap
o Four main goals of this chapter:
1. Explore requirements of different applications & communities using
networks.
2. Introduce the idea of network architecture (foundation for the book).
3. Introduce key elements of network implementation.
4. Identify key metrics used to evaluate performance of networks.
Applications of Computer Networks
Computer networks are the backbone of modern communication and data exchange. Their
applications span across industries, technologies, and daily life. Here's a breakdown:
🏢 1. Business & Enterprise Applications
Email & Messaging: Enables fast internal and external communication.
File Sharing: Centralized access to documents and resources.
Cloud Computing: Access to remote servers for storage, processing, and services.
Remote Work: VPNs and collaboration tools allow employees to work from anywhere.
Enterprise Resource Planning (ERP): Integrates business processes across
departments.
2. Education & Research
E-learning Platforms: Online courses, virtual classrooms, and digital libraries.
Research Collaboration: Sharing datasets, simulations, and publications globally.
Access to Resources: Students and researchers can access journals, tools, and software
remotely.
🏥 3. Healthcare
Telemedicine: Remote diagnosis and consultations via video conferencing.
Electronic Health Records (EHR): Centralized patient data accessible across hospitals.
Medical Imaging & Data Transfer: Fast sharing of scans and test results between
specialists.
🛒 4. E-commerce & Online Services
Online Shopping: Platforms like Amazon, Flipkart rely on robust networks.
Payment Gateways: Secure transactions over encrypted networks.
Customer Support: Chatbots and helpdesks operate over networked systems.
📺 5. Entertainment & Media
Streaming Services: Netflix, YouTube, Spotify use high-bandwidth networks.
Online Gaming: Real-time multiplayer games depend on low-latency connections.
Digital Content Delivery: News, podcasts, and media are distributed globally.
🚦 6. Government & Public Services
E-Governance: Online portals for taxes, voting, and citizen services.
Surveillance & Security: CCTV and monitoring systems connected via networks.
Disaster Management: Real-time data sharing during emergencies.
📱 7. Personal Use
Social Networking: Platforms like WhatsApp, Instagram, and Facebook.
Smart Homes: IoT devices like smart lights, thermostats, and security systems.
Cloud Storage: Services like Google Drive and OneDrive for personal data.
🚀 8. Industrial & Engineering Applications
SCADA Systems: Supervisory control and data acquisition in manufacturing.
Sensor Networks: Used in energy systems, including micro gas turbines.
Remote Monitoring: Real-time tracking of equipment performance and diagnostics
📌 1.2 Requirements
Networks should be studied from first principles, not by copying existing systems.
Method
oAt each step, use today’s protocols to illustrate design choices.
oDo not treat existing systems as the only way (not “gospel”).
oInstead, ask why networks are designed the way they are.
2. Reasoning
o Important to focus on underlying concepts, not just current implementations.
o Networks constantly evolve:
New technologies emerge.
New applications are invented.
o Understanding fundamentals makes it easier to learn/adapt to any new protocol in
the future.
3. Key Takeaway
o Once you know the core principles, any new network design or protocol will be
easier to understand and apply.
📌 1.2.1 Perspectives
Historical View – Earlier, Internet access was limited (universities, dial-up); focus was
mainly on protocol and equipment designers.
Today’s View – Still focus on design, but also includes application developers (building
apps) and operators (managing networks).
Importance –
Designers → efficiency, scalability, architecture.
Developers → required services for applications.
Operators → reliability, security, manageability.
📌 1.2.1 Perspectives – Requirements
Different groups view network requirements differently:
1. Application Programmer’s Requirements
o Needs services for applications.
o Examples:
Guarantee that each message is delivered without error and within a
certain time.
Ability to switch connections smoothly (mobility support).
o Focus: Reliability + Performance for applications.
2. Network Operator’s Requirements
o Needs a system that is easy to manage and administer.
o Examples:
Faults can be easily isolated.
New devices can be added or removed easily.
Easy configuration and usage accounting.
o Focus: Maintainability + Manageability.
3. Network Designer’s Requirements
o Needs the network to be cost-effective and fair.
o Examples:
Resources should be efficiently used.
Fair allocation of resources among users.
Performance issues like throughput, delay, utilization are important.
o Focus: Efficiency + Fairness + Performance.
📌 1.2.2 Scalable Connectivity
1. Need for Connectivity
A network must provide connectivity among a set of computers.
Some networks are limited (e.g., private corporate networks → limited access for
privacy/security).
Others (e.g., Internet) are designed to scale, i.e., grow to connect millions/billions of
computers.
\
2. Links, Nodes, and Clouds
Link → Physical medium (cable, fiber, wireless) connecting two/more computers.
Node → Device connected to the network (computer or special hardware).
Types of Links:
o Point-to-Point: One link connects exactly two nodes.
o Multiple-Access: One link is shared by multiple nodes (e.g., Wi-Fi, Ethernet).
3. Direct vs Indirect Connectivity
If all nodes had to be directly connected, it would be:
o Very costly.
o Hard to manage (too many wires).
Instead, indirect connectivity is used: Nodes cooperate to forward data for each other.
4. Switched Networks
Nodes that forward data form a switched network.
Two types:
1. Circuit Switched
Dedicated path established before communication.
Example: Telephone system.
2. Packet Switched (most common, used in Internet)
Data broken into packets.
Uses Store-and-Forward: Each node stores a packet, then forwards it to
next.
More efficient than circuit switching.
5. Cloud Representation
Networks are often drawn as a cloud:
o Inside the cloud: switches, routers (implement the network).
o Outside the cloud: hosts (users, computers running apps).
6. Internetworking (Interconnection of Networks)
Multiple networks (clouds) can be interconnected → internetwork / internet.
Router (or Gateway): Device that connects two or more networks.
The global Internet (capital I) = interconnection of many internetworks.
Scalability: By recursively interconnecting networks, very large networks can be built.
7. Addressing & Routing
To ensure host-to-host communication, each node must have an address (unique
identifier).
Routing: Process of forwarding messages toward destination based on address.
Types of addressing:
o Unicast → One-to-one communication.
o Broadcast → One-to-all communication.
o Multicast → One-to-many (specific group).
✅ So in short:
Scalability = Ability to grow a network to huge size.
Achieved via links, nodes, switched networks, internetworking, addressing, and
routing.
Cost-Effective Resource Sharing & Statistical Multiplexing
🌐 Packet Switching & Resource Sharing
Packet switching allows multiple hosts to share the same communication path.
Data is broken into packets, each with a header (source/destination info).
Packets from different sources are interleaved over shared links.
🔀 Multiplexing Techniques
Multiplexing = combining multiple data flows over a single physical link.
Two traditional methods:
o Time-Division Multiplexing (TDM): Each flow gets a fixed time slot.
o Frequency-Division Multiplexing (FDM): Each flow uses a distinct frequency.
⚠️Limitations of TDM & FDM
Inefficient when flows are idle:
o Time slots or frequencies go unused if a host has no data to send.
o Example: S3 must wait even if S1 and S2 are idle.
📊 Statistical Multiplexing
Dynamic bandwidth allocation based on demand.
No fixed time slots or frequencies—flows transmit when they have data.
Improves link utilization by avoiding idle periods.
Ideal for bursty or sporadic traffic, common in computer networks.
📦 Role of Packets
Packets enable flexible sharing of links.
Each packet carries routing info, allowing independent transmission.
Supports efficient and scalable communication across networks.
Notes: Statistical Multiplexing & Types of Networks
🔄 Statistical Multiplexing
Definition: A dynamic method of sharing network resources among multiple users.
Mechanism:
o Data is sent in packets, each with source/destination info.
o Packets are switched dynamically between flows based on availability.
Advantages:
o Efficient use of bandwidth — no fixed time slots or frequencies.
o Ideal for bursty traffic (common in computer communication).
Challenge:
o Congestion can occur if switch buffer space is exceeded.
🌐 Types of Networks
Network Type Description Scope
LAN (Local Area Network) Connects devices within a building or campus Small-scale
MAN (Metropolitan Area
Covers a city or metropolitan region Medium-scale
Network)
WAN (Wide Area Network) Connects multiple LANs across large distances Large-scale
Specialized network for data storage, used in High-performance
SAN (Storage Area Network)
data centers storage
📈 Trends & Evolution
Growing demand for high-performance networks due to:
o Rise of mobile devices
o Expansion of cloud computing
Network technologies are evolving to meet scalability and performance needs.
Notes: Network Services, Video Transmission & Reliability
🧩 Support for Common Services
Applications communicate over shared channels using standardized protocols.
Key services provided to applications:
o Message delivery
o Identification of communication patterns
o Routing and delivery guarantees
Examples of protocols:
o FTP (File Transfer Protocol)
o HTTP (HyperText Transfer Protocol)
Designing networked applications requires understanding:
o How processes interact
o How to ensure reliable and efficient communication
🎥 Video Data Transmission
🔄 Client-Server Communication
Video streaming often uses a client-server model.
Clients request video; servers deliver it in chunks or streams.
🧠 Challenges in Video Delivery
Message transmission delays
Network congestion
Maintaining privacy and integrity of video data
Solutions
Buffering: Temporarily stores video data to smooth playback.
Compression: Reduces data size for faster transmission.
Reliable delivery mechanisms: Ensure complete and ordered data arrival.
📚 Digital Libraries
Store and stream large volumes of video content.
Require efficient indexing, retrieval, and delivery systems.
🔧 Network Failures & Manageability
⚠️Handling Failures
Circuit-switched networks: Rigid paths; failure disrupts communication.
Packet-switched networks: Flexible routing; can reroute around failures.
🧭 Manageability (Section 1.2.5)
As networks grow, management becomes critical:
o Configuration
o Monitoring
o Troubleshooting
Requires specialized tools and protocols (explored further in Chapter 9).
💡 Key Insight
“Defining and studying computer networks requires looking at many different aspects—from
transmission technology to applications.”
Detailed Notes: Network Performance Metrics
1. Latency
Definition: Latency is the total time it takes for a message to travel from the sender to the
receiver across a network.
Components of Latency:
Propagation Delay: Time for the signal to travel through the medium (e.g., fiber,
copper).
Transmission Delay: Time to push all bits of the message onto the wire.
Queuing Delay: Time the message waits in buffers or queues before being transmitted.
Formula:
plaintext
Latency = Propagation + Transmission + Queuing
Example:
A client sends a 1-byte message to a server.
Latency = 1 second (fixed delay)
Server responds with 1000 bytes over a 1 Mbps link:
o Transmission time = (1000 × 8) / 1,000,000 = 0.008 seconds
o Total time = 1 + 0.008 = 1.008 seconds
Impact:
High latency = slow response time, even if bandwidth is high.
Reducing latency improves responsiveness, especially for real-time apps.
📶 2. Bandwidth
Definition: Bandwidth is the maximum amount of data that can be transmitted over a network
in a given time.
Units:
Mbps (Megabits per second)
MBps (Megabytes per second) → 1 MBps = 8 Mbps
Example:
A 25 Mbps link can transmit 25 million bits per second.
To send a 1 MB file:
o 1 MB = 8 Mb → Time = 8 / 25 = 0.32 seconds
📊 3. Throughput
Definition: Throughput is the actual amount of data successfully transmitted over the
network.
Difference from Bandwidth:
Bandwidth = theoretical maximum
Throughput = real-world performance (affected by congestion, packet loss, protocol
overhead)
Example:
Network bandwidth = 100 Mbps
Actual data transferred = 80 Mbps → Throughput = 80 Mbps
🔁 4. Delay × Bandwidth Product
Definition: This metric tells us how much data can be in transit ("in flight") at any moment in
the network.
Formula:
plaintext
Delay × Bandwidth Product = Delay (sec) × Bandwidth (bits/sec)
Analogy: Think of the network as a pipe:
Bandwidth = diameter (how much data can flow at once)
Delay = length (how long it takes to travel)
Product = volume of data inside the pipe
Example:
RTT (Round Trip Time) = 100 ms = 0.1 sec
Bandwidth = 1 Gbps = 1 × 10⁹ bits/sec
Product = 0.1 × 1 × 10⁹ = 100,000,000 bits = 12.5 MB
This means 12.5 MB of data can be in transit before the first bit arrives.
📈 5. Graph Insight (FIGURE 1.17)
Shows how message size and bandwidth affect delay.
For a fixed latency (e.g., 100 ms), increasing bandwidth reduces transmission time.
Larger messages take longer unless bandwidth is high.
🧠 Why These Metrics Matter
Helps design efficient networks for different applications:
o Video streaming → needs high throughput
o Online gaming → needs low latency
o Cloud services → need high bandwidth and low delay
Determines buffer sizes, protocol behavior (e.g., TCP window size), and overall user
experience.
Chapter 2: Getting Connected — Detailed Notes
🔗 2.1 Perspectives on Connecting
🌍 Physical vs. Virtual Connectivity
Physical connections: Tangible links like cables, routers, and wireless signals.
Virtual connections: Logical or abstract links between applications or services.
Connectivity is not just about wires—it's about enabling communication between
entities (people, devices, services).
🔄 Hyperconnectivity
Refers to the dense and diverse interconnection of people, places, and services.
Enabled by technologies like:
o Internet cafés
o Roaming services
o Cloud platforms
o Hotels and public access points
📊 Diagram (FIGURE 2.1: Network Technology)
Visualizes how various nodes (e.g., hotels, cafés, cloud) are interconnected.
Emphasizes the ubiquity of network access in modern life.
📡 Link Capacity & Shannon-Hartley Theorem
📐 Link Capacity
The maximum data rate a communication link can support.
Influenced by:
o Bandwidth (B)
o Signal-to-noise ratio (S/N)
🧮 Shannon-Hartley Theorem
Formula: $$C = B \log_2(1 + \frac{S}{N})$$ Where:
o CC = Channel capacity (bits/sec)
o BB = Bandwidth (Hz)
o S/NS/N = Signal-to-noise ratio
📈 SNR in Decibels
Expressed as: $$10 \log_{10}(S/N) \text{ dB}$$
Example:
o SNR = 30 dB → S/N=1000S/N = 1000
o Then: $$C = B \log_2(1 + 1000) \approx 10B$$
o A 1 MHz channel → up to 10 Mbps
⚠️Practical Considerations
Actual data rate depends on:
o Modulation and coding schemes
o Transmission power
o Distance and medium characteristics
Wireless links often have lower SNR due to interference and attenuation.
🔗 2.11 Classes of Links
Links vary by:
o Usage (e.g., home, enterprise, mobile)
o Medium (wired, wireless)
o Performance (bandwidth, latency)
Understanding link types helps in network design and optimization.
🌈 Electromagnetic Spectrum
📊 Diagram (FIGURE 2.2)
Shows frequency range from 10310^3 Hz to 102410^{24} Hz.
Wavelength range from 10410^4 m to 10−1610^{-16} m.
📡 Types of Waves
Wave Type Frequency Range Wavelength Range
Radio ~10³–10⁶ Hz ~10⁴–10² m
Microwave ~10⁶–10⁹ Hz ~10²–10⁻² m
Infrared ~10⁹–10¹² Hz ~10⁻²–10⁻⁵ m
Visible Light ~10¹⁴–10¹⁵ Hz ~10⁻⁶ m
Ultraviolet ~10¹⁵–10¹⁷ Hz ~10⁻⁷–10⁻⁸ m
X-rays ~10¹⁷–10¹⁹ Hz ~10⁻⁹–10⁻¹¹ m
Gamma Rays ~10¹⁹–10²⁴ Hz ~10⁻¹²–10⁻¹⁶ m
📶 Frequency & Wavelength Relationship
Higher frequency → shorter wavelength
Determines signal behavior, penetration, and data capacity
🏠 Table 2.1: Common Services to Connect Your Home
Service Bandwidth Typical Usage
Telephone (analog) 4 kHz Voice
DSL 1 MHz Internet
Cable Modem 1 GHz Internet, TV
Fiber 10 GHz Internet, TV, Voice
📌 Observations
Higher bandwidth = more data capacity
Fiber offers the highest performance for multi-service delivery
Bandwidth needs vary by application (e.g., streaming vs. browsing)
Notes: Concurrent Logical Channels
📌 Concept Overview
Concurrent logical channels allow multiple independent conversations to occur
simultaneously over a single physical communication link.
This technique was notably used in the ARPANET protocol.
🧠 How It Works
Each logical channel is assigned a unique identifier (channel number).
The sender tags each message with the appropriate channel number.
The receiver uses this number to route the message to the correct application or process.
🎯 Benefits
Enables multiplexing of multiple applications over one physical connection.
Supports parallel communication without interference.
Improves resource utilization and efficiency in network communication.
🧪 Example Use Case
A host running multiple applications (e.g., email, file transfer, remote login) can
communicate with different remote services simultaneously using logical channels.
Each application’s data is kept separate and correctly routed using channel identifiers.
📌 Protocol Layering
1. What is Protocol Layering?
Protocol layering is a design principle used in computer networks.
The idea:
o Break the complex task of communication into smaller, manageable layers.
o Each layer has a specific function.
o Each layer provides services to the layer above it and uses services from the layer
below.
👉 Example: Just like in a company —
Worker (Physical work),
Supervisor (Controls workers),
Manager (Plans work),
Director (Makes business decisions).
2. Why Use Layers?
Modularity → Easy to design, test, and upgrade.
Interoperability → Different vendors’ devices can communicate (as long as they follow
standard protocols).
Abstraction → Each layer focuses only on its task, without worrying about how other
layers work.
3. Basic Layering Principles
1. A layer should perform a well-defined function.
2. The function should be chosen with an eye to international standards.
3. The boundaries between layers should be chosen to minimize information flow across
the interface.
4. The number of layers should be large enough to separate different functions but small
enough to keep architecture practical.
4. Protocol Layering Models
(A) OSI Reference Model (7 Layers)
1. Application Layer → User services (HTTP, FTP, Email, DNS).
2. Presentation Layer → Data translation, encryption, compression.
3. Session Layer → Manage sessions (start, maintain, end communication).
4. Transport Layer → End-to-end delivery (TCP, UDP).
5. Network Layer → Logical addressing & routing (IP).
6. Data Link Layer → Error detection, frame delivery (Ethernet, Wi-Fi).
7. Physical Layer → Transmission of raw bits (cables, signals).
(B) TCP/IP Model (4 Layers)
1. Application Layer → HTTP, SMTP, FTP.
2. Transport Layer → TCP, UDP.
3. Internet Layer → IP, ICMP.
4. Network Access (Link) Layer → Ethernet, Wi-Fi, PPP.
👉 TCP/IP is practical and widely used; OSI is theoretical but good for learning.
5. Encapsulation & Decapsulation
When data is sent:
o Each layer adds its own header (encapsulation).
o Example: Application data → TCP header → IP header → Ethernet header →
Physical bits.
When received:
o Each layer removes its header (decapsulation).
6. Real-Life Example (Web Browsing - HTTP over TCP/IP)
1. Application Layer → Browser sends HTTP request.
2. Transport Layer → TCP ensures reliable delivery.
3. Internet Layer → IP finds the path to the server.
4. Link Layer → Ethernet/Wi-Fi sends it as frames.
5. Physical Layer → Converts frames into electrical/optical/radio signals.
✅ In summary:
Protocol layering = breaking networking into layers of protocols → Each handles a specific job,
making networks scalable, modular, and interoperable.
📌 Reliable Transmission
When sending data over a network, errors and losses can happen.
Reliable protocols ensure:
No data loss
No duplication
In-order delivery
Two main techniques: Stop-and-Wait and Sliding Window.
1️⃣ Stop-and-Wait Protocol
Working:
Sender sends one frame at a time.
Waits for an ACK (Acknowledgment) from receiver before sending the next frame.
If ACK not received within timeout → retransmit the frame.
Features:
Simple and easy to implement.
Works well for small networks.
Problems:
Low efficiency – Sender stays idle while waiting.
Wastes bandwidth, especially if propagation delay is high.
Example:
Sender: Frame 1 → wait → ACK 1 → Frame 2 → wait → ACK 2 → ...
2️⃣ Sliding Window Protocol
To improve efficiency, instead of sending one frame, sender can send multiple frames before
waiting for ACK.
Working:
Sender maintains a window of size N (number of unacknowledged frames it can send).
Receiver also has a window size (how many frames it can accept).
ACKs are cumulative (ACK 5 means all frames up to 5 received correctly).
Types:
(A) Go-Back-N (GBN)
Sender can send N frames without waiting.
If a frame is lost, all subsequent frames are resent from that frame onwards.
Receiver only accepts frames in order.
👉 Example: If frame 3 is lost, frames 3,4,5,… are resent.
(B) Selective Repeat (SR)
More efficient than GBN.
Sender retransmits only the lost frame (not all after it).
Receiver can accept frames out of order and buffers them until missing frames arrive.
👉 Example: If frame 3 is lost, only frame 3 is resent. Receiver can still keep frames 4,5.
Comparison:
Feature Stop-and-Wait Sliding Window (GBN) Sliding Window (SR)
Frames in flight 1 Up to N Up to N
Efficiency Low Higher Highest
Receiver requirement Simple Simple Complex (buffer needed)
Retransmission Every lost frame + wait All after lost frame Only lost frame
✅ Summary:
Stop-and-Wait → Simple but inefficient.
Sliding Window → Uses pipelining for higher efficiency.
o GBN: Resend all after error.
o SR: Resend only the lost frame (best but more complex).