Network Layer: Routing
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 A E X C D B A B - C D TO NEXT HOP E X A - B C TO
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 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 Routing di dalam suatu AS Mengabaikan Internet di luar AS Protokol untuk Intradomain routing juga disebut Interior Gateway Protocol atau IGP Protokol yang populer RIP (sederhana, lama) OSPF (lebih baik) Interdomain Routing Routing antara AS Mengasumsikan Internet terdiri dari sekumpulan interkoneksi AS Normalnya, ada satu dedicated router pd tiap AS yg menangani trafik interdomain Protokol utk interdomain 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 Distance Vector Routing Link State Routing
Algoritma-Algoritma Routing pada Internet Distance Vector Routing Information Protocol (RIP) Gateway-to-Gateway Protocol (GGP) Exterior Gateway Protocol (EGP) Interior Gateway Routing Protocol (IGRP) Link State Intermediate System - Intermediate System (IS-IS) Open Shortest Path First (OSPF)
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 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” R2 R1 R4 R3 Bagaimana R1 memilih 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?
Jarak, laju data, harga, congestion/delay, … Contoh Jaringan Objectif: Tentukan route dari A ke B Yg meminimumkan biaya lintasan R7 R6 R4 R2 R1 1 4 2 3 R8 Contoh biaya link: Jarak, laju data, harga, congestion/delay, … A B R5 R3
Dlm contoh sederhana ini, solusi jelas dari inspeksi gambar Contoh Jaringan Dlm contoh sederhana ini, solusi jelas dari inspeksi gambar A R1 1 1 4 R2 R4 R6 2 3 2 2 R7 3 R5 2 R3 4 R8 B
Lalu bagaimana dg jaringan ini...!? 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 R5 R3 R7 R6 R4 R2 R1 1 4 2 3 R8
Spanning Trees R1 R2 R4 R6 R7 R5 R3 R8 Spanning: Semua node dicakup 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 7 8 1 2 D () A B C D 1 7 6 4 14 8 9 11 5 2 E cost to destination via destination D (C,D) E c(E,D) + min {D (C,w)} D w = 2+2 = 4 D (A,D) E c(E,D) + min {D (A,w)} D w = 2+3 = 5 loop! D (A,B) E c(E,B) + min {D (A,w)} B w = 8+6 = 14 loop!
Distance Table Memberikan Routing Table 1 7 6 4 14 8 9 11 5 2 E cost to destination via destination Outgoing link to use, cost A B C D A,1 D,5 D,4 destination Distance table Routing table
Contoh : Distance Vector Algorithm X Z 1 2 7 Y
Contoh: Distance Vector Algorithm X Z 1 2 7 Y D (Y,Z) c(X,Z) + min {D (Y,w)} w = 7+1 = 8 D (Z,Y) c(X,Y) + min {D (Z,w)} 2+1 = 3
Distance Vector: link cost changes Perubaan link cost: node mendeteksi perubahan local link cost updates distance table Jika cost menubah cost path terendah, beritahu tetangga X Z 1 4 50 Y algorithm terminates “good news travels fast”
Distance Vector: link cost changes Perubahan link cost: good news travels fast bad news travels slow - “count to infinity” problem! X Z 1 4 50 Y 60 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 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 Set infinity = “suatu integer kecil tertentu” (mis. 16). Stop jika count = 16. Split Horizon: Karena R2 menerima cost path terendah dari R3, maka tdk meneruskan ke R3 Split-horizon with poison reverse: R2 menginformasikan (advertises) infinity ke R3 Banyak masalah dg (dan juga cara mengatasinya utk) algoritma Bellman-Ford
Distance Vector: poisoned reverse X Z 1 4 50 Y 60 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 Notasi: c(i,j): link cost dari node i ke j. cost tak hingga jika bukan tetangga langsung D(v): harga cost lintasan saat ini dari sumber ke tujuan. V p(v): node sebelumnya sepanjang lintasan, yaitu selanjutnya v N: set dari node least cost path diketahui secara pasti Dijkstra’s algorithm topologi jar, link costs diketahui ke semua node dilaksanakan via “link state broadcast” semua node memp. info sama hitung lintasan least cost dari satu node (‘source”) ke semua node lain memberikan tabel routing table utk node tsb. iterative: setelah k iterasi, tahu least cost path ke k tujuan
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 1 2 3 4 5 start N A AD ADE ADEB ADEBC ADEBCF D(B),p(B) 2,A D(C),p(C) 5,A 4,D 3,E D(D),p(D) 1,A D(E),p(E) infinity 2,D D(F),p(F) infinity 4,E A E D C B F 2 1 3 5