65
Computer Networks: Architecture and Protocols CS4450 Lecture 9 Why Network Layer? Fundamentals of Rou:ng Rachit Agarwal

lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

ComputerNetworks:ArchitectureandProtocols

CS4450

Lecture9WhyNetworkLayer?

FundamentalsofRou:ng

RachitAgarwal

Page 2: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

Announcements

• Iamback!

• Allemailsanswered,caughtuponsleep,readytoroll!

• Livecodingsessiononthe27th.Pleasebringyourlaptops.

• Prelimwillbe"inclass”on03/26.Nomakeup.

• ProblemSet2solutionsareposted(Piazza)

• Project1posted(coursewebpage)

• Emails:Pleasepleaseplease

• ccyourTAs(Katie,Qizhe)

2

Page 3: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

GoalsforToday’sLecture

• Weareatastagewhereyouhaveastrongfoundationinnetworks

• Sharingnetworks,architecturalprinciples,designgoals• And,youmaynotrealize,butyouunderstandmanynewtradeoffs

• Whydoweneednetworklayer?

• WhynotjustuseswitchedEthernetacrosstheInternet?

• Whatdoroutingtableslooklike?

• Therightwaytothinkaboutroutingtables….

• Correctnessdefinitionforroutingtables

• Ourfirstnetworklayerprotocol:LinkState

3

Page 4: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

RecapofLinkLayersofar

4

Page 5: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

• TraditionalLinkLayer:BroadcastEthernet

• CSMA/CD

• Randomaccessonabroadcastchannel

• ExponentialBackoff

• WhyFrames?

• Toincorporatesentinelbitsforidentifyingframestart/end

• Toincorporatelinklayersourceanddestinationnames

• ToincorporateCRCforcheckingcorrectnessofreceivedframes

• ModernLinkLayer:SwitchedEthernet

• Why?ScalabilitylimitsoftraditionalEthernet

• Why?Detectingcollisionsonabroadcastchannel

Recap:Linklayer

5

Page 6: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

Recap:SpanningTreedefinition

• Subgraphthatincludesallverticesbutcontainsnocycles• Linksnotinthespanningtreearenotusedinforwardingframes

6

Page 7: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

Recap:SpanningTreeProtocol

• Messages(Y,d,X)

• ProposingrootY;fromnodeX;advertisingadistancedtoY

• Initiallyeachswitchproposesitselfastheroot• thatis,switchXannounces(X,0,X)toitsneighbors

• AteachswitchZ:WHENEVERamessage(Y,d,X)isreceivedfromX:

• IFY’sid<currentroot• THENsetroot=Y;next-hop=X

• IFShortestdistancetoroot>d+distance_from_X

• THENsetshortest-distance-to-root=d+distance_from_X

• IFrootchangedORshortestdistancetotherootchanged:• Sendallneighborsmessage(Y,shortest-distance-to-root,Z)

7

Page 8: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

8

TheendofLinkLayer….

Andthebeginningofnetworklayer:-D

Builtontopofreliabledelivery

Builtontopofbest-effortforwarding

Builtontopofbest-effortrouting

Builtontopofphysicalbittransfer

Page 9: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

Questions?

Page 10: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

• Whynotjustusespanningtreesacrosstheentirenetwork?

• Easytodesignroutingalgorithmsfor(spanning)trees

• Step1:Sourcenode“floods”itspacketonitsspanningtreelinks

• Step2:Wheneveranodereceivesapacket:

• Forwardsincomingpacketouttoalllinksotherthantheonethatsentthepacket

Whydoweneedanetworklayer?

Page 11: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

• Sendspackettoeverynodeinthenetwork

• Step1:IgnorethelinksnotbelongingtotheSpanningTree

• Step2:Sourcesends“flood”packetouteverylink(onspanningtree)

• Step3:Sendincomingpacketouttoalllinksotherthantheonethatsentthepacket

FloodingonaSpanningTree

Page 12: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

FloodingExample

Source

Desgnagon

1

3

2

7

6

5

4

Page 13: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

FloodingExample

Source

Destination

1

3

2

7

6

5

4

Eventuallyallnodesarecovered

Onecopyofpacketdeliveredtodes:na:on

1

2

4

7

5

6

Page 14: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

• Easytodesignroutingalgorithmsfor(spanning)trees

• Step1:Sourcenode“floods”itspacketonitsspanningtreelinks

• Step2:Wheneveranodereceivesapacket:

• Forwardsincomingpacketouttoalllinksotherthantheonethatsentthepacket

• Amazingproperties:

• Noroutingtablesneeded!• Nopacketswilleverloop.• Atleast(andexactly)onepacketmustreachthedestination

• Assumingnofailures

RoutingviaFloodingonSpanningTree…

Page 15: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

Threefundamentalissues!

Source

Desgnagon

1

3

2

7

6

5

4

1

2

4

7

5

6

Issue1:Eachhosthastodounnecessarypacketprocessing!(todecidewhetherthepacketisdes:nedtothehost)

Page 16: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

Source

Desgnagon

1

3

2

7

6

5

4

Threefundamentalissues!

Issue2:Higherlatency!(Thepacketsunnecessarilytraversemuchlongerpaths)

Page 17: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

Source

Desgnagon

1

3

2

7

6

5

4

Threefundamentalissues!

Issue3:Wastedbandwidth!(2-6and3-1packetsunnecessarilyhavetosharebandwidth)

Page 18: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

Questions?

Page 19: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

• Networklayerperforms“routing”ofpacketstoalleviatetheseissues

• Usesroutingtables

• Letsunderstandroutingtablesfirst

Whydoweneedanetworklayer?

Page 20: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

WhatpathwillapackettakefromCornelltoMIT?

• Routingtablesallowfindingpathfromsourcetodestination

RoutingPacketsviaRoutingTables

Cornell

Harvard

MIT

Switch#1

Switch#2

Switch#3

Page 21: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

• Findingpathforapacketfromsourcetodestination

RoutingPacketsviaRoutingTables

Cornell

Harvard

MIT

Switch#1

Switch#2

Switch#3

HowtospecifywhetherthepacketshouldtakePath1orPath2?

Page 22: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

EachSwitchstoresatableindica:ngthenexthopforcorrespondingdes:na:onofapacket(calledarou:ngtable)

• SupposepacketfollowsPath1:Cornell-S#1-S#3-MIT

RoutingTable

Cornell

Harvard

MIT

Switch#1

Switch#2

Switch#3L1

L2 L3

L4

L5 L6

DESTINATION NEXTHOP

CORNELL L1

MIT L3

HARVARD L4

DESTINATION NEXTHOP

CORNELL L2

MIT L5

HARVARD L5

DESTINATION NEXTHOP

CORNELL L5

MIT L6

HARVARD L3

Page 23: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

Seesomethinginteres:ng?

• Letsfocusononedestination-MIT

RoutingTable:Therightwaytothinkaboutthem

Cornell

Harvard

MIT

Switch#1

Switch#2

Switch#3L1

L2 L3

L4

L5 L6

DESTINATION NEXTHOP

CORNELL L1

MIT L3

HARVARD L4

DESTINATION NEXTHOP

CORNELL L2

MIT L5

HARVARD L5

DESTINATION NEXTHOP

CORNELL L5

MIT L6

HARVARD L3

Page 24: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

Rou:ngtableentriesforapar:culardes:na:onforma(directed)spanningtreewiththatdes:na:onastheroot!!!!

• Letsfocusononedestination-MIT

RoutingTable:Therightwaytothinkaboutthem

Cornell

Harvard

MIT

Switch#1

Switch#2

Switch#3L1

L2 L3

L4

L5 L6

DESTINATION NEXTHOP

CORNELL L1

MIT L3

HARVARD L4

DESTINATION NEXTHOP

CORNELL L2

MIT L5

HARVARD L5

DESTINATION NEXTHOP

CORNELL L5

MIT L6

HARVARD L3

Page 25: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

• Routingtablesarenothingbut….• Acollectionof(directed)spanningtree• Oneforeachdestination

• RoutingProtocols• “n”spanningtreeprotocolsrunninginparallel

RoutingTable:Therightwaytothinkaboutthem

Page 26: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

• Globalroutingstateisvalidif:• italwaysresultsindeliverpacketstotheirdestinations

• GoalofRoutingProtocols• Computeavalidstate

• Buthowtotellifaroutingstateisvalid?…• Thinkaboutit,whatcouldmakeroutingincorrect?

“ValidRoutingTables”(routingstate)

Page 27: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

• Globalroutingstatevalidifandonlyif:• Therearenodeadends(otherthandestination)• Therearenoloops

• Adeadendiswhenthereisnooutgoinglink• Apacketarrives,but..

• theroutingtabledoesnothaveanoutgoinglink• Andthatnodeisnotthedestination

• Aloopiswhenapacketcyclesaroundthesamesetofnodesforever

ValidityofaRoutingState

Page 28: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

• SupposepacketwantstogofromCornelltoMITusinggivenstate:

Example:RoutingwithDeadEnds

Cornell

Harvard

MIT

Switch#1

Switch#2

Switch#3L1

L2 L3

L4

L5L6

DESTINATION NEXTHOP

CORNELL L1

MIT L2

HARVARD L4

DESTINATION NEXTHOP

CORNELL L2

HARVARD L5

DESTINATION NEXTHOP

CORNELL L5

MIT L6

HARVARD L3

NoforwardingdecisionforMIT!

DeadEnd!PacketneverreachesMIT

Page 29: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

Example:RoutingwithLoops

Cornell

Harvard

MIT

Switch#1

Switch#2

Switch#3L1

L2 L3

L4

L5L6

DESTINATION NEXTHOP

CORNELL L1

MIT L3

HARVARD L4

DESTINATION NEXTHOP

CORNELL L2

MIT L2

HARVARD L5

DESTINATION NEXTHOP

CORNELL L5

MIT L5

HARVARD L3

• SupposepacketwantstogofromCornelltoMITusinggivenstate:

Loop!PacketneverreachesMIT

Page 30: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

• Howcanweverifygivenroutingstateisvalid?

• Howcanweproducevalidroutingstate?

TwoQuestions

Page 31: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

• Checkvalidityofroutingstateforonedestinationatatime…

• Foreachnode:• Marktheoutgoinglinkwitharrowfortherequireddestination

• Therecanonlybeoneateachnode

• Eliminatealllinkswithnoarrows

• Lookwhat’sleft.Stateisvalidifandonlyif• Remaininggraphisaspanningtreewithdestinationassink

• Whyisthistrue?

• Tree->Noloops• Spanning(tree)->Nodeadends

CheckingValidityofaRoutingState

Page 32: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

Example1

Page 33: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

Example1:PickDestination

Page 34: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

Example1:PutArrowsonOutgoingPorts

Page 35: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

Example1:RemoveunusedLinks

LeavesSpanningTree:Valid

Page 36: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

Example2:

Page 37: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

Example2:

Isthisvalid?

Page 38: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

Example3:

Page 39: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

Example3:

Isthisvalid?

Page 40: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

• Simpletocheckvalidityofroutingstateforaparticulardestination

• Deadends:nodeswithoutarrows

• Loops:obvious,disconnectedfromdestinationandrestofthegraph

CheckingValidityofaRoutingState

Page 41: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

• Howcanweverifygivenroutingstateisvalid?

• Howcanweproducevalidroutingstate?

TwoQuestions

Page 42: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

• Easytoavoiddeadends

• Avoidingloopsishard

• Thekeydifferencebetweenroutingprotocolsishowtheyavoidloops!

CreatingValidRoutingState

Page 43: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

• CreateTree,routeontree• E.g.,Spanningtreeprotocol(switchedEthernet)• Good:easy,no(persistent)loops,nodeadends• Not-so-good:unnecessaryprocessing,highlatency,lowbandwidth

• Obtainaglobalview:• E.g.,Linkstate

• Distributedroutecomputation:

• E.g.,Distancevector• E.g.,BorderGatewayProtocol

Fourflavorsofprotocols

Page 44: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

RoutingMetrics

• Routinggoals:computepathswithminimumX

• X=numberof“hops”(nodesinthemiddle)

• X=latency• X=weight• X=failureprobability• …

• Generallyassumeeverylinkhas“cost”associatedwithit

• Wewanttominimizethecostoftheentirepath

• WewillfocusonasubsetofpropertiesX,where:

• Costofapath=sumofcostsofindividuallinks/nodesonthepath• E.g.,numberofhopsandlatency

Page 45: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

#1:CreateaTree

Page 46: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

• Removeenoughlinkstocreateatreecontainingallnodes

• Soundsfamiliar?Spanningtrees!

• Ifthetopologyhasnoloops,thenjustmakesurenotsendingpacketsbackfromwheretheycame

• Thatcausesanimmediateloop

• Therefore,ifnoloopsintopologyandnoformationofimmediateloopsensuresvalidrouting

• However…threechallenges• Unnecessaryhostresourcesusedtoprocesspackets• Highlatency• Lowbandwidth(utilization)

#1:CreateTreeOutofTopology

Page 47: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

#2:Globalview

Page 48: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

TwoAspectsofGlobalViewMethod

• Protocol:Whatwefocusontoday

• Wheretocreateglobalview

• Howtocreateglobalview• Disseminatingroutecomputation(ifnecessary)

• Whentorunroutecomputation

• Algorithm:computingloop-freepathsongraph

• Straightforwardtocomputelowestcostpaths

• UsingDijkstra’salgorithm(pleasestudy;algorithmscourse)

• Wewon’tspendtimeonthis

Page 49: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

Wheretocreateglobalview?

• Oneoption:Centralserver• Collectsaglobalview• Computestheroutingtableforeachnode

• “Installs”routingtablesateachnode• Software-definedNetworks:laterincourse

• Secondoption:Ateachrouter• Eachroutercollectsaglobalview• ComputesitsownroutingtableusingLink-stateprotocol

• Link-stateroutingprotocol• OSPFisaspecificimplementationoflink-stateprotocol

• IETFRFC2328(IPv4)or5340(IPv6)

Page 50: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

OverviewofLink-StateRouting

• Everyrouterknowsitslocal“linkstate”• Knowsstateoflinkstoneighbors• Up/down,andassociatedcost

• Arouterfloodsitslinkstatetoallotherrouters• Usesaspecialpacket—LinkStateAnnouncements(LSA)

• Announcementisdeliveredtoallnodes(nextslide)

• Hence,everyrouterlearnstheentirenetworkgraph

• Runsroutecomputationlocally

• Computingleastcostpathsfromthemtoallothernodes

• E.g.,usingDijkstra’salgorithm

Page 51: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

HowdoesFloodingWork?

• “Linkstateannouncement”(LSA)arrivesonalinkatarouter

• Thatrouter:• Remembersthepacket

• Forwardsthepacketoutallotherlinks• Doesnotsenditouttheincominglink

• Why?

• Ifapreviouslyreceivedannouncementarrivesagain…

• Routerdropsit(noneedtoforwardagain)

Page 52: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

Link-StateRouting

S1

S2

S3

S7S5

S6

S4

Host A

Host B

Host C

Host DHost E

Page 53: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

EachNodeThenhasaGlobalView

S1

S2

S3

S7S5

S6

S4

Host A

Host B

Host C

Host DHost E

Page 54: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

WhentoInitiateFloodingofannouncements?

• Topologychange• Linkfailures• Linkrecovery

• Configurationchange• Linkcostchange(whywouldonechangelinkcost?)

• Periodically• Refreshthelink-stateinformation

• Typically(say)30minutes

• Correctsforpossiblecorruptionofdata

Page 55: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

MakingFloodsReliable

• ReliableFlooding• Ensureallnodesreceivesamelinkstateannouncements

• Noannouncementsdropped

• Ensureallnodesusethelatestversion

• Supposewecanimplementreliableflooding.Howcanitstillfail?

• Canyoueverhaveloopswithlink-staterouting?

• Again:Canyoueverhaveloopswithlink-staterouting?

Page 56: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

• Aglobalviewofthenetworkmakescomputingpathswithoutloopseasy

• Manygraphalgorithmsforcomputingloop-freepaths

• Fore.g.,Dijkstra’sAlgorithm

• But,but,but…..

• Gettinganaccurateglobalviewofnetworkischallenging!• Especiallyina“timely”manner

• Asthenetworkischanging

FundamentalChallengewithobtainingaGlobalView

Page 57: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

AreLoopsStillPossible?

55

5 35

51

1

A

D E

F

CB

55

5 35

5

1

A

D E

F

CB

A and D think this is the path to C

E-C link fails, but D doesn’t know yet

E thinks that this the path to C

E reaches C via D, D reaches C via E Loop!

Page 58: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

TransientDisruptions

55

5 35

5

1

A

D E

F

CB

55

5 35

5

1

A

D E

F

CB

• Inconsistentlink-stateviews• Someroutersknowaboutfailurebeforeothers

• Theshortestpathsarenolongerconsistent• Cancausetransientforwardingloops

• Transientloopsarestillaproblem!

Page 59: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

Convergence

• Allroutershaveconsistentroutinginformation

• E.g.,allnodeshavingthesamelink-statedatabase

• Forwardingisconsistentafterconvergence• Allnodeshavethesamelink-statedatabase

• Allnodesforwardpacketsonsamepaths

• Butwhilestillconverging,badthingscanhappen

Page 60: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

TimetoReachConvergence

• Sourcesofconvergencedelay?• Timetodetectfailure

• Timetofloodlink-stateinformation(~longestRTT)

• Timetorecomputeforwardingtables

• Performanceproblemsduringconvergenceperiod?

• Deadends• Loopingpackets• Andsomemorewe’llseelater….

Page 61: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

LinkStateisConceptuallySimple

• Everyonefloodslinksinformation

• Everyonethenknowsgraphofthenetwork

• Everyoneindependentlycomputespathsonthegraph

• Allthecomplexityisinthedetails

Page 62: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

#3:DistributedRouteComputation

Page 63: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

• Distributedalgorithmstocomputefeasibleroute

• ApproachA:Findingoptimalrouteformaximizing/minimizingametric

• ApproachB:Findingfeasiblerouteviaexchangingpathsamongswitches

#3:DistributedRouteComputation

Page 64: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

WelcometotheNetworkLayer!

• THEfunctionality:deliveringthedata

• THEprotocol:InternetProtocol(IP)• Toachieveitsfunctionality(deliveringthedata),IPprotocolhasthreeresponsibilities

• Addressing(nextlecture)

• Encapsulatingdataintopackets(nextlecture)

• Routing(usingavarietyofprotocols;severallectures)

Page 65: lecture09-switched-Ethernet -network-layer · Built on top of reliable delivery Built on top of best-effort forwarding Built on top of best-effort routing Built on top of physical

Nextlecture!