1.
Building a Network — Simple Definition:
Building a network involves connecting multiple devices (nodes) like computers, routers, and
switches so they can communicate and share resources efficiently.
Important Points:
• Decide the type of network (LAN, WAN, Internet).
• Choose the network hardware (routers, switches, cables).
• Assign IP addresses and manage naming (using DNS).
• Implement network management to monitor and control network health (using
SNMP).
• Ensure security, reliability, and scalability of the network.
• Provide support for services like email, web, and file sharing.
• Use protocols that allow devices to communicate properly.
2. Networking Requirements —
Reliable data transfer: Ensure data reaches the destination correctly and in order.
• Congestion control: Prevent network overload by managing traffic rates.
• Flow control: Avoid overwhelming a receiver by sending data at an appropriate rate.
• Efficient transmission: Make optimal use of network bandwidth.
• Timely delivery: For real-time applications, data must arrive with minimal delay.
• Error detection and correction: Identify and fix errors in data transmission.
• Fair resource allocation: Ensure all users get fair access to network resources.
• Scalability: Support growth in the number of users and devices.
• Compatibility: Support different devices and protocols working together.
3. Perspectives — Definition:
Perspectives refer to the different viewpoints or approaches taken by various stakeholders
(such as users, network operators, and protocol designers) when considering how networks
should be designed, managed, and used.
• Different stakeholders view network problems differently:
• Users focus on fast and reliable access to services.
• Network operators care about efficient use of resources and fairness.
• Protocol designers focus on mechanisms to achieve reliability, congestion
control, and scalability.
• Understanding multiple perspectives helps design better protocols and network
architectures.
• Strategies like congestion avoidance and reliable data transfer balance different
needs.
4. Scalable Connectivity — Definition:
Scalable connectivity means the ability of a network to grow and support a large number of
hosts and connections without performance degradation or excessive complexity.
• As networks grow, it's important that they can handle more devices without slowing
down or failing.
• Scalability requires efficient addressing, routing, and resource management.
• The network design must support adding new nodes easily and maintain
performance.
• Techniques like hierarchical addressing and distributed control help achieve scalable
connectivity.
1. Basic Connectivity
At its core, a network must connect multiple computers. Sometimes, a small private
network is enough, especially for security and privacy. But networks like the Internet are
built to scale and connect billions of devices across the globe.
2. Links and Nodes
• A link is the physical connection (like cables or wireless) between devices.
• A node is a device (like a computer or router) that connects to these links.
Links can be:
• Point-to-point: One link connects two nodes.
• Multiple-access: One link connects many nodes (e.g., Wi-Fi).
3. Indirect Connections
If every computer had to connect directly to every other one, it would be very expensive
and messy. Instead, indirect connectivity is used:
• Devices connect to a few others.
• Switches or routers forward data between devices.
• This forms a switched network.
4. Types of Switched Networks
• Circuit-switched: A dedicated path is made before communication (like telephone
systems).
• Packet-switched: Data is sent in packets, and each packet can take different paths.
This is more common in computer networks.
5. Store-and-Forward
In packet-switched networks, a node:
1. Receives the full packet.
2. Stores it in memory.
3. Forwards it to the next node.
This method increases efficiency compared to circuit switching.
6. The Network Cloud
• The cloud icon represents the network (links + switches).
• Inside the cloud: Switches (forward packets).
• Outside the cloud: Hosts (run user applications).
This structure helps simplify network diagrams.
7. Addressing and Routing
Each node must have a unique address to communicate.
• The sender uses the address to indicate where the message should go.
• If nodes are not directly connected, routers and switches use routing to decide the
best path.
8. Types of Communication
• Unicast: Message sent to one specific node.
• Broadcast: Message sent to all nodes in the network.
• Multicast: Message sent to a specific group of nodes.
A scalable network must support all these modes.
5. Cost-Effective Resource Sharing — Definition:
Cost-effective resource sharing means enabling multiple users or applications to share
network resources efficiently so that the network provides maximum benefit at minimum
cost.
n computer networks, it's important to let many users share the same network resources,
like cables or routers, without wasting them. This is known as cost-effective resource
sharing.
Instead of giving a separate connection to each user, the network uses a smart method
called multiplexing. This means many users can send their data through the same network
link by taking turns. It's like a timesharing system, where different users use the same
resource for short periods.
In packet-switched networks (like the Internet), data is broken into small pieces called
packets. These packets travel through the network independently. This technique allows
many users to share the same path without having to reserve it only for one user.
There are two types of multiplexing:
• Time Division Multiplexing (TDM) – each user gets a fixed time slot.
• Statistical Multiplexing – time slots are used only when data is ready to be sent,
which is more efficient.
In statistical multiplexing, packets from different users are sent one after another. The
network switches decide which packet to send next, based on availability. This method saves
cost and makes the best use of network resources.
However, if many packets come at once, the network can get congested (overloaded). That’s
why the system must also handle fair sharing and prevent congestion to work smoothly for
everyone.
So, cost-effective resource sharing is all about letting many users use the network at the
same time, in a smart way, without wasting bandwidth or money.
• Sharing resources like bandwidth, processing power, and storage reduces the overall
cost.
• Effective sharing avoids waste and improves utilization of network infrastructure.
• Network designs aim to provide access to resources without requiring dedicated,
expensive hardware for every user.
• Techniques include multiplexing, switching, and using protocols that support multiple
users efficiently.
• This ensures affordability and scalability while maintaining acceptable performance.
6. Support for Common Services — Definition:
Support for common services means the network provides basic, standardized functions and
protocols that are widely used by different applications and users to ensure interoperability
and ease of use.
Important Points:
• Networks offer foundational services like naming, directory services, email, and file
transfer.
• These services provide a uniform interface that helps different applications work
together.
• Common services reduce duplication of effort in application development.
• They enhance efficiency and support a broad range of user needs.
• Examples include DNS for naming, SMTP for email, and HTTP for web services.
7. Manageability — Definition:
Manageability refers to the network’s ability to be monitored, controlled, maintained, and
configured easily and efficiently by administrators.
Important Points:
• Networks must provide tools and protocols to assess their health and performance.
• Manageability helps detect faults, monitor traffic, and optimize resource use.
• It includes support for configuration changes, software updates, and security
management.
• Protocols like SNMP help achieve manageability by providing standardized access to
device data.
• Good manageability reduces downtime and maintenance costs.
8. Protocol Layering — Definition:
Protocol layering is a design approach where network functions are divided into layers, each
providing a specific service and interacting with the layers directly above and below [Link]
manage the complexity of computer networks, we use two key ideas: layering and protocols.
What is Layering?
Layering means dividing the network system into smaller, manageable parts called layers.
Each layer performs a specific task and communicates only with the layers directly above or
below it.
• The bottom layers deal with hardware and transmission of data.
• The top layers handle user applications and services.
Each layer provides a service to the layer above and uses the service of the layer below.
Advantages of layering:
1. Simplifies design – We can focus on one part without worrying about the whole
system.
2. Modularity – You can change or upgrade one layer without affecting the others.
What is a Protocol?
A protocol is a set of rules that define:
• How data is formatted
• How data is transmitted
• How two devices communicate
Each layer uses one or more protocols to perform its function.
For example:
• At the transport layer, TCP and UDP are protocols.
• At the application layer, HTTP, FTP, and SMTP are protocols.
Protocols work in pairs: each device in communication runs the same protocol at the same
layer to understand each other.
Encapsulation
When data is sent through the network, each layer adds its own header (control
information) to the data. This is called encapsulation.
At the receiving end, each layer removes its header and passes the remaining data to the
layer above.
Layer Example
In a simple layered system:
• Hardware transmits bits.
• One layer above that manages host-to-host connection.
• Another layer manages communication between applications (e.g., sending a file).
This structure lets complex communication happen in a simple, step-by-step way.
OSI Model (7 Layers)
The OSI model is a standard that divides networking into 7 layers:
1. Physical
2. Data Link
3. Network
4. Transport
5. Session
6. Presentation
7. Application
9. Performance — Definition:
Performance refers to how well a network operates, measured in terms of speed, reliability,
efficiency, and responsiveness.
• Key performance metrics include throughput (amount of data transferred per time),
delay (time it takes for data to travel), jitter (variation in delay), and packet loss.
• Good performance means fast and reliable communication with minimal errors.
• Network design must balance competing goals like high speed, low latency, and
fairness among users.
• Performance can be affected by congestion, hardware limitations, and protocol
efficiency.
• Monitoring and optimizing performance is critical to user experience and network
efficiency
10. Bandwidth — Definition:
Bandwidth is the maximum rate at which data can be transmitted over a network link,
usually measured in bits per second (bps).
Latency — Definition:
Latency is the time it takes for a data packet to travel from source to destination, often
measured in milliseconds (ms).
• Both bandwidth and latency impact overall network performance and user
experience.
• High bandwidth with high latency may still feel slow for real-time applications (like
gaming or video calls).
• Latency includes propagation delay, processing delay, queuing delay, and
transmission delay.
• Bandwidth determines how much data can be sent at once; higher bandwidth means
more data transfer capacity.
• Latency affects the delay users experience; lower latency means faster response
times.
• Latency = Propagation + Transmit + Queue
• Propagation = Distance/SpeedOfLight
• Transmit = Size/Bandwidth
11. Delay × Bandwidth Product — Definition:
The Delay × Bandwidth Product represents the amount of data (in bits) that can be in transit
in the network at any given time, calculated as the product of the network’s round-trip delay
and its bandwidth.
Important Points:
• It quantifies how much data “fills the pipe” during transmission.
• For example, a high bandwidth link with high delay can hold a large amount of data
in transit.
• This product is important for understanding the capacity of network buffers and
windows (such as TCP congestion window).
• It impacts how much data can be sent before waiting for acknowledgments, affecting
throughput.
• Optimizing protocols based on this value improves network efficiency and utilization.
• magine the network as a pipe:
o Latency is the length of the pipe.
o Bandwidth is the width of the pipe.
o The product of delay and bandwidth is the volume — i.e., how many bits
can "fit" in the pipe during transmission.
50 × 10−3 s × 45 × 106 bits/s
= 2.25 × 106 bits
12. Perspectives on Connecting — Definition:
Perspectives on Connecting refers to the different views and considerations involved in how
networks and devices are connected, including technological, economic, and user-
experience aspects.
Important Points:
• Different stakeholders such as users, network providers, and technology designers
have varying priorities and challenges.
• Users want reliable, fast, and easy connectivity.
• Providers focus on cost, scalability, and manageability.
• Technology designers aim for effective protocols and infrastructure.
• Understanding these perspectives helps in designing better and more adaptable
network solutions.
• The balance between performance, cost, and ease of use is crucial in network
connectivity.
13. Classes of Links — Definition:
Classes of links refer to the different types of communication links used in networks,
categorized based on their characteristics such as speed, distance, technology, and cost.\
Important Points:
• Links can vary in capacity (bandwidth), latency, and reliability.
• Examples include:
• Fiber optic links: High speed, long distance, high cost.
• Copper wires: Moderate speed, shorter distance, lower cost.
• Wireless links: Variable speed and range, flexible deployment.
• Satellite links: Long distance, higher latency, useful for remote areas.
• Choosing the right class of link depends on the application requirements and cost
constraints.
• Different link classes affect network design, performance, and scalability.
• SpeedOfLightInCopper ÷ Frequency
• = 2/3 × 3 × 108 ÷ 300
• = 667 × 103 meters
14. Reliable Transmission — Definition:
Reliable transmission is the process of ensuring that data sent from a source arrives correctly
and completely at the destination without errors or loss.
Important Points:
• It involves detecting errors caused by noise or interference.
• Errors are corrected through retransmissions or error-correcting codes.
• Techniques include acknowledgments (ACKs), checksums, and timeouts.
• Reliable transmission is essential for applications that require accurate data delivery.
• Protocols like TCP provide reliable transmission over unreliable networks.
15. Stop-and-Wait — Definition:
Stop-and-Wait is a simple reliable transmission protocol where the sender sends one data
packet and waits for an acknowledgment (ACK) from the receiver before sending the next
packet.
Important Points:
• After sending a packet, the sender stops and waits for an ACK before proceeding.
• If the ACK is not received within a timeout period, the sender retransmits the packet.
• This method ensures reliability but can be inefficient, especially in networks with
high latency, due to idle waiting times.
• Stop-and-Wait is simple to implement and useful for low-speed or short-distance
communication.
16. Sliding Window — Definition:
Sliding Window is a reliable transmission protocol where the sender can send multiple
packets before needing an acknowledgment, using a "window" that controls the number of
unacknowledged packets in transit.
Important Points:
• The sender maintains a window size that limits how many packets can be sent
without acknowledgment.
• As acknowledgments arrive, the window slides forward, allowing more packets to be
sent.
• This improves efficiency by keeping the pipeline full, especially in high-latency
networks.
• It helps manage flow control and error control.
• The receiver can also use a window to control how many packets it can accept at
once.
17. Concurrent Logical Channels — Definition:
Concurrent Logical Channels are multiple independent communication paths established
simultaneously over a single physical connection to enable parallel data streams between
devices.
Important Points:
• These channels allow different types of data or applications to communicate
concurrently without interference.
• Each logical channel operates independently, providing isolation and flexibility.
• They improve network efficiency by multiplexing several sessions over one physical
link.
• Common in protocols like TCP, where multiple connections coexist over a network.
• Support for concurrent logical channels is essential for modern multi-application
networking.