14
Link Service Junxiao Shi, 2015-08-28 1

Link Service Junxiao Shi, 2015-08-28 1. Outline Introduction Design of generic link service 2

Embed Size (px)

Citation preview

Page 1: Link Service Junxiao Shi, 2015-08-28 1. Outline Introduction Design of generic link service 2

1

Link ServiceJunxiao Shi, 2015-08-28

Page 2: Link Service Junxiao Shi, 2015-08-28 1. Outline Introduction Design of generic link service 2

2

Outline

• Introduction• Design of generic link service

Page 3: Link Service Junxiao Shi, 2015-08-28 1. Outline Introduction Design of generic link service 2

3

Introduction

Page 4: Link Service Junxiao Shi, 2015-08-28 1. Outline Introduction Design of generic link service 2

4

What is Link Service

• Link Service is a part in NFD Face System providing face features universal to all socket types, such as:• NDNLP• face authentication• network-layer counters

Page 5: Link Service Junxiao Shi, 2015-08-28 1. Outline Introduction Design of generic link service 2

5

Face architecture with LAL

Face

Forwarding

Socket

generic link service

vehicular link service

UNIX transport

Ethernet transport

UDP transport

TCP transport

network layer packet: Interest, Data, Nack

TLV Block

UNIX/TCP stream, Ethernet frame, UDP packet

Page 6: Link Service Junxiao Shi, 2015-08-28 1. Outline Introduction Design of generic link service 2

6

LinkService needs to be modular• Network environment dictates what features are

needed in LinkService.• LinkService designed for routers, workstations, and

mobile phones is unlikely to work well in vehicular networks or sensor networks.• Even if all environments can agree on using NDNLPv2 as

the universal packet format, different NDNLPv2 features (defined or to-be-defined) would be enabled.

Page 7: Link Service Junxiao Shi, 2015-08-28 1. Outline Introduction Design of generic link service 2

7

LinkService needs to be modular

Generic LinkService• fragmentation• failure detection• reliability improvement• …

Vehicular LinkService• over-earing implicit-ack• retransmission

cite: G. Pau 2013-08-11 AsiaFI

Page 8: Link Service Junxiao Shi, 2015-08-28 1. Outline Introduction Design of generic link service 2

8

LinkService needs to be modular• A single LinkService that covers all possible

NDNLPv2 features would be extremely complicated.• NDNLPv2 is designed to operate as a single layer.

Interaction between features must be carefully planned, to allow them work together.• eg. BFD feature transmits an IDLE packet only if no packet has

been transmitted by other features in Tidle.• It's much easier to design a LinkService for a selected

subset of NDNLPv2 features, because there are less interactions to consider.

Page 9: Link Service Junxiao Shi, 2015-08-28 1. Outline Introduction Design of generic link service 2

9

Generic LinkService

Page 10: Link Service Junxiao Shi, 2015-08-28 1. Outline Introduction Design of generic link service 2

10

GenericLinkService

• The GenericLinkService is a link service design that covers these NDNLPv2 features:• indexed fragmentation• ARQ• BFD• HMAC• NACK• extra fields for forwarding: NextHopFaceId, HopLimit,

CachePolicy, IncomingFaceId

• Every feature can be individually turned on or off.

Page 11: Link Service Junxiao Shi, 2015-08-28 1. Outline Introduction Design of generic link service 2

11

Send Path

encode net packet

Interest/Data/Nack+ Tags for:• HopLimit• IncomingFaceId

Block of network layer packet+ LpPacket header (for first fragment) with:• HopLimit• IncomingFaceId• Nack

fragmentation

assign Sequence HMAC

LpPackets without Sequence

piggyback

ARQ

Repeat reQuest

transport

BFD

IDLEIDLE

cache

signed LpPacket

suppress IDLE

cached LpPacket retransmission

Page 12: Link Service Junxiao Shi, 2015-08-28 1. Outline Introduction Design of generic link service 2

12

Receive Path

HMAC

reassembly

BFD

transport

ARQ

keep alive detect gap; Repeat reQuest

verified LpPacket

decode net packet

Block of network layer packet+ LpPacket of first fragment, contains:• Nack• NextHopFaceId• HopLimit• CachePolicy

Interest/Data/Nack+ Tags for:• NextHopFaceId• HopLimit• CachePolicy

Page 13: Link Service Junxiao Shi, 2015-08-28 1. Outline Introduction Design of generic link service 2

13

Intermediate Packet Structurestruct Packet { union { shared_ptr<Interest> interest; shared_ptr<Data> data; shared_ptr<Nack> nack; } shared_ptr<Block> netPacketWire; size_t fragStartOffset; shared_ptr<LpPacket> lpPacket; NetworkAddress localAddr; NetworkAddress remoteAddr;} // note: This is a conceptual representation, not a real C++ struct.

Page 14: Link Service Junxiao Shi, 2015-08-28 1. Outline Introduction Design of generic link service 2

14

Intermediate Packet Structure• In the send path:• The original network layer packet is referenced for LP

features to inspect.• Forwarding can control localAddr and remoteAddr (if

face represents L2 interface, and socket is capable of setting localAddr and remoteAddr).

• In the receive path:• After reassembly, the LpPacket for the first segment is

reference for LP features to inspect.• localAddr and remoteAddr are passed from socket layer

to forwarding for informational purpose.