Top Banner
TCP/ICN: Carrying TCP over Content Centric and Named Data Networks Ilya Moiseenko Cisco Systems Dave Oran Cisco Systems
26

TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

Feb 11, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

TCP/ICN:CarryingTCPoverContentCentricandNamedDataNetworks

IlyaMoiseenkoCiscoSystems

DaveOranCiscoSystems

Page 2: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

Outline

I. IntroductionII. Design– Basicfetchingproxy– Reliableprefetchingproxy– Unreliableprefetchingproxy

III. EvaluationIV. Conclusions

2

Page 3: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

3

I.Introduction

Page 4: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

WhyBother?YoucouldjustrunDual-Stackin”Ships-in-the-night”mode.But… amajorattractionofICNissimplificationandperformanceinenvironmentsnotfriendlytoIP:• Mobileedge– eliminatetunnels,respondmorequicklytomobilityevents,temporalcachingattheedgeforbettererrorcontrol

• IoT – Muchsmallercodefootprint,betterintegrationwithradioprotocols,lowerbackgroundchatterthanIP

4

Page 5: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

High-levelgoals

1. UnalteredTCP/IPstackandapplications2. PreserveTCPend-to-endsemantics– Split-TCPfunctionalitycanbeaddedafterwards

3. Pulldatabetweenproxies(i.e.don’trequiredatapushinInterests)

4. CompatibilitywithbothCCNandNDN5. Minimizeoverhead

5

Page 6: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

Non-goals

1. SupportofUDPorothertransportprotocols2. Heterogeneousaddressingandrouting– Eachproxyownsaroutablenameprefix– DonotproposeIPaddr <->nameprefixmapping

3. PathMTU-discoveryandfragmentation– Assumestandard1500-byteTCPMSSandupto

9000bytesICNDatamessages

6

Page 7: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

II.Design

7

Page 8: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

Mainchallenges

• HowtoreconciletheTCP/IPpushmodelwiththeICNpullmodel?

• Howtominimizeinflationofmessagecountandmessagesizes?

• HowmuchdoesthetranslationfunctionneedtounderstandtheTCPstatemachine?

• HowtomarrytheICNandTCPcongestionandflowcontrolmodels?

8

Page 9: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

DesignalternativesforTPC/ICNProxies

• Wedesignedandevaluatedthreeapproaches:– Simpleone-to-onemappingofTCPmessagestoICNexchanges

– TracktheTCPstatemachineintheproxiestoprovidereliabilityovertheICNsegmentofthepath

–MapTCPDatatoICNDatausinganunreliableinter-proxychannel

• Connectionstatemachinesameforallthree–differonlyinthedataphase

9

Page 10: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

Sharedparts

10

TCPconnectionsetup

Interest: /<routable prefix>/<TCP/IP headers>/<nonce>

SYN flag

Interest: /<routable prefix>/<TCP/IP headers>/<nonce> SYN, ACK flags

Interest: /<routable prefix>/<TCP/IP headers>/<nonce> ACK flag

/verizon

/att

/verizon

Interest: /<routable prefix>/<TCP/IP headers>/<nonce>

FIN flag

Interest: /<routable prefix>/<TCP/IP headers>/<nonce> ACK flag

Interest: /<routable prefix>/<TCP/IP headers>/<nonce> ACK flag

Interest: /<routable prefix>/<TCP/IP headers>/<nonce> FIN flag

/verizon

/att

/att

/verizon

TCPconnectionteardown

Page 11: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

Basicfetching

• DataencapsulatesaTCPsegmentcarryingpayload/[forward-proxy-prefix]/[TCP-4-tuple]/[TCP-sequence-number]/[Wraparound-number]

• InterestencapsulatesanemptyTCPsegment/[reverse-proxy-prefix]/[TCP-IP-headers]/[nonce]

• Slow:2xRTT,2xpackets

11

Forward proxy

Interest with TCP/IP headers

Reverse proxy

Data carrying TCP payload

1"

2"

3"

4" Interest pulling data

5"

6"

Data"cache"

Unidirectional TCP flow

TCP$data$$segment$

TCP$data$$segment$

TCP$$ACK$

TCP$$ACK$

Interest with TCP/IP headers

TCP receiver TCP sender

Page 12: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

ReliableprefetchingDatasequencingisindependentfromTCPsequencing

– ImpossibletopredictTCPsequencenumberprogression

12

Interest: /<routable prefix>/<connection id>/<sequence#> TCP 4 tuple

Interest: /<routable prefix>/<TCP/IP headers>/<nonce>

SEQ # 376523 ACK # 1225142 TCP/IP:

SEQ # 376523 ACK # 1225142

TCP/IP: SEQ # 1223682 ACK # 376523

TCP/IP: SEQ # 1225142 ACK # 376523

Forward proxy

Unidirectional TCP flow

130

Interest: /<routable prefix>/<connection id>/<sequence#> TCP 4 tuple 129

Data: /<routable prefix>/<connection id>/<sequence#> TCP 4 tuple 129

Data: /<routable prefix>/<connection id>/<sequence#> TCP 4 tuple 130

Page 13: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

Reliableprefetching

• ReverseproxytransmitsanInterestpriortoTCPsegmentarrivalattheforwardproxy– Enforcesreliability

• Forwardproxyadvertisesapprox.TCPcwnd size• Faster,butunstable.Alotofstateintheproxy.Otherissues.

13

Forward proxy Reverse proxy

1"

2"

3"

4"

6"

Reliable"consumer"

Interest"queue"

cwnd"adver:ser"

Data"queue"+"cache"TCP$data$$segment$

TCP$data$$segment$

5"

TCP$$ACK$

TCP$$ACK$

Interest per each RTT

Interest pipelining w.r.t cwnd

Data carrying TCP segment

Unidirectional TCP flow

Interest with TCP/IP headers

TCP sender TCP receiver

Page 14: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

UnreliableprefetchingTime-delayednaming

– DatanamesmatchTCPsequencenumbersdeliveredoneRTTago

14

Interest: /<routable prefix>/<TCP/IP headers>/<nonce>

SEQ # 376523 ACK # 1222222

Interest: /<routable prefix>/<TCP/IP headers>/<nonce>

SEQ # 376523 ACK # 1225142

TCP/IP: SEQ # 376523 ACK # 1222222

TCP/IP: SEQ # 1223682 ACK # 376523

TCP/IP: SEQ # 1225142 ACK # 376523 Data: /<routable prefix>/<TCP/IP headers>/<nonce>

SEQ # 376523 ACK # 1222222

Forward proxy

Unidirectional TCP flow

Page 15: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

Unreliableprefetching

• InterestsencapsulatingACKsprefetch newTCPsegments– NotenoughACKsduetodelayedACKTCPmechanism– PackagemultipleTCPsegmentsinasingleDatamessage

• NoadditionalreliabilityinICNprotocol• Fast.ComparabletoTCP/IP(cubic).Scalable.

15

Forward proxy Reverse proxy

1"2"3"

4" 6"

Interest"queue"

TCP"queue"

TCP$data$$segment$

TCP$data$$segment$

5"

TCP$$ACK$

TCP$$ACK$

Interest with TCP/IP headers

Data carrying multiple TCP data segments

Unidirectional TCP flow

TCP sender TCP receiver

Page 16: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

Unreliableprefetching

Aproblemoffull-duplexTCPconnection:TCPpiggybacksACKsinthedatasegments-->noInterestsaresentbytheproxies

• Aproxydetectsfull-duplexbyanalyzingACK#• GeneratesInterestsonitsown– Fixedprobability(e.g.50%=every2nd segment)– FunctionofACK#progression

16

Page 17: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

17

III.Evaluation

Page 18: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

Evaluation

TCPcubicoverICNvs.TCPcubicoverIP

• NDNsim• Proofofconcept*niximplementation

– Unreliableprefetching18

TCP client IP forwarder IP forwarder IP forwarder TCP server

TCP client TCP server ICN forwarder TCP/ICN proxy

TCP firewall

ICN forwarder ICN forwarder TCP/ICN proxy

TCP firewall

Page 19: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

Flowcompletiontime

19

TCP cubicUnreliable prefetching

Reliable prefetchingBasic fetching

0

0e+00

2e+07

4e+07

0 200 400 600

Time (ms)

TCP

sequ

ence

num

ber

a

a

a

a

Basic fetching

Reliable prefetching

TCP cubic

Unreliable prefetching

Unreliableprefetchingis10%slowerthanTCP/IP

Page 20: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

TCPretransmissions

20

TCP cubicUnreliable prefetching

Reliable prefetching

Basic fetching

0

0

500

1000

1500

2000

0 200 400 600

Time (ms)

Tota

l num

ber o

f TC

P re

trans

mis

sion

s (p

acke

ts)

a

a

a

a

Basic fetching

Reliable prefetching

TCP cubic

Unreliable prefetching

Page 21: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

TCPcongestionwindowsize

21

TCP cubic

Unreliable prefetching

Reliable prefetching

Basic fetching

0

0

20000

40000

60000

0 200 400 600

Time (ms)

Cw

nd (b

ytes

)

a

a

a

a

Basic fetching

Reliable prefetching

TCP cubic

Unreliable prefetching

Page 22: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

TCPretransmissiontimeout

22

TCP cubicUnreliable prefetching

Reliable prefetching

Basic fetching

0

500

1000

1500

2000

0 200 400 600

Time (ms)

RTO

(ms)

a

a

a

a

Basic fetching

Reliable prefetching

TCP cubic

Unreliable prefetching

Page 23: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

Flowfairnessandcompletiontime

23

50

100

150

200

1 10 100 500

TCP flow size (Mb)

TCP

flow

com

plet

ion

time

(sec

)

TCP/ICN

TCP/IP• Unreliable

prefetching• tcpperf tool+

proxyPoC• 10competing

unidirectionalflows

• Within5%differencewithTCP/IP

• Fair

Page 24: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

Beyondsynthetictests

TLSrequiresadditionalaccommodations– InjectextraInterestsatTCPconnectionsetupphasetofetchTLSserverhellomessages

24

Webbrowser

WebserverICNforwarderTCP/ICNproxyTCPfirewall

ICNforwarder ICNforwarderTCP/ICNproxyTCPfirewall

Page 25: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

Conclusions

• WecanrunmanyInternetapplicationswithoutIP

• TCPishighlyoptimizedforIP– ButitworkssurprisinglywelloverICN!

25

Page 26: TCP/ICN: Carrying TCP over Content Centric and Named Data ... · Unaltered TCP/IP stack and applications 2. Preserve TCP end-to-end semantics – Split-TCP functionality can be added

Q/A

26