Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Link State Protocol Design by Jignesh Patel Palanivel Rathinam Vishwesh Tendolkar
Overview <ul><li>Representation of routers and networks </li></ul><ul><li>Assumptions </li></ul><ul><li>Routing protocol p...
Representation of routers and networks <ul><li>Each router will be a process identified by a unique id </li></ul><ul><ul><...
Contd. <ul><li>The command line arguments for the above network topology is </li></ul><ul><ul><ul><li>Router RA 2000 2001 ...
Assumptions <ul><li>No hierarchical routing </li></ul><ul><li>All route processes run on the same machine </li></ul><ul><l...
Routing protocol packets <ul><li>There are five types of packets. Each packet is identified by the packet type in common h...
Implementation requirements <ul><li>Thread </li></ul><ul><li>Timers </li></ul><ul><ul><li>Single-shot </li></ul></ul><ul><...
Protocol data structures <ul><li>Router ID – 32 bit number </li></ul><ul><li>Routing table  </li></ul><ul><li>Interface li...
Contd. <ul><li>Interface data structure </li></ul><ul><ul><li>Interface output cost – expressed in link state metric </li>...
Contd. <ul><li>Neighbor list </li></ul><ul><li>Neighbor data structure </li></ul><ul><ul><li>State </li></ul></ul><ul><ul>...
Contd. <ul><li>List of router LSA (this is the link state information/database. This is generated for each router in the n...
Contd. <ul><li>Neighbor state machine </li></ul>DOWN INIT EX-START 2-WAY EXCHANGE LOADING FULL HELLO RECEIVED ONE-WAY RECE...
Contd. <ul><li>Routing table structure </li></ul><ul><ul><li>Destination type </li></ul></ul><ul><ul><li>Destination ID </...
Implementation issues <ul><li>We are not using TCP based connection for information exchange, although some routing protoc...
Contd. <ul><li>Our link state protocol uses UDP for its communication </li></ul><ul><li>Presentation layer is binary </li>...
Protocol headers <ul><li>The link state protocol is layered. It has a common header which is given below </li></ul>Version...
Contd. <ul><li>Packet format for the hello protocol </li></ul>Hello Interval = 10msec Dead time Interval = 5sec Neighbor l...
Contd. <ul><li>All link state messages share a common header which is depicted below </li></ul>Age = 5 Sequence number = 3...
Contd. <ul><li>The link state advertisement includes information about the link and cost metric. We have used the metric f...
Contd. <ul><li>Link state updates. When a router receives a link state request packet during database synchronization or a...
Contd. <ul><li>The database description packet is shown below </li></ul>Interface MTU = 512 M I M/S UNUSED DD SEQUENCE NUM...
Questions / Suggestions <ul><li>?/ ! </li></ul>
References <ul><li>RFC 2328, OSPF v2 </li></ul><ul><li>Routing in the Internet – by Christin Hieutema </li></ul><ul><li>CS...
Upcoming SlideShare
Loading in …5
×

Link State Protocol

7,359 views

Published on

Representation of routers and networks
Assumptions
Routing protocol packets
Implementation requirements
Protocol data structures
Implementation issues
Protocol headers

Published in: Technology
  • Be the first to comment

Link State Protocol

  1. 1. Link State Protocol Design by Jignesh Patel Palanivel Rathinam Vishwesh Tendolkar
  2. 2. Overview <ul><li>Representation of routers and networks </li></ul><ul><li>Assumptions </li></ul><ul><li>Routing protocol packets </li></ul><ul><li>Implementation requirements </li></ul><ul><li>Protocol data structures </li></ul><ul><li>Implementation issues </li></ul><ul><li>Protocol headers </li></ul>
  3. 3. Representation of routers and networks <ul><li>Each router will be a process identified by a unique id </li></ul><ul><ul><li>No configuration files - command line arguments </li></ul></ul><ul><ul><li>Port numbers play the role of interfaces </li></ul></ul>2000 2001 3000 RA RB RC
  4. 4. Contd. <ul><li>The command line arguments for the above network topology is </li></ul><ul><ul><ul><li>Router RA 2000 2001 </li></ul></ul></ul><ul><ul><ul><li>Router RB 2000 3000 </li></ul></ul></ul><ul><ul><ul><li>Router RC 2001 3000 </li></ul></ul></ul><ul><li>Constraints: If a new node is to be added or an existing node is to be deleted, should restart the router process </li></ul>
  5. 5. Assumptions <ul><li>No hierarchical routing </li></ul><ul><li>All route processes run on the same machine </li></ul><ul><li>Routing computation is decoupled from the protocol </li></ul>
  6. 6. Routing protocol packets <ul><li>There are five types of packets. Each packet is identified by the packet type in common header </li></ul><ul><li>Type 1 packet – Hello </li></ul><ul><li>Type 2 packet – Database Description </li></ul><ul><li>Type 3 packet – Link state request </li></ul><ul><li>Type 4 packet – Link state update </li></ul><ul><li>Type 5 packet – Link state acknowledgment </li></ul>
  7. 7. Implementation requirements <ul><li>Thread </li></ul><ul><li>Timers </li></ul><ul><ul><li>Single-shot </li></ul></ul><ul><ul><li>Interval – avoid synchronization by adding small random values </li></ul></ul><ul><li>LSA type – Router LSA </li></ul><ul><li>List manipulation primitives </li></ul>
  8. 8. Protocol data structures <ul><li>Router ID – 32 bit number </li></ul><ul><li>Routing table </li></ul><ul><li>Interface list </li></ul><ul><li>Interface data structure </li></ul><ul><ul><li>Type </li></ul></ul><ul><ul><li>IP interface address </li></ul></ul><ul><ul><li>IP interface mask </li></ul></ul><ul><ul><li>Hello interval </li></ul></ul><ul><ul><li>Router dead interval </li></ul></ul><ul><ul><li>Delay </li></ul></ul><ul><ul><li>Hello timer – fires hello packets every hello interval </li></ul></ul><ul><ul><li>Neighbor router </li></ul></ul>
  9. 9. Contd. <ul><li>Interface data structure </li></ul><ul><ul><li>Interface output cost – expressed in link state metric </li></ul></ul><ul><ul><li>Retransmit interval – number of seconds between LSA retransmissions </li></ul></ul><ul><ul><li>Interface state (DOWN/UP) </li></ul></ul><ul><li>Interface state machine </li></ul>DOWN UP Interface up
  10. 10. Contd. <ul><li>Neighbor list </li></ul><ul><li>Neighbor data structure </li></ul><ul><ul><li>State </li></ul></ul><ul><ul><li>Inactivity timer – single-shot timer whose length is router dead interval </li></ul></ul><ul><ul><li>Master/slave </li></ul></ul><ul><ul><li>Database description sequence number </li></ul></ul><ul><ul><li>Last DD packet received (DD header) </li></ul></ul><ul><ul><li>Neighbor ID – router ID of neighboring router – this is learned after receiving the hello packet </li></ul></ul><ul><ul><li>Neighbor IP address </li></ul></ul>
  11. 11. Contd. <ul><li>List of router LSA (this is the link state information/database. This is generated for each router in the network) </li></ul><ul><li>Link state retransmission list </li></ul><ul><li>Link state request list </li></ul>
  12. 12. Contd. <ul><li>Neighbor state machine </li></ul>DOWN INIT EX-START 2-WAY EXCHANGE LOADING FULL HELLO RECEIVED ONE-WAY RECEIVED TWO -WAY RECEIVED NEGOTIATION DONE EXCHANGE DONE LOADING DONE
  13. 13. Contd. <ul><li>Routing table structure </li></ul><ul><ul><li>Destination type </li></ul></ul><ul><ul><li>Destination ID </li></ul></ul><ul><ul><li>Address mask </li></ul></ul><ul><ul><li>Cost </li></ul></ul><ul><ul><li>Next hop – router ID </li></ul></ul>
  14. 14. Implementation issues <ul><li>We are not using TCP based connection for information exchange, although some routing protocols use it (BGP) </li></ul><ul><li>Raw IP cannot be used to make processes communicate on the same machine. Since Raw IP is void of any transport layer protocol and hence the ports, processes should use the protocol number in IP to identify packets destined to them. This approach is not feasible </li></ul><ul><li>UDP although unreliable helps communication between multiple processes through ports. Also UDP has a built in checksum calculation </li></ul>
  15. 15. Contd. <ul><li>Our link state protocol uses UDP for its communication </li></ul><ul><li>Presentation layer is binary </li></ul><ul><li>Java is used as the programming language </li></ul>
  16. 16. Protocol headers <ul><li>The link state protocol is layered. It has a common header which is given below </li></ul>Version # = 1 Type = {1,…5} Packet length (no. of words including header) Router ID = R1
  17. 17. Contd. <ul><li>Packet format for the hello protocol </li></ul>Hello Interval = 10msec Dead time Interval = 5sec Neighbor list = {R2,R3,R1} …
  18. 18. Contd. <ul><li>All link state messages share a common header which is depicted below </li></ul>Age = 5 Sequence number = 3 Link state ID = 2000 Advertising Router = R1
  19. 19. Contd. <ul><li>The link state advertisement includes information about the link and cost metric. We have used the metric from EIGRP to include delay, bandwidth and reliability </li></ul># links = 1 Link ID = R1 Link Data = 2000 Metric = w1 * cost + w2* delay + w3* bandwidth
  20. 20. Contd. <ul><li>Link state updates. When a router receives a link state request packet during database synchronization or a multiple LSAs from neighbors, it sends a LSU. The packet format is shown below </li></ul># LSAs = 1 Link state advertisements …
  21. 21. Contd. <ul><li>The database description packet is shown below </li></ul>Interface MTU = 512 M I M/S UNUSED DD SEQUENCE NUMBER = time of day LSA HEADER
  22. 22. Questions / Suggestions <ul><li>?/ ! </li></ul>
  23. 23. References <ul><li>RFC 2328, OSPF v2 </li></ul><ul><li>Routing in the Internet – by Christin Hieutema </li></ul><ul><li>CS526 Manuscript – Dr. Deep Medhi & Karthik Ramaswamy </li></ul>

×