SlideShare a Scribd company logo
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 ?

More Related Content

Similar to 3 network-transport

2 reliability-network
2 reliability-network2 reliability-network
2 reliability-network
Olivier Bonaventure
 
Part7-routing.pptx
Part7-routing.pptxPart7-routing.pptx
Part7-routing.pptx
Olivier Bonaventure
 
0580 w11 qp_22
0580 w11 qp_220580 w11 qp_22
0580 w11 qp_22
King Ali
 
0580_w11_qp_22
0580_w11_qp_220580_w11_qp_22
0580_w11_qp_22
King Ali
 
Traversing Practical part 1
Traversing Practical part 1Traversing Practical part 1
Traversing Practical part 1
Bahzad5
 
0580 s10 qp_23
0580 s10 qp_230580 s10 qp_23
0580 s10 qp_23
King Ali
 
0580 s10 qp_23
0580 s10 qp_230580 s10 qp_23
0580 s10 qp_23
King Ali
 
0580 s10 qp_23
0580 s10 qp_230580 s10 qp_23
0580 s10 qp_23
King Ali
 
routing algorithm
routing algorithmrouting algorithm
routing algorithm
AnusuaBasu
 
0580_s10_qp_23
0580_s10_qp_230580_s10_qp_23
0580_s10_qp_23
King Ali
 
0580_w08_qp_02
0580_w08_qp_020580_w08_qp_02
0580_w08_qp_02
King Ali
 
0580 s11 qp_22
0580 s11 qp_220580 s11 qp_22
0580 s11 qp_22
King Ali
 
3D Geometry Theory 11
3D Geometry Theory 113D Geometry Theory 11
3D Geometry Theory 11
Lakshmikanta Satapathy
 
0580 s06 qp_2
0580 s06 qp_20580 s06 qp_2
0580 s06 qp_2
King Ali
 
0580 s07 qp_2
0580 s07 qp_20580 s07 qp_2
0580 s07 qp_2
King Ali
 

Similar to 3 network-transport (15)

2 reliability-network
2 reliability-network2 reliability-network
2 reliability-network
 
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
 
routing algorithm
routing algorithmrouting algorithm
routing algorithm
 
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
 

More from Olivier Bonaventure

Part3-reliable.pptx
Part3-reliable.pptxPart3-reliable.pptx
Part3-reliable.pptx
Olivier Bonaventure
 
Part10-router.pptx
Part10-router.pptxPart10-router.pptx
Part10-router.pptx
Olivier Bonaventure
 
Part1-Intro-Apps.pptx
Part1-Intro-Apps.pptxPart1-Intro-Apps.pptx
Part1-Intro-Apps.pptx
Olivier Bonaventure
 
Part9-congestion.pptx
Part9-congestion.pptxPart9-congestion.pptx
Part9-congestion.pptx
Olivier Bonaventure
 
Part2-Apps-Security.pptx
Part2-Apps-Security.pptxPart2-Apps-Security.pptx
Part2-Apps-Security.pptx
Olivier Bonaventure
 
Part11-lan.pptx
Part11-lan.pptxPart11-lan.pptx
Part11-lan.pptx
Olivier Bonaventure
 
Part5-tcp-improvements.pptx
Part5-tcp-improvements.pptxPart5-tcp-improvements.pptx
Part5-tcp-improvements.pptx
Olivier Bonaventure
 
Part8-ibgp.pptx
Part8-ibgp.pptxPart8-ibgp.pptx
Part8-ibgp.pptx
Olivier Bonaventure
 
Part4-reliable-tcp.pptx
Part4-reliable-tcp.pptxPart4-reliable-tcp.pptx
Part4-reliable-tcp.pptx
Olivier Bonaventure
 
Part6-network-routing.pptx
Part6-network-routing.pptxPart6-network-routing.pptx
Part6-network-routing.pptx
Olivier Bonaventure
 
Part1-Intro-Apps.pptx
Part1-Intro-Apps.pptxPart1-Intro-Apps.pptx
Part1-Intro-Apps.pptx
Olivier Bonaventure
 
Part2-Apps-Security.pptx
Part2-Apps-Security.pptxPart2-Apps-Security.pptx
Part2-Apps-Security.pptx
Olivier Bonaventure
 
Part4-reliable-tcp.pptx
Part4-reliable-tcp.pptxPart4-reliable-tcp.pptx
Part4-reliable-tcp.pptx
Olivier Bonaventure
 
Part3-reliable.pptx
Part3-reliable.pptxPart3-reliable.pptx
Part3-reliable.pptx
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 research
Olivier Bonaventure
 
Part 12 : Local Area Networks
Part 12 : Local Area Networks Part 12 : Local Area Networks
Part 12 : Local Area Networks
Olivier Bonaventure
 
Part 11 : Interdomain routing with BGP
Part 11 : Interdomain routing with BGPPart 11 : Interdomain routing with BGP
Part 11 : Interdomain routing with BGP
Olivier 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 BGP
Olivier Bonaventure
 
Part 9 : Congestion control and IPv6
Part 9 : Congestion control and IPv6Part 9 : Congestion control and IPv6
Part 9 : Congestion control and IPv6
Olivier Bonaventure
 
Part 8 : TCP and Congestion control
Part 8 : TCP and Congestion controlPart 8 : TCP and Congestion control
Part 8 : TCP and Congestion control
Olivier Bonaventure
 

More from 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
 

Recently uploaded

Applications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdfApplications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdf
Atif Razi
 
artificial intelligence and data science contents.pptx
artificial intelligence and data science contents.pptxartificial intelligence and data science contents.pptx
artificial intelligence and data science contents.pptx
GauravCar
 
Rainfall intensity duration frequency curve statistical analysis and modeling...
Rainfall intensity duration frequency curve statistical analysis and modeling...Rainfall intensity duration frequency curve statistical analysis and modeling...
Rainfall intensity duration frequency curve statistical analysis and modeling...
bijceesjournal
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
MDSABBIROJJAMANPAYEL
 
Computational Engineering IITH Presentation
Computational Engineering IITH PresentationComputational Engineering IITH Presentation
Computational Engineering IITH Presentation
co23btech11018
 
Design and optimization of ion propulsion drone
Design and optimization of ion propulsion droneDesign and optimization of ion propulsion drone
Design and optimization of ion propulsion drone
bjmsejournal
 
Mechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdfMechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdf
21UME003TUSHARDEB
 
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
171ticu
 
Manufacturing Process of molasses based distillery ppt.pptx
Manufacturing Process of molasses based distillery ppt.pptxManufacturing Process of molasses based distillery ppt.pptx
Manufacturing Process of molasses based distillery ppt.pptx
Madan Karki
 
Engineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdfEngineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdf
abbyasa1014
 
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
ydzowc
 
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.pptUnit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
KrishnaveniKrishnara1
 
CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1
PKavitha10
 
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by AnantLLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
Anant Corporation
 
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Sinan KOZAK
 
ITSM Integration with MuleSoft.pptx
ITSM  Integration with MuleSoft.pptxITSM  Integration with MuleSoft.pptx
ITSM Integration with MuleSoft.pptx
VANDANAMOHANGOUDA
 
Seminar on Distillation study-mafia.pptx
Seminar on Distillation study-mafia.pptxSeminar on Distillation study-mafia.pptx
Seminar on Distillation study-mafia.pptx
Madan Karki
 
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
171ticu
 
22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt
KrishnaveniKrishnara1
 
BRAIN TUMOR DETECTION for seminar ppt.pdf
BRAIN TUMOR DETECTION for seminar ppt.pdfBRAIN TUMOR DETECTION for seminar ppt.pdf
BRAIN TUMOR DETECTION for seminar ppt.pdf
LAXMAREDDY22
 

Recently uploaded (20)

Applications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdfApplications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdf
 
artificial intelligence and data science contents.pptx
artificial intelligence and data science contents.pptxartificial intelligence and data science contents.pptx
artificial intelligence and data science contents.pptx
 
Rainfall intensity duration frequency curve statistical analysis and modeling...
Rainfall intensity duration frequency curve statistical analysis and modeling...Rainfall intensity duration frequency curve statistical analysis and modeling...
Rainfall intensity duration frequency curve statistical analysis and modeling...
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
 
Computational Engineering IITH Presentation
Computational Engineering IITH PresentationComputational Engineering IITH Presentation
Computational Engineering IITH Presentation
 
Design and optimization of ion propulsion drone
Design and optimization of ion propulsion droneDesign and optimization of ion propulsion drone
Design and optimization of ion propulsion drone
 
Mechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdfMechanical Engineering on AAI Summer Training Report-003.pdf
Mechanical Engineering on AAI Summer Training Report-003.pdf
 
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
 
Manufacturing Process of molasses based distillery ppt.pptx
Manufacturing Process of molasses based distillery ppt.pptxManufacturing Process of molasses based distillery ppt.pptx
Manufacturing Process of molasses based distillery ppt.pptx
 
Engineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdfEngineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdf
 
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
 
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.pptUnit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
Unit-III-ELECTROCHEMICAL STORAGE DEVICES.ppt
 
CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1
 
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by AnantLLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
 
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
 
ITSM Integration with MuleSoft.pptx
ITSM  Integration with MuleSoft.pptxITSM  Integration with MuleSoft.pptx
ITSM Integration with MuleSoft.pptx
 
Seminar on Distillation study-mafia.pptx
Seminar on Distillation study-mafia.pptxSeminar on Distillation study-mafia.pptx
Seminar on Distillation study-mafia.pptx
 
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
 
22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt
 
BRAIN TUMOR DETECTION for seminar ppt.pdf
BRAIN TUMOR DETECTION for seminar ppt.pdfBRAIN TUMOR DETECTION for seminar ppt.pdf
BRAIN TUMOR DETECTION for seminar ppt.pdf
 

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 ?

Editor's Notes

  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.