You are on page 1of 30

BAB IV

ROUTING
4.1 ROUTING Setelah kita mempelajari addressing pada TCP/IP, subnetting dan netmasking, kita akan sedikit membahas tentang pola pencarian jalan (routing). Data-data dari device yang terhubung ke Internet dikirim dalam bentuk datagram, yaitu paket data yang didefinisikan oleh IP. Datagram memiliki alamat tujuan paket data; Internet Protocol memeriksa alamat ini untuk menyampaikan datagram dari device asal ke device tujuan. Jika alamat tujuan datagram tersebut terletak satu jaringan dengan device asal, datagram langsung disampaikan kepada device tujuan tersebut. Jika ternyata alamat tujuan datagram tidak terdapat di jaringan yang sama, datagram disampaikan kepada router yang paling tepat untuk diteruskan ke jaringan selanjutnya. IP Router (biasa disebut router saja) adalah device yang melakukan fungsi meneruskan datagram IP pada lapisan jaringan. Router memiliki lebih dari satu antamuka jaringan (network interface) yang masing-masing network interface akan terhubung ke suatu jaringan dengan alamat network (Network ID) yang sama. Dengan dua network interface ini, router dapat meneruskan datagram dari satu antarmuka ke antarmuka yang lain. Untuk setiap datagram yang diterima, router memeriksa apakah datagram tersebut memang ditujukan ke dirinya (dilihat dari alamat tujuan dataram). Jika ternyata ditujukan kepada router tersebut, datagram disampaikan ke lapisan transport. Jika datagram tidak ditujukan kepada router tersebut, yang akan diperiksa adalah forwarding table yang dimilikinya untuk memutuskan ke mana seharusnya datagram tersebut ditujukan. Forwarding table adalah tabel yang terdiri dari pasangan alamat IP (alamat host atau alamat jaringan), alamat router berikut, dan antarmuka tempat keluar datagram. Jika tidak menemukan sebuah baris pun dalam forwarding table yang sesuai dengan alamat tujuan, router akan memberikan pesan kepada pengirim bahwa alamat yang dimaksud tidak dapat dicapai. Kejadian ini dapat dianalogikan dengan pesan "kembali ke pengirim" pada pos biasa. Sebuah router juga dapat memberitahu bahwa dirinya bukan router terbaik ke suatu tujuan, dan menyarankan penggunaan router lain. Dengan ketiga fungsi yang terdapat pada router ini, host-host di Internet dapat saling terhubung.

Contoh kasus: Host A : 138.1.12.1 (IP Kelas B network id 128.1.x.x) Host B : 138.1.12.7 (IP kelas B network id 128.1.x.x) Host C : 138.2.20.1 (IP kelas B network id 128.2.x.x) Host A dan host B dapat berkomunikasi langsung tetapi baik host A maupun B tidak dapat berkomunikasi dengan host C, karena mereka memiliki network Id yang berbeda. Maka harus digunakan router untuk menghubungkan host C untuk dapat berkomunikasi dengan A dan B. Jadi fungsi router, secara mudah dapat dikatakan, menghubungkan dua buah jaringan yang berbeda, tepatnya mengarahkan rute yang terbaik untuk mencapai network yang diharapkan. Dalam implementasinya, router sering dipakai untuk menghubungkan jaringan antar lembaga atau perusahaan yang masingmasing telah memiliki jaringan dengan network id yang berbeda. Saat ini populer adalah ketika perusahaan anda akan terhubung ke internet. Pada bahasan terdahulu, diasumsikan bahwa host (dalam kasus source routing) atau switch memiliki cukup pengetahun tentang topologi jaringan sehingga mereka dapat memilih output port yang tepat untuk tiap paket. Pada kasus virtual circuit, routing dilakukan hanya untuk paket yang memuat connection request, sementara semua paket berikutnya mengikuti jalur yang telah terbangun. Sebaliknya pada kasus datagram, routing dilakukan untuk tiap paket. Hal yang sama pada kedua kasus tersebut adalah switch harus dapat mengetahui alamat tujuan dari paket dan kemudian menentukan output port yang merupakan pilihan terbaik untuk mengantarkan paket tersebut ke tujuan. Telah dijelaskan bahwa switch melakukan pengambilan keputusan dengan melihat entri-entri pada forwarding table (routing table). Yang menjadi masalah mendasar dalam routing adalah : bagaimana switch bisa mendapatkan informasi untuk membangun forwarding table-nya? Perlu kiranya diperjelas kembali perbedaan antara forwarding dengan routing. Forwarding terdiri dari proses penerimaan paket, melihat alamat tujuan paket, melihat entri pada forwarding table, dan mengirimkan paket tersebut melalui port sesuai dengan yang ditunjukkan entri pada tabel. Sementara routing adalah proses untuk membangun forwarding table. Fungsi utama dari routing adalah menerima paket dari stasiun pengirim untuk diteruskan ke stasiun penerima. Untuk keperluan ini, suatu jalur atau rute dalam jaringan tersebut harus dipilih, sehingga akan muncul lebih dari satu kemungkinan rute untuk mengalirkan data. Untuk itu fungsi dari routing harus diwujudkan. Fungsi routing sendiri harus mengacu kepada nilai nilai antara lain :

43

tanpa kesalahan, sederhana, kokoh, stabil, adil dan optimal disamping juga harus mengingat perhitungan faktor efisiensi. Untuk melakukan routing, ada beberapa unsur yang harus diperhatikan, antara lain Kriteria Kinerja : Jumlah hop Cost Delay Througput Decision Time Paket (datagram) Session (virtual Circuit) Decision Place Each Node (terdistribusi) Central Node (terpusat ) Originating Node Network Information source None Local Adjacent nodes Nodes along route All Nodes Metoda Routing Fixed Flooding Random Adaptive Adaptive Routing Update Time Continuous 44

Periodic Major load change Topology change Untuk pencarian jalur kita bisa menggunakan suatu algoritma perutingan, misalnya Algoritma Djikstra Jaringan Sebagai Suatu Graph Routing sebenarnya merupakan masalah yang berakar pada teori graph. Gambar 4.1 mengilustrasikan graph yang merepresentasikan suatu jaringan. Node-node pada graph (A sampai F) dapat mewakili host ataupun switch, namun dalam bahasan ini graph dibatasi hanya merepresentasikan switch dan hubungannya dalam jaringan. Hal ini dapat dilakukan, mengingat host biasanya akan terhubung ke salah satu switch, sehingga dalam hal proses routing akan cukup diwakili oleh switch. Graph yang ditunjukkan menggunakan garis tak berarah dan tiap garis hanya memiliki satu bobot. Hal ini dilakukan menyederhanakan masalah. Sebetulnya akan lebih akurat jika digunakan garis berarah dengan bobot masingmasing. Garis yang menghubungkan dua node pada graph mewakili link pada jaringan. Tiap garis memiliki bobot (harga), yang akan berhubungan dengan pemilihan jalur.

Gambar 4.1 Contoh representasi jaringan dalam bentuk graph

Masalah utama dalam routing adalah untuk mendapatkan jalur antara dua node dengan harga jalur minimal, dimana harga jalur merupakan hasil penjumlahan semua harga link yang membentuk jalur tersebut. Untuk jaringan sederhana seperti yang tampak pada Gambar 1.11, cara paling sederhana yang

45

dapat dilakukan adalah cukup dengan menghitung semua jalur terpendek kemudian menyimpannya dalam memori permanen di setiap node. Pendekatan statik seperti ini segera saja akan mendapatkan tantangan berat, diantaranya : Bagaimana jika terjadi kerusakan pada node atau link? Bagaimana jika ada penambahan node atau link baru ke jaringan? Bagaimana jika terjadi perubahan bobot (meski sementara) pada link (misalnya harga suatu link dinaikkan karena beban link terlalu besar)? 4.2 ROUTING STATIK DAN DINAMIK Pada routing statik, entri-entri dalam forwarding table router diisi dan dihapus secara manual, sedangkan pada Routing statik adalah pengaturan routing paling sederhana yang dapat dilakukan pada jaringan komputer. Menggunakan routing statik murni dalam sebuah jaringan berarti mengisi setiap entri dalam forwarding table di setiap router yang berada di jaringan tersebut. Pada routing statik, entri-entri dalam forwarding table router diisi dan dihapus melalui protokol routing. Routing dinamik adalah cara yang digunakan untuk melepaskan kewajiban mengisi entri-entri forwarding table secara manual. Protokol routing mengatur router-router sehingga dapat berkomunikasi satu dengan yang lain dan saling memberikan informasi routing yang dapat mengubah isi forwarding table, tergantung keadaan jaringannya. Dengan cara ini, routerrouter mengetahui keadaan jaringan yang terakhir dan mampu meneruskan datagram ke arah yang benar. Karena hal-hal tersebut, dalam prakteknya di jaringan (pada tiap switch) akan berjalan protokol routing. Protokol tersebut menyediakan mekanisme dinamis yang terdistribusi untuk menyelesaikan masalah penentuan jalur dengan harga minimal, terutama pada kasus perubahan tolopogi jaringan (ada kerusakan pada node atau link, penambahan dan pengurangan node atau link dan perubahan bobot link). Berkenaan dengan sifat terdistribusi, perlu diperhatikan bahwa sentralisasi adalah musuh bebuyutan dari skalabilitas, sehingga semua protokol routing yang baik dirancang memiliki sifat terdistribusi. Berikutnya akan dipaparkan tentang dua kelas utama dari protokol routing, yakni : distance vector dan link state; dengan asumsi bobot semua link diketahui. Yang akan dipaparkan terbatas hanya pada prinsip-prinsip utamanya, sementara contoh nyata dari protokol routing (dengan mengambil beberapa protokol yang digunakan di Internet) akan diberikan pada bab berikutnya. 4.2.1 Distance Vector Ide yang melatarbelakangi algoritma distance vector sebenarnya terbayang dari kata distance dan vector. Distance merupakan ukuran (metric) yang selalu berusaha diminimalkan, sementara vector menunjukkan arah forwarding paket.

46

Asumsi awal dari routing ini adalah setiap node mengetahui bobot dari semua link yang terhubung langsung kepadanya. Link yang rusak (atau sengaja tidak digunakan) diberi bobot dengan nilai tak hingga (sangat besar). Untuk mengerti cara kerja algoritma distance vector, cara termudah adalah dengan menerapkannya pada contoh kasus (contoh jaringan pada Gambar 1.12). Pada contoh ini, tiap link memiliki harga 1 (sengaja tidak dituliskan pada tiap link), sehingga jalur dengan harga minimal adalah jalur dengan jumlah link ( hop) paling sedikit. Pengetahuan awal tiap node tentang jarak antara dirinya dengan nodenode yang lain direpresentasikan dalam bentuk tabel (Tabel 1.5). Tiap node hanya menyimpan informasi setara dengan satu baris pada tabel. Dari sini terlihat bahwa tiap node hanya mengetahui bobot link yang terhubung langsung dengan dirinya.

Gambar 4.2 Contoh jaringan

Tabel 4.1 Pengetahuan awal tentang jarak antar node Informasi di node A B C D E F G Jarak yang ditempuh untuk mencapai node A 0 1 1 B 1 0 1 1 1 C 1 0 D 1 0 1 E 1 0 1 F 1 1 0 1 G 1 1 0 47

Tiap baris pada tabel diatas berisi jarak semua node lain dari suatu node tertentu. Tiap node yang terhubung langsung dengan suatu node akan dianggap memiliki jarak 1 sementara yang tidak terhubung langsung akan dianggap memiliki jarak tak hingga (tidak dapat dicapai). Dengan demikian, node A pada awalnya beranggapan bahwa ia hanya dapat berhubungan dengan B dan E. Langkah berikutnya dari distance vector, tiap node akan mengirimkan message kepada node tetangganya (yang terhubung langsung) yang berisi pengetahuan akan jarak yang dimilikinya. Sebagai contoh, node B akan mengirimkan seluruh pengetahuannya tentang jarak (seperti pada baris kedua Tabel 4.1) kepada node A, C, D dan F. Jika node yang menerima informasi tersebut mendapati bahwa ternyata B menawarkan jalur (ke suatu node tujuan) yang lebih pendek daripada jalur yang diketahuinya, maka ia akan memperbaharuinya dengan catatan bahwa paket yang ditujukan ke node tujuan tersebut akan dikirimkan melalui B. Sebagai contoh : D tahu bahwa C dapat dicapai dari B dengan jarak 1, sementara D sendiri tahu bahwa B dapat dicapai dengan jarak 2, maka D akan memperbaharui jaraknya terhadap C menjadi 2 melalui B. Pada gilirannya, D akan mengirimkan pengetahuan C dapat dicapai melalui B dengan jarak 2 tersebut ke F. F sendiri tahu bahwa C akan dapat dicapainya melalui B dengan jarak 2. Jika F ingin berhubungan dengan C lewat D, maka total jaraknya adalah 3. Dengan demikian F tidak akan memperbaharui pengetahuannya. Demikian seterusnya, sehingga setelah sejumlah pertukaran pengetahuan antar node yang terhubung langsung (dengan asumsi tidak ada perubahan topologi jaringan), maka seluruh node akan memiliki persepsi yang sama tentang jaringan dan semua mengetahui jalur terpendek untuk mencapai node-node yang lain. Pengetahuan akhir yang tersimpan pada tiap node terlihat pada Tabel 4.2. Tabel 4.2 Pengetahuan akhir tentang jarak antar node Informasi di node Jarak yang ditempuh untuk mencapai node A A B C D E 0 1 2 2 1 B 1 0 1 1 2 C 2 1 0 2 3 D 2 1 2 0 3 E 1 2 3 3 0 F 2 1 2 1 2 G 2 2 3 2 1

48

F G

2 2

1 2

2 3

1 2

2 1

0 1

1 0

Pada saat melakukan pembaharuan pengetahuan tentang jarak, tiap node juga harus mengingat node mana yang mengirimkan pengetahuan yang digunakan untuk pembaharuan itu, sehingga masing-masing node bisa membangun forwarding table-nya. Sebagai contoh, D mengingat bahwa B-lah yang memberitahunya C dapat aku capai dengan satu lompatan ( hop), sehingga D akan memasukkan ke forwarding table-nya informasi untuk mencapai C, gunakan link ke B. Hal inilah yang dimaksud dengan vector, yakni arah yang harus ditempuh untuk menngirimkan paket ke node tujuan. Pada prakteknya, forwarding table pada tiap node akan terdiri dari sekumpulan record dengan format : (Tujuan, Biaya, Node_berikut) Tabel 1.7. menunjukkan routing table yang dimiliki node D pada contoh jaringan di atas. Tiap node yang terhubung langsung kemudian akan saling mempertukarkan updates, dengan format : (Tujuan, Biaya) Saat suatu node menerima update dari node tetangganya yang memuat jalur yang lebih baik dari jalur yang telah diketahui sebelumnya, maka forwarding table akan diperbaharui. Terlihat pada Tabel 1.7 bahwa jalur terbaik dari node D ke E adalah melalui node F, meskipun sebenarnya bisa juga melalui node B dengan biaya yang sama (3). Jalur yang dipilih tergantung dari node tetangga mana yang memberikan update-nya terlebih dulu. Tabel 4.3 Tabel routing pada node D Tujua n A B C E F G Biaya Node_berikut 2 1 2 3 1 2 B B B F F F

Ada dua kondisi yang menyebabkan suatu node memutuskan untuk mengirim update ke tetangganya. Pertama, tiap node akan secara otomatis mengirimkan update tiap selang waktu tertentu, meski tidak ada entri yang 49

berubah. Hal ini dilakukan untuk meyakinkan node lain bahwa dirinya masih hidup. Selain itu, akan ada jaminan bahwa tiap node selalu mendapatkan informasi terbaru yang diperlukan jika ada jalur yang tidak lagi dapat digunakan. Periode update bervariasi, tergantung dari implementasi protokolnya masingmasing, namun biasanya berkisar dari beberapa detik hingga beberapa menit. Mekanisme kedua seringkali disebut dengan triggered update, yang terjadi setiap kali suatu node menerima update dari tetangganya yang menyebabkan perubahan pada jalur dalam forwarding table-nya. Dengan demikain, tiap kali suatu node mengalami perubahan isi tabel, maka ia akan mengirimkan update ke tetangganya, yang kemudian akan menyebabkan perubahan pada tabel dan terjadi pengiriman update, demikian seterusnya. Misalkan suatu node atau link mengalami kerusakan, node yang pertama kali mendeteksi hal tersebut akan segera mengirimkan update ke tetangganya. Dalam kasus seperti itu, biasanya sistem akan kembali stabil (pada kondisi baru) dalam waktu yang tidak begitu lama. Bagaimana suatu node mendeteksi adanya kerusakan? Ada beberapa pendekatan yang memungkinkan dilakukannya deteksi. Pertama, node secara kontinyu menguji link ke node lain dengan mengirimkan paket kontrol dan menunggu ACK dari node di seberang link. Pada pendekatan kedua, node menyimpulkan telah terjadi kerusakan pada link (atau node di seberang link) jika ia tidak menerima periodic routing update selama waktu yang setara dengan beberapa siklus update. Sebagai contoh : Node A mendeteksi adanya kerusakan pada link yang menghubungkannya dengan E. Pertama, A akan mengubah jaraknya ke E menjadi tak hingga dan mengirimkan informasi tersebut ke B. Saat B tahu bahwa jalurnya ke E melalui A (berjarak 2) tidak lagi bisa dipergunakan, ia juga akan mengubah jaraknya ke E menjadi tak hingga. Namun demikian, saat update dari F tiba, B tahu bahwa F dapat mencapai E dengan 2 hop, sehingga ia menyimpulkan bahwa E dapat dicapai melalui F dengan jarak 3 dan tabel B kembali diperbaharui. Saat B mengirimkan update ke A, A menyimpulkan bahwa E dapat dicapai melalui B dengan jarak 4, dan sistem akan kembali stabil dengan kondisi yang baru. Sayangnya, kejadian yang sedikit berbeda bisa menyebabkan jaringan tidak lagi kembali stabil. Contoh : Link dari B ke C rusak, maka B akan mengirimkan update bahwa jaraknya dengan C adalah tak hingga. Saat D dan F mengirimkan update, masing-masing menyatakan bahwa C masih dapat dicapainya dengan jarak 2. Misalkan tepat setelah D menerima update dari B, ia juga menerima update dari F yang menyebutkan bahwa F dapat mencapai C dengan 2 hop (update ini terkirim tepat sebelum update dari B sampai), maka node D menyimpulkan bahwa ia akan dapat mencapai C melalui F dengan jarak 3. Node D kemudian mengirimkan update ini ke node B, yang kemudian akan menyimpulkan bahwa C dapat dicapai melalui D

50

dengan jarak 4. B akan mengirimkan update ke F, yang kemudian menyimpulkan bahwa C masih dapat dicapai melalui B dengan jarak 5. Demikian seterusnya. Siklus ini akan terhenti jika besaran jarak sudah melewati suatu angka yang sedemikian besar sehingga dapat dikatakan sebagai tak hingga. Sementara itu, tidak ada satupun dari node yang menyadari bahwa C tidak dapat diakses, dan jaringan tidak akan pernah kembali stabil. Ada beberapa solusi parsial untuk mengatasi hal ini. Satu teknik digunakan untuk memutuskan routing loop, dikenal dengan istilah split horizon. Idenya adalah saat suatu node mengirimkan update ke tetangganya, ia tidak akan pernah mengirimkan informasi jalur yang didapat dari tetangganya tersebut. Sebagai contoh, jika D memiliki jalur (C,2,B) dalam tabelnya, maka node D tahu bahwa dirinya pasti mendapat informasi jalur tersebut dari B. Dengan demikian, sewaktu D mengirimkan update ke B, informasi (C,2) tidak akan turut dikirimkannya. Ada variasi lain dari split horizon, yang dikenal dengan nama split horizon with poison reverse. Dengan varian ini, D tetap mengirimkan informasi jalur tersebut ke B, namun dengan tambahan informasi negatif untuk menjamin bahwa B tidak akan menggunakan link-nya ke D untuk mencapai C. Kelemahan dari kedua teknik tersebut adalah keduanya hanya dapat diterapkan untuk routing loop yang terdiri dari 2 node. Untuk routing loop yang lebih besar diperlukan pengorbanan yang lebih besar pula. Dari contoh diatas, saat D dan F menerima update dari B maka keduanya akan menandai jalur ke C menjadi tidak dapat diakses dan memulai hitung mundur (hold-down timer). Jika sebelum waktu habis ada update dari B yang menginformasikan bahwa jalur ke C kembali dapat digunakan, maka D dan F akan kembali mengaktifkan jalur ke C dan penghitungan mundur dihentikan. Demikian juga jika yang diterima adalah update dari node tetangga dengan jarak yang lebih kecil dari jarak semula, maka jalur akan kembali diaktifkan dengan arah dan jarak yang baru. Sebaliknya, jika sebelum waktu habis ada update dari node tetangga yang menyatakan bahwa C dapat dicapai melalui node tetangga tersebut dengan jarak yang lebih jauh dari jarak semula, maka update akan diabaikan. Saat waktu habis, maka barulah C betul-betul dianggap tidak dapat dicapai lagi. Pendekatan ini menunda terjadinya konvergensi. Kecepatan dari konvergensi justru merupakan kunci keunggulan kelas protokol routing yang lain : link state. 4.2.2 Link State Asumsi awal pada metode link state routing sama dengan yang digunakan pada distance vector. Tiap node diasumsikan dapat mengetahui status dan bobot setiap link yang terhubung langsung ke tetangga terdekatnya. Tujuan akhir proses routing juga sama : jalur terbaik dari setiap node ke node-node lainnya. Ide dibelakang link state adalah sebagai berikut : tiap node tahu cara untuk mencapai node tetangga terdekatnya, jika keseluruhan pengetahuan ini disebarkan ke semua node, maka setiap node akan memiliki cukup pengetahuan tentang jaringan untuk menentukan jalurnya ke setiap node yang lain. Tiap node akan memiliki cukup pengetahuan untuk membangun peta jaringan secara lengkap. Dengan

51

demikian inti dari metode link state adalah mekanisme penyebaran informasi linkstate secara handal dan penghitungan (penentuan) jalur atas dasar akumulasi pengetahuan tadi. a. Reliable Flooding Reliable flooding adalah proses untuk menjamin bahwa setiap node yang menggunakan protokol routing ini akan mendapatkan salinan informasi link-state dari seluruh node yang lain. Flooding disini mengindikasikan bahwa setiap node akan mengirimkan informasi link-state-nya ke semua node yang lain, dengan cara mengirimkannya ke node tetangganya, yang kemudian akan diteruskan oleh node tetangga tersebut melalui seluruh link yang terhubung kepadanya. Demikian seterusnya hingga akhirnya informasi link state dari suatu node akan diterima oleh semua node yang lain dalam jaringan. Tiap node membentuk paket update yang dikenal dengan nama Link State Packet (LSP), yang terdiri dari : Identitas dari node yang membangun LSP Daftar semua node tetangga yang terhubung langsung dengan node tersebut, lengkap dengan bobot link yang menghubungkannya Nomor urut Time to live (TTL) dari paket LSP tersebut. Dua item yang pertama digunakan pada perhitungan (penentuan) jalur. Dua item berikutnya digunakan untuk menjamin kehandalan pengiriman paket ke semua node yang lain (flooding). Kehandalan yang dimaksud disini meliputi jaminan bahwa tiap node akan menerima LSP terbaru, karena mungkin ada lebih dari satu LSP dari satu node yang berada dalam jaringan pada suatu saat (mungkin satu sama lain memuat informasi yang saling bertentangan). Menjamin kehandalan flooding tidak semudah yang dibayangkan. Bukti sejarang menunjukkan hal itu : versi awal dari routing link-state yang digunakan di ARPANET justru menyebabkan macetnya jaringan pada tahun 1981. Cara kerja flooding adalah sebagai berikut. : Saat suatu node A menerima salinan LSP dari suatu node lain B, pertama kali yang dilakukannya adalah melihat apakah dirinya telah memiliki informasi linkstate dari node tersebut. Jika belum ada, maka LSP tersebut akan disimpan. Jika ternyata sudah pernah ada, maka dilakukan pembandingan nomor urutnya. Jika nomor urut LSP yang baru ternyata lebih besar daripada yang telah diterima lebih dahulu, maka LSP yang baru akan disimpan menggantikan yang lama, namun jika tidak lebih besar maka LSP yang baru diterima akan diabaikan. LSP yang baru kemudian akan diteruskan ke semua tetangga dari A, kecuali node darimana LSP tersebut berasal. Dengan demikian ada jaminan bahwa LSP yang diterima oleh semua node adalah LSP yang terbaru.

52

Tiap node akan membuat LSP secara periodik. Tiap kali LSP dibuat, nomor urutnya akan dinaikkan satu. Namun tidak seperti nomor urut yang digunakan pada kebanyakan protokol, nomor urut LSP tidak bersifat siklik, sehingga ukuran field-nya jug aharus cukup besar (misalnya : 64 bit). Jika node mati, maka saat kembali hidup nomor urut akan kembali dimulai dari 0. Jika node tersebut mati dalam rentang waktu cukup lama, maka semua LSP-nya akan mengalami timeout. Jika ternyata saat node tersebut hidup kembali LSP-nya belum mengalami time out, maka ia akan menerima LSP dari dirinya sendiri dengan nomor urut tertentu, nomor inilah yang dijadikan acuan untuk menentukan nomor urut LSP berikutnya. Dengan periode tertentu, nilai TTL dari LSP yang tersimpan pada tiap node akan dikurangi. Penghapusan LSP yang sudah tua dilakukan berdasarkan nilai TTL ini (saat TTL = 0). Sebelum diteruskan, TTL suatu LSP juga akan dikurangi, dengan demikian seluruh node akan menghapusnya dalam waktu yang bersamaan. b. Penentuan jalur Setelah menerima LSP dari semua node yang lain, suatu node akan mampu membangun peta topologi jaringan secara lengkap. Dengan peta tersebut, node akan mampu menentukan jalur terbaik ke setiap node lainnya. Perhitungan ini berdasarkan pada algoritma yang sangat terkenal dalam teori graph : algoritma shorthest path dari Dijkstra. Mekanisme perhitungannya dapat dibayangkan sebagai berikut : node yang telah mendapatkan LSP dari semua node yang lain akan membangun representasi grafis dari topologi jaringan, dimana N melambangkan kumpulan node dalam graph, l(i,j) mewakili bobot (non-negatif) dari link yang menghubungkan node i dan j N, l(i,j) akan bernilai jika tidak ada link yang menghubungkan node i dan j. Pada deskripsi berikut, s N mewakili node yang tengah mengeksekusi algoritma untuk mencari jalur terpendek ke semua node lain dalam N. Algoritma juga memiliki dua variabel : M yang mewakili kumpulan node yang telah diproses sampai sauatu waktu tertentu dan C(n) yang menyimpan total bobot dari jalur antara s dengan n. Algoritma tersebut dapat didefinisikan sebagai berikut : M = {s} untuk tiap n dalam N - {s} C(n) = l(s,n) selama N M M = M {w}, dimana C(w) merupakan nilai minimum untuk semua w dalam (N - M) Untuk tiap n dalam (N - M) C(n) = MIN (C(n), C(w) + l(w,n))

53

Pada awalnya, M memuat node s (dirinya sendiri) kemudian melakukan inisialisasi tabel bobot ke node lain ( C(n)) menggunakan bobot link yang diketahuinya (link yang terhubung langsung). Selanjutnya dicari node-node yang dapat dicapai dengan biaya terkecil ( w) dan menambahkannya ke M. Akhirnya tabel bobot (C(n)) akan di-update dengan biaya mencapai node-node yang lain melalui w. Pada baris terakhir dari algoritma, jalur baru ke node n yang melalui w akan dipilih jika total biayanya lebih murah dibanding biaya dari jalur yang telah diketahui sebelumnya. Prosedur yang sama akan diberlakukan hingga semua node tercakup dalam M. Pada prakteknya, tiap switch melakukan perhitungan untuk mengisi tabel routing-nya langsung dari LSP yang diterimanya dari node lain. Perhitungan dilakukan dengan menggunakan realisasi algoritma Dijkstra yang dikenal dengan nama algoritma forward search. Setiap switch akan memiliki dua list, yaitu : Tentative dan Confirmed. Tiap list tersebut memuat field dengan format (Tujuan, Biaya, Node_berikut). Algoritma tersebut bekerja sebagai berikut : 1. Inisialisasi Confirmed dengan entri untuk node itu sendiri, dengan biaya 0. 2. Untuk tiap node yang baru saja ditambahkan ke confirmed pada langkah sebelumnya, disebut dengan node Next, pilih LSP-nya. 3. Untuk tiap node tetangga ( Neighbor) dari Next, hitung biaya untuk mencapai Neighbor sebagai total biaya dari node sendiri ke Next dan dari Next ke Neighbor. Jika Neighbor belum ada dalam Tentative maupun Confirmed, maka tambahkan (Neighbor, Biaya, Node_berikut) ke Tentative, dimana Node_berikut adalah node tetangga untuk mencapai Next. Jika Neighbor telah ada dalam Tentative, dan biaya yang baru saja dihitung ternyata lebih kecil dari biaya mencapai Neighbor dengan jalur pada entri yang telah ada sebelumnya, maka entri tersebut diganti dengan ( Neighbor, Biaya, Node_berikut), dimana Node_berikut adalah node tetangga untuk mencapai Next. 4. Jika list Tentative kosong, maka eksekusi algoritma selesai. Sebaliknya, pilih entri dari Tentative dengan biaya terkecil, pindahkan ke Confirmed dan ulangi eksekusi mulai langkah 2. Sebagai contoh, jaringan direpresentasikan dalam bentuk graph seperti terlihat pada Gambar 1.13. Terlihat bahwa jaringan tersebut memiliki bobot yang bervariasi untuk tiap link-nya. Tabel 4.4 menunjukkan langkah-langkah pembentukan tabel routing untuk node C.

54

Algoritma routing link-state memiliki beberapa aspek menarik, antara lain : telah terbukti dapat mencapai kondisi stabil dengan cepat, tidak banyak trafik yang dibangkitkan, cepat memberikan respon terhadap adanya perubahan tolopogi atau kerusakan pada node. Namun demikian, ukuran informasi yang harus disimpan pada tiap node dapat menjadi sangat besar (satu LSP untuk tiap node di jaringan). Hal ini merupakan masalah mendasar dalam skalabilitas routing. Perbedaan antara algoritma distance vector dengan link state dapat disarikan sebagai berikut : pada distance vector, tiap node akan mengirim seluruh informasi yang dimilikinya (seluruh isi tabel routing) hanya pada node tetangganya saja; sementara pada link-state, tiap node hanya akan mengirim informasi yang diyakininya benar-benar (hanya informasi berkaitan dengan link yang terhubung langsung kepadanya) kepada seluruh node dalam jaringan.

Gambar 4.3 Contoh jaringan Tabel 4.4 Langkah-langkah pembangunan table routing pada node C Langka h 1 (C,0,-) 2 Confirme d Tentativ e Keterangan

(C,0,-)

Karena C merupakan satu-satunya anggota baru dari Confirmed, maka dilihat LSP-nya LSP dari C menyatakan bahwa B dapat dicapai melalui B dengan biaya 11, yang lebih baik (kecil) dibanding entri lain dalam list sehingga dimasukkan dalam Tentative. Hal yang sama juga berlaku untuk D Masukkan entri Tentative dengan biaya terkecil (D) ke Confirmed. Kemudian lihat LSP dari anggota Confirmed yang baru tersebut (D)

(B,11,B) (D,2,D)

(C,0,-) (D,2,D)

(B,11,B)

55

(C,0,-) (D,2,D) 4

(B,5,D) (A,12,D)

Biaya untuk mencapai B melalui D adalah 5, sehingga entri (B,11,B) digantikan oleh (B,5,D). LSP dari C juga memberikan informasi bahwa A dapat dicapai dengan biaya 12. Pindahkan anggota Tentative dengan biaya terkecil (B) ke Confirmed, kemudian lihat LSPnya

(C,0,-) 5 (D,2,D) (B,5,D) (C,0,-) 6 (D,2,D) (B,5,D)

(A,12,D)

(A,10,D)

Karena A dapat dicapai dengan biaya 5 dari B maka entri dari Tentative di-update

(C,0,-) 7 (D,2,D) (B,5,D) (A,10,D)

Pindahkan anggota Tentative dengan biaya terkecil (A) ke Confirmed. Karena Tentative telah kosong (jalur terbaik ke seluruh node telah diketahui) maka eksekusi algoritma selesai

1.5.2.3 Metric Sampai saat ini, eksekusi algoritma routing berasumsi harga tiap link (metric) telah diketahui. Pada bagian ini akan dipaparkan beberapa cara untuk menghitung harga link yang telah terbukti efektif secara praktis. Satu contoh metode yang telah digunakan sebelumnya (cukup masuk akal meski sangat sederhana) yakni dengan menganggap semua link memiliki harga 1, sehingga jalur terbaik adalah jalur yang terdiri dari link dengan jumlah paling sedikit. Pendekatan ini memiliki beberapa kelemahan. Pertama, tidak dapat melakukan perbandingan link atas dasar latency. Dengan demikian, link satelit dengan latency 250 ms akan tampak sama saja dengan link tetrestrial yang memiliki latency 1 ms. Kedua, metode ini tidak dapat melakukan perbandingan link atas dasar kapasitas. Link 9,6 Kbps akan terlihat sama saja dengan link 100 Mbps. Ketiga, tidak dapat melakukan perbandingan link atas dasar beban link. Masalah ketiga ini memang 56

cukup sulit diatasi, mengingat karakteristik beban link yang kompleks dan mungkin berubah dari waktu ke waktu harus dapat diwakili oleh suatu besaran skalar (agar dapat dibandingkan). Jaringan ARPANET dapat dikatakan sebagai ladang percobaan bagi sejumlah metode perhitungan harga link ini. Jaringan ini juga tempat pembuktian keunggulan link-state terhadap distance-vector dalam hal stabilitas. Versi awal ARPANET menggunakan distance vector, sementara pada versi berikutnya digunakan link-state. Berikut akan dipaparkan evolusi dari metrik yang digunakan dalam algoritma routing ARPANET. Metrik yang pertama kali digunakan pada versi awal routing ARPANET adalah jumlah paket yang berada dalam antrian, menunggu untuk dikirimkan pada tiap link (link dengan 10 paket yang mengantri padanya akan diberi harga yang lebih besar dibanding link dengan hanya 5 paket yang mengantri). Penggunan panjang antrian untuk menentukan metrik ini tidak berhasil. Meski panjang antrian ini diharapkan dapat mewakili beban link, namun pada kenyataannya justru pemilihan link lebih dipengaruhi oleh antrian terpendek, bukannya tujuan paket. Lebih jauh lagi, metode ini tidak mempertimbangkan bandwidth dan latency yang dimiliki link. Versi kedua dari algoritma routing yang digunakan ARPANET (disebut new routing mechanism) telah melibatkan faktor bandwidth dan latency, dengan menggunakan delay sebagai besaran yang mewakili beban link (bukan lagi panjang antrian). Cara kerja metode ini adalah sebagai berikut : setiap paket yang diterima akan ditandai (timestamp) dengan waktu kedatangannya (ArrivalTime), waktu kepergiannya (DepartTime) juga akan dicatat. Saat ACK (pada level link) diterima dari node di ujung lain, node tersebut akan melakukan perhitungan delay untuk paket tersebut : Delay = (DepartTime - ArrivalTime) + TransmissionTime + Latency dimana TransmissionTime dan Latency ditetapkan secara statis pada tiap link untuk mewakili bandwidth dan latency. DepartTime - ArrivalTime merupakan representasi waktu paket berada dalam antrian menunggu transmisi (dipengaruhi oleh beban link). Jika ACK tidak diterima dan tercapai timeout, maka DepartTime akan disesuaikan dengan waktu retransmisi dari paket. Dalam kasus ini, DepartTime - ArrivalTime dipandang sebagai besaran yang mewakili kehandalan link (semakin sering terjadi retransmisi, semakin rendah tingkat kehandalan link). Akhirnya, bobot untuk tiap link diturunkan dari rata-rata delay yang dialami oleh paket-paket yang dikirimkan melalui link tersebut. Sebagaiana versi awalnya, metode ini juga memiliki beberapa kelemahan. Saat beban link relatif rendah, metode ini bekerja dengan baik karena dua faktor yang ditetapkan secara statis akan mendominasi delay. Namun pada beban link yang cukup tinggi, link yang mengalami kongesti akan memiliki harga yang sangat tinggi. Hal ini mengakibatkan trafik akan meninggalkan link tersebut (dan mencari alternatif link yang lain) sehingga link akan kosong dan dengan segera harganya menurun dengan drastis. Penurunan harga ini akan kembali menarik semua trafik 57

untuk kembali menggunakan link tersebut. Demikian seterusnya, sehingga jaringan tidak akan pernah mencapai kondisi stabil. Bahkan sebagian besar link akan dibiarkan kosong, yang akan menurunkan tingkat utilitas jaringan secara keseluruhan. Masalah lain adalah rentang nilai harga link yang sangat besar. Sebagai contoh, link 9,6 Kbps yang bebannya sangat tinggi bisa saja akan tampak 127 kali lebih mahal dibanding link 56 Kbps dengan beban sangat ringan. Ini berarti algoritma routing akan memilih jalur dengan 126 hop dengan jalur 56 Kbps berbeban ringan dibanding 1 hop dengan link 9,6 Kbps berbeban berat. Meski strategi menjauhkan trafik dari link yang memiliki beban berat merupakan ide bagus, namun menjadikan link tersebut berharga sangat besar (hingga trafik meninggalkannya) adalah satu hal yang terlalu berlebihan. Penggunaan 126 hop pada kasus dimana sebetulnya 1 hop-pun dapat menyelesaikan masalah dapat dianggap sebagai pemborosan sumber daya jaringan. Contoh lain : link satelit 56 Kbps yang kosong dapat dianggap lebih mahal dibanding link terestrial 9,6 Kbps yang juga dalam keadaan kosong, meski link satelit menjanjikan performansi lebih baik untuk aplikasi yang membutuhkan bandwidth besar. Pendekatan ketiga (disebut revised ARPANET routing metric) berusaha mengatasi masalah tersebut. Perubahan mendasar yang dilakukan adalah mempersempit rentang nilai metrik, turut memperhitungkan jenis link dan memperhalus perubahan metrik sejalan waktu. Penghalusan perubahan nilai metrik dilakukan dengan beberapa mekanisme. Pertama, pengukuran delay ditransformasikan menjadi utilisasi link dan angka ini dirata-ratakan dengan utilisasi terakhir yang diketahui untuk menekan perubahan yang tiba-tiba. Kedua, ada batas yang tegas terhadap seberapa besar nilai metrik boleh berubah dari satu siklus perhitungan ke siklus berikutnya. Dengan memperhalus perubahan nilai metrik ini, kecenderungan semua node untuk mengabaikan suatu jalur secara bersamaan akan berkurang dengan drastis. Pemampatan rentang dilakukan dengan melakukan perhitungan atas dasar utilitas yang terukur, jenis dan kecepatan link menggunakan suatu fungsi seperti terlihat pada Gambar 1.14. Patut diperhatikan bahwa : Link dengan beban tinggi tidak akan pernah berharga lebih dari tiga kali harganya saat kosong Link yang paling mahal hanyalah tujuh kali harga link yang paling murah Link satelit berkecepatan tinggi lebih murah dibanding link terestrial berkecepatan rendah Harga link merupakan fungsi dari utilitas link hanya pada beban tinggi yang moderat

58

Faktor-faktor diatas menjadikan suatu link dengan harga tertentu tidak akan pernah terabaikan secara universal. Dengan harga maksimal berupa kelipatan tiga dari harga terkecilnya, maka suatu link yang diabaikan pada pembentukan suatu jalur mungkin akan menjadi pilihan terbaik pada pembentukan jalur yang lain. Ada satu isu yang tersisa berkaitan dengan perhitungan bobot link : seberapa sering suatu node harus melakukan perhitungan bobot linknya? Ada dua hal yang perlu diperhatikan disini. Pertama, tidak ada perhitungan yang tidak membutuhkan waktu proses. Apakah suatu node menghitung panjang antrian, delay atau utilisasi, yang dihitung sebenarnya adalah nilai rata-rata sepanjang suatu rentang waktu tertentu. Kedua, tidak setiap kali terjadi perubahan bobot link akan diikuti pengiriman update, update hanya akan dikirimkan jika perubahan bobot melampaui duatu batas tertentu. 4.3 ROUTING, PENGALAMATAN DAN HIRARKI Sampai saat ini, jika disebutkan alamat, maka yang dimaksud adalah sesuatu yang dapat digunakan untuk mengidentifikasi tiap node dalam jaringan global secara unik. Jenis alamat yang hanya memperhatikan keunikan (tanpa memperhatikan semantiknya) dikenal dengan alamat flat. Contoh dari alamat jenis ini adalah yang digunakan pada Ethernet. Masalah yang muncul dalam penggunaan alamat flat adalah tabel switching harus memuat satu antri untuk tiap host. Hal ini merupakan masalah serius ditinjau dari sisi skalabilitas : table switching yang ukurannya berkembang sebanding dengan jumlah host tidak akan dapat diterima penggunaannya dalam jaringan global. Perlu diingat juga bahwa protokol routing link-state mengharuskan tiap node untuk menyimpan seluruh LSP dari tiap node dalam jaringan. Teknik yang paling umum digunakan untuk mengatasi masalah ini adalah route aggregation, yang dapat dijalankan jika jenis alamat yang digunakan adalah alamat yang bersifat hirarkis. Penomoran telepon adalah contoh yang representatif untuk alamat hirarkis ini. Dalam satu negara, nomor telepon biasanya tersusun atas beberpa digit kode area yang diikuti sejumlah digit nomor telepon lokal. Route aggregation memungkinkan switch untuk memulai prosesnya hanya dengan melihat kode area tujuan. Misalnya : switch di Bandung (kode area 22) melihat adanya percobaan pembukaan hubungan dengan nomor telepon di Magelang (kode area 293), maka switch tersebut tidak harus melihat lebih jauh. Ia tinggal melihat ke tabel switching untuk mencari entri dengan kode area 293 dan memutuskan bahwa panggilan tersebut harus diteruskan melalui link ke arah timur. Jika ternyata switch di Bandung tersebut melihat panggilan dengan kode area 22, maka yang harus dilakukan berikutnya adalah melihat bagian nomor lokal. Nomor lokal tersebut sebenarnya masih bersifat hirarkis, sehingga switch harus melihat sekian digit pertama untuk menentukan ke daerah Bandung yang mana panggilan tersebut harus diteruskan. Pengalamatan secara hirarkis dan agregasi jalur, bisa dikatakan sebagai dua sisi dari satu mata uang dan telah digunakan secara luas di Internet. Ini 59

merupakan salah satu penyebab Internet dapat berkembang (secara skala) dengan sangat pesat. Pengalamatan dan routing di Internet secara spesifik akan dipaparkan pada bab berikutnya. Name Service Setiap network interface yang terhubung ke jaringan TCP/IP diidentifikasi dengan 32 bit unik IP address. Sebuah nama (hostname) dapat diassosiasikan dengan sembarang divais yang mempunyai IP address. Dibandingkan dengan address internet numerik, hostname relatif lebih mudah diingat dan diketik. Yang perlu diperhatikan adalah software tidak memerlukan hostname, tapi hal ini dilakukan untuk mempermudah manusia dalam menggunakan jaringan. Dalam hampir setiap kasus hostname dan IP address dapat saling menggantikan, misalnya anda akan men-telnet suatu host yang anda ketahui mempunyai IP address 10.14.1.134 dan mempunyai nama students.stttelkom.ac.id maka operasi berikut adalah ekivalen : telnet students.stttelkom.ac.id telnet 10.14.1.134 Walaupun demikian, setiap mesin tetap menggunakan IP address untuk berkomunikasi lewat jaringan. Jadi bedanya dua perintah diatas adalah ketika anda mengetikan hostname maka yang dilakukan komputer adalah mencari ekivalen IP address hostname yang bersangkutan dalam tabel lokal maupun DNS, kemudian baru perintahnya dijalankan. Sedangkan bila anda langsung mengetikan IP address komputer tidak perlu lagi mengkonversinya dan langsung mengerjakan perintah. Ada dua metoda yang biasa dilakukan untuk mentranslasikan nama dengan address. Metoda ini adalah: Menggunakan host-table Menggunakan DNS (Domain Name Service)

Host-table adalah file teks sederhana (file hosts.txt) yang memuat daftar host beserta alamat IP-nya. Setiap malam semua host akan mengambil alamat itu dari situs dimana alamat-alamat tersebut disimpan. Bagi jaringan yang terdiri dari 100 buah mesin time sharing, pendekatan seperti ini akan dapat bekerja dengan baik. Tetapi jika ada ribuan workstation yang terhubung ke jaringan, pendekatan tersebut tidak bisa diterapkan lagi. Alasannya, ukuran file akan menjadi terlalu besar, dan yang lebih penting lagi konflik nama host akan sering terjadi jika nama-

60

namanya tidak diatur secara tersentralisasi. Untuk mengatasi hal ini digunakan metoda yang kedua, DNS. DNS dibuat berdasarkan kelemahan utama dari penggunaan host-table. DNS merupakan sistem database terdistribusi yang tidak banyak diperngaruhi oleh bertambahnya database. DNS menjamin informasi host terbaru akan disebarkan ke jaringan bila diperlukan. Jika server DNS menerima permintaan informasi tentang host yang dia tidak mempunyai informasi tentangnya, ia memforward permintaan pada authoritative server (sembarang server yang bertanggung jawab untuk memberikan informasi akurat tentang domain yang diminta.Ketika authoritative server menjawab server lokal menyimpan jawabannya untuk penggunaan mendatang. Sehingga apabila setelah itu ada permintaan informasi yang sama ia langsung menjawabnya. Kemampuan untuk mengkontrol informasi host dari sumber yang authoritative dan secara otomatis menyebarkan informasi akurat membuat DNS unggul dibandingkan dengan host-table. Hirarki domain DNS merupakan sistem hirarki terdistribusi untuk mendapatkan hubungan hostname dengan IP address. Dibawah DNS tidak ada database sentral dengan semua informasi host Internet. Informasi didistribusikan pada ribuan nameserver yang diorganisasi kedalam hirarki, hampir sama dengan sistem file di Unix. DNS mempunyai root domain diatas hirarki domain yang disebut sebagai root server. langsung dibawah root domain ada top level domain. Ada dua tipe top level domain: geografis dan organisasional. Domain geografis diset untuk setiap negara dan diidentifikasi dengan dua huruf kode. Domain organisasional didasarkan pada tipe organisasi (komersial,militer dll) Berikut contoh suatu domain hirarki.
. (root)

net

gov

mil

org

com

edu

Nih Dcrt Niddk Nuts

Nits Sales

Gambar 4.4 Hirarki domain

4.4 TABEL ROUTING Setiap mesin yang terhubung kejaringan baik itu host maupun gateway harus membuat suatu keputusan routing. Bagi host keputusan ini sederhana saja jika host tujuan berada pada jaringan lokal data dikirim langsung

61

jika host tujuan berada pada jaringan remote, data diforward ke gateway.

Hal yang lebih kompleks terjadi di gateway. Yang jelas routing adalah aplikasi yang network-oriented, jadi layer IP membuat suatu keputusan routing berdasarkan pada bagian network dari address. Untuk melihat bagaimana suatu mesin memutuskan kemana dia harus meneruskan paket data, dapat dilihat dengan perintah netstat -nr (yaitu tabel routing). Berikut contoh tabel routing dari suatu gateway :

Tabel 4.5 Contoh Tabel routing Internet: Destination Default 127.0.0.1 141.103 144.228 152.118 167.205.8.32 167.205.16 167.205.18 167.205.22.1 167.205.22.9 6 167.205.22.9 8 Gateway Flags Refs 7 0 0 0 0 0 1 0 0 0 3 Use 36325 30 0 16 0 168 1335 467 289 0 2346 Interfac e sl0 lo0 sl0 sl0 sl0 ed1 ed0 ed0 lo0 ed0 ed0

167.205.136.1 UG 5 127.0.0.1 UH 167.205.136.1 UG 5 167.205.136.1 UG 5 167.205.136.1 UG 5 167.205.31.13 UG 2 167.205.22.99 UG 167.205.22.10 UG 6 127.0.0.1 link#1 0:0:0:0:0:1 UH UC UHL

62

167.205.22.1 23 167.205.22.1 25 167.205.31.1 31 167.205.31.1 32 202.46 202.46.1 202.46.2 224

0:80:48:91:e8 UHL :40 0:80:48:90:29 UHL :9f 0:80:48:81:c6 UHL :b3 0:0:e8:c0:1:8 UHL 9 167.205.136.1 UG 5 167.205.136.1 UG 5 167.205.136.1 UG 5 link#1 UCS

2 0 0 7 0 0 0 0

16219 200 1 90424 0 249 0 0

lo0 ed0 lo0 ed1 sl0 sl0 sl0 ed0

Mekanisme routing berdasarkan tabel routing. Berikut adalah contoh bagaimana suatu data mencapai address tujuannya dengan menggunakan tabel routing.
Aplikasi Transport
tujuan 128.66.1.0 128.66.12.0 default gateway 128.66.1.0 128.66.12.0 128.66.12.1 tujuan 128.66.1.0 128.66.12.0 default gateway 128.66.1.5 128.66.12.3 128.66.12.1

Aplikasi Transport
tujuan 128.66.1.0 default gateway 128.66.1.2 128.66.1.5

Network Access 128.66.12.2

Network Access 128.66.12.3 128.66.1.5 128.66.1.0

Network Access 128.66.1.2

128.66.12.0

Gambar 4.5 Penggunaan tabel routing Ketika suatu host 128.66.12.2 mengirim data pada suatu host (128.66.1.2), ia pertama kali mengidentifikasi bahwa 128.66.1.2 adalah jaringan lokal address kelas B dan melakukan operasi masking yang sesuai (misalkan suatu jaringan 128.66.0.0 dengan masking 255.255.255.0), sehingga mesin itu tahu bahwa 63

address network tujuan adalah 128.66.1.0. Tabel routing pada host asal menunjukan bahwa data dengan tujuan 128.66.1.0 harus dilewatkan ke gateway 128.66.12.3. Gateway 128.66.12.3 langsung melakukan pengiriman pada interface 128.66.1.5, dengan melihat tabel routing yang menunujukan semua sistem hanya mempunyai satu gateway dan host langsung terhubung kepadanya maka mesin dengan interface 128.66.1.5 langsung memforward data ke 128.66.1.2. Setiap mesin yang terhubung kejaringan baik itu host maupun gateway harus membuat suatu keputusan routing. Bagi host keputusan ini sederhana saja jika host tujuan berada pada jaringan lokal data dikirim langsung jika host tujuan berada pada jaringan remote, data diforward ke gateway. Tabel ruting terdiri atas entri-entri rute dan setiap entri rute setidaknya terdiri atas IP address, tanda untuk menunjukkan routing langsung ataupun tak langsung, alamat router, dan nomor interface.

Gambar 4.6 tabel routing Langkah-langkah proses pencarian pada tabel routing : Alamat tujuan datagram di-masking dengan subnet mask host pengirim dan dibandingkan dengan alamat network host pengirim. Jika sama, adalah routing langsung dan frame langsung dikirimkan ke interface jaringan. Jika tujuan datagram tidak terletak dalam satu jaringan, periksa apakah terdapat entri routing yang berupa host dan bandingkan 64

dengan IP address tujuan datagram. Jika ada entri yang sama, kirim frame ke router menuju host tersebut Jika tidak terdapat entri host yang cocok pada tabel routing, gunakan alamat tujuan datagram yang telah di-mask pada langkah 1 untuk mencari kesamaan pada tabel routing. Periksa apakah ada network/subnetwork di tabel routing yang sama dengan alamat network tujuan datagram. Jika ada entri yang sama, kirim frame ke router menuju network/subnetwork tersebut. Jika tidak terdapat entri host ataupunentri network/subnetwork yang sesuai dengan tujuan datagram, host mengirimkan frame ke router default dan menyerahkan proses routing selanjutnya kepada router default. Jika tidak terdapat router default di tabel routing, semua host diasumsikan dalam keadaan terhubung langsung. Dengan demikian host pengirim akan mencari alamat fisik host tujuan menggunakan ARP. Untuk membuat tabel routing dapat dilakukan dengan menggunakan protocol routing Protocol routing adalah protocol yang digunakan router-router untuk saling bertukar informasi routing setiap selang waktu tertentu. Keunggulan menggunakan protocol routing yang lain adalah fleksibilitas dan konfigurasi yang umumnya relative sederhana untuk jaringan yang besar Protocol routing yang biasa digunakan pada jaringan TCP/IP Routing Information Protocol (RIP), Open Shortest Path First (OSPF), Border Gateway Protocol (BGP)

RIP dan OSPF termasuk Interior Gateway Protocol (IGP), yakni protocol yang menangani routing jaringan internet pada sebuah autonomous system, sedangkan BGP termasuk Exterior Gateway Protocol (EGP), yakni menangani routing antar autonomous system. Autonomous system merupakan jaringan internet yang berada dalam satu kendali administrasi dan teknis 1 RIP - Menggunakan Algorithma distance-vector (Bellman-Ford) - lambat dalam mengetahui perubahan jaringan - Dapat menyebabkan routing loop

65

- Menggunakan jumlah lompatan dengan 15 hop maksimum - Hanya cocok diimplementasikan untuk network yang kecil RIP (akronim, dibaca sebagai rip) termasuk dalam protokol distance-vector, sebuah protokol yang sangat sederhana. Protokol distance-vector sering juga disebut protokol Bellman-Ford, karena berasal dari algoritma perhitungan jarak terpendek oleh R.E. Bellman, dan dideskripsikan dalam bentuk algoritmaterdistribusi pertama kali oleh Ford dan Fulkerson. Setiap router dengan protokol distance-vector ketika pertama kali dijalankan hanya mengetahui cara routing ke dirinya sendiri (informasi lokal) dan tidak mengetahui topologi jaringan tempatnya berada. Router kemudia mengirimkan informasi lokal tersebut dalam bentuk distance-vector ke semua link yang terhubung langsung dengannya. Router yang menerima informasi routing menghitung distance-vector, menambahkan distance-vector dengan metrik link tempat informasi tersebut diterima, dan memasukkannya ke dalam entri forwarding table jika dianggap merupakan jalur terbaik. Informasi routing setelah penambahan metrik kemudian dikirim lagi ke seluruh antarmuka router, dan ini dilakukan setiap selang waktu tertentu. Demikian seterusnya sehingga seluruh router di jaringan mengetahui topologi jaringan tersebut. Protokol distance-vector memiliki kelemahan yang dapat terlihat apabila dalam jaringan ada link yang terputus. Dua kemungkinan kegagalan yang mungkin terjadi adalah efek bouncing dan menghitung-sampai-tak-hingga (counting to infinity). Efek bouncing dapat terjadi pada jaringan yang menggunakan metrik yang berbeda pada minimal sebuah link. Link yang putus dapat menyebabkan routing loop, sehingga datagram yang melewati link tertentu hanya berputar-putar di antara dua router (bouncing) sampai umur (time to live) datagram tersebut habis. Menghitung-sampai-tak-hingga terjadi karena router terlambat menginformasikan bahwa suatu link terputus. Keterlambatan ini menyebabkan router harus mengirim dan menerima distance-vector serta menghitung metrik sampai batas maksimum metrik distance-vector tercapai. Link tersebut dinyatakan putus setelah distance-vector mencapai batas maksimum metrik. Pada saat menghitung metrik ini juga terjadi routing loop, bahkan untuk waktu yang lebih lama daripada apabila terjadi efek bouncing.. RIP tidak mengadopsi protokol distance-vector begitu saja, melainkan dengan melakukan beberapa penambahan pada algoritmanya agar routing loop yang terjadi dapat diminimalkan. Split horizon digunakan RIP untuk meminimalkan efek bouncing. Prinsip yang digunakan split horizon sederhana: jika node A menyampaikan datagram ke tujuan X melalui node B, maka bagi B tidak masuk akal untuk mencapai tujuan X melalui A. Jadi, A tidak perlu memberitahu B bahwa X dapat dicapai B melalui A.

66

Untuk mencegah kasus menghitung-sampai-tak-hingga, RIP menggunakan metode Triggered Update. RIP memiliki timer untuk mengetahui kapan router harus kembali memberikan informasi routing. Jika terjadi perubahan pada jaringan, sementara timer belum habis, router tetap harus mengirimkan informasi routing karena dipicu oleh perubahan tersebut (triggered update). Dengan demikian, router-router di jaringan dapat dengan cepat mengetahui perubahan yang terjadi dan meminimalkan kemungkinan routing loop terjadi. RIP yang didefinisikan dalam RFC-1058 menggunakan metrik antara 1 dan 15, sedangkan 16 dianggap sebagai tak-hingga. Route dengan distance-vector 16 tidak dimasukkan ke dalam forwarding table. Batas metrik 16 ini mencegah waktu menghitung-sampai-tak-hingga yang terlalu lama. Paket-paket RIP secara normal dikirimkan setiap 30 detik atau lebih cepat jika terdapat triggered updates. Jika dalam 180 detik sebuah route tidak diperbarui, router menghapus entri route tersebut dari forwarding table. RIP tidak memiliki informasi tentang subnet setiap route. Router harus menganggap setiap route yang diterima memiliki subnet yang sama dengan subnet pada router itu. Dengan demikian, RIP tidak mendukung Variable Length Subnet Masking (VLSM). RIP versi 2 (RIP-2 atau RIPv2) berupaya untuk menghasilkan beberapa perbaikan atas RIP, yaitu dukungan untuk VLSM, menggunakan otentikasi, memberikan informasi hop berikut (next hop), dan multicast. Penambahan informasi subnet mask pada setiap route membuat router tidak harus mengasumsikan bahwa route tersebut memiliki subnet mask yang sama dengan subnet mask yang digunakan padanya. RIP-2 juga menggunakan otentikasi agar dapat mengetahui informasi routing mana yang dapat dipercaya. Otentikasi diperlukan pada protokol routing untuk membuat protokol tersebut menjadi lebih aman. RIP-1 tidak menggunakan otentikasi sehingga orang dapat memberikan informasi routing palsu. Informasi hop berikut pada RIP-2 digunakan oleh router untuk menginformasikan sebuah route tetapi untuk mencapai route tersebut tidak melewati router yang memberi informasi, melainkan router yang lain. Pemakaian hop berikut biasanya di perbatasan antar-AS. RIP-1 menggunakan alamat broadcast untuk mengirimkan informasi routing. Akibatnya, paket ini diterima oleh semua host yang berada dalam subnet tersebut dan menambah beban kerja host. RIP-2 dapat mengirimkan paket menggunakan multicast pada IP 224.0.0.9 sehingga tidak semua host perlu menerima dan memproses informasi routing. Hanya router-router yang menggunakan RIP-2 yang menerima informasi routing tersebut tanpa perlu mengganggu host-host lain dalam subnet. RIP merupakan protokol routing yang sederhana, dan ini menjadi alasan mengapa RIP paling banyak diimplementasikan dalam jaringan. Mengatur routing menggunakan RIP tidak rumit dan memberikan hasil yang cukup dapat diterima, terlebih jika jarang terjadi kegagalan link jaringan. Walaupun demikian, untuk jaringan yang besar dan kompleks, RIP mungkin tidak cukup.

67

Dalam kondisi demikian, penghitungan routing dalam RIP sering membutuhkan waktu yang lama, dan menyebabkan terjadinya routing loop. Untuk jaringan seperti ini, sebagian besar spesialis jaringan komputer menggunakan protokol yang masuk dalam kelompok link-state 2 Open Shortest Path First (OSPF) - Menggunakan algoritma link-state - Tidak menyebabkan routing loop - Cepat mengetahui perubahan pada jaringan dan menjadikan routing kembali konvergen dalam waktu yang singkat dengan sedikit pertukaran data - Setiap router yang menjalankan OSPF menyimpan peta jaringan dan menghitung jarak terpendek menuju semua tujuan di jaringan Teknologi link-state dikembangkan dalam ARPAnet untuk menghasilkan protokol yang terdistribusi yang jauh lebih baik daripada protokol distancevector. Alih-alih saling bertukar jarak (distance) ke tujuan, setiap router dalam jaringan memiliki peta jaringan yang dapat diperbarui dengan cepat setelah setiap perubahan topologi. Peta ini digunakan untuk menghitung route yang lebih akurat daripada menggunakan protokol distance-vector. Perkembangan teknologi ini akhirnya menghasilkan protokol Open Shortest Path First (OSPF) yang dikembangkan oleh IETF untuk digunakan di Internet. Bahkan sekarang Internet Architecture Board (IAB) telah merekomendasikan OSPF sebagai pengganti RIP. Prinsip link-state routing sangat sederhana. Sebagai pengganti menghitung route "terbaik" dengan cara terdistribusi, semua router mempunyai peta jaringan dan menghitung semua route yang terbaik dari peta ini. Peta jaringan tersebut disimpan dalam sebuah basis data dan setiap record dalam basis data tersebut menyatakan sebuah link dalam jaringan. Record-record tersebut dikirimkan oleh router yang terhubung langsung dengan masing-masing link. Karena setiap router perlu memiliki peta jaringan yang menggambarkan kondisi terakhir topologi jaringan yang lengkap, setiap perubahan dalam jaringan harus diikuti oleh perubahan dalam basis data link-state yang terletak di setiap router. Perubahan status link yang dideteksi router akan mengubah basis data link-state router tersebut, kemudian router mengirimkan perubahan tersebut ke router-router lain. Protokol yang digunakan untuk mengirimkan perubahan ini harus cepat dan dapat diandalkan. Ini dapat dicapai oleh protokol flooding. Dalam protokol flooding, pesan yang dikirim adalah perubahan dari basis data serta nomor urut pesan tersebut. Dengan hanya mengirimkan perubahan basis data, waktu yang diperlukan untuk pengiriman dan pemrosesan pesan tersebut lebih sedikit dibandingdengan mengirim seluruh isi basis data tersebut. 68

Nomor urut pesan diperlukan untuk mengetahui apakah pesan yang diterima lebih baru daripada yang terdapat dalam basis data. Nomor urut ini berguna pada kasus link yang putus menjadi tersambung kembali. Pada saat terdapat link putus dan jaringan menjadi terpisah, basis data kedua bagian jaringan tersebut menjadi berbeda. Ketika link yang putus tersebut hidup kembali, basis data di semua router harus disamakan. Basis data ini tidak akan kembali sama dengan mengirimkan satu pesan link-state saja. Proses penyamaan basis data pada router yang bertetangga disebut sebagai menghidupkan adjacency. Dua buah router bertetangga disebut sebagai adjacent bila basis data link-state keduanya telah sama. Dalam proses ini kedua router tersebut tidak saling bertukar basis data karena akan membutuhkan waktu yang lama. Proses menghidupkan adjacency terdiri dari dua fasa.Fasa pertama, kedua router saling bertukar deskripsi basis data yang merupakan ringkasan dari basis data yang dimiliki setiap router. Setiap router kemudian membandingkan deskripsi basis data yang diterima dengan basis data yang dimilikinya. Pada fasa kedua, setiap router meminta tetangganya untuk mengirimkan record-record basis data yang berbeda, yaitu bila router tidak memiliki record tersebut, atau nomor urut record yang dimiliki lebih kecil daripada yang dikirimkan oleh deskripsi basis data. Setelah proses ini, router memperbarui beberapa record dan ini kemudian dikirimkan ke router-router lain melalui protokol flooding. Protokol link-state lebih baik daripada protokol distance-vector disebabkan oleh beberapa hal: waktu yang diperlukan untuk konvergen lebih cepat, dan lebih penting lagi protokol ini tidak menghasilkan routing loop. Protokol ini mendukung penggunaan beberapa metrik sekaligus. Throughput, delay, biaya, dan keandalan adalah metrik-metrik yang umum digunakan dalam jaringan. Di samping itu protokol ini juga dapat menghasilkan banyak jalur ke sebuah tujuan. Misalkan router A memiliki dua buah jalur dengan metrik yang sama ke host B. Protokol dapat memasukkan kedua jalur tersebut ke dalam forwarding table sehingga router mampu membagi beban di antara kedua jalur tersebut. Rancangan OSPF menggunakan protokol link-state dengan beberapa penambahan fungsi. Fungsi-fungsi yang ditambahkan antara lain mendukung jaringan multi-akses, seperti X.25 dan Ethernet, dan membagi jaringan yang besar mejadi beberapa area. Telah dijelaskan di atas bahwa setiap router dalam protokol link-state perlu membentuk adjacency dengan router tetangganya. Pada jaringan multiakses, tetangga setiap router dapat lebih dari satu. Dalam situasi seperti ini, setiap router dalam jaringan perlu membentuk adjacency dengan semua router yang lain, dan ini tidak efisien. OSPF mengefisienkan adjacency ini dengan memperkenalkan konsep designated router dan designated router cadangan. Semua router hanya perlu adjacent dengan designated router

69

tersebut, sehingga hanya designated router yang adjacent dengan semua router yang lain. Designated router cadangan akan mengambil alih fungsi designated router yang gagal berfungsi. Langkah pertama dalam jaringan multi-akses adalah memilih designated router dan cadangannya. Pemilihan ini dimasukkan ke dalam protokol Hello, protokol dalam OSPF untuk mengetahui tetangga-tetangga router dalam setiap link. Setelah pemilihan, baru kemudian router-router membentuk adjacency dengan designated router dan cadangannya. Setiap terjadi perubahan jaringan, router mengirimkan pesan menggunakan protokol flooding ke designated router, dan designated router yang mengirimkan pesan tersebut ke router-router lain dalam link. Designated router cadangan juga mendengarkan pesan-pesan yang dikirim ke designated router. Jika designated router gagal, cadangannya kemudian menjadi designated router yang baru serta dipilih designated router cadangan yang baru. Karena designated router yang baru telah adjacent dengan router-router lain, tidak perlu dilakukan lagi proses penyamaan basis data yang membutuhkan waktu yang lama tersebut. Dalam jaringan yang besar tentu dibutuhkan basis data yang besar pula untuk menyimpan topologi jaringan. Ini mengarah kepada kebutuhan memori router yang lebih besar serta waktu perhitungan route yang lebih lama. Untuk mengantisipasi hal ini, OSPF menggunakan konsep area dan backbone. Jaringan dibagi menjadi beberapa area yang terhubung ke backbone. Setiap area dianggap sebagai jaringan tersendiri dan router-router di dalamnya hanya perlu memiliki peta topologi jaringan dalam area tersebut. Routerrouter yang terletak di perbatasan antar area hanya mengirimkan ringkasan dari link-link yang terdapat dalam area dan tidak mengirimkan topologi area satu ke area lain. Dengan demikian, perhitungan route menjadi lebih sederhana. Kita sudah lihat sepintas bagaimana RIP dan OSPF bekerja. Setiap protokol routing memiliki kelebihan dan kekurangannya masing-masing. Protokol RIP sangat sederhana dan mudah diimplementasikan tetapi dapat menimbulkan routing loop. Protokol OSPF merupakan protokol yang lebih rumit dan lebih baik daripada RIP tetapi membutuhkan memori dan waktu CPU yang besar. Di berbagai tempat juga terdapat yang menggunakan gabungan antara routing statik, RIP, RIP-v2, dan OSPF. Hasilnya di jaringan ini menunjukkan bahwa administrasi routing statik jauh lebih memakan waktu dibanding routing dinamik. Pengamatan pada protokol routing dinamik juga menunjukkan bahwa RIP menggunakan bandwidth yang lebih besar daripada OSPF dan semakin besar jaringan, bandwidth yang digunakan RIP bertambah lebih besar pula. Jadi, jika Anda sedang mendesain jaringan TCP/IP yang besar tentu OSPF merupakan pilihan protokol routing yang tepat

70

71

You might also like