etsf05: networkmodels användarmodeller/paradigmer ...divide and conquer layered architecture ... 22...

54
ETSF05: Network models Användarmodeller/Paradigmer Länkprotokoll: Flödeskontroll vs felhantering Routingalgoritmer Jens A Andersson

Upload: others

Post on 03-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

ETSF05:Network modelsAnvändarmodeller/ParadigmerLänkprotokoll: Flödeskontroll vs felhanteringRoutingalgoritmer

Jens A Andersson

Page 2: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Att göra …

• Läsanvisningarna uppdaterade• Kursombud• Deadlines?

• Routingprojektet• Online

• Nästa Online• Minst 1 + 2• Missad deadline = penalty (*0.67?) ?

2

Page 3: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Network engineering

High performanceReliabilityThroughputSpeedSecurity

3

Page 4: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Network models

Too complicatedDivide and conquer

Layered architectureHierarchySpecialisationSimplification

Page 5: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Kommunikation på Internet

2.5

Page 6: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Logiska förbindelser enligt TCP/IP

end to end

Page 7: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Meddelanden

Segment (TCP) eller User Datagram (UDP)

Datagram

Ram (frame)

Bitar

Datagram

Identiska objekt enligt TCP/IP

Ram (frame)

Bitar

Switchar/Repeterare påverkar inte objekt!

Router

Page 8: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

2.8

Figure 2.8: Encapsulation / Decapsulation

Page 9: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Användarmodeller

• Klient-server• Client-Server Paradigm

• ”Användare-användare”• Peer-to-peer (P2P) Paradigm

9

Page 10: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Client-Server paradigm

10

Förfrågan om data

Data levereras

Page 11: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Peer-to-peer

11

utbyte av data tracker

Trackern kan vara distribuerad

Page 12: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Kontrollprotokoll (på länk-nivån)

FramingFlödeskontroll

Sänd dataVänta på ACK

FelkontrollUpptäcka felOmsändning

12

Inte alltid att flödeskontroll, felhantering finns i länklagret! Finns även på högre upp i stacken.

Page 13: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Flödeskontroll

13

Producent

Sändare

Konsument

MottagareRamar ”pushas”

Flödeskontroll

Page 14: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Stop-and-waitARQ flödesdiagram

14

• Ineffektivt• Mycket väntan i onödan

• Speciellt vid långa länkar

Page 15: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Go-Back-N?

• Viktigt inför nästa del och TCP (ETSF10)• Föreläst i repetitionsföreläsningen• Kommer på övning

15

Page 16: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Sliding window (sender)

16

Page 17: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Go-Back-N ARQ (the Stalling Way)Most commonly used error controlBased on sliding-windowUse window size to control number of outstanding framesWhile no errors occur, the destination will acknowledge incoming frames as usual

RR=receive ready, or piggybacked acknowledgmentIf the destination station detects an error in a frame, it may send a negative acknowledgment

REJ=reject Destination will discard that frame and all future frames until

the frame in error is received correctly Transmitter must go back and retransmit that frame and all

subsequent frames

ACK (this or next)

ACK (previous or this)

Page 18: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Go-Back-N

18

ACK2

ACK4

ACK4

Vårt sätt

Page 19: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Selective-Reject (ARQ) (Stalling)

Also called selective retransmissionOnly rejected frames are retransmittedSubsequent frames are accepted by the receiver and bufferedMinimizes retransmissionReceiver must maintain large enough bufferMore complex logic in transmitter

Less widely usedUseful for satellite links with long propagation delays

Page 20: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Routing

• Konsten att bygga least-cost trees• Från sändare till mottagare• Från varje nod till varje annan nod

• Tre principer• Distance Vector• Link State• Path Vector

• Policy-based routing

20

Page 21: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Comparison of LS and DV algorithmsMessage complexityLS: with n nodes, E links, O(nE) msgs for full knowledge, changes sent to all nodesDV: exchange between neighbours only

Speed of ConvergenceLS: O(n2) algorithm requires O(nE) msgs

may have oscillationsDV: convergence time varies

may be routing loops count-to-infinity problem

Robustness: what happens if router malfunctions?LS:

node can advertise incorrect linkcost for its “own” links

node can break broadcast path or change broadcasted info

each node computes only its owntable

DV: DV node can advertise incorrect

path cost to any path each node’s table used by others

error propagate thru network

Page 22: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

22

Flooding

I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count används för att inte skapa loopar.

B

Page 23: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

23

Nätgraf

I vägvalsalgoritmerna används en nätgraf som består av noder och länkar.

A

D

B

E

C

Page 24: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

24

Nätgraf forts.

Varje länk i grafen har en kostnad som anger hur ”dyrt” det är att skicka ett paket över länken.

A

D

B

E

C2 3

11

3

11

Page 25: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

25

Länkkostnad

Länkkostnaden kan bero på flera saker:KapacitetBelastningSträckaUtbredningsmediumOsv...

Page 26: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

26

Least-hop path

Least-hop path fungerar bäst om alla länkar har samma kostnad. Den väg som innehåller minst antal steg är bäst.

A

D

B

E

C

Page 27: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

27

Least-cost path

I Least-cost path väljs de vägar ut som kostar minst.

A

D

B

E

C3 1

11

3

13

Page 28: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Ett Internet och dess grafiska representation(?)

20.28

Page 29: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Ett Internet och dess grafiska representation(?)

29

Nät A Nät B Nät D

Nät E

Nät C

Nät F

Nät G

Rtr1 Rtr3

Rtr2

Rtr4

Rtr5

Rtr7

Rtr6

Page 30: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Ett Internet och dess grafiska representation

• Grafer består av bågar och noder

• Bågar samman binder noder• Noder är ”destinationer”

• I routing finns två olika typer av noder:

• Nät dvs destinationer• Routrar som sammanbinder nät

• Grafiska representationen kan bli något konstig …

30

Page 31: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

31

Nätgraf (exempel)

A

D

B

E

C3 1

11

3

13

Page 32: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Distance vector routing

Alla kända bästa vägar delas med grannarPeriodiskt (Vid varje förändring)

Routing-tabeller uppdateras medNya posterÄndring av kostnad

”Global kunskap sprids lokalt”

Page 33: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Kostnad

• Antal hopp (Bellman-Ford), funkar även med andra metrics

• Kihl, Andersson kap 8• Stallings kap 19.4• RIP

• Uppskattad fördröjning• Distributed Adaptive Routing (Stallings kap 19.2)

33

Page 34: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Nät A Nät B Nät D

Nät C

R1 skickar information om sina länkar till grannar.

R1 R2

R3 R4

R2 skickar information om sina länkar till grannar.

R3 skickar information om sina länkar till grannar.

R4 skickar information om sina länkar till grannar.

Principen för Distance Vector

Page 35: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Bellman-Fords algoritm grafiskt

20.35

Jmf Stallings kap 19.2

Page 36: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Bellman-Ford i pseudokodif (advertised destination not in table)

{

add new entry // rule #1

}

else if (adv. next hop = next hop in table)

{

update cost // rule #2

}

else if (adv. cost < cost in table)

{

replace old entry // rule #3

} Jmf Kihl, Andersson kap 8

Page 37: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

A

D

B

E

C1

11 1

37

Nätgraf som träd

Nod Dist

A 0

B 2

C 3

D 1

E 3

Distansvektor för A närnätet konvergerat

Page 38: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Uppdateringar

38

Nod Dist

A 0

B 3

D 1

Nod Dist

A 3B 0C 1D 1E 1

A[ ] = min(A[ ], cost(A-B) + B[ ])

Nod Dist

A 0B 3C 4D 1E 4

A, uppdaterad A, ursprungligUppdatering från B

Not! Kostnad till B via D okänd tills D uppdaterat A

Page 39: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Distance Vector, funderingar

• Periodiska uppdateringar!?• Problem med länkar och noder som försvinner.• Hur hitta grannar?• Hur upptäcka att en granne försvinner?

39

Page 40: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Mer om distance vector

Nästa föreläsning:• Count to infinity• Two, three node instability• Split Horizon• Poison Reverse• Routingprotokoll RIP

40

Page 41: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Link state routing, princip

Lokal topologi-information flödas (flooding) globaltVid varje förändringPeriodiskt (i praktiken sällan)

Varje nod bygger egen databasRouting-tabellen uppdateras med

Nya posterFörändring av kostnad

”Lokal kunskap sprids globalt”412011-10-

Page 42: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Link state routing, princip

42

Page 43: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Exempel på link state databas

43

A B C D E

A 0 3 ∞ 1 ∞

B 3 0 1 1 1

C ∞ 1 0 ∞ 3

D 1 1 ∞ 0 3

E ∞ 1 3 3 0

∞ betyder okänd nod0 avstånd till sig själv

Page 44: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Link State Advertisements

44

Nod Kostn

B 3D 1

Nod Kostn

A 3C 1D 1E 1

Nod Kostn

B 1E 3

Nod Kostn

A 1B 1E 3

Nod Kostn

B 1C 3D 3

Uppdateras vid förändring!

Page 45: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Shortest Path FirstTree generation algorithm (Dijkstra)put yourself to tentative list

while tentative list not empty

{

pick node which can be reached

with least cumulative cost

add it to your tree*

put its neighbours to tentative list**

with cumulative costs to reach them

}*(a.k.a. permanent list)

**(if not already there with lower cost)

45

Page 46: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

SPF exempel med graf

46

A

D

B

E

C3

1

A

D

B

E

C3

12

4

A

D

B

E

C

12

4

3

3

A

D

B

E

C

12

3

3 6

A

D

B

E

C

12

3

3

Rotnod

Permanent nod

Preliminär nod

Potentiell väg

Permanent väg

Page 47: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

SPF exempel med tabell

Perm.lista L(A) L(B) L(C) L(D) L(E)

0 ∞ ∞ ∞ ∞{A} 3:A ∞ 1:A ∞

{A,D} 2:D ∞ 4:D

{A,D,B} 3:B 3:B

{A,D,B,C} 3:B

{A,D,B,C,E}

47

Notation:Kostnad:Via

Page 48: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Link State, funderingar

• Periodiska uppdateringar!?• Problem med länkar och noder som försvinner.• Hur hitta grannar?• Hur upptäcka att en granne försvinner?

48

Page 49: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Mer om link state

Nästa föreläsning:• Routingprotokoll OSPF• Konceptet Areor eller hur man minskar flooding

49

Page 50: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Path Vector Routing• Lägg till path vector för varje destination• Påminner om Distance Vector

• Path Vector innehåller info om hela vägen till destinationen

• Finn best path bland många tillgängliga vägar• Policy Based Routing

• Använd bara vägar som går igenom accepterade noder• Använd inte vägar där egna noden ingår (loop!)• Längd på Path Vector är ofta(?) viktigaste parameter

50

Page 51: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Spanning trees in path-vector routing

Page 52: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Path vectors made at booting time

Page 53: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Updating path vectors

”best” är implementering av policyn

Page 54: ETSF05: Networkmodels Användarmodeller/Paradigmer ...Divide and conquer Layered architecture ... 22 Flooding I Flooding skickas ett inkommande paket ut på samtliga länkar. En hop-count

Mer om path vector

Nästa föreläsning:• Autonoma system, AS• Routing mellan domäner• Policy routing• Routingprotokoll BGP

54