ece 544 project 3 content based routing neelakantan nurani krishnan shikha kakkar suja srinivasan
TRANSCRIPT
ECE 544 Project 3 Content Based Routing
Neelakantan Nurani Krishnan
Shikha Kakkar
Suja Srinivasan
Assumptions and Address Scheme
Assumptions Each end-host can connect only to one router. Same content may be available at multiple end-
hosts. The next ‘best-hop’ is selected based on the hop
count – the smaller, the better. The links connecting the different network
elements might be lossy (loss probability p). A host can request for multiple contents at a
time.
Assumptions and Address Scheme Assumptions (Continued)
Content locations are dynamic (they change over time).
Number of hosts connected to the network and different content are both less than 255.
Addressing Scheme Routers – identified as 1,2,…. End host IDs are not required in our design Content – identified with the content IDs (0-255)
Bootstrapping and Discovery Algorithm
After boot-up, each end-host will intimate its default router about the content that it has. This information will be propagated throughout the network by the routers.
When a router gets a packet with a certain Content ID for the first time, it will make an entry for that ID in its forwarding table.
If a router receives an update packet for a Content ID for which it already has an entry in its forwarding table, it compares the two hop counts and chooses the one with the smaller value.
Bootstrapping and Discovery Algorithm (Continued)
Update packets, containing information about the content of a end-host, will be sent periodically by each end-host to its default router (as content locations can change).
Update packets will also be triggered when the content advertisement by a host changes (addition/deletion) Every content will have a flag which will identify
whether the received content can be re-advertised by the receiver.
Routing Algorithm Baseline Algorithm
Each router has two tables – Forwarding Table (FT) and Pending Request table (PRT).
An end-host interested in a certain content sends a ‘Request Packet’ to its default router with the desired Content ID. The latter creates an entry in its PRT corresponding to this request and forwards the request based on FT.
The end-host with the desired content gets the request from its default router and prepares a ‘Response Packet’ containing the Content and the Content ID.
Routing Algorithm
Baseline Algorithm (Continued) The Request Packet propagates through the
routers based on FT entries and reaches the source of the content.
Example Forwarding Table Content ID Interface to
send req.No. Of Hops
2 4 1
1 2 2
4 1 1
* * *
* * *
Routing Algorithm Baseline Algorithm (Continued)
The Response Packet propagates through the routers based on PRT entries and reaches the requesting host.
Example Pending Request Table
Content ID OutgoingInterface
2 4
1 5
4 1
* *
* *
Packets Request Packet
TYPE – Type of Packet (2 bits)
CONTENT ID – Uniquely identifies a content (8 bits)
Response Packet
TYPE – Type of Packet (2 bits)
FLAG – Indicates re-advertisement (1 bit)
CONTENT ID – Uniquely identifies a content (8 bits)
CONTENT – Contains the actual content/payload (<1466 Bytes)
TYPE CONTENT ID
TYPE FLAG CONTENT ID CONTENT
Packets (Continued)
Update Packet
TYPE – Type of Packet (2 bits)
CONTENT ID – Uniquely identifies a content (8 bits)
Number of Hops – Number of Hops to reach the Content identified by CONTENT ID (8 bits).
TYPE CONTENT ID Number of Hops
Data Transfer and Reliability Message Forward
The ‘Discovery/Update’ packets will be forwarded through all interfaces except the incoming interface.
The ‘Request/Response’ packets will be forwarded based on the entries in FT & PRT.
ARQ Scheme End-to-End owing to its simplicity.
Example Scenarios
H1
H2
H3
C1
C2
C2
C3
C3
R1 R2 R3 R4
R5
Scenario 2: @host_H1: get (content_C2)
Scenario 2: @host_H1: get (content_C2) : Forwarding Tables
ID PORT HOPS
C1 1 0
C2 2 2
C3 2 2
ID PORT HOPS
C1 1 1
C2 3 1
C3 3 1
ID PORT HOPS
C1 1 2
C2 2 1
C3 2 1
ID PORT HOPS
C1 1 3
C2 2 0
C3 2 0
ID PORT HOPS
C1 2 2
C2 1 0
C3 1 0
R1 R2 R3
R4 R5
Scenario 2: @host_H1: get (content_C2) : Pending Request Tables
ID PORT
C2 1
ID PORT
C2 2
R1 R2
ID PORT
C2 1
R5