20
WOW NETWORK SIMULATOR Duke Lee, Mustafa Ergen, Jeff Ko WOW WOW UC Berkeley UC Berkeley

WOW NETWORK SIMULATOR Duke Lee, Mustafa Ergen, Jeff Ko WOW WOW UC Berkeley UC Berkeley

Embed Size (px)

Citation preview

Page 1: WOW NETWORK SIMULATOR Duke Lee, Mustafa Ergen, Jeff Ko WOW WOW UC Berkeley UC Berkeley

WOW

NETWORK SIMULATOR

Duke Lee, Mustafa Ergen, Jeff Ko

WOWWOW UC BerkeleyUC Berkeley

Page 2: WOW NETWORK SIMULATOR Duke Lee, Mustafa Ergen, Jeff Ko WOW WOW UC Berkeley UC Berkeley

WOW

Simulator

• Animator inputDefine geographical distributionDefine the functional parameters of the network nodes.Define network layer protocolsDefine traffic characteristics down to each node.

• Simulator coreNetwork ModulesDrive the event.

• Analyzer outputStatistical graphing tool.

• Visual Tracer outputPacket-level visualization tool. (NAM)

Page 3: WOW NETWORK SIMULATOR Duke Lee, Mustafa Ergen, Jeff Ko WOW WOW UC Berkeley UC Berkeley

WOW

Simulator

• Finite State Machine

• Event Driven Simulation

• Seed

• State List

• Simulation Functions

• Handler Functions

Page 4: WOW NETWORK SIMULATOR Duke Lee, Mustafa Ergen, Jeff Ko WOW WOW UC Berkeley UC Berkeley

WOW

Event Scheduler

CHANNEL

INFO.

NODE

• Application

• WTP– timers

• IP– DSDV, etc.

• Link Layer– Timers,WTRP

• Channel– Packet

transmission

• Node Info– position

– topology

SC

HE

DU

LE

RPHSICAL LAYER

LINK LAYER

IPTCP UDP

ICMP

QUEUE

Application

Page 5: WOW NETWORK SIMULATOR Duke Lee, Mustafa Ergen, Jeff Ko WOW WOW UC Berkeley UC Berkeley

WOW

Scheduler Algorithm

• struct event {struct event *next;

struct event *prev;

unsigned long expiration;

unsigned long data;

void (*handler)(unsigned long);

• }

Page 6: WOW NETWORK SIMULATOR Duke Lee, Mustafa Ergen, Jeff Ko WOW WOW UC Berkeley UC Berkeley

WOW

Event Scheduler

• add_timer( event *ev);

• delete_timer(event *ev);

• mod_timer(event *ev);

• while(1) {tmp=take_event();

update_clock ;

update_position;

tmp.handler();

• }

SIM

UL

AT

OR

Event Q

ueue

add_event

take_event

Page 7: WOW NETWORK SIMULATOR Duke Lee, Mustafa Ergen, Jeff Ko WOW WOW UC Berkeley UC Berkeley

WOW

Event Queue

• Packet Transmission

• Timer initialization

tx_1E

vent Queue

rx_5rx_2

rx_1

CH

AN

NE

L

Packet transmission

timer_7tm_7

Page 8: WOW NETWORK SIMULATOR Duke Lee, Mustafa Ergen, Jeff Ko WOW WOW UC Berkeley UC Berkeley

WOW

Simulator Functions

• update_topology();• record_topology();• record_transmission();• record_reception();

• Record Function is a periodic event which periodically starts monitoring

SIM

UL

AT

OR

Event Q

ueue

record_function

record_topology

Output F

ilesrecord_transmission

record_reception

Page 9: WOW NETWORK SIMULATOR Duke Lee, Mustafa Ergen, Jeff Ko WOW WOW UC Berkeley UC Berkeley

WOW

Architecture

• Overall Design

DEV1ANIMATORGUI

DEV2

SCHEDULER

…DEV3

ANALYZERGUI

VISUALTRACER

GUI

SIMULATORMODULE

LINUX MODULES

CHANNELMODULE

StateList

StateList

StateList

INFO INFO INFO

Page 10: WOW NETWORK SIMULATOR Duke Lee, Mustafa Ergen, Jeff Ko WOW WOW UC Berkeley UC Berkeley

WOW

Interface

• Initialize_simulation;

• Initialize_topology;

• Initialize_traffic;

• Initialize_record_function;

• Main Loop

NetworkModule

MO

NIT

OR

ING

CBR

CHANNEL

SC

HE

DU

LE

R

[1]

[2]

[3]

[4]

[5]

Page 11: WOW NETWORK SIMULATOR Duke Lee, Mustafa Ergen, Jeff Ko WOW WOW UC Berkeley UC Berkeley

WOW

[1] CBR-Data Traffic

• used to send periodic packet to the module.

• sits in the Logical Link Control above the network module.

• transmit (received something from the top layer)

– int tx_handler (struct device *dev, struct sk_buff * skb)

• receive

– int app_rx (struct device * dev, struct sk_buff * inskb, unsigned short network_proto)

Page 12: WOW NETWORK SIMULATOR Duke Lee, Mustafa Ergen, Jeff Ko WOW WOW UC Berkeley UC Berkeley

WOW

[2] Scheduler

• used to send data to channel module

• transmit first schedule a event and wait about a transmission time.– int transmit (struct device *dev, struct sk_buff skb)

• called when the module get the event from the scheduler.– received something from the bottom layer.– void rx_handler(struct device *dev , struct sk_buff *skb)

Page 13: WOW NETWORK SIMULATOR Duke Lee, Mustafa Ergen, Jeff Ko WOW WOW UC Berkeley UC Berkeley

WOW

[3] Channel

• scheduler to channel

– void _transmit (struct device * dev)

• channel go through for each node and assign packet reception for those who can get the packet.

• channel to scheduler

– void add_timer (struct timer_list * timer)

Page 14: WOW NETWORK SIMULATOR Duke Lee, Mustafa Ergen, Jeff Ko WOW WOW UC Berkeley UC Berkeley

WOW

[4] Monitoring Functions I• void record_topology (struct simulation_struct * siminfo,

struct device *device_list, struct device * dev, float time, float difftime);

• void start_transmission (struct simulation_struct * siminfo,

struct device * sender, float time);

• void end_transmission (struct simulation_struct * siminfo,

struct device * sender, float time);

• void start_reception (struct simulation_struct * siminfo, struct device * sender, float time);

• void end_reception (struct simulation_struct * siminfo,

struct device * sender, float time);

Page 15: WOW NETWORK SIMULATOR Duke Lee, Mustafa Ergen, Jeff Ko WOW WOW UC Berkeley UC Berkeley

WOW

[4] Monitoring Functions II

• void record_transmission (struct simulation_struct * siminfo,

struct device * device_list, struct device * sender,

unsigned char * packet, float time);

• void record_reception (struct simulation_struct * siminfo,

struct device * device_list,

struct device * sender, unsigned char * packet,

float time);

• printpacketinfo (* packet); needed for different packet types.

Page 16: WOW NETWORK SIMULATOR Duke Lee, Mustafa Ergen, Jeff Ko WOW WOW UC Berkeley UC Berkeley

WOW

[5] Inside Functions

• Randomize Functions

• basic random function should be used for determinism.

– unsigned long net_random(void);

Page 17: WOW NETWORK SIMULATOR Duke Lee, Mustafa Ergen, Jeff Ko WOW WOW UC Berkeley UC Berkeley

WOW

Conclusion

• Unique Simulator Functions• Specific Handler Functions• Linux Scheduler Functions• General Event Type• NAM

Page 18: WOW NETWORK SIMULATOR Duke Lee, Mustafa Ergen, Jeff Ko WOW WOW UC Berkeley UC Berkeley

WOW

NAM

• Allows backward and forward run

• Node variables: color,shape …

• Node marking

• Variable Tracing

• Annotation

• Node Exec Button

• Save frames as a movie

Page 19: WOW NETWORK SIMULATOR Duke Lee, Mustafa Ergen, Jeff Ko WOW WOW UC Berkeley UC Berkeley

WOW

Appendix I

• Transport protocol create sk_buff from output buffers

• While device drivers create them for incoming data.

TCP

IP

MAC

Dev.

sk_buff

sk_buff

Page 20: WOW NETWORK SIMULATOR Duke Lee, Mustafa Ergen, Jeff Ko WOW WOW UC Berkeley UC Berkeley

WOW

Appendix II

• struct cbr_struct {

• struct cbr_struct * next;

• unsigned long start_time;

• struct device * source;

• struct device * dest;

• struct timer_list cbr_timer;

• int packetsize;

• int numpackets;

• int bandwidth;

• void * handler;

• };

• struct timer_list {

• struct timer_list *next;

• struct timer_list *prev;

• unsigned long expires;

• unsigned long data;

• void(*function)(unsigned long);

• };

• sk_buff• sk – pointer to owning socket• stamp – arrival time• dev - pointer to receiving/transmiting device• h- pointer to transport layer header• nh- pointer to network layer header• mac- pointer to link layer header• dst – pointer to dst_entry• cb –TCP per –packet control information• len – actual data length• csum- checksum• protocol- packet network protocol• truesize- buffer size• head- pointer to head of buffer• data- pointer to data head• Tail- pointer to tail• End- pointer to end• Destructor-pointer to destruct function