Network Layer - Courses · • Link-layer (layer 2) ... • Only one protocol at the network layer....

Preview:

Citation preview

NetworkLayer

BradSmith

Spring2017 CE151-AdvancedNetworks 1

LogisAcs•  SignupforPiazza(piazza.com)

•  Sunday–  Firstlabdue.–  FirstlabsecAonishalfofthelabgrade.–  85pointsforthelab–  85pointsforaMendingfirstlabsecAon–  VMProblems

•  Tuesday–  Linklayerlecture

•  Thursday–  Read“End-to-EndArgument”paper–  IPv4/layerexercise–  IPv4quiz…revieworangeslides

Spring2017 CE151-AdvancedNetworks 2

netref.soe.ucsc.edu

Spring2017 CE151-AdvancedNetworks 3

InternetBackground•  TheARPAnetwasthefirstpacket-switchednetwork.•  It’ssuccessledtotheInternet•  TheARPAnetarchitecture

–  Homogeneousswitches•  InterfaceMessageProcessors(IMPs)

–  Heterogeneoushosts–  TheNetworkControlProtocol(NCP)implementedconservaAveerror,flow,

andcongesAoncontrol

•  Newtechnicalchallenges–  MoresophisAcatedeBrror,flow,andcongesAoncontrolacrossanetwork.

•  Link-layer(layer2)networkfromtoday’sperspec>ve.

Spring2017 CE151-AdvancedNetworks 4

TheARPAnet

Spring2017 CE151-AdvancedNetworks 5

HOST

Host-IMP IMP-IMP

HOST Host-Host (NCP)

IMP

IMP

IMP

IMP

application application

ARPAnetArchitecture•  Host-to-Hostprotocol

–  ImplementedintheNetworkControlProgram(NCP)–  PrimaryfuncAons:connecAonmanagement,processnaming(“sockets”),flow

control(memorymanagement)

•  Host-IMPprotocol–  PrimaryfuncAon:“bidirecAonalcommunicaAonbetweenthehostandIMP”…

basicallythehost’snetworkinterface.

•  IMP-IMPprotocol–  PrimaryfuncAons:(de-)packeAzingdata,flowcontrol(end-pointIMPs),error

detecAon,reliablydelivery(ingresstoegressIMPs),rouAngthroughIMPtopology.

Spring2017 CE151-AdvancedNetworks 6

GoalsoftheInternet•  New,diversenetworktechnologies

–  LANs(e.gEthernet)–  DARPApacketradionetwork(PRNET)–  DARPAsatellitenetwork(SATNET)

•  Internetgoal–  InterconnecAonofdiversenetworks,whichwecallsubnets

•  Minimal-servicenetworkmodel

•  VintCerfandRobertKahn-“AProtocolforPacketNetworkInterconnecAon”(May,1974)

Spring2017 CE151-AdvancedNetworks 7

Minimal-ServiceNetworkModel•  Newconcepts

–  “Gateway”interconnectsdissimilarnetworks.–  Internet-levelhostaddressing

•  NewfuncAonality–  NCPupgraded

•  End-to-end,slidingwindowerror,flow,andcongesAoncontrol•  CalledTransmissionControlProtocol(TCP)

Spring2017 CE151-AdvancedNetworks 8

TheInternetArchitecture

Spring2017 CE151-AdvancedNetworks 9

G

G

G G

SUBNET

SUBNET

SUBNET

SUBNET A

B

TCP

TCP

EvoluAonofTCP/IP•  TCPoriginallymeanttoreplaceNCP

•  Problems–  MonolithicfuncAonality–  Decidedtoseparate“addressinglayer”from“streamlayer”–  Allowforfuturedatagramand/ornon-reliable(e.g.voice)protocols

•  Movefromsmartnetworktosmarthosts…“End-to-endPrinciple”

•  TCPsplitintoTCP/IP–  InternetProtocol(IP)

•  Best-effortrouAng•  Internetleveladdressing

–  TransmissionControlProtocol(TCP)•  New,end-to-enderror,flow,andcongesAoncontrol

•  WhatistheminimalsetoffuncAonalityneededtoconstructaninternet?

Spring2017 CE151-AdvancedNetworks 10

End-to-EndPrinciple

�If a function can completely and correctly be implemented only with the knowledge and help of the application end-points of a

communication system, then the function should not be implemented in the communication system itself (although

sometimes it may be useful to implement an incomplete version of the function in the communication system as a performance

enhancement).�

“End-to-End Arguments in System Design” by Saltzer, Reed, and Clark (‘84)

Spring2017 CE151-AdvancedNetworks 11

End-to-EndPrinciple•  AvoidsimpacAngapplicaAonsthatdon’tneedthisfuncAon.

•  Reducescomplexityofthenetwork…–  Dumbnetwork,smartend-points…reverseofthetelephonesystem!

•  Overall,improvesefficiencyandreliabilityofthenetwork.

•  E.g.TransportfuncAons…–  End-pointsmustbeinvolvedtoensuredatamakesittotheprocess

(corrupAonintheend-system)–  ThereforenotransportfuncAonalityinthenetwork.

•  ReasonableinterpretaAon…forfuncAonsrequiringend-pointinvolvement–  ThinktwicebeforeimplemenAnginthenetwork–  JusAfyasaperformanceenhancement–  Don’timposeaburdenonapplicaAonsthatdon’trequireit–  E.g.verylossy(wireless)links–  Doesn’tneedtobeheavy-weight…candependonend-to-endmechanisms

Spring2017 CE151-AdvancedNetworks 12

EvoluAonofTCP/IP•  TCPoriginallymeanttoreplaceNCP

•  Problems–  MonolithicfuncAonality–  Reliabledeliveryahost-hostissue

•  Movefromsmartnetworktosmarthosts…“End-to-endPrinciple”

•  TCPsplitintoTCP/IP–  InternetProtocol(IP)

•  Best-effortrouAng•  Internetleveladdressing

–  TransmissionControlProtocol(TCP)•  New,end-to-enderror,flow,andcongesAoncontrol

•  WhatistheminimalsetoffuncAonalityneededtoconstructaninternet?

Spring2017 CE151-AdvancedNetworks 13

InternetArchitectureFollowingposAngfromDaveCrocker(earlyInternetparAcipant)tothe“end2end-interest”mailinglist(4/11/13):

Here'sacommentthatIsentearliertoday,toanon-technicalpersonwhoisawareoftheoverallInternetAmeline,butIbelievedoesnotunderstandwhatisdisAncAveaboutInternet'architecture'.I'mcuriousaboutreacAonsonthislist,andanypossibleimprovements--includingcompletereplacement--butmoreimportantlyI'minterestedinfillinginthedetails:

TheoriginaluseofthetermInternetwastodescribeadis;nc;vetechnicaldesignforadistributed,scalabledataexchangefabric.Itsdesigncharacteris;csdifferdrama;callyfromthoseofitspredecessor,theArpanet,andfromotherrelatedefforts.

That'swhatIsent.Toprimethepumpforthedetail:

Bysaying'fabric'Imeanttodis;nguishthemechanismformovingrawdatafromtheapplica;onsthatusedit.WhatI'dclassasdis;nc;vewere•  theTCP/IPsepara>on,•  theremarkablymodestfunc>onalityofIP,eventothepointofmovingit'scontrolplanetothe

nextlevelupwithICMP,and•  con>nuingwithmodestexpecta>onsthelayerbelow(whichmadeitpossibletooperateover

anymediumincludingbirds.)Thisisusuallycharacterizedasmovingrobustnesstotheedges.

Spring2017 CE151-AdvancedNetworks 14

Review•  IPgoals

–  interconnectdiversenetworktechnologies,makingminimalassumpAonsoftheunderlyingnetworks

–  implementtheminimalsetoffuncAonalityneededtoconstructaninternet…inthissenseIPisthewaistofthenetworkprotocolstackhourglass

•  IPimplementsadatagram,packet-switchedmodelofcommunicaAons.

•  Packet-switchcommunicaAoninvolvestransmissionofdigitaldata–  inpackets–  noresourcereservaAon...usestaAsAcalmulAplexingtoshareachannel

Spring2017 CE151-AdvancedNetworks 15

Review•  End-to-EndPrinciple

–  IfafuncAonrequiresend-pointinvolvementtoimplementthefuncAoncompletelyandcorrectly,thenonlyimplementintheend-points!

•  AvoidsimpacAngnetworkapplicaAonsthatdon’tneedthisfuncAon•  Reducescomplexityofthenetwork...dumbnetwork,smartend-points.Reverseof

thetelephonesystem!•  Overall,improvesefficiencyandreliabilityofthenetwork.

–  ReasonableinterpretaAon...ifafuncAonrequiresinvolvementofend-points...•  ThinktwicebeforeimplemenAngitinthenetwork•  OnlyjusAficaAonisasaperformanceenhancement•  DonotimposeaburdenonapplicaAonsthatdon’trequireit•  E.g.verylossy(wireless)links

Spring2017 CE151-AdvancedNetworks 16

ReadingReview

•  “End-to-EndArgumentsinSystemDesign”–Salzer,Reed,Clark–  HowdoesthereliablefiletransferproblemmoAvatetheend-to-end

principle?

–  WhatistheprimaryreasonforexcepAonstotheend-to-endprinciple?

–  WhatisacommonproblemwithimplemenAngaperformance-enhancementinthecommunicaAonchannel?

–  Whyisitopenacceptabletoimplementaweakversionofend-to-endservicesasanexcepAontotheend-to-endprinciple(i.e.outsidetheend-nodes)?

Spring2017 CE151-AdvancedNetworks 17

EvoluAonofTCP/IP•  TCPoriginallymeanttoreplaceNCP

•  Problems–  MonolithicfuncAonality–  Reliabledeliveryahost-hostissue

•  Movefromsmartnetworktosmarthosts…“End-to-endPrinciple”

•  TCPsplitintoTCP/IP–  InternetProtocol(IP)

•  Best-effortrouAng•  Internetleveladdressing

–  TransmissionControlProtocol(TCP)•  New,end-to-enderror,flow,andcongesAoncontrol

•  WhatistheminimalsetoffuncAonalityneededtoconstructaninternet?

Spring2017 CE151-AdvancedNetworks 18

ReceiveanIPdatagram

IPDatagramProcessing1.  IPheadervalidaAon2.  ProcessopAonsinIPheader3.  ParsingthedesAnaAonIP

address

4.  RouAngtablelookup5.  DecrementTTL6.  PerformfragmentaAon(if

necessary)

7.  Calculatechecksum8.  Transmittonexthop9.  SendICMPpacket(ifnecessary)

AMAZING!!!!

Spring2017 CE151-AdvancedNetworks 19

ReceiveanIPdatagram

IPDatagramProcessing1.  IPheadervalidaAon2.  ProcessopAonsinIPheader3.  ParsingthedesAnaAonIP

address

4.  RouAngtablelookup5.  DecrementTTL6.  PerformfragmentaAon(if

necessary)

7.  Calculatechecksum8.  Transmittonexthop9.  SendICMPpacket(ifnecessary)

IPheaderprocessing

Spring2017 CE151-AdvancedNetworks 20

ReceiveanIPdatagram

IPDatagramProcessing1.  IPheadervalidaAon2.  ProcessopAonsinIPheader3.  ParsingthedesAnaAonIP

address

4.  RouAngtablelookup5.  DecrementTTL6.  PerformfragmentaAon(if

necessary)

7.  Calculatechecksum8.  Transmittonexthop9.  SendICMPpacket(ifnecessary)

IPheaderprocessing

RouAng

Spring2017 CE151-AdvancedNetworks 21

ReceiveanIPdatagram

IPDatagramProcessing1.  IPheadervalidaAon2.  ProcessopAonsinIPheader3.  ParsingthedesAnaAonIP

address

4.  RouAngtablelookup5.  DecrementTTL6.  PerformfragmentaAon(if

necessary)

7.  Calculatechecksum8.  Transmittonexthop9.  SendICMPpacket(ifnecessary)

IPheaderprocessing

RouAng

AddressResoluAonProtocol

Spring2017 CE151-AdvancedNetworks 22

ReceiveanIPdatagram

IPDatagramProcessing1.  IPheadervalidaAon2.  ProcessopAonsinIPheader3.  ParsingthedesAnaAonIP

address

4.  RouAngtablelookup5.  DecrementTTL6.  PerformfragmentaAon(if

necessary)

7.  Calculatechecksum8.  Transmittonexthop9.  SendICMPpacket(ifnecessary)

IPheaderprocessing

AddressResoluAonProtocol

RouAng

InternetControlMessageProtocol

Spring2017 CE151-AdvancedNetworks 23

IP-OrientaAon•  IP(InternetProtocol)isaNetworkLayerProtocol.•  IP’scurrentversionisVersion4(IPv4).•  ItisspecifiedinRFC791.•  IPv6isbeingdeployednow…

NetworkLayer

Link Layer

IP

ARP NetworkAccess

Media

ICMP IGMP

TransportLayer

TCP UDP

Spring2017 CE151-AdvancedNetworks 24

IP:Thewaistofthehourglass•  IPisthewaistofthehourglassofthe

Internetprotocolarchitecture

•  MulAplehigher-layerprotocols•  MulAplelower-layerprotocols

•  Onlyoneprotocolatthenetworklayer.

•  MinimumfuncAonalitytoconstructaninternet

Spring2017 CE151-AdvancedNetworks 25

Applications

HTTP FTP SMTP

TCP UDP

IP

Data link layer protocols

Physical layer protocols

HighestLayerHop-by-HopProtocol•  IPisthehighestlayerprotocolwhichisimplementedatbothroutersand

hosts(hop-by-hop)

Spring2017 CE151-AdvancedNetworks 26

Application

TCP

IP

Data Link

Application

TCP

IP

NetworkAccess

Application protocol

TCP protocol

IP protocol IP protocol

DataLink

DataLink

IP

DataLink

DataLink

IP

DataLink

DataLink

DataLink

IP protocol

RouterRouter HostHost

IPService•  DeliveryserviceofIPisminimal…packet-switchedcommunicaAonmodel

–  Datasentinpackets–  Sta>s>calmul>plexing(best-effort…packetscanbedroppedordeliveredout

oforder)

•  IPimplementsdatagramflavorofpacket-switching

•  DisAnguishingcharacterisAcofdatagramisitisconnecAonless–  Routescomputedonanevent-drivenbasis(topologychanges)–  Forwardingdecisionsdoneperpacket–  Differentpacketsinthesameflowmayfollowdifferentpaths–  Noper-flowstateisrequired–  Thinktelegram

•  Whatistheotherformofpacket-switching?

Spring2017 CE151-AdvancedNetworks 27

IPService•  Virtual-circuit

•  Howisvirtual-circuitdifferentfromdatagram?

•  DisAnguishingcharacterisAcofvirtual-circuitisitisconnecAon-oriented–  RoutecomputaAonandforwardingdecisionsdoneonce/flow–  Requiresper-flowstate–  Thinktelephone-callwithoutbandwidthreservaAons

•  Consequencesofdatagrammodel–  Higherlayerprotocolshavetodealwithlossesorwithduplicatepackets

•  Hmmm…moreaccurately,Iwouldsaythisisaconsequenceofpacket-switching

–  Packetsmaybedeliveredout-of-sequence

Spring2017 CE151-AdvancedNetworks 28

IPService•  IPsupportsthefollowingservices:

–  one-to-one (unicast)–  one-to-all (broadcast)–  one-to-group (mulAcast)

•  IPmulAcastalsosupportsamany-to-manyservice.•  IPmulAcastrequiressupportofotherprotocols(IGMP,mulAcastrouAng)•  Anycast?

Spring2017 CE151-AdvancedNetworks 29

unicast broadcast multicast

Review•  DisAnguishingcharacterisAcsofpacket-switchedcommunicaAon

–  DatatransmiMedinpackets–  StaAsAcalmulAplexing(best-effort-packetscanbedroppedordeliveredoutoforder)

•  Packet-switchingcomesintwoflavors–  virtual-circuit-connecAonoriented

•  routeonce/flow•  per-flowforwardingstate

–  datagram–connecAonless•  routescomputedoneventdriven-basis•  per-desAnaAonforwardingstate

•  Consequencesofpacket-switching–  higherlayerprotocolshavetodealwithlossesorwithduplicatepackets–  withdatagrammodel,packetsmaybedeliveredoutofsequence

Spring2017 CE151-AdvancedNetworks 30

Review•  4classesofservices

–  Unicast–  Broadcast–  MulAcast–  Anycast

Spring2017 CE151-AdvancedNetworks 31

Review•  IPgoals

–  interconnectdiversenetworktechnologies,makingminimalassumpAonsoftheunderlyingnetworks

–  implementtheminimalsetoffuncAonalityneededtoconstructaninternet…inthissenseIPisthewaistofthenetworkprotocolstackhourglass

•  IPimplementsadatagram,packet-switchedmodelofcommunicaAons.

•  Packet-switchcommunicaAoninvolvestransmissionofdigitaldata–  inpackets–  noresourcereservaAon...usestaAsAcalmulAplexingtoshareachannel

•  best-effort-packetscanbedroppedordeliveredoutoforder

Spring2017 CE151-AdvancedNetworks 32

Review•  Consequencesofpacket-switching

–  higherlayerprotocolshavetodealwithlossesorwithduplicatepackets–  withdatagrammodel,packetsmaybedeliveredoutofsequence

•  End-to-endPrincipal

•  Packet-switchingcomesintwoflavors–  virtual-circuit-connecAonoriented

•  routeonce/flow•  per-flowforwardingstate

–  datagram–connecAonless•  routescomputedoneventdriven-basis•  per-desAnaAonforwardingstate

•  4classesofservices:Unicast,Broadcast,MulAcast,Anycast

Spring2017 CE151-AdvancedNetworks 33

ReceiveanIPdatagram

IPDatagramProcessing1.  IPheadervalidaAon2.  ProcessopAonsinIPheader3.  ParsingthedesAnaAonIP

address

4.  RouAngtablelookup5.  DecrementTTL6.  PerformfragmentaAon(if

necessary)

7.  Calculatechecksum8.  Transmittonexthop9.  SendICMPpacket(ifnecessary)

AMAZING!!!!

Spring2017 CE151-AdvancedNetworks 34

ReceiveanIPdatagram

IPDatagramProcessing1.  IPheadervalidaAon2.  ProcessopAonsinIPheader3.  ParsingthedesAnaAonIP

address

4.  RouAngtablelookup5.  DecrementTTL6.  PerformfragmentaAon(if

necessary)

7.  Calculatechecksum8.  Transmittonexthop9.  SendICMPpacket(ifnecessary)

IPheaderprocessing

AddressResoluAonProtocol

RouAng

InternetControlMessageProtocol

Spring2017 CE151-AdvancedNetworks 35

IPDatagramFormat

Spring2017 CE151-AdvancedNetworks 36

ECNversion headerlength DS total length (in bytes)

Identification Fragment offset

source IP address

destination IP address

options (0 to 40 bytes)

payload

4 bytes

time-to-live (TTL) protocol header checksum

bit # 0 15 23 248 317 16

0 MF

DF

IPHeaderFields•  Version(4bits):currentversionis4.•  Headerlength(4bits):

–  LengthofIPheader,inmulAplesof4bytes–  20bytes≤HeaderLength≤(24-1)*4=60bytes

•  Servicefield(1byte)–  Iffirstthreebitsare0,interpretedasoriginalType-of-Service(TOS).–  Otherwise

•  6bits:DifferenAatedService(DS)(RFC2474):•  2bits:ExplicitCongesAonNoAficaAon(ECN)(RFC3168):

Spring2017 CE151-AdvancedNetworks 37

IPHeaderFields•  Totallength(16bits):

–  TotallengthofIPv4datagram,inbytes.–  20bytes≤TotalLength≤216-1=65535bytes–  Lengthofdata=totallength-headerlength

•  IdenAficaAon(16bits):UniqueidenAficaAonofadatagramfromahost.IncrementedwheneveradatagramistransmiMed

•  Flags(3bits):–  Firstbitalwayssetto0–  DFbit(Donotfragment)–  MFbit(Morefragments)

ForFragmentaAon…willbeexplainedlater

Spring2017 CE151-AdvancedNetworks 38

IPHeaderFields•  TimeToLive(TTL)(1byte):

–  Specifieslongestpathsbeforedatagramisdropped–  RoleofTTLfield:EnsurethatpacketiseventuallydroppedwhenarouAng

loopoccurs

Usedasfollows:–  Sendersetsthevalue(e.g.,64)–  Eachrouterdecrementsthevalueby1–  Whenthevaluereaches0,thedatagramisdropped

•  NoTTLinEthernet…whydoyouthinktheydidn’tincludeone?

Spring2017 CE151-AdvancedNetworks 39

IPHeaderFields•  Protocol(1byte):

–  Specifiesthehigher-layerprotocol.–  UsedfordemulAplexingtohigherlayers.

Spring2017 CE151-AdvancedNetworks 40

IP

1 = ICMP 2 = IGMP

6 = TCP 17 = UDP

4 = IP-in-IPencapsulation

IPHeaderFields•  Headerchecksum(2bytes):Simple16-

bitlongchecksumcoversonlyheader.•  Upperlayerprotocolscoverdata•  IPishighesthop-by-hopprotocol;need

tominimizeprocessing

Spring2017 CE151-AdvancedNetworks 41

IPHeaderFields•  OpAonType

–  Copyflag:IndicatesifopAontobecopiedtofragments.–  OpAonclass:0=Control,2=Debug/Measurement,rest“Reserved”.–  OpAonnumber:idenAfiesopAon

•  OpAonlength:notpresentforNoopandEndofOpAons•  OpAondata:notpresentforNOPandEndofOpAons

Spring2017 CE151-AdvancedNetworks 42

FragmentaAon•  MaximumsizeofIPdatagramis65535…

–  …butlink-layerpayloadlimitstypicallymuchsmaller•  CalledtheMaximumTransmissionUnit(MTU).•  ExampleMTUs:

•  FragmentIPdatagramslargerthanMTUofalink.•  Issues

–  HowcommunicatefragmentaAonamonghopsinapath?–  HowhandlepathscontainingnetworkswithdifferentMTUs?–  WhereisfragmentaAondone?

Spring2017 CE151-AdvancedNetworks 43

FragmentaAon-How?•  Involvesfollowingfields(pluschecksum)

•  IdenAficaAon:IDandsourceIPaddressuniquelyidenAfydatagram.•  Flags

–  DF:“Don’tfragment.”Discardandsenderror.–  MF:“Morefragments.”Morefragmentsfollow.

•  FragmentOffset:Offsetofcurrentpayloadinoriginaldatagram.–  Only13bitfield-givesoffsetinunitsof8bytes–  NumberoffirstbyteinpayloadisFO*8.–  Sizeofallfragments,butlast,mustbemulApleof8.

Spring2017 CE151-AdvancedNetworks 44

ECNversion headerlength DS total length (in bytes)

Identification Fragment offset

time-to-live (TTL) protocol header checksum

0 MF

DF

FragmentaAon-How?

•  Totallength:Totallengthofthecurrentfragment.•  ConstraintsoffragmentaAon

–  FragmentaAoncanbedoneatthesenderoratintermediaterouters–  ThesamedatagramcanbefragmentedseveralAmes.–  ReassemblyoforiginaldatagramisonlydoneatdesAnaAonhosts!!

•  Why?

•  Howdetermineifadatagramisafragment?–  FO≠0or…–  MFflagisset

Spring2017 CE151-AdvancedNetworks 45

ECNversion headerlength DS total length (in bytes)

Identification Fragment offset

time-to-live (TTL) protocol header checksum

0 MF

DF

•  ExplanaAon•  WhatdoesFO=0mean?Thisisthefirstfragment.•  WhatdoesMF=0mean?Thisisthelastfragment.•  Whatdoes((FO=0)and(MF=0))mean?Thisisboththefirstandlastfragment->

thisistheonlyfragment->thisistheoriginalpacket(i.e.notafragment).NOTE:thisistheonlywaytonotbeafragment.

•  Soapacketisafragmentif!((FO=0)and(MF=0))<->((FO≠0)or(MF≠0))

FragmentaAonExample

Spring2017 CE151-AdvancedNetworks 46

FragmentaAonExample•  ExamplewherelastfragmentisnotmulApleof8.

Spring2017 CE151-AdvancedNetworks 47

IP datagram

Router

Fragment 2Fragment 3

MTU: 1000MTU: 4000

Fragment 1

Header length: 20Total length: 2400

Identification: 0xa428DF flag: 0MF flag: 0

Fragment offset: 0

Header length: 20Total length: 996

Identification: 0xa428DF flag: 0MF flag: 1

fragment offset: 0

Header length: 20Total length: 996

Identification: 0xa428DF flag: 0MF flag: 1

Fragment offset: 122

Header length: 20Total length: 448

Identification: 0xa428DF flag: 0MF flag: 0

Fragment offset: 244

Whycalculatechecksum@eachhop?

•  Fieldswillchange…–  TTL–  FragmentaAoninformaAon–  Headerlength–  Others..?

Spring2017 CE151-AdvancedNetworks 48

Review•  IPheaders…

–  Checksumonlycoversheadertominimizehop-by-hopprocessing•  Assumesupperlayerprotocolscoverdata

–  Checksummustberecalculatedateachhop•  IPheaderfieldschange…TTL,FragmentaAoninformaAon,Headerlength

–  FragmentaAonandreassembly•  UsedtomatchpacketstolinkMTUs•  FragmentaAoncanbedoneatanyhoponthepath•  ReassemblycanonlybedoneatthedesAnaAon

Spring2017 CE151-AdvancedNetworks 49

ReceiveanIPdatagram

IPDatagramProcessing1.  IPheadervalidaAon2.  ProcessopAonsinIPheader3.  ParsingthedesAnaAonIP

address

4.  RouAngtablelookup5.  DecrementTTL6.  PerformfragmentaAon(if

necessary)

7.  Calculatechecksum8.  Transmittonexthop9.  SendICMPpacket(ifnecessary)

IPheaderprocessing

AddressResoluAonProtocol

RouAng

InternetControlMessageProtocol

Spring2017 CE151-AdvancedNetworks 50

Forwardingvs.RouAng•  TherearetwodisAnctprocessestodeliveringIPdatagrams:

–  Forwarding:deliverapacketonehopclosertodesAnaAon.–  RouAng:computeforwardingstate.

•  Forwarding,beingindataplane,mustbedoneasfastaspossible:–  Onrouters,isopendonewithsupportofhardware–  OnPCs,isdoneinkerneloftheoperaAngsystem

•  RouAng,beingoutsidedataplane,islessAme-criAcal–  OnaPC,rouAngisdoneasabackgroundprocess

Spring2017 CE151-AdvancedNetworks 51

Forwarding•  AninternetisacollecAonofsubnets•  IPimplementshop-by-hopdeliveryofpacketsbetweenhostsinan

internet•  Routers

–  Interconnectsubnets(broadcastdomains)–  Forwardpacketsacrossaninternet

Spring2017 CE151-AdvancedNetworks 52

H1

R1 R2

R3 R4

H210.2.1.0/24

20.1.0.0/1610.1.2.0/24

10.1.0.0/24 10.3.0.0/16

20.2.1.0/28

Routers•  Routersimplement

–  Forwardingprocess–  RouAngprocess

•  RoutersconnectmulAplesubnets–  HaveaninterfaceonmulAplesubnets–  Forwardpacketsbetweensubnets

•  Receiveononeinterface•  ProcessIPheader•  Determinenexthop•  Sendoutnexthopinterface

Spring2017 CE151-AdvancedNetworks 53

H1

R1 R2

R3 R4

H210.2.1.0/24

20.1.0.0/1610.1.2.0/24

10.1.0.0/24 10.3.0.0/16

20.2.1.0/28

RouAngandForwardingRouAngfuncAonsinclude:

–  routecalculaAon–  maintenanceoftherouAngtable–  execuAonofrouAngprotocols

•  Oncommercialroutershandledbyasinglegeneralpurposeprocessor,calledrouteprocessor

IPforwardingisper-packetprocessing•  Onhigh-endcommercialrouters,IPforwardingisdistributed•  Mostworkisdoneontheinterfacecards

Spring2017 CE151-AdvancedNetworks 54

ForwardingTable•  ForwardingtableistheinterfacebetweentherouAngandforwarding

processes–  Simplemechanism–  Implements(potenAally)complexpolicies

•  MapsdesAnaAonaddresstonexthoptowardsdesAnaAon

Spring2017 CE151-AdvancedNetworks 55

Control

Datapath: per-packet processing

routingtable

Routingfunctions

IPForwarding

routing tablelookup

routing tableupdates

incoming IPdatagrams

outgoing IPdatagrams

routingprotocol

routingprotocol

ForwardingTables•  Eachrouterandeachhostmaintainsaforwardingtablewhichtellsthe

routerhowtoprocessanoutgoingpacket•  Maincolumns:

–  DesAnaAonaddress:whereistheIPdatagramgoingto?–  Nexthoporinterface:howtoforwardtheIPdatagram?

•  RouAngtablesaresetsothatadatagramgetsclosertotheitsdesAnaAoneveryhop

Spring2017 CE151-AdvancedNetworks 56

Destination Next Hop 10.1.0.0/24 10.1.2.0/24 10.2.1.0/24 10.3.1.0/24 20.1.0.0/16 20.2.1.0/28

direct direct R4 direct R4 R4

Routing table of a host or router IP datagrams can be directly delivered (�direct�) or are sent to a router (�R4�)

ForwardingTableLookup•  Whenarouterorhostneedsto

transmitanIPdatagram,itperformsaforwardingtablelookup

•  Forwardingtablelookup:UsetheIPdesAnaAonaddressasakeytosearchtherouAngtable.

•  ResultofthelookupistheIPaddressofanexthoprouter,orthenameofanetworkinterface

Spring2017 CE151-AdvancedNetworks 57

Destination Next Hop 10.1.0.0/24 10.1.2.0/24 10.2.1.0/24 10.3.1.0/24 20.1.0.0/16 20.2.1.0/28

direct direct R4 direct R4 R4

ForwardingTableMatch•  Forwardingtableentriescomposedof:<IP Address>”/”<mask length>

–  E.g.128.114.48.128/26

•  Maskdefinesthenetworkpartofanaddress–  LogicallyANDtheaddresswithavalueofmask length ‘1’sfollowedby‘0’s –  128.114.48.128/26 = 10000000 01110010 00110000 10xxxxxx

–  ”x”=don’tcare(hostpartofaddress)

•  Forwardingtablematchoccurswhen…–  BoththerouAngentryandIPaddresseshavethesamenetworkpart…–  …giventheroute’snetworkmask

•  Example:is128.114.48.0/17amatchingroutefor128.114.122.5?–  128.114.48.0/17 =10000000 01110010 0xxxxxxx xxxxxxxx–  128.114.122.5/17 =10000000 01110010 01111010 00000101–  Yes.

Spring2017 CE151-AdvancedNetworks 58

ForwardingTableLookup•  Whatorderusedinconsideringforwardingtableentries?•  OnlymaMerswhenrouAngentriesoverlap

–  Use128.114.0.0/16 or128.114.48.0/17for128.114.128.5?

•  128.114.128.5matches128.114.0.0/16–  128.114.0.0/16 =10000000 01110010 xxxxxxxx xxxxxxxx–  128.114.128.5/16=10000000 01110010 10000000 00000101

•  128.114.128.5alsomatches128.114.0.0/17 –  128.114.128.0/17=10000000 01110010 0xxxxxxx xxxxxxxx–  128.114.128.5/17=10000000 01110010 00000000 00000101

•  Answerislongestprefixmatch–  Docomparisoninorderofincreasingmasklength–  Why?Becauseitisuseful…

•  Alsoshortestprefixmatchdoesn’tmakesense(never“see”longerprefix)

•  Howuse?CC-NIEexample

Spring2017 CE151-AdvancedNetworks 59

DeliverywithForwardingTables

Spring2017 CE151-AdvancedNetworks 60

Destination Next Hop 10.1.0.0/24 10.1.2.0/24 10.2.1.0/24 10.3.1.0/24 20.1.0.0/16 20.2.1.0/28

direct R3 R3 R3 R3 R3

H1

R1 R2

R3 R4

H210.2.1.0/24

20.1.0.0/1610.1.2.0/24

10.1.0.0/24 10.3.0.0/16

20.2.1.0/28

20.2.1.2/28

Destination Next Hop 10.1.0.0/24 10.1.2.0/24 10.2.1.0/24 10.3.1.0/24 20.1.0.0/16 20.2.1.0/28

direct direct R4 direct R4 R4

Destination Next Hop 10.1.0.0/24 10.1.2.0/24 10.2.1.0/24 10.3.1.0/24 20.1.0.0/16 20.2.1.0/28

R3 R3 R2 direct direct R2

Destination Next Hop 10.1.0.0/24 10.1.2.0/24 10.2.1.0/24 10.3.1.0/24 20.2.0.0/16 30.1.1.0/28

R3 direct direct R3 R2 R2

Destination Next Hop 10.1.0.0/24 10.1.2.0/24 10.2.1.0/24 10.3.1.0/24 20.1.0.0/16 20.2.1.0/28

R1 R1 direct R4 direct direct

Destination Next Hop 10.1.0.0/24 10.1.2.0/24 10.2.1.0/24 10.3.1.0/24 20.1.0.0/16 20.2.1.0/28

R2 R2 R2 R2 R2 direct

to: 20.2.1.2

RouteAggregaAon •  LongestprefixmatchalgorithmallowsaggregaAonofprefixeswith

idenAcalnexthopaddresstoasingleentry•  Benefits

–  ReducessizeofrouAngtables–  MoreefficientrouAngtablelookups

Spring2017 CE151-AdvancedNetworks 61

Destination Next Hop 10.1.0.0/24 10.1.2.0/24 10.2.1.0/24 10.3.1.0/24 20.0.0.0/8

R3 direct direct

R3 R2

Destination Next Hop 10.1.0.0/24 10.1.2.0/24 10.2.1.0/24 10.3.1.0/24 20.2.0.0/16 20.1.1.0/28

R3 direct direct

R3 R2 R2

TypesofForwardingTableEntries•  Networkroute

–  DesAnaAonaddresswith0<prefixlength<32(e.g.,10.0.2.0/24)–  Mostentriesarenetworkroutes

•  Hostroute–  DesAnaAonaddresswithprefixlength=32(e.g.,10.0.1.2/32)–  Usedtospecifyaseparaterouteforcertainhosts

•  Defaultroute–  DesAnaAonaddresswithprefixlength=0(i.e.0.0.0.0/0)–  MatchesalldesAnaAons–  Commonlyusetoconnectacompany’sedgeroutertotheISPnetwork.

•  Specialcasesoflongestprefixmatch

Spring2017 CE151-AdvancedNetworks 62

ipcalc

•  IMO,subnetsarebestthoughtofasaddressranges•  ipcalccalculatestheserangesforyou…

% ipcalc 128.114.48.0/17 Address: 128.114.48.0 10000000.01110010.0 0110000.00000000

Netmask: 255.255.128.0 = 17 11111111.11111111.1 0000000.00000000 Wildcard: 0.0.127.255 00000000.00000000.0 1111111.11111111 =>

Network: 128.114.0.0/17 10000000.01110010.0 0000000.00000000 HostMin: 128.114.0.1 10000000.01110010.0 0000000.00000001 HostMax: 128.114.127.254 10000000.01110010.0 1111111.11111110 Broadcast: 128.114.127.255 10000000.01110010.0 1111111.11111111

Hosts/Net: 32766 Class B

•  …addressrangeof128.114.0.1–127.254•  hMp://jodies.de/ipcalc(availableascommandlinetool)

Spring2017 CE151-AdvancedNetworks 63

ProcessingofanIPdatagraminIP

Spring2017 CE151-AdvancedNetworks 64

UDP TCP

Inputqueue

Lookup nexthop

RoutingProtocol

Destinationaddress local?

Staticrouting

Yes

Senddatagram

IP forwardingenabled?

No

Discard

Yes No

Demultiplex

routingtable

IP module

Data Link Layer

IProuter:IPforwardingenabledHost:IPforwardingdisabled

DesAnaAon-BasedForwarding•  InternetrouAngusesasinglepathperdesAnaAon•  DesAnaAon-basedforwardingisarestrictedversionofsingle-path•  ApaththroughanodetoadesAnaAon…•  …mustbeanextensionofthepathfromthenodetothedes>na>on.•  Thisiscomingbacktohauntus…

Spring2017 CE151-AdvancedNetworks 65

Review•  AninternetisacollecAonofsubnets.•  AsubnetisdefinedbyanIPprefix(usingaddress/masknotaAon)•  IPimplementshop-by-hopdeliveryofpacketsbetweenhostsinan

internet•  Routersconnectsubnetsandforwardpacketsacrossaninternet

–  Forwarding:selecAonofpacket'snexthop,dataplane,fast(inhardware)–  RouAng:compuAngforwardingstate,signalingplane,notasAmecriAcal

•  TheforwardingtableistheinterfacebetweentherouAngandforwardingprocesses–  DesAnaAon–  Nexthop

•  ForwardingtablelookupsaredoneusingLongestPrefixMatch•  TheInternetusesdesAnaAon-basedforwarding,whichisarestricted

versionofsingle-pathforwarding.

Spring2017 CE151-AdvancedNetworks 66

ReceiveanIPdatagram

IPDatagramProcessing1.  IPheadervalidaAon2.  ProcessopAonsinIPheader3.  ParsingthedesAnaAonIP

address

4.  RouAngtablelookup5.  DecrementTTL6.  PerformfragmentaAon(if

necessary)

7.  Calculatechecksum8.  Transmittonexthop9.  SendICMPpacket(ifnecessary)

IPheaderprocessing

AddressResoluAonProtocol

RouAng

InternetControlMessageProtocol

Spring2017 CE151-AdvancedNetworks 67

AddressResoluAonProtocol(ARP)

Spring2017 CE151-AdvancedNetworks 68

NetworkLayer

Link Layer

IP

ARP NetworkAccess RARP

Media

ICMP IGMP

TransportLayer

TCP UDP

AddressResoluAonProtocol(ARP)•  TheInternetisbasedonIPaddresses•  Datalinkprotocols(Ethernet,FDDI,ATM)mayhavedifferent(MAC)addresses•  TheARPandRARPprotocolsperformthetransla>onbetweenIPaddressesand

MAClayeraddresses•  WewilldiscussARPforbroadcastLANs,parAcularlyEthernetLANs

Spring2017 CE151-AdvancedNetworks 69

RARP

Ethernet MACaddress(48 bit)

ARPIP address(32 bit)

Driver-levelIPPacketProcessing

Spring2017 CE151-AdvancedNetworks 70

loopbackDriver

IP Input

Put on IPinput queue

ARPdemultiplex

Ethernet Frame

Ethernet

IP destination of packet= local IP address ?

IP destination = multicastor broadcast ?

IP Output

Put on IPinput queue

No: get MACaddress withARP

ARPPacket

IP datagram

No

Yes

YesEthernet

Driver

AddressTranslaAonwithARPARPRequest:

ArgonbroadcastsanARPrequesttoallstaAonsonthenetwork:“WhatisthehardwareaddressofRouter137?”

Spring2017 CE151-AdvancedNetworks 71

Argon128.143.137.144

00:a0:24:71:e4:44

Router137128.143.137.1

00:e0:f9:23:a8:20

ARP Request:What is the MAC addressof 128.143.71.1?

AddressTranslaAonwithARPARPReply:

Router137unicastsanARPreplytowithitshardwareaddress.

Spring2017 CE151-AdvancedNetworks 72

Argon128.143.137.144

00:a0:24:71:e4:44

Router137128.143.137.1

00:e0:f9:23:a8:20

ARP Reply:The MAC address of 128.143.71.1is 00:e0:f9:23:a8:20

ARPPacketFormat

Spring2017 CE151-AdvancedNetworks 73

Destinationaddress

6

ARP Request or ARP Reply

28

Sourceaddress

6 2

CRC

4

Type0x8060 Padding

10

Ethernet II header

Hardware type (2 bytes)

Hardware addresslength (1 byte)

Protocol addresslength (1 byte) Operation code (2 bytes)

Target hardware address*

Protocol type (2 bytes)

Source hardware address*

Source protocol address*

Target protocol address*

* Note: The length of the address fields is determined by the corresponding address length fields

Example•  ARPRequestfromArgon:

Sourcehardwareaddress:00:a0:24:71:e4:44Sourceprotocoladdress: 128.143.137.144Targethardwareaddress: 00:00:00:00:00:00Targetprotocoladdress: 128.143.137.1

•  ARPReplyfromRouter137: Sourcehardwareaddress:00:e0:f9:23:a8:20 Sourceprotocoladdress: 128.143.137.1Targethardwareaddress: 00:a0:24:71:e4:44 Targetprotocoladdress: 128.143.137.144

Spring2017 CE151-AdvancedNetworks 74

ARPCache•  SincesendinganARPrequest/replyforeachIPdatagramis

inefficient,hostsmaintainacache(ARPCache)ofcurrententries.Theentriesexpireaper20minutes.

•  ContentsoftheARPCache(“arp–a”):(128.143.71.37)at00:10:4B:C5:D1:15[ether]oneth0(128.143.71.36)at00:B0:D0:E1:17:D5[ether]oneth0(128.143.71.35)at00:B0:D0:DE:70:E6[ether]oneth0(128.143.136.90)at00:05:3C:06:27:35[ether]oneth1(128.143.71.34)at00:B0:D0:E1:17:DB[ether]oneth0(128.143.71.33)at00:B0:D0:E1:17:DF[ether]oneth0

Spring2017 CE151-AdvancedNetworks 75

OtherARPUses•  WhathappensifanARPRequestismadeforanon-exisAnghost?

SeveralARPrequestsaremadewithincreasingAmeintervalsbetweenrequests.Eventually,ARPgivesup.

•  WhatifahostsendsanARPRequestforitsownIPaddress?

Theothermachinesrespond(gratuitousARP)asifitwasanormalARPrequest.ThisisusefulfordetecAngifanIPaddresshasalreadybeenassigned.

•  Similarly,whatifahostsendsanARPReplywithitsownMACaddress?

TheothermachinesacceptthenewMACaddressforthehost(alsocalledagratuitousARP).ThisisusefulformovingIPaddressestonewNICs.

Spring2017 CE151-AdvancedNetworks 76

ProxyARP•  ProxyARP:HostorrouterrespondstoARPRequestthatarrivesfromone

ofitsconnectednetworksforahostthatisonanotherofitsconnectednetworks.

Spring2017 CE151-AdvancedNetworks 77

128.143.137.1/1600:e0:f9:23:a8:20 128.143.71.1/24

128.143.0.0/16Subnet

128.143.71.0/24Subnet

Router137

ARP Request:What is the MAC addressof 128.143.71.21?

128.143.137.144/16 128.143.171.21/2400:20:af:03:98:28

Argon Neon

ARP Reply:The MAC address of128.143.71.21 is00:e0:f9:23:a8:20

Review•  TheAddressResoluAonProtocoltranslatesfromIPtoMACaddresses.

•  ARPworksby–  BroadcasAngARPRequestsforanIPaddress–  UnicasAnganARPReplywiththeMACaddresstotherequestor.–  ARPRequestsarerepeatedunAlaReplyisreceivedorARPAmesout.

•  HostsmaintainanARPcachetolimittheneedforARPqueriesforeverypacketsent

•  GratuitousARPareARPRequest/RepliesthatareissuedforotherthanstandardARPpurposes–  GratuitousARPRequestsdetectifanIPaddressisinuse–  GratuitousARPRepliescanbeusedtomoveanIPaddresstoanewNIC

•  RouterscanbeconfiguredtoissueProxyARPRepliestoARPRequestsononeofitsinterfacesforhostsonanotherinterface

Spring2017 CE151-AdvancedNetworks 78

ReceiveanIPdatagram

IPDatagramProcessing1.  IPheadervalidaAon2.  ProcessopAonsinIPheader3.  ParsingthedesAnaAonIP

address

4.  RouAngtablelookup5.  DecrementTTL6.  PerformfragmentaAon(if

necessary)

7.  Calculatechecksum8.  Transmittonexthop9.  SendICMPpacket(ifnecessary)

IPheaderprocessing

AddressResoluAonProtocol

RouAng

InternetControlMessageProtocol

Spring2017 CE151-AdvancedNetworks 79

Overview•  IPreliesonseveralotherprotocolstoperformnecessarycontroland

rouAngfuncAons:–  ControlfuncAons(ICMP)–  MulAcastsignaling(IGMP)–  Se}nguprouAngtables(RIP,OSPF,BGP,PIM,…)

Spring2017 CE151-AdvancedNetworks 80

Control

Routing

ICMP IGMP

RIP OSPF BGP PIM

Overview•  TheInternetControlMessageProtocol(ICMP)isahelperprotocolthat

supportsIPwithfacilityfor–  Simplequeries–  Errorrepor>ng

•  DefinedinRFC792.•  ConceptuallyICMPisapartofIP…•  …howeverisimplemented“ontop”ofIP•  ICMPmessagesareencapsulatedinIPdatagrams:

Spring2017 CE151-AdvancedNetworks 81

IP header ICMP message

IP payload

ICMPmessageformat4byteheader:•  Type(1byte):typeofICMPmessage•  Code(1byte):subtypeofICMPmessage•  Checksum(2bytes):similartoIPheaderchecksum.Checksumiscalculatedover

enAreICMPmessage•  EachICMPmessagesisatleast8byteslong

–  IfthereisnoaddiAonaldata,thereare4bytessettozero.

Spring2017 CE151-AdvancedNetworks 82

additional informationor

0x00000000

type code checksum

bit # 0 15 23 248 317 16

ICMPQuerymessagesICMPquery:•  Requestsentbyhosttoarouterorhost•  Replysentbacktoqueryinghost

Spring2017 CE151-AdvancedNetworks 83

Host

ICMP Request

Host or router

ICMP Reply

ExampleofaQuery:“ping”•  EachPingistranslatedintoanICMPEchoRequest•  ThePing’edhostrespondswithanICMPEchoReply•  AddiAonalinformaAon:IdenAfier,Sequence#,Data•  SourceanddesAnaAonaddressesswapped,typecodechangedto0,

checksumrecomputed.

Spring2017 CE151-AdvancedNetworks 84

Host or

Router

ICMP ECHO REQUEST Host or

router

ICMP ECHO

REPLY

ICMPRouterSolicitaAon/AdverAsement

•  Aperbootstrapping,ahostbroadcastsanICMProutersolicitaAon.

•  Inresponse,routerssendanICMProuteradverAsementmessage

•  Also,routersperiodicallybroadcastICMProuteradverAsement

ThisissomeAmescalledtheRouterDiscoveryProtocol

Spring2017 CE151-AdvancedNetworks 85

Ethernet

H1

R1 R2

ICMP routeradvertisement

ICMP routeradvertisement

ICMP routeradvertisement

ExampleofICMPQueriesType/Code DescripAon

8/0 EchoRequest0/0 EchoReply

13/0 TimestampRequest14/0 TimestampReply

10/0 RouterSolicitaAon9/0 RouterAdverAsement

Spring2017 CE151-AdvancedNetworks 86

ThepingcommandusesEchoRequest/EchoReply

ICMPErrormessages•  ICMPerrormessagesreporterrorcondiAons•  Typicallysentwhenadatagramisdiscarded•  ErrormessageisopenpassedfromICMPtotheapplicaAonprogram

Spring2017 CE151-AdvancedNetworks 87

Host

IP datagram

Host or router

ICMP ErrorMessage

IP datagramis discarded

ICMPErrormessages•  ICMPerrormessagesincludethecompleteIPheaderandthe

first8bytesofthepayload(typically:UDP,TCP)

Spring2017 CE151-AdvancedNetworks 88

Unused (0x00000000)

IP header ICMP header IP header 8 bytes of payload

ICMP Message

from IP datagram that triggered the error

type code checksum

ManipulateRouAngtablewithICMP

•  WhenarouterdetectsthatanIPdatagramshouldhavegonetoadifferentrouter,therouter(hereR2)–  forwardstheIPdatagramtothecorrectrouter–  sendsanICMPredirectmessagetothehost

•  HostusesICMPmessagetoupdateitsrouAngtable

Spring2017 CE151-AdvancedNetworks 89

Destination Next Hop 10.1.0.0/24 …

R2

Destination Next Hop 10.1.0.0/24 …

R1

Ethernet

H1

R1 R2

(1) IP datagram

R1

(2) IP datagram(3) ICMP redirect

Example:ICMPPortUnreachable•  RFC792:If,inthedesAnaAonhost,theIPmodulecannotdeliverthe

datagrambecausetheindicatedprotocolmoduleorprocessportisnotacAve,thedesAnaAonhostmaysendadesAnaAonunreachablemessagetothesourcehost.

•  Scenario:

Spring2017 CE151-AdvancedNetworks 90

Client

Request a service at a port 80

Server

No process is waiting at port 80

Port

Unreacha

ble

ExampleofanError:traceroute•  SendUDPdatagramtodesAnaAonwithIPTTLof1.•  WaitforICMPTEmessagetogetIPaddressofrouter(source).•  IncreaseTTLandrepeat.•  DesAnaAonidenAfiedbyuseofhighUDPportresulAnginICMPPort

Unreachablemessage.•  AddiAonalinformaAon(forbothmessages):

–  InternetHeader–  64bitsoforiginaldatagram

•  Demo

%tcpdump–nvhostcas01.ucsc.eduoricmp%traceroute–ncas01.ucsc.edu

Spring2017 CE151-AdvancedNetworks 91

FrequentICMPErrormessage

Spring2017 CE151-AdvancedNetworks 92

Type Code Description 3

0–15 Destination

unreachable Notification that an IP datagram could not be forwarded and was dropped. The code field contains an explanation.

5 0–3 Redirect Informs about an alternative route for the datagram and should result in a routing table update. The code field explains the reason for the route change.

11 0, 1 Time exceeded

Sent when the TTL field has reached zero (Code 0) or when there is a timeout for the reassembly of segments (Code 1)

12 0, 1 Parameter problem

Sent when the IP header is invalid (Code 0) or when an IP header option is missing (Code 1)

Somesubtypesofthe“DesAnaAonUnreachable”

Spring2017 CE151-AdvancedNetworks 93

Code Description Reason for Sending 0 Network

Unreachable No routing table entry is available for the destination network.

1 Host Unreachable

Destination host should be directly reachable, but does not respond to ARP Requests.

2 Protocol Unreachable

The protocol in the protocol field of the IP header is not supported at the destination.

3 Port Unreachable

The transport protocol at the destination host cannot pass the datagram to an application.

4 Fragmentation Needed and DF Bit Set

IP datagram must be fragmented, but the DF bit in the IP header is set.

Review•  ICMPprovidestwobasicservices:

–  Networkqueries–  ErrorreporAng

•  FuncAonofanICMPmessagedeterminedbyTypeandCodefields.•  Fornetworkqueries

–  TypefielddefinesmatchingRequest/Replytypes–  Codefieldis0–  AddiAonalinformaAonfieldusedforparameters

•  ForerrorreporAng–  TypefieldidenAfiesgeneralclassoferrors–  CodefieldidenAfiesspecificerror–  Typicallysentwhenadatagramisdiscarded–  IncludeIPheaderandfirst8bytesofpayload(UDPorTCPdata)

Spring2017 CE151-AdvancedNetworks 94

DHCP

•  AcronymforrememberingDHCPsequence?– DORK

•  Discover-broadcast•  Offer-unicast•  Request-broadcast•  acK-unicast

Spring2017 CE151-AdvancedNetworks 95

QuesAons?

Spring2017 CE151-AdvancedNetworks 96

ExtraSlides

Spring2017 CE151-AdvancedNetworks 97

LongestPrefixMatch•  Givenforwardingtable

•  (1)128.114.48.0/17•  (2)128.114.48.0/20•  (3)128.114.48.0/22•  (4)0/0

•  WhichentryischosenfordesAnaAon:128.114.122.5•  Answer:#1•  ExplanaAon(rememberbitvalues:1286432168421)

–  10000000 01110010 0xxxxxxx xxxxxxxx =128.114.48.0/17(0.0–127.255)–  10000000 01110010 0011xxxx xxxxxxxx =128.114.48.0/20(48.0–63.255)–  10000000 01110010 001100xx xxxxxxxx =128.114.48.0/22(48.0–51.255)–  10000000 01110010 01111010 00000101 =128.114.122.5

Spring2017 CE151-AdvancedNetworks 98

LongestPrefixMatch•  Givenforwardingtable

•  (1)128.114.48.0/17•  (2)128.114.48.0/20•  (3)128.114.48.0/22•  (4)0/0

•  WhichentryischosenfordesAnaAon:128.114.50.2•  Answer:??•  ExplanaAon(rememberbitvalues:1286432168421)

–  10000000 01110010 0xxxxxxx xxxxxxxx =128.114.48.0/17(0.0–127.255)–  10000000 01110010 0011xxxx xxxxxxxx =128.114.48.0/20(48.0–63.255)–  10000000 01110010 001100xx xxxxxxxx =128.114.48.0/22(48.0–51.255)

Spring2017 CE151-AdvancedNetworks 99

LongestPrefixMatch•  Givenforwardingtable

•  (1)128.114.48.0/17•  (2)128.114.48.0/20•  (3)128.114.48.0/22•  (4)0/0

•  WhichentryischosenfordesAnaAon:128.114.50.2•  Answer:#3•  ExplanaAon(rememberbitvalues:1286432168421)

–  10000000 01110010 0xxxxxxx xxxxxxxx =128.114.48.0/17(0.0–127.255)–  10000000 01110010 0011xxxx xxxxxxxx =128.114.48.0/20(48.0–63.255)–  10000000 01110010 001100xx xxxxxxxx =128.114.48.0/22(48.0–51.255)–  10000000 01110010 00110010 00000000 =128.114.50.2

Spring2017 CE151-AdvancedNetworks 100

LongestPrefixMatch•  Givenforwardingtable

•  (1)128.114.48.0/17•  (2)128.114.48.0/20•  (3)128.114.48.0/22•  (4)0/0

•  WhichentryischosenfordesAnaAon:128.114.52.10•  Answer:#2•  ExplanaAon(rememberbitvalues:1286432168421)

–  10000000 01110010 0xxxxxxx xxxxxxxx =128.114.48.0/17(0.0–127.255)–  10000000 01110010 0011xxxx xxxxxxxx =128.114.48.0/20(48.0–63.255)–  10000000 01110010 001100xx xxxxxxxx =128.114.48.0/22(48.0–51.255)–  10000000 01110010 00110100 00001010 =128.114.52.10

•  Giveanexampleofanaddressthatwoulduse(4)…thedefaultroute.

Spring2017 CE151-AdvancedNetworks 101

ARPAnetArchitecture•  Host-to-HostprotocolimplementedintheNetworkControlProgram

(NCP)-TheprimaryfuncAonoftheNCPistoestablishconnecAons,breakconnecAons[withameanstoidenAfyprocessesusing“sockets”],andcontroldataflowovertheconnecAons.

•  Host-IMP–“responsibleforbidirecAonalcommunicaAonbetweenthehostandIMP”–thehost’sinterfacetotheARPAnet

•  IMP-IMP–“receivingdatapackets,conducAngrudimentaryerrordetecAon,determiningtheroutefortheforwardingofdatapacketsandtransmi}ngthistothenextIMP.”

•  SrcIMP-DstIMP–flowcontrol(managementofreceivermemory),reliabledelivery,fragmentaAon(intopackets)andreassembly.

•  Internetworking:TechnologicalFoundaAonsandApplicaAonsByChristophMeinel,HaraldSack

Spring2017 CE151-AdvancedNetworks 102

Recommended