Anda di halaman 1dari 43

Network Layer:

Routing

Hendrawan
hend@telecom.ee.itb.ac.id
Routing Paket IP
• Ada dua bagian routing paket IP
– Bagaimana meneruskan paket dari interface input ke interface
output pada suatu router (“IP forwarding”)?
– Bagaimana mencari dan men-setup rute (“Routing algorithm”)

• Paket biasanya diteruskan (forwarding) kesejumlah router


sebelum mencapai host tujuan

• IP forwarding dilaksanakan atas dasar hop-by-hop


yaitu tdk ada yg tahu route yg lengkap. Tujuan forwarding
adalah membawa paket IP lebih dekat ke tujuan
Forwarding Datagram
TO NEXT HOP
A A
B -

TO NEXT HOP C D
A -
D D
B B
E E
C C E
X D E
D C
A B E
E B

X C TO NEXT HOP
A B
E
B B
E
E E C B

X C D D B

E -

X B
TO NEXT HOP TO NEXT HOP TO NEXT HOP
A C A A A B
B C B D B B

C C C - C C

D C D D D -

E C E D E B

X - X X X C
Algoritma Routing IP
• Konsep berikut sangat penting untuk memahami
routing pada jaringan IP:
– Autonomous system
– interdomain vs. intradomain routing
– Distance vector vs. link state routing algorithms
Autonomous Systems
• Suatu autonomous system adalah region dari
Internet yang diatur (administered) oleh satu
entitas

• Contoh dari autonomous region adalah:


– Jaringan kampus ITB
– Jaringan backbone MCI
– Internet Service Provider Regional

• Routing dilaksanakan secara berbeda dalam


autonomous system (intradomain routing) dan
antara autonomous system (interdomain routing)
Autonomous System (AS)
Interdomain dan Intradomain Routing
Intradomain Routing Interdomain Routing
• Routing di dalam suatu AS • Routing antara AS
• Mengabaikan Internet di • Mengasumsikan Internet
luar AS terdiri dari sekumpulan
• Protokol untuk Intradomain interkoneksi AS
routing juga disebut • Normalnya, ada satu
Interior Gateway Protocol dedicated router pd tiap AS
atau IGP yg menangani trafik
• Protokol yang populer interdomain
– RIP (sederhana, lama) • Protokol utk interdomain
– OSPF (lebih baik) routing disebut Exterior
Gateway Protocol atau EGP
• Protokol routing:
– EGP
– BGP (lebih baru)
Komponen dari Algoritma Routing

1. Prosedur utk mengirimkan dan menerima


reachability information mengenai jaringan ke
router lain

2. Prosedur utk mengkalkulasi rute optimal


– Rute-rute dikalkulasi menggunakan shortest path
algorithm:
• Tujuan: Diberikan suatu jaringan dimana tiap link
dialokasikan suatu cost. Cari lintasan dg cost paling rendah
antara dua jaringan dengan cost minimum

3. Prosedur utk mencapai dan mempromosikan


perubahan topologi
Pendekatan Shortest Path
Routing
Ada dua algoritma dasar routing pada Internet

1. Distance Vector Routing


2. Link State Routing
Algoritma-Algoritma Routing pada
Internet
Distance Vector Link State

• Routing Information Protocol • Intermediate System -


(RIP) Intermediate System (IS-IS)

• Gateway-to-Gateway Protocol
(GGP) • Open Shortest Path First
(OSPF)

• Exterior Gateway Protocol (EGP)

• Interior Gateway Routing


Protocol (IGRP)
Distance Vector vs. Link State Routing

• Dg distance vector routing, tiap node hanya mempunyai informasi


hop berikutnya

• Distance vector membuat


keputusan routing yg buruk jika
arah-arah tdk secara lengkap benar
(mis karena node down)

• Jika bagian dari arah tdk benar, routing mungkin tdk benar sampai
algoritma routing re-converged
Distance Vector vs. Link State Routing

• Pd link state routing, tiap node


mempunyai peta yg lengkap dari
topologi

• Jika suatu node gagal (fail), tiap


node dp mengkalkulasi rute baru

• Kesulitan: Semua node perlu


mempunyai pandangan yg
konsisten thd jaringan
Analogi Perbandingan:
Distance Vector vs. Link State

• Distance Vector
– Seseorang akan menuju suatu tempat
dibekali informasi arah yg harus diambil
(lurus, kiri, kanan) pd setiap persimpangan
– Berjalan baik kalau semua jalan tidak ada yg
ditutup. Bermasalah kalau ternyata ada jalan
yg ditutup (biasa di Indonesia!)

• Link State
– Seseorang akan menuju suatu tempat
dibekali dg peta
– Jika ada suatu jalan ditutup bisa mencari
alternatif lain
Routing adalah subjek yg sangat kompleks dan mempunyai
banyak aspek. Disini, kita hanya fokus pd hal-hal dasar saja.
Masalahnya
“A” “B”

RR2
2

RR11 RR44

Bagaimana R1 memilih RR33


hop berikutnya pd
lintasan ke host B?
Metriks Routing
• Metriks
– Delay untuk mengirim paket (ukuran paket rata-
rata)
– Bandwidth
– Link utilization
– Stabilitas: apakah suatu link (atau lintasan) up atau
down?
Contoh Jaringan
Objectif:
Tentukan route dari A ke B Yg meminimumkan biaya lintasan

Contoh biaya link:


A Jarak, laju data, harga,
congestion/delay, …

1 1 4
R1 R2 R4 R6

2 2 3
2
R7 3
R5 2
R3 4 B
R8
Contoh Jaringan
Dlm contoh sederhana ini, solusi jelas dari inspeksi gambar

1 1 4
R1 R2 R4 R6

2 2 3
2
R7 3
R5 2
R3 4 B
R8
Lalu bagaimana dg jaringan ini...!?
The public Internet in 1999

Learn more at
http://www.lumeta.com
Teknik 1: Pendekatan Naif
Flood! -- Router meneruskan paket ke semua port
kecuali ingress port

R1

Keuntungan:
 Sederhana.
 Semua tujuan di jaringan dp dicapai
Kerugian:
 Sejumlah router menerima multiple paket
 Paket dp berputar-putar dlm loop selamanya
 Tdk efisien
Spanning Trees
Objektif:
Cari biaya route terendah dari tiap (R1, …, R7) ke R8

1 1 4
R1 R2 R4 R6

2 2 3
2
R7 3
R5 2
R3 4
R8
Spanning Trees
1 1 4
R1 R2 R4 R6
3
2 2
2
2
R7 3
R5
4
R3 R8

 Solusi adalah suatu spanning tree dg R8 sbg root dari tree


 Tree: Tidak ada loops
 Spanning: Semua node dicakup
 Dua algoritma yg membangun spanning trees secara automatis:
 The distributed Bellman-Ford algorithm  Distance Vector
 Dijkstra’s shortest path first algorithm  Link State
Distance Vector
• Tiap node menjaga dua tabel:
– Distance Table: biaya (cost) ke tiap node via tiap
outgoing link
– Routing Table: Biaya minimum ke tiap node dan hop node
berikutnya

• Node-node mempertukarkan messages yg berisi


informasi biaya suatu route

• Penerimaan messages men-trigger kalkulasi ulang


dari tabel routing
Algoritma Distance Vector: Tabel
Messages
• Node-node mempertukarkan messages ke
tetangganya
• Jika node v mengirimkan messages ke node x dlm
bentuk, [m, Dv(m)], ini berarti

“I can go to node m with minimum cost Dv(m)”


Algoritma Distance Vector
• Inisialisasi:

• Event:
– Biaya suatu link berubah
– Suatu node menerima message
Biaya Link Berubah dg m
Biaya Link Berubah dg m
Operasi pada node v
1. Entries pd kolom ke-m dari distance table diubah dg
perubahan  (jika link putus (down),  = )
2. Utk semua tujuan d:
Hitung minx Dv(m,x):
(a) Jika tdk ada perubahan dari nilai minx Dv(d,x)
sebelumnya
Do nothing
(b) Jika Dv(d, m) = minx Dv (d,x)
Ubah entry pd baris ke-d dari tabel routing ke
(m, Dv(d, m)), dan kirim messages [d, Dv(d, m)] ke
semua tetangga
Node v Menerima Message [d, Dw(d)]
Node v Menerima Message [d, Dw(d)]

Operasi pd node v
1. Jika d = v, abaikan message
2. Jika d  v, maka
Dv(d,w) = Dw(d) + c(w,v)
Hitung minx Dv(d,x):
Jika tdk ada perubahan, do nothing
Jika Dv(d,w) = minx Dv(d,x), maka
Ubah entry pd baris ke-d dari tabel routing ke
(d,Dv(d,w)) dan kirim message [d, Dv(d,w)] ke semua
tetangga
Distance Table: Contoh
1 cost to destination via
B C E
7 D () A B D
A 8 2
1 A 1 14 5
E D
2
B 7 8 5

destination
E D
D (C,D) = c(E,D) + minw {D (C,w)}
= 2+2 = 4 C 6 9 4
E D
D (A,D) = c(E,D) + min {D (A,w)}
w D 4 11 2
= 2+3 = 5 loop!
E B
D (A,B) = c(E,B) + minw{D (A,w)}
= 8+6 = 14
loop!
Distance Table Memberikan Routing
Table
cost to destination via
E Outgoing link
D () A B D to use, cost

A 1 14 5 A A,1

B 7 8 5 B D,5
destination

destination
C 6 9 4 C D,4

D 4 11 2 D D,4

Distance table Routing table


Contoh : Distance Vector Algorithm

Y
2 1
X Z
7
Contoh: Distance Vector Algorithm

Y
2 1
X Z X Z
7 D (Y,Z) = c(X,Z) + minw{D (Y,w)}
= 7+1 = 8

X Y
D (Z,Y) = c(X,Y) + minw {D (Z,w)}
= 2+1 = 3
Distance Vector: link cost changes
Perubaan link cost:
• node mendeteksi perubahan local 1
Y
link cost 4 1
• updates distance table X Z
50
• Jika cost menubah cost path
terendah, beritahu tetangga
algorithm
terminates
“good
news
travels
fast”
Distance Vector: link cost changes
Perubahan link cost:
60
• good news travels fast Y
4 1
• bad news travels slow -
X Z
“count to infinity” problem! 50

algorithm
continues
on!
Masalah dg Bellman-Ford
“Bad news travels slowly”
1 1 1
R1 R2 R3 R4

Perhatikan kalkulasi distances ke R4:


Time R1 R2 R3
0 3,R2 2,R3 1, R4 R3 R4 gagal
1 3,R2 2,R3 3,R2
2 3,R2 4,R3 3,R2
3 5,R2 4,R3 5,R2
… “Counting
… to
…infinity” …
Counting to Infinity Problem
Solusi

1. Set infinity = “suatu integer kecil tertentu” (mis.


16). Stop jika count = 16.
2. Split Horizon: Karena R2 menerima cost path
terendah dari R3, maka tdk meneruskan ke R3
3. Split-horizon with poison reverse: R2
menginformasikan (advertises) infinity ke R3
4. Banyak masalah dg (dan juga cara mengatasinya
utk) algoritma Bellman-Ford
Distance Vector: poisoned reverse

60
Y
4 1
X Z
50

algorithm
terminates
Link State Routing
• Tiap node harus
– menemukan tetangga-tetangganya
– mengukur delay (=cost) ke tetangga-tetangganya
– membroadcast paket dg informasi ini ke semua node lain
– menghitung lintasan terpendek ke setiap router yg lain

• Broadcast dp dilaksanakan dg flooding

• Lintasan terpendek dp dihitung dg algoritma Dijkstra

• Tiap node memerlukan informasi topologi yg lengkap

• Link state information harus di sebarkan ke semua node

• Jaminan konvergen
Link-State Routing Algorithm
Dijkstra’s algorithm Notasi:
• topologi jar, link costs • c(i,j): link cost dari node i
diketahui ke semua node ke j. cost tak hingga jika
– dilaksanakan via “link state bukan tetangga langsung
broadcast”
• D(v): harga cost lintasan
– semua node memp. info sama
saat ini dari sumber ke
• hitung lintasan least cost dari tujuan. V
satu node (‘source”) ke semua
node lain • p(v): node sebelumnya
sepanjang lintasan, yaitu
– memberikan tabel routing table
utk node tsb. selanjutnya v
• iterative: setelah k iterasi, • N: set dari node least cost
tahu least cost path ke k tujuan path diketahui secara pasti
Dijsktra’s Algorithm
1 Initialization:
2 N = {A}
3 for all nodes v
4 if v adjacent to A
5 then D(v) = c(A,v)
6 else D(v) = infty
7
8 Loop
9 find w not in N such that D(w) is a minimum
10 add w to N
11 update D(v) for all v adjacent to w and not in N:
12 D(v) = min( D(v), D(w) + c(w,v) )
13 /* new cost to v is either old cost to v or known
14 shortest path cost to w plus cost from w to v */
15 until all nodes in N
Contoh: Dijkstra’s algorithm
Step start N D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F)
0 A 2,A 5,A 1,A infinity infinity
1 AD 2,A 4,D 2,D infinity
2 ADE 2,A 3,E 4,E
3 ADEB 3,E 4,E
4 ADEBC 4,E
5 ADEBCF

5
3
B C 5
2
A 2 1 F
3
1 2
D E
1

Anda mungkin juga menyukai