ECE 544 Project3 Team member: BIAO LI, BO QU, XIAO ZHANG 1 1
Assumptions and Address Scheme End hosts can only connect to one router Same content available at multiple end nodes the path cost between adjacent router is 1. Host and content can move at any time Naming scheme and eventual address scheme Router ID (statically assigned, range 0~255) End hosts ID (statically assigned, range 0~255) Content ID (statically assigned, range 0~255) 2 2
Our Goal Keep it simple 3 3
We Don't care How to assign a Address to a Host How to assign a Address to a Router How to generate a ID for a Content 4 4
How to build a forwarding table We Do care How to forward a packet How to build a forwarding table 5 5
Forwarding Table (@ R1) ID (Content or Host) Interface C1 1 H1 C3 2 C2
Scenario 1: @host_H1: get (content_C2) Forwarding Table@R1 ID (Content or Host) Interface C1 1 H1 C2 2 C3 H2 Forwarding Table @R2 ID (Content or Host) Interface C1 1 H1 C3 3 C2 2 H2 H3 Packet Forwarding Table @R5 ID (Content or Host) Interface C1 2 H1 C3 C2 1 H2 H3 Src Dest H1 C2 File Packet Src Dest C2 H2 C2 H2 C2 H1 1 C1 R5 2 C3 H1 2 1 2 1 3 R1 R2 R3 R4 H3 H1 C2 7 7
Then … ... How to build a Forwarding table? 8 8
Resource Table maintained at each router contains the location information regarding host and content when ID is content, owner ID is a list of hosts. when ID is host, owner ID is its directly connected router. Resource table @ R1 ID (Content or Host) Owner ID C1 H1 self H2 R5 C2 H3 C3 R4 H2 C1 C2 R5 C3 H1 2 1 2 1 3 R1 R2 R3 R4 H3
Routing Table need not to be computed every time unless something changed in link-state table Destination Next Hop Cost R2 1 R3 2 R4 3 R5 H2 C1 C2 R5 C3 H1 2 1 2 1 3 R1 R2 R3 R4 H3
Then … ... How to build a Routing table? 11 11
Routing Table (shortest path) need not to be computed every time unless something changed in link-state table (for example: @R2) Destination Next Hop Cost R1 port 1 1 R3 port 3 R4 2 R5 port 2 H2 R5 2 2 1 3 R1 R2 R3 R4 12
Link-State Table ( the same at each router ) remain unchanged after routers boot up unless some new router is added or failure of some router is detected. Connected? R1 R2 R3 R4 R5 - T F R5 2 2 1 3 R1 R2 R3 R4 13
Router Bootstrapping and Discovery Each Router find its directly connected neighbors Exchange the information of neighbors Each router would have the same view of the global topology Each router can computes its shortest path to reach other router 14 14
Neighbor Neighbor of R2 Router ID Interface R5 2 R3 3 R1 1 R5 2 2 1 3 15
Neighbor @ R5 Router Neighbor R2 R5 R3 R1 R4 Router Neighbor R2 R5 R3 RID Port R2 2 C1 R5 C2 C3 1 2 H1 1 1 2 1 2 2 3 R1 R2 R3 R4 H3 RID Port R2 2 RID Port R5 2 R3 3 R1 1 RID Port R2 1 R4 2 RID Port R3 1
Loop-free Note that we includes the complete paths as a enumerated list of routers when flooding the message. As long as a router finds itself included in the path, it would ignore this message to avoid path loop. When R1 receives the message sent by R2 that <R1 is neighbor of @R2, PATH: R1- R2>, R1 no longer relays the message. R5 2 2 1 3 R1 R2 R3 R4 17
Then … ... How to build a Resource table? 18 18
Host Bootstrapping and Discovery Consider H1 that first gets configured in R1 Resource table @ R1 ID (Content or Host) Owner ID H1 self R5 R5 H1 H1 2 2 1 1 2 2 1 1 2 3 3 R1 R1 R2 R2 R3 R3 R4 R4 19 19
Resource table in each router resource table @ R2 ID (Content or Host) Owner ID H1 R1 resource table @ R3 ID (Content or Host) Owner ID H1 R1 resource table @ R4 ID (Content or Host) Owner ID H1 R1 R5 R5 H1 H1 2 2 1 1 2 2 1 1 2 3 3 R1 R1 R2 R2 R3 R3 R4 R4 20
Disconnection of host X Do it in the same way! R5 R5 H1 H1 2 2 1 2 2 1 3 3 R1 R1 R2 R2 R3 R3 R4 R4 21
Content Bootstrapping and Discovery Use the same approach as host advertisement resource table ID (Content or Host) Owner ID C1 H1 H2 H2 C1 R5 R5 H1 H1 2 2 1 1 2 2 1 1 2 1 3 3 R1 R1 R2 R2 R3 R3 R4 R4 H3 H3
One forwarding table does all !!! For every packet, the destination is either Host ID or Content ID. The router always find the next-hop from the forwarding table. 23 23
Packet format Header Extension Payload
Header format All packets have the same header structure! Header | Version 3 bit | Type 5 bits | | Dest ID 8 bits | | Src ID 8 bits | | Type: Heartbeat: monitor the liveness of router and host Neighbor: exchange the neighbor info. Host Discovery: host actively joins or leaves the network Content Discovery: content adds to or withdraw from the network Get Content Request Get Content Respond: reply with content data ACK
Data Transfer and Reliability Message Forward Not support Multicast ARQ Scheme receive windows timeout for each data request packet ACK for routing information packet NO ACK for data packet 26 26
Scenario 2: @host_H1: get (content_C2) 27
X Scenario 3: @host_H1: get (content_C1) H1 H2 H3 Send C1 H4 Send C1 28
Advantages and Disadvantages Pros Simple and Scalable Efficient: can choose the nearest provider Automatically forward a packet to other provider if the original one unavailable. Cons Throughput is not perfect by using timeout scheme for data packet. 29
Content Request Packet | Version 3 bit | Request | | Content ID 8 bits | | Src Host ID 8 bits | | offset 16 bits | | size 16 bits | Header extension
Content Respond Packet | Version 3 bit | Respond | | Dest Host ID 8 bits | | Content ID 8 bits | | offset 16 bits | | size 16 bits | | Flags | | Payload | Header extension
Host Discovery Packet | Version 3 bit | Host Discovery | | R2 | | R1 | | random seq 16 bits | | Add / DEL | | HOST ID = H1 | | Owner ID =R1 | | Len of PATH=1 | | R1 | Header extension
Content Discovery Packet | Version 3 bit |Content Discovery | | R2 | | R1 | | random seq 16 bits | | Add / DEL | | HOST ID = C1 | | Owner ID = H1 | | Len of PATH=1 | | R1 | Header extension