SlideShare une entreprise Scribd logo
1  sur  52
Télécharger pour lire hors ligne
Week 3 
Building a network 
Supporting applications
Agenda 
• Building a network 
• Network basics 
• Distance Vector routing 
• Link State routing 
• Supporting applications
Addresses 
• What are the advantages/drawbacks of 
hierarchical versus flat addresses ?
Port-station tables 
• What are the advantages/drawbacks of this 
approach ? 
• How to deal with mobile devices ? 
• What about multihomed devices ?
Label switching 
• What are the advantages/drawbacks of this 
approach ? 
• How to create the virtual circuits 
automatically ?
Source routing 
• What are the advantages/drawbacks of this 
approach ?
Datagram mode 
• Early work on this concept that lead to the 
current Internet was done in France 
• Cyclades project lead by Louis Pouzin 
http://goo.gl/lwdlwS
Agenda 
• Building a network 
• Network basics 
• Distance Vector routing 
• Link State routing 
• Supporting applications
Distance vectors 
l How to deal with link failures ? 
C 
A B C 
D E 
D E
How to react ? 
All routes that use a failed link are advertised with 
an infinite cost 
C 
Routing table 
B : 0 [Local] 
A : ¥ 
C : 1 [East] 
E : 1 [South] 
D : 2 [South] 
D E 
Routing table 
A : 0 [ Local ] 
D : 1 [South] 
B : ¥ 
C : ¥ 
E : ¥ 
A B C 
D E 
Routing table 
C : 0 [Local] 
E : 1 [South-West] 
D : 2 [South-West] 
A : 2 [West] 
B : 1 [West] 
Routing table 
E : 0 [Local] 
D : 1 [West] 
A : 2 [West] 
C : 1 [North-East] 
B : 1 [North] 
Routing table 
D : 0 [Local] 
A : 1 [North] 
E : 1 [East] 
C : 2 [East] 
B : 2 [North] 
A=0;B=¥;C=¥;D=1;E=¥
Reception of DV 
Received(Vector V[],link l) 
{ /* received vector from link l */ 
for each destination=d in V[] 
{ 
if (d isin R[]) 
{ if ( ((V[d].cost+l.cost) < R[d].cost) OR 
( R[d].link == l) ) 
{ /* better route or change to current route */ 
R[d].cost=V[d].cost+l.cost; 
R[d].link=l; 
} 
} 
else 
{ /* new route */ 
R[d].cost=V[d].cost+l.cost; 
R[d].link=l; 
} 
} 
Why ?
Example 
Routing table 
A : 0 [ Local ] 
D : 1 [South] 
B : ¥ 
C : ¥ 
E : ¥ 
Routing table 
C : 0 [Local] 
E : 1 [South-West] 
D : 2 [South-West] 
Routing table 
B : 0 [Local] 
A : ¥ 
C : 1 [East] 
E : 1 [South] 
D : 2 [South] 
A B C 
A=0;B=¥;C=¥;D=1;E=¥ 
D E 
A : 2 [West] 
B : 1 [West] 
Routing table 
E : 0 [Local] 
D : 1 [West] 
A : 2 [West] 
C : 1 [North-East] 
B : 1 [North] 
Routing table 
D : 0 [Local] 
A : 1 [North] 
E : 1 [East] 
C : 2 [East] 
B : 2 [North] 
D must removes all the routes learned from 
North that are announced with an ∞ cost
Example 
C 
Routing table 
B : 0 [Local] 
A : ¥ 
C : 1 [East] 
E : 1 [South] 
D : 2 [South] 
D E 
Routing table 
A : 0 [ Local ] 
D : 1 [South] 
B : ¥ 
C : ¥ 
E : ¥ 
A B C 
D E 
Routing table 
C : 0 [Local] 
E : 1 [South-West] 
D : 2 [South-West] 
A : 2 [West] 
B : 1 [West] 
Routing table 
E : 0 [Local] 
D : 1 [West] 
A : 2 [West] 
C : 1 [North-East] 
B : 1 [North] 
Routing table 
D : 0 [Local] 
A : 1 [North] 
E : 1 [East] 
C : 2 [East] 
B : ¥ 
D=0;B= ¥;A=1;C=2;E=11
Example 
C 
D E 
Routing table 
A : 0 [ Local ] 
D : 1 [South] 
B : ¥ 
C : 3 [South] 
E : 2 [South] 
A B C 
D E 
Routing table 
C : 0 [Local] 
E : 1 [South-West] 
D : 2 [South-West] 
A : 2 [West] 
B : 1 [West] 
Routing table 
E : 0 [Local] 
D : 1 [West] 
A : 2 [West] 
C : 1 [North-East] 
B : 1 [North] 
Routing table 
D : 0 [Local] 
A : 1 [North] 
E : 1 [East] 
C : 2 [East] 
B : ¥ 
Routing table 
B : 0 [Local] 
A : ¥ 
C : 1 [East] 
E : 1 [South] 
D : 2 [South] 
B=0;A=¥;C=1;E=1;D=2 
B=0;A=¥;C=1;E=1;D=2
Example 
C 
D E 
Routing table 
A : 0 [ Local ] 
D : 1 [South] 
B : ¥ 
C : 3 [South] 
E : 2 [South] 
A B C 
D E 
Routing table 
C : 0 [Local] 
E : 1 [South-West] 
D : 2 [South-West] 
A : ¥¥ 
B : 1 [West] 
Routing table 
E : 0 [Local] 
D : 1 [West] 
A : 2 [West] 
C : 1 [North-East] 
B : 1 [North] 
Routing table 
D : 0 [Local] 
A : 1 [North] 
E : 1 [East] 
C : 2 [East] 
B : ¥ 
Routing table 
B : 0 [Local] 
A : ¥ 
C : 1 [East] 
E : 1 [South] 
D : 2 [South] 
E=0;A=2;D=1;C=1;B=1 
E=0;A=2;D=1;C=1;B=1 
E=0;A=2;D=1;C=1;B=1
Example 
C 
D E 
Routing table 
A : 0 [ Local ] 
D : 1 [South] 
B : ¥ 
C : 3 [South] 
E : 2 [South] 
A B C 
D E 
Routing table 
C : 0 [Local] 
E : 1 [South-West] 
D : 2 [South-West] 
A: 3 [South-West] 
B : 1 [West] 
Routing table 
E : 0 [Local] 
D : 1 [West] 
A : 2 [West] 
C : 1 [North-East] 
B : 1 [North] 
Routing table 
D : 0 [Local] 
A : 1 [North] 
E : 1 [East] 
C : 2 [East] 
B : 2 [East] 
Routing table 
B : 0 [Local] 
A : 3 [South] 
C : 1 [East] 
E : 1 [South] 
D : 2 [South] 
A=1;B=2;C=2;D=1;E=1 
• Everything is ok ?
Another failure 
C 
D E 
Routing table 
A : 0 [ Local ] 
D : 1 [South] 
B : 3 [South] 
C : 3 [South] 
E : 2 [South] 
A B C 
D E 
Routing table 
C : 0 [Local] 
E : 1 [South-West] 
D : 2 [South-West] 
A: 3 [South-West] 
B : 1 [West] 
Routing table 
E : 0 [Local] 
D : 1 [West] 
A : 2 [West] 
C : 1 [North-East] 
B : 1 [North] 
Routing table 
D : 0 [Local] 
A : 1 [North] 
E : 1 [East] 
C : 2 [East] 
B : 2 [East] 
Routing table 
B : 0 [Local] 
A : 3 [South] 
C : 1 [East] 
E : 1 [South] 
D : 2 [South] 
A=1;B=¥;C=¥;D=1;E=¥
Another failure 
Routing table 
C : 0 [Local] 
E : 1 [South-West] 
D : 2 [South-West] 
A: 3 [South-West] 
B : 1 [West] 
C 
Routing table 
B : 0 [Local] 
A : 3 [South] 
C : 1 [East] 
E : 1 [South] 
D : 2 [South] 
A B C 
A=0;D=1;B=3;C=3;E=2 
D E 
Routing table 
A : 0 [ Local ] 
D : 1 [South] 
B : 3 [South] 
C : 3 [South] 
E : 2 [South] 
D E 
Routing table 
E : 0 [Local] 
D : 1 [West] 
A : 2 [West] 
C : 1 [North-East] 
B : 1 [North] 
Routing table 
D : 0 [Local] 
A : 1 [North] 
E : ¥ 
C : ¥ 
B : ¥ 
But A could also send its distance vector before D
Another failure 
D updates its routing table 
C 
D E 
Routing table 
A : 0 [ Local ] 
D : 1 [South] 
B : 3 [South] 
C : 3 [South] 
E : 2 [South] 
A B C 
D E 
Routing table 
C : 0 [Local] 
E : 1 [South-West] 
D : 2 [South-West] 
A: 3 [South-West] 
B : 1 [West] 
Routing table 
E : 0 [Local] 
D : 1 [West] 
A : 2 [West] 
C : 1 [North-East] 
B : 1 [North] 
Routing table 
D : 0 [Local] 
A : 1 [North] 
E : 3 [North] 
C : 4 [North] 
B : 4 [North] 
Routing table 
B : 0 [Local] 
A : 3 [South] 
C : 1 [East] 
E : 1 [South] 
D : 2 [South] 
D=0;A=1;E=3;C=4;B=4
Another failure 
C 
D E 
Routing table 
A : 0 [ Local ] 
D : 1 [South] 
B : 5 [South] 
C : 5 [South] 
E : 4 [South] 
A B C 
D E 
Routing table 
C : 0 [Local] 
E : 1 [South-West] 
D : 2 [South-West] 
A: 3 [South-West] 
B : 1 [West] 
Routing table 
E : 0 [Local] 
D : 1 [West] 
A : 2 [West] 
C : 1 [North-East] 
B : 1 [North] 
Routing table 
D : 0 [Local] 
A : 1 [North] 
E : 3 [North] 
C : 4 [North] 
B : 4 [North] 
Routing table 
B : 0 [Local] 
A : 3 [South] 
C : 1 [East] 
E : 1 [South] 
D : 2 [South] 
A=0;D=1;B=5;C=5;E=4
Another failure 
C 
D E 
Routing table 
A : 0 [ Local ] 
D : 1 [South] 
B : 5 [South] 
C : 5 [South] 
E : 4 [South] 
A B C 
D E 
Routing table 
C : 0 [Local] 
E : 1 [South-West] 
D : 2 [South-West] 
A: 3 [South-West] 
B : 1 [West] 
Routing table 
E : 0 [Local] 
D : 1 [West] 
A : 2 [West] 
C : 1 [North-East] 
B : 1 [North] 
Routing table 
D : 0 [Local] 
A : 1 [North] 
E : 5[North] 
C : 6 [North] 
B : 6 [North] 
Routing table 
B : 0 [Local] 
A : 3 [South] 
C : 1 [East] 
E : 1 [South] 
D : 2 [South] 
A=1;D=0;B=6;C=6;E=5 
• This problem is called counting to infinity 
• How can we prevent it ?
Another failure 
Split horizon 
Split horizon with poisoning
Split horizon 
A B C 
E 
Routing table 
A : 0 [ Local ] 
D : 1 [South] 
B : 3 [South] 
C : 3 [South] 
E : 2 [South] 
D E 
• A will not pollute D’s routing table 
Routing table 
C : 0 [Local] 
E : 1 [South-West] 
D : 2 [South-West] 
A: 3 [South-West] 
B : 1 [West] 
Routing table 
E : 0 [Local] 
D : 1 [West] 
A : 2 [West] 
C : 1 [North-East] 
B : 1 [North] 
Routing table 
D : 0 [Local] 
A : 1 [North] 
E : 1 [East] 
C : 2 [East] 
B : 2 [East] 
Routing table 
B : 0 [Local] 
A : 3 [South] 
C : 1 [East] 
E : 1 [South] 
D : 2 [South] 
A=0
Split horizon (2) 
D can also send its distance vector 
C 
D E 
Routing table 
A : 0 [ Local ] 
D : 1 [South] 
E : ¥ 
C : ¥ 
B : ¥ 
A B C 
D E 
Routing table 
C : 0 [Local] 
E : 1 [South-West] 
D : 2 [South-West] 
A: 3 [South-West] 
B : 1 [West] 
Routing table 
E : 0 [Local] 
D : 1 [West] 
A : 2 [West] 
C : 1 [North-East] 
B : 1 [North] 
Routing table 
D : 0 [Local] 
A : 1 [North] 
E : ¥ 
C : ¥ 
B : ¥ 
Routing table 
B : 0 [Local] 
A : 3 [South] 
C : 1 [East] 
E : 1 [South] 
D : 2 [South] 
D=0;B=¥;C=¥;E=¥ 
Does split horizon allows to avoid all counting to 
infinity problems ?
Limitations 
C 
E 
Routing table 
A : 0 [ Local ] 
B : ¥¥ 
C : ¥¥ 
E : ¥¥ 
A B C 
E 
Routing table 
C : 0 [Local] 
E : 1 [South-West] 
A : 2 [West] 
B : 1 [West] 
Routing table 
E : 0 [Local] 
A : 2 [North] 
C : 1 [North-East] 
B : 1 [North] 
Routing table 
B : 0 [Local] 
A : 1 [West] 
C : 1 [East] 
E : 1 [South] 
A=2;B=1; C=0;E=¥ 
A=¥;B=0; C=1;E=¥ 
A=¥;B=0; C=1;E=¥
Limitations 
C 
E 
E will send its own distance vector 
B will discover a new route 
towards A via E and will advertise 
it to C 
New count to infinity problem 
Routing table 
A : 0 [ Local ] 
B : ¥¥ 
C : ¥¥ 
E : ¥¥ 
A B C 
E 
Routing table 
C : 0 [Local] 
E : 1 [South-West] 
A : 2 [West] 
B : 1 [West] 
Routing table after B’s vector 
E : 0 [Local] 
A : ¥ 
C : 1 [North-East] 
B : 1 [North] 
Routing table after C’s vector 
E : 0 [local] 
A : 3 [North-East] 
C : 1 [North-East] 
B : 1 [North] 
Routing table 
B : 0 [Local] 
A : 1 [West] 
C : 1 [East] 
E : 1 [South] 
A=¥;B=0; C=1;E=¥ 
A=2;B=1; C=0;E=¥
Operational issue 
Operation 
At each expiration of its 30-sec timer, each router 
sends its distance vector and restarts its timer 
Problem 
After a power failure, all routers might restart at 
same time and have synchronised timers 
Each router will need to process bursts of DV 
messages
Agenda 
• Building a network 
• Network basics 
• Distance Vector routing 
• Link State routing 
• Supporting applications
How to set link costs ? 
• By manual configuration 
• Based on link bandwidth 
• By measurements
What is the role of 
• Sequence number in link state packets 
• How to deal with wrap around ? 
• Age field in link state packets 
• CRC in link state packets
Two way connectivity 
check 
C 
Links 
A-B, B-A : 1 
B-E, E-B : 1 
B-C, C-B : 1 
E-D, D-E : 1 
E-C, C-E : 1 
A-D, D-A : 1 
LSPs 
E-0 [D:1];[B:1];[C:1] 
A-0 [D:1];[B:1] 
B-0 [A:1] [C:1] [E:1] 
C-0 [B:1] [E:1] 
D-0 [A:1] [E:1] 
Links 
A-B, B-A : 1 
B-E, E-B : 1 
B-C, C-B : 1 
E-D, D-E : 1 
E-C, C-E : 1 
A-D, D-A : 1 
A B C 
D E 
D E 
Links 
A-B, B-A : 1 
B-E, E-B : 1 
B-C, C-B : 1 
E-D, D-E : 1 
E-C, C-E : 1 
A-D, D-A : 1 
LSPs 
E-0 [D:1];[B:1];[C:1] 
A-0 [D:1];[B:1] 
B-0 [A:1] [C:1] [E:1] 
C-0 [B:1] [E:1] 
D-0 [A:1] [E:1] 
LSPs 
E-0 [D:1];[B:1];[C:1] 
A-0 [D:1];[B:1] 
B-0 [A:1] [C:1] [E:1] 
C-0 [B:1] [E:1] 
D-0 [A:1] [E:1] 
Links 
A-B, B-A : 1 
B-E, E-B : 1 
B-C, C-B : 1 
E-D, D-E : 1 
E-C, C-E : 1 
A-D, D-A : 1 
Links 
A-B, B-A : 1 
B-E, E-B : 1 
B-C, C-B : 1 
E-D, D-E : 1 
E-C, C-E : 1 
A-D, D-A : 1 
LSPs 
E-1 [D:1];[C:1] 
A-0 [D:1];[B:1] 
B-0 [A:1] [C:1] [E:1] 
C-0 [B:1] [E:1] 
D-0 [A:1] [E:1] 
LSPs 
E-0 [D:1];[B:1];[C:1] 
A-0 [D:1];[B:1] 
B-0 [A:1] [C:1] [E:1] 
C-0 [B:1] [E:1] 
D-0 [A:1] [E:1] 
LSP : E-1 [D:1];[C:1] 
LSP : E-1 [D:1];[C:1] 
• A link is only considered useable only if 
both directions have been advertised
Transient problems 
when a link fails 
A B 
C 100 D 
A's FIB 
B : East 
C : South 
D : East 
D's FIB 
A : North 
B : North 
C : North 
C's FIB 
A : North 
B : North 
D : North 
B's FIB 
A : West 
C : West 
D : South 
A and B are not yet 
aware of failure 
Packets will be lost
A detects the failure 
A B 
C 100 D 
A's FIB 
B : East 
C : South 
D : East 
D's FIB 
A : North 
B : North 
C : North 
C's FIB 
A : North 
B : North 
D : North 
B's FIB 
A : West 
C : West 
D : South 
B not yet aware of failure 
A cannot reach B/D 
Packets continue to be lost
A recomputes Dijkstra 
and sends LSP 
A B 
A:1 C=1 
C 100 D 
A's FIB 
B : South 
C : South 
D : South 
D's FIB 
A : North 
B : North 
C : North 
C's FIB 
A : North 
B : North 
D : North 
B's FIB 
A : West 
C : West 
D : South 
B not yet aware of failure 
A loops towards B/D 
Packets continue to be lost
B detects the failure 
A B 
A:1 C=1 
C 100 D 
A's FIB 
B : South 
C : South 
D : South 
D's FIB 
A : North 
B : North 
C : North 
C's FIB 
A : North 
B : North 
D : North 
B's FIB 
A : West 
C : West 
D : South 
B cannot reach A/C 
A loops towards B/D 
Packets continue to be lost
B recomputes Dijkstra 
and sends its LSP 
A B 
B:1 D=1 
C 100 D 
A's FIB 
B : South 
C : South 
D : South 
D's FIB 
A : North 
B : North 
C : North 
C's FIB 
A : North 
B : North 
D : North 
B's FIB 
A : South 
C : South 
D : South 
B cannot reach A/C 
A loops towards B/D 
Packets continue to be lost
C recomputes Dijkstra 
A B 
C 100 D 
A's FIB 
B : South 
C : South 
D : South 
D's FIB 
A : North 
B : North 
C : North 
C's FIB 
A : North 
B : East 
D : East 
B's FIB 
A : South 
C : South 
D : South 
B loops towards A/C 
A can reach everyone 
Packets continue to be lost
D recomputes Dijkstra 
A B 
C 100 D 
A's FIB 
B : South 
C : South 
D : South 
D's FIB 
A : West 
B : North 
C : West 
C's FIB 
A : North 
B : East 
D : East 
B's FIB 
A : South 
C : South 
D : South 
B can reach everyone 
A can reach everyone 
Network has been updated
Router failures 
• Planned failures 
• Router reboot to upgrade OS 
• Sudden failure 
• due to power outage, software or 
hardware crash
Agenda 
• Building a network 
• Supporting applications 
• Transport services 
• Reliable transport protocols
Connectionless 
Source Provider Destination 
DATA.request(S,D,"M") 
DATA.indication(S,D,"M") 
Time
Connection oriented 
Source Network provider Destination 
CONNECT.request 
CONNECT.indication 
CONNECT.confirm 
Source considers 
connection open 
CONNECT.response 
Destination considers 
connection open
Data transfer 
Message mode 
Source Provider Destination 
CONNECT.request 
CONNECT.indication 
CONNECT.confirm 
CONNECT.response 
DATA.request("A") DATA.ind("A") 
DATA.request("BCD") DATA.ind("BCD") 
DATA.request("EF") DATA.ind("EF")
Data transfer 
Stream mode 
Source Provider Destination 
CONNECT.request 
CONNECT.indication 
CONNECT.confirm 
CONNECT.response 
DATA.request("AB") DATA.ind("A") 
DATA.request("CD") 
DATA.ind("B") 
DATA.request("EF") DATA.ind("C") 
DATA.ind("DEF")
Abrupt release 
Source Provider Destination 
Connection opened Connection opened 
DISCONNECT.req(abrupt) 
DISCONNECT.indication 
DATA.request("A") 
DATA.request("B") 
DATA.indication("A") 
DATA.request("C")
Graceful release 
Source Provider Destination 
Connection opened Connection opened 
DISCONNECT.req(graceful) 
DATA.request("C") 
DISCONNECT.ind(graceful) 
DATA.request("A") 
DATA.request("B") 
DATA.indication("A") 
DATA.indication("B") 
Source->Destination 
connection closed 
DATA.indication("C") 
DATA.request("D") 
DATA.indication("D") 
DISCONNECT.req(graceful) 
DISCONNECT.ind(graceful) Connection closed 
Connection closed
Transport services 
useable on Internet 
• TCP : Connection oriented, bytestream 
• UDP : Connectionless
Agenda 
• Building a network 
• Supporting applications 
• Transport services 
• Reliable transport protocols
Multiplexing 
• How to multiplex data coming from 
multiple applications ?
Reliable transport 
• How to establish a connection ?
Reliable transport 
protocols 
• How to reliably transport data ?
Reliable transport 
• How to terminate a transport connection ?

Contenu connexe

Similaire à 3 network-transport

0580 w11 qp_22
0580 w11 qp_220580 w11 qp_22
0580 w11 qp_22King Ali
 
0580_w11_qp_22
0580_w11_qp_220580_w11_qp_22
0580_w11_qp_22King Ali
 
Traversing Practical part 1
Traversing Practical part 1Traversing Practical part 1
Traversing Practical part 1Bahzad5
 
0580 s10 qp_23
0580 s10 qp_230580 s10 qp_23
0580 s10 qp_23King Ali
 
0580 s10 qp_23
0580 s10 qp_230580 s10 qp_23
0580 s10 qp_23King Ali
 
0580 s10 qp_23
0580 s10 qp_230580 s10 qp_23
0580 s10 qp_23King Ali
 
0580_s10_qp_23
0580_s10_qp_230580_s10_qp_23
0580_s10_qp_23King Ali
 
0580_w08_qp_02
0580_w08_qp_020580_w08_qp_02
0580_w08_qp_02King Ali
 
0580 s11 qp_22
0580 s11 qp_220580 s11 qp_22
0580 s11 qp_22King Ali
 
0580 s06 qp_2
0580 s06 qp_20580 s06 qp_2
0580 s06 qp_2King Ali
 
0580 s07 qp_2
0580 s07 qp_20580 s07 qp_2
0580 s07 qp_2King Ali
 

Similaire à 3 network-transport (13)

Part7-routing.pptx
Part7-routing.pptxPart7-routing.pptx
Part7-routing.pptx
 
0580 w11 qp_22
0580 w11 qp_220580 w11 qp_22
0580 w11 qp_22
 
0580_w11_qp_22
0580_w11_qp_220580_w11_qp_22
0580_w11_qp_22
 
Traversing Practical part 1
Traversing Practical part 1Traversing Practical part 1
Traversing Practical part 1
 
0580 s10 qp_23
0580 s10 qp_230580 s10 qp_23
0580 s10 qp_23
 
0580 s10 qp_23
0580 s10 qp_230580 s10 qp_23
0580 s10 qp_23
 
0580 s10 qp_23
0580 s10 qp_230580 s10 qp_23
0580 s10 qp_23
 
0580_s10_qp_23
0580_s10_qp_230580_s10_qp_23
0580_s10_qp_23
 
0580_w08_qp_02
0580_w08_qp_020580_w08_qp_02
0580_w08_qp_02
 
0580 s11 qp_22
0580 s11 qp_220580 s11 qp_22
0580 s11 qp_22
 
3D Geometry Theory 11
3D Geometry Theory 113D Geometry Theory 11
3D Geometry Theory 11
 
0580 s06 qp_2
0580 s06 qp_20580 s06 qp_2
0580 s06 qp_2
 
0580 s07 qp_2
0580 s07 qp_20580 s07 qp_2
0580 s07 qp_2
 

Plus de Olivier Bonaventure

A personal journey towards more reproducible networking research
A personal journey towards more reproducible networking researchA personal journey towards more reproducible networking research
A personal journey towards more reproducible networking researchOlivier Bonaventure
 
Part 11 : Interdomain routing with BGP
Part 11 : Interdomain routing with BGPPart 11 : Interdomain routing with BGP
Part 11 : Interdomain routing with BGPOlivier Bonaventure
 
Part 10 : Routing in IP networks and interdomain routing with BGP
Part 10 : Routing in IP networks and interdomain routing with BGPPart 10 : Routing in IP networks and interdomain routing with BGP
Part 10 : Routing in IP networks and interdomain routing with BGPOlivier Bonaventure
 
Part 9 : Congestion control and IPv6
Part 9 : Congestion control and IPv6Part 9 : Congestion control and IPv6
Part 9 : Congestion control and IPv6Olivier Bonaventure
 
Part 8 : TCP and Congestion control
Part 8 : TCP and Congestion controlPart 8 : TCP and Congestion control
Part 8 : TCP and Congestion controlOlivier Bonaventure
 

Plus de Olivier Bonaventure (20)

Part3-reliable.pptx
Part3-reliable.pptxPart3-reliable.pptx
Part3-reliable.pptx
 
Part10-router.pptx
Part10-router.pptxPart10-router.pptx
Part10-router.pptx
 
Part1-Intro-Apps.pptx
Part1-Intro-Apps.pptxPart1-Intro-Apps.pptx
Part1-Intro-Apps.pptx
 
Part9-congestion.pptx
Part9-congestion.pptxPart9-congestion.pptx
Part9-congestion.pptx
 
Part2-Apps-Security.pptx
Part2-Apps-Security.pptxPart2-Apps-Security.pptx
Part2-Apps-Security.pptx
 
Part11-lan.pptx
Part11-lan.pptxPart11-lan.pptx
Part11-lan.pptx
 
Part5-tcp-improvements.pptx
Part5-tcp-improvements.pptxPart5-tcp-improvements.pptx
Part5-tcp-improvements.pptx
 
Part8-ibgp.pptx
Part8-ibgp.pptxPart8-ibgp.pptx
Part8-ibgp.pptx
 
Part4-reliable-tcp.pptx
Part4-reliable-tcp.pptxPart4-reliable-tcp.pptx
Part4-reliable-tcp.pptx
 
Part6-network-routing.pptx
Part6-network-routing.pptxPart6-network-routing.pptx
Part6-network-routing.pptx
 
Part1-Intro-Apps.pptx
Part1-Intro-Apps.pptxPart1-Intro-Apps.pptx
Part1-Intro-Apps.pptx
 
Part2-Apps-Security.pptx
Part2-Apps-Security.pptxPart2-Apps-Security.pptx
Part2-Apps-Security.pptx
 
Part4-reliable-tcp.pptx
Part4-reliable-tcp.pptxPart4-reliable-tcp.pptx
Part4-reliable-tcp.pptx
 
Part3-reliable.pptx
Part3-reliable.pptxPart3-reliable.pptx
Part3-reliable.pptx
 
A personal journey towards more reproducible networking research
A personal journey towards more reproducible networking researchA personal journey towards more reproducible networking research
A personal journey towards more reproducible networking research
 
Part 12 : Local Area Networks
Part 12 : Local Area Networks Part 12 : Local Area Networks
Part 12 : Local Area Networks
 
Part 11 : Interdomain routing with BGP
Part 11 : Interdomain routing with BGPPart 11 : Interdomain routing with BGP
Part 11 : Interdomain routing with BGP
 
Part 10 : Routing in IP networks and interdomain routing with BGP
Part 10 : Routing in IP networks and interdomain routing with BGPPart 10 : Routing in IP networks and interdomain routing with BGP
Part 10 : Routing in IP networks and interdomain routing with BGP
 
Part 9 : Congestion control and IPv6
Part 9 : Congestion control and IPv6Part 9 : Congestion control and IPv6
Part 9 : Congestion control and IPv6
 
Part 8 : TCP and Congestion control
Part 8 : TCP and Congestion controlPart 8 : TCP and Congestion control
Part 8 : TCP and Congestion control
 

Dernier

Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Romil Mishra
 
Katarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School CourseKatarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School Coursebim.edu.pl
 
Turn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxTurn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxStephen Sitton
 
ADM100 Running Book for sap basis domain study
ADM100 Running Book for sap basis domain studyADM100 Running Book for sap basis domain study
ADM100 Running Book for sap basis domain studydhruvamdhruvil123
 
22CYT12 & Chemistry for Computer Systems_Unit-II-Corrosion & its Control Meth...
22CYT12 & Chemistry for Computer Systems_Unit-II-Corrosion & its Control Meth...22CYT12 & Chemistry for Computer Systems_Unit-II-Corrosion & its Control Meth...
22CYT12 & Chemistry for Computer Systems_Unit-II-Corrosion & its Control Meth...KrishnaveniKrishnara1
 
multiple access in wireless communication
multiple access in wireless communicationmultiple access in wireless communication
multiple access in wireless communicationpanditadesh123
 
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...IJAEMSJORNAL
 
Triangulation survey (Basic Mine Surveying)_MI10412MI.pptx
Triangulation survey (Basic Mine Surveying)_MI10412MI.pptxTriangulation survey (Basic Mine Surveying)_MI10412MI.pptx
Triangulation survey (Basic Mine Surveying)_MI10412MI.pptxRomil Mishra
 
Indian Tradition, Culture & Societies.pdf
Indian Tradition, Culture & Societies.pdfIndian Tradition, Culture & Societies.pdf
Indian Tradition, Culture & Societies.pdfalokitpathak01
 
AntColonyOptimizationManetNetworkAODV.pptx
AntColonyOptimizationManetNetworkAODV.pptxAntColonyOptimizationManetNetworkAODV.pptx
AntColonyOptimizationManetNetworkAODV.pptxLina Kadam
 
Javier_Fernandez_CARS_workshop_presentation.pptx
Javier_Fernandez_CARS_workshop_presentation.pptxJavier_Fernandez_CARS_workshop_presentation.pptx
Javier_Fernandez_CARS_workshop_presentation.pptxJavier Fernández Muñoz
 
Cost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based questionCost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based questionSneha Padhiar
 
TEST CASE GENERATION GENERATION BLOCK BOX APPROACH
TEST CASE GENERATION GENERATION BLOCK BOX APPROACHTEST CASE GENERATION GENERATION BLOCK BOX APPROACH
TEST CASE GENERATION GENERATION BLOCK BOX APPROACHSneha Padhiar
 
Structural Integrity Assessment Standards in Nigeria by Engr Nimot Muili
Structural Integrity Assessment Standards in Nigeria by Engr Nimot MuiliStructural Integrity Assessment Standards in Nigeria by Engr Nimot Muili
Structural Integrity Assessment Standards in Nigeria by Engr Nimot MuiliNimot Muili
 
March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...
March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...
March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...gerogepatton
 
"Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ..."Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ...Erbil Polytechnic University
 
Analysis and Evaluation of Dal Lake Biomass for Conversion to Fuel/Green fert...
Analysis and Evaluation of Dal Lake Biomass for Conversion to Fuel/Green fert...Analysis and Evaluation of Dal Lake Biomass for Conversion to Fuel/Green fert...
Analysis and Evaluation of Dal Lake Biomass for Conversion to Fuel/Green fert...arifengg7
 
tourism-management-srs_compress-software-engineering.pdf
tourism-management-srs_compress-software-engineering.pdftourism-management-srs_compress-software-engineering.pdf
tourism-management-srs_compress-software-engineering.pdfchess188chess188
 
Uk-NO1 kala jadu karne wale ka contact number kala jadu karne wale baba kala ...
Uk-NO1 kala jadu karne wale ka contact number kala jadu karne wale baba kala ...Uk-NO1 kala jadu karne wale ka contact number kala jadu karne wale baba kala ...
Uk-NO1 kala jadu karne wale ka contact number kala jadu karne wale baba kala ...Amil baba
 

Dernier (20)

Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________
 
Katarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School CourseKatarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School Course
 
Turn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxTurn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptx
 
ADM100 Running Book for sap basis domain study
ADM100 Running Book for sap basis domain studyADM100 Running Book for sap basis domain study
ADM100 Running Book for sap basis domain study
 
Designing pile caps according to ACI 318-19.pptx
Designing pile caps according to ACI 318-19.pptxDesigning pile caps according to ACI 318-19.pptx
Designing pile caps according to ACI 318-19.pptx
 
22CYT12 & Chemistry for Computer Systems_Unit-II-Corrosion & its Control Meth...
22CYT12 & Chemistry for Computer Systems_Unit-II-Corrosion & its Control Meth...22CYT12 & Chemistry for Computer Systems_Unit-II-Corrosion & its Control Meth...
22CYT12 & Chemistry for Computer Systems_Unit-II-Corrosion & its Control Meth...
 
multiple access in wireless communication
multiple access in wireless communicationmultiple access in wireless communication
multiple access in wireless communication
 
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
 
Triangulation survey (Basic Mine Surveying)_MI10412MI.pptx
Triangulation survey (Basic Mine Surveying)_MI10412MI.pptxTriangulation survey (Basic Mine Surveying)_MI10412MI.pptx
Triangulation survey (Basic Mine Surveying)_MI10412MI.pptx
 
Indian Tradition, Culture & Societies.pdf
Indian Tradition, Culture & Societies.pdfIndian Tradition, Culture & Societies.pdf
Indian Tradition, Culture & Societies.pdf
 
AntColonyOptimizationManetNetworkAODV.pptx
AntColonyOptimizationManetNetworkAODV.pptxAntColonyOptimizationManetNetworkAODV.pptx
AntColonyOptimizationManetNetworkAODV.pptx
 
Javier_Fernandez_CARS_workshop_presentation.pptx
Javier_Fernandez_CARS_workshop_presentation.pptxJavier_Fernandez_CARS_workshop_presentation.pptx
Javier_Fernandez_CARS_workshop_presentation.pptx
 
Cost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based questionCost estimation approach: FP to COCOMO scenario based question
Cost estimation approach: FP to COCOMO scenario based question
 
TEST CASE GENERATION GENERATION BLOCK BOX APPROACH
TEST CASE GENERATION GENERATION BLOCK BOX APPROACHTEST CASE GENERATION GENERATION BLOCK BOX APPROACH
TEST CASE GENERATION GENERATION BLOCK BOX APPROACH
 
Structural Integrity Assessment Standards in Nigeria by Engr Nimot Muili
Structural Integrity Assessment Standards in Nigeria by Engr Nimot MuiliStructural Integrity Assessment Standards in Nigeria by Engr Nimot Muili
Structural Integrity Assessment Standards in Nigeria by Engr Nimot Muili
 
March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...
March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...
March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...
 
"Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ..."Exploring the Essential Functions and Design Considerations of Spillways in ...
"Exploring the Essential Functions and Design Considerations of Spillways in ...
 
Analysis and Evaluation of Dal Lake Biomass for Conversion to Fuel/Green fert...
Analysis and Evaluation of Dal Lake Biomass for Conversion to Fuel/Green fert...Analysis and Evaluation of Dal Lake Biomass for Conversion to Fuel/Green fert...
Analysis and Evaluation of Dal Lake Biomass for Conversion to Fuel/Green fert...
 
tourism-management-srs_compress-software-engineering.pdf
tourism-management-srs_compress-software-engineering.pdftourism-management-srs_compress-software-engineering.pdf
tourism-management-srs_compress-software-engineering.pdf
 
Uk-NO1 kala jadu karne wale ka contact number kala jadu karne wale baba kala ...
Uk-NO1 kala jadu karne wale ka contact number kala jadu karne wale baba kala ...Uk-NO1 kala jadu karne wale ka contact number kala jadu karne wale baba kala ...
Uk-NO1 kala jadu karne wale ka contact number kala jadu karne wale baba kala ...
 

3 network-transport

  • 1. Week 3 Building a network Supporting applications
  • 2. Agenda • Building a network • Network basics • Distance Vector routing • Link State routing • Supporting applications
  • 3. Addresses • What are the advantages/drawbacks of hierarchical versus flat addresses ?
  • 4. Port-station tables • What are the advantages/drawbacks of this approach ? • How to deal with mobile devices ? • What about multihomed devices ?
  • 5. Label switching • What are the advantages/drawbacks of this approach ? • How to create the virtual circuits automatically ?
  • 6. Source routing • What are the advantages/drawbacks of this approach ?
  • 7. Datagram mode • Early work on this concept that lead to the current Internet was done in France • Cyclades project lead by Louis Pouzin http://goo.gl/lwdlwS
  • 8. Agenda • Building a network • Network basics • Distance Vector routing • Link State routing • Supporting applications
  • 9. Distance vectors l How to deal with link failures ? C A B C D E D E
  • 10. How to react ? All routes that use a failed link are advertised with an infinite cost C Routing table B : 0 [Local] A : ¥ C : 1 [East] E : 1 [South] D : 2 [South] D E Routing table A : 0 [ Local ] D : 1 [South] B : ¥ C : ¥ E : ¥ A B C D E Routing table C : 0 [Local] E : 1 [South-West] D : 2 [South-West] A : 2 [West] B : 1 [West] Routing table E : 0 [Local] D : 1 [West] A : 2 [West] C : 1 [North-East] B : 1 [North] Routing table D : 0 [Local] A : 1 [North] E : 1 [East] C : 2 [East] B : 2 [North] A=0;B=¥;C=¥;D=1;E=¥
  • 11. Reception of DV Received(Vector V[],link l) { /* received vector from link l */ for each destination=d in V[] { if (d isin R[]) { if ( ((V[d].cost+l.cost) < R[d].cost) OR ( R[d].link == l) ) { /* better route or change to current route */ R[d].cost=V[d].cost+l.cost; R[d].link=l; } } else { /* new route */ R[d].cost=V[d].cost+l.cost; R[d].link=l; } } Why ?
  • 12. Example Routing table A : 0 [ Local ] D : 1 [South] B : ¥ C : ¥ E : ¥ Routing table C : 0 [Local] E : 1 [South-West] D : 2 [South-West] Routing table B : 0 [Local] A : ¥ C : 1 [East] E : 1 [South] D : 2 [South] A B C A=0;B=¥;C=¥;D=1;E=¥ D E A : 2 [West] B : 1 [West] Routing table E : 0 [Local] D : 1 [West] A : 2 [West] C : 1 [North-East] B : 1 [North] Routing table D : 0 [Local] A : 1 [North] E : 1 [East] C : 2 [East] B : 2 [North] D must removes all the routes learned from North that are announced with an ∞ cost
  • 13. Example C Routing table B : 0 [Local] A : ¥ C : 1 [East] E : 1 [South] D : 2 [South] D E Routing table A : 0 [ Local ] D : 1 [South] B : ¥ C : ¥ E : ¥ A B C D E Routing table C : 0 [Local] E : 1 [South-West] D : 2 [South-West] A : 2 [West] B : 1 [West] Routing table E : 0 [Local] D : 1 [West] A : 2 [West] C : 1 [North-East] B : 1 [North] Routing table D : 0 [Local] A : 1 [North] E : 1 [East] C : 2 [East] B : ¥ D=0;B= ¥;A=1;C=2;E=11
  • 14. Example C D E Routing table A : 0 [ Local ] D : 1 [South] B : ¥ C : 3 [South] E : 2 [South] A B C D E Routing table C : 0 [Local] E : 1 [South-West] D : 2 [South-West] A : 2 [West] B : 1 [West] Routing table E : 0 [Local] D : 1 [West] A : 2 [West] C : 1 [North-East] B : 1 [North] Routing table D : 0 [Local] A : 1 [North] E : 1 [East] C : 2 [East] B : ¥ Routing table B : 0 [Local] A : ¥ C : 1 [East] E : 1 [South] D : 2 [South] B=0;A=¥;C=1;E=1;D=2 B=0;A=¥;C=1;E=1;D=2
  • 15. Example C D E Routing table A : 0 [ Local ] D : 1 [South] B : ¥ C : 3 [South] E : 2 [South] A B C D E Routing table C : 0 [Local] E : 1 [South-West] D : 2 [South-West] A : ¥¥ B : 1 [West] Routing table E : 0 [Local] D : 1 [West] A : 2 [West] C : 1 [North-East] B : 1 [North] Routing table D : 0 [Local] A : 1 [North] E : 1 [East] C : 2 [East] B : ¥ Routing table B : 0 [Local] A : ¥ C : 1 [East] E : 1 [South] D : 2 [South] E=0;A=2;D=1;C=1;B=1 E=0;A=2;D=1;C=1;B=1 E=0;A=2;D=1;C=1;B=1
  • 16. Example C D E Routing table A : 0 [ Local ] D : 1 [South] B : ¥ C : 3 [South] E : 2 [South] A B C D E Routing table C : 0 [Local] E : 1 [South-West] D : 2 [South-West] A: 3 [South-West] B : 1 [West] Routing table E : 0 [Local] D : 1 [West] A : 2 [West] C : 1 [North-East] B : 1 [North] Routing table D : 0 [Local] A : 1 [North] E : 1 [East] C : 2 [East] B : 2 [East] Routing table B : 0 [Local] A : 3 [South] C : 1 [East] E : 1 [South] D : 2 [South] A=1;B=2;C=2;D=1;E=1 • Everything is ok ?
  • 17. Another failure C D E Routing table A : 0 [ Local ] D : 1 [South] B : 3 [South] C : 3 [South] E : 2 [South] A B C D E Routing table C : 0 [Local] E : 1 [South-West] D : 2 [South-West] A: 3 [South-West] B : 1 [West] Routing table E : 0 [Local] D : 1 [West] A : 2 [West] C : 1 [North-East] B : 1 [North] Routing table D : 0 [Local] A : 1 [North] E : 1 [East] C : 2 [East] B : 2 [East] Routing table B : 0 [Local] A : 3 [South] C : 1 [East] E : 1 [South] D : 2 [South] A=1;B=¥;C=¥;D=1;E=¥
  • 18. Another failure Routing table C : 0 [Local] E : 1 [South-West] D : 2 [South-West] A: 3 [South-West] B : 1 [West] C Routing table B : 0 [Local] A : 3 [South] C : 1 [East] E : 1 [South] D : 2 [South] A B C A=0;D=1;B=3;C=3;E=2 D E Routing table A : 0 [ Local ] D : 1 [South] B : 3 [South] C : 3 [South] E : 2 [South] D E Routing table E : 0 [Local] D : 1 [West] A : 2 [West] C : 1 [North-East] B : 1 [North] Routing table D : 0 [Local] A : 1 [North] E : ¥ C : ¥ B : ¥ But A could also send its distance vector before D
  • 19. Another failure D updates its routing table C D E Routing table A : 0 [ Local ] D : 1 [South] B : 3 [South] C : 3 [South] E : 2 [South] A B C D E Routing table C : 0 [Local] E : 1 [South-West] D : 2 [South-West] A: 3 [South-West] B : 1 [West] Routing table E : 0 [Local] D : 1 [West] A : 2 [West] C : 1 [North-East] B : 1 [North] Routing table D : 0 [Local] A : 1 [North] E : 3 [North] C : 4 [North] B : 4 [North] Routing table B : 0 [Local] A : 3 [South] C : 1 [East] E : 1 [South] D : 2 [South] D=0;A=1;E=3;C=4;B=4
  • 20. Another failure C D E Routing table A : 0 [ Local ] D : 1 [South] B : 5 [South] C : 5 [South] E : 4 [South] A B C D E Routing table C : 0 [Local] E : 1 [South-West] D : 2 [South-West] A: 3 [South-West] B : 1 [West] Routing table E : 0 [Local] D : 1 [West] A : 2 [West] C : 1 [North-East] B : 1 [North] Routing table D : 0 [Local] A : 1 [North] E : 3 [North] C : 4 [North] B : 4 [North] Routing table B : 0 [Local] A : 3 [South] C : 1 [East] E : 1 [South] D : 2 [South] A=0;D=1;B=5;C=5;E=4
  • 21. Another failure C D E Routing table A : 0 [ Local ] D : 1 [South] B : 5 [South] C : 5 [South] E : 4 [South] A B C D E Routing table C : 0 [Local] E : 1 [South-West] D : 2 [South-West] A: 3 [South-West] B : 1 [West] Routing table E : 0 [Local] D : 1 [West] A : 2 [West] C : 1 [North-East] B : 1 [North] Routing table D : 0 [Local] A : 1 [North] E : 5[North] C : 6 [North] B : 6 [North] Routing table B : 0 [Local] A : 3 [South] C : 1 [East] E : 1 [South] D : 2 [South] A=1;D=0;B=6;C=6;E=5 • This problem is called counting to infinity • How can we prevent it ?
  • 22. Another failure Split horizon Split horizon with poisoning
  • 23. Split horizon A B C E Routing table A : 0 [ Local ] D : 1 [South] B : 3 [South] C : 3 [South] E : 2 [South] D E • A will not pollute D’s routing table Routing table C : 0 [Local] E : 1 [South-West] D : 2 [South-West] A: 3 [South-West] B : 1 [West] Routing table E : 0 [Local] D : 1 [West] A : 2 [West] C : 1 [North-East] B : 1 [North] Routing table D : 0 [Local] A : 1 [North] E : 1 [East] C : 2 [East] B : 2 [East] Routing table B : 0 [Local] A : 3 [South] C : 1 [East] E : 1 [South] D : 2 [South] A=0
  • 24. Split horizon (2) D can also send its distance vector C D E Routing table A : 0 [ Local ] D : 1 [South] E : ¥ C : ¥ B : ¥ A B C D E Routing table C : 0 [Local] E : 1 [South-West] D : 2 [South-West] A: 3 [South-West] B : 1 [West] Routing table E : 0 [Local] D : 1 [West] A : 2 [West] C : 1 [North-East] B : 1 [North] Routing table D : 0 [Local] A : 1 [North] E : ¥ C : ¥ B : ¥ Routing table B : 0 [Local] A : 3 [South] C : 1 [East] E : 1 [South] D : 2 [South] D=0;B=¥;C=¥;E=¥ Does split horizon allows to avoid all counting to infinity problems ?
  • 25. Limitations C E Routing table A : 0 [ Local ] B : ¥¥ C : ¥¥ E : ¥¥ A B C E Routing table C : 0 [Local] E : 1 [South-West] A : 2 [West] B : 1 [West] Routing table E : 0 [Local] A : 2 [North] C : 1 [North-East] B : 1 [North] Routing table B : 0 [Local] A : 1 [West] C : 1 [East] E : 1 [South] A=2;B=1; C=0;E=¥ A=¥;B=0; C=1;E=¥ A=¥;B=0; C=1;E=¥
  • 26. Limitations C E E will send its own distance vector B will discover a new route towards A via E and will advertise it to C New count to infinity problem Routing table A : 0 [ Local ] B : ¥¥ C : ¥¥ E : ¥¥ A B C E Routing table C : 0 [Local] E : 1 [South-West] A : 2 [West] B : 1 [West] Routing table after B’s vector E : 0 [Local] A : ¥ C : 1 [North-East] B : 1 [North] Routing table after C’s vector E : 0 [local] A : 3 [North-East] C : 1 [North-East] B : 1 [North] Routing table B : 0 [Local] A : 1 [West] C : 1 [East] E : 1 [South] A=¥;B=0; C=1;E=¥ A=2;B=1; C=0;E=¥
  • 27. Operational issue Operation At each expiration of its 30-sec timer, each router sends its distance vector and restarts its timer Problem After a power failure, all routers might restart at same time and have synchronised timers Each router will need to process bursts of DV messages
  • 28. Agenda • Building a network • Network basics • Distance Vector routing • Link State routing • Supporting applications
  • 29. How to set link costs ? • By manual configuration • Based on link bandwidth • By measurements
  • 30. What is the role of • Sequence number in link state packets • How to deal with wrap around ? • Age field in link state packets • CRC in link state packets
  • 31. Two way connectivity check C Links A-B, B-A : 1 B-E, E-B : 1 B-C, C-B : 1 E-D, D-E : 1 E-C, C-E : 1 A-D, D-A : 1 LSPs E-0 [D:1];[B:1];[C:1] A-0 [D:1];[B:1] B-0 [A:1] [C:1] [E:1] C-0 [B:1] [E:1] D-0 [A:1] [E:1] Links A-B, B-A : 1 B-E, E-B : 1 B-C, C-B : 1 E-D, D-E : 1 E-C, C-E : 1 A-D, D-A : 1 A B C D E D E Links A-B, B-A : 1 B-E, E-B : 1 B-C, C-B : 1 E-D, D-E : 1 E-C, C-E : 1 A-D, D-A : 1 LSPs E-0 [D:1];[B:1];[C:1] A-0 [D:1];[B:1] B-0 [A:1] [C:1] [E:1] C-0 [B:1] [E:1] D-0 [A:1] [E:1] LSPs E-0 [D:1];[B:1];[C:1] A-0 [D:1];[B:1] B-0 [A:1] [C:1] [E:1] C-0 [B:1] [E:1] D-0 [A:1] [E:1] Links A-B, B-A : 1 B-E, E-B : 1 B-C, C-B : 1 E-D, D-E : 1 E-C, C-E : 1 A-D, D-A : 1 Links A-B, B-A : 1 B-E, E-B : 1 B-C, C-B : 1 E-D, D-E : 1 E-C, C-E : 1 A-D, D-A : 1 LSPs E-1 [D:1];[C:1] A-0 [D:1];[B:1] B-0 [A:1] [C:1] [E:1] C-0 [B:1] [E:1] D-0 [A:1] [E:1] LSPs E-0 [D:1];[B:1];[C:1] A-0 [D:1];[B:1] B-0 [A:1] [C:1] [E:1] C-0 [B:1] [E:1] D-0 [A:1] [E:1] LSP : E-1 [D:1];[C:1] LSP : E-1 [D:1];[C:1] • A link is only considered useable only if both directions have been advertised
  • 32. Transient problems when a link fails A B C 100 D A's FIB B : East C : South D : East D's FIB A : North B : North C : North C's FIB A : North B : North D : North B's FIB A : West C : West D : South A and B are not yet aware of failure Packets will be lost
  • 33. A detects the failure A B C 100 D A's FIB B : East C : South D : East D's FIB A : North B : North C : North C's FIB A : North B : North D : North B's FIB A : West C : West D : South B not yet aware of failure A cannot reach B/D Packets continue to be lost
  • 34. A recomputes Dijkstra and sends LSP A B A:1 C=1 C 100 D A's FIB B : South C : South D : South D's FIB A : North B : North C : North C's FIB A : North B : North D : North B's FIB A : West C : West D : South B not yet aware of failure A loops towards B/D Packets continue to be lost
  • 35. B detects the failure A B A:1 C=1 C 100 D A's FIB B : South C : South D : South D's FIB A : North B : North C : North C's FIB A : North B : North D : North B's FIB A : West C : West D : South B cannot reach A/C A loops towards B/D Packets continue to be lost
  • 36. B recomputes Dijkstra and sends its LSP A B B:1 D=1 C 100 D A's FIB B : South C : South D : South D's FIB A : North B : North C : North C's FIB A : North B : North D : North B's FIB A : South C : South D : South B cannot reach A/C A loops towards B/D Packets continue to be lost
  • 37. C recomputes Dijkstra A B C 100 D A's FIB B : South C : South D : South D's FIB A : North B : North C : North C's FIB A : North B : East D : East B's FIB A : South C : South D : South B loops towards A/C A can reach everyone Packets continue to be lost
  • 38. D recomputes Dijkstra A B C 100 D A's FIB B : South C : South D : South D's FIB A : West B : North C : West C's FIB A : North B : East D : East B's FIB A : South C : South D : South B can reach everyone A can reach everyone Network has been updated
  • 39. Router failures • Planned failures • Router reboot to upgrade OS • Sudden failure • due to power outage, software or hardware crash
  • 40. Agenda • Building a network • Supporting applications • Transport services • Reliable transport protocols
  • 41. Connectionless Source Provider Destination DATA.request(S,D,"M") DATA.indication(S,D,"M") Time
  • 42. Connection oriented Source Network provider Destination CONNECT.request CONNECT.indication CONNECT.confirm Source considers connection open CONNECT.response Destination considers connection open
  • 43. Data transfer Message mode Source Provider Destination CONNECT.request CONNECT.indication CONNECT.confirm CONNECT.response DATA.request("A") DATA.ind("A") DATA.request("BCD") DATA.ind("BCD") DATA.request("EF") DATA.ind("EF")
  • 44. Data transfer Stream mode Source Provider Destination CONNECT.request CONNECT.indication CONNECT.confirm CONNECT.response DATA.request("AB") DATA.ind("A") DATA.request("CD") DATA.ind("B") DATA.request("EF") DATA.ind("C") DATA.ind("DEF")
  • 45. Abrupt release Source Provider Destination Connection opened Connection opened DISCONNECT.req(abrupt) DISCONNECT.indication DATA.request("A") DATA.request("B") DATA.indication("A") DATA.request("C")
  • 46. Graceful release Source Provider Destination Connection opened Connection opened DISCONNECT.req(graceful) DATA.request("C") DISCONNECT.ind(graceful) DATA.request("A") DATA.request("B") DATA.indication("A") DATA.indication("B") Source->Destination connection closed DATA.indication("C") DATA.request("D") DATA.indication("D") DISCONNECT.req(graceful) DISCONNECT.ind(graceful) Connection closed Connection closed
  • 47. Transport services useable on Internet • TCP : Connection oriented, bytestream • UDP : Connectionless
  • 48. Agenda • Building a network • Supporting applications • Transport services • Reliable transport protocols
  • 49. Multiplexing • How to multiplex data coming from multiple applications ?
  • 50. Reliable transport • How to establish a connection ?
  • 51. Reliable transport protocols • How to reliably transport data ?
  • 52. Reliable transport • How to terminate a transport connection ?

Notes de l'éditeur

  1. Pseudocode Every N seconds: for each link=l { /* one different vector for each link */ Vector=null; for each destination=d in R[] { if (R[d].link&amp;lt;&amp;gt;l) { Vector=Vector+Pair(d,R[d].cost); } } Send(Vector); }
  2. The Synchronization of Periodic Routing Messages , Floyd, S., and Jacobson, V. IEEE/ACM Transactions on Networking, V.2 N.2, p. 122-136, April 1994.