* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Term Project Overview
Asynchronous Transfer Mode wikipedia , lookup
Deep packet inspection wikipedia , lookup
Internet protocol suite wikipedia , lookup
Multiprotocol Label Switching wikipedia , lookup
Wake-on-LAN wikipedia , lookup
Nonblocking minimal spanning switch wikipedia , lookup
Cracking of wireless networks wikipedia , lookup
Serial digital interface wikipedia , lookup
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