25
15-441: Recitation 6

15-441: Recitation 6. Outline Project 1 Wrap up Project 2 Intro Questions

Embed Size (px)

Citation preview

Page 1: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

15-441: Recitation 6

Page 2: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

Project 2: IRC Routing Daemon Focus: not really IRC anymore

All about routing: link-state

You NEED a project parnterYou may NOT work alone

Page 3: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

Finding a Project Partner

This is very important, you will spend hours and hours with this person

Start looking soon, inquire:Class schedulesAdditional constraints: research/work/lifeHopes & desires: striving for 100%? 80%?Skills: someone good at routing logic and

someone good at coding?

Page 4: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

Post a Personal!

Talk to studentsAfter class and in recitation

Additionally, mail the bboard:

Hi, my name is George. My class schedule is XXXXX. I have a job and I work from X-Y on days A and B….

Page 5: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

IRC Servers and Routing

Page 6: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

New Definitions Node – IRC server + Routing Daemon nodeID – unique node identifier Neighbor – node’s A and B are neighbors if there

is a virtual link between them Forwarding port – same as IRC port Local port – TCP port for serverdaemon Routing port – UDP port on daemon OSPF – link-state protocol similar to the one you’ll

be implementing Routing table – used to store paths

Page 7: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

Inter-Daemon Communcation

Page 8: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

Link-state Routing Protocols Protocols with a global view of the network

Every daemon knows about every daemonEvery daemon knows connectivity graph

Routing table constructed using shortest path tree

Flooding is used to propagate routing information

Page 9: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

LSA: Link State Announcement

Version: always 1TTL: initial(32) value--; every hopType: advertisement(0), ACK(1)sender nodeID: original sendersequence number: ++ per LSA

num ______: # of entries

Link entries: nodeID of neighborsUser entries: NICKs on serverChannel entries: channels on server

Page 10: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

LSAs: When to Generate

Generate LSAs periodicallySpecified interval

Generate LSAs on-demand:User joins or quitsFirst user on server to join a channelNeighbor is detected as down (timeout)

Page 11: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

LSA Propagation from nodeID 1

#perl#C

#perl

#perl

#perl#C

#C

#C

V(1), TTL(32), T(0) SEQ(50)

snodeID(1)L(2), U(0), C(1)

23

#linux

LSALSA

Page 12: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

#perl#C

#perl

#perl

#perl#C

#C

#C

V(1), TTL(32), T(0) SEQ(50)

snodeID(1)L(2), U(0), C(1)

23

#linux

LSA

LSALSA

LSALSA

LSA Propagation from nodeID 1

Page 13: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

#perl#C

#perl

#perl

#perl#C

#C

#C

V(1), TTL(32), T(0) SEQ(50)

snodeID(1)L(2), U(0), C(1)

23

#linux

LSA

LSA

LSA Propagation from nodeID 1

Assume LSA from 2 got to node 5 before the LSA from 3

LSA

LSA

LSA

Page 14: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

#perl#C

#perl

#perl

#perl#C

#C

#C

V(1), TTL(32), T(0) SEQ(50)

snodeID(1)L(2), U(0), C(1)

23

#linux

LSA

LSA Propagation from nodeID 1

Assume LSA from 4 got to node 6 before the LSA from 5

Page 15: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

Details Daemon Daemon: UDP Use acks to make reliable Don’t panic, sample UDP code going to be

released

Page 16: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

Computing Routing Tables At every node:

Compute shortest past from every node to every node

Create next hops table

We will see in the following slides…

Page 17: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

Inter-Server Communcation

Page 18: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

Routing: Posting to #perl

#perl#C

#perl

#perl

#perl#C

#C

#C

PERL ROCKS!

PRIVMSG

PRIVMSG

PRIVMSG

PRIVMSG

Page 19: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

PRIVMSGPRIVMSG

Understanding the Routing

#perl#C

#perl

#perl

#perl#C

#C

#C

#CROCKS!

PRIVMSGPRIVMSG

PRIVMSG

Page 20: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

#perl#C

#perl

#perl

#perl#C

#C

#C

Node 1

Page 21: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

Server/Daemon Communication

Page 22: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

Server Daemon Comm. Server and Daemon need to communicate Server notifies daemon of updates

Networking details:Server Daemon: TCP

Page 23: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

Server and Daemon Cmds Commands from server to daemon:

ADDUSER: adds a userADDCHAN: adds a channelREMOVEUSER: deletes a userREMOVECHAN: deletes a channelNEXTHOP: nodeID of next hop for targetNEXTHOPS: next hop, given a targetUSERTABLE: user routing tableCHANTABLE: channel routing table

Page 24: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

Announcements

The rest of the details are going to be in the handout

Page 25: 15-441: Recitation 6. Outline  Project 1 Wrap up  Project 2 Intro  Questions

Questions?