CS432 Handouts PDF
CS432 Handouts PDF
CS432 Handouts PDF
CONTENT
Course code CS432
Credits 3+0
Instructor
Lecturing style
Evaluation
Quizzes
Assignment
Simulation modules
Technology Landscape
1. Communications systems: Evolving rapidly
2. User demands: High performance networks
3. Service providers: Rapidly expanding their network infrastructure
Network researchers face the protocol war by developing new communications techniques,
architectures and capabilities. Equipment vendors are releasing new devices with increasing
capability and complexity. Technology developers and OEMs are developing NG equipment.
Network designers and developers are working on how to satisfy the QoS demands of users amidst
emerging technologies and techniques viz a viz legacy counterparts? Network Engineer in
operations is thinking about what is the right approach to solving problems? Do I buy latest device
from company X that claims to solve all my problems? Do I replace underlying technology of my
system with the latest generation? Next Generation Network Architect wonders how do I know how
this new approach will interact with already existing protocols? How do I build confidence in the
utility of this approach without producing and deploying the technology? Is there one solution?
Actually not! There are various ways to answer and satisfy the goal seekers. These include
Prototyping & empirical testing
Trial field deployment
Modeling and Simulation (M & S)
Analysis
The order represents decreasing costs but increasing abstraction. It is upto the network engineer to
trade them off.
What is NeMS?
Network Modeling and Simulation is often considered a single term. In reality, it is not! Simulation
is the imitation of behaviour of real-world system or Computational re-enactment according to rules
described in model. Whereas modeling is a step that precedes simulations. Together they form an
iterative process approximating the real world systems. Model is the logical representation of a
complex entity, system, phenomena or a process. In communications, network model could be
analytical representation, mathematical form as a state Machine or closed or approximate form.
Computer simulation is the execution of computer software that reproduces behavior with a certain
degree of accuracy to provide visual insight. It is basically a template on which a computer program
runs. It has
Inputs
Outputs
Behaviour
Formally, simulations are pieces of computer software that implement algorithms, take inputs and
give outputs.
Components of a simulator
A self-contained program
Event queue
Simulation clock
State variables
Event routines
Input routine
Report generation routine
Initialization routine
Main program
Types of simulations
Monte Carlo simulation
Trace driven
Discrete events
Continuous events
When to simulate
Analytical model not feasible (complex)
Analytical model not possible (too simple)
Simulate to verify analysis
Otherwise simulations are unnecessary
When not to simulate
Analytical model gives good enough representation
Simulation takes months
Simulation is expensive
Simulation is non-scalable
General mistakes
Inappropriate levels of details
Improper selection of programming language
Unverified models
Improper initial conditions
Short run times
Poor random number generators
Inadequate time estimate
No achievable goals
Incomplete mix of essential skills
Inadequate level of user participation
Inability to manage simulation project
No achievable goals
Goals not defined
– Tangible output analysis
– Logs and trace files
Goals are unreal
– Affects simulation complexity and implementation
Simulation inaccuracies
Over reliance on link budget methods for abstraction
Overly simplistic modeling of radio layers
Problem formulation
Identify controllable and uncontrollable inputs
Simulation development
Codify, codify and codify!
“What-if” analysis
Performance measures with different inputs
Sensitivity analysis
Relative importance of different parameters with respect to output
Even with respect to each other
Uptill now
Basics of NeMS
Mohsen Guizani et al, “Network Modeling and Simulation” John Wiley , 2010.
Basics of NeMS
Jack Burbank et al, “An Introduction to Network Modeling & Simulation for the Practicing
Engineer” John Wiley , 2011.
Basics of NeMS
John A. Sokolowski & Catherine M. Banks, “Modeling and Simulation Fundamentals” John
Wiley , 2010.
Next Roadmap
TicToc tutorial
OMNET++ Manual
Website: https://omnetpp.org
INET Framework for OMNeT++
OMNET++ Wiki
Mixim Sourceforge Page
Introduction to OMNET++
What is OMNET++
Objective Modular Network Testbed in C++
– Simulation kernel
– Component-based simulation library
A framework, not a simulator
Designed to create & simulate any network
Simulation Kernel
Debug is elaborate
But slow
Release is optimized
& fast
Debug mode
Does not optimize the binary it produces
Source code and generated instructions relationship is complex
Allows accurate breakpoints setting
Allows code step-through one line at a time
Compiled with full symbolic debug information
Release mode
Enables optimizations
Generates instructions without any debug data
Lots of code could be completely removed or rewritten
Resulting executable may not match with written code
Design of OMNET++
Model Structure
Model consists of modules
Modules communicate with message passing
Modules are C++ files
– Implement simulation class library
– Run in simulation kernel
Module types
– Simple (active modules)
– Compound
Gates
– Gates
– Input output interfaces of modules
– Allow message passing
– Linked via connection (TPROP, RDATA, BER) Input output interfacing
1. Define
Module
Types
2. Instantiate
3. Network implements system model them
Channels
– Connection types with specific properties
– Reusable at several places
– Standard Host talking to another Standard Host via an Ethernet cable
Module Parameters
Pass configuration data to simple modules
Define model topology
String, numeric, boolean
Constants, random numbers
Expressions as references
Network Definition
Network definitions are compound modules
– Self-contained simulation models
Network name
=
My_Network
Module name
=
My_Module
Compound module
name=
standardHost
Inside
standardHost
\
Example
Simple
Compound
GenericTCPClientApp BaseHost
Module
Derived
(Extended) FTPApp BaseHost + WebClientApp
Module
Interface instantiation
Module and channel interfaces can be used as a placeholder
– where normally a module or channel type would be used
Concrete module or channel type determined
– At network setup time by a parameter
Example:
Run time
ConstantSpeedMobility RandomWayPointMobility
Packages
Addresses name clashes between different models
Simplifies specifying which NED files are needed by a specific simulation model
Example:
package book.simulations;
Package is a mechanism to organize various classes and files. The simulation project
inside of OMNeT++ is called "Book" and this NED file is found in the "simulations" folder of
the
Project.
Configuring simulations
How to capture the effect of different inputs?
– Run to run variables
C++ and NED code do not have such variables
INI files provide a mechanism to specify these parameters
– omnet.ini
Example omnet.ini
My_Network
wildcarded as **
[General] No of Apps
network = book.simulations.My_Network
#We will make standardHost a TCP Session Application in
order for it to communicate#
**.standardHost.numTcpApps = 1
Example
Application Name
[General]
network = book.simulations.My_Network
#We will make standardHost a TCP Session Application in
order for it to communicate#
**.standardHost.numTcpApps = 1
**.standardHost.tcpApp[0].typename = "TCPSessionApp"
**.standardHost.tcpApp[0].connectAddress = "standardHost1"
**.standardHost.tcpApp[0].connectPort = 1000
#We will make standardHost1 a TCP Echo Application, this
means that it
will send #an echo packet once it receives a packet.
**.standardHost1.numTcpApps = 1
**.standardHost1.tcpApp[0].typename = "TCPEchoApp"
**.standardHost1.tcpApp[0].localPort = 1000
**.standardHost1.tcpApp[0].echoFactor = 3.0
#**.ppp[*].queueType = "DropTailQueue"
[General]
network = book.simulations.My_Network
#We will make standardHost a TCP Session Application in order for
it to communicate# Who to
connect
**.standardHost.numTcpApps = 1 with whom
**.standardHost.tcpApp[0].typename = "TCPSessionApp"
**.standardHost.tcpApp[0].connectAddress = "standardHost1"
**.standardHost.tcpApp[0].connectPort = 1000
#We will make standardHost1 a TCP Echo Application, this means
that it
will send #an echo packet once it receives a packet.
**.standardHost1.numTcpApps = 1
**.standardHost1.tcpApp[0].typename = "TCPEchoApp"
**.standardHost1.tcpApp[0].localPort = 1000
**.standardHost1.tcpApp[0].echoFactor = 3.0
#**.ppp[*].queueType = "DropTailQueue"
Which port to
[General] connect to
network = book.simulations.My_Network
#We will make standardHost a TCP Session Application in order for it
to communicate
**.standardHost.numTcpApps = 1
**.standardHost.tcpApp[0].typename = "TCPSessionApp"
**.standardHost.tcpApp[0].connectAddress = "standardHost1"
**.standardHost.tcpApp[0].connectPort = 1000
#We will make standardHost1 a TCP Echo Application, this means
that it will send #an echo packet once it receives a packet.
**.standardHost1.numTcpApps = 1
**.standardHost1.tcpApp[0].typename = "TCPEchoApp"
**.standardHost1.tcpApp[0].localPort = 1000
**.standardHost1.tcpApp[0].echoFactor = 3.0
#**.ppp[*].queueType = "DropTailQueue"
#**.ppp[*].queue.frameCapacity = 10
#**.eth[*].queueType = "DropTailQueue"
Reply size =
Echo Packet* EF
[General]
network = book.simulations.My_Network
#We will make standardHost a TCP Session Application in order for it to
communicate
**.standardHost.numTcpApps = 1
**.standardHost.tcpApp[0].typename = "TCPSessionApp"
**.standardHost.tcpApp[0].connectAddress = "standardHost1"
**.standardHost.tcpApp[0].connectPort = 1000
#We will make standardHost1 a TCP Echo Application, this means that it will
send #an echo packet once it receives a packet.
**.standardHost1.numTcpApps = 1
**.standardHost1.tcpApp[0].typename = "TCPEchoApp"
**.standardHost1.tcpApp[0].localPort = 1000
**.standardHost1.tcpApp[0].echoFactor = 3.0
#**.ppp[*].queueType = "DropTailQueue"
#**.ppp[*].queue.frameCapacity = 10
#**.eth[*].queueType = "DropTailQueue"
Queuing behaviour
[General]
network = book.simulations.My_Network
#We will make standardHost a TCP Session Application in order for it to
communicate
**.standardHost.numTcpApps = 1
**.standardHost.tcpApp[0].typename = "TCPSessionApp"
**.standardHost.tcpApp[0].connectAddress = "standardHost1"
**.standardHost.tcpApp[0].connectPort = 1000
#We will make standardHost1 a TCP Echo Application, this means that it will
send #an echo packet once it receives a packet.
**.standardHost1.numTcpApps = 1
**.standardHost1.tcpApp[0].typename = "TCPEchoApp"
**.standardHost1.tcpApp[0].localPort = 1000
**.standardHost1.tcpApp[0].echoFactor = 3.0
#**.ppp[*].queueType = "DropTailQueue"
#**.ppp[*].queue.frameCapacity = 10
#**.eth[*].queueType = "DropTailQueue"
Buffer Size
[General]
network = book.simulations.My_Network
#We will make standardHost a TCP Session Application in order for it to
communicate
**.standardHost.numTcpApps = 1
**.standardHost.tcpApp[0].typename = "TCPSessionApp"
**.standardHost.tcpApp[0].connectAddress = "standardHost1"
**.standardHost.tcpApp[0].connectPort = 1000
#We will make standardHost1 a TCP Echo Application, this means that it will
send #an echo packet once it receives a packet.
**.standardHost1.numTcpApps = 1
**.standardHost1.tcpApp[0].typename = "TCPEchoApp"
**.standardHost1.tcpApp[0].localPort = 1000
**.standardHost1.tcpApp[0].echoFactor = 3.0
#**.ppp[*].queueType = "DropTailQueue"
#**.ppp[*].queue.frameCapacity = 10
#**.eth[*].queueType = "DropTailQueue"
Example
Building Simulation Programs
Using Mingwenv
Once you have the source files ( *.ned, *.msg, *.cc, *.h) in a directory
– Change the working directory to there
Type
$ opp_makemake
This will create a file named Makefile
Type
$ make
Your simulation program should build
A makefile is used to tell the compiler which source files you want to compile.
It'll also do things like name your executable and place it in a specific location.
Where to next!
Running Simulations
Quick Run
In Project Explorer, select a project
Clicking Run button on the toolbar
Runs vary
– Folder
• Runs if single ini file present
– ini file
• Use this as the main ini file
– NED file
• Scan for available ini file
Launch Configuration
Run omnet.ini
From /queuenet
One or more
ini files
Directories where
the NED files
are read from
Simulation Tracing
Simple modules may write textual debug (trace) information like printf()
OMNET++ provides Module output window
– Special window to display output stream
Eases following the module execution
Simulation Object Inspection
An object inspector is a GUI window associated with a simulation object
– Displays contents and properties
Three types
– Network Display
– Log Viewer
– Object Inspector
Tkenv
Tkenv is a graphical runtime interface for simulations
It provides
– Network visualization
– Message flow animation
– Log of message flow
– Display of textual module logs
Inspectors
Visualization of statistics
– Histograms, etc. during simulation execution
Event log recording for later analysis
Tkenv in action
Network
display Log
viewer
Organizing and Performing Experiments
Example
Handover
optimization
No of hosts
= 10
Load
= 3.8
Effect of
Mobile
No. of hosts
IPv6
Traffic load
nodes
Sequence Charts
Record event
Sequence Chart
Displays event log files in a graphical form
• Helps focus on causes & consequences of events/messages
• Helps users understand
― Complex simulation models
― Verify implementation for desired behavior
Compound module
Understanding the legend: Axis
Initialization event
Compound module
Axis
Event number
Self-message Self-message
Message processing Message send
Processing event
Event
Parts of Sequence Charts
What is Timeline?
Simulation time mapped onto the horizontal axis
Various ways
– Intervals between interesting events often of different magnitudes
Example
– MAC (ms)
– Higher layers (ms)
Types of Timeline
Linear: simulation time proportional to distance measured in pixels
Event number: event number proportional to the distance measured in pixels
Step: distance between subsequent events is same
Nonlinear: distance between subsequent events is nonlinear function of simulation time
between them
Gutter
Events Processing
Messages
Understanding toctoc1.ned
Understanding Txc.ned
Understanding Txc.ned
Understanding omnet.ini
Adding parameters
Adding parameters
Boolean parameter (decides if module should send out first message in its initialization code)
• tictoc4.ned
• Txc4.cc
• Omnet.ini
tictoc4.ned
Using Inheritance
Using Inheritance
What is different between tic and toc?
― Parameter values
― Display string
Inheritance allows to create a simple module
― Then derive modules from ittictoc5.ned
tictoc5.ned
Modeling processing delay
Strategy
tx6.cc
Output:
Random numbers and parameters
txc7.cc
Timeout, cancelling timers
Timeout, cancelling timers
Getting closer to real world working protocols
Stop-and-wait protocol
txc8.cc
tictoc8.ned
omnetpp.ini
Strategy
txc8.cc
Output
Retransmitting same message
Strategy
Create two new functions
Conditionally call them in tic and toc
Txc9.cc
generateNewMessage()
sendCopyOf(cMessage *msg)
Tictoc12.ned
\
Txc13.cc
\
Output
Displaying no. of packets sent/received
Txc14.cc
Object Inspector in Tkenv
Adding statistics collection
Txc15.cc
Visualizing output scalars & vectorsVisualizing output scalars & vectors
Datasets
Describe a set of input data, the processing applied to them and the charts
Displayed as a tree of processing steps and charts
Nodes are used for
― Adding and discarding data
― Applying processing to vectors and scalars
― Selecting the operands of the operations
― Content of charts, and for creating charts
Editing Datasets
What is Compute Vectors?
Both Compute Vectors and Apply to Vectors nodes compute new vectors from other vectors
Computation Examples 1
Bit rate
Assume several source modules in the network that generate CBR traffic
Parameterized with packet length (in bytes) and send interval (seconds)
Both parameters saved as scalars by each module (pkLen, sendInterval)
To use the bit rate for further computations or charts
– Add a Compute Scalar node with the following content to create an additional bit
rate scalar for each source module
Value: pkLen*8/sendInterval
Name: bitrate
Throughput
Assume several sink modules record rcvdByteCount scalars, and simulation duration is
saved globally as the duration scalar of the top-level module.
We are interested in the throughput at each sink module
We need to refer to the duration scalar by its qualified name (prefix it with the full name of
its module)
rcvdByteCount can be left unqualified
Value:8*rcvdByteCount/Network.duration
Name: throughput
Computation Examples 2
INET
The INET Framework can be considered the standard protocol model library of OMNeT++
Contains models for the Internet stack
― TCP, UDP, IPv4, IPv6, OSPF, BGP, etc
Wired and wireless link layers
Ethernet, PPP, 802.11, etc)
Support for mobility
QoS support
DiffServ, RSVP
Several application models
Maintained by OMNeT++ team officially
OverSim
Overlay and peer-to-peer network simulation framework
Contains several models for
Structured
― Chord
― Kademlia
― Pastry
Unstructured
― GIA
Veins
Inter-Vehicular Communication (IVC) simulation framework
It is a road traffic microsimulation model
INETMANET
Fork of INET framework
Simulation frAAamework for mobile ad-hoc networks
Written and maintained by Alfonso Ariza.
MIXIM
Modeling framework created for
― Mobile wireless
― Fixed wireless
― WSNs
― BANs and VANs
― Ad-hoc networks
Radiowave propagation
Interference estimation
Power consumption
Wireless MAC protocols
CASTALIA
Simulation framework for networks of low-power embedded devices
Offers models for
― Temporal path loss
― Fine-grain interference
― RSSI calculation
― Physical process model
― Node clock drift
― MAC protocols
Design Tour of INET 1
In this module
We shall take a guided
Tour of INET to
Understand how ARP works in Ethernet environments
Walk through features of INET
Peek into various
– Packets
– Queues
– Internal tables
Scenario
Client computer opens TCP session with server
Rest of operations (including ARP) follow
– ARP has to learn the MAC address for the default router
Usage Diagram for ARP
On simulation start
Ethernet autoconfiguration precedes ARP
Entities at work
Various compound modules interact with each other
TCP host on Ethernet
Router
TCP server
How end-to-end transmission takes place?
TCP Client
Router
TCP Server
End-to-end transmission
Strategy
Rules for Mathematical Reading
What is mathematical modeling?
A Representation of an object, a system, or an idea in some form other than that of the entity itself.
(Shannon)
Quantification
The act of counting and measuring that maps human sense, observations and experiences
into members of some set of numbers
Facts represented as quantitative facts are the basis of science
Formalism
Mathematics creates models that have certain relationships
Statements of mathematics can be considered to be statements about the consequences of
certain string manipulation rules
What is an equation?
A statement that the values of two mathematical expressions are equal
indicated by “=” sign
What is a formula then!
Constituents of an equation?
Expressions consist of one or more of these arguments
– Numerical constants
– Symbolic names
– Mathematical operators
– Functions
– Conditional expressions
QoE—Usability
Everything starts with “You”
What is usability?
Usability (Ub) is defined as the ease of use with which network users can access the network
and services
Ergonomic and technological facilitation
– Networks should make users’ jobs easier
Some design decisions have a negative affect on usability
– Strict security
Some choices are user friendly
– WiFi
– DHCP
Understanding usability
Sanjay Kumar Gupta, “Usability Models Based on Network Artifacts for Rural Development” Int. J.
Computer Technology & Applications,Vol 4 (3),508-513
Ub: Usability as ease of use
Ue: Use effort
Ub 1/Ue
Usability expressions
Connotations
Usability (Ub) is expressed as a function of network devices
The top-down approach implies that the assessment of overall usability has to be based on
the performance of
– Hubs/switches
– Routers/gateways
QoE—Scalability
Ability to grow
What is scalability?
Scalability refers to the ability to grow (or add)
Factors to be added
― Number of applications
― Number of sites
― Addressing at sites
― No. of users
― No. of servers
Effects of growth
Efficiency decreases with increasing factors
– But increases with increasing “other” factors
Execution time increases with increasing factors
– But decreases with increasing “other” factors
Connotations
Scalability is expressed as a function of factors in the network
This criteria affects the design choices made for the network model
QoE—Planning for Expansion
Need to expand is ever increasing
Why plan?
Expansion is unavoidable
Unplanned expansion causes performance degradation
– Execution time
– Efficiency
Planning is necessary
– Preemption is key
– Late planning is no planning
Access to data
Social networking has emerged
Extranets need topology definitions & dedicated bandwidth allocation
– Classic 80-20 rule ´
Increased access
– Data available to more departments
– Increased utilization of network services
Metcalfe's Law
Community value of a network grows as the square of the number of its users
Often cited as an explanation for the rapid growth of the Internet
Expression for Metcalfe's Law
Connotations
Network model is more scalable than the number of nodes and servers in the topology
The total traffic load generated depends upon the user activity
QoE—Constraints on Scalability
The whole cannot be greater than the sum of its parts
(Apologies to Aristotle)
Specific example
Constrained addressing
― IPv4
― Top-level exhaustion occurred on 31 Jan 2011
― 24 Sep 2015 for North America
Unconstrained addressing (for now!)
― IPv6
With everything as IoT, 2128 is the constraint
QoE—Availability
The degree to which a system, subsystem or equipment is in a specified operable and committable
state
The question
How to allocate redundancy to IT functions such that the overall survivability of these IT functions
against disasters is maximized and the cost remains under budget.
Redundancy
Redundancy in preparation for disasters provides disaster preparation
– Proactive prevention
– Reactive recovery
– Backup facilities
QoE—Specifying Requirements
Measurable is achievable
Availability in spurts
Staggered vs onetime
99.70% uptime
― 30 minutes per year
― 10.70 sec per hour
Acceptable for some users not to others
Allowed for few applications
QoE—Five Nines Availability
The devil is in the details of availability
5 9s as best-case availability
Some enterprises may want 99.999%
– 5 minutes downtime per year
Sometime or all the time?
– A million $ worth question for managers
Repair time inclusive or exclusive
– In service upgrades (hot-swaps) possible?
Hardware manufacturers provide 5 9s
However sum is not equal to parts
– Carrier and power outages
– faulty software in routers & switches
Unexpected and sudden increase in bandwidth or server usage
Configuration problems, human errors (90% of all!)
Security breaches, and software glitches
One being active, one in hot standby ready to be used immediately, one in standby or maintenance
QoE—Cost of downtime
40 percent of companies that
shut down for three days failed within 36 months (Contingency Planning and Management
magazine)
Calculate cost
Frequency x Duration x Hourly Cost = Lost Profits
Example
If there were 90 branch outages in an average year
― Each lasting an average of one-and-a-half hours
― Costing $300/hour 90 outages x 1.5 hours x $300/hour = $ 40,500
Cost of branch outages for a year =$40,500
QoE—MTBF AND MTTR
Averaging out the availability
Availability as MTBF
Mean time bw failure (MTBF) & mean time to repair (MTTR)
Component vs service
– Mean time bw service outage (MTBSO)
– Mean time to recover from service outage (MTTSO)
Typical MTTF value is once per 4000 hrs or 166.7 days
Typical acceptable MTTR value is one hour
Availability = MTBF/(MTBF + MTTR)
MTBF with MTTR help to assess frequency and length of service outage
– Mean value must be supported with variance
The difference between MTTF and MTBF is the assumption of the former that the system
shall be repaired while in the later the system is replace
QoE—Network Performance
Composite metric that is end-to-end
Definition
An overall working
Many different ways to measure the performance of a network
― Each network is different in nature and design
Modeled
Simulated
Measured
QoE—Optimum Network Utilization
Optimum is “As good as it gets”
Definition of optimum
Selection of a best element (with regard to some criteria) from some set of available
alternatives
Definition of throughput
Quantity of error free data transmitted/ sec
– Erroneous transmissions futile
Ideally, should be the same as capacity
QoE—Throughput of devices
Simulation of devices and specifications is vendor specific
Example—CISCO devices
Traffic generators-device-traffic checkers in tandem measure throughput
– Smaller packets give better pps
Cisco claims of 400 million pps for the Cisco Catalyst 6500 switch
CISCO claims throughput; which in actual is the capacity
QoE—Application Layer Throughput
Application layer uses lower layers unfairly
Definition
Application layer throughput = goodput + badput
Goodput vs badput
Badput contributed by retxns, header etc
– Fraction of packets that collided/lost
Fc = C/N
Fc = L/N
An, Cheolhong, and Truong Q. Nguyen. "Error Resilient Video Coding using Cross-Layer
Optimization Approach." IEEE Transactions on Multimedia 10 (2008): 1406-1418.
Connotations
Application layer throughput provides insight into “useful' transmissions
– It relates resource allocation down to physical layer throughput
QoE—Accuracy
Being accurate is not being precise
Definition
Data sent and received should be the same
Also referred as the number of error-free frames transmitted relative to the total number
of frames transmitted
QoE—Efficiency
Boiling water analogy
Definition
Application layer throughput = goodput + badput
Goodput vs badput
Badput contributed by retxns, header etc
– Fraction of packets that collided/lost
• Fc = C/N
• Fc = L/N
Average Efficiency
Latora, Vito, and Massimo Marchiori. "Efficient behavior of small-world networks." Physical
review letters 87.19 (2001): 198701.
Source of jitter
QoE
It is the small factors that matter the most
Causes of Delay
Propagation
– Media type
– Length
Transmission (serialization)
– 1024 Bytes on T1
Switching delay
– upto 5-20 microsec for 64 Bytes frame
Router delay
– Look-up, router architecture, configuration
– Software features that optimize the forwarding of packets
NAT, IPSEC, QoS, ACL Causes of Delay (3 of 3)
Queuing delay
– Dependent upon utilization
Formula
Queue depth = Utilization/(1 – Utilization)
Delay variation
Amount of time average delay varies
Voice, video, and audio are intolerant of delay variation
Tradeoffs needed for efficiency for high-volume applications versus lowConcept of jitter
buffer to smoothen out the jitter
Variations on the input side are smaller than the buffer
Acceptable variation is 1-2% of the delay
Jitter types
Jitter is quantified in two ways
Delay jitter
― bounds maximum difference in total delay of different packets
― Assumes source is perfectly periodic
Used for Interactive communication
– voice and video teleconferencing
Helps to translate to maximum buffer size needed at the destination Second measure is rate
jitter
Bounds difference in packet delivery rates at various times
Measures difference between minimal and maximal inter-arrival times (reciprocal of rate)
Useful measure for many real time applications
Video broadcast over the net
Slight deviation of rate translates to only a small deterioration in the perceived quality
Kay, Rony. "Pragmatic network latency engineering fundamental facts and analysis." cPacket
Networks, White Paper (2009): 1-31.
Measurement of jitter
QoE—Response Time
Response time is relative phenomenon
Definition
The amount of time between a request for some network service and a response to the
request
[1] Reinder J., Bril., System Architecture and Networking. TU/e Informatica
[2] Sjodin, Mikael, and Hans Hansson. "Improved response-time analysis calculations." Real-Time
Systems Symposium, 1998. Proceedings., The 19th IEEE. IEEE, 1998.
Definition
Protection of information systems from threat
– Hardware
– Software
– Information on them
Avoidance from
– Disruption
– Misdirection of the services they provide
Implementation
Includes controlling physical access to the hardware
Protecting against harm via
– Network access
– Data
– Code injection
Bell-Lapadula Model
Users as Subjects
Predicates
– Devices and data as Objects
Process algebra provides the action (verb) of subject over predicates
Bell-Lapadula Model
Users as Subjects
Predicates
– Devices and data as Objects
Process algebra provides the action (verb) of subject over predicates
QoE—Reconnaissance Attacks
Prevention is better than cure
Definition
Reconnaissance is a type of computer attack
Intruder engages with the targeted system
– Gathers information about vulnerabilities
Types
Active reconnaissance
Port scanning
Passive reconnaissance
Sniffing
War driving
War dialing
Targeted Threat Index
Hardy, Seth, et al. "Targeted threat index: Characterizing and quantifying politically-motivated
targeted malware." Proceedings of the 23rd USENIX Security Symposium. 2014.
QoE—Security Requirements
Definition
Enlist all the activities, actions, hardware/software
Confidentiality
Integrity
Authorization
Authenticity
Availability
Encryption
QoE—Manageability
Definition
The level of human effort required to keep that system operating at a satisfactory level
– Deployment
– Configuration
– Upgrading
– Tuning
– Backup
– Failure recovery
Assessing Manageability
Candea, George. "Toward Quantifying System Manageability." UseNix HotDep. 2008.
Manageability Metric
The notion of efficiency of management operations, which is approximated by the time Timei the
system takes to complete Taski
Approximate complexity of a management task by the number of discrete, atomic steps (Stepsi)
required to complete Taski
Commentary
QoE—DoS Attack
Definition
An attempt to make a machine or network resource unavailable to its intended users,
Temporarily
Indefinitely
Implementation
Transmit a large number of packets
– TCP Syn attack
– Ping attack
Server crashing attack
– Large computational load
Problem Set 1
Queuing Behaviors
1. A CISCO switch has 20 users (clients and servers), each offering packets at a rate of 200 packets
per second. If the average length of the packets is 64 Bytes, and the transmission rate of the switch
is 10 Mbps measure the load of all the users and the LAN utilization. Then measure the queue
depth
Implementation in INET
Source: https://omnetpp.org/doc/inet/api-current/neddoc/index.html
examples/inet/bulktransfer/BulkTransfer.ned
Usage diagram
Source: src/applications/tcpapp/TCPBasicClientApp.ned
numRequestsPerSession = exponential(3)
requestLength = truncnormal(20,5)
replyLength = exponential(1000000)
What to model?
1. Total time it takes to complete file transfer
2. Total goodput vs badput
3. Network utilization
4. Delay variation
5. Usability
6. Scalability
7. Availability
Parameters
What to model?
Igor Kotenko & Alexander Ulanov , “Simulation of Internet DDoS Attacks and Defense ,” ISC
2006, LNCS 4176, pp. 327–342, 2006.
Kaur, Rupinderjit, Amrit Lal Sangal, and Kush Kumar. "Modeling and simulation of DDoS attack
using Omnet++." Signal Processing and Integrated Networks (SPIN), 2014 International
Conference on. IEEE, 2014.
What to model?
src/nodes/rtp/RTPHost.ned
Usage Diagram and Statistics
Definition
One known server
Always-on
Permanent IP address
Clients communicate with server
Intermittently connected
Performance
Operation
Handles multiple HTTP requests
Accepts and parses the HTTP request
Gets the requested file from the server's file system
Creates and sends an HTTP response message consisting of the requested file
HTTP Modeling
Time line operation
Variants
HTTP is based on sequenced messages
Underlying TCP handshaking determines the overall performance
– Persistent
– Non-persistent
– Pipelined
– Caching
Non-Persistent Connections
TCP handshaking required for every object
Modeling Non-persistence
It requires 2 RTTs per object
Total time for N objects
N*2RTT + N*Transmit time
Consequent effect on simulated time is exacerbated in a multi-hop real world network
Persistent Connections
TCP handshaking required once
Modeling Persistence
It requires 1 RTTs per object
Total time for N objects
(N+1)*RTT + N*Transmit time
Consequent effect on simulated time is noticed in a multi-hop real world network
Advantages of caching
Reduces response time for client request
Reduce traffic on an institution’s access link
Example
Average object size = 100,000 bits
Avg. request rate from institution’s browsers to origin servers = 15/sec
Delay from institutional router to any origin server and back to router = 2 sec Utilization on
LAN = 15%
Utilization on access link = 100%
Total delay = Internet delay + access delay + LAN delay
= 2 sec + minutes + milliseconds
If hit rate is .4
40% satisfied locally
60% requests satisfied by server
Utilization of access link reduced to 60% (say 10 ms)
Avg delay = Internet + access + LAN
= .6 * (2.01) s + ms < 1.4 secs
FTP Efficiency
FTP operation
Client contacts FTP server at port 21
Client obtains authorization
Browses remote directory
Server receives file transfer command
Server opens TCP data connection to client
After transfer connection closed
TCPU = Total CPU seconds recorded during the period of file transfer
ICPU = Measured CPU seconds when machine is idle for the equivalent period
MIPS = Machine performance rating in Millions of Instructions per second
TRATE = Transfer rate in megabytes per second
SMTP Scalability
Entities of SMTP Architecture
Recall scalability
Ability to grow
Scaling may include
― Number of user sites
― Inter-site topology
― No. of user agents
― User mailbox size
― No. of mail servers
― Outgoing queue size
Efficiency & speed-up for SMTP
Mail delivery time tends to vary with scaling factors
• Must be normalized when comparing SMTP performance at different traffic volumes
― On single server
― Servers confederation
ERelative = T1 ¸ (No. of hosts ´ TNo of hosts)
SRelative = No. of hosts ´ E1
DNS Load Distribution & Loss
Typifying DNS operation
Casalicchio, E., Caselli, M., Coletta, A., & Fovino, I. N. Aggregation of DNS health indicators:
issues, expectations and results
Health metrics
Incoming Bandwidth Consumption (IBC)
Ratio between total amount of incoming data during a session over the duration of the
session
Range: [0, IBC max]
measured in Mbit/s
Health metrics
Incoming Traffic Variation (ITV)
For each session i,
(IBCi − IBCi−1)/lengthi
IBCi is incoming bandwidth consumption in ith session
lengthi is duration of that session
Performance
Torrents Efficiency
Basic Torrent Operation
Factors affecting efficiency
Heterogeneous upload capacity
Diversities of neighbor selecting mechanisms
Geographical distribution of peers
Downloading rates of LocalBT clients
Peer selection policy
Performance
Problem Set 1
Network Latencies
Consider an institutional network connected to the Internet. Suppose that the average object size is
850,000 bits and that the average request rate from the institution’s browsers to the origin servers is
16 requests per second. Also suppose that the amount of time it takes from when the router on the
Internet side of the access link forwards an HTTP request until it receives the response is three
seconds on average.
Model the total average response time as the sum of the average access delay (that is, the delay
from Internet router to institution router) and the average Internet delay. For the average access
delay, use Δ/(1 – Δb), where Δ is the average time required to send an object over the access link
and b is the arrival rate of objects to the access link.
Now suppose a cache is installed in the institutional LAN. Suppose the miss rate is 0.4. Find the
total response time.
HTTP Performance
Suppose that an HTML file on a web server references eight (8) very small objects. Neglecting
transmission times, how much time it takes when non-persistent HTTP connection is used and the
browser is configured for five (5) parallel connections?
A. 18RTT B. 6RTT
C. 3RTT D. None of these
Problem Set 2
P2P Protocols
Suppose that peer 3 learns that peer 5 has left. How does peer 3 update its successor state
information?
A. It asks peer 4 B. It asks peer 8
C. It asks peer 2 D. None
HTTP Evolution
RFC 793 does not support persistence
– HTTP1.0
Additional mechanism needed
– Use keep-alive
HTTP 1.1 is persistent by default
Features
• RFC 793 TCP states and state transitions
• Connection setup and teardown as in RFC 793
• Segment processing
• Receive buffer to cache above-sequence data
• Data not yet forwarded
Simulate HTTP Handshaking
HTTP Requests
HTTP/1.0: HTTP/1.1:
GET GET, POST, HEAD
POST PUT
HEAD uploads file in entity body to path
asks server to leave requested object out specified in URL field
of response DELETE
deletes file specified in the URL field
HTTP Response
200 OK
request succeeded, requested object later in this msg
301 Moved Permanently
requested object moved, new location specified later in this msg (Location:)
400 Bad Request
request msg not understood by server
404 Not Found
requested document not found on this server
505 HTTP Version Not Supported
Modeling Approach
Cost of Multiplexing
Amount of resources allocated to application i at time t using the optimal and practical allocation
scheme respectively
Checksum
Introduction
Transport layer incorporates error detection
Checksum is “checking the sum” both at the sender and receiver
Performed at the header or the entire body
Go Back N
Introduction
Retransmission strategy (ARQ)
No need to buffer at receiver
Wheat and rice analogy!
– Go back N is wheat
– Fresher is better
Choose N large enough to allow continuous transmission while waiting for an ACK for the
first packet of the window
If N > S/DTP E = min{1, N*DTP/S}
Selective Repeat
Introduction
Retransmission strategy (ARQ)
No need to retransmit all after loss
Buffer requirements at receiver
Wheat and rice analogy!
– Selective repeat is wheat
– Older is better
Same as Go Back N
If N > S/DTP E = min{1, N*DTP/S}
Fixed Window
Second case
WS/R < RTT + S/R
Wait for ACK after sending window’s worth of data sent
K is the number of windows that cover the object
Estimating RTT
SampleRTT Measured time from segment transmission until ACK receipt
Ignores retransmissions
EstimatedRTT is “smoother”
Averages several recent measurements, not just current SampleRTT
1.22 MSS
RTT L
Reliability Services
Handling Loss
Early TimeOut
Delayed Ack
Flow Control
Introduction
Receiver throttles the sender by advertising a window
– Not larger than the amount of data that it can buffer
TCP on the receive side must keep
LastByteRcvd − LastByteRead ≤ MaxRcvBuffer
Implication
If local process reads data just as fast as it arrives
Causes LastByteRead to be incremented at the same rate as LastByteRcvd
Advertised window stays open
(AdvertisedWindow = MaxRcvBuffer)
If receiving process falls behind, advertised window grows smaller with every segment that
arrives, until it eventually goes to 0
Advertised Window
Sender Window
Effective Window
Holding Time
Upon receiving an HTTP request r , the server decides on a holding-time interval T(r)
The server then leaves the connection open for at most T(r) seconds from the moment it
received r
If a new request r' arrives within the next T(r) seconds, then a new holding-time interval
T(r') is in effect
Otherwise the connection is terminated after T(r) seconds
TCP State Transition
What to model?
Trade-offs between open-cost and number of misses
Introduction
Too many sources sending too much data too fast for network to handle
Manifestations
Lost packets
― buffer overflow at routers
Long delays
― Queuing in router buffers
Infinite Buffer Scenario
Effects of Congestion
Effects of Congestion
R/ R/ R/
R/
o o o R/
ut ut ut
R/ R/
in i i
a. No loss
b. Perfect loss
a. b. c
c. Imperfect loss
Combat Strategies (1 of 2)
End-end congestion control
No explicit feedback from network
Congestion inferred from end-system observed loss, delay
Approach taken by TCP
Network-assisted congestion control
Routers provide feedback to end systems
Single bit indicating congestion (SNA, DEC bit, TCP/IP ECN, ATM)
Explicit rate sender should send at
ATM ABR Congestion Control
References
Kurose and Ross. “Computer Networking Top-Down Approach Featuring the Internet”.
Introduction
Available Bit Rate (ABR), a service used in ATM networks
Source and destination don't need to be synchronized
ABR does not guarantee against delay or data loss
Allow network to allocate available bandwidth fairly over present ABR sources
Operation
Elastic service
If sender’s path is under loaded
Use available bandwidth
If sender’s path congested
Sender throttled to minimum guaranteed rate
Combat Congestion
Two-byte ER (explicit rate) field in RM cell
Congested switch may lower ER value in cell
Sender’s send rate thus minimum supportable rate on path
EFCI bit in data cells is set to 1 in congested switch
If data cell preceding RM cell has EFCI set, sender sets CI bit in returned RM cell
Introduction
End-end control (no network assistance)
Sender limits transmission
LastByteSent-LastByteAcked<= CongWin
CongWin is dynamic, function of perceived network congestion
Operation
Loss event = timeout or 3 duplicate acks
TCP sender reduces rate (CongWin) after loss event
Three mechanisms
― AIMD
― Slow start
― Conservative after timeout events
congestion
window
24 Kbytes
16 Kbytes
8 Kbytes
time
Leaky Bucket
Buffering of the traffic to help manage and control the flow of traffic onto and through the
network
“Leaky” means buffer that is constantly flowing
Operation
Traffic enters into the buffers and is tagged, based on the amount of packets allowed by the
carrier
If the user exceeds the amount of packets flow per increment then the buffer is filled and
begins to empty out the bottom side at a constant rate
Operation
Provides input parameters to policing function
IP packet may be processed if sufficient octet tokens to match the IP data number of tokens
If insufficient tokens available, the packet is relegated to best-effort service
To transmit a packet through router, one token must be removed
If token bucket is empty, packet is queued waiting for next token
If there is backlog of packets & an empty bucket, packets emitted smoothly
Quality of Service
Background
Broadband IP packet networks are multiservice, all-purpose communications platforms
Spurred QoS efforts
Simplest strategy to the one-size-fits-all best-effort service in today’s Internet: divide traffic
into classes
Provide different levels of service to these different classes of traffic
Introduction
QoS a non-issue for circuit-switched networks
Layer 2 and 3 QoS approaches
ATM and Frame Relay provide L2 QoS
Provide circuit-like emulation
Traffic agreements
Traffic control
Connection admission control
Congestion notification
Fragmentation
QoS at Network Layer
IP QoS is concerned with end-to-end internetwork
With every hop L3 QoS parameters mapping to L2 QoS
Type of Service (TOS) field provides initial IP network class of service mechanism
Three precedence bits classify eight categories of services
Lower precedence dropped for higher precedence in congestion
Network equipment vendors rarely provide precedence bits usage
QoS Models
Two QoS models for IP packet networks
IntServ
― Simulate “virtual circuit” of ATM or frame relay on L3
― Sets up an end-to-end route with fixed QoS parameters
DiffServ
― Defining several common classes of service
― Each with associated queue priorities and drop precedence on a per-hop basis
Fair Queues
First In First Out
Motivation for FQ
During periods of congestion, FIFO queuing benefits UDP flows over TCP flows
A bursty flow can consume the entire buffer space of a FIFO queue
PQ totally favours TCP over UDP
Introduction
FQ is foundation for a scheduling disciplines designed to ensure that each flow has fair
access to network resources
Prevents a bursty flow from consuming undue bandwidth share
Also called per-flow or flow-based queuing
Operation
Packets are first classified into flows by the system
Assigned to a queue that is specifically dedicated to that flow
Queues are then serviced one packet at a time in round-robin order
Empty queues are skipped
Benefits
Primary benefit of FQ is extremely bursty or misbehaving flow does not degrade QoS
delivered to other flows
Each flow is isolated into its own queue
If a flow attempts to consume more than its share of BW, its queue is affected
Performance
Allocation of single resource amongst N users
Total resource µTotal
Each user i requests ρi
Each user i receives µi Conditions:
No user receives more than its request
No other user satisfying condition 1 has a higher minimum allocation
Above condition remains recursively true as we remove the minimal user & reduce total
resource
µTotal« µTotal –µi
Conditions:
µi= Min(µFair –ρi)
Above condition remains recursively true as we remove the minimal user & reduce total
resource
μ Total = ∑ μ i
Priority Queues
Motivation
Designed to provide a relatively simple method of supporting differentiated service classes
To provide respective services to
– Interactive traffic
– Voice
– Video
– And best effort
Operation
Packets classified and placed into different priority queues
Packets scheduled from the head of a queue only if all queues of higher priority are empty
Within each of the priority queues, packets are scheduled in FIFO order
Variants
Strict priority queuing
– packets in a high-priority queue are always scheduled before packets in lower-
priority queues
Rate-controlled priority queuing
– High-priority queue scheduled before lower-priority queues
– Only if the amount of traffic in the high-priority queue stays below a user-configured
threshold
Static Window Modeling
Assumption
Assume one link between client and server of rate R
S: MSS (bits)
O: object size (bits)
No retransmissions (no loss, no corruption)
Fixed congestion window, W segments
Operation (1 of 2)
Server not permitted to have more than W unacknowledged outstanding segments
Server receives request from client
Server sends W segments back-to-back to the client
. Server then sends one segment into the network for each acknowledgement it receives
Server continues to send one segment for each acknowledgement until all of the segments of
the object have been sent
First Case
Server receives ACK for first segment of first window before completing transmission of
first window
WS/R > RTT + S/R
Delay = 2RTT + O/R
Static Window Modeling—2
A simple one-link network connecting a client and a server
Second Case
Server transmits first window's worth of segments before the server receives ACK for first
segment in the window
WS/R < RTT + S/R
It is a scenario where the propagation delay dominates transmission time
Example
O/S = 15 segments
K = 4 windows
Q=2
P = min{K-1,Q} = 2
Server idles P=2 times
End-to-End Windows
Limitations
Cannot guarantee a minimum rate for a session
Not suited for
– Voice and video
Window size tradeoff requirements
– Limit no. of packets in subnet
– Full-speed transmission and max throughput
Delay-Throughput Trade-off
Node-by-Node Windows
Unfairness Problem in End-to-end
Long sessions with larger windows take precedence in intermediate devices
Little's Theorem
Big Questions
What is the avg no. of customers in the system?
– The "typical" no. of packets either waiting in queue or undergoing service
What is the avg delay per customer?
The "typical" time a packet spends waiting in queue plus the service time
Definition
N= l´T
N = No. of customers
l = Arrival rate
T = Time spent by customers (packets) in the system
Interpretation
Little's Theorem expresses crowded systems
Large N associated with long customer delays (T) & vice versa
Not influenced by arrival process distribution, service distribution, service order, etc.
Application
Little's Theorem becomes applicable to deterministic and probabilistic systems
– a situation does not exist where the theorem does not hold
– Often termed as law
Arrivals
Customers (packets) arrive according to a Poisson process
A(t) is a counting process that represents the total number of arrivals that have occurred
from to time t
Poisson Process
A Poisson process is generally considered to be a good model for the aggregate traffic of a
large number of
– Similar and
– Independent users
Merges n independent & identically distributed arrival processes
Each process has arrival rate l/n
So the aggregate process has arrival rate l
No. of arrivals occurring in disjoint time intervals are independent
No. of arrivals in any interval of length t is Poisson distributed with parameter lt
Poisson Distribution
Service Statistics
What is service?
The set of activities performed at the receiving device
Router
– MAC processing
– Lookup
– Forwarding decision
Switch
– Header processing
– Port allocation table
Service distribution
Sn is the service time of the nth customer
Customer (packet) service times have an exponential distribution with parameter m
m is also called service rate
Represents the rate (in customers served per unit time) at which the server operates when
busy
Service times are mutually independent
Also independent of all inter-arrival times
Density function
Service distribution
Commentary
In the context of a packet transmission, independence of inter-arrival and service times
implies,
– Length of an arriving packet does not affect the arrival time of the next packet
Exponential Distribution
Memorylessness
Additional time needed to complete a customer's service in progress is independent of when
the service started
Time up to the next arrival is independent of when the previous arrival occurred
Arrival Occupancy Distribution
System under change
Users (packets) come and leave the system
– System under continuous change of occupancy
It is possible that the times of customer arrivals are in some sense nontypical
Non-Typical Arrival
Typical Arrival
Occupancy distribution
For M/M/1 systems
pn = an for n =0,1,...
Arriving customer finds the system in a "typical" state
Future arrivals are independent of the current number in the system
Receiver Window
LastByteSent – LastByteAcked
Non-Typical Departure
Typical Departure
Occupancy distribution
For M/M/1 systems
dn = an for n =0,1,...
For each time the number in the system increases from n to n+1 due to an arrival, there will
be corresponding decrease from n+1 to n due to departure
Problem Set 2
TCP TimeOut
Suppose that the five measured SampleRTT values are 106, 120, 140, 90 & 115 ms. Compute the
EstimatedRTT after each of these SampleRTT values is obtained, using a value of α = 0.125 &
assuming that the value of EstimatedRTT was 100 ms just before the first of these five samples
were obtained. Compute also the DevRTT after each sample is obtained, assuming a value of β =
0.25 and assuming the value of DevRTT was 5 ms just before the first of these five samples was
obtained. Last, compute the TCP TimeoutInterval after each of these samples is obtained.
Complexity
Each iteration of link state routing protocols
n(n+1)/2 comparisons: O(n2)
More efficient implementations possible: O(nlogn)
Oscillations
Given these costs, finding new routes resulting in new costs
Input Processing
Basics
Two key router functions:
Run routing algorithms/protocol (RIP, OSPF, BGP)
Forwarding datagrams from incoming to outgoing link
Router Functionality
Router Input
Distributed Switching
Given datagram dest., lookup output port using forwarding table in input port memory
Complete input port processing at ‘line speed’
Input port queuing
Fabric slower than input ports combined
Queuing may occur at input queues
Head of Line
Queued datagram at front of queue prevents others in queue from moving forward
Scenario
Drop Tail
Conventional tail drop algorithm
A router buffers as many packets as it can
Simply drops the ones it cannot buffer
If buffers constantly full, network is congested
Tail drop distributes buffer space unfairly among traffic flows
RED Operation
Monitor avg queue size & drop packets based on probabilities
If buffer empty, all incoming packets accepted
As queue grows, P for dropping incoming packet grows
When buffer full, P = 1 all incoming packets dropped
Operation:
Operation
For each packet arrival
if it is an In packet
calculate the average In queue size avg_in ;
calculate the average queue size avg_total ;
If it is an In packet.
if min_in < avg_in < max_in
calculate probability P in
with probability P in , drop this packet;
else if max_in < avg_in
drop this packet.
If it is an Out packet
if min_out < avg_total < max_out
calculate probability Pout;
with probability Pout drop this packet;
else if max_out < avg_total
drop this packet
Operation
Routing Algorithms
Interplay
Routing algorithm determines end-end-path through network
Forwarding table determines local forwarding
– at this router
– for IP destination address in arriving packet’s header
Graph abstraction
Graph: G = (N,E)
N = set of routers = { u, v, w, x, y, z }
E = set of links ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
Cost
Cost could always be 1
Or inversely related to bandwidth
Or inversely related to congestion
Cost of path
(x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)
Algorithms
Key question: What is the least-cost path between u and z?
Routing algorithm: Algorithm that finds that least cost path
Link State
Each node independently calculates best path from it to every possible destination in the
network
The collection of best paths will then form the node's routing tables
Iterative: After k iterations, know path to k destination
Complexity
For n nodes
Each iteration: need to check all nodes, w, not in route discovered set N
Full-mesh: n(n+1)/2
Omega Notation: O(n2)
Key Idea
From time-to-time, each node sends its own distance vector estimate to neighbors
when x receives new DV estimate from neighbor, it updates its own DV using B-F equation
Count to Infinity Problem
Link Cost Changes
Node detects local link cost change
Updates routing info
Recalculates distance vector
If DV changes, notify neighbours
Good news
Bad News!
At time t0 Y detects the link cost change (the cost has changed from 4 to 60). Y computes its new
minimum cost path to X to have a
cost of 6 via node Z. Of course, we can see that this new cost via Z is wrong
But the only information node Y has is that its direct cost to X is 60 and that Z has last told Y that Z
could get to X with a cost of 5. So in order to get to X, Y would now route through Z, fully
expecting that Z will be able to get to X with a cost of 5
So in order to get to X, Y would now route through Z, fully expecting that Z will be able to get to X
with a cost of 5. As of t1 we have a routing loop—in order to get to X, Y routes through Z, and Z
routes through Y.
A routing loop is like a black hole—a packet arriving at Y or Z as of t1 will bounce back and forth
between these two nodes forever or until the routing tables are changed
Poisoned Reverse
Need
Bad news travels very slow, especially if the cost change is large
Ping-pong effect due to looping is undesirable
Nodes are blindly following what is told to them
Solution: Tell a small lie!
– Poison the link
Operation
Performance
Poisoned reverse does not work if more than 3-neighbors are involved in looping
Other techniques such as packet or broadcast ID are incorporated
Methodology
Collect routers into regions, “autonomous systems” (AS)
Each AS within an ISP
ISP may consist of one or more ASes
In same AS run same routing protocol
“intra-AS” routing proutersrotocol
– routers in different
AS run differentintra-AS routing protocol
Gateway router:
– At “edge”
– Has link to router in another AS
Forwarding table configured by both intra- and inter-AS routing algorithm
intra-AS sets entries for internal dests
inter-AS & intra-AS sets entries for external dests
Elastic Aggregates & TE
A Generalized Scenario
Traffic Aggregate
Suppose that a request arrives for downloading a file of size V bytes
V bytes must be transferred from s to t
Number of download requests arriving over T interval is N(T)
V1 , V2 , . . . , VN(T)
Average Requests
Over the interval T, if EV is the average file size
Average requests for an aggregate amount
Offered Load
Dividing both sides by T, we get
– Avg rate at which V(T) grows with time
– Avg rate at which download requests arrive
ρ = λ EV
ρ = Offered load expressed in bytes/sec
λ = Average arrival rate of download requests
Optimal Routing
Feasible Routing
The sum of all flows on a link should stay below the link capacity
x(1) + x(2) + · · · + x(K) ≤ C
Spare capacity
z = C − (x(1) + x(2) + · · · + x(K))
Optimization Problem
Given a network and a set of demands, there may be many feasible routes
To choose one route from a set, define an objective function
Choose the route that optimizes the objective function
Optimal routing is the one that maximizes the smallest spare capacity
Reasonable, because any link in the network has a spare capacity of at least z
Increases chance that a future demand between any pair of nodes finds sufficient free
capacity.
Limitations of Min Hop Routing
Scenario
Disadvantages
Consider that x uses a and b to reach y
It results in non-utilization of direct hops between them
Other source-destination pairs would never use these resources
Network is partitioned
Max Flow
Maxflow (s, t) is a scalar
Indicates the maximum amount of traffic that can be sent from s to t
Exploits all possible paths through the network
– An upper bound on the total bits/sec that can be sent from s to t
Minimum interference
Idealy zero interference
If maxflow (s, t) remains unchanged
Path used for the (a, b) demand does not share any link with the set of paths available for (s,
t)
Non-zero minimum interference
Paths share minimum hops
Problem Formulation
After the (a, b) demand has been routed, the smallest maxflow value among all other (s, t)
pairs is maximized
Example
Consider four flows, w.r.t (a, b).
(30, 15, 6) corresponds to path P1 for (a, b)
(12, 19, 8) corresponds to path P2 for (a, b)
(3, 12, 16) corresponds to path P3
Route P 2 is the minimum interference route for the (a, b) demand
QoS Routing
Single Stream
A single stream session comes with
A given bandwidth requirement
A specified end-to-end delay requirement
Arrives at the network
QoS routing is to find a “good” route for the session
Network Operator
Wider and holistic objectives
– Minimization of total bandwidth consumed
– Maximization of the smallest spare capacity on the links of the network
Tradeoff
End to end
Hop by hop
Two QoS models for IP packet networks
IntServ
– Simulate the “virtual circuit” of ATM or frame relay on layer-3
Sets up an end-to-end route with fixed QoS parameters
DiffServ
Defining several common classes of service with associated queue priorities and drop
precedence on a per-hop basis hops
Nonadditive Metrics
Definition
Nonadditive link metrics cannot be summed over the links of a path to obtain the path metric
Must be aggregated through another way
Example: Bandwidth
Requires d units of BW
The least available link bandwidth along the path should be d
Application
Wider and holistic objectives
– Minimization of total bandwidth consumed
– Maximization of the smallest spare capacity on the links of the network
Implications
What if no path exists?
– S-D get isolated
What if more than one path exists?
BW measurement freq & accuracy is a tradeoff
BW measurement is not exact
Solution
Choose path with highest Prob of having d units
Rate-based Mux
A multiplexer takes input from various streams of traffic and puts them out on a single line
– Used fixed sized frames
Rate matching of heterogeneous sources is required
Example: WFQ
Problem
Find, on connection arrival, a route connecting the SD pair
– Rate to be allocated on that route
– Connection’s delay and rate requirements are satisfied
– Capacity constraints are not violated
– Multi-commodity problem
– NP hard
If not all connections can be admitted due to capacity, select a subset for admission
Problem Formulation
What is the maximum value (revenue) of the minimum weighted carried traffic (Wmin) that
any RRA algorithm can extract from the network?
Non-Rate-Based Multiplexers
Additive Metric
Non-rate muxes are unlike rate-based
– Rate requirement is relieved
Other requirements emerge
– Bit error rate
– Packet Loss Probabilities
– Preferential links or paths
Binary Trie
Forwarding table organized as binary trie
– Essentially a binary tree
Each vertex at level k corresponds k bits prefix
Each vertex has 2 children
– k bit prefix expanded to (k + 1) bit prefix
Route lookup essentially involves tracing 32-bit destination address in the trie to find the
vertex
The entry in the forwarding table that matches the longest prefix
Level-Compressed Tries
Traversal Time
Binary Tree is a graph
Complexity of depth-first traversals is O(n+m)
Complexity then becomes O(n + n-1), which is O(n)
Level Compress
Rather than define a level for each bit of the address
– Define a level for groups of contiguous bits
A simple case of level compression is to have a level for every K bits
For N bits in address, then the number of levels is N/K
Instead of two-way branch from each vertex of the trie 2 K-way branch
Another view of level compression is to say that a subtree of height k is compressed into one
level
Indefinite Flood
Transmission of messages never terminates
– Rule: node that receives a message relays it to all of its neighbors except from which
it received
Level Compress
Instead of two-way branch from each vertex of the trie
– 2 K-way branch
Another view of level compression is to say that a subtree of height k is compressed into one
level
ARPANET Solution
Store enough information in update messages and network nodes
To ensure that each message is transmitted by each node only a finite number of times
– Preferably only once
ARPANET used Sequence Numbers
Operation
When a node j receives a message that originated at some node i
Check if its seq no. > seq no. the message last received from i
Yes: message stored in memory
Transmit to all its neighbors except sender
No: discard
Need-based Updates
Zero seq no allowed only when node is recovering from a crash
– Situation where all of the node's incident links are down
– And it is in the process of bringing links up
Separate seq no. for each origin node
The Problem
Link (2,3) goes down, then link (1,2) goes down, and then link (2,3) comes up while node 2
resets its sequence number to zero
Nodes 2 and 3 exchange their (conflicting) view of the status of the directed links (1 ,2) and
(2, 1)
Both nodes discard each other's update message since it carries a sequence number zero
which is equal to the one stored in their respective memories.
The Solution
Need-based Updates
Zero seq no allowed only when node is recovering from a crash
– Situation where all of the node's incident links are down
– And it is in the process of bringing links up
Separate seq no. for each origin node
The Problem
Link (2,3) goes down, then link (1,2) goes down, and then link (2,3) comes up while node 2
resets its sequence number to zero
Nodes 2 and 3 exchange their (conflicting) view of the status of the directed links (1 ,2) and
(2, 1)
Both nodes discard each other's update message since it carries a sequence number zero
which is equal to the one stored in their respective memories.
The Solution
Inter-AS Connectivity
Problem Set 1
Switching Fabric Performance in Routers
If the maximum queuing delay is (n–1)D for a switching fabric n times faster than the input line
rates. Suppose that all packets are of the same length, n packets arrive at the same time to the n
input ports, and all n packets want to be forwarded to different output ports. What is the maximum
delay for a packet for the (a) memory, (b) bus, and (c) crossbar switching fabrics?
Subnetting
Consider a subnet with prefix 128.119.40.128/26. Give an example of one IP address that can be
assigned to this network.
Subnet Prefixes
Suppose an ISP owns the block of addresses of the form 128.119.40.64/26. Suppose it wants to
create four subnets from this block, with each block having the same number of IP addresses. What
are the prefixes (of form a.b.c.d/x) for the four subnets?
Key idea: Established routes continues to use the previous links till new paths (or links) are
discovered
Assumptions
Decision
Support in INET
Basic DiffServ support
Current queue modules
– DropTailQueue,
– DropTailQoSQueue
– REDQueue
Classifier class: BasicDSCPClassifier
classifyByDSCP() creates new packet classifiers
ANSA
Automated Network Simulation and
Analysis
@Brno University of Technology
Czech Republic
Basic Operation
Each PC is configured to use the virtual router as its default gateway
When a PC broadcasts an ARP frame to find its default gateway, the active HSRP router
responds with virtual router’s MAC address
Active router sends out HELLO periodically
If the active router goes offline, a standby router takes over
HSRP also works for proxy ARP
Support in Mixim
Decider module
– Classifies incoming messages into receivable messages or noise
– Calculates the bit errors for the message
– Info. about current state of channel
Member Functions
simple PriorityQueue extends Queue
{ @class(PriorityQueue);
}
void setSchedulingPriority(short p);
DLL Services
Need
The datalink layer is to the link what the transport layer is to the path
Upper layer necessitates its behaviour
― Reliability
― Flow control
― Error control
Corresponding services must exist
Services Models
Services offered
― Reliable (PPP)
― Unreliable (Ethernet)
Point to point
Multiaccess
Services
Framing
Link access
Error control
Contention control
EDEC Techniques
Block Diagram
Strategy
Capabilities of EDEC
Constraints
All EDEC methods only work below a certain error rate
If we allow any no. of errors in data bits and in check bits, then no EDEC method can
guarantee to work
– Any valid pattern can transform into any other valid pattern
Parity Checks
Operation
Single bit parity detect single bit errors
― Even
― Odd
Limitations
Probability of undetected errors in a frame protected by single-bit parity
― can approach 50 percent
Burst errors cause such nondetections
Checksumming at DLL
Overhead of Parity schemes
Single bit parity schemes provide little protection
To provide enough resilience, redundancy increases linearly
Solution:
― Treat data as k-bit integers
― Generate k-bit overhead
Operation
RFC 1071 addresses Internet checksum algorithm
1s complement of all sums of k-bit integers forms the Internet checksum
― 16-bit for TCP/UDP
Carried in the segment header
Variants
TCP and UDP: checksum computed over all fields
― Header + data
IP: IP header
XTP: one checksum is computed over the header and another checksum computed over
entire packet.
DLL vs Transport
Transport layer is typically implemented in software
Error detection has to be simple and fast
― Checksumming
DLL implemented in NIC
― CRC is more robust
Two-Dimensional Parity
Error Correction
A single error is detectable
– And correctable
Even an error in the parity bits themselves is also detectable and correctable
– Forward error correction (FEC)
Limitations
Two-dimensional parity can also detect (but not correct!) any combination of two errors in a
packet
Cyclic Redundancy Check
Principle
Checksum becomes weak
― Limited illegal rep
CRC more powerful error-detection code
― Views data bits, D, as a binary number
― Choose r+1 bit G
― Goal: choose r CRC bits, R, so <D,R> exactly divisible by G (modulo 2)
Receiver knows G,
Divides <D,R> by G
All zeros
No error
If non-zero remainder: error detected!
Modulo 2
Modulo-2 arithmetic
Addition & subtraction are identical
Both equivalent to bitwise exclusive-or (XOR) of operands
1011 XOR 0101 = 1110
1001 XOR 1101 = 0100
Operation
D.2r XOR R = nG
― Left shift by r then append R
― Multiple of Generator
Mathematical manipulation
D.2r = nG XOR R
If we divide D.2r by G, want remainder R to satisfy
D = 101110, d = 6, G = 1001, r =3
Access Methods
Analysis
Effective throughout depends upon various factors
– No. of active users
– No of resources
– Channel access methods
– Traffic volumes
Probabilistic in nature
Channel Partitioning
Basic Idea
Divide channel into smaller “pieces”
― Time slots
― Frequency
― Code
― Space
Exclusive use
TDM
Time divion multiplexing
Access to channel in "rounds"
Each station gets fixed length slot
Length = packets trans time) in each round
– Unused slots go idle
TDM Example
Example: 6-station LAN, 1,3,4 have pkt, slots 2,5,6 idle
Fraction of time slots being used
– Depends upon the frame size
FDM
Frequency divion multiplexing
― Channel spectrum divided into frequency bands
Each station assigned fixed frequency band
― Unused transmission time in frequency bands go idle
FDM Example
Example: 6-station LAN, 1,3,4 have pkt, frequency bands 2,5,6 idle
Fraction of frequency bands being used
– Depends upon the transmission times of each user
Random Access Protocols
Basic Idea
When node has packet to send
– transmit at full channel data rate R
– No a priori coordination among nodes
Collisions are legal
– Two or more transmitting nodes cause collision
Managing Collisions
How to detect collisions?
― Voltage change
How to recover from collisions?
― Wait &
― Retransmit
ALOHA
Basic Idea
Just say as you like!
Whenever and wherever
― Simplest
― No synchronization
P(success by given node) = P(node transmits) * P(no other node transmits in [t0-1,t0] * P(no other
node transmits in [t0-1,t0]
p . (1-p)N-1 . (1-p)N-1
= p . (1-p)2(N-1)
[choosing optimum p and n very large]
= 1/(2e) = .18
Slotted ALOHA
Basic Idea
Minimize collisions
– Through synchronization
– Through frame size delimiting
Assumption
All frames same size
Time divided into equal size slots
― Time to transmit 1 frame
Nodes start to transmit only slot beginning
Nodes are synchronized
― If 2 or more nodes transmit in slot, all nodes detect collision
Operation
when node obtains fresh frame, transmits in next slot
― if no collision: node can send new frame in next slot
― if collision: node retransmits frame in each subsequent slot with prob. p until success
Performance of Network with 3-Nodes
30% success
How many collisions?
How many empty slots?
Pros
Single active node can continuously transmit at full rate of channel
Highly decentralized: only slots in nodes need to be in sync (master clock)
Simple to implement
Cons
Collisions, wasting slots idle slots
Nodes may be not able to detect collision in time
Clock synchronization needed
Probability of Success
N nodes with many frames to send, each transmits in slot with probability p
Prob that given node has success in a slot = p(1-p)N-1
Prob that any node has a success = Np(1-p)N-1
Max efficiency: find p* that maximizes
Np(1-p)N-1
for many nodes, take limit of Np*(1-p*)N-1
― N goes to infinity
Max efficiency = 1/e = .37
CSMA/CD
Basic Idea
Carrier Sensing
Listen before transmit
If channel sensed idle
– Transmit entire frame
If sensed busy
– Defer transmission
Collisions Detection
– Within short time
Colliding transmissions aborted
Reduces channel wastage
CSMA/CD States
Contention
Transmission
Idle
Binary (Exp) backoff
After mth collision, NIC chooses K at random from {0,1,2, …, 2m-1}
NIC waits K·512 bit times, returns to Step 2
― If idle, start trans
― If busy wait until idle, then transmits
Longer backoff interval with more collisions
CSMA/CD Efficiency
Factors Affecting (1 of 2)
Tprop = max prop delay between 2 nodes in LAN
ttrans = time to transmit max-size frames
Full load
– Worst
Partial load
– Increases till a range
No load
– Poor performance
Efficiency goes to 1
As tprop goes to 0
As ttrans goes to infinity
Efficiency goes to 0 vice versa
1
Efficiency =
1+ 5t prop /ttrans
Reasons
Data field of 0 bytes is sometimes useful
– When a transceiver detects a collision, it truncates the current frame
Stray bits and pieces of frames appear on the cable all the time
To distinguish valid frames from garbage
Collision detection can take as long as 2 τ
Reasons
Prevent a station from completing the transmission of a short frame before the first bit has
even reached the far end of the cable
– where it may collide with another frame
Ethernet Calculation
10-Mbps LAN
Max length = 2500 m (four repeaters: 802.3 specs)
RTT = 50 μsec in the worst case
― Therefore, the minimum frame must take at least this long to transmit
At 10 Mbps, a bit takes 100 nsec
― 500 bits is the smallest frame that is guaranteed to work
To add some margin of safety, round up to 512 bits or 64 bytes
Pipelining
Split the message into smaller packets
– While the later packets arrive on the input queue of the node
– Former packets are leaving or may have already left the output queue
Pipelining Scenario
Decreasing delay by shortening packets to take advantage of pipelining
Pipelining Scenario
The total packet delay over two empty links equals twice the packet transmission time on a
link plus the overall propagation delay
Pipelining Scenario
When each packet is split in two, a pipe lining effect occurs
The total delay for the two half packets equals 1.5 times the original packet transmission
time on a link plus the overall propagation delay
Transmission Errors
Large frames have a somewhat higher error probability than small frames
Probability of error on reasonable-sized
frames is on the order of 10-4 or less
– This effect is typically less important than the other effects
Basic Idea
Route once and switch many times
Set of packets that have the same traffic characteristics are forwarded in the same manner
– Along the route that starts from an ingress node and ends at an egress node of an
MPLS network
MPLS Network Components
Important Parameters
Link utilization
Voice jitter
End to end delay
Traffic Received when FRR vs link failures
Limitations of Go Back N
Retransmissions, or delays waiting for time outs, occur in go back N due to following
Errors in the forward direction
Errors in the feedback direction
Longer frames in the feedback than in the forward directions
Character-based Framing
Character Codes
Character codes such as ASCII provide binary representations
– Keyboard characters and terminal control characters
– Also for various communication control characters
SYN Idle
A string of SYN characters provides idle fill between frames when a sending DLC has no
data to send
– But a synchronous modem requires bits
Transparent Mode
The transparent mode uses a special control character called DLE (data link escape)
― Inserted before the STX character to indicate the start of a frame in transparent mode
― Also inserted before intentional uses of communication control characters within
such frame
Bit-oriented Framing
Bit-oriented Protocols
Bit-oriented synchronous protocol pass variable-length frames
– Image/voice data
– Web data
Dedicated or switched Simplex, half and full duplex
Flags
8-bit sequence (01111110) that delimits a frame's
– Start and End
Procedure
– When DLL detects seq of 5 1s in a row in user data
– Inserts a 0 immediately after the 5th 1 in transmitted stream
DLL at receiver removes inserted 0s by looking for seq of 5 1s followed by stuffed 0s
Problem
Confusion between possible appearances of the flag as a bit string within frame and actual
flag indicating end of the frame
Bit-Stuffing Example
The frame after stuffing never contains more than five consecutive 1's
― Hence flag at the end of the frame is uniquely recognizable
Framing with Errors
Problems with framing
Several peculiar problems arise
When errors corrupt the framing information on the communication link
– Flagging
– CRC
– Length field
Flags
If an error occurs in flag at end of a frame
– The receiver will not detect the end of frame
– Does not check the cyclic redundancy check (CRC)
When next flag detected, receiver assumes CRC to be in position preceding flag
This perceived CRC might be the actual CRC for the following frame
But the receiver interprets two frames as one
Receiver fails to detect the errors with a probability 2-L
L is the length of the CRC
–
Called the data sensitivity problem of DLC
– Even though the CRC is capable of detecting any combination of three or fewer
errors
– A single error that creates or destroys a flag plus a special combination of data bits to
satisfy the perceived preceding CRC, causes an undetectable error
Length Fields
Purpose of Length Field
Basic problem in framing is to inform the receiving DLC where each idle fill string ends
– Where each frame starts
– Where each frame ends
Include length field in the frame header
Partial Solution-2
A similar approach is to put the length field of one frame into the trailer of preceding frame
– Avoids inefficiency of the DECNET approach
– Requires special synchronizing seq after each detected error
Ad hoc Networks
No infrastructure
Nodes themselves
– Transmit
– Receive
– Relay (forward)
An operational area in which nodes randomly placed
Locations follow a spatial distribution
Must communicate with neighbors
– Certain power
Two-node network
connected if x2 − x1 ≤ r
Transmission range of
every node: r(n) ,
where n is the number
of nodes in network
Link Scheduling
MACA
MACAW
Network Capacity
Sum of all active connections
― Simultaneous
― Non interfering
Varies with time
Protocol design determines the effectiveness
Scheduling Constraints
Underlying Assumptions
Multihop wireless network
Topology has already been discovered
Directed graph G(N , E)
― N is the set of nodes
― E is the set of directed edges
An edge (i, j) ∈ E
Transmission from i , addressed to j
Decoded by j, provided that the SIR at j is adequately high
Constraints
The edges can be grouped into subsets
― Edges in a subset can be activated in the same slot
― Receiver in each edge can decode the transmission from the tail (TX) node of the
edge
Slotted time
When such a set, S is activated one packet can be sent across each edge in S
Independent Sets
S1 = {(1, 2), (5, 6), (3, 4)}
S2 ={(2, 3), (1, 5)}
S3 = {(2, 3), (4, 5), (1, 6)}
Centralized Scheduling
Scheduling Problem
Schedule specifies a seq of independent sets to be activated
Static link activation schedule
Allocates MS slots to independent set S
BW allocation follows
Bluetooth Example
Piconet is a centralized TDM system
Master controls the clock
Determining which device gets to communicate in which time slot
Simple Analogy
The basic idea of “bufferless” multiplexing/routing is
– Always forward a packet to an output port regardless of success
Buffering constraints
An arriving stream connection may or may not be admitted, if traffic is already being carried
by the link
Problem is exacerbated for multihop links
Comments
Traffic from a source may be well characterized at the point where it enters the network
After multiplexing at the first hop, the flows become dependent
– This dependence is very difficult to characterize
Problem Set 1
Effect of BER on Channel Performance
Suppose that an 11-Mbps 802.11b LAN is transmitting 64-byte frames back-to-back over a radio
channel with a bit error rate of 10-7 . How many frames per second will be damaged on average?
Ethernet Framing
A 1-km-long, 10-Mbps CSMA/CD LAN (not 802.3) has a propagation speed of 200 m/μsec.
Repeaters are not allowed in this system. Data frames are 256 bits long, including 32 bits of header,
checksum, and other overhead. The first bit slot after a successful transmission is reserved for the
receiver to capture the channel in order to send a 32-bit acknowledgement frame. What is the
effective data rate, excluding overhead, assuming that there are no collisions?
Problem Set 1
Operation of MAC Addressing
Suppose nodes A, B, and C each attach to the same broadcast LAN (through their adapters). If A
sends thousands of IP datagrams to B with each encapsulating frame addressed to the MAC address
of B, will C’s adapter process these frames? If so, will C’s adapter pass the IP datagrams in these
frames to the network layer C? How would your answers change if A sends frames with the MAC
broadcast address?
Performance of ALOHA
Suppose four active nodes—nodes A, B, C and D—are competing for access to a channel using
slotted ALOHA. Assume each node has an infinite number of packets to send. Each node attempts
to transmit in each slot with probability p. The first slot is numbered slot 1, the second slot is
numbered slot 2, and so on.
a. What is the probability that node A succeeds for the first time in slot 5?
b. What is the probability that some node (either A, B, C or D) succeeds in slot 4?
c. What is the probability that the first success occurs in slot 3?
d. What is the efficiency of this four-node system?
Switch Learn-ability
Consider a network in which 6 nodes labeled A through F are star connected into an Ethernet
switch. Suppose that (i) B sends a frame to E, (ii) E replies with a frame to B, (iii) A sends a frame
to B, (iv) B replies with a frame to A. The switch table is initially empty. Show the state of the
switch table before and after each of these events. For each of these events, identify the link(s) on
which the transmitted frame will be forwarded, and briefly justify your answers.
ARP Variants
ARP Broadcast-unicast behaviour
Proxy ARP
Gratuitous ARP
Reverse ARP
Performance
No of broadcast attempts
No of successes
Effect of network size
Multihop performance
Example
inet/examples/inet/tcpsack
Sets up a flow between two hosts with TCP Sack
Outputs files in multiple formats,
Including the pcap format
Router vs Switch
Routing process
― Forwarding process
Switching process
― Port-based MAC learning
ID-based behaviour
― Unicast
― Broadcast
Basis of Comparison
Cost
― All router
― All switch
― Hybrid
Isolation
― Traffic
― Domain
Speed
Complexity
Parameters
Output queue lengths
Output queue length distribution
Output queue length Vs time plots
Number of packets generated and received by hosts
Packet size distribution
Hop count distribution
End to end delay
WLAN Configuration
WiFi Operations
Operations
Synchronization
Authentication
Association
Data Transmission
Handoff
Power management
Mobile IP
Degrees of Mobility
Mobile IP Standard
RFC 3344
Elements
― Home agents,
― Foreign agents,
Foreign-agent registration
Care-of-addresses
Encapsulation (packet-within-a-packet)
Procedures
Agent discovery
Registration with home agent
Indirect routing of datagrams
Indirect Routing
Packet Cable Networks
Background
Packet broadband cable network
― Built on existing broadcast cable TV (CATV) networks
Hybrid fiber coax (HFC) cable networks
― Deployment of optical fiber
― New amplifier technology
Alternative to DSL
Architecture
Tree topology
One-way broadcast
Headend and cable modems
Headend
Operational center of a CATV cable access network
Connected to many distribution nodes via trunk cables
― Coax cable or fiber
Components
Functions of Headend
Receiving broadcast signals from satellite or microwave dishes
Mixing local or recorded TV programming
Assigning channel frequencies to all signals destined for cable distribution
Functions of CMTS
Controlling bandwidth allocation for data traffic to each modem
Enforcing bandwidth allocation policy
Assigning a time slot to each cable modem for transmitting upstream messages
Enforcing QoS policies such as traffic shaping and policing (packet classification based on
QoS classes)
Cable Modem Network Configuration
Cable Model Systems accommodates two way communication
DOCSIS (data over cable service interface specification)
WiMax
Background
IEEE 802.16 is an emerging wireless MAN technology
Originally designed to provide wireless last mile/first mile deployment in a MAN
Also end-user access an alternative to 802.11 family
Mobility support provided
Introduction
Worldwide Interoperability for Microwave Access (WiMAX)
Many basic ideas of 802.16 borrowed from DOCSIS/HFC applied to the wireless setting
Good analogy : Wi-Fi : Ethernet :: WiMAX : DOCSIS/HFC
Architecture
Line-of-Sight(LOS) and tens of Ghz spectrum
Severe atmospheric attenuation
– Suitable in operator network between two nodes with high bandwidth
Many base stations deployed at elevated positions
Components
Digital Subscriber Line
Background
A family of technologies for broadband last-mile solution using existing copper wires
Introduction
Based on two premises
– Discrete multitone (DMT) line code
– Widely deployed twisted pair
Provides upto 7 Mbps (suitable for Internet)
Flexible bandwidth allocation per user demand
Dedicated vs CATV
Architecture
Enterprise CPE includes an integrated access device (IAD)
Or connected through Feeder Distribution Interface
DSL Family
Comparison
IEEE 802.15.4
– A new MAC for LR-WPAN
IEEE 802.11: an “overkill technology”
Bluetooth: High data rate for multimedia applications
Small size network
High power consumption
ZigBee vs Bluetooth
Smaller packets over large network
Mostly Static networks with many, infrequently used devices
Larger packets over small network
Ad-hoc networks
IEEE802.15.4
Features
Channels
– 16 channels in 2450 MHz band
– 10 channels in 915 MHz
– 1 channel in 868 MHz
Over-the-air rates of 250,40& 20 kb/s
Addressing
16 bit short
64 bit extended
Allocation of guaranteed time slots (GTSs)
CSMA-CA channel access
Fully acknowledged data transfer
Low power consumption
Energy detection (ED)
Link quality indication (LQI)
Topology Models
Radio Frequency Identification
Introduction
Presence known if within a certain radius
― Object identified
Do not know exactly the position
Application Areas
Architecture
Traffic Flow