ECE 544 Project 3 Team member BIAO LI
ECE 544 Project 3 Team member: BIAO LI, BO QU, XIAO ZHANG
Assumptions and Address Scheme Assumptions 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)
Our Goal Keep it simple
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
We Do care How to forward a packet How to build a forwarding table
Forwarding Table (@ R 1) ID (Content or Host) Interface C 1 1 H 1 1 C 3 C 2 H 3 2 2 H 2 C 1 C 2 R 5 H 1 2 1 1 R 1 C 3 2 3 R 2 R 3 R 4 H 3
Scenario 1: @host_H 1: get (content_C 2) Forwarding Table@R 1 Forwarding Table @R 2 Forwarding Table @R 5 ID (Content or Interface Host) ID (Content or or Interface ID (Content Interface Host) C 1 1 2 H 1 1 2 C 2 2 C 3 3 2 C 2 C 2 2 1 H 2 2 1 H 3 C 1 3 2 1 R 5 H 1 1 2 1 H 1 C 2 R 1 R 2 Packet Src Dest H 1 C 2 File Packet Src Dest C 2 H 2 C 2 H 1 2 C 3 2 3 R 4 H 3
Then …. . . How to build a Forwarding table?
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 @ R 1 ID (Content or Host) Owner ID C 1 H 1 self H 2 R 5 C 2 H 3 C 3 H 3 R 4 H 2 C 1 C 2 R 5 H 1 2 1 1 R 1 C 3 2 3 R 2 R 3 R 4
Routing Table • need not to be computed every time unless something changed in link-state table Destination Next Hop Cost R 2 1 R 3 R 2 2 R 4 R 2 3 R 5 R 2 2 H 2 C 1 C 2 R 5 H 1 2 1 1 R 1 C 3 2 3 R 2 R 3 R 4 H 3
Then …. . . How to build a Routing table?
Routing Table (shortest path) • need not to be computed every time unless something changed in link-state table (for example: @R 2) Destination Next Hop Cost R 1 port 1 1 R 3 port 3 1 R 4 port 3 2 R 5 H 2 1 port 2 R 5 2 1 R 1 2 3 R 2 R 3 R 4
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. Connect ed? R 1 R 2 R 3 R 4 R 5 R 1 - T F F F R 2 T - T F T R 3 F T - T F R 4 F F T - F R 5 F T F F - R 5 2 1 R 1 2 3 R 2 R 3 R 4
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
Neighbor of R 2 Router ID Interface R 5 2 R 3 3 R 1 1 R 5 2 1 R 1 2 3 R 2 R 3 R 4
Neighbor @ R 5 Router @R 5 R 2 R 2 R 2 R 4 C 1 H 1 Neighbor R 5 R 3 R 1 R 3 H 2 RID Port R 2 2 R 5 1 2 R 1 2 1 C 2 1 2 C 3 1 2 3 R 2 R 3 H 3 R 4 RID Port R 2 2 R 5 2 R 2 1 R 3 3 R 4 2 R 1 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 R 1 receives the message sent by R 2 that <R 1 is neighbor of @R 2, PATH: R 1 - R 2>, R 1 no longer relays the message. R 5 2 1 R 1 2 3 R 2 R 3 R 4
Then …. . . How to build a Resource table?
Host Bootstrapping and Discovery Consider H 1 that first gets configured in R 1 Resourc ID (Content or e table Host) @ R 1 H 1 Owner ID self R 5 H 1 2 1 1 R 1 2 3 R 2 2 R 3 R 4
Resource table in each router resource table @ R 2 ID (Content or Host) Owner ID H 1 R 1 resource table @ R 3 resource table @ R 4 R 5 H 1 2 1 1 R 1 2 3 R 2 2 R 3 R 4
Disconnection of host Do it in the same way! R 5 H 1 2 1 1 X R 1 2 R 2 3 2 1 R 3 R 4
Content Bootstrapping and Discovery Use the same approach as host advertisement resource table ID (Content or Host) Owner ID C 1 H 2 C 1 R 5 H 1 2 1 1 R 1 2 R 2 3 2 1 R 3 R 4 H 3
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.
Packet format Header Extension Payload
Header format All packets have the same header structure! Header | Version 3 bit | | Dest ID | Src ID Type 5 bits | 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
Scenario 2: @host_H 1: get (content_C 2) C 2 C C 2 H 2 C 3 C 1 C 2 R 5 H 1 H 1 R 2 C 3 R 4 H 3
Scenario 3: @host_H 1: get (content_C 1) H 1 H 2 Get C 1 X C 1 Send C 1 H 3 Send C 1 C 2 H 4 C 1 C 3
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.
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 | | R 2 | | R 1 | | random seq 16 bits Header | | Add / DEL | | HOST ID = H 1 | | Owner ID =R 1 | | Len of PATH=1 | R 1 | | extension
Content Discovery Packet | Version 3 bit |Content Discovery | | R 2 | | R 1 | | random seq 16 bits Header | | Add / DEL | | HOST ID = C 1 | | Owner ID = H 1 | | | Len of PATH=1 R 1 | | extension
- Slides: 33