Download Term Project Overview

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Asynchronous Transfer Mode wikipedia , lookup

Deep packet inspection wikipedia , lookup

Internet protocol suite wikipedia , lookup

Multiprotocol Label Switching wikipedia , lookup

RapidIO wikipedia , lookup

Wake-on-LAN wikipedia , lookup

Nonblocking minimal spanning switch wikipedia , lookup

Cracking of wireless networks wikipedia , lookup

Serial digital interface wikipedia , lookup

UniPro protocol stack wikipedia , lookup

IEEE 1355 wikipedia , lookup

Transcript
CSE 5346 Spring 2016 Network Simulator
Project
1
Project Overview

Teams of 2-3 students (no more
than 3!!)
– Form teams no later than 2/6/2016
Objective is to develop and deploy a
network simulator, configurable with
basic router and link capabilities
 Simulator runs on a single computer
(i.e. do not need to use a “real”
network connection)
 Each “router” will be distinct,
separately configurable process.

Simulation Project
2
Project Overview

Project is due per schedule, and
scored, in 5 stages
1) Single router, single FIFO output queue per
2)
3)
4)
Removed, per
2/22/16
update.

5)
link
Single router, multiple FIFO queues per link
Single router, multiple queues per link,
different disciplines
Multiple distinct routers (per network
diagram, multiple queues per link, different
disciplines for each flow
Multiple distinct routers, with Flow-AwareNetworking (FAN)
Required data will be logged and
analyzed at each stage
Simulation Project
3
Project Network Topology
Destination a
Subnet 1
Destination b
Destination 1
R4
R2
224.135.7.1
Destination 2
Subnet 2
R7
224.135.7.2
Subnet 3
R1
(“Border
Router”)
R3
Destination 3
224.135.7.3
R5
R6
Destination c
Simulation Project
Destination d
4
Input port functions
line
termination
packet input processing:
 read packets from link
(file)
 manage and record
maximum and average link
transmission rate
 pass packets to input queue
for forwarding
data link layer:
pass-thru, no function
Simulation Project
lookup,
forwarding
link
layer
protocol
(receive)
queueing
switch fabric
(bus, memory, etc.)
packet forwarding:



download specified forwarding
table
Classifier and route selection:
determine output link/queue
based on forwarding table
pass packets to “fabric”
process with designated queue
information
5
Input port functions
line
termination
link
layer
protocol
(receive)
lookup,
forwarding
queueing
switch fabric
datagram
buffer(s)
queueing
link
layer
protocol
(send)
line
termination
fabric processing:
 read and write packets at
“switch rate” (i.e.
immediate)
 one stack of packets per
output port/queue
Simulation Project
6
Output port functions
switch
fabric
datagram
buffer(s)
queueing
output port processing:




link
layer
protocol
(send)
line
termination
link send processing:
process packets from switch
 write packets to output link
fabric process
(file)
Packet scheduler: manage
 manage and record maximum
packets in appropriate queues
and average link transmission
rate
manage specified queuing
discipline, per output queue
record and log average
data link layer:
time/packet/queue
Simulation Project
pass-thru, no function
7
Packet Format
Simplification: All packets will be
fixed-size, 500-octets (bytes)
 No link/MAC layer header/trailer
 40-octet IP Header
– Must be able to handle both IPv4 and
IPv6 (assume IPv4 options filled to 40
octets)

20-octet TCP Header (no options)

440-octets of “data”: random bytes
– Simplification: will use TCP header to
“simulate” UDP
Simulation Project
8
Packet Format

IPv4 Packets
20-byte IPv4 20-byte IP
header
options (nul)

20-byte TCP
header
440-bytes data (random data)
IPv6 Packets
40-byte IPv6 header
(no options)
20-byte TCP
header
440-bytes data (random dummy)
500-byte, fixed, packet size
Simulation Project
9
TCP segment structure
32 bits
URG: urgent data
(generally not used)
source port #
sequence number
ACK: ACK #
valid
# 32-bit words
in header
PSH: push data now
(generally not used)
RST, SYN, FIN:
Connection mgmt.
(setup, teardown
commands)
Internet
checksum
(as in UDP)
Simulation Project
dest port #
acknowledgement number
head
len
C E
WC UAP R SF
R E
checksum
counting
by bytes
of data
(not segments!)
receive window
URG data pointer
options (variable length)
# bytes
rcvr willing
to accept
application
data
(variable length)
10
IPv4 datagram structure
IP protocol version
number
header length
(bytes)
service request (QoS)
max number
remaining hops
(decremented at
each router)
Simulation Project protocol
to deliver payload to
32 bits
hdr. DSCP CE C
ver len
TE
total datagram
length (bytes)
length
fragment
16-bit identifier flgs
offset
upper
time to
header
layer
live
checksum
32 bit source IP address
32 bit destination IP address
options (bytes)
data
(variable length,
typically a TCP
or UDP segment)
Simulation Project
for
fragmentation/
reassembly
(not used for
project)
e.g. timestamp,
record route
taken, specify
list of routers
to visit.
11
IPv6 datagram structure
service request (QoS)
ver
IP protocol
version
number
flow label
class
flow label
hop limit
payload len
next hdr
source address
(128 bits)
destination address
(128 bits)
data
Simulation
Project
protocol
to deliver
payload to
32 bits
Simulation Project
12
Critical Assumptions

First (border) router will accept
packets from 3 sources/links
– Packets will be read from 3 files (“links”)
– simulator must be able to regulate rate
(R) on each simulated link
– configure accordingly

Routing/forwarding table entries will
be provided
– format to follow

Physical/link/MAC layer is null (passthru)
Simulation Project
13
Phase 1: Boundary Router

Three input “links”
– each simulated input “physical/link” must be
configurable to read packets at a specified
rate, R (bits-packets/second)

Three output links
– Single-server, FIFO (best-effort) queuing
at each output port
– each simulated output “physical/link” must
be configurable to write packets (to file) at
a specified rate, R (bits-packets/second)
Simulation Project
14
Phase 1: Boundary Router

TCP-IPv4 packets
– don’t forget to design for IPv6 in future

Provided routing table will include
valid fields with random values
– Phase 1 will require that only destination
IP address be used to access forwarding
table
– some fields may be null-filled

Simplification: Unidirectional flow,
input-to-output, only
Simulation Project
15
Phase 1: Boundary Router

Data collection requirements:
– mean time in residence, Tr, for each
output queue
– maximum time a packet spends in
residence, TR max, for each output queue
– mean depth of queue, w, for each output
queue
– maximum number of items in queue, wmax,
for each output queue
– total number of datagrams sent on each
link
Simulation Project
16
Forwarding Table Format
Provided table will be formatted as:
Source
Network
(4 octets see Note)
Destination
Network
(4 octets)
Destination
Network
Mask
(4 octets)
Next Hop
Router IP
(4 octets)
Output
Port #
(1 octet)
Output
Port
Queue #
(1 octet)
Future
(4 octets)
xxxx
xxxx
xxxx
xxxxx
xxxxx
xxxxx
not used
yyyy
yyyy
yy
yyyy
yyyy
yyyyy
not used
zzzz
zzzzz
zzzz
zzz
zzzzz
zzzzzz
not used
dddd
default
dddd
ddddd
dddd
dddddd
not used
Note: Phase 1 will use IPv4, but design must consider
extension of the table to accommodate IPv6.
Simulation Project
17
Router Design Requirements

Overall router design should be based
on key components of ISA router
architecture
Background
Functions
Primary Forwarding
Functions
Simulation Project
18
Example Router Design
(per-port/link processing)
Forwarding
Table
In
File 1
In
File 2
In
File 3
- read “packets” from input
“link” (file)
- clock & regulate input
rate
-pass packets to Classifier
Module
Classifier module*
- consult local (per link
module) forwarding table
- pass to forwarding module
Forward module*
- forward to appropriate
output port & queue
Switching Fabric
Receiver module*
Scheduling &
Queueing module*
- manage output queue(s) for
the link
- enforce scheduling
discipline per queue
- pass to Sender module
Sender module*
- write to appropriate
output “link” (file)
Tracking & Logging
module
Out
File 2
Out
File 3
- measure and log r, TR per Q.
* Implementation should have this module for EACH output link.
Simulation Project
Out
File 1
19
Example Router Design
(other modules/considerations)

Simulation/router set-up
–
–
–
–

IP version
Input & output data rates, per link
Load routing table
QoS considerations
Data analysis
– Analyze data in logs
– Report results
Simulation Project
20
Phase 1: Submission
Requirements (due Feb. 29, 2016)

Design document
– How it is constructed (modules, data, etc)
– How it works


Live demo of simulation operation
Analysis report
– Number of packets handled/input port
– Number of packets sent on each output link
– r (mean # items in residence) per output link, calculated
and observed
– Maximum R (number of items in residence)
– Tr (mean time in residence) per output link, calculated and
observed
– Maximum TR (time an individual item is in residence)
Simulation Project
21
Phase 2: Boundary Router

Three input “links”
– each simulated input “physical/link” must be
configurable to read packets and place then
in an output queue at a specified rates, R
(bits-packets/second)
– Forwarding table: queue number is valid

Three output links with multiple queues
– Two queues, with round-robin FIFO
scheduling, at each output port
– each simulated output “physical/link” must
be configurable to write packets (to file) at
a specified rate, R (bits-packets/second)
Simulation Project
22
Packet Format – Extra Credit

Beginning with Phase 2, Extra Credit will
be awarded for simulators that accept
variable size packets in stream of IPv4
datagrams.
– allows simulation of M/M/1 performance
– more realistic flow content

The IPv4 total length field will be valid in
the packets.
– IP and TCP header lengths unchanged from
Phase 1

Will also provide input streams with
fixed-length packets identical to Phase 1.
Simulation Project
23
Packet Format – Phases 2+

IPv4 Packets – Fixed sized (M/D/n)
20-byte IPv4 20-byte IP
header
options (nul)
20-byte TCP
header
440-bytes data (random data)
500-byte, fixed, packet size

IPv4 Packets – Extra credit (M/M/n)
20-byte IPv4 20-byte IP
header
options (nul)
20-byte TCP
header
variable-size data field (random data)
Variable packet size
Simulation Project
24
Phase 2: Submission
Requirements (due Mar. 28, 2016)

Design document
– How it is constructed (modules, data, etc)
– How it works


Live demo of simulation operation
Analysis report for Phase 2
– Number of packets handled/input port and queue
– Number of packets sent on each output link
– r (mean # items in residence) per output queue, calculated
and observed
– Maximum R (number of items in residence for each queue)
– Tr (mean time in residence) per output queue, calculated and
observed
– Maximum TR (time an individual item is in residence/queue)
Simulation Project
25
Phase 3: Boundary Router

Three input “links”
– Each simulated input “physical/link” must be
configurable to read packets and place them
in correct output queue at a specified rate,
R (bits or packets per second)
– Forwarding table: queue number and source
IP address is valid
– Output queue placement based on “flow” as
identified by source and destination IP
address (per forwarding table provided
prior to demo)
Simulation Project
26
Phase 3: Boundary Router

Three output links with multiple queues
– Three queues, single-server, at each output
link with WRR discipline
– weighting of each queue must be
configurable at run-time
– each simulated output “physical/link” must
be configurable to write packets (to output
buffer/file) at a specified rate, R (bitspackets/second)
Simulation Project
27
Phase 3: Submission
Requirements (due Apr. 8, 2016)

Design document
– How it is constructed (modules, data, etc)
– How it works


Live demo of simulation operation
Analysis report for Phase 3
– Number of packets handled/input port and queue
– Number of packets sent on each output link
– r (mean # items in residence) per output queue, calculated
and observed
– Maximum R (number of items in residence for each queue)
– Tr (mean time in residence) per output queue, calculated and
observed
– Maximum TR (time an individual item is in residence/queue)
Simulation Project
28
Phase 4: Boundary Router

Three input “links”
– each simulated input “physical/link” must be
configurable to read packets and place them
in an output queue at a specified rate, R
(bits-packets/second)
– Forwarding table: queue number, source IP
address, TCP port numbers & DSCP fields
are valid
– Boundary selects route based on flow
criteria and “marks” packets (DSCP).
– Output links must be “interconnected” to
other routers (modules) per defined topology
Simulation Project
29
Phase 4: Boundary Router

Three output links with multiple queues
– Three queues, single-server, at each output
link with TBD specified disciplines for each
queue
– Each simulated output “physical/link” must
be configurable to write packets (to file) at
a specified rate, R (bits-packets/second)
– Each output is interconnected with the
input of the “next-hop” router per the
network topology specified herein (above)
Simulation Project
30
Phase 4: All Core Routers

Three input “links”
– Each simulated input “physical/link” must be
configurable to read packets and place
them in an output queue at a specified rate,
R (bits-packets/second)
– Forwarding table: queue number, source IP
address, TCP port numbers & DSCP fields
are valid
– Router selects route based on flow criteria
and “remarks” packets as appropriate.
Simulation Project
31
Phase 4: All Core Routers

Three output links with multiple queues
– Multi-queue, single-server, at each output
link: one queue best-effort, one with TBD
specified discipline
– Each simulated output “physical/link” must
be configurable write packets (to file) at a
specified rate, R (bits-packets/second)
– Output links are interconnected with the
input of the “next-hop” router, or to
destination output (file) per the network
topology specified herein (above)
Simulation Project
32
Phase 4: Submission
Requirements (due Apr. 25, 2016)
Final Project Report

Analysis of queue performance for Phase 4
– Number of packets handled/input port and queue
– Number of packets sent on each output link
– r (mean # items in residence) per output queue, calculated
and observed
– Maximum R (number of items in residence for each queue)
– Tr (mean time in residence) per output queue, calculated
and observed
– Maximum TR (time an individual item is in residence/queue)
– Average time in network for packets in each defined flow.
Simulation Project
33
Phase 4: Submission
Requirements (due Apr. 25, 2016)
Final Project Report

Comparison of DiffServ (codepoint/aggregation)
approach with IntServ (discrete flows) approach
– Comparison of queue performance metrics for various
disciplines evaluated in the project
– Will require metrics collected from phase 4 using both
approaches (i.e., phase 3 and phase 4 scheduling
disciplines implemented in your phase 4 network
simulator)

Observations/conclusions
– Variations in QoS characteristic observed for various
scheduling disciplines
Simulation Project
34
Phase 4: Submission
Requirements (due Apr. 25, 2016)
TEAM PRESENTATIONS (4/25/2016 – 5/2/2016):

Presentation of your project to the class by your
team
– MAXIMUM of 15 minutes per team
– Brief live demo of simulation operation
– Graphical representation and discussion of results
observed (queue performance metrics) from each
project phase
– Brief discussion of analysis and observations
– Conclusions
Simulation Project
35