lecture09-switched-ethernet -network-layer · built on top of reliable delivery built on top of...
TRANSCRIPT
![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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/5.jpg)
• 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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/10.jpg)
• 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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/11.jpg)
• 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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/14.jpg)
• 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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/19.jpg)
• 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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/21.jpg)
• 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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/25.jpg)
• 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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/26.jpg)
• 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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/27.jpg)
• 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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/28.jpg)
• 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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/30.jpg)
• 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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/31.jpg)
• 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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/36.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/37.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/38.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/39.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/40.jpg)
• 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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/41.jpg)
• 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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/42.jpg)
• 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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/43.jpg)
• 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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/44.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/45.jpg)
#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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/46.jpg)
• 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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/47.jpg)
#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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/48.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/49.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/50.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/51.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/52.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/53.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/54.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/55.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/56.jpg)
• 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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/57.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/58.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/59.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/60.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/61.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/62.jpg)
#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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/63.jpg)
• 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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/64.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022042919/5f631d488e74146fbc018571/html5/thumbnails/65.jpg)
Nextlecture!