CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on...

71
Computer Networks: Architecture and Protocols CS4450 Lecture 4 - Packet Delays - How the Internet works - Three Architectural Principles Rachit Agarwal

Transcript of CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on...

Page 1: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

ComputerNetworks:ArchitectureandProtocols

CS4450

Lecture4-PacketDelays

-HowtheInternetworks-ThreeArchitecturalPrinciples

RachitAgarwal

Page 2: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

ContextforandGoalsofToday’sLecture

• Context:• Today’slectureisgoingtobeoneofthehardestlectures• Ifyouunderstandeverything

• Thereissomethingwrong!

• Goals:• HowdoestheInternetwork?

• Anend-to-endview

• ThreePrinciples

Page 3: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

But,asusual,letsstartwith:

whatwelearntlastlecture

Page 4: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Handlingfailures• Resourceunderutilization• Blockedconnections• Connectionsetupoverheads• Per-connectionstateinswitches(scalabilityproblem)

Recap:ChallengeswithCircuitswitching(reservation)

Page 5: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Breakdataintosmallerpieces

• Packets!

• Transmitthepacketswithoutanyreservations

• And,hopeforthebest

Recap:Solution:Packetswitching

Page 6: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Goods:• Easiertohandlefailures• Noresourceunderutilization

• Asourcecansendmoreifothersdon’tuseresources

• Noblockedconnectionproblem

• Noper-connectionstate• Noset-upcost

• Not-so-goods:• Unpredictableperformance

• Highlatency• Packetheaderoverhead

Recap:Packetswitchingsummary

Page 7: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Consistsofsixcomponents

• Linkproperties:• Transmissiondelay

• Propagationdelay

• OSinternals:• Processingdelay• Queueingdelay

• Trafficmatrixandswitchinternals:

• Processingdelay• Queueingdelay

• First,considertransmission,propagationdelays

• Queueingdelayandprocessingdelayslaterinthecourse

Recap:Deepdiveintoonelink:packetdelay/latency

Page 8: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Transmissiondelay:

• Timetakentopushallthebitsofapacketintoalink

• =Packetsize/Linkbandwidth

• Propagationdelay:• Timetakentomoveonebitfromoneendofthelinktoother

• =Linklength/Speedoflight

Recap:Transmissionandpropagationdelay

Page 9: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

Questions?

Page 10: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

Today’slecture

1. Diveintoend-to-end:fromsourcetodestination

2. Firstlookintoswitches:routing,queueing,forwarding

3. Firstlookintonetworkstack:sockets,ports,“thestack”

4. Secondlookintothestack:layers

5. Whylayering?

Page 11: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

Firstlookintoend-to-end

Page 12: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

Source

Destination

Source

Destination

End-to-end:whatmechanismsdoweneed?

Page 13: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Locatingthedestination:Naming,addressing

• Findingapathtothedestination:Routing

• Sendingdatatothedestination:Forwarding

• Reliability:Failurehandling

Fourfundamentalproblems!

Page 14: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

Naming,Routing,Forwarding,Reliability

• Eachismotivatedbyaclearneed

• Thesolutionsarenotalwayscleanordeep

• Butifyoukeepinmindwhattheproblemis

• You’llbeabletounderstandthesolutions• Whentherighttimecomes:-)

Fourfundamentalproblems!

Page 15: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• NetworkAddress:wherehostislocated• Requiresanaddressforthedestinationhost

• canbemultipleheaders

• NetworkName:whichhostitis

• why?

• Whenyoumoveservertonewbuilding

• Namedoesn’tchange

• Addressdoeschange

• Samethingwithyourownnameandaddress!

• Remembertheanalogy:humannames,addresses,postoffice,letters

Fundamentalproblem#1:HostNamesandAddresses

Page 16: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Considerwhenyouaccessawebpage• InsertURLintobrowser(eg,www.cornell.edu)• Packetssenttowebsite(reliably)• Packetreachapplicationondestinationhost

• Howdoyougettothewebsite?• URLisuser-levelname(eg,www.cornell.edu)

• Networkneedsaddress(eg,whereiswww.cornell.edu)?

• Mustmapnamestoaddresses

• Justlikeweuseanaddressbooktomaphumannamestoaddresses

Namesversusaddresses

Page 17: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• OntheInternet,weonlynamehosts(sortof)

• URLsarebasedonthenameofthehostcontainingthecontent(thatis,www.cornell.edunamesahost)

• Beforeyoucansendpacketstowww.cornell.edu,youmustresolvenamesintothehost’saddress

• DonebytheDomainNameSystem(DNS)

MappingNamestoAddresses

Thesourceknowsthename;

MapsthatnametoanaddressusingDNS!

Page 18: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

Questions?

Page 19: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

Routingtodestination

• Givendestinationaddress,howdoeseachswitch/routerknowwheretosendthepacketsothatthepacketreachesitsdestination

• Whenapacketarrivesatarouter

• aroutingtabledetermineswhichoutgoinglinkthepacketissenton

Fundamentalproblem#2

Page 20: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Distributedalgorithmthatrunsbetweenrouters

• Distributedmeansnosinglerouterhas“full”viewofthenetwork

• Exchangeofmessagestogather“enough”information…

• …aboutthenetworktopology

• Computepathsthroughthattopology

• Storeforwardinginformationineachrouter

• IfpacketisdestinedforX,sendoutlinkl1• IfpacketisdestinedforY,sendoutlinkl2• Canpacketsgoingtodifferentdestinationssentouttosameport?

• Wecallthisaroutingtable

Routingprotocols(conceptually)

Page 21: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

Questions?

Page 22: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

QueueingandForwardingofpacketsatswitches/routers

• Queueing:Whenapacketarrives,storeitin“inputqueues”

• Eachincomingqueuedividedintomultiplevirtualoutputqueues

• Onevirtualoutputqueueperoutgoinglink• Whenapacketarrives:

• Lookupitsdestination’saddress(how?)• Findthelinkonwhichthepacketwillbeforwarded(how?)• Storethepacketincorrespondingvirtualoutputqueue

• Forwarding:Whentheoutgoinglinkfree

• Pickapacketfromthecorrespondingvirtualoutputqueue

• forwardthepacket!

Fundamentalproblem#3

Page 23: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Packetsmustdescribewhereitshouldbesent

• Requiresanaddressforthedestination

• Packetsmustdescribewhereitscomingfrom

• Forhandlingfailures,etc.• Requiresanaddressforthesource

• Packetsmustcarrydata

• canbebitsinafile,image,whatever

Whatmustpacketscarrytoenableforwarding?

Header Data

Page 24: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

Whatdoesaswitch/routerlooklike

Inputqueue

Virtualoutputqueue

Outputqueue

• Eachinputqueuecouldsendpacketstoeachoutputqueueatfullrate• Thatis,aswitcharchitectureisheavilyparallelized• Canalwaysfocusonasingleoutgoingqueuefordesign/analysis

Page 25: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

Queueingandprocessingdelay:CaseI(lowload)

2packets/time

1packet/time

Page 26: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

Queueingandprocessingdelay:CaseII(balancedload)

2packets/time

1packet/time

Page 27: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

Queueingandprocessingdelay:CaseII(highload)

2packets/time

1packet/time

Page 28: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Processingdelay• Easy;eachswitch/routerneedstodecidewheretoputpacket• Requirescheckingheader,etc.

• Queueingdelay• Dependsonnetworkload• Asloadincreases,queueingdelayincreases

• Inanextremecase,increaseinnetworkload

• resultsinpacketdrops

Queueingandprocessingdelay

Page 29: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

Questions?

Page 30: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

Howdoyoudeliverpacketsreliable?

• Packetscanbedroppedalongtheway• Buffersinroutercanoverflow• Routerscancrashwhilebufferingpackets• Linkscangarblepackets

• Howdoyoumakesurepacketsarrivesafelyonanunreliablenetwork?

• Or,atleast,knowiftheyaredelivered?• Wantnofalsepositives,andhighchangeofsuccess

Fundamentalproblem#4

Page 31: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Whoisresponsibleforthis?(architecture)

• Network?• Host?

• Howisitimplemented?(engineering)

• Wewillconsiderbothperspectives

Twoquestionsaboutreliability

Page 32: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

Questions?

Page 33: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Wenowhavetheaddressofthewebsite

• And,aroute/pathtothedestination• And,mechanismsinplacetoforwardthepacketsateachswitch/router

• Inareliablemanner

• So,wecansendpacketsfromsourcetodestination

• Arewedone?

• Whenapacketarrivesatahost,whatdoesthehostdowithit?

• Towhichprocess(application)shouldthepacketbesent?

• Ifthepacketheaderonlyhasthedestinationaddress,howdoesthehostknowwheretodeliverpacket?

• Theremaybemultipleapplicationsonthatdestination

Finishingourstory

Page 34: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Whoputsthesourceaddress,sourceport,destinationaddress,

destinationportinthepacketheader?

Andwhilewearefinishingourstory….

Page 35: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

Thefinalpieceinthegame:End-hoststack

OfSocketsandPorts

• Whenaprocesswantsaccesstothenetwork,itopensasocket,whichisassociatedwithaport

• Socket:anOSmechanismthatconnectsprocessestothenetworkingstack

• Port:numberthatidentifiesthatparticularsocket

• TheportnumberisusedbytheOStodirectincomingpackets

Page 36: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• PacketHeadermustinclude:

• Destinationaddress(usedbynetwork)• Destinationport(usedbynetworkstack)• And?• Sourceaddress(usedbynetwork)• Sourceport(usedbynetworkstack)

• Whenapacketarrivesatthedestinationhost,packetisdeliveredtothesocketassociatedwiththedestinationport

• Moredetailslater

ImplicationsforPacketHeader

Page 37: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Network:Deliverpacketsfromhosttohost(basedonaddress)

• Networkstack(OS):Deliverpacketstoappropriatesocket(basedonport)

• Applications:• Sendandreceivepackets• Understandcontentofpacketbodies

Separationofconcerns

SecretoftheInternet’ssuccessisgetting

theseandotherabstractionsright

Page 38: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Whyisseparationofconcernsimportant?

• Separationofconcerns~Modularity

• Ifeachcomponent’staskwell-defined,onecanfocusdesignonthattask

• Andreplaceitwithanyotherimplementationthatdoesthattask

• Withoutchanginganythingelse

Whocares?

Page 39: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Modularityisnothingmorethandecomposingprograms/systemsintosmallerunits.• Aclean“separationofconcerns”

• Playsacrucialroleincomputerscience…

• …andnetworking

WhatisModularity

Page 40: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

“Modularitybasedonabstractionisthewaytogetthingsdone”--BarbaraLiskov

ModularityinComputerScience

Page 41: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Partitionsystemintomodules

• Eachmodulehaswelldefinedinterface

• Interfacesgiveflexibilityinimplementation

• Changeshavelimitedscope

• Examples• Librariesencapsulatingsetoffunctionalities• ProgramminglanguageabstractsawayCPU

• Thetrickistofindtherightmodularity

• Theinterfacesshouldbelong-lasting• Ifinterfacesarechangingoften,modularityiswrong

ComputerSystemModularity

Page 42: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Theneedformodularitystillapplies

• Andisevenmoreimportant!(why?)

• Networkimplementationsnotjustdistributedacrossmanylinesofcode

• Normalmodularity“organizes”thatcode

• Networkingisdistributedacrossmanymachines• Hosts• Routers

NetworkSystemModularity

Page 43: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Howtobreaksystemintomodules?

• Classicdecompositionintotasks

• Wherearemodulesimplemented?

• Hosts?• Routers?• Both?

• Whereisstatestored?

• Hosts?• Routers?• Both?

NetworkModularityDecisions

Page 44: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Howtobreaksystemintomodules

• Layering

• Wherearemodulesimplemented

• End-to-EndPrinciple

• Whereisstatestored?• Fate-Sharing

Leadstothreedesignprinciples

Page 45: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

Layering

Page 46: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Bitsonwire

• Packetsonwire

• Deliverpacketstohostsacrosslocalnetwork

• Deliverpacketstohostacrossnetworks

• Deliverpacketsreliably,tocorrectprocess

• Dosomethingwiththedata

Breakdownintotasks

Page 47: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Bitsonwire(Physical)

• Packetsonwire

• Deliverpacketstohostsacrosslocalnetwork(Datalink)

• Deliverpacketstohostacrossnetworks(Network)

• Deliverpacketsreliably,tocorrectprocess(Transport)

• Dosomethingwiththedata(Application)

ResultingModules(Layers)

Page 48: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Application:Providingnetworksupportforapps

• Transport(L4):(Reliable)end-to-enddelivery

• Network(L3):Globalbest-effortdelivery

• Datalink(L2):Localbest-effortdelivery

• Physical:Bitsonwire

FiveLayers(Top-Down)

Page 49: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Akindofmodularity

• Functionalityseparatedintolayers• Layerninterfaceswithonlylayern-1

• Hidescomplexityofsurroundinglayers

• Evolutionof“modules”

• (IP)Connectivitybecomesacommodity

Layering

Page 50: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Eachlayer:• Dependsonthelayerbelow• Supportslayerabove• Independentofothers

• Multipleversionsinlayer

• Interfacesdiffersomewhat

• Componentspickwhichlower-

levelprotocoltouse

• ButonlyoneIPlayer• Unifyingprotocol

ThreeObservations

Page 51: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

Layering“modularized”theInternetarchitecturewithflexibleopeninterfaces

whichhelpedspurinnovagon

LayeringandInnovation

Page 52: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Innovationatmostlevels:

• Applications(lots)• Transport(few)• Datalink(few)• Physical(lots)

• Innovationproceededlargelyinparallel

• Payoffofmodularity!

• Pursuedbyverydifferentcommunities

• Likesystemsandchipdesigners

LayeringcrucialtoInternet’ssuccess

Page 53: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

Questions?

Page 54: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Howtobreaksystemintomodules?

• Layering

• Wherearemodulesimplemented?

• End-to-EndPrinciple

• Whereisstatestored?

• Fate-Sharing

ThreeInternetDesignPrinciples

Page 55: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Layersaresimpleifonlyonasimplemachine

• Juststackofmodulesinteractingwiththoseabove/below

• Butweneedtoimplementlayersacrossmachines

• Hosts• Routers(Switches)

• Whatgetsimplementedwhere?

DistributingLayersacrossNetwork

Page 56: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Bitsarriveonwire,mustmakeituptoapplication

• Therefore,alllayersmustexistathost!

WhatgetsimplementedonHost?

Page 57: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Bitsarriveonwire• Physicallayernecessary

• Packetsmustbedeliveredtonexthop

• Datalinklayernecessary

• Routersparticipateinglobaldelivery• Networklayernecessary

• Routersdonotsupportreliabledelivery• Transportlayer(andabove)notsupported

WhatgetsimplementedonRouter?

Page 58: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Lowerthreelayersimplementedeverywhere

• Toptwolayersonlyimplementedathosts

SimpleDiagram

Page 59: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Layeringdoesn'ttellyouwhatserviceseachlayershouldprovide

• Whatisaneffectivedivisionofresponsibilitybetweenvariouslayers?

Butwhyimplementedthisway?

Page 60: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

If a function can completely and correctly be implemented only with the knowledge and help of the application standing at the endpoints of the communication system,

then providing that function as a feature of the communication system itself is not possible.

Sometimes providing an incomplete version of that function as a feature of the communication system itself may be useful as a performance enhancement.

End-to-endPrinciple

Page 61: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

Supposethelinklayerisreliable.Doesthatensurereliabledatatransfer?

Supposethenetworklayerisreliable.Doesthatensurereliabledata

transfer?

machine machine

Example: file transfer

Suppose the link layer is reliable. Does that ensure reliable file transfer?

Suppose the network layer is reliable. Does that ensure reliable file transfer?

disk disk

file transferapplication

file transferapplication

network

flow of data

End-to-endPrinciple:anexample

Page 62: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

Assumethecondigon(IF)holds.Then,

• End-to-endimplementation• Correct• Generalized,andsimplifieslowerlayers

• In-networkimplementation• Insufficient• Mayhelp—orhurt—performance

Examples?Contradicfons?

End-to-endPrinciple(Interpretation)

Page 63: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

Whatdoestheendmean?

End-to-endPrinciple(Interpretation)

Page 64: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Failureavoidance?

• Failurereaction?

• Routing?

• Topologydiscovery?

• PathSelection?

• Security?

• Networkmanagement?

• Resourcemanagement?

GroupExercise4

Whereshallweimplementthefollowing?

Page 65: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Wheretoimplementfunctionalityiscomplicated

• Norightorwronganswer

• Buteveryoneagreesthatreliabilitydoesnotbelonginthenetwork

• Multicastisagoodtestcase

Summary

Page 66: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

Questions?

Page 67: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Howtobreaksystemintomodules?

• Layering

• Wherearemodulesimplemented?

• End-to-EndPrinciple

• Whereisthestatestored?

• Fate-sharing

ThreeInternetDesignPrinciples

Page 68: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• NotethatE2Eprinciplereliedon“fate-sharing”• Invariantsonlybreakwhenendpointsthemselvesbreak

• Minimizethedependenceonothernetworkelements

• Thisshoulddictateplacementofstorage

Fate-Sharing

Page 69: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Whenstoringstateinadistributedsystem,colocateitwithentitiesthat

relyonthatstate

• Onlywayfailurecancauselossofthecriticalstateisiftheentitythatcaresaboutitalsofails…

• …inwhichcaseitdoesn’tmatter

• Oftenarguesforkeepingnetworkstateatendhostsratherthaninsiderouters

• E.g.,packet-switchingratherthancircuit-switching

GeneralPrinciple:Fate-Sharing

Page 70: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• Howtobreaksystemintomodules

• Dictatedbylayering

• Wheremodulesareimplemented

• DictatedbyEnd-to-EndPrinciple

• Wherestateisstored

• DictatedbyFateSharing

DecisionsandtheirPrinciples

Page 71: CS4450 - Cornell University › courses › cs4450 › 2019sp › lecture04...• URLs are based on the name of the host containing the content (that is, names a host) • Before you

• TheInternetisahuge,complicatedsystem

• Onecanstudythepartsinisolation• Routing• Ports,sockets• Networkstack• …

• Butthepiecesallfittogetherinaparticularway

• Todaywasquickoverviewofhowpiecesfit…• Don’tworryifyoudidn’tunderstandmuchofit

• Youprobablyabsorbedmorethanyourealize

Today’slecture