FARADS Forwarding Directives Associations and Rendezvous Aaron Falk

  • Slides: 34
Download presentation
FARADS Forwarding Directives, Associations, and Rendezvous Aaron Falk, Bob Braden USC ISI September 17,

FARADS Forwarding Directives, Associations, and Rendezvous Aaron Falk, Bob Braden USC ISI September 17, 2002 FARADS -- Falk -- USC ISI -- New. Arch Project

Outline I. III. Architecture Overview Design Choices Implementation Notes FARADS -- Falk -- USC

Outline I. III. Architecture Overview Design Choices Implementation Notes FARADS -- Falk -- USC ISI -- New. Arch Project 2

I. FARADS Architecture Overview Summary of the architecture as defined by Dave Clark FARADS

I. FARADS Architecture Overview Summary of the architecture as defined by Dave Clark FARADS -- Falk -- USC ISI -- New. Arch Project

FARADS: Possible Newarch Functional Abstraction n Separate location from identity q q q 1.

FARADS: Possible Newarch Functional Abstraction n Separate location from identity q q q 1. Support general mobility 2. Support wide range of routing/forwarding architectures 3. Support diverse naming schemes n q n May include e. g. , anonymity, local names as well as global names. 4. Cleanly decouple 2. from 3. Support range of mechanisms for end-system authentication despite this separation. n Including lightweight authentication FARADS -- Falk -- USC ISI -- New. Arch Project 4

The FARADS Architecture n Abstractions: q q n Entity Association Mechanisms q q q

The FARADS Architecture n Abstractions: q q n Entity Association Mechanisms q q q Forwarding Directives (FDs) Rendezvous Slot FARADS -- Falk -- USC ISI -- New. Arch Project 5

Entity n The Entity abstraction generalizes the traditional application. q n Entities communicate with

Entity n The Entity abstraction generalizes the traditional application. q n Entities communicate with each other, using association(s). q q n Might be: process, process group, entire machine, or cluster of machines Contains communication state for its association (as well as other state that is relevant to their higher-level function. ) Question: what about cwnd? MTU? rcvbuf? Entities are the unit of mobility – an entity moves as a unit. FARADS -- Falk -- USC ISI -- New. Arch Project 6

Association n Association = logical comm link between two entities q q n n

Association n Association = logical comm link between two entities q q n n An entity may have multiple concurrent associations Association within a particular entity is labeled with a local Association Identifier (AID) q q n Sequence of data packets Shared communication state A handle for locating associated comm state Unique within entity, not necessarily within node or across nodes. Hence, must be local to entity. AID is invariant during mobility, i. e. , as FD changes q A "fate-sharing region" FARADS -- Falk -- USC ISI -- New. Arch Project 7

Forwarding Directive n n Tells the "network" how to deliver a packet to an

Forwarding Directive n n Tells the "network" how to deliver a packet to an entity – or more strictly, to a slot within which the entity is instantiated. FD supports a range of forwarding mechanisms q q q Might specify globally-unique address, e. g. , a network attachment point (IP address); FD ~ (IP addr, port#), or Might specify a path/explicit route. Might be inherently reversible, or not. Might change in flight May be independent of sender, or not. FARADS -- Falk -- USC ISI -- New. Arch Project 8

Forward Directive (2) n FD contents are opaque to entity. FARADS -- Falk --

Forward Directive (2) n FD contents are opaque to entity. FARADS -- Falk -- USC ISI -- New. Arch Project 9

The Red Line n n A "red line" separates forwarding (network) knowledge from entity

The Red Line n n A "red line" separates forwarding (network) knowledge from entity (application) knowledge FD provides packet delivery (below the line) AID identifies association state (above the line) Some messiness in FD management q q E. g. , obtaining FDs, mobility awareness, etc Network congestion needs to be shown to the association FARADS -- Falk -- USC ISI -- New. Arch Project 10

Slots n n A slot is the local operating system interface to an entity.

Slots n n A slot is the local operating system interface to an entity. An FD actually delivers data to a slot, and hence to the entity, if any, currently occupying that slot. q q q If an entity moves to a different slot in the same (or different) end-system, the FD changes Slots are like dynamically-allocated ports ISSUE: Can slots be well known? May be stable, but form of slot specification might be specific to one OS, for example. FARADS -- Falk -- USC ISI -- New. Arch Project 11

Rendezvous n n n Establishing an association generally requires a procedure/mechanism called rendezvous. Entities

Rendezvous n n n Establishing an association generally requires a procedure/mechanism called rendezvous. Entities wishing to initiate an association send a rendezvous string (RS) RS contains anything the receiving entity needs to establish an association q Examples: n n n TCP initialization URL click-through tags Authentication FARADS -- Falk -- USC ISI -- New. Arch Project 12

FD Management n FD Mgmt straddles red line q Tells entity things about the

FD Management n FD Mgmt straddles red line q Tells entity things about the network n q Tells network things about the entity n n n E. g. , translates entity Qo. S needs to route preferences E. g. , notifies entity that packets from other end contain new source FD to prompt authentication Performs FD negotiation Performs site preparation for mobile entities FARADS -- Falk -- USC ISI -- New. Arch Project 13

Mobility n Several types: q q q Entity Mobility: entity moves to a new

Mobility n Several types: q q q Entity Mobility: entity moves to a new end-system Physical Mobility: end-system moves to new network attachment point Virtual Mobility: entity moves to a different slot (think “port”) in current end-system q n n Or: path changes during a connection All require FD changes Mobile entities can be found using agents FARADS -- Falk -- USC ISI -- New. Arch Project 14

Agents n Agents are a special type of entity that act as a helper

Agents n Agents are a special type of entity that act as a helper for mobility q q n Required when mobile entity wants to be found in DNS May be useful at other times (e. g. , unexpected FD changes) Agents are special: they operate below the red line (they munge FDs) but have entity-like properties q E. g. , they have associations with the mobile entity to maintain the FD mapping FARADS -- Falk -- USC ISI -- New. Arch Project 15

Agents (2) n An entity may have multiple agents q n n All agents

Agents (2) n An entity may have multiple agents q n n All agents require updating when FDmobile changes An agent may support multiple entities The agent function may be located anywhere along the path, including within the sender or receiver q Locating the agent within the network has preferable scaling properties FARADS -- Falk -- USC ISI -- New. Arch Project 16

Problem & Undefined Areas: n N-way associations (n>2) q E. g. , middleboxes n

Problem & Undefined Areas: n N-way associations (n>2) q E. g. , middleboxes n Multicast Quality of Service Routing Subsystem Overlays n Consider i 3? n n n FARADS -- Falk -- USC ISI -- New. Arch Project 17

II. Design Choices Choosing an interesting and useful point in the space defined by

II. Design Choices Choosing an interesting and useful point in the space defined by the FARADS architecture FARADS -- Falk -- USC ISI -- New. Arch Project

New. Arch DNS (n. DNS) n n n An optional – albeit handy –

New. Arch DNS (n. DNS) n n n An optional – albeit handy – way to obtain FDs and create RS Very similar to traditional DNS Returns globally reachable FD and a rendezvous template (RT) q RT tells the entity how to create an RS, possibly requiring local information FARADS -- Falk -- USC ISI -- New. Arch Project 19

FD Negotiation n n An entity can request a path change via FD definition

FD Negotiation n n An entity can request a path change via FD definition or negotiation Used for q q q n expression of route preferences (WAN provider selection) server selection (load balancing) mobility Need a protocol here… FARADS -- Falk -- USC ISI -- New. Arch Project 20

Agents – How it works n n n A mobile entity, using a private

Agents – How it works n n n A mobile entity, using a private association, loads a mapping (FDagent -> FDmobile) into the agent The mobile entity publishes FDagent in the DNS Two possible behaviors may be supported: q q n Incoming packets to FDagent are rewritten with FDmobile and sent out Incoming packets to FDagent trigger a redirect message to the sender As FDmobile changes, the agent is kept up to date for new associations FARADS -- Falk -- USC ISI -- New. Arch Project 21

Mobile End Systems n n If an entity knows it’s going to a new

Mobile End Systems n n If an entity knows it’s going to a new FD, existing associations are notified (via FD Mgmt) that the source FD of the ME is going to change For unexpected mobility, the agent can be used as a meeting place q If an entity stops getting responses from a known ME, it can send a query to FDagent FARADS -- Falk -- USC ISI -- New. Arch Project 22

Entity Moves to New End-System n Locate & prepare a slot (how? ) q

Entity Moves to New End-System n Locate & prepare a slot (how? ) q n n n Acquire new FD Provide new FD to entities engaged in associations Collect & move state to new location (how? ) From new location, send an FD change to remote entities FARADS -- Falk -- USC ISI -- New. Arch Project 23

Resynchronization needs to occur after an entity moves q n n Accounts for packets

Resynchronization needs to occur after an entity moves q n n Accounts for packets that might go to wrong FD End-to-end, i. e. , agent not involved Could be a simple exchange of sequence numbers FARADS -- Falk -- USC ISI -- New. Arch Project 24

Route Subsystem n n Currently assuming black box which assembles a working FD Implies

Route Subsystem n n Currently assuming black box which assembles a working FD Implies a method of expressing route preferences FDs are composed of route fragments reflecting path preferences/new location May be nimrod-like using route fragments q Some work by Xiaowei Yang at MIT FARADS -- Falk -- USC ISI -- New. Arch Project 25

Security n n Want to preserve “lightweight” nature of TCP pseudo-header Candidate solution: DCCP

Security n n Want to preserve “lightweight” nature of TCP pseudo-header Candidate solution: DCCP connection nonce q q q n Each entity exchanges a random number at the beginning of a connection When a nonce challenge is received, the XOR of the two random numbers is returned When FD management indicates packets have arrived on an existing association with a new source FD, the connection nonce is exchanged Alternate, more secure solution: purpose-built keys (? ) FARADS -- Falk -- USC ISI -- New. Arch Project 26

Examples (TBS) n n Simple connection establishment Simple plus n. DNS Mobile endpoint Route

Examples (TBS) n n Simple connection establishment Simple plus n. DNS Mobile endpoint Route preference negotiation FARADS -- Falk -- USC ISI -- New. Arch Project 27

Implementation FARADS implementation performed at ISI FARADS -- Falk -- USC ISI -- New.

Implementation FARADS implementation performed at ISI FARADS -- Falk -- USC ISI -- New. Arch Project

Overview n n n Entities → processes f. Kernel → user-level process Network →

Overview n n n Entities → processes f. Kernel → user-level process Network → overlay network of f. Kernels FARADS -- Falk -- USC ISI -- New. Arch Project 29

Implementation Details n n C++ User space for ease of debugging FARADS packets sent

Implementation Details n n C++ User space for ease of debugging FARADS packets sent over IP with new protocol number BSD firewall code used to grab packets f. Kernel q n n (courtesy Ted Faber) FARADS kernel (f. Kernel) routes packets to correct slot FD Management, DNS, and simple apps exist as separate entities FARADS -- Falk -- USC ISI -- New. Arch Project 30

Implementation - Packet Format n FD = IP address + port number FARADS --

Implementation - Packet Format n FD = IP address + port number FARADS -- Falk -- USC ISI -- New. Arch Project 31

Implementation – Status n n Ted’s playground defines f. Kernel First apps: q q

Implementation – Status n n Ted’s playground defines f. Kernel First apps: q q q Ping Simple, unreliable file push Simple DNS FARADS -- Falk -- USC ISI -- New. Arch Project 32

Implementation – Plans n n Mobility Path negotiation Demonstrate simple scenarios Security stuff? HIP/IPSEC?

Implementation – Plans n n Mobility Path negotiation Demonstrate simple scenarios Security stuff? HIP/IPSEC? FARADS -- Falk -- USC ISI -- New. Arch Project 33

The End FARADS -- Falk -- USC ISI -- New. Arch Project

The End FARADS -- Falk -- USC ISI -- New. Arch Project