NFD forwarding pipelines

Slides:



Advertisements
Similar presentations
Delivery and Forwarding of
Advertisements

Interest NACK Junxiao Shi, Introduction Interest NACK, aka "negative acknowledgement", is sent from upstream to downstream to inform that.
CPIT 102 CPIT 102 CHAPTER 1 COLLABORATING on DOCUMENTS.
© 2006 Cisco Systems, Inc. All rights reserved. MPLS v2.2—2-1 Label Assignment and Distribution Introducing Typical Label Distribution in Frame-Mode MPLS.
What's inside a router? We have yet to consider the switching function of a router - the actual transfer of datagrams from a router's incoming links to.
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #4 Mobile Ad-Hoc Networks AODV Routing.
IPv6 Mobility David Bush. Correspondent Node Operation DEF: Correspondent node is any node that is trying to communicate with a mobile node. This node.
Routing and Routing Protocols Introduction to Static Routing.
Delivery, Forwarding, and Routing
NFD forwarding pipelines Junxiao Shi,
NFD forwarding pipelines Junxiao Shi,
EDITING TRANSACTIONS OneOffice provides for correction of typographical errors and the occasional times you may decide to change a naming convention or.
Hash, Don’t Cache: Fast Packet Forwarding for Enterprise Edge Routers Minlan Yu Princeton University Joint work with Jennifer.
Layer 2 Switch  Layer 2 Switching is hardware based.  Uses the host's Media Access Control (MAC) address.  Uses Application Specific Integrated Circuits.
Computer Networks Layering and Routing Dina Katabi
Forwarding Hint in NFD Junxiao Shi,
1 Internet Protocol: Forwarding IP Datagrams Chapter 7.
SNAMP: Secure Namespace Mapping to Scale NDN Forwarding Alex Afanasyev (University of California, Los Angeles) Cheng Yi (Google) Lan Wang (University of.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking BGP, Flooding, Multicast routing.
Dead Nonce List Junxiao Shi Bug 1953: persistent loop with short InterestLifetime A B C Interest Nonce=204 lifetime=150 delay=100 delay=20.
CSC 336 Data Communications and Networking Lecture 7d: Interconnecting LAN Dr. Cheer-Sun Yang Spring 2001.
1 Spring Semester 2009, Dept. of Computer Science, Technion Internet Networking recitation #3 Mobile Ad-Hoc Networks AODV Routing.
Access Strategy Junxiao Shi, Problem 2.
NFD forwarding pipelines Junxiao Shi,
Interest NACK Junxiao Shi, Introduction Interest NACK, aka "negative acknowledgement", is sent from upstream to downstream to inform that.
1 Network Layer Lecture 13 Imran Ahmed University of Management & Technology.
Chapter 6 Delivery and Forwarding of IP Packets
NFD forwarding pipelines Junxiao Shi,
Authors: Haowei Yuan, Tian Song, and Patrick Crowley Publisher: ICCCN 2012 Presenter: Chai-Yi Chu Date: 2013/05/22 1.
Border Gateway Protocol (BGP) W.lilakiatsakun. BGP Basics (1) BGP is the protocol which is used to make core routing decisions on the Internet It involves.
Interest NACK Junxiao Shi, Introduction Interest NACK, aka "negative acknowledgement", is sent from upstream to downstream to inform that.
Multiplexing FDM & TDM. Multiplexing When two communicating nodes are connected through a media, it generally happens that bandwidth of media is several.
NFD Permanent Face Junxiao Shi, Outline what is a permanent face necessity and benefit of having permanent faces guarantees provided by.
NFD tables conceptual structure and algorithms Junxiao Shi,
Authors: Matteo Varvello, Diego Perino, and Leonardo Linguaglossa Publisher: NOMEN 2013 (The 2nd IEEE International Workshop on Emerging Design Choices.
NFD Tunnel Authentication Junxiao Shi,
Duplicate Suppression on Multicast Face Junxiao Shi
1 Data Link Layer Lecture 23 Imran Ahmed University of Management & Technology.
1 Version 3.1 Module 6 Routed & Routing Protocols.
Describe basic routing concepts. Routers Interconnect Networks Router is responsible for forwarding packets from network to network, from the original.
RIP Routing Protocol. 2 Routing Recall: There are two parts to routing IP packets: 1. How to pass a packet from an input interface to the output interface.
NFD forwarding pipelines Junxiao Shi,
NFD forwarding pipelines Junxiao Shi,
4 - Conditional Control Structures CHAPTER 4. Introduction A Program is usually not limited to a linear sequence of instructions. In real life, a programme.
1 An SDL Tutorial Two primary elements: –Structure –Identifies the various components of the system, and the communication paths among them. –Components:
NFD forwarding pipelines Junxiao Shi,
ROUTING.
Step-by-step explanation what happens if a L3 device is connected via a L2 vPC: Packet arrives at R R does lookup in routing table and sees 2 equal paths.
NFD Tunnel Authentication
Access Strategy Junxiao Shi,
Forwarding and Routing IP Packets
Chapter 6 Delivery & Forwarding of IP Packets
Internet Networking recitation #4
(edited by Nadia Al-Ghreimil)
LAN switching and Bridges
Improving the Freshness of NDN Forwarding States
1002 Individual Animal Transactions in ZIMS
Dr. John P. Abraham Professor UTPA
Delivery and Routing of IP Packets
Dr. John P. Abraham Professor UTRGV, EDINBURG, TX
Closure Representations in Higher-Order Programming Languages
LAN switching and Bridges
Chapter 10 IGMP Prof. Choong Seon HONG.
Dr. John P. Abraham Professor UTPA
Chapter 3 Part 3 Switching and Bridging
Delivery, Forwarding, and Routing of IP Packets
Evaluations and Trials in Alma
Virtual LAN (VLAN).
10/18: Lecture Topics Using spatial locality
NFD Tunnel Authentication
Presentation transcript:

NFD forwarding pipelines Junxiao Shi, 2016-09-18

Overview Forwarding consists of pipelines and strategies Pipeline: a series of steps that operate on a packet or a PIT entry Strategy: a decision maker on whether, when, and where to forward an Interest

Pipelines incoming Interest Interest loop ContentStore miss ContentStore hit outgoing Interest Interest reject Interest unsatisfied Interest finalize incoming Data Data unsolicited outgoing Data incoming Nack outgoing Nack

Legend in diagrams pipeline building block strategy tables feature face feature

Pipelines Overall Workflow Interest loop Interest reject incoming Interest after receive Interest before expire Interest outgoing Interest ContentStore miss unsatisfy timer Interest unsatisfied ContentStore hit before satisfy Interest incoming Data straggler timer outgoing Data Data unsolicited Interest finalize incoming Nack after receive Nack outgoing Nack

incoming Interest pipeline receive Interest violates /localhost? detect duplicate Nonce with Dead Nonce List N Y Interest loop Y Y N detect duplicate Nonce in PIT entry (drop) PIT insert N is pending? Y cancel unsatisfy & straggler timer ContentStore miss N ContentStore hit CS lookup N Y

detect duplicate Nonce If the Name+Nonce of the incoming Interest appear in Dead Nonce List, or any InRecord or OutRecord in PIT entry contains the same Nonce as the incoming Interest, a duplicate Nonce is detected. If the duplicate Nonce is found in InRecord only, this is a multi-path arrival, and not a loop. If the duplicate Nonce is found in OutRecord or Dead Nonce Table, this is either a multi-path arrival or a loop, and these two reasons are indistinguishable. Nonce is later recorded on an InRecord.

Interest loop pipeline is multi-access face? N reason=Duplicate send Nack Y (drop) Process an Interest that has been considered looped. Keep this simple for now: unconditionally send Nack- Duplicate when duplicate Nonce is detected. Don't enter outgoing Nack pipeline: in-record isn't inserted yet. In the future, strategy could be invoked, because duplicate Nonce may be multi-path arrival instead of loop.

ContentStore miss pipeline This pipeline is entered when an incoming Interest is pending (so ContentStore lookup is unnecessary), or is miss from ContentStore This pipeline will start forwarding the Interest

ContentStore miss pipeline insert InRecord set PIT unsatisfy timer timer event Interest unsatisfied has NextHopFaceId? chosen NextHop face exists? Y N (drop) N Y invoke incoming Interest callback outgoing Interest

set PIT unsatisfy timer Given PIT entry, set an unsatisfy timer which fires when InterestLifetime expires for all unexpired InRecords When the unsatisfy timer fires, Interest unsatisfied pipeline is entered

dispatch incoming Interest to strategy Given PIT entry and incoming Interest, determine which strategy should process this Interest, and trigger that strategy

ContentStore hit pipeline Interest finalize timer event set PIT straggler timer outgoing Data

outgoing Interest pipeline (drop) (drop) Y Y violates /localhost? violates /localhop? N N pick Interest insert OutRecord send Interest

pick outgoing Interest packet Given PIT entry and nexthop, decide the guiders on the outgoing Interest Nonce and InterestLifetime come from an InRecord with longest remaining lifetime, however InRecord with same Face as the nexthop cannot be used InterestLifetime is carried from the original packet without deducting the time elapsed Scope is the most relaxed among all unexpired InRecords The last incoming Interest is picked This is a simple choice until we understand the effect of guiders better

Interest reject pipeline Process an Interest that has been decided that it has nowhere to go cancel unsatisfy & straggler timer set PIT straggler timer timer event Interest finalize

Interest unsatisfied pipeline invoke PIT unsatisfied callback Interest finalize

Interest finalize pipeline need Dead Nonce List insert? Y Dead Nonce List insert N PIT delete

Dead Nonce List insert Dead Nonce List insertion is needed if: Interest is unsatisified, OR Interest has MustBeFresh=yes and Data FreshnessPeriod is shorter than 6 seconds Nonces in OutRecords are inserted to Dead Nonce List.

incoming Data pipeline receive Data violates /localhost? Y (drop) N PIT match Y CS insert foreach PIT entry cancel unsatisfy & straggler timer N Data unsolicited need Dead Nonce List insert? invoke PIT satisfy callback Y Dead Nonce List insert N foreach pending downstream outgoing Data mark PIT satisfied set PIT straggler timer timer event Interest finalize

set PIT straggler timer Given PIT entry, set a straggler timer which fires after a short time Tstraggler = 100ms When the straggler timer fires, PIT entry is deleted The purpose of retaining PIT entry for a short time is to facilitate loop detection and to collect measurement for non-fastest upstreams

Data unsolicited pipeline accept to cache? N (drop) Y CS insert

outgoing Data pipeline violates /localhost? Y (drop) N traffic manager send Data

Pass-through traffic manager Provide a traffic manager that does nothing and merely passes Data packet to the next step

Incoming Nack pipeline is multi-access face? Y receive Nack (drop) N PIT match has out-record with correct Nonce? Y Y mark out-record as Nacked N N trigger strategy: after receive Nack (drop) (drop)

Outgoing Nack pipeline strategy action: send Nack has in-record? is multi-access face? N Y erase in-record send Nack N Y (drop) (drop)

FIB lookup (in strategy) in producer region? has Selected Delegation? Y N N FIB lookup with first Delegation Name has Link object? Y Y in default-free zone? N N Y FIB lookup with Interest Name FIB lookup with SelectedDelegation done choose and set SelectedDelegation

determine whether in producer region Input: regionNames: the router's region names, from configuration interest Algorithm: foreach delegation in Link: foreach regionName in regionNames: if delegation Name is a prefix of regionName, return true and abort these steps return false Note: We consider all delegations, not just SelectedDelegation, to maximize flexibility. This is cheap because there's no table lookup.

determine whether in default-free zone Input: interest, with Link but without SelectedDelegation FIB lookup result for the first delegation Algorithm: if FIB lookup result is the root entry (ndn:/), and the entry has at least one nexthop record, return false return true Note: FIB lookup will never return "no match", because the FIB always has a root entry, but this entry can have no nexthop record. We consider only the first delegation, to minimize table lookup cost. Checking all delegations probably gives better results, but it requires too many lookups.

choose and set SelectedDelegation Input: interest, with Link but without SelectedDelegation FIB Algorithm: foreach delegation in Link, sorted by increasing Preference lookup FIB with delegation Name if a match (with non-zero nexthop records) is found, insert SelectedDelegation field with the index of this delegation, return the match, and abort these steps lookup FIB with Interest Name Note: This is the only operation that requires multiple table lookups, but it happens only once on an Interest's path at the first default-free router.