Computer Networking and the Internet: Design Issues


What is the importance of the computer networking and the Internet?
Applications: does it really make our lives easier? Potential uses: where is it heading to?

As computer networking engineers:
What do we need to know about networks issues? What do we do with these issues?

Some “Cool” Internet Appliances

World’s smallest web server

Web-enabled toaster + weather forecaster IP picture frame


Applications: Efficient Workflow
Security Server


Automation Manufacturer


Engineering Server

Process Server



Machine Machine Controller

Access to multiple sources
Minimize travel No 2nd party involvement

Paperless information entry
Status update Auditing Alerts

Computer Networking Components and Issues
(A Network Design Perspective)


Information, Computers, Networks
anything that can be represented in bits

Information can be infinitely replicable Computers can “manipulate” information Networks create “access” to information


Potential of networking:
Move bits everywhere, cheaply, and with desired performance characteristics Break the space barrier for information

Networks provide “connectivity”


What is “Connectivity” ? Direct or indirect access to every other node in the network Connectivity is the magic needed to communicate if you do not have a direct point-to-point physical link.
Tradeoff: Performance is worse than the case with true physical link!

Building Blocks
Links: coax cable, optical fiber, wireless, etc. Nodes: general-purpose workstations or devices

Direct Connectivity:
Point-to-point Multiple access
Node 1 Point-to-Point

Node 2

Node n

Bus 9

Indirect Connectivity
Switched networks
– Switches create temporary physical connections
E.g. Circuit-switched Telephone Network

– Routers create temporary logical connections
E.g. Packet-switched Internet

The Internet:
Best-effort (i.e.; no performance guarantees) Packet-by-packet delivery

A point-to-point physical link:
Always-connected Fixed bandwidth Fixed delay Zero-jitter



Point-to-Point Connectivity
Physical layer is, at least, needed for coding, modulation, etc. Link layer is needed only if the link is: Shared: needs framing, medium access control, multiplexing, etc. Unreliable: needs reliability techniques used sporadically and traffic can flood receivers: needs flow control mechanisms No need for protocol concepts like addressing, names, routers, hubs, forwarding, or filtering in point-to-point connections

Connecting N users Directly
Bus: broadcast, collisions, media access control Full mesh: Cost vs simplicity
... Bus

Full mesh

Address concept is needed if we want a specific receiver (or receivers) to consume the packet!

List of Design Problems (so far)
Topologies Framing Error control Flow control Multiple access
How to share a link?


How to build Scalable Networks?
Scaling: the system allows for an increase of a key parameter (e.g., the number of nodes), without severely compromising the resources.
Inefficiency limits scaling

Direct connectivity is inefficient & hence does not scale
Mesh: inefficient in terms of the number of links Bus: inefficient in terms of the bandwidth use

Filtering and Forwarding
Filtering: choosing a subset of elements from a set
Filtering is the key to efficiency & scaling

Forwarding: sending packets to a filtered subset of the links or nodes
Packet sent to one link or node improves efficiency

Solution: Build nodes that filter/forward and connect indirectly such as “switches” & “routers”


Connecting N Nodes Indirectly
Star: One-hop path from a node to any other node “Switch” S can filter and forward!
Reliability problem (single point of failure) Bandwidth problem (bottleneck at the switch) It may forward multiple packets in parallel for additional efficiency!



Connecting N Nodes Indirectly
Ring: each node is connected to two neighboring nodes forming a ring.
All nodes do “forwarding” and “filtering” Near-minimal number of links Reliability to link failure


Connecting Nodes Indirectly: Inter-Networks Inter-Network is a network of networks
E.g., the Internet … …


… …

The goal is to design the black box on the right 19

Inter-Networks: Networks of Networks
Internetworking involves two fundamental design problems: heterogeneity and scale
To handle heterogeneity: use translation, address & name resolution, fragmentation, etc. To handle scaling: use hierarchical addressing, routing, naming, address allocation, congestion control, etc.

Covered in more detail in “Internetworking” course


Additions to the Design Problem List
Switching, bridging, routing Reliability Fragmentation Naming, addressing Congestion control, traffic management


How to do system design? (Design Ideas)
Example Goal: Design an Inter-network Resources:
Computation: planning, analysis, etc. Time: project management, due dates, etc. Labor: team sizing, organizing, managing, etc. Space: location, size, dimensions, etc. Money: cost, budget analysis, investment, etc.

Design Rule: tradeoff cheaper resources against expensive ones to meet design goals
Life is all about compromising and optimizing

Building blocks: Multiplexing
Multiplexing = sharing resources
Trading time and space for money Cost: waiting time, buffer space & packet loss Gain: Money less overall system costs


Statistical Multiplexing
Reduce resource requirements by exploiting statistical knowledge of the system. E.g., average rate ≤ service rate ≤ peak rate If the service rate < the average rate, then the system becomes unstable!!
– First, design to ensure system stability!!

Then, for a stable multiplexed system:
• Gain = peak rate/service rate. • Cost: buffering, queuing delays, and data loss.


Stability of a Multiplexed System
Average Input Rate > Average Output Rate System will become unstable!

How to ensure stability ? 1. Reserve enough capacity so that the average demand is less than the reserved capacity 2. Dynamically detect overload and adapt either the demand or the capacity to resolve the overload

What’s a performance tradeoff ?
•A situation where you cannot get something for nothing! •Also known as a zero-sum game.

R = link bandwidth (bps) L = packet length (bits) a = average packet arrival rate Traffic Intensity (or Link Utilization) = La/R (Average traffic divided by the link capacity)

What’s a performance tradeoff ?
La/R ~ 0: average queuing delay small (Wasteful Design) La/R 1: delay become large

La/R > 1: infinite average delay (service degrades unboundedly instability)! Statistics suggest that the best tradeoff is when La/R ~ 0.8

Example Design: Circuit-Switching
Circuit-switching: a form of multiplexing
Divide link bandwidth into “pieces” Reserve pieces on successive links and tie them together to form a “circuit” Map traffic into the reserved circuits Resources are wasted if unused: expensive design. Mapping can be done without “headers”. Everything inferred from timing (i.e. connection is immediately available).


Example Design: Packet-Switching
Packet-switching: another form of multiplexing: Chop up data (not links!) into “packets”
– Packets: data + meta-data (e.g., header)

“Switch” packets at intermediate nodes
– Store-and-forward if bandwidth is not immediately available.

Bandwidth division into “pieces” Dedicated allocation Resource reservation

Cost: self-descriptive header per-packet (i.e.; overhead), buffering, and delays for applications.


Summary of System Design Ideas
Multiplexing Statistical Multiplexing Stability and performance tradeoffs Circuit switching Packet switching


Design Perspectives
Network users: services that their applications need, e.g., guarantee that each message it sends will be delivered without error within a certain amount of time, etc. Network designers: cost-effective design e.g., that network resources are efficiently utilized and fairly allocated to different users Network providers: system that is easy to administer and manage e.g., faults can be easily isolated and it is easy to account for usage