Diktat Kuliah
Jaringan Komputer Versi 2.0
Fazmah Arif Yulianto 9975190
Jurusan Teknik Informatika Sekolah Tinggi Teknologi Telkom Bandung 2003
Daftar Isi
Dasar-dasar Jaringan Komputer _________ 1 Motivasi ____________________________________________________ 2 Kebutuhan (Requirement) _____________________________________ 3 Arsitektur Jaringan__________________________________________ Layering dan Protokol _______________________________________ Arsitektur OSI _____________________________________________ Arsitektur Internet __________________________________________
19 19 25 26
Jaringan-jaringan Terhubung-Langsung _ 29 Komponen Perangkat Keras __________________________________ 30 Node_____________________________________________________ 30 Link _____________________________________________________ 31 Pengkodean ________________________________________________ 33 Framing ___________________________________________________ Protokol Berorientasi Byte ___________________________________ Protokol Berorientasi Bit _____________________________________ Framing berbasis clock ______________________________________
37 38 39 41
Deteksi Kesalahan ___________________________________________ Cyclic Redundancy Check ____________________________________ Parity Dua Dimensi _________________________________________ Internet Checksum __________________________________________
43 43 46 46
Transmisi yang Handal _______________________________________ Stop-and-Wait _____________________________________________ Sliding Window ____________________________________________ Concurrent Logical Channel __________________________________
47 48 50 54
Token Ring _________________________________________________ Format Frame _____________________________________________ MAC (Medium Access Control) _______________________________ Topologi fisik jaringan Token Ring ____________________________
55 55 56 59
FDDI (Fiber Distributed Data Interface) ________________________ Spesifikasi FDDI ___________________________________________ Format frame FDDI _________________________________________ Medium Access Control FDDI ________________________________
59 60 61 62
Pengalokasian bandwidth ____________________________________ Media fisik FDDI___________________________________________ Jenis node FDDI ___________________________________________ Algoritma Timed-Token______________________________________ Pemeliharaan Token ________________________________________
62 63 64 66 68
Ethernet ___________________________________________________ Properti Fisik ______________________________________________ Ethernet dan IEEE 802.3 _____________________________________ Format frame ______________________________________________ Alamat ___________________________________________________ Algoritma pengirim _________________________________________
69 70 71 72 73 74
Packet Switching _____________________ 76 Switching dan Forwarding ____________________________________ Source Routing ____________________________________________ Virtual Circuit _____________________________________________ Datagram _________________________________________________ Implementasi dan Unjuk Kerja ________________________________
77 78 80 83 84
Routing ____________________________________________________ 86 Jaringan Sebagai Suatu Graph ________________________________ 86 Distance Vector ____________________________________________ 88 Link State _________________________________________________ 92 Metric____________________________________________________ 97 Routing, Pengalamatan dan Hirarki____________________________ 100 Perangkat Keras Switching __________________________________ Tujuan Perancangan _______________________________________ Port dan Fabric ___________________________________________ Switch Crossbar___________________________________________ Self-routing fabric _________________________________________ Shared Media Switches _____________________________________
101 101 103 104 108 113
1 Jaringan Komputer
1 M
Dasar-dasar Jaringan Komputer isalkan suatu saat dibutuhkan suatu jaringan komputer yang memiliki
kemampuan untuk mendukung berbagai macam aplikasi (teleconference, video-ondemand, distributed computing dan digital library) serta memungkinkan untuk berkembang menjadi jaringan global. Teknologi apa kiranya yang akan digunakan sebagai komponen pembangun? Arsitektur perangkat lunak seperti apa yang akan digunakan dalam mengintegrasikan komponen-komponen tersebut menjadi sebuah layanan komunikasi yang efektif? Menjawab pertanyaan-pertanyaan tersebut adalah tujuan akhir dari tulisan ini : untuk mendeskripsikan teknologi yang tersedia dan penggunaannya dalam membangun jaringan komputer. Sebelum melangkah terlalu jauh, perlu disepakati terlebih dahulu apa yang dimaksud dengan jaringan komputer. Sekian puluh tahun yang lalu istilah jaringan (network) sering kali digunakan untuk menyebut kumpulan serial-line yang menghubungkan dumb terminal ke komputer mainframe. Selain itu, istilah jaringan juga dikenal dalam lingkungan telepon, untuk menghantarkan sinyal suara. Ada pula yang menggunakan istilah jaringan dalam dunia cable-TV yang digunakan untuk menghantarkan sinyal video. Satu hal yang perlu diperhatikan adalah bahwa masingmasing jaringan dirancang secara khusus untuk menghantarkan satu jenis data saja (karakter, suara, video) dan terhubung dengan perangkat untuk keperluan khusus (terminal, pesawat telepon, televisi). Apa yang membedakan jaringan komputer dengan jaringan-jaringan tersebut? Jaringan komputer yang dikenal (dan diperlukan) saat ini adalah jaringan yang bersifat general. Kalau diperhatikan, jaringan komputer dibangun terutama untuk menghubungkan perangkat-perangkat yang bersifat umum (general purpose : tidak dirancang secara khusus untuk mendukung suatu aplikasi tertentu). Dengan demikian jaringan komputer harus dapat menghantarkan bermacam jenis tipe data dan mendukung segala macam aplikasi yang ada (bahkan sebisa mungkin juga mengantisipasi aplikasi yang belum ada). Bab ini menyajikan beberapa aplikasi umum yang menggunakan jaringan komputer, berikut dengan kebutuhan masing-masing yang harus diperhatikan oleh perancang jaringan. Apa yang harus dilakukan setelah didapat daftar kebutuhan Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
2 Jaringan Komputer
(requirement)? Syukurlah bahwa telah ada orang yang lebih dahulu membangun jaringan. Komunitas peneliti dan engineer yang membangun Internet (sebagai jaringan komputer yang secara de facto diterima dan digunakan secara global) telah lebih dulu menempuh jalan yang penuh masalah. Pengalaman mereka dapat digunakan sebagai panduan dalam perancangan jaringan. Pengalaman tersebut terwujud dalam arsitektur jaringan yang berbentuk perangkat keras dan komponen perangkat lunak serta cara pengaturannya untuk membangun jaringan komputer.
Motivasi Salah satu faktor yang membuat perkembangan Internet begitu mengagumkan adalah fakta bahwa sekian banyak fungsionalitas disediakan oleh perangkat lunak yang berjalan diatas komputer general purpose. Arti penting dari hal ini adalah bahwa fungsionalitas baru dapat ditambahkan dengan 'sedikit' memrogram. Akibatnya, tidak terhitung lagi aplikasi baru yang bermunculan di Internet tiap tahunnya. Penambahan fungsionalitas pada jaringan tidak hanya melulu pembangunan aplikasi baru, namun juga mencakup fungsi-fungsi baru 'di dalam' jaringan itu sendiri. Sebagai contoh adalah multicast routing, yang memungkinkan berlangsungnya multiparty teleconferencing menggunakan Internet. Faktor lain yang menjadikan jaringan komputer begitu menjanjikan adalah pesatnya peningkatan kemampuan komputasi (computing power) dalam beberapa tahun terakhir. Meski jaringan komputer mampu menghantarkan berbagai macam tipe data, namun tidak akan banyak manfaatnya jika kemampuan komputer untuk mengirim dan menerima masih terlalu lambat dibanding kecepatan transfer data dalam jaringan. Sekarang ini hampir semua komputer mampu memainkan kembali (play back) audio dan video dengan kecepatan dan resolusi yang baik. Mendukung hal itu, jaringan sekarang telah mulai diupayakan untuk dapat memenuhi tuntutan aplikasi multimedia. Upaya itu akan berhasil jika didukung dengan meningkatnya kemampuan (kecepatan) perangkat keras. Alasan utama dibangunnya jaringan komputer adalah agar pengguna dapat menjalankan aplikasi diatasnya. Semua fungsi yang disediakan di suatu jaringan berkaitan erat dengan kebutuhan aplikasi. Pembangun aplikasi memanfaatkan fungsifungsi yang disediakan jaringan, sementara perancang jaringan berusaha untuk menambah fungsionalitas jaringan untuk meningkatkan unjuk kerja dari aplikasi yang telah ada dan memungkinkan timbulnya aplikasi baru. Berikut adalah beberapa aplikasi umum di jaringan (terutama Internet) : FTP (File Transfer Protocol) : aplikasi ini mungkin yang tertua di Internet dan masih sangat berguna sampai saat ini. Sebagaimana tersirat dari namanya, aplikasi ini memungkinkan dilakukannya transfer file antar komputer lewat jaringan. Ada dua entitas penting dalam satu sesi FTP, yaitu : client dan server. Program client pada komputer lokal berhubungan dengan program server di FTP server. Client akan mengirimkan permintaan / Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
3 Jaringan Komputer
perintah (request) yang akan dilakukan dan dijawab oleh server (respond). WWW (World Wide Web) : aplikasi ini begitu sukses dan sangat memudahkan mengakses informasi lewat Internet, sampai-sampai sebagian orang mengira bahwa Web bersinonim dengan Internet. Web dapat dibayangkan sebagai kumpulan sejumlah client dan server yang saling bekerja sama, dimana masing-masing 'berbicara' dengan bahasa yang sama, yaitu HTTP (HyperText Transfer Protocol). Yang menarik berkaitan dengan WWW adalah bahwa secara prinsip, cara kerjanya sama dengan FTP. Server diidentifikasi (pada WWW dengan URL –Uniform Resource Locator--), koneksi dibangun, mesin lokal (client) mengirimkan request, dan mesin remote (server) me-respond dengan mengirimkan file yang diminta. NV (Network Video) : aplikasi ini kebanyakan digunakan untuk mutiparty teleconferencing lewat Internet. Disini tidak ada istilah client dan server, semua host berderajat sama (masing-masing host dapat mengirim dan menerima frame-frame video). Atribut kualitas video yang dipertukarkan antar host berpengaruh pada kebutuhan akan bandwidth jaringan.
Kebutuhan (Requirement) Sebelum berusaha memahami perancangan dan implementasi jaringan komputer untuk mendukung aplikasi FTP, WWW, NV dan lainnya, terlebih dahulu harus diidentifikasi ekspektasi terhadap jaringan. Jawabannya tidak mungkin hanya satu, karena jaringan komputer dibangun dengan requirement dan batasan yang sangat banyak. Sementara, requirement sendiri tergantung dari sudut pandang terhadap jaringan sebagai berikut : Pengguna jaringan akan memiliki daftar layanan yang dibutuhkan oleh aplikasinya. Sebagai contoh : adanya jaminan bahwa setiap message yang dikirimkan oleh aplikasi akan dapat diterima dengan baik (tanpa kesalahan) dalam batas waktu tertentu. Perancang jaringan akan memiliki daftar aspek-aspek untuk mendapatkan rancangan yang efektif. Sebagai contoh : sumber daya jaringan digunakan secara efisien dan dialokasikan secara adil untuk setiap pengguna jaringan. Penyedia jaringan akan memiliki daftar karakteristik sistem yang memudahkan administrasi dan pengaturannya. Sebagai contoh : kemudahan isolasi kegagalan / kerusakan dalam jaringan, kemudahan penghitungan penggunaan jaringan untuk tiap user.
Kebutuhan yang berlainan terhadap jaringan diatas dapat di rumuskan dalam tingkat abstraksi yang lebih tinggi sebagai berikut :
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
4 Jaringan Komputer
A.Keterhubungan (connectivity) Jaringan harus menyediakan hubungan antar komputer. Kadangkala keterhubungan tersebut cukup disediakan dengan dibangunnya jaringan terbatas yang menghubungkan hanya beberapa mesin saja diantara seluruh mesin yang ada. Kasus seperti ini sering ditemui pada jaringan privat (corporate) yang secara eksplisit membatasi hubungan mesin-mesinnya dengan alasan privasi dan keamanan. Di sisi lain, ada jaringan yang memang dengan sengaja dirancang untuk dapat berkembang dan memiliki potensi untuk menghubungkan seluruh komputer di dunia (Internet merupakan contoh yang baik untuk kasus ini). Sistem seperti ini sering kali disebut sebagai sistem yang scalable. Ada beberapa level keterhubungan jaringan. Pada level terendah, jaringan dapat tersusun dari dua atau lebih komputer yang saling terhubung secara langsung melalui media fisik. Media fisik sering kali disebut sebagai link, sementara komputer (atau perangkat khusus lain) yang dihubungkannya disebut sebagai node. Sebagaimana terlihat pada Gambar 1.1, link fisik bisa jadi terbatas hanya menghubungkan dua node saja (point-to-point) atau lebih dari dua node dapat menggunakan satu link fisik secara bersama (multiple-access). Apakah suatu link mendukung hubungan point-topoint atau multiple-access, tergantung dari bagaimana node-node terhubung ke link. Perlu dicatat juga bahwa link yang bersifat multiple-access masing-masing juga memiliki batasan ukuran, baik dari sisi jangkauan geografis ataupun jumlah node yang dapat terhubung kepadanya. Jika suatu jaringan berada pada situasi dimana seluruh node terhubung secara langsung satu sama lain menggunakan media fisik yang sama, maka jaringan akan sangat dibatasi oleh jumlah komputer yang dapat terhubung dan jumlah antar-muka hubungan dari setiap node akan menjadi sangat banyak, mahal dan sulit untuk dikelola. Hal yang sangat menguntungkan adalah fakta bahwa hubungan antara dua node tidak mengharuskan adanya hubungan langsung secara fisik diantara mereka. Keterhubungan secara tidak langsung juga dapat dilakukan pada sekelompok node yang saling berinteraksi. Pada Gambar 1.2, terlihat sekelompok node yang masing-masing terhubung ke satu atau lebih link point-to-point. Node-node yang terhubung ke dua atau lebih link memiliki dan menjalankan software yang akan meneruskan (forward) data yang diterima dari satu link ke link lainnya. Jika diorganisasikan secara sistematik, maka node-node tersebut akan membentuk switched network. Ada beberapa tipe switched network, dua yang paling utama adalah circuit switched dan packet switched. Circuit switched biasa digunakan pada sistem telepon, sementara packet switched digunakan oleh mayoritas jaringan komputer. Karakteristik utama dari packet switched network adalah bahwa node dalam jaringan tersebut saling bertukar data dalam bentuk blokblok diskrit (sering disebut dengan packet atau message).
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
5 Jaringan Komputer
a) b)
...
Gambar 1.1. Direct Link : a) point-to-point; b) multiple-access
Gambar 1.2. Switched Network
Packet switched network biasanya menggunakan strategi yang dikenal dengan istilah store-and-forward. Dengan strategi ini, tiap node terlebih dulu akan menerima blok data secara lengkap dari suatu link, menyimpannya dalam memori internal, kemudian meneruskannya ke node berikut (yang terhubung langsung dengannya). Sebaliknya, circuit switched network akan membangun dedicated circuit yang melibatkan sejumlah link, barulah kemudian node sumber mengirimkan deretan bit melalui circuit ini ke node tujuan. Simbol awan (cloud) pada Gambar 1.2 memisahkan antara node 'di dalam' yang membangun jaringan (seringkali disebut dengan switch dan bertugas melakukan store dan forward packet) dengan node 'di luar' yang menggunakan jaringan (seringkali disebut host, berinteraksi langsung dengan pengguna dan menjalankan program aplikasi). Secara umum, cloud juga dipakai untuk menggambarkan segala jenis jaringan, apakah itu point-to-point, multiple-access ataupun switched network. Sehingga jika ditemui simbol cloud, maka dapat dibayangkan sebagai suatu jaringan dengan (sementara waktu) mengabaikan detil teknologi yang digunakan.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
6 Jaringan Komputer
Gambar 1.3. Interkoneksi jaringan
Cara lain untuk menghubungkan komputer secara tidak langsung terlihat pada Gambar 1.3. Dalam situasi ini, sekumpulan jaringan independen (digambarkan dengan cloud) dihubungkan (interkoneksi) satu sama lain untuk membangun internetwork.℘ Node yang terhubung ke dua atau lebih jaringan dikenal dengan sebutan router atau gateway. Node jenis ini memiliki fungsi yang mirip dengan switch, yakni meneruskan message dari satu jaringan ke jaringan lain. Perlu dicatat bahwa internet sendiri dapat dipandang sebagai satu jaringan, sehingga internet dapat dibangun dengan menginterkoneksikan beberapa internet secara rekursif. (Cloud dihubungkan dengan cloud lain akan membentuk cloud baru yang lebih besar) Berhasil menghubungkan beberapa node (baik secara langsung maupun tidak langsung) belum berarti bisa menjamin keterhubungan host-to-host. Dibutuhkan sesuatu yang memungkinkan tiap node untuk dapat mengidentifikasikan dengan jelas node lain (mungkin lebih dari satu) dalam jaringan yang menjadi mitra komunikasinya. Hal itu dilakukan dengan memberikan alamat kepada tiap node. Alamat adalah deretan bit (string) yang mengidentifikasi tiap node secara unik, sehingga jaringan dapat mengidentifikasi dan membedakan dengan pasti suatu node dari node lain yang juga terhubung ke jaringan tersebut. Jika node sumber meminta layanan jaringan untuk mengirimkan message ke node tujuan tertentu, node sumber harus dapat menspesifikasikan alamat node tujuan. Jika node sumber dan tujuan tidak berada pada jaringan yang sama (tidak terhubung secara langsung), maka switch dan router dalam jaringan akan menggunakan alamat tersebut untuk menentukan cara terbaik menghantarkan message ke tujuan. Proses sistematik untuk menentukan rute terbaik dari sumber ke tujuan ini dikenal dengan istilah routing. ℘
Kita mengadopsi konvensi penyebutan internetwok secara umum dengan internet (i kecil), sementara penyebutan Internet berbasis TCP/IP yang beroperasi sebagai jaringan global dengan Internet (i besar)
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
7 Jaringan Komputer
Skema pengalamatan dan routing yang baru saja dipaparkan berasumsi bahwa node sumber hanya ingin mengirimkan message ke satu node tujuan (unicast). Selain itu, ada kemungkinan skenario lain, dimana node sumber ingin mengirim message ke semua node yang terhubung ke jaringan (broadcast). Atau node sumber ingin mengirim message hanya ke beberapa node di jaringan (multicast). Dengan demikian selain skema pengalamatan yang unik untuk tiap node, dibutuhkan pula skema pengalamatan untuk broadcast dan multicast.
B.Penggunaan Bersama Sumber Daya Pada sekumpulan node yang terhubung secara tidak langsung dengan jaringan yang bersarang (nested network), maka dimungkinkan adanya pertukaran message antara pasangan host manapun dalam jaringan dan jaringan harus dapat melayaninya. Pertanyaan yang mengemuka kemudian adalah bagaimana seluruh host yang ingin berkomunikasi berbagi sumber daya jaringan, terutama jika komunikasi terjadi dalam waktu yang bersamaan. Masalah jadi tambah rumit, manakala ada beberapa host yang harus berbagi link fisik tunggal manakala ingin mengunakannya pada waktu yang bersamaan. Untuk memahami bagaimana sejumlah host berbagi penggunaan sumber daya jaringan, terlebih dahulu harus dipahami konsep dasarnya, yakni multiplexing. Secara intuitif, multiplexing dapat dianalogikan dengan sistem komputer yang melakukan time-sharing, dimana prosesor tunggal digunakan secara bersama (multiplex) oleh beberapa proses yang masing-masing merasa 'memiliki' prosesornya sendiri. Dengan cara yang serupa, data dari beberapa penggunapun dapat dikirimkan melalui satu link fisik. Gambar 1.4 memberikan ilustrasi multiplexing. Tiga host di sebelah kiri mengirimkan data ke tiga host di sebelah kanan dengan menggunakan switched network yang hanya memiliki satu link fisik. Dalam situasi ini, tiga aliran data – berhubungan dengan tiga pasang host yang berkomunikasi– di-multiplex dalam sebuah link fisik oleh switch 1 dan kemudian di-demultiplex kembali menjadi tiga aliran data oleh switch 2. Ada beberapa metoda untuk melakukan multiplexing terhadap sejumlah aliran data pada satu link fisik. Metoda yang sering kali digunakan dalam jaringan telepon adalah STDM (Synchronous Time-Division Multiplexing). Ide dasar STDM adalah membagi waktu dalam quanta yang berukuran sama, kemudian dengan mekanisme Round-Robin, tiap aliran data diberikan kesempatan untuk mengirimkan data (menggunakan link fisik). Metoda lain yang juga banyak digunakan adalah FDM (Frequency-Division Multiplexing). Ide dari FDM adalah mengirimkan tiap aliran data melalui link fisik menggunakan frekwensi yang berlainan.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
8 Jaringan Komputer
Gambar 1.4. Multiplexing beberapa aliran data pada link tunggal
Meski mudah untuk dimengerti, namun STDM dan FDM memiliki dua keterbatasan. Pertama, jika ada pasangan host (aliran data) yang sedang tidak memiliki data yang harus dikirimkan, maka bagiannya (quanta maupun frekwensi) meski kosong tapi tidak bisa digunakan oleh pasangan host yang lain untuk berkomunikasi. Dalam dunia komunikasi komputer, rentang waktu link dalam kondisi idle bisa jadi sangat besar –contohnya adalah perbandingan waktu yang dibutuhkan untuk membaca halaman web dengan waktu untuk download halaman web tersebut--. Kedua, baik STDM maupun FDM dibatasi oleh jumlah maksimum aliran data yang dapat di-multiplex. Hal ini sangat tidak praktis, terlebih tidak dimungkinkannya perubahan ukuran quantum atau menambah jumlah quanta dalam kasus STDM atau menambah frekwensi baru dalam kasus FDM. Metoda multiplexing yang akan digunakan seterusnya dalam tulisan ini adalah yang dikenal dengan istilah statistical multiplexing. Ada dua ide utama yang mendasari metoda ini. Pertama, link fisik digunakan secara bersama seperti pada STDM. Namun tidak persis seperti STDM, karena data ditransmisikan on-demand dari tiap aliran, bukan pada slot waktu khusus yang diperuntukkan bagi tiap aliran data. Dengan demikian, jika hanya ada satu aliran data yang memiliki data untuk dikirim, maka data akan dapat ditransmisikan tanpa harus menunggu quantum-nya. Cara menghindari adanya waktu kosong yang tidak dapat dimanfaatkan inilah yang menjadikan packet switching efisien. Sampai disini belum ada mekanisme dalam statistical multiplexing yang dapat menjamin bahwa seluruh aliran data akan mendapatkan giliran mentransmisikan data melalui link fisik. Dengan demikian, begitu ada aliran yang mentransmisikan data, harus ada sesuatu yang membatasi sehingga aliran yang lain dapat mentransmisikan datanya. Statistical multiplexing mendefinisikan suatu batas atas terhadap ukuran blok data yang diijinkan untuk ditransmisikan oleh tiap aliran data pada suatu rentang waktu. Blok data yang ukurannya terbatas ini disebut dengan packet, untuk membedakannya dengan message yang merupakan blok data berukuran besar yang ingin dikirimkan oleh program aplikasi. Konsekuensi dari hal ini adalah bahwa host tidak dapat mengirimkan message lengkap dalam satu packet. Pengirim mungkin harus melakukan fragmentasi terhadap message menjadi beberapa packet yang kemudian akan kembali di-reassembly oleh penerima menjadi message semula. Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
9 Jaringan Komputer
Dengan kata lain, aliran data yang diperbolehkan mengirimkan urutan packet melalui link fisik ditentukan packet per packet. Jika hanya satu aliran data yang memiliki data, maka aliran tersebut berhak menggunakan link fisik sepenuhnya. Amun jika lebih dari satu aliran data yang ingin mengirimkan data, maka packet dari seluruh aliran data akan dikirimkan saling berseling (interleaved). Gambar 1.5 mengilustrasikan multiplexing aliran data dari beberapa host melalui satu link fisik.
Gambar 1.5. Switch melakukan multiplexing beberapa aliran data
Packet dari aliran data mana yang akan ditransmisikan melalui link fisik dapat ditentukan dengan berbagai cara. Sebagai contoh, untuk jaringan seperti pada Gambar 1.4, keputusan berada ditangan switch yang mentransmisikan packet ke shared-link. (Tidak semua packet switched network benar-benar menggunakan switch, dalam kasus tersebut digunakan mekanisme lain untuk menentukan packet mana yang akan ditransmisikan lewat link). Tiap switch dalam packet switched network menentukan hal ini secara independen atas dasar packet per packet. Satu masalah bagi perancang jaringan adalah menjamin keadilan dalam mekanisme penentuan ini. Sebagai contoh, switch mungkin dirancang untuk melayani seluruh aliran data dengan aturan RoundRobin, sebagaimana STDM. Namun demikian, statistical multiplexing tidak membutuhkan pendekatan Round-Robin, pilihan lain yang dapat dianggap valid adalah algoritma FIFO (First In First Out). Sebagaimana terlihat pada Gambar 1.5, bisa jadi switch menerima packet lebih cepat daripada yang dapat diakomodasi oleh link. Konsekuensinya, switch harus menyediakan penampung sementara untuk packet yang belum terlayani. Jika kondisi ini terus terjadi, lama kelamaan penampung sementara (buffer) pada switch akan penuh dan packet yang datang kemudian terpaksa harus dibuang. Kondisi ini dikenal dengan istilah congestion.
C.Fungsionalitas Tuntutan sederhana terhadap jaringan komputer adalah jaringan dapat menyediakan suatu layanan sehingga sekumpulan proses (aplikasi) yang terdistribusi pada sejumlah komputer dapat saling berkomunikasi dengan baik. Ketika dua program aplikasi ingin berkomunikasi, ada banyak hal rumit yang terjadi selain hanya
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
10 Jaringan Komputer
sekedar mengirimkan message dari satu host ke host yang lain. Perancang aplikasi dapat saja menyertakan seluruh fungsi rumit tersebut pada tiap aplikasi yang akan dibangunnya. Namun karena banyak aplikasi yang memerlukan layanan umum yang sama, maka akan lebih masuk akal untuk mengimplementasikan layanan-layanan tersebut sekali saja yang kemudian perancang aplikasi dapat membangun aplikasi diatas layanan-layanan tersebut. Tantangan bagi perancang jaringan adalah mengidentifikasi himpunan yang tepat dari layanan umum tersebut. Tujuan utamanya adalah menyembunyikan kompleksitas jaringan dari aplikasi tanpa terlalu membatasi perancang aplikasi. Secara intuitif, jaringan dapat dipandang sebagai penyedia kanal lojik dimana proses-proses (pada level aplikasi) dapat saling berkomunikasi, dengan layanan yang disesuaikan dengan kebutuhan aplikasi. Sebagaimana simbol awan (cloud) digunakan secara abstrak untuk mewakili keterhubungan sekumpulan komputer, maka kanal digunakan untuk mewakili keterhubungan satu proses dengan proses lainnya. Gambar 1.6 mengilustrasikan dua buah proses pada level aplikasi yang berkomunikasi menggunakan kanal lojik yang diimplementasikan diatas cloud (jaringan) yang menghubungkan sekumpulan host. Host
Host
Aplikasi
kanal lojik
Host Aplikasi
Host
Host
Gambar 1.6. Proses saling berkomunikasi via kanal lojik
Yang menjadi masalah utama adalah menentukan layanan apa saja yang harus disediakan oleh kanal lojik tersebut kepada program aplikasi. Sebagai contoh, apakah aplikasi membutuhkan jaminan bahwa message yang dikirimkan melalui kanal pasti diterima dengan baik diujung lainnya ataukah ada toleransi terhadap kesalahan / kegagalan beberapa pengiriman message? Apakah message yang diterima di sisi tujuan harus dalam urutan yang sama dengan saat dikirimkan ataukah tujuan tidak mempedulikanurutan kedatangan message? Apakah jaringan harus menjamin bahwa
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
11 Jaringan Komputer
tidak ada pihak ketiga yang dapat menyadap data yang dikirimkan melalui suatu kanal ataukah memang kerahasian bukan merupakan suatu hal yang diperhatikan oleh aplikasi? Secara umum, jaringan menyediakan berbagai macam kanal, dimana aplikasi dapat memilih sesuai dengan kebutuhannya. Merancang kanal abstrak terdiri dari tiga fase, yaitu : mengerti kebutuhan aspek komunikasi dari sekumpulan aplikasi yang representatif, melakukan ekstraksi kebutuhan umum komunikasi dari kumpulan aplikasi tersebut dan yang terakhir menyusun fungsionalitas jaringan yang dapat memenuhi kebutuhan tersebut. Sebagai ilustrasi, diambil contoh aplikasi akses file (contoh : FTP). Meskipun ada beberapa perbedaan dalam detil –contohnya : saat suatu file dibaca atau ditulis, bisa saja keseluruhan file dikirimkan lewat jaringan atau bisa juga dikirimkan per blok--, komponen komunikasi dari remote file access tersusun atas sepasang proses. Satu sebagai client yang meminta layanan akses file, dan yang kedua adalah server yang melayani dan melakukan akses ke file. Pada pembacaan file, client mengirimkan message kecil berisi request ke server kemudian server akan merespon dengan message besar berisi data dalam file tersebut. Sebaliknya pada proses penulisan ke file, client-lah yang mengirimkan message besar berisi data yang akan dituliskan ke dalam file, sementara respon dari server hanyalah message kecil berisi konfirmasi bahwa proses penulisan telah dilaksanakan. Aplikasi lain yang mulai populer dan banyak digunakan adalah Digital Library. Aplikasi ini memiliki karakteristik yang mirip dengan remote file access. Seiring dengan perkembangan WWW, jenis data yang diakses lewat digital library juga semakin beragam (file teks berukuran kecil, gambar digital berukuran besar dan objek-objek multimedia lainnya), namun demikian pola komunikasinya mirip dengan FTP yang telah dijelaskan sebelumnya : proses client mengirimkan request kemudian proses server akan memberikan respon dengan mengirim data yang diminta. Kelas aplikasi lain yang juga mulai populer adalah streaming video. Meskipun file video dapat saja di-download terlebih dahulu (misalnya dengan FTP) baru kemudian dimainkan, namun hal ini terasa kurang nyaman, mengingat seluruh data video harus sudah di-download secara lengkap baru bisa dimainkan. Dengan teknologi streaming, frame video yang dikirimkan oleh server melalui jaringan akan dapat langsung ditampilkan begitu telah diterima oleh client. Video sebenarnya bukanlah sebuah aplikasi, melainkan suatu jenis tipe data. Data video bisa jadi merupakan bagian dari aplikasi video-on-demand atau teleconferencing. Meskipun mirip, kedua aplikasi tersbut memiliki perbedaan yang cukup mencolok. Pada kasus video-on-demand, tidak ada batasan waktu yang sangat ketat. Sebagai contoh, adalah masih dalam batas toleransi jika ada selang waktu 10 detik antara pengguna mulai menjalankan video dengan tampilnya frame pertama. Sebaliknya, teleconferencing memiliki batasan waktu yang sangat ketat. Sebagaimana dengan interaksi lewat telepon yang menuntut suara dari pengucap sesegera mungkin dapat diterima oleh pendengar, maka komunikasi visul lewat
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
12 Jaringan Komputer
teleconferencing juga menuntut setiap frame yang dibangkitkan oleh sumber sesegera mungkin diterima dan ditampilkan di tujuan.Penambahan delay yang terlalu besar tidak dapat ditolelir dalam kasus ini. Komunikasi yang bersifat interaktif mengharuskan adanya aliran data video dua arah, sementara video-on-demand hanya mengailrkan data video dalam satu arah. Dengan empat contoh aplikasi diatas sebagai contoh yang representatif, dapat disimpulkan bahwa ada dua jenis kanal yang harus disediakan dalam jaringan, yakni : kanal request/reply dan kanal message stream. Kanal yang pertama akan digunakan oleh aplikasi file transfer dan digital library. Kanal ini akan menjamin bahwa setiap message yang dikirimkan oleh sumber akan dapat diterima dengan baik oleh tujuan dan hanya satu salinan message yang akan diterima oleh tujuan. Kanal ini juga dapat mejamin kerahasiaan dan integritas data yang mengalir didalamnya, sehingga tidak ada pihak lain (pihak ketiga) yang dapat menyadap atau mengubah informasi yang dipertukarkan antara client dan server. Kanal jenis kedua akan digunakan oleh videoon-demand dan teleconferencing, mendukung aliran data searah maupun dua arah dan mendukung berbagai properti delay. Kanal ini mungkin tidak harus menjamin bahwa setiap message yang dikirimkan akan dapat diterima dengan baik, karena aplikasi video tetap dapat beroperasi dengan baik (dengan penurunan kualitas dalam batas toleransi) meskipun ada beberapa frame yang hilang. Meski demikian, ada tuntutan bahwa urutan frame yang diterima haruslah sama dengan urutan saat dikirimkan. Dimungkinkan juga kanal jenis ini menjamin kerahasiaan dan integritas data video. Jika dimungkinkan adanya lebih dari satu peserta dalam teleconferencing atau ada lebih dari satu pengguna yang ingin menonton suatu video pada video-on-demand, maka kanal harus pula mendukung multicast. Memiliki jenis kanal abstrak sesedikit mungkin yang dapat melayani aplikasi sebanyak mungkin mungkin adalah impian para perancang jaringan. Namun ada bahaya dibalik angan-angan tersebut. Seperti pepatah yang mengatakan “If you hold a hammer, then everything looks like a nail”. Jika yang dimiliki haya kanal request/reply dan message stream saja, maka besar kemungkinan setiap aplikasi yang membutuhkan layanan jaringan akan dipaksa mengirimkan datanya melalui satu dari kedua jenis kanal tersebut, meski sebetulnya kebutuhan aplikasi tidak dapat dipenuhi oleh keduanya. Dengan demikian perancang jaringan sangat mungkin harus menemukan jenis kenal baru atau memodifikasi jenis kanal yang sudah ada untuk dapat memenuhi kebutuhan aplikasi. Sebagaimana terlihat dari contoh-contoh diatas, penghantaran message yang handal merupakan salah satu fungsi penting yang bisa disediakan jaringan. Agak sulit untuk dapat menjamin kehandalan pengiriman data tanpa terlebih dahulu mengetahui faktor-faktor yang dapat menyebabkan kegagalan / kesalahan di dalam jaringan. Hal pertama yang dapat dikenali dengan mudah adalah fakta bahwa jaringan tidak eksis dalam dunia yang serba sempurna. Mesin kadang crash, fiber optic putus, interferensi elektromagnetik menyebabkan rusaknya bit-bit data dan kadang kala software yang mengatur perangkat juga bermasalah. Dengan demikian tuntutan utama terhadap jaringan adalah untuk menutupi hal-hal tersebut, sehingga jaringan akan tampak Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
13 Jaringan Komputer
handal dari sudut pandang aplikasi. Ada tiga kegagalan utama yang harus diperhatikan oleh perancang jaringan. Yang pertama, saat packet ditransmisikan melalui link fisik, bit error mungkin terjadi (bit 1 berubah menjadi 0 atau sebaliknya). Kadangkala hanya satu bit yang rusak, namun yang lebih sering terjadi adalah burst error, dimana beberapa bit yang berurutan mengalami kerusakan. Bit error biasanya terjadi karena adanya energi eksternal (misalnya halilintar dan surge –perubahan drastis voltase listrik secara tibatiba--) yang berinterferensi dengan sinyal transmisi data. Bit error ini sangat jarang terjadi; probabilitas terjadinya sekitar 10-6 sampai 10-7 pada kabel tembaga dan sekitar 10-12 sampai 10-14 pada fiber optic. Ada beberapa cara untuk mendeteksi kerusakan pada bit (dengan probabilitas tertentu). Jika telah terdeteksi posisi kesalahannya, maka memperbaikinya adalah perkara mudah (cukup dengan mengubah bit 1 menjadi 0 atau sebaliknya). Namun kadang kerusakan sedemikian parah sehingga keseluruhan bit penyusun suatu packet harus dibuang, pada kasus ini sumber mungkin harus mengirimkan ulang (retransmisi) packet tersebut. Jenis kegagalan kedua yang mungkin muncul adalah pada level packet, yakni hilangnya packet oleh sesuatu sebab dalam jaringan. Salah satu penyebabnya adalah packet memuat bit error yang tidak dapat diperbaiki, dengan demikian packet tersebut harus dibuang. Penyebab lainnya mungkin berkaitan dengan software, misalnya pengontrol switch melakukan kesalahan (meneruskan packet melalui link yang salah sehingga packet tidak akan pernah sampai ke tujuan). Namun penyebab yang paling umum adalah kondisi overload (tidak ada tempat untuk menyimpan packet dalam buffer node jaringan) sehingga packet harus dibuang. Ini sebetulnya identik dengan kasus congestion yang telah disebutkan sebelumnya. Masalah yang cukup rumit berkaitan dengan kehilangan packet adalah menentukan apakah packet betul-betul hilang ataukah hanya terlambat sampai tujuan. Jenis kegagalan yang ketiga terjadi pada level node dan link, misal : putusnya link secara fisik atau komputer mengalami kerusakan (crash). Hal ini bisa disebabkan oleh kesalahan software, power supply, atau kesalahan operator. Meski kegagalan jenis ini biasanya tidak melumpuhkan seluruh jaringan dan dapat segera diatasi, namun untuk beberapa kasus bisa memberikan dampak buruk bagi jaringan pada rentang waktu tertentu (contoh : dalam packet switched network mungkin dilakukan pembelokan rute dari link atau node yang rusak). Yang perlu digarisbawahi dari penjelasan diatas adalah pendefinisian kanal melibatkan aspek pengetahun tentang kebutuhkan aplikasi dan keterbatasan teknologi jaringan yang digunakan. Tantangan utamanya adalah menjembatani (kadang juga harus mengkompromikan) kesenjangan diantara keduanya.
D.Unjuk Kerja Seperti halnya sistem komputer yang lain, jaringan komputer juga diharapkan
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
14 Jaringan Komputer
memiliki unjuk kerja yang tinggi, atau mungkin yang lebih penting lagi adalah tingginya unjuk kerja per unit cost. Komputasi terdistribusi memanfaatkan jaringan untuk saling bertukar informasi. Efektifitas komputasi seringkali sangat bergantung pada efisiensi pengiriman informasi melalui jaringan. Unjuk kerja jaringan (utamanya) diukur menggunakan dua besaran, yakni : bandwidth (meski nantinya akan diwakili oleh besaran faktual throughput) dan latency. Bandwidth jaringan adalah jumlah bit yang dapat ditransmisikan melalui jaringan dalam rentang waktu tertentu. Sebagai contoh, jaringan yang memiliki bandwidth 10 juta bit per detik (10 Mbps) akan dapat menyalurkan 10 juta bit tiap detiknya. Jaringan ini akan membutuhkan waktu 0,1 mikro detik untuk mentransmisikan satu bit. Lebih persisnya, bandwidth dapat dipandang pada level link fisik maupun kanal lojik process-to-process. Bandwidth pada level fisik tampaknya senantiasa mengalami peningkatan. Secara intuitif, jika waktu dapat dipandang sepadan dengan jarak yang dapat diukur (dengan satuan meter) dan bandwidth menunjukkan jumlah bit yang dapat dimuat dalam jarak tersebut, maka setiap bit dapat dibayangkan sebagai pulsa dengan lebar tertentu. Sebagai contoh, tiap bit dalam link 10 Mbps memiliki lebar 1 mikro detik, sementara tiap bit dalam link 2 Mbps akan memiliki lebar 0,5 mikro detik, seperti diilustrasikan pada Gambar 1.7. Semakin canggih teknologi pengiriman dan penerimaan, maka akan semakin sempit ukuran tiap bit, yang otomatis akan meningkatkan bandwidth. Pada level kanal lojik, bandwidth dipengaruhi juga oleh faktor software yang mengimplementasikan kanal (misal : kemampuan untuk mengolah –mengirim atau menerima– bit data tiap detik).
a)
b)
Gambar 1.7. Lebar bit yang ditransmisikan pada link : a) 1 Mbps b) 2 Mbps
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
15 Jaringan Komputer
Dalam dunia komunikasi analog (contoh : jaringan telepon analog), bandwidth berkaitan dengan rentang frekwensi yang dipunyai oleh link. Misalnya suatu link mendukung sinyal dengan frekwensi antara 300 Hz hingga 3300 Hz, maka dapat dikatakan bandwidth dari link tersebut adalah 3300 Hz – 300 Hz = 3000 Hz. Pada link digital, bandwidth mengacu pada jumlah bit yang dapat ditransmisikan melalui link tersebut tiap detiknya. Pada prakteknya, selalu ada perbedaan antara bandwidth yang tersedia pada link dengan jumlah bit yang dapat ditransmisikan secara faktual tiap detiknya. Istilah throughput digunakan untuk mewakili unjuk kerja terukur (faktual) pada suatu jaringan.
Metrik unjuk kerja yang kedua adalah latency , yang merupakan ukuran waktu yang dibutuhkan oleh sebuah bit untuk berjalan dari satu ujung jaringan ke ujung yang lainnya. Sebagaimana bandwidth, hitungan latency juga dapat difokuskan pada level link fisik atau pada level kanal lojik. Sebagai contoh, jaringan transkontinental memiliki latency 24 mili detik, artinya tiap bit membutuhkan waktu 24 mili detik untuk berjalan dari satu ujung jaringan di suatu negara sampai ke ujung jaringan di negara yang lain. Selain latency dengan pengertian diatas, ukuran yang juga sering digunakan adalah waktu yang dibutuhkan oleh satu bit untuk berjalan dari satu ujung jaringan ke ujung lain kemudian kembali lagi. Latency ini disebut dengan RTT (Round-Trip Time) dari jaringan. Ada tiga komponen utama latency, yakni : propagation delay, transmision delay dan queueing delay. Propagation delay muncul karena hukum fisika membatasi kecepatan tertinggi sesuatu (termasuk bit dalam medium) sama dengan kecepatan cahaya. Jika diketahui jarak dua titik maka dapat dicari latency dari satu ujung ke ujung lainnya, meski harus hati-hati karena cahaya merambat 3,0 x 108 meter per detik dalam ruang hampa, 2,3 x 108 dalam kawat dan 2,0 x 108 dalam fiber. Transmission delay merupakan fungsi dari bandwidth jaringan dan ukuran packet data yang dikirimkan. Queueing delay muncul karena secara umum node dalam jaringan perlu menyimpan (store) dahulu packet yang diterima sebelum meneruskannya (forward). Latency total dapat dirumuskan sebagai berikut : Latency = Propagation + Transmission + Queueing Propagation = Jarak / Kecepatan rambat (tergantung medium) Transmission = Ukuran data / bandwidth
Kombinasi bandwidth dan latency secara bersama mendefinisikan karakteristik unjuk kerja dari suatu link atau kanal. Tingkat kepentingannya tergantung pada
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
16 Jaringan Komputer
kebutuhkan aplikasi. Untuk suatu kasus mungkin latency lebih dominan dibanding bandwidth, contohnya : client yang mengirimkan 1 byte request ke server dan menerima 1 byte response akan lebih dipengaruhi oleh latency. Dengan asumsi tidak ada komputasi serius yang harus dilakukan untuk mempersiapkan respon, maka aplikasi tersebut akan memberikan unjuk kerja yang berbeda saat melewati jaringan lintas negara dengan RTT 100 mili detik dibanding jika melewati jaringan lokal dengan RTT 1 mili detik. Namun demikian, bandwidth jaringan sebesar 1 Mbps atau 100 Mbps tidaklah terlalu signifikan, karena transmission delay pada kedua jaringan adalah 8 mikro detik dan 0,08 mikro detik. Sebaliknya, untuk program digital library yang harus mengirim gambar sebesar 25 MB, semakin besar bandwidth yang dimiliki jaringan maka semakin cepat gambar diterima dengan lengkap oleh client. Pada kasus ini, bandwidth lebih dominan dibanding latency. Misalkan suatu kanal memiliki bandwidth 10 Mbps, maka akan dibutuhkan 20 detik untuk mentransmisikan keseluruhan gambar. Sementara latency 1 mili detik atau 100 mili detik tidak terlalu signifikan, karena masing-masing akan memberikan response time 20,001 detik dan 20,1 detik. Ada hal sepele (namun penting) yang harus mendapat perhatian saat berinteraksi dengan unit satuan yang berhubungan dengan jaringan komputer –KB, Kbps, MB, Mbps dll–. Yang pertama adalah perbedaan antara bit dengan byte. Konsensus yang digunakan biasanya menggunakan 'b' untuk melambangkan bit dan 'B' untuk melambangkan byte. Yang kedua adalah definisi kilo, mega, giga dan seterusnya yang harus disesuaikan dengan konteksnya. Sebagai contoh, kilo dapat berarti 210 atau 103 dan mega dapat berarti 220 atau 106. Kedua definisi tersebut digunakan dalam jaringan komputer. Bandwidth jaringan (yang biasanya dinyatakan dalam satuan Mbps) biasanya diatur oleh kecepatan clock yang menentukan kecepatan transmisi bit-bit kedalam jaringan. Clock dengan frekwensi 10 megahertz (10 Mhz) digunakan untuk mentransmisikan bit dengan kecepatan 10 Mbps. Karena mega dalam Mhz berarti 106 hertz, maka Mbps juga didefinisikan sebagai 106 bit tiap detik. Di sisi lain, saat berbicara tentang message yang akan ditransmisikan, ukuran yang digunakan seringkali juga megabyte (MB). Karena message tersimpan dalam memori komputer sebelum dikirimkan (dimana kapasitas memori biasa dinyatakan dalam satuan pangkat dari dua –power of two–), maka mega disini berarti 220.
Perkalian dua metrik diatas juga merupakan sesuatu besaran yang penting, seringkali disebut dengan istilah delay x bandwidth product. Secara intuitif, jika dibayangkan bahwa latency adalah panjang suatu 'pipa' kanal sementara bandwidth Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
17 Jaringan Komputer
sebagai penampangnya (lihat Gambar 1.8), maka perkalian keduanya akan sepadan dengan volume dari kanal (jumlah bit yang dapat dimuat didalamnya). Sebagai contoh, suatu jaringan transkontinental dengan delay (dari ujung ke ujung) sebesar 50 mili detik dan bandwidth 45 Mbps akan dapat memuat 50 x 10-3 detik x 45 x 106 bit / detik = 2,25 x 106 bit, atau mendekati 280 KB.
Gambar 1.8. Kanal sebagai sebuah 'pipa'
Delay x bandwidth product sangat penting terutama dalam pembangunan jaringan dengan unjuk kerja tinggi karena berkaitan dengan jumlah bit yang dapat dikirimkan oleh sumber sebelum tujuan menerima bit pertama. Jika pengirim mengharapkan tujuan memberikan konfirmasi saat bit pertama telah diterima dengan baik, maka akan dibutuhkan waktu tambahan yang sama dengan pengirimannya dari sumber (inilah alasan mengapa RTT merupakan besaran yang penting berkaitan dengan latency). Dalam kasus ini, sumber akan dapat mengirimkan data sebanyak dua kali delay x bandwidth product sampai menerima konfirmasi tersebut.Demikian pula saat penerima meminta pengirim untuk menghentikan pengiriman data, maka sejak adanya pengiriman permintaan hingga pengirim menerima permintaan tersebut dan menghentikan pengiriman data, telah ada data sebanyak 5,5 x 106 bit yang terkirimkan melalui link tersebut. Sampai disini unjuk kerja masih diartikan dari sudut pandang jaringan, yakni layanan apa yang akan disediakan oleh link atau kanal. Asumsi yang digunakan adalah bahwa kebutuhan aplikasi sangat sederhana, yakni bandwidth terbesar yang dapat disediakan oleh jaringan. Hal ini dapat diterima untuk beberapa jenis aplikasi, termasuk digital library (saat men-download gambar 25 MB, maka semakin besar bandwidth yang tersedia, akan semakin cepat respon yang didapat pengguna). Sementara itu, ada jenis aplikasi yang dapat memberikan batas tertinggi bandwidth yang dibutuhkannya. Sebagai contoh, aplikasi video yang tiap detik mentransmisikan 30 frame video dengan ukuran masing-masing 128 KB akan membutuhkan bandwidth 32 Mbps. Dalam kasus ini, meski jaringan dapat memberikan layanan dengan bandwidth yang lebih besar tidak akan terlalu berpengaruh pada unjuk kerja aplikasi. Pada kenyataannya, (untuk kasus aplikasi video diatas) yang terjadi tidaklah sesederhana seperti yang dibayangkan. Karena perbedaan antara dua frame yang berurutan seringkali tidak terlalu banyak, maka dimungkinkan untuk hanya mengirimkan informasi perubahan yang terjadi pada frame berikutnya (bukan
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
18 Jaringan Komputer
keseluruhan data dalam frame tersebut). Format data video terkompresi seperti ini bukan merupakan aliran data yang memiliki rate konstan, melainkan bervariasi tergantung dari banyak faktor (misal : banyaknya pergerakan dan tingkat kerincian dari gambar serta algoritma kompresi yang digunakan). Dengan demikian kebutuhan bandwidth yang bisa didefinisikan adalah kebutuhan rata-rata. Yang perlu diperhatikan disini adalah bahwa kebutuhan rata-rata sebesar x Mbps tidak berarti bahwa setiap saat aplikasi tersebut akan membutuhkan bandwidth sebesar x Mbps. Sebagai contoh, video yang digunakan dalam aplikasi tersebut dapat dikompres hingga kebutuhan rata-rata bandwidth adalah 2 Mbps. Detik pertama data yang dikirimkan sebesar 3 Mbit sedangkan pada detik kedua sebesar 1 Mbit, maka meskipun secara rata-rata dibutuhkan bandwidth 2 Mbps, hal ini akan mejadi masalah jika jaringan hanya dirancang untuk bisa mengirimkan data tidak lebih dari 2 Mbit per detiknya. Jelas bahwa pengetahuan tentang kebutuhan bandwidth rata-rata dari aplikasi saja belum mencukupi. Pengetahuan yang dibutuhkan adalah batas atas ukuran burst yang akan ditransmisikan oleh aplikasi. Burst dapat diartikan sebagai suatu rate tertinggi (peak rate) pada suatu selang waktu tertentu, atau bisa juga dideskripsikan sebagai jumlah data yang mungkin ditransmisikan pada peak rate sebelum akhirnya kembali lagi ke rate rata-rata atau yang lebih rendah. Jika peak rate lebih besar daripada kapasitas kanal yang tersedia, maka kelebihan data harus disimpan sementara di buffer untuk ditransmisikan kemudian. Pengetahuan akan ukuran burst memungkin perancang jaringan untuk mengalokasikan buffer dengan ukuran yang cukup untuk menampung kelebihan data akibat burst ini. Analog dengan kebutuhan bandwidth yang bisa lebih rumit daripada hanya sekedar “kapasitas terbesar yang dapat disediakan”, maka kebutuhan aplikasi akan delay juga bisa lebih rumit daripada hanya sekedar “delay sekecil mungkin”. Pada kasus delay, kadangkala masalah yang timbul akibat perbedaan latency (satu arah) sebesar 100 mili detik dengan 500 mili detik tidak terlalu memusingkan sebagaimana halnya perbedaan latency yang dialami satu packet dengan packet yang lain. (Variansi latency ini dikenal dengan istilah jitter) Sebagai contoh, suatu aplikasi mengirimkan data (packet) tiap 33 mili detik (misalnya contoh aplikasi video diatas yang mengirimkan 30 frame setiap detiknya). Jika packet tiba di tujuan dengan selang yang tetap sebesar 33 mili detik, maka dapat dikatakan bahwa delay yang dialami tiap packet sama besar. Sebaliknya, jika waktu antar kedatangan packet tidak sama besar (disebut interpacket gap), maka dapat disimpulkan bahwa delay yang dialami oleh tiap packet tidak sama, dan dikatakan bahwa jaringan memberikan jitter kepada aliran packet. Jitter tidak akan terjadi pada link fisik tunggal, fenomena ini terjadi karena packet mengalami delay antrian (queueing delay) yang berlainan dalam multihop packet-switched network. Untuk melihat arti penting dari jitter, umpamakan bahwa packet yang dikirimkan melalui jaringan memuat data video, yang mana untuk dapat ditampilkan dengan baik, host tujuan harus menerima packet baru (yang memuat frame baru) tiap 33 mili detik. Jika frame tiba terlalu cepat, mungkin tujuan dapat terlebih dahulu
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
19 Jaringan Komputer
menyimpannya sampai tiba waktunya untuk ditampilkan. Masalah akan muncul jika ternyata frame terlambat tiba di tujuan, sehingga tidak tersedia data yang dibutuhkan untuk me-refresh layar (akibatnya kuailtas video akan menurun). Pada prakteknya tidak mudah untuk menghilangkan jitter. Lebih ekstrimnya bahkan jitter tidak perlu dihilangkan, cukup perlu diketahui batas atas dan batas bawahnya. Dengan demikian (pada kasus aplikasi video diatas) penerima dapat mengatur penampilan data sedemikian sehingga kualitas tampilan tidak akan terpengaruh oleh jitter (misalnya dengan menunda penampilan frame pertama dan menyediakan buffer yang cukup).
Arsitektur Jaringan Layering dan Protokol Jaringan komputer bukanlah sesuatu yang statis. Jaringan harus dapat dengan mudah beradaptasi dengan perkembangan teknologi pembangunnya dan perubahan tuntutan aplikasi. Hal ini menjadikan perancangan jaringan bukan hal yang mudah.Untuk menghadapi kerumitan ini, para perancang jaringan telah membangun suatu pola umum –biasanya dikenal dengan istilah arsitektur jaringan– yang memandu perancangan dan implementasi jaringan. Saat suatu sistem menjadi sedemikian kompleks, maka perancang sistem akan menggunakan level abstraksi yang lain. Ide di balik abstraksi ini adalah untuk mendefinisikan suatu model yang mewakili aspek-aspek penting dari sistem, membungkus (encapsulate) model tersebut dalam suatu objek dan menyediakan antar muka (interface) yang dapat dimanipulasi oleh komponen lain dalam sistem sementara itu menyembunyikan detil tentang implementasi objek tersebut dari penggunanya. Suatu tantangan yang harus dihadapi adalah menemukan abstraksi yang dapat digunakan dalam segala macam situasi sekaligus dapat diimplementasikan dengan efisien menjadi sebuah sistem.Hal ini sebenarnya telah dilakukan saat diperkenalkannya ide tentang kanal yang menyembunyikan kerumitan jaringan dari pandangan pembangun aplikasi. Abstraksi secara alami membawa pada ide layering, terutama dalam sistem jaringan. Ide dasarnya adalah sebagai berikut : segalanya dimulai dari layanan yang ditawarkan oleh perangkat keras, kemudian ditambahkan layer demi layer diatasnya dengan masing-masing menawarkan level layanan yang lebih tinggi (dan semakin abstrak). Layanan (service) yang disediakan oleh suatu layer diimplementasikan dengan memanfaatkan layanan dari layer dibawahnya. Dari penjelasan tentang kebutuhan (requirement) pada bagian sebelumnya, maka jaringan dapat dibayangkan sebagai dua layer yang diapit oleh layer aplikasi diatas dan layer perangkat keras (hardware) dibawah, seperti terlihat pada Gambar 1.9. Layer hubungan host-ke-host yang tepat berada diatas layer perangkat keras memberikan abstraksi yang menutupi kerumitan topologi jaringan yang menghubungkan antar host. Layer diatasnya dibangun diatas layanan hubungan host-ke-host yang telah terbentuk dan menyediakan dukungan terhadap kanal proses-ke-proses, memberikan abstraksi yang Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
20 Jaringan Komputer
menutupi kenyataan yang terjadi di jaringan (contoh : kemungkinan hilangnya message).
Aplikasi Kanal proses-ke-proses Hubungan host-ke-host Perangkat Keras Gambar 1.9. Contoh layer pada sistem jaringan
Skema layering menyediakan dua keuntungan. Yang pertama, dekomposisi masalah pembangunan jaringan menjadi komponen-komponen yang lebih mudah ditangani. Daripada membangun sebuah modul perangkat lunak monolithic yang melakukan semua fungsi, adalah lebih mudah mengimplementasikan beberapa layer, yang mana masing-masing menangani sebagian masalah. Yang kedua, menyediakan model untuk melakukan perancangan secara modular. Jika diperlukan tambahan layanan baru, maka hanya perlu melakukan modifikasi terhadap satu layer, dengan tetap mempertahankan fungsi dari layer yang lain. Memandang sistem jaringan sebagai tumpukan layer linear mungkin terlalu menyederhanakan masalah. Bisa jadi ada lebih dari satu jenis abstraksi yang berada pada satu layer dimana masing-masing menyediakan layanan yang berbeda kepada layer diatasnya. Sebagai contoh : dua jenis kanal yang telah dijelaskan sebelumnya yakni kanal dengan layanan request/reply dan kanal dengan layanan message stream. Kedua kanal tersebut merupakan alternatif yang disediakan jaringan pada layer kanal proses-ke-proses, sehingga skemanya akan terlihat seperti pada Gambar 1.10. Dengan bekal konsep layering ini, berikutnya akan dijelaskan lebih detail tentang arsitektur jaringan. Sebagai permulaan, objek abstrak penyusun layer dalam sistem jaringan disebut dengan protocol. Protokol menyediakan layanan komunikasi yang dapat digunakan oleh objek-objek pada level yang lebih tinggi (proses aplikasi atau protokol lain yang levelnya lebih tinggi) untuk saling bertukar message. Sebagai contoh, protokol request/reply akan berkoresponden dengan kanal request/reply, sementara protokol message stream berkoresponden dengan kanal message stream.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
21 Jaringan Komputer
Aplikasi Kanal request/reply
Kanal message stream
Hubungan host-ke-host Perangkat Keras Gambar 1.10. Layering dengan abstraksi alternatif
Tiap protokol mendefinisikan dua antar muka (interface). Yang pertama adalah service interface ke objek lain dalam komputer yang sama yang ingin menggunakan layanan komunikasi yang ditawarkannya. Interface ini mendefinisikan operasioperasi yang dapat dilakukan oleh objek lokal terhadap protokol tersebut, sebagai contoh : protokol request/reply menyediakan operasi yang memungkinkan aplikasi untuk dapat mengirim dan menerima message. Yang kedua, protokol mendefinisikan peer interface ke protokol yang sama di mesin yang lain (peer). Definisi ini menentukan cara suatu protokol pada suatu mesin berkomunikasi dengan peer-nya pada mesin yang lain. Dengan kata lain, protokol mendefinisikan layanan komunikasi yang diberikan kepada objek lain secara lokal berikut dengan sekumpulan aturan yang mengendalikan pertukaran message dengan peer-nya untuk mengimplementasikan layanan tersebut. Ilustrasi hal ini dapat dilihat pada Gambar 1.11.
Gambar 1.11. Service dan peer interface
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
22 Jaringan Komputer
Kecuali pada level perangkat keras, dimana entitas di suatu komputer dapat berkomunikasi langsung dengan peer-nya lewat link fisik, komunikasi peer-to-peer dilakukan secara tidak langsung. Tiap protokol berkomunikasi dengan peer-nya dengan melewatkan message ke protokol (objek) di level bawahnya yang akan mengirimkan message tersebut ke peer-nya sendiri. Hal ini terjadi secara rekursif sampai message benar-benar dikirimkan oleh perangkat keras. Karena pada tiap layer mungkin ada lebih dari satu protokol dengan layanan komunikasi yang berbeda-beda, maka kumpulan protokol (protocol suite) yang menyusun jaringan digambarkan dengan protocol graph. Node pada graph merepresentasikan protokol, sementara garis yang menghubungkannya mewakili hubungan ketergantungan. Contoh protocol graph untuk sistem jaringan hipotetik yang telah dijelaskan sebelumnya terlihat pada Gambar 1.12. Protokol RRP (Request/Reply Protocol) dan MSP (Message Stream Protocol) mengimplementasikan dua jenis kanal proses-ke-proses yang berbeda sementara keduanya bergantung pada HHP (Host-to-host protocol) yang menyediakan layanan hubungan host-ke-host.
Digital Library Application
File Application
RRP
Host 1
Video Application
MSP
Digital Library Application
File Application
RRP
HHP
Video Application
MSP
HHP
Host 2
Gambar 1.11. Contoh protocol graph
Dengan protocol graph pada Gambar 1.11, misalkan program pengakses file pada host 1 ingin mengirim message ke peer-nya di host 2 menggunakan layanan komunikasi yang disediakan oleh protokol RRP. Pada kasus ini, aplikasi akan meminta RRP untuk mengirimkan message atas namanya. RRP kemudian akan memanfaatkan layanan HHP untuk berkomunikasi dengan RRP di host 2. HHP inilah Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
23 Jaringan Komputer
yang kemudian akan benar-benar mentransmisikan message ke HHP di host 2. Setelah message diterima oleh HHP di host 2, maka HHP akan meneruskannya ke RRP, yang kemudian akan meneruskan pula ke aplikasi. Secara umum, aplikasi tersebut memanfaatkan layanan dari protocol stack RRP/HHP. Istilah protokol seringkali digunakan untuk mengacu pada dua pengertian. Kadangkala digunakan untuk menyebut antar muka abstrak (yakni operasi-operasi yang didefinisikan dengan service interface dan format message yang dipertukarkan antar peer), namun kadang juga digunakan untuk menyebut modul yang secara aktual mengimplementasikan kedua antar muka tersebut. Untuk membedakannya, digunakan istilah protocol specification untuk menyebut definisi antar muka. Spesifikasi umumnya diekspresikan dengan menggunakan pseudocode, state transition diagram, gambar format packet dilengkapi dengan kalimat penjelas dan notasi abstrak lainnya. Dengan demikian, suatu spesifikasi protokol dapat saja diimplementasikan dengan cara yang berlainan, asal masih tetap sesuai dengan spesifikasinya. Tantangan yang timbul disini adalah menjamin bahwa implementasi yang berbeda dari satu spesifikasi protokol yang sama harus dapat saling berkomunikasi (terjaminnya interoperatibility). Badan standarisasi internasional, seperti IETF (Internet Engineering Task Force) dan ISO (International Standard Organization) telah menyusun kebijakan dalam penyusunan protocol graph untuk mengeliminasi kemungkinan tiap jaringan memiliki protocol graph-nya sendiri. Kumpulan aturan tentang format dan isi dari protocol graph disebut sebagai arsitektur jaringan (network architecture). Badan standarisasi tersebut telah menyusun suatu prosedur untuk membangun, melakukan validasi dan menyetujui penggunaan protokol pada arsitekturnya masing-masing. Sebelum melanjutkan pada arsitektur yang didefinisikan oleh ISO dan IETF, ada dua hal penting yang perlu dipaparkan berkaitan dengan mekanisme protocol graph, yakni :
A.Pembungkusan (encapsulation) Pada Gambar 1.11, saat aplikasi mengirimkan message ke aplikasi peer-nya lewat RRP, maka dari sudut pandang RRP, message tersebut tidak lebih hanyalah serangkaian byte yang tidak dimengerti artinya. RRP tidak peduli terhadap arti dari rangkaian byte tersebut (apakah merepresentasikan array dari bilangan integer, pesan e-mail, gambar digital atau apapun), fokusnya hanyalah pada mengirimkannya ke peer RRP di ujung jaringan yang lain. Untuk dapat melakukan hal tersebut, RRP harus dapat mengkomunikasikan informasi kontrol (berisi instruksi tentang pengelolaan message saat diterima) dengan peer-nya. RRP melakukan hal ini dengan menambahkan header pada message. Header adalah struktur data kecil –berkisar antara beberapa byte sampai beberapa puluh byte) yang digunakan oleh peer protocol untuk saling berkomunikasi. Dari namanya terlihat bahwa header ditempatkan didepan message. Pada beberapa kasus, informasi tambahan ini ditambahkan diakhir
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
24 Jaringan Komputer
message, yang dikenal dengan istilah trailer. Format header yang ditambahkan oleh RRP didefinisikan dalam spesifikasi protokolnya. Setelah message ditambahi dengan header, dikatakan bahwa message tersebut telah dienkapsulasi dalam message baru yang dibuat oleh RRP. Proses enkapsulasi ini berulang pada tiap level dari protocol graph. Pada contoh diatas, HHP akan mengenkapsulasi message yang diterima dari RRP dengan menambahkan header-nya sendiri. Jika kemudian HHP mengirimkan message tersebut lewat jaringan, maka saat message tiba di tujuan, proses yang terjadi merupakan kebalikan dari proses di pengirim. HHP pertama kali akan memisahkan header-nya, melakukan interpretasi (melakukan aksi yang sesuai dengan isi dari header) kemudian meneruskan body dari mesage ke RRP. RRP pun akan melakukan hal yang serupa, sampai akhirnya aplikasi di host 2 menerima message yang sama persis dengan yang dikirimkan oleh aplikasi di host 1. Proses ini diilustrasikan pada Gambar 1.12. Perlu dicatat bahwa node dalam jaringan (misal : switch atau router) bisa juga 'melihat' header HHP. Meskipun protokol pada suatu level tidak melakukan interpretasi terhadap isi message dari level atasnya, namun ada kemungkinan protokol tersebut melakukan transformasi terhadap message, misalnya kompresi atau enkripsi. Dalam kasus ini, protokol akan melakukan transformasi terhadap seluruh byte pada message, termasuk data dari aplikasi dan semua header (dan trailer) yang ditambahkan oleh protokol-protokol diatasnya.
Application Program
Application Program
Data
Data
RRP
RRP
RRP
Data
RRP
HHP
Data
HHP
Host 1
Host 2
HHP
RRP
Data
Gambar 1.12. Enkapsulasi
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
25 Jaringan Komputer
B.Multiplexing dan Demultiplexing Salah satu ide dasar dari packet switching adalah melakukan multiplexing terhadap sejumlah aliran data melalui satu link fisik. Ide yang sama juga digunakan pada protocol graph. Sebagai contoh, pada Gambar 1. 11 RRP dapat dibayangkan sebagai implementasi dari kanal komunikasi lojik dimana message dari dua aplikasi yang berbeda di-multiplex melalui kanal tersebut pada pengirim dan kemudian didemultiplex kembali pada penerima. Hal ini berarti RRP harus tahu persis packet mana saja yang berasal dari aplikasi pertama dan packet mana saja yang berasal dari aplikasi kedua. Informasi ini disimpan dalam header yang turut dikirimkan bersama message. Informasi ini disebut dengan RRP's demultiplexing key (demux key). Pada pengirim, RRP menyisipkan informasi ini pada header, saat penerima menginterpretasi header, demux key digunakan untuk menentukan aplikasi tuan dari message setelah proses demultiplexing. RRP bukanlah satu-satunya protokol yang dapat melakukan multiplexing, hampir semua protokol memiliki kemampuan ini. Melihat contoh diatas, HHP juga dapat melakukan multiplexing dengan menyertakan demux key-nya sendiri untuk menentukan aliran data dari RRP atau dari MSP. Sampai saat ini tidak ada konsensus berkenaan dengan ukuran demux key (bahkan antar protokol dalam suatu arsitektur jaringan yang sama).
Arsitektur OSI ISO adalah organisasi pertama yang secara formal mendefinisikan cara umum untuk menghubungkan komputer (membentuk jaringan). Arsitekturnya yang dikenal dengan nama OSI (Open System Interconnection) mendefinisikan pemilahan fungsionalitas jaringan kedalam tujuh layer (terlihat pada Gambar 1.13). Skema yang terlihat bukanlah protocol graph, namun adalah model referensi untuk protocol graph. ISO (biasanya) bekerja sama dengan badan standarisasi yang lain, yakni ITU (International Telecommunication Union) mempublikasikan beberapa seri spesifikasi protokol berdasar arsitektur OSI. Seri ini sering kali dikenal dengan sebutan “X dot” karena protokol-protokolnya diberi nama dengan diawali “X.”, contohnya : X.25, X400, X.500 dll. Pada kenyataannya ada beberapa jaringan yang berbasis pada standar tersebut, contoh : jaringan publik X.25 dan jaringan privat Tymnet. Physical layer menangani transmisi bit melalui link fisik. Data Link layer mengelompokkan bit-bit menjadi unit yang lebih besar, disebut frame. Network adaptor biasanya mengimplementasikan level data link ini, yang berarti bahwa sesungguhnya frame-lah (bukan rentetan bit) yang dipertukarkan antar host. Network layermenangani routing diantara node dalam jaringan packet-switched. Pada layer ini, unit data yang saling dipertukarkan dikenal dengan istilah packet. Tiga layer terbawah ini diimplementasikan pada seluruh node pada jaringan (baik yang berada 'di dalam' maupun 'di luar' jaringan). Transport layer kemudian mengimplementasikan apa yang selama ini dikenal dengan istilah kanal proses-keFazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
26 Jaringan Komputer
proses. Disini, unit data yang dipertukarkan lebih sering disebut dengan istilah message. Host 1
Host 2
Application
Application
Presentation
Presentation
Session
Session
Transport
Network nodes
Transport
Network
Network
Network
Network
Data Link
Data Link
Data Link
Data Link
Physical
Physical
Physical
Physical
Gambar 1.13. Arsitektur jaringan OSI
Empat layer teratas biasanya hanya terdapat pada host dan tidak pernah muncul pada intermediate nodes. Layer aplikasi meliputi protokol-protokol yang akan langsung berhubungan dengan aplikasi dari pengguna, seperti FTP, HTTP dan lain sebagainya. Presentation layer berhubungan dengan format data yang akan dipertukarkan antara peer (misalnya : apakah data bertipe integer menggunakan 16, 32 atau 64 bit; apakah most significant bit ditransmisikan pertama kali atau terakhir dll). Session layer menyediakan fungsi untuk mengelola gabungan beberapa transport stream yang berasal dari satu aplikasi. Sebagai contoh : pengelolaan stream audio dan stream video yang berasal dari aplikasi teleconference.
Arsitektur Internet Arsitektur Internet, atau yang sering disebut sebagai arsitektur TCP/IP karena dua protokol utamanya itu, terlihat pada Gambar 1.14. Representasi alternatif terlihat pada Gambar 1.15. Arsitektur Internet berkembang dari pengalaman dengan jaringan packet-switched yang disebut ARPANET. Internet dan ARPANET didanai oleh ARPA (Advanced Research Project Agency) yang merupakan salah satu badan penyandang dana untuk riset dan pengembangan pada DoD (Departement of Defense)
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
27 Jaringan Komputer
Amerika Serikat. Internet dan ARPANET telah ada sebelum disusunnya arsitektur OSI, dan pengalaman pembangunan keduanya memberikan sumbangan yang besar terhadap model referensi OSI. HTTP
...
FTP
TFTP
TCP
NV
...
UDP IP
NET1
...
NET2
NETn
Gambar 1.14. Internet protocol graph
Application TCP
UDP IP Network
Gambar 1.15. Representasi alternatif arsitektur Internet
Meski ketujuh layer OSI dapat 'dipaksa' diaplikasikan di Internet, biasanya lebih sering digunakan model empat layer. Level terendah terdiri dari bermacammacam protokol jaringan, yang secara praktis diimplementasikan dengan kombinasi perangkat keras (network adapter) dan perangkat lunak (network device driver). Teknologi jaringan yang digunakan bisa bermacam-macam pada level ini, misalnya Ethernet atau FDDI (Fiber Distributed Data Interface). Protokol-protokol jaringan tersebut mungkin juga tersusun dari beberapa layer namun arsitektur Internet tidak memperdulikan detil di dalamnya. Layer ke-dua hanya terdiri dari satu protokol, yakni IP (Internet Protocol). Protokol inilah yang memungkinkan terjadinya interkoneksi berbagai macam teknologi jaringan dalam sebuah internetwork lojik. Layer ke-tiga memuat dua protokol utama, yakni : TCP (Transmission Control Protocol) dan UDP (User Datagram Protocol). Dengan adanya dua protokol ini, maka aplikasi dapat memilih penggunaan kanal yang sesuai dengan keperluannya.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
28 Jaringan Komputer
TCP menyediakan kanal byte stream yang handal, sementara UDP tidak menjamin kehandalan pengiriman datagram (dapat disinonimkan dengan message). TCP dan UDP seringkali disebut sebagai protokol end-to-end atau protokol transport. Diatas layer transport ada banyak protokol aplikasi, seperti FTP (File Transfer Protocol), HTTP (HyperText Transfer Protocol), TFTP (Trivial File Transfer Protocol), SMTP (Simple Mail Transfer Protocol) dan lain sebagainya, yang memungkinkan terjadinya interoperasi antara berbagai macam aplikasi populer. Untuk memahami perbedaan antara aplikasi dengan protokol aplikasi, dapat diambil contoh berbagai macam web browser (Internet Explorer, Netscape, Mosaic, Lynx dll). Alasan yang memungkinkan penggunaan web browser untuk mengakses suatu situs di WWW (World Wide Web) adalah karena semuanya menggunakan protokol aplikasi yang sama, yakni HTTP. Namun ada juga yang sedikit membingungkan, dimana nama aplikasi sama dengan nama protokol aplikasi, contohnya FTP. Arsitektur Internet memiliki tiga aspek penting yang patut diperhatikan. Pertama, seperti yang terlihat pada Gambar 1.15, arsitektur Internet tidak membatasi skema layering dengan kaku. Aplikasi boleh saja melompati layer transport dan langsung berhubungan dengan layer network (IP). Pada kenyataannya, programmer bebas untuk mendefinisikan abstraksi kanal baru atau membangun aplikasi yang berjalan diatas protokol manapun yang ada. Kedua, jika diperhatikan, protocol graph pada Gambar 1.14 terlihat bentuk seperti jam pasir –lebar di kedua ujung atas dan bawah dan sempit di tengah–. Bentuk ini sesungguhnya merefleksikan filosofi utama dari arsitektur tersebut. IP menjadi titik pusat dari arsitektur, dengan mendefinisikan metode umum untuk pertukaran packet antar jaringan. Diatas IP bisa jadi ada berbagai macam protokol transport, yang masing-masing menawarkan abstraksi kanal yang berbeda kepada aplikasi. Dengan demikian isu pengiriman message dari suatu host ke host lainnya betul-betul dipisahkan dari isu tentang penyediaan layanan komunikasi proses-ke-proses. Dibawah IP, arsitektur membebaskan penggunaan teknologi jaringan (mulai dari point-to-point link, Ethernet, FDDI, bahkan ATM sekalipun). Yang terakhir, atribut dari arsitektur Internet (atau lebih tepat disebut sebagai budaya IETF) adalah bahwa jika seseorang mengajukan usulan protokol baru untuk dimasukkan ke dalam arsitektur, maka selain spesifikasi protokolnya, ia juga harus menyertakan setidaknya satu (lebih baik dua) implementasi yang representatif dari spesifikasinya. Keberadaan implementasi yang bekerja dengan baik menjadi syarat dari standar yang diadopsi oleh IETF. Budaya ini menjamin bahwa protokol-protokol dalam arsitektur tersebut dapat diimplementasikan dengan efisien. Meskipun ada syarat seperti ini, implementasi protokol dalam arsitektur Internet semakin berkembang pesat.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
29 Jaringan Komputer
2
Jaringan-jaringan Terhubung-Langsung
J
aringan terhubung-langsung (directly connected) yang dimaksud adalah
jaringan komputer dimana seluruh host terhubung langsung melalui media fisik. Media bisa berupa kabel tembaga, fiber optik, gelombang elektromagnetik dan lainlain. Cakupan areanya bisa jadi hanya kecil (misal : satu gedung perkantoran) atau mungkin juga mencakup daerah yang luas (misal : transcontinental). Menghubungkan dua atau lebih node dengan media yang sesuai barulah langkah pertama. Setidaknya ada lima persoalan lagi yang harus diatasi sebelum node-node tersebut dapat saling bertukar data. Masalah pertama adalah pengkodean (encoding) bit-bit ke dalam media fisik jaringan sedemikian sehingga akan dapat dimengerti oleh host penerima. Kedua, berkaitan dengan pembatasan (delineating) urutan bit yang ditransmisikan melalui link hingga jelas batas-batas dari tiap message. Persoalan ini seringkali disebut dengan masalah framing, sementara unit data yang telah jelas batas-batasnya dikenal dengan istilah frame. Persoalan ketiga, karena ada kemungkinan frame mengalami kerusakan selama proses transmisi, maka dibutuhkan suatu cara untuk dapat mendeteksi ada tidaknya error dan kemudian melakukan aksi yang sesuai –masalah error detection–. Isu keempat adalah menjadikan link tampak handal (dari sisi pengguna jaringan), meski pada kenyataannya ada kemungkinan terjadi error di dalamnya. Masalah kelima, pada kasus jaringan dimana link digunakan secara bersama (shared) oleh sejumlah host –kebalikan dari point-to-point– perlu dilakukan pengaturan akses ke link (masalah medium access control). Meskipun kelima isu tersebut –encoding, framing, eror detection, reliable delivery dan access mediation– dapat dipaparkan secara abstrak, ada masalahmasalah nyata yang ditangani secara berbeda dengan teknologi jaringan yang berbeda pula. Bab ini berkonsentrasi pada isu-isu diatas pada konteks tiga teknologi jaringan yang spesifik, yaitu : point-to-point, CSMA (Carrier Sense Multiple Access, dengan Ethernet sebagai teknologi yang paling populer) dan Token Ring (dengan mengambil contoh FDDI –Fiber Distributed Data Interface–).
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
30 Jaringan Komputer
Komponen Perangkat Keras Sebagaimana telah dipaparkan pada Bab sebelumnya, jaringan dibangun dari dua kelas komponen perangkat keras, yakni : node dan link. Pernyataan tersebut tidak hanya berlaku untuk jaringan sederhana saja, namun juga untuk jaringan yang kompleks (seperti Internet).
Node Node seringkali berupa komputer general-purpose (seperti halnya PC). Jika diasumsikan bahwa node merupakan mesin sekelas workstation, workstation ini dapat berfungsi sebagai host tempat user menjalankan program aplikasinya atau dapat digunakan ‘di dalam’ jaringan yang berfungsi sebagai switch yang meneruskan message dari satu link ke link yang lain bahkan dapat pula dikonfigurasi untuk dapat berfungsi sebagai router penghubung satu jaringan dengan jaringan lain dalam suatu internetwork. Namun kasus seperti ini jarang terjadi. Node-node di dalam jaringan (switch atau router) biasanya diimplementasikan dengan perangkat keras specialpurpose. Hal ini dilakukan dengan alasan unjuk kerja : perangkat yang dirancangbangun secara khusus akan dapat beroperasi lebih cepat dibanding perangkat generalpurpose. Namun untuk tujuan pembelajaran, terlebih dahulu akan dideskripsikan fungsi-fungsi dasar yang dilakukan oleh node seperti halnya jika fungsi-fungsi tersebut diimplementasikan dengan software pada general purpose workstation, kemudian baru dijelaskan mengapa dan bagaimana implementasinya dengan perangkat khusus.
CPU
Cache Network Adapter
Memory
(Network)
I/O Bus
Gambar 2.1. Arsitektur workstation (disederhanakan) Gambar 2.1 memberikan gambaran sederhana tentang isi dari sebuah workstation. Ada tiga hal yang perlu diperhatikan berkaitan dengan diagram blok tersebut : 1. Ukuran memori yang dimiliki oleh mesin bersifat terbatas. Keterbatasannya di jaringan (aspek lain yang juga terbatas adalah bandwidth) menjadikannya harus dikelola dengan baik agar dapat menyediakan layanan yang adil Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
31 Jaringan Komputer
kepada seluruh pengguna jaringan. Ketersediaan kapasitas memori menjadi sedemikian penting karena node yang bertindak sebagai switch atau router harus terlebih dahulu menyimpan paket-paket data dalam buffer untuk menunggu giliran ditransmisikan melalui outgoing link. 2. Setiap node terhubung ke jaringan melalui network adaptor. Komponen ini terhubung ke I/O bus dan menjadi perantara pengiriman data antara memory dengan link jaringan. Diperlukan adanya software khusus (dikenal dengan nama device driver) pada workstation untuk mengatur komponen ini. Contoh pengaturan yang diberikan adalah memberikan informasi tentang lokasi memory tempat data yang akan ditransmisikan atau tempat menyimpan data yang baru saja diterima. 3. Perkembangan kecepatan CPU tidak seimbang dengan perkembangan kecepatan memory. Secara umum, kecepatan prosesor akan menjadi dua kali lipat dalam waktu 18 bulan, sementara kecepatan memory hanya bertambah 7% tiap tahun. Relevansi dari kenyataan ini adalah bahwa pada node jaringan, kecepatan operasi workstation akan lebih tergantung pada kecepatan memory, bukan pada kecepatan prosesor. Dengan demikian software jaringan harus lebih berhati-hati dalam penggunaan memory (misalnya : berapa kali akses memory harus dilakukan untuk memroses tiap message).
Link Link di jaringan diimplementasikan dengan media fisik yang beragam (twisted pair, coaxial cable, optical fiber dll). Apapun media fisik yang digunakan, tugas utamanya adalah menghantarkan sinyal. Sinyal yang tersusun dari nilai-nilai diskrit, misalnya pulsa listrik (voltase) positif atau negatif, disebut sinyal digital. Link yang digunakan untuk menghantarkan sinyal digital juga disebut dengan link digital. Jenis link yang lain menghantarkan sinyal elektromagnetik kontinyu dalam cakupan tertentu, misalnya line telepon dapat menghantarkan sinyal dengan rentang frekwensi 300 Hz hingga 3300 Hz. Link semacam ini disebut link analog. Link digital dan analog merupakan komponen dasar untuk dapat mentransmisikan segala jenis informasi, termasuk juga yang menjadi fokus dalam komunikasi data, yakni pengiriman data biner (0 dan 1). Data biner tersebut akan dikodekan dalam bentuk sinyal. Modem (modulator/demodulator) adalah perangkat yang digunakan untk mengkodekan data biner menjadi bentuk sinyal analog pada sisi pengirim, dan akan mengubah sinyal analog menjadi data biner kembali pada sisi penerima. Digital transmitter adalah perangkat jaringan yang digunakan untuk mentransmisikan data biner (digital) melalui link digital. Atribut lain dari link adalah berapa banyak aliran bit (bit stream) yang dapat dikodekan ke dalamnya pada suatu saat. Jika hanya satu aliran bit yang bisa, maka node-node yang terhubung padanya harus dapat menggunakan link tersebut secara
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
32 Jaringan Komputer
bersama (access sharing). Untuk link point-to-point seringkali harus ada dua aliran bit yang dapat ditransmisikan pada saat yang bersamaan, keduanya mengalir dengan arah yang berlawanan. Link semacam ini disebut full-duplex. Sementara link point-topoint yang hanya dapat menghantarkan satu arah aliran bit tiap saat, disebut halfduplex, mengharuskan dua node yang terhubung dengan link tersebut menggunakan link secara bergantian. Untuk bahasan-bahasan selanjutnya diasumsikan link yang digunakan selalu bersifat full-duplex. Properti lain dari link adalah batasan jarak yang dapat dihubungkan oleh tiap jenis link. Pada satu sisi, jika node-node yang akan dihubungkan berada pada lingkup geografis yang kecil (satu ruangan, satu gedung atau satu kampus), maka link dapat dibangun sendiri. Jenis media yang digunakan sangat tergantung pada teknologi yang akan digunakan untuk mentransmisikan data melalui link tersebut. Beberapa contoh media yang umum digunakan tertera pada Tabel 2.1. Tabel 2.1. Beberapa jenis media yang umum digunakan Media
Bandwidth tipikal
Jarak
Cat 5 UTP
10 – 100 Mbps
100 m
50-ohm coax (ThinNet)
10 – 100 Mbps
200 m
75-ohm coax (ThickNet)
10 – 100 Mbps
500 m
Multimode fiber
100 Mbps
2 km
Single-mode fiber
100 – 2400 Mbps
40 km
Di sisi lain, jika node-node yang akan dihubungkan secara geografis terpisah jauh, maka sangat tidak praktis jika link yang menghubungkannya dibangun sendiri. Pilihan yang optimal adalah dengan menyewa link dari perusahaan penyedia jaringan (misal : perusahaan telepon). Tabel 2.2 memberikan daftar layanan yang umumnya disediakan oleh perusahaan penyedia jaringan. Tabel 2.2. Beberapa jenis layanan yang umum ditawarkan Layanan
Bandwidth
ISDN
64 Kbps
T1
1,544 Mbps
T3
44,763 Mbps
STS-1
51,840 Mbps
STS-3
155,251 Mbps
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
33 Jaringan Komputer
STS-12
622,080 Mbps
STS-24
1,244160 Gbps
STS-48
2,488320 Gbps
Bandwidth pada layanan-layanan pada Tabel 2.2 terlihat sedikit ganjil. Sebenarnya ada penjelasan yang logis untuk masing-masing angka tersebut. Link ISDN (Integrated Services Digital Network) memiliki kapasitas 64 Kbps karena tujuan ISDN adalah menghantarkan voice dan data, sementara untuk mengirimkan voice bandwidth yang lazim digunakan adalah 64 Kbps. (Perangkat yang mengkodekan sinyal suara analog ke dalam link digital ISDN disebut CODEC – coder/decoder–). T1 dan T3 sebenarnya merupakan teknologi lama yang didefinisikan dari media transmisi berbasis tembaga. T1 sama dengan agregasi dari 24 sirkuit suara digital, sementara T3 setara dengan gabungan 30 buah link T1. Link STS-N digunakan pada optical fiber (STS = Synchronous Transport Signal). STS-1 merupakan kecepatan dasar, tiap STS-N memiliki kecepatan N kali STS-1. STS-N seringkali juga disebut OC-N (Optical Carrier-N). Perbedaan antara STS dengan OC emmang tidak terlalu jelas : STS mengacu pada transmisi elektrik pada perangkat yang terhubung ke link, sementara OC mengacu pada sinyal optik yang mengalir di dalam fiber. Semua link diatas merupakan link digital. Kecuali ISDN, semua dapat disewa sebagai dedicated link (tiap kali dibutuhkan, link akan selalu tersedia, tanpa perlu melakukan dial-up terlebih dahulu). Alternatif lain yang bisa ditempuh adalah dengan menggunakan modem untuk mentransmisikan data biner melalui link telepon analog. Yang perlu diingat adalah bahwa perusahaan telepon tidak mengimplementasikan link yang diminta oleh penggunanya sebagai satu jalur media (yang tidak terputus). Link dibangun dengan memanfaatkan jaringan telepon yang telah ada. Dalam banyak kasus, masalah yang dihadapi dalam pembangunan jaringan komputer adalah sama meskipun link-link yang digunakan merupakan link fisik yang dibangun sendiri atau merupakan koneksi lojik diatas jaringan telepon. Bahasanbahasan berikut akan berasumsi bahwa tiap link diimplementasikan dengan satu jalur media. Hal ini akan ditinjau kembali saat harus diputuskan apakah jaringan komputer yang dibangun berada diatas jaringan telepon ataukah justru jaringan yang akan dibangun itu juga akan digunakan sebagai backbone jaringan telepon.
Pengkodean Langkah pertama untuk dapat mendayagunakan node dan link menjadi komponen pembangun jaringan adalah dengan mengetahui cara menghubungkannya sedemikian hingga bit-bit dapat ditransmisikan dari satu node ke node yang lain. Sebagaimana telah dijelaskan pada bagian terdahulu bahwa sinyal merambat melalui media fisik. Yang perlu diperhatikan berikutnya adalah cara mengkodekan data biner Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
34 Jaringan Komputer
yang akan dikirimkan oleh node sumber menjadi sinyal yang dapat dihantarkan oleh link, dan kemudian dapat di-decode kembali menjadi data biner kembali pada node tujuan. Masalah ini akan dipandang dalam konteks link digital, dimana yang dikenal hanyalah dua jenis sinyal diskrit, yakni high-signal dan low-signal (meskipun pada kenyataannya bisa diterjemahkan sebagai dua level tegangan yang berbeda pada link berbasis tembaga atau dua intensitas energi yang berbeda pada link berbasis optik). Komponen pensinyalan (yang melakukan pengkodean bit menjadi sinyal dan sebaliknya) terdapat pada network adaptor. Sebagaimana terlihat pada Gambar 2.2, sinyal merambat pada link antar komponen pensinyalan, sementara bit mengalir antar network adaptor. Signalling component
Node
Node
Signal
Adaptor
Adaptor
Bits
Gambar 2.2. Pertukaran sinyal dan bit Cara yang paling sederhana untuk mengkodekan bit ke dalam sinyal adalah dengan memetakan bit 1 dengan high-signal sementara bit 0 dengan low-signal. Cara inilah yang digunakan dalam skema pengkodean NRZ (Non-Return to Zero). Contoh pengkodean dengan NRZ terlihat pada Gambar 2.3. Bits
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
NRZ
Gambar 2.3. Contoh pengkodean dengan skema NRZ Dengan penggunaan skema NRZ, jika ada sejumlah bit 1 yang muncul secara berurutan, maka sinyal akan tetap berada pada posisi high selama selang waktu tertentu. Demikian juga jika muncul sejumlah bit 0 secara berurutan, maka sinyal akan tetap pada posisi low selama selang waktu tertentu. Hal ini berakibat pada timbulnya beberapa masalah, diantaranya : Sinyal low yang terjadi terus-menerus dapat diartikan juga sebagai tidak adanya sinyal. Dengan demikian, node penerima tidak dapat membedakan antara urutan bit 0 yang panjang dengan putusnya link.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
35 Jaringan Komputer
Sinyal high yang terjadi terus-menerus dapat membingungkan penerima, karena node tersebut menggunakan level sinyal rata-rata (disebut baseline) untuk membedakan antara sinyal high dan low. Terlalu banyak bit 1 yang muncul berurutan akan berakibat pada berubahnya nilai rata-rata ini (situasi ini dikenal dengan sebutan baseline wander). Perubahan yang sering terjadi antara high dan low diperlukan untuk menjamin bisa dilakukannya clock recovery. Masalah ini muncul karena proses encoding dan decoding keduanya dipandu oleh clock (tiap clock cycle, sumber mengirimkan bit dan tujuan menerima bit). Clock pada sumber dan tujuan harus benar-benar sesuai (sinkron) agar tujuan dapat menerima bit yang sama dengan yang dikirmkan oleh sumber. Jika clock di tujuan berbeda sedikit saja dari clock pada sumber, maka sinyal tidak akan dapat di-decode dengan benar. Memang bisa saja diambil pendekatan lain, dimana sinyal clock dikirimkan ke tujuan menggunakan jalur (link) yang berbeda dengan data, namun hal ini tidak dilakukan karena akan memboroskan link. Dengan demikian, tujuan harus bisa mendapatkan sinyal clock dari sinyal yang diterima (proses ini dinamakan clock recovery). Saat terjadi perubahan sinyal (transisi dari bit 1 ke 0 atau sebaliknya), maka tujuan menyimpulkan bahwa saat itu adalah batas dari clock cycle dan dapat mensinkronkan clock-nya dengan yang digunakan oleh sumber. Jika ada periode yang cukup panjang dimana tidak ada perubahan atau transisi sinyal, maka sangat mungkin terjadi pergeseran clock (drift). Proses clock recovery sangat tergantung pada banyaknya transisi sinyal yang terjadi, terlepas dari data yang sedang dikirimkan. Untuk mengatasi masalah-masalah diatas, ada skema pengkodean lain yang dikenal dengan nama NRZI (Non-Return to Zero Inverted). Dengan skema ini, sumber melakukan transisi sinyal untuk mengkodekan bit 1 dan level sinyal tetap untuk mengkodekan bit 0. Skema ini menyelesaikan masalah untuk urutan bit 1, namun tidak untuk urutan bit 0. Alternatif lainnya adalah skema pengkodean Manchester. Skema ini menyatukan sinyal clock dan data dengan cara melakukan operasi XOR antara sinyal clock dengan data yang telah dikodekan dengan NRZ. Dengan cara ini, bit 0 akan dikodekan menjadi transisi dari low ke high, sementara bit 1 dikodekan dengan transisi high ke low. Karena bit 0 maupun 1 keduanya dikodekan dengan selalu ada transisi sinyal, maka clock akan bisa didapat kembali dengan mudah di tujuan. Contoh pengkodean dengan skema NRZI dan Manchester terlihat pada Gambar 2.4. Masalah yang muncul pada penggunaan skema pengkodean Manchester adalah semakin seringnya terjadi transisi sinyal dalam link, hal ini mengakibatkan semakin singkatnya waktu yang dipunyai oleh node tujuan untuk mendeteksi pulsa tiap sinyal. Seberapa sering terjadi transisi sinyal dalam suatu rentang waktu tertentu disebut dengan baud rate. Pada kasus skema pengkodean Manchester, bit rate hanya separuh dari baud rate, sehingga dikatakan skema pengkodean ini memiliki efisiensi 50%.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
36 Jaringan Komputer
Bits
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
NRZ Clock Manchester NRZI
Gambar 2.4. Perbandingan beberapa skema pengkodean Skema pengkodean yang lain adalah 4B/5B. Skema ini mencoba mengatasi kelemahan Manchester yang berkaitan dengan efisiensi. Ide 4B/5B adalah dengan menyisipkan bit tambahan kedalam bit stream sehingga dapat ‘memecah’ urutan bit 0 atau bit 1 yang panjang. Setiap 4 bit data yang akan ditransmisikan, diubah terlebih dahulu ke dalam kode 5 bit (dari sinilah asal mula nama 4B/5B). Kode-kode 5 bit ini dipilih sedemikian hingga tidak ada lebih dari satu bit 0 yang mengawali dan tidak ada lebih dari 2 bit 0 yang mengakhiri tiap kode. Dengan demikian, jika kode-kode tersebut dikirimkan secara berurutan, tidak akan muncul lebih dari 3 buah bit 0 secara berurutan. Kode 5 bit ini ditransmisikan dengan skema pengkodean NRZI (4B/5B memfokuskan diri pada urutan bit 0 karena NRZI telah menyelesaikan masalah urutan bit 1). Skema pengkodean ini memiliki efisiensi 80%. Tabel 2.3 menunjukkan korespondensi antara data 4-bit dengan kode 5-bit. Karena kode yang digunakan sepanjang 5 bit, sebetulnya cukup untuk membuat 32 buah kode unik. 16 kode diantaranya digunakan untuk data, sementara sisanya digunakan untuk keperluan lain, contoh : 11111 digunakan untuk menandai link dalam kondisi idle, 00000 berarti link putus dll. Tabel 2.3. Pengkodean 4B/5B Data 4-bit
Kode 5-bit
0000
11110
0001
01001
0010
10100
0011
10101
0100
01010
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
37 Jaringan Komputer
0101
01011
0110
01110
0111
01111
1000
10010
1001
10011
1010
10110
1011
10111
1100
11010
1101
11011
1110
11100
1111
11101
Framing Pada Bab 1 telah disebutkan bahwa fokus bahasan ini adalah pada jaringan packet-switched, yang berarti blok-blok data (pada level ini disebut frame) –bukan bit stream– akan dipertukarkan antar node. Pada Gambar 2.5, saat node A ingin mengirim frame ke node B, maka node A akan memerintahkan adaptor untuk metransmisikan frame yang telah tersimpan dalam memori pada lokasi tertentu. Urutan bit kemudian akan terkirim melalui link. Adaptor pada node B kemudian menerima urutan bit tersebut kemudian menyimpan frame tersebut dalam lokasi tertentu di memory node B. Masalah yang dihadapi adaptor adalah menentukan awal dan akhir suatu frame.
Node A Adaptor
Bits
Node B Adaptor
Frames
Gambar 2.5. Aliran frame antar node Ada beberapa cara untuk menyelesaikan masalah framing ini. Berikut akan dibahas beberapa pendekatan penyelesaian masalah framing. Sebagai catatan, meski konteks bahasannya pada link point-to-point, namun hal ini juga berlaku untuk jaringan multiple access seperti CSMA dan token ring.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
38 Jaringan Komputer
Protokol Berorientasi Byte Boleh dibilang metode ini adalah pendekatan tertua untuk mengatasi masalah framing –berawal dari masalah serupa yang muncul pada koneksi terminal dengan mainframe–. Di sini tiap frame dipandang sebagai kumpulan byte (karakter) bukan sebagai deretan bit. Contoh protokolnya : BISYNC (Binary Synchronous Communication) yagn dibangun oleh IBM pada akhir ’60-an, DDCMP (Digital Data Communication Message Protocol) yang digunakan pada DECNET, dan IMP-IMP yang digunakan pada vesi asli dari ARPANET (IMP sendiri merupakan singkatan dari Interface Message Processor, yakni istilah untuk node packet-switching di dalam ARPANET). Meski ketiga protokol tersebut mirip satu sama lain, namun dapat diklasifikasikan berdasarkan teknik framing yang digunakan yakni pendekatan sentinel dan pendekatan penghitungan byte (byte-counting), sebagai berikut : Pendekatan sentinel
8
128
STX
Header
Body
16 CRC
8
8
16
ETX
8
Body
8
DLE
8
Header
STX
SOH
8
DLE
8
SYN
8
SYN
8
SYN b)
8
SYN
a)
ETX
Protokol BISYNC dan IMP-IMP menggunakan pendekatan sentinel untuk menentukan batas tiap frame. Format frame untuk keduanya terlihat pada Gambar 2.6. Frame dipandang sebagai urutan tertentu dari field-field. Angka diatas tiap field menunjukkan panjang dari field yang bersangkutan dalam satuan bit. Frame akan ditransmisikan mulai dari field paling kiri.
CRC
Gambar 2.6. Format frame : a) BISYNC b) IMP-IMP Awal tiap frame pada kedua protokol tersebut selalu ditandai dengan karakter khusus SYN (synchronization). Bagian data diapit oleh karaktersentinel khusus. BISYNC menggunakan STX (Start-of-Text) dan ETX (End-of-Text), sementara IMP-IMP menggunakan DLE/STX dan DLE/ETX (DLE merupakan singkatan dari Data-Link-Escape). Field SOH (Start-of-Header) berfungsi serupa dengan STX. Masalah yang muncul pada pendekatan ini adalah bahwa karakter ETX Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
39 Jaringan Komputer
mungkin muncul pada bagian data. BISYNC mengatasi masalah ini dengan menyisipkan karakter DLE (escaped) mendahului karakter ETX yang muncul dalam data, demikian pula kemunculan DLE dalam data akan didahului dengan DLE pula. Karena protokol IMP-IMP telah menyisipkan DLE sebelum STX dan ETX, maka DLE hanya akan disisipkan untuk mendahului karakter DLE dalam data. Kedua format frame diatas memuat field yang sama bernama CRC (Cyclic Redundancy Check). Field ini digunakan untuk mendukung deteksi adanya kesalahan dalam proses transmisi. Kedua format frame tersebut juga menyediakan kemungkinan adanya tambahan informasi header (salah satu penggunaannya adalah untuk mendukung kehandalan pengiriman pada level link) Pendekatan penghitungan byte
8
8
8
14
42
SYN
SYN
Class
Alternatif lain untuk menentukan awal dan akhir suatu frame adalah dengan menyertakan informasi ukuran frame (dalam satuan byte) di dalam header. Protokol DDCMP menggunakan pendekatan ini. Format framenya terlihat pada Gambar 2.7. Pada contoh ini, field COUNT menspesifikasikan berapa banyak byte yang ada dalam field BODY.
Count
Header
16 Body
CRC
Gambar 2.7. Format frame DDCMP Pendekatan ini memiliki potensi bahaya, yakni jika field COUNT mengalami kerusakan dalam proses transmisi, sehingga akhir dari frame tidak dapat ditentukan dengan pasti (hal ini sebenarnya juga terjadi pada pendekatan sentinel --jika karakter ETX mengalami kerusakan--). Jika ini terjadi, maka node penerima tetap akan membaca sebanyak yang jumlah yang ditunjukkan dalam field COUNT kemudian melakukan kalkulasi CRC untuk mendeteksi ada tidaknya kesalahan selama transmisi. Jika hasil kalkulasi CRC tidak sesuai dengan isi field CRC pada frame, disimpulkan bahwa frame telah mengalami kerusakan (disebut dengan frame error). Node penerima kemudian akan menunggu karakter SYN berikutnya yang menandai awal frame baru.
Protokol Berorientasi Bit Dengan pendekatan ini, frame dipandang sebagai sederet bit. Bit-bit tersebut
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
40 Jaringan Komputer
mungkin berasal dari himpunan kode karakter (ASCII, EBCDIC dll), nilai intensitas pixel dari suatu gambar digital, instruksi dan operan dari suatu file program dll. SDLC (Synchronous Data Link Control) merupakan contoh protokol bit-oriented yang dibangun oleh IBM. SDLC ini kemudian distandarkan oleh ISO dengan nama protokol HDLC (High-level Data Link Control). Format frame HDLC terlihat pada Gambar 2.8. 8
16
Beginning Sequence
Header
Body
16
8
CRC
Ending Sequence
Gambar 2.8. Format frame HDLC HDLC menandai awal dan akhir tiap frame dengan urutan bit khusus, yakni 01111110. Urutan bit ini juga dikirimkan saat link dalam kondisi idle, sehingga node sumber dan tujuan tetap dapat melakukan sinkronisasi clock. Jika dilihat dari metodenya, sebenarnya protokol ini menggunakan pendekatan sentinel juga. Karena urutan bit khusus tersebut juga mungkin muncul pada bagian data (BODY), maka digunakan teknik yang disebut dengan bit stuffing. Bit stuffing dilakukan dengan cara sebagai berikut : tiap kali dalam pengiriman data (BODY) ada lima buah bit 1 yang dikirim secara berurutan, maka node sumber akan menyisipkan satu buah bit 0 sebelum mengirimkan bit berikutnya. Jika node tujuan menerima lima buah bit 1 secara berurutan, maka aksi yang dilakukan tergantung dari bit yang diterima berikutnya. Jika yang diterima adalah bit 0 maka dipastikan bahwa telah terjadi bit stuffing, kemudian bit 0 tersebut akan dibuang, namn jika yang diterima ternyata adalah bit 1 maka ada dua kemungkinan kondisi : tanda akhir frame atau telah terjadi kesalahan. Untuk mendapat kepastian, harus dilihat kembali bit yang diterima berikutnya. Jika yang diterima ternyata bit 0 (sehingga urutan bit menjadi 01111110) maka dipastikan sebagai tanda akhir dari frame, namun jika yang diterima ternyata adalah bit 1 (sehingga urutan bit menjadi 01111111) dipastikan telah terjadi kesalahan dalam pengiriman dan keseluruhan bit dalam frame tersebut akan dibuang. Pada kasus terakhir ini, node tujuan harus menunggu tanda 01111110 berikutnya sebelum mulai menerima bit. Selain itu, ada juga kemungkinan justru tanda akhir frame tersebut muncul karena adanya kesalahan dalam pengiriman. Karakteristik yang menarik dari bit stuffing (juga berlaku untuk escaping pola sentinel) adalah bahwa ukuran frame tergantung dari data yang dikirimkan. Pada kenyataannya, tidak mungkin membuat semua frame memiliki ukuran yang seragam, mengingat data yang dikirimkan juga bisa sangat bervariasi. PPP (Point-to-Point Protocol) sangat mirip dengan protokol HDLC ini.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
41 Jaringan Komputer
Framing berbasis clock Standar SONET (Synchronous Optical Network) merupakan contoh dari pendekatan ketiga ini. SONET pertama kali diusulkan oleh Bellcore (Bell Communication Research), dikembangkan oleh ANSI (American National Standard Institute) untuk transmisi digital melalui fiber optik, kemudian diadopsi oleh ITU-T. SONET mendefinisikan bagaimana perusahaan telepon mentransmisikan data melalui jaringan optik. Standar SONET tidak hanya meliputi aspek framing dan pengkodean, namun juga multiplexing (beberapa link kecepatan rendah ke dalam satu link kecepatan tinggi). Sebagaimana skema framing yang telah dibahas sebelumnya, awal dan akhir dari frame SONET juga ditandai dengan informasi khusus. SONET tidak menggunakan bit stuffing, sehingga panjang frame tidak tergantung dari data yang akan ditransmisikan. Pertanyaan yang mengemuka adalah : bagaimana node tujuan dapat menentukan dengan pasti awal dan akhir suatu frame? Pertanyaan ini akan dijawab dalam konteks penggunaan link SONET dengan kecepatan terendah, yakni STS-1 (51,84 Mbps). Format frame STS-1 terlihat pada Gambar 2.9. Tiap frame tersusun atas 9 baris dimana masing-masing berisi 90 byte. Tiga byte pertama dari tiap baris merupakan overhead, sisanya dapat digunakan untuk data yang akan ditransmisikan. Dua byte pertama dari frame memuat pola bit khusus yang memungkinkan node tujuan untuk dapat menentukan awal dari sebuah frame. Payload
9 baris
Overhead
90 kolom
Gambar 2.9. Format frame STS-1 Karena SONET tidak menggunakan bit stuffing, maka dalam payload mungkin muncul pola yang serupa tanda awal frame. Untuk mengatasi masalah ini, node tujuan akan mencari pola khusus tersebut secara konsisten setiap 810 byte (tiap frame berukuran 9 x 90 byte = 810 byte). Jika pola khusus tersebut selalu ditemukan setiap 810 byte maka node tujuan yakin bahwa ia sinkron dengan node sumber dan frame
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
42 Jaringan Komputer
dapat diinterpretasikan dengan benar. Kegunaan lain dari bagian overhead tidak akan dijelaskan, karena sejauh ini diasumsikan bahwa jaringan telah digelar oleh perusahaan penyedia layanan jaringan (perusahaan telepon) dan link-link tersebut dapat disewa untuk membangun jaringan packet switched diatasnya. SONET sebenarnya tidak hanya menawarkan layanan transfer data. Sebagai contoh : ada 64 Kbps dari kapasitas link SONET yang disisihkan dan digunakan untuk kanal voice (biasanya digunakan untuk maintenance). Byte-byte overhead dikodekan dengan NRZ. Namun untuk menjamin adanya cukup banyak transisi sinyal untuk clock recovery, maka byte-byte payload diacak (scrambled). Pengacakan dilakukan dengan cara melakukan operasi XOR antara data yang akan dikirimkan dengan pola tertentu. Pola tersebut sepanjang 127 bit dengan banyak transisi antara 0 dan 1, dengan demikian menjamin bahwa isi payload akan memiliki banyak transisi pula.
Header
STS-1
Hdr
STS-1
Hdr
Hdr
SONET mendukung multiplexing dari beberapa link kecepatan rendah menjadi satu link kecepatan tinggi. Link SONET terbatas hanya pada beberapa kecepatan saja, mulai dari 51,84 Mbps untuk STS-1 hingga 2488,32 Mbps untuk STS-48 (seperti tercantum pada Tabel 2.2). STS-N memiliki kecepatan N kali STS-1. Dari sudut pandang framing, hal ini berarti link yang lebih cepat akan dapat terdiri dari beberapa subframe yang berasal dari link dengan kecepatan lebih rendah. Properti kedua yang juga menarik adalah bahwa setiap frame selalu memiliki panjang 125 µdetik. Ini berarti dengan kecepatan STS-1, frame SONET berukuran 810 byte, sementara dengan STS-3, SONET akan memiliki frame yang berukuran 3 x 810 byte = 2430 byte. Ini berarti tiga frame STS-1 akan dapat tepat dimuat oleh satu frame STS-3, seperti terlihat dalam Gambar 2.10.
STS-1
STS-3
Gambar 2.10. Multiplexing 3 frame STS-1 dalam 1 frame STS-3 Secara intuitif, frame STS-N dapat dibayangkan memuat N buah frame STS-1, dimana dilakukan interleaving (pengiriman berselang-seling) terhadap byte-byte dari tiap frame STS-1 (byte dari frame pertama ditransmisikan disusul byte dari frame kedua, ketiga dan seterusnya). Alasan penggunaan metode interleaving adalah agar untuk menjamin agar byte-byte dari frame STS-1 memiliki kecepatan yang sama dan tiap byte diterima dengan kecepatan 51,84 Mbps. Sebaliknya jika tidak digunakan metode interleaving, maka byte-byte dari satu frame STS-1 akan dikirimkan secara
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
43 Jaringan Komputer
berurutan pada rentang 1/N dari rentang 125 µdetik.
Deteksi Kesalahan Sebagaimana dibahas pada Bab 1, kesalahan (error) pada level bit mungkin terjadi pada suatu frame. Ini terjadi mungkin karena interferensi elektrik atau thermal noise. Meskipun kesalahan semacam itu jarang terjadi (apalagi pada link optik), tetap dibutuhkan suatu mekanisme untuk mendeteksi keberadaan kesalahan tersebut untuk dapat melakukan koreksi terhadapnya. Sejarah yang berkaitan dengan teknik-teknik pendeteksian kesalahan dalam sistem komputer ini telah dimulai dengan kode Hamming dan Reed/Solomon yang digunakan pada penyimpanan data pada disk magnetik dan core memory. Di dunia jaringan, metode yang populer untuk mendeteksi kesalahan transmisi adalah CRC. Teknik ini digunakan pada hampir semua protokol pada level link yang telah dibahas sebelumnya (IMP-IMP, HDLC, DDCMP), bahkan sampai CSMA dan token ring yang akan dibahas nanti. Dua pendekatan lain yang dapat juga digunakan adalah paritas dua dimensi (digunakan oleh BISYNC saat mentransmisikan karakter ASCII) dan checksum (digunakan oleh banyak protokol Internet).
Cyclic Redundancy Check Ide dasar dibalik semua teknik deteksi kesalahan adalah dengan menambahkan informasi pada frame sedemikan sehingga dapat digunakan untuk menentukan ada tidaknya kesalahan pada frame setelah melalui proses transmisi. Secara ekstrim dapat dibayangkan dengan mengirim dua frame yang sama persis. Jika keduanya diterima dan tetap sama persis, maka disimpulkan sangat besar kemungkinannya tidak terjadi kesalahan dalam transmsisi. Sebaliknya jika terdapat perbedaan antara keduanya, maka disimpulkan bahwa telah terjadi kesalahan pada salah satu (atau bahkan kedua) frame tersebut, dan keduanya terpaksa harus dibuang. Namun mengirimkan n buah bit overhead untuk dapat mendeteksi kesalahan pada data berukuran n-bit merupakan kesia-siaan. Sehingga dicari teknik yang dapat mendeteksi kesalahan pada data berukuran n-bit hanya dengan mengirimkan informasi tambahan sebanyak k-bit, dimana k jauh lebih kecil dibanding n. Sebagai contoh : frame Ethernet berukuran 12.000 bit (1500 byte) hanya membutuhkan kode CRC 32-bit (sering disebut dengan CRC-32). 12.000 bit tidak akan dapat dilindungi dengan baik hanya dengan menggunakan 32 bit, kecuali ada latar belakang matematis yang kuat dibalik pembangunan tekniknya. Dalam kasus ini, landasan teori dari CRC berasal dari finite fields. Mekanisme CRC sebenarnya sederhana saja. Pertama, message sepanjang n-bit direpresentasikan dengan polinomial berorde (n-1), dimana tiap bit dari message (0 atau 1) dijadikan koefisien dari tiap suku dalam polinom tersebut. Sebagai contoh, message 10011010 direpresentasikan sebagai M(x) = x7+x4+x3+x1. Selanjutnya Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
44 Jaringan Komputer
ditentukan suatu polinom lain C(x) yang berderajat k. Sebagai contoh C(x) = x3+x2+1 (dalam kasus ini k = 3). Mungkin akan timbul pertanyaan : dari mana munculnya C(x)? Jawabannya : cari di referensi, karena biasanya C(x) yang biasa digunakan untuk suatu protokol telah ditentukan sebelumnya. Lebih jauh tentang asal-usul C(x) ini akan dibahas kemudian. Yang akan terjadi adalah transmisi suatu polinom P(x) yang terbagi oleh C(x). Kemudian jika terjadi kesalahan, maka dapat dikatakan telah terjadi penambahan suku error E(x) kepada P(x). Saat node tujuan menerima polinom (P(x)+E(x)), maka C(x) akan membagi habis polinom tersebut jika terpenuhi satu dari dua kondisi yang mungkin, yakni : E(x) sama dengan 0 (tidak ada error) atau E(x) terbagi habis oleh C(x). Pemilihan C(x) dengan cermat memungkinkan kondisi kedua sangat jarang muncul, sehingga jika polinom tersebut terbagi habis hampir pasti dapat dikatakan bahwa tidak terjadi kesalahan dan sebaliknya jika tidak terbagi habis, maka dapat dipastikan telah terjadi kesalahan dalam transmisi message tersebut. Message yang rusak terpaksa harus dibuang. Dengan suatu pengkodean tertentu sebenarnya error dalam skala kecil (misalnya hanya menimpa satu bit dalam frame) dapat diperbaiki. Kode yang memungkinkan dilakukannya perbaikan terhadap kesalahan disebut dengan ECC (Error-Correcting Code). Aritmetika polinomial sedikit berbeda dari aritmetika integer. Pertama, yang dilakukan adalah mengalikan M(x) dengan xk sehingga untuk contoh tadi akan didapat x10+x7+x6+x4 yang merupakan representasi dari 10011010000. Polinom yang baru ini kemudian dibagi dengan C(x), yang dalam contoh diatas berkoresponden dengan 1101. Pembagian polinomial mirip dengan pembagian integer, dengan sedikit perbedaan : C(x) membagi setiap polinom B(x) yang sederajat dengannya dan sisa pembagiannya merupakan hasil operasi XOR antara B(x) dengan C(x). Gambar 2.11 mengilustrasikan pembagian polinomial ini.
C(x)
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
M(x)
1
Gambar 2.11. Perhitungan CRC
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
Remainder
45 Jaringan Komputer
Pembagian pada Gambar 2.11 diatas memberikan sisa 101. Dengan demikian diketahui bahwa 10011010000 dikurangi 101 akan terbagi habis oleh C(x), hasil pengurangan inilah yang akan dikirimkan. Operasi pengurangan dalam aritmetika polinomial juga diwakili dengan operasi logika XOR, sehingga deretan bit yang benar-benar dikirimkan adalah 10011010101. Jika diperhatikan, sebenarnya polinom ini hanyalah M(x) yang ditempeli sisa pembagian. Kembali ke pertanyaan : dari mana asal polinom C(x)? Secara intuitif, ide pemilihan polinom ini adalah sedemikian sehingga tidak akan membagi habis message yang mengandung error secara merata. Sebagai contoh, error pada satu bit i direpresentasikan sebagai E(x) = xi. Jika C(x) dipilih sedemikian sehingga suku pertama dan suku terakhir tidak nol, maka setidaknya ada dua suku yang tidak akan membagi secara merata satu suku E(x). C(x) yang bersifat demikian akan dapat mendeteksi semua error satu bit. Secara umum dapat dikatakan bahwa C(x) akan dapat mendeteksi : Semua single-bit error, selama suku xk dan x0 memiliki koefisien tidak nol. Semua double-bit error, selama C(x) memiliki faktor dengan setidaknya tiga suku. Semua error pada posisi ganjil, selama C(x) memiliki faktor (x+1) Semua ‘burst’ error (sederetan bit error) dimana panjang dari burst kurang dari k bit. (Sebagian burst error yang lebih penjang dari k bit juga dapat dideteksi). Meski terlihat kompleks, sebenarnya algoritma CRC sangat mudah diimplementasikan secara hardware dengan menggunakan shifter k-bit dan gerbang XOR. Enam versi C(x) yang paling sering digunakan pada protokol level link tercantum pada Tabel 2.4. Ethernet dan FDDI menggunakan CRC-32, HDLC menggunakan CRC-CCITT, sementara ATM menggunakan CRC-8 dan CRC-10. Tabel 2.4. Polinom CRC yang sering digunakan CRC
C(x)
CRC-8
x8+x2+x1+1
CRC-10
x10+x9+x5+x4+x1+1
CRC-12
x12+x11+x3+x2+1
CRC-16
x16+x15+x2+1
CRC-CCITT
x16+x12+x5+1
CRC-32
x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x1+1
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
46 Jaringan Komputer
Parity Dua Dimensi Secara sederhana, metoda parity akan menambahkan satu bit pada sejumlah bit data (biasanya tujuh) untuk menyeimbangkan jumlah bit 1. Jika digunakan parity ganjil, maka nilai bit tambahan tersebut dipilih sedemikian sehingga jumlah bit yang bernilai satu pada (data + parity) bernilai ganjil. Sebaliknya jika digunakan parity genap, maka nilai bit tambahan tersebut dipilih sedemikian sehingga jumlah bit yang bernilai satu pada (data + parity) bernilai genap. Parity dua dimensi juga melakukan hal yang serupa. Bedanya dengan yang sederhana adalah selain menambahkan bit parity untuk tiap ‘baris’ data, ditambahkan pula bit parity untuk tiap ‘kolom’ data, bahkan untuk ‘baris’ dan ‘kolom’ bit-bit parity juga ditambahkan satu bit parity pula. Parity dua dimensi dapat mendeteksi kesalahan sebanyak 1, 2 dan 3 bit. Gambar 2.12 mengilustrasikan parity genap dua dimensi ini.
Data
Parity bits
Parity byte
0101001
1
1101001
0
1011110
1
0001110
1
0110100
1
1011111
0
1111011
0
Gambar 2.12. Contoh parity dua dimensi
Internet Checksum Pendekatan ketiga dalam mendeteksi kesalahan adalah yang seringkali dilakukan di Internet. Meski tidak digunakan pada level link, namun algoritma ini memiliki fungsionalitas seperti CRC dan parity. Ide dibalik pendekatan ini sederhana saja : jumlahkan semua word yang ditransmisikan kemudian kirimkan juga hasil penjumlahan tersebut ke node tujuan. Hasil penjumlahan ini disebut checksum. Node tujuan juga akan melakukan penjumlahan yang sama terhadap data yang diterimanya, kemudian membandingkan hasil penjumlahannya sendiri dengan checksum yang dikirimkan oleh node sumber. Jika ada error pada data (termasuk checksum), maka hasil penjumlahan tidak akan sesuai dengan checksum dari node sumber, dengan
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
47 Jaringan Komputer
demikian node tujuan memastikan telah terjadi kesalahan dalam transmisi. Namun tidak seperti CRC, checksum bukanlah algoritma pendeteksian kesalahan yang selalu dapat diandalkan. Sebagai contoh : checksum tidak akan dapat mendeteksi adanya data yang bit-bitnya tertukar posisinya. Mungkin ada banyak varian yang bisa dibangun dari ide dasar checksum tersebut. Skema yang digunakan oleh protokol-protokol Internet adalah sebagai berikut. Misalkan data yang akan dikirim berupa deretan bilangan integer 16-bit. Checksum didapat dengan menjumlahkan semua bilangan tersebut dengan menggunakan aritmetika ones complement 16-bit dan melakukan ones complement lagi terhadap hasil penjumlahan. Alasan penggunaan algoritma ini (meski perlindungan terhadap kesalahan tidak sebaik CRC) adalah bahwa algoritma ini lebih mudah diimplementasikan secara software. Pengalaman dengan ARPANET menunjukkan bahwa perlindungan yang diberikan oleh checksum telah cukup memadai. Dikatakan memadai karena checksum ini adalah ‘garis pertahanan terakhir’ pada protokol end-to-end, sementara sebagian besar error telah ditangani oleh algoritma pendeteksian kesalahan yang lebih handal pada level link.
Transmisi yang Handal Frame kadangkala mengalami kerusakan dalam proses transmisi, yang sebagian besar dapat terdeteksi dengan penggunaan metode-metode pendeteksian kesalahan seperti yang dijelaskan pada bagian sebelumnya. Beberapa pengkodean yang digunakan bahkan tidak hanya dapat melakukan deteksi tapi juga melakukan perbaikan (recovery). Namun perbaikan yang dapat dilakukanpun masih terbatas, artinya masih mungkin ada frame yang harus dibuang karena error yang menimpanya tidak dapat diperbaiki. Protokol level link yang ingin mengirimkan data secara handal harus dapat (bagaimanapun caranya) mengatasi masalah akibat pembuangan frame tersebut. Hal ini biasanya dilakukan dengan memanfaatkan dua mekanisme dasar, yaitu : acknowledgement dan timeout. Acknowledgement (sering disingkat dengan ACK) adalah suatu frame kontrol berukuran kecil yang akan dikirimkan balik oleh protokol ke peer-nya. Yang dimaksud dengan frame kontrol adalah header frame saja tanpa ada data yang mengikutinya. ACK juga bisa dikirimkan secara piggyback, yakni menumpang pada frame data yang dikirimkan pada arah yang berlawanan dengan frame data yang di-ACK. Jika pengirim menerima ACK, maka disimpulkan bahwa frame yang dikirim telah diterima dengan baik. Sebaliknya, jika pengirim tidak menerima ACK dalam rentang waktu tertentu (timeout), maka diasumsikan frame telah hilang atau mengalami kerusakan sehingga frame yang sama akan dikirim ulang.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
48 Jaringan Komputer
Strategi umum penggunaan ACK dan timeout untuk mengimplementasikan pengiriman yang handal disebut dengan Automatic Repeat Request (ARQ). Berikut akan dipaparkan (secara global) tiga algoritma ARQ, yakni : Stop-and-Wait, Sliding Window dan Concurrent Logical Channel.
Stop-and-Wait Algoritma ini adalah yang paling sederhana dibanding dua yang lain. Ide dari stop-and-wait adalah sebagai berikut : setelah mengirimkan satu frame, node sumber menunggu ACK sebelum mengirimkan frame berikutnya, jika ACK tidak kunjung datang dan timeout tercapai maka frame yang sama akan ditransmisikan. Sender
Receiver
ACK 0
ACK 1
Time
ACK 0
(b)
Frame 0 ACK 0 X Frame 0 ACK 0
(c)
Sender
Receiver
Timeout
Receiver
Frame 0
Timeout
Timeout
Frame 0
(a)
Sender
Timeout
X
Timeout
Timeout
Frame 1
Receiver
Frame 0
Timeout
Timeout
Frame 0
Sender
Frame 0
ACK 0
ACK 0
Time
(d)
Gambar 2.13. Empat skenario yang mungkin pada algoritma stop-and-wait.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
49 Jaringan Komputer
Gambar 2.13 menunjukkan empat skenario yang mungkin terjadi pada penggunaan algoritma stop-and-wait (dalam bentuk timeline, yang lazim digunakan untuk menggambarkan kelakuan protokol). Sisi sebelah kiri adalah pengirim, sisi sebelah kanan adalah penerima sementara garis vertikal menunjukkan pergerakan waktu. Gambar (a) menunjukkan contoh transmisi yang berhasil, dimana ACK diterima sebelum timeout terjadi. Gambar (b) dan (c) masing-masing menunjukkan kasus dimana frame dan ACK hilang (mengalami kerusakan sehingga terpaksa dibuang). Gambar (d) memperlihatkan kasus yang terjadi karena penentuan timeout yang terlalu singkat. Ada satu hal yang perlu diperhatikan dalam penggunaan algoritma ini, terutama yang berkaitan dengan kasus (c) dan (d). Pada kedua kasus tersebut, node sumber mendeteksi adanya timeout (karena ACK hilang ataupun karena ACK terlambat datang) kemudian mengirim ulang frame yang sama. Bisa jadi node tujuan akan mengira frame yang dikirim ulang tersebut sebagai frame yang baru, karena frame sebelumnya telah diterima dengan baik dan telah dikirimkan ACK-nya. Hal ini memungkinkan terjadinya duplikasi frame pada node tujuan. Untuk mengatasi masalah ini, header frame untuk protokol stop-and-wait memuat field sequence number sebesar 1 bit. Dengan field ini, frame dapat diberi nomor 0 atau 1 secara bergantian untuk menjadikan tiap frame unik (secara relatif). Dengan demikian, saat node sumber melakukan pengiriman ulang frame 0, node tujuan tidak akan salah mengira sebagai pengiriman pertama dari frame 1. Node tujuan kemudian dapat mengabaikan frame tersebut (untuk kasus (c) dan (d) diatas), namun tetap mengirimkan ACK-nya. Kekurangan utama dari protokol ini adalah adanya batasan bahwa node sumber hanya dapat mengirimkan satu frame melalui link pada suatu saat, dan ini mungkin sangat jauh dibawah kapasitas link. Sebagai contoh, link 1,5 Mbps dengan RTT 45 ms, link ini memiliki delay x bandwidth product sebesar 67,5 Kb (mendekati 8 KB). Karena node sumber hanya mampu mengirimkan satu frame per RTT, dengan asumsi ukuran frame 1 KB, maka kecepatan transfer maksimum hanyalah 1024 x 8 / 0,045 = 182 Kbps (mendekati seperdelapan kapasitas link). Untuk dapat menggunakan link secara penuh (fully utilized) maka node sumber harus dapat (diijinkan) untuk mengirimkan delapan frame secara berturut-turut sebelum harus menunggu datangnya ACK. Di sinilah delay x bandwidth product berperan penting. Hasil perkalian tersebut menunjukkan jumlah data yang sedang dalam perjalanan tiap saatnya (jika link digunakan secara penuh). Data sebanyak itu pula yang selalu ingin dikirimkan sebelum node sumber diharuskan menunggu datangnya ACK pertama. Prinsip yang berlaku disini adalah berusaha agar pipa (link) selalu dalam kondisi penuh. Dua algoritma berikut berusaha melakukan hal ini.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
50 Jaringan Komputer
Sliding Window Kembali pada kasus dimana link memiliki delay x bandwidth product 8 KB dan ukuran frame 1 KB. Diinginkan bahwa node sumber dalam kondisi siap mengirimkan frame ke sembilan saat ACK pertama tiba. Algoritma untuk dapat melakukan hal itu disebut sliding window. Ilustrasi dari algoritma ini ditunjukkan oleh Gambar 2.14. Receiver
...
...
Sender
Time
Gambar 2.14. Timeline untuk algoritma sliding window Algoritma Sliding Window sendiri bekerja sebagai berikut. Pertama, node sumber memberikan nomor urut (SeqNum) pada tiap frame. Untuk saat ini diasumsikan SeqNum dapat membesar tanpa batas. Pengirim memiliki tiga variabel yang terus disesuaikan dengan kondisi transmisi dan penerimaan data, yakni : Send Window Size (SWS), yang memberikan batas atas jumlah frame yang dapat dikirimkan sebelum harus menunggu datangnya ACK. Last Acknowledgment Received (LAR), menyimpan nomor urut dari ACK yang terakhir kali diterima. Last Frame Sent (LFS), menyimpan nomor urut dari frame yang terakhir kali dikirimkan. Isi dari ketiga variabel tersebut harus memenuhi batasan : LFS – LAR ≤ SWS. Situasi ini terlihat pada Gambar 2.15. Saat suatu ACK diterima, LAR akan digeser ke kanan. Hal ini memungkinkan dilakukannya transmisi frame berikutnya. Pengirim mengasosiasikan satu timer untuk setiap frame yang dikirimkan. Jika timeout terjadi sebelum ACK tiba, maka dilakukan retransmisi terhadap frame yang bersangkutan. Konsekuensinya, pengirim harus memiliki buffer (sebesar SWS) untuk menyimpan frame-frame yang telah dikirimkan namun ACK-nya belum diterima, sehingga pengirim selalu siap untuk mengirim ulang frame yang mengalami timeout.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
51 Jaringan Komputer
no more than SWS
... LAR
LFS
Gambar 2.15. Sliding Window pada pengirim Node tujuan juga memiliki tiga variabel, yaitu : Receive Window Size (RWS), menunjukkan batas atas jumlah frame yang bisa diterima oleh tujuan (meski frame-frame tersebut tiba tidak terurut) Last Frame Acceptable (LFA), menyimpan nomor urut frame terakhir yang dapat diterima. Next Frame Expected (NFE), menyimpan nomor urut frame berikutnya yang diharapkan. Isi dari ketiga variabel tersebut harus memenuhi : LFA – NFE + 1 ≤ SWS. Situasi ini terlihat pada Gambar 2.16. Saat suatu frame dengan nomor urut SeqNum tiba, tujuan akan melakukan serangkaian aksi berikut. Jika SeqNum < NFE atau SeqNum > LFA, maka frame tersebut terpaksa dibuang karena berada diluar window penerima. Sebaliknya, jika NFE ≤ SeqNum ≤ LFA, maka frame diterima karena berada didalam window. Node tujuan harus menentukan apakah perlu mengirim ACK atau tidak. SeqNumToAck menunjukkan nomor urut terbesar dari frame yang belum dikirim ACK-nya dan semua frame dengan SeqNum lebih kecil dari SeqNumToAck telah diterima dengan baik. Tujuan akan mengirimkan ACK untuk SeqNumToAck meskipun ada frame-frame lain dengan SeqNum lebih besar yang telah diterima. Acknowledgement seperti ini disebut dengan cumulative. Akibatnya, NFE = SeqNumToAck + 1 dan LFA = SeqNumToAck + RWS.
no more than RWS
... NFE
LFA
Gambar 2.16. Sliding Window pada penerima Sebagai contoh, misalkan NFE = 5 (ACK terakhir kali dikirim untuk frame nomor 4), dan RWS = 4, sehingga LFA = 9. Saat frame nomor 6 dan 7 tiba, maka
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
52 Jaringan Komputer
akan langsung dimasukkan ke buffer karena berada dalam window penerima. Namun demikian, ACK belum akan dikirim karena frame nomor 5 belum diterima. Saat frame nomor 5 tiba barulah dikirimkan ACK untuk frame nomor 7. Saat itu NFE akan bernilai 8 dan LFA bernilai 12. Jika frame 5 ternyata memang hilang, node sumber akan mendeteksi adanya timeout kemudian mengirim ulang frame 5. Karena pengirim harus ‘mundur’ beberapa frame (mungkin sampai sejumlah window size), skema ini disebut dengan go-back-n. Saat timeout terjadi, maka jumlah frame yangada di dalam link akan menurun karena sumber tidak akan dapat mengirimkan frame berikutnya sebelum ACK untuk frame 5 diterima. Ini berarti saat ada frame yang hilang link tidak dapat dijamin tetap penuh. Semakin lama waktu yang dibutuhkan untuk mendeteksi adanya kehilangan frame, semakin besar kerugian yang timbul. Dalam kasus ini, penerima bisa saja mengirimkan negative acknowledge (NAK) untuk frame 5 begitu frame 6 tiba. Namun hal ini tidak perlu dilakukan karena mekanisme timeout pada pengirim telah dapat mengatasi situasi ini. Pengiriman NAK justru menambah kompleksitas pada penerima. Pengiriman kembali ACK untuk frame 4 juga dapat menunjukkan adanya frame yang tidak diterima dengan urutan yang benar. Kedua pendekatan ini dapat meningkatkan unjuk kerja dengan mengirimkan informasi agar node sumber dapat mendeteksi kehilangan frame secara dini. Variasi lain dari skema ini adalah pengunaan selective acknowledgement. Dengan skema ini, penerima melakukan ACK untuk tiap frame yang telah diterima (tidak hanya terhadap frame dengan nomor urut tertinggi dari sekumpulan frame yang terurut). Dalam contoh di atas, penerima dapat mengirimkan ACK untuk frame 6 dan 7 yang telah diterima sebelum frame 5. Dengan tersedianya lebih banyak informasi, pengirim lebih mungkin mengusahakan agar link tetap penuh, namun menambahkan kompleksitas pada implementasi. Ukuran sending window dipilih sesuai dengan berapa banyak frame yang diinginkan berada dalam link pada satu saat. SWS dapat ditentukan dengan mudah bila diketahui nilai dari delay x bandwidth product. Di sisi lain, penerima boleh menentukan ukuran RWS yang diinginkannya. Dua setting yang umum digunakan adalah RWS = 1 (yang menyebabkan penerima tidak akan menyimpan frame yang tiba tidak terurut) dan RWS = SWS (yang memungkinkan tujuan menyimpan terlebih dahulu setiap frame yang dikirimkan oleh sumber). Sampai saat ini, asumsi yang digunakan adalah bahwa sequence number dapat terus membesar tanpa batas. Pada kenyataannya, nomor urut ini dibatasi oleh ukuran field di dalam header frame. Contoh : jika disediakan 3-bit field sequence number dalam header, maka ada delapan kemungkinan nomor urut (0..7). Untuk itu perlu ditetapkan suatu cara agar dapat menggunakan ulang nomor urut yang telah pernah digunakan untuk menomori suatu frame. Pendekatan sederhana yang dapat digunakan adalah menggunakan nomor urut tersebut secara siklik (berulang secara memutar). Masalah yang timbul dari pendekatan ini adalah jaminan untuk dapat membedakan
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
53 Jaringan Komputer
dua buah frame yang memiliki nomor urut yang sama dalam link pada suatu waktu tertentu. Pemecahannya adalah dengan menetapkan jumlah nomor urut yang digunakan harus lebih besar daripada ukuran window. Contoh : protokol stop-andwait yang menetapkan maksimal satu frame yang berada dalam link pada suatu saat, memiliki dua buah nomor urut yang berbeda. Memadaikah jika jumlah nomor urut yang disediakan sama dengan ukuran window ditambah satu? Jawabannya : tidak. Sebagai contoh : disediakan delapan buah nomor urut (0..7) dan SWS = RWS = 7. Sumber mengirimkan frame 0..6 dan dapat diterima dengan baik, namun ACK-nya hilang. Node tujuan sekarang mengharapkan datangnya frame nomor 7,0..5. Saat sumber mendeteksi adanya timeout, ia akan mengirim ulang frame 0..6. Sebagian frame (frame 0..5) akan diterima oleh tujuan walaupun sebenarnya bukan frame-frame baru sepeti yang diharapkan (hanya frame lama yang diulang pengirimannya). Situasi seperti ini yang ingin dihindari. Penjelasan diatas menunjukkan bahwa ukuran sending window tidak boleh melebihi setengah dari jumlah nomor urut yang disediakan, atau dapat diformulasikan sebagai berikut : SWS < (MaxSeqNum + 1) / 2 Secara intuitif dapat dikatakan bahwa protokol sliding window menggunakan dua buah setengah-rentang-nomor-urut secara bergantian (sebagaimana protokol stopand-wait menggunakan nomor urut 0 dan 1 secara bergantian). Perlu diingat bahwa pergantian penggunaannya tidak dilakukan secara drastis, namun dilakukan dengan cara menggeser satu per satu. Protokol sliding window mungkin merupakan protokol terbaik yang dikenal (sampai sekarang) dalam dunia jaringan komputer. Protokol ini dapat digunakan setidaknya utnuk tiga keperluan. Yang pertama (dan utama) adalah untuk menjamin kehandalan transmisi melalui jaringan yang tidak handal, sebagaimana yang telah dibahas sebelumnya. Yang kedua, protokol ini juga dapat digunakan untuk menjamin urutan frameframe yang ditransmisikan. Hal ini sangat mudah dilakukan pada node sumber, karena tiap frame memiliki nomor urut. Node tujuan tinggal mengikuti urutan tersebut dan tidak akan meneruskan suatu frame ke protokol diatasnya sebelum semua frame yang bernomor lebih ‘kecil’ (relatif karena adanya siklus penggunaan nomor urut) diterima dan diteruskan ke atas. Node tujuan akan menyimpan sementara frame yang tiba dengan tidak terurut. Dimungkinkan juga adanya varian dari protokol ini yang tidak melakukan buffering (setiap frame yang tiba langsung diteruskan ke protokol diatasnya tanpa mempedulikan urutan). Hal ini tergantung dari kebutuhan protokol diatasnya, apakah memang mensyaratkan urutan data atau tidak. Kegunaan ketiga dari protokol ini adalah untuk mendukung flow control. Flow Control adalah suatu mekanisme yang memungkinkan penerima dapat memberikan umpan balik kepada pengirim berkaitan dengan jmlah data yang dapat diterimanya. Mekanisme ini menjamin agar sumber mengirimkan data sesuai dengan kemampuan Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
54 Jaringan Komputer
tujuan dalam menerima dan memrosesnya. Hal ini dilakukan dengan menyediakan fasilitas dalam protokol sliding window sehingga node tujuan tidak hanya bisa mengACK frame yang diterima saja, namun juga bisa memberitahukan jumlah frame yang dapat diterimanya. Jumlah frame yang dapat ditangani oleh node tujuan berhubungan dengan berapa banyak elemen buffer yang dapat digunakan. Sebagaimana dalam penggunaan protokol ini untuk menjamin keterurutan data, penggunaannya untuk mendukung flow control di level link juga tergantung dari kebutuhan.
Concurrent Logical Channel Protokol IMP-IMP yang digunakan pada ARPANET merupakan alternatif lain dari penggunaan sliding window. Protokol ini cukup menarik karena dapat menjamin link tetap penuh dengan hanya menggunakan algoritma stop-and-wait. Konsekuensinya, protokol ini tidak dapat menjamin keterurutan data. Protokol IMPIMP juga tidak melakukan flow control. Ide dasar IMP-IMP –dikenal sebagai Concurrent Logical Channel– adalah melakukan multiplexing terhadap beberapa kanal lojik dalam satu link point-to-point dan menjalankan algoritma stop-and-wait pada tiap kanal lojik tersebut. Tidak ada hubungan yang erat antar frame yang berada pada masing-masing link. Karena frame yang berbeda dapat berada pada link yang berbeda pula, maka pengirim dapat membuat link selalu dalam kondisi penuh. Pengirim memiliki tiga bit status untuk tiap kanal, yaitu : satu bit boolean yang mengindikasikan status link saat itu (sibuk atau tidak), satu bit nomor urut yang akan digunakan frame berikut yang akan dikirimkan melalui link tersebut, dan satu bit yang mengindikasikan nomor urut frame yang diharapkan diterima melalui link tersebut. Saat suatu node memiliki frame untuk dikirimkan, yang digunakan adalah kanal kosong dengan index terendah yang tersedia. Pada prakteknya, ARPANET menyediakan delapan kanal lojik untuk tiap ground link dan 16 kanal lojik untuk tiap link satelit. Pada kasus ground link, header tiap frame memuat 3-bit nomor kanal dan satu bit nomor urut. Total 4 bit header ini sama persis dengan jumlah bit yang dibutuhkan oleh protokol sliding window untuk memungkinkan adanya delapan frame berada dalam link pada suatu saat.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
55 Jaringan Komputer
Token Ring IBM membangun jaringan berbasis Token Ring pertama kali pada tahun ’70-an. Sampai sekarangpun Token Ring masih menjadi teknologi LAN andalan IBM. Spesifikasi IEEE 802.5 sangat mirip dan kompatibel sepenuhnya dengan Token Ring milik IBM. Hal ini terjadi karena spesifikasi IEEE 802.5 dibangun berdasar atas Token Ring IBM dan terus mengikuti perkembangannya. Istilah Token Ring dapat digunakan untuk menyebut keduanya secara umum. Perbandingan spesifikasi IEEE 802.5 dengan Token Ring IBM terlihat pada Tabel 2.5. Tabel 2.5. Perbandingan Spesifikasi Token Ring IBM dengan IEEE 802.5 Spesifikasi Laju data Jumlah Stasiun per segmen Topologi
Token Ring IBM 4 atau 16 Mbps 260 (STP) 720 (UTP) Star
Media
Twisted Pair
Pensinyalan Metode akses Pengkodean
Baseband Token Passing Differential Manchester
IEEE 802.5 4 atau 16 Mbps 250 Tidak dispesifikasikan Tidak dispesifikasikan Baseband Token Passing Differential Manchester
Format Frame Token Ring mengenal tiga jenis frame, yakni : frame data, frame command dan token. Format frame data dan command sangat mirip, terlihat pada Gambar 2.17. Token merupakan frame dengan format khusus, terlihat pada Gambar 2.18. 1
1
1
6
6
Start Delimiter
Access Control
Frame Control
Dest. Address
Source Address
Data
4
1
1
FCS
End Delimiter
Frame Status
Gambar 2.17. Frame Data / Command Start Delimiter
Access Control
End Delimiter
Gambar 2.18. Format Token
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
56 Jaringan Komputer
Token Token adalah frame khusus sepanjang 3 byte yang hanya terdiri dari start delimiter, access control, dan end delimiter. Start Delimiter memuat pola khusus yang menandakan awal dari frame (token atau frame data / command). o Byte Access Control memuat informasi tentang prioritas dan reservasi serta bit token dan monitor. Bit token membedakan sebuah token dari frame data / command. Bit monitor digunakan untuk menjamin bahwa suatu frame tidak terus berputar-putar dalam ring. o End Delimiter menandakan akhir suatu token atau frame data / command. Didalamnya termuat bit yang mengindikasikan frame yang rusak dan frame yang merupakan akhir dari suatu urutan lojik. o
Frame Data / Command Ukuran frame data / command bervariasi tergantung dari ukuran informasi yang termuat dalam field data. Frame data membawa informasi dari dan untuk protokol di layer atasnya. Frame command membawa informasi kontrol (tanpa data dari dan untuk protokol layer atasnya) Dalam frame data / command, byte Frame Control mengikuti byte Access Control. Byte Frame Control ini menunjukkan isi dari frame (memuat data atau informasi kontrol). Pada frame kontrol, byte ini menspesifikasikan jenis informasi kontrol yang dibawanya. Berikutnya adalah dua buah field alamat yang mengindentifikasi node tujuan dan sumber. Sebagaimana IEEE 802.5, panjang masing-masing alamat adalah 6 byte. Field data mengikuti field alamat. Panjang dari field data ini dibatasi oleh waktu maksimum suatu node diperkenankan menahan token. Dibelakang field data adalah field FCS (frame check sequence). Node sumber mengisi field ini dengan hasil perhitungan FCS terhadap isi frame. Node tujuan kemudian akan menghitung ulang nilai FCS ini dan membandingkannya dengan isi field FCS pada frame untuk menentukan apakah frame tersebut mengalami kerusakan atau tidak. Sebagaimana pada token, frame data / command juga diakhiri dengan End Delimiter.
MAC (Medium Access Control) Token Passing Token Ring dan IEEE 802.5 merupakan contoh dari jaringan token-passing. Jaringan jenis ini akan mengedarkan frame khusus berukuran kecil –disebut token–
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
57 Jaringan Komputer
memutari jaringan. Suatu node hanya boleh mengirimkan data jika telah terlebih dahulu ‘menangkap’ dan menahan token. Jika suatu node yang menerima token tidak memiliki data yang hendak dikirim, maka token akan diberikan kepada node disebelahnya (urutan setelahnya). Tiap node boleh menahan token selama rentang waktu maksimal tertentu, tergantung dari teknologi yang digunakan. Sebelum mengirimkan data, node yang telah ‘menangkap’ token akan mengubah satu bit dari token. Token tersebut kemudian akan menjadi pola start-offrame. Selanjutnya, node akan menambahkan informasi yang akan dikirimkan kepada token (yang telah diubah) dan mengirimkannya ke node berikutnya dalam ring. Tidak ada token yang mengitari jaringan bersamaan dengan frame data, kecuali jaringan tersebut mendukung early token release. Jika jaringan tidak mendukung early token release, maka node lain tidak akan diperkenankan mengirim data, sampai akhirnya token dilepaskan oleh node yang baru saja mengirim data. Dengan demikian dalam jaringan Token Ring tidak akan pernah terjadi collision. Jika jaringan mendukung early token release, maka begitu selesai mengirimkan data, suatu node akan langsung melepas token. Frame informasi akan mengitari ring sampai diterima oleh node tujuan. Node tujuan kemudian menyalin frame tersebut. Frame informasi tetap berjalan di jaringan sampai ke node sumber, node sumber inilah yang berhak membuang frame informasi tersebut dari jaringan. Node sumber dapat melihat apakah frame tersebut telah diterima dengan baik dan disalin oleh node tujuan atau tidak. Tidak seperti jaringan CSMA/CD (contoh : Ethernet), jaringan token-passing bersifat deterministik. Ini berarti pada jaringan ini dapat ditentukan waktu tunggu maksimal untuk tiap node sebelum akhirnya dapat mengirim data. Hal ini (berikut dengan beberapa fitur kehandalan lain) menjadikan Token Ring sebagai sebuah jaringan ideal untuk aplikasi-aplikasi yang mensyaratkan adanya waktu tunda (delay) yang dapat diprediksi.
Host C
Host D
Host A
Arah pergerakan frame
Host B
Gambar 2.19. Skema lojik jaringan Token Ring
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
58 Jaringan Komputer
Sistem Prioritas Jaringan Token Ring memiliki sistem prioritas yang memungkinkan node-node tertentu (dengan prioritas tinggi) menggunakan jaringan lebih sering dibanding yang lain. Frame Token Ring memiliki dua field yang berkaitan dengan kendali prioritas ini, yaitu : field priority dan reservation. Hanya node dengan level prioritas sama atau lebih tinggi dari nilai prioritas yang termuat dalam token yang boleh ‘menangkap’ token tersebut. Saat transmisi data selesai dan token dilepaskan kembali ke jaringan, maka hanya node dengan prioritas lebih tinggi dari node pengirim data tersebut yang berhak ‘menangkap’ token. Token yang dilepas tersebut memuat prioritas setingkat lebih tinggi dibanding saat ‘ditangkap‘. Node yang menaikkan level prioritas token bertanggung jawab terhadap penurunan kembali level prioritas tersebut jika tidak ada node (dengan prioritas sama atau lebih tinggi dari prioritas token) yang mengirimkan data. Mekanisme Manajemen Jaringan Token Ring menggunakan beberapa mekanisme untuk mendeteksi dan melakukan kompensasi adanya kesalahan (fault) dalam jaringan. Satu mekanisme digunakan untuk memilih salah satu node dalam jaringan untuk bertindak sebagai monitor. Node ini menjadi rujukan informasi pewaktuan (timing) untuk seluruh node lain. Monitor berhak untuk membuang frame yang terus menerus berputar dalam jaringan sehingga menghambat node lain dalam mengirimkan frame datanya (misal : karena node pengirimnya rusak). Dalam kasus ini, setelah membuang frame tersebut, bila perlu monitor juga berhak untuk membuat token baru. Topologi jaringan Token Ring yang berupa star juga memberikan kontribusi terhadap kehandalan jaringan secara keseluruhan. Active MSAU (Multi-Station Access Unit) dapat memantau seluruh informasi yang beredar dalam jaringan, yang memungkinkannya untuk melakukan pengawasan terhadap adanya masalah. Jika dibutuhkan, MSAU dapat mengeluarkan (memutuskan hubungan) suatu node dari jaringan. Mekanisme Beaconing yang dimiliki Token Ring digunakan untuk mendeteksi dan mengupayakan penyelamatan jaringan. Saat suatu node mendeteksi adanya kerusakan yang serius dalam jaringan (misal : putusnya kabel), maka ia akan mengirimkan frame beacon. Frame beacon ini akan mendefinisikan domain kerusakan (failure domain). Domain kerusakan meliputi node yang melaporkan adanya kerusakan, node aktif yang terdekat sebelumnya (NAUN – Nearest Active Upstream Neighbor), dan segala sesuatu diantara keduanya. Mekanisme beaconing kemudian akan mengaktifkan proses yang disebut auto reconfiguration, dimana node-node dalam domain kerusakan secara otomatis akan melakukan diagnosa. Hasil akhir proses ini adalah rekonfigurasi otomatis terhadap jaringan disekitar area kerusakan tersebut. Secara fisik, MSAU-lah yang melakukan rekonfigurasi secara elektronik.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
59 Jaringan Komputer
Topologi fisik jaringan Token Ring Node-node pada jaringan Token Ring IBM terhubung langsung dengan MSAU (menggunakan media STP atau UTP), seperti terlihat pada Gambar 2.20. MSAU pun dapat dihubungkan dengan MSAU lain untuk membentuk jaringan (ring) yang lebih besar. Kabel yang menghubungkan MSAU dengan MSAU yang lain disebut patch cable. Kabel yang menghubungkan MSAU dengan node disebut lobe cable. MSAU memiliki bypass relay yang digunakan untuk ‘mengeluarkan’ node tertentu dari ring.
MSAU in
1
2
3
4
5
MSAU 6
7
8
out
in
1
2
in
1
2
3
4
5
6
7
8
out
MSAU 3
4
5
6
7
8
out
Gambar 2.20. Topologi Fisik Jaringan Token Ring IBM
FDDI (Fiber Distributed Data Interface) Pada pertengahan tahun ’80-an, dengan bermunculannya workstation berkecepatan tinggi, jaringan Ethernet dan Token Ring sepertinya telah mencapai titik jenuh. Semakin nyata tuntutan akan adanya jaringan lokal yang dapat mendukung kecepatan workstation dan aplikasi-aplikasi baru. Pada saat yang sama, pengelola sistem juga makin merasakan kebutuhan akan jaringan yang lebih handal untuk mendukung aplikasi yang bersifat kritis pada kecepatan tinggi. Komite standarisasi ANSIX3T9.5 menanggapi kebutuhan ini dengan menyusun standar FDDI. ANSI mengajukan standar tersebut kepada ISO, yang kemudian standar FDDI versi internasional (kompatibel dengan standar ANSI). Saat ini FDDI lebih sering digunakan sebagai backbone dan untuk menghubungkan komputer-komputer berkecepatan tinggi dalam LAN.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
60 Jaringan Komputer
Spesifikasi FDDI
Medium Access Control Physical Layer Control Physical Layer Medium
Station Management
Logical Link Control
Spesifikasi FDDI
Gambar 2.21. Struktur spesifikasi FDDI Seperti terlihat pada Gambar 2.21, spesifikasi FDDI terdiri dari empat bagian, yakni : 1. Medium Access Control (MAC) – mendefinisikan kendali terhadap akses node ke media, termasuk didalamnya : • Format frame • Penanganan terhadap token • Pengalamatan • Algoritma penghitungan CRC • Mekanisme error recovery 2. Physical Layer Protocol (PHY) – mendefinisikan prosedur pengkodean data, termasuk didalamnya : • Clocking • Framing dll 3. Physical Layer Medium (PMD) – mendefinisikan karakteristik dari medium transmisi, termasuk didalamnya : • Link fiber optik • Level energi • Bit error rate • Komponen optik • Konektor 4. Station Management (SMT) – mendefinisikan konfigurasi FDDI, termasuk didalamnya : • Konfigurasi ring • Pengendalian ring
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
61 Jaringan Komputer
• • • • •
Penambahan dan pengurangan node Inisialisasi Isolasi dan perbaikan kerusakan Penjadwalan Penghitungan statistik
Format frame FDDI Mirip dengan Token Ring, ada dua jenis format frame yang digunakan dalam jaringan FDDI, yakni frame data dan token.
>=8
1
1
2 or 6
2 or 6
Preamble
Start Delimiter
Frame Control
Dest. Address
Source Address
Data
4
1
3
FCS
End Delimiter
Frame Status
Gambar 2.22. Format frame data
Preamble
Start Delimiter
Frame Control
End Delimiter
Gambar 2.23. Format Token
• • •
• • • •
Keterangan dari masing-masing field adalah sebagai berikut : preamble – mempersiapkan tiap node untuk dapat menerima frame start delimiter – menandai awal suatu frame, berupa pola bit yang tidak akan pernah muncul dalam field yang lain frame control – mengindikasikan ukuran dari field address, menunjukkan apakah frame memuat data sinkron atau asinkron dan informasi kontrol lainnya destination address – memuat alamat node tunggal (unicast), sekelompok node (multicast) atau semua node (broadcast) source address – mengidentifikasikan satu node yang mengirimkan frame data – memuat informasi kontrl atau informasi dari dan untuk protokol di layer atas FDDI frame check sequence (FCS) - Node sumber mengisi field ini dengan hasil perhitungan FCS terhadap isi frame. Node tujuan kemudian akan menghitung ulang nilai FCS ini dan membandingkannya dengan isi field FCS pada frame untuk menentukan apakah frame tersebut mengalami kerusakan atau tidak. Jika terdeteksi adanya kerusakan, maka frame akan dibuang.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
62 Jaringan Komputer
• •
end delimiter – pola bit khusus yang menandai akhir suatu frame frame status – informasi dalam field ini memungkinkan node sumber mengetahui terjadinya error, dikenali atau tidaknya alamat dan diterima atau tidaknya frame tersebut oleh node tujuan (dipengaruhi misalnya oleh kondisi buffer dari node penerima)
FDDI menggunakan pensinyalan 4B/5B, dimana setiap 4-bit data akan dikodekan terlebih dahulu menjadi 5-bit sebelum dikirimkan.
Medium Access Control FDDI FDDI menggunakan strategi Token Passing, serupa dengan Token Ring. Jaringan yang menggunakan strategi Token Passing akan mengedarkan frame kecil bernama token. Suatu node hanya boleh mengirimkan data jika telah terlebih dahulu ‘menangkap’ dan menahan token. Jika suatu node yang menerima token tidak memiliki data yang hendak dikirim, maka token akan diberikan kepada node disebelahnya (urutan setelahnya). Tiap node boleh menahan token selama rentang waktu maksimal tertentu, tergantung dari teknologi yang digunakan. Sebelum mengirimkan data, node yang telah ‘menangkap’ token akan mengubah satu bit dari token. Token tersebut kemudian akan menjadi pola start-offrame. Selanjutnya, node akan menambahkan informasi yang akan dikirimkan kepada token (yang telah diubah) dan mengirimkannya ke node berikutnya dalam ring. Jika jaringan mendukung FDDI mendukung early token release, sehingga begitu selesai mengirimkan data, suatu node akan langsung melepas token. Dengan demikian dalam jaringan FDDI tidak akan pernah terjadi collision. Frame informasi akan berkeliling di jaringan hingga mencapai node tujuan, yang kemudian akan menyalin informasi tersebut. Frame informasi asli akan meneruskan perjalanannya hingga tiba kembali di node sumber. Node sumber inilah yang bertanggung jawab dan berhak untuk membuang frame tersebut dari jaringan. Node sumber dapat menentukan apakah frame tersebut telah diterima dengan baik dan disalin oleh node tujuan atau tidak dengan melihat informasi pada field status. Tidak seperti jaringan CSMA/CD (contoh : Ethernet), jaringan token-passing bersifat deterministik. Ini berarti pada jaringan ini dapat ditentukan waktu tunggu maksimal untuk tiap node sebelum akhirnya dapat mengirim data. FDDI tidak hanya menjamin pemerataan hak akses ke jaringan, lebih jauh lagi penggunaan dual ring menjadikannya jaringan yang handal (jika ada satu bagian dari ring yang tidak berfungsi, maka ring dapat beradaptasi sedemikian rupa dengan penggunaan ring sekunder sehingga fungsi jaringan tidak terganggu).
Pengalokasian bandwidth FDDI memiliki kemampuan untuk mengalokasikan bandwidth jaringan secara real-time, sehingga sangat ideal untuk mendukung berbagai jenis aplikasi. FDDI Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
63 Jaringan Komputer
mendefinisikan dua jenis trafik : sinkron dan asinkron (meskipun penggunaan kedua istilah ini agak rancu). Trafik sinkron. • • • •
Trafik sinkron adalah trafik yang sensitif terhadap delay Trafik sinkron dapat mengkonsumsi sebagian dari total bandwidth jaringan FDDI (100 Mbps), sementara sisanya diperuntukan bagi trafik asinkron Bandwidth sinkron dialokasikan untuk node-node yang membutuhkan layanan transmisi secara kontinyu (misal : transmisi suara dan video) Spesifikasi SMT pada FDDI mendefinisikan skema penawaran terdistribusi untuk pengalokasian bandwidth FDDI
Trafik asinkron • • • •
Trafik asinkron adalah trafik yang lebih sensitif terhadap throughput dibanding delay (misal : trafik dari aplikasi file transfer) Bandwidth asinkron dialokasikan dengan menggunakan skema prioritas delapan level. Tiap node akan diberi level prioritas asinkron. FDDI memiliki fasilitas khusus dimana tiap node berhak untuk menggunakan seluruh bandwidth asinkron dalam rentang waktu terbatas. Mekanisme prioritas FDDI dapat mengeluarkan node yang tidak dapat menggunakan bandwidth sinkron dan hanya memiliki prioritas asinkron sangat kecil.
Media fisik FDDI FDDI menspesifikasikan suatu jaringan LAN Token Passing berkecepatan 100Mbps yang tersusun atas dua ring dengan fiber optik sebagai media transmisinya. Penggunaan fiber optik menawarkan beberapa keunggulan dibanding media tembaga tradisional, antara lain : • • •
Keamanan : fiber tidak mengalirkan sinyal listrik yang mudah disadap Kehandalan : fiber bisa dikatakan kebal terhadap interferensi medan listrik Kecepatan : fiber optik memiliki potensi throughput yang jauh lebih tinggi dibanding kabel tembaga
FDDI mendefinisikan kemungkinan penggunaan dua jenis fiber optik, yakni : single- mode (mono-mode) dan multi-mode. Mode disini dapat diartikan sebagai berkas sinar yang memasuki fiber dengan sudut tertentu. Single-mode hanya mengijinkan satu berkas sinar menjalar sepanjang fiber, sementara pada multi-mode dimungkinkan adanya lebih dari satu berkas sinar berpropagasi sepanjang fiber. Sejumlah berkas sinar dalam multi-mode menjalar dengan menempuh jarak yang berbeda-beda, tergantung dari sudut datangnya. Hal ini mengakibatkan perbedaan waktu tiba di tujuan, fenomena ini disebut dengan modal dispersion. Fiber singlemode memiliki bandwidth yang lebih besar dan rentang kabel yang lebih panjang Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
64 Jaringan Komputer
dibanding multi-mode. Karena karakteristik ini, fiber single-mode lebih sering digunakan untuk hubungan antar gedung (inter-building), sementara fiber multi-mode lebih sering digunakan untuk hubungan dalam satu gedung (intra-building). Fiber multi-mode menggunakan LED sebagai perangkat pembangkit sinar, sementara single-mode menggunakan laser.
Gambar 2.24. Berkas sinar pada fiber multi-mode
Gambar 2.25. Berkas sinar pada fiber Single-mode FDDI menspesifikasikan penggunaan dual ring untuk koneksi fisiknya. Trafik pada tiap ring berjalan pada arah yang berlawanan, seperti terlihat pada Gambar 2.26. Secara fisik, sebenarnya ring-ring tersebut tersusun atas dua atau lebih koneksi pointto-point antara dua node yang bersebelahan. Salah satu ring dinamakan ring primer, lainnya disebut ring sekunder. Dalam kondisi normal hanya ring primer yang digunakan untuk transmisi data, sementara ring sekunder berfungsi sebagai cadangan (digunakan hanya pada saat ada kerusakan pada komponen jaringan). Ring primer
node Ring sekunder
Gambar 2.26 Skema lojik jaringan FDDI
Jenis node FDDI Setiap node dalam jaringan FDDI terhubung ke jaringan dengan empat atau dua buah jalur fiber optik. Berdasarkan jumlah jalur fiber yang terhubung kepadanya,
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
65 Jaringan Komputer
dikenal adanya dua jenis node dalam spesifikasi FDDI, yakni : • •
Kelas A : sering disebut pula dengan Dual Attachment Station (DAS), yakni node-node yang terhubung dengan kedua ring, terhubung dengan empat jalur fiber Kelas B : dikenal dengan Single Attachment Station (SAS), yakni node-node yang hanya terhubung ke salah satu ring saja. Node kelas ini terhubung ke ring primer melalui koneksi dua jalur fiber optik yang disediakan oleh konsentrator.
DAS dan konsentrator dapat melakukan optical bypass saat terdeteksi adanya kerusakan pada komponen jaringan (link maupun node), sehingga kerusakan pada salah satu komponen tidak akan mempengaruhi fungsionalitas jaringan secara keseluruhan, seperti terlihat pada Gambar 2.28. Upstream DAS
Downstream DAS
Konsentrator (DAS)
SAS
SAS
SAS
Gambar 2.27 DAS dan SAS
Gambar 2.28 Optical bypass
Tiap node dalam jaringan FDDI memiliki elasticity buffer, yakni suatu memori penampung dengan ukuran yang tidak terlalu besar yang akan menyimpan sementara Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
66 Jaringan Komputer
bit-bit dari frame yang harus melewati node tersebut. Adanya buffer ini memungkinkan frame dapat dikirimkan melalui ring tanpa adanya sinkronisasi dari setiap node. Buffer memisahkan bit-bit yang diterima dari node upstream dengan yang akan ditransmisikan ke node downstream. Ukuran buffer berkisar antara 9 hingga 80 bit. Yang perlu diperhatikan berkenaan dengan adanya buffer adalah bahwa hal ini akan menambah delay terhadap waktu yang dibutuhkan frame untuk mengelilingi ring. Sebagai contoh, FDDI dengan kecepatan 100 Mbps akan memiliki lebar per bitnya 10 nanodetik. Jika tiap node memiliki buffer berukuran 10 bit, dan harus menunggu sampai buffer terisi setengah penuh sebelum mulai meneruskannya, maka tiap node akan menambahkan delay sebesar 5 x 10 nanodetik = 50 nanodetik. FDDI juga memiliki karakteristik fisik lain. Sebagai contoh, standar FDDI membatasi jumlah node dalam satu jaringan paling banyak 500 buah, dengan jarak antara dua node yang bersebelahan maksimal 2 kilometer. Secara keseluruhan, panjang jaringan dibatasi maksimal 200 kilometer. Namun karena penggunaan dual ring, maka total panjang fiber optik yang dapat digunakan untuk menghubungkan seluruh node terbatas maksimal 100 kilometer.
Algoritma Timed-Token Sebenarnya algoritma MAC yang digunakan FDDI lebih rumit daripada yang telah dipaparkan diatas. Isu pertama yang menarik adalah berapa banyak data yang boleh dikirimkan oleh suatu node yang telah ‘menangkap’ token. Jumlah data yagn boleh dikirimkan berbanding lurus dengan waktu maksimal suatu node boleh menyimpan token, yang disebut dengan Token Holding Time (THT). Jika diasumsikan bahwa pada setiap rentang waktu tertentu, sebagian besar node dalam jaringan tidak memiliki data untuk ditransmisikan, maka suatu node yang sedang menyimpan token berhak mentransmisikan data sebanyak mungkin sebelum akhirnya memberikan token kepada node downstream-nya. Hal ini sama halnya dengan menetapkan THT dengan bilangan tak hingga, dan memungkinkan suatu node menahan token sedemikian lama sehingga merugikan node yang lain. Di sisi lain, akan sangat konyol kalau tiap node dibatasi hanya boleh mengirimkan satu frame, melepas token, kemudian harus menunggu sampai token mengitari jaringan dan kembali kepadanya untuk dapat mengirimkan frame data berikutnya. Semakin banyak bit data yang dapat dikirimkan oleh suatu node setiap kali memegang token, maka semakin tnggi tingkat utilisasi jaringan. Namun hal ini hanya berlaku untuk kasus dimana setiap saat hanya ada satu node yang memiliki data untuk ditransmisikan. Strategi ini tentu saja tidak akan berlaku dalam kasus dimana pada suatu saat ada lebih dari satu node yang hendak mentransmisikan data. Node yang hanya akan mentransmisikan data dalam jumlah kecil (dan mungkin dengan batas response time yang ketat) harus menunggu selesainya node lain yang mengirimkan data dalam jumlah sangat besar. Dengan demikian, perlu didefinisikan Token Rotation Time (TRT), yakni waktu Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
67 Jaringan Komputer
yang akan dibutuhkan token untuk mengelilingi jaringan dari suatu titik hingga kembali ke titik semula. TRT diformulasikan sebagai berikut : TRT ≤ ActiveNode x THT + RingLatency Dimana ActiveNodes menunjukkan jumlah node yang aktif (memiliki data untuk ditransmisikan) dalam jaringan dan RingLatency menunjukkan waktu yang dibutuhkan oleh token untuk mengelilingi jaringan saat tidak ada node yang memiliki data untuk ditransmisikan. Untuk menjamin seluruh node yang memiliki data punya kesempatan untuk mentransmisikan datanya setiap rentang waktu tertentu, maka harus ada kesepakatan tentang batas atas dari TRT. Batas ini dikenal dengan Target Token Rotation Time (TTRT). Setiap node akan selalu menghitung waktu yang diperlukan oleh token untuk mengitari jaringan (mulai dari dilepas hingga kembali ke node tersebut), disebut measured TRT. TRT faktual ini kemudian dibandingkan dengan nilai TTRT yang telah disepakati. Jika TRT faktual kurang dari TTRT, maka ini berarti token datang lebih cepat dan node tersebut dapat menyimpan token (mengirimkan data) selama rentang waktu beda antara TRT faktual dengan TTRT. Sebaliknya, jika token terlambat datang (TRT sama dengan atau lebih besar dibanding TTRT), maka node tersebut tidak berhak menyimpan token (dengan kata lain : tidak berhak mengirim data). Mekanisme seperti ini ternyata belum dapat menjamin node yang harus mengirim data dengan batasan waktu respon bisa mendapat giliran sebelum melampaui batas waktunya. Masalahnya adalah node yang memiliki data dalam jumlah besar, saat melihat token yang datang awal mungkin akan menyimpan token sedemikian lama. Sehingga saat node downstream-nya mendapati token, TRT faktualnya bisa jadi sama atau bahkan lebih besar daripada TTRT. Akibatnya node tersebut tidak akan mendapat kesempatan untuk mengirim data. Untuk itulah FDDI mendefinisikan dua jenis trafik seperti yang telah dipaparkan di bagian sebelumnya. Saat node menjumpai token, mak node tersebut akan selalu diperbolehkan untuk mengirim data sinkron, tanpa melihat apakah token datang awal atau terlambat. Sebaliknya suatu node diperkenankan mengirim data asinkron hanya jika token datang awal. Apakah masalah selesai? Ternyata belum. Karena trafik sinkron dapat ditransmisikan tanpa melihat apakah token tiba awal atau terlambat, jika setiap node memiliki trafik sinkron berukuran besar, maka nilai TTRT tidak akan banyak artinya. Untuk mengatasi masalah ini, total trafik sinkron yang dapat ditransmisikan tiap sekali mendapat token juga dibatasi oleh TTRT. Ini berarti pada kasus terburuk, node-node yang memiliki trafik asinkron menggunakan terlebih dahulu satu rentang waktu TTRT, kemudian baru node-node yang memiliki data sinkron menggunakan satu rentang waktu TTRT berikutnya. Dengan demikian mungkin terjadi measured TRT pada tiap node bernilai 2 x TTRT. Perlu dicatat bahwa jika trafik sinkron telah mengonsumsi satu rentang TTRT, maka node-node yang memiliki trafik asinkron tidak akan mengirimkan data, karena token pasti akan datang terlambat. Dengan Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
68 Jaringan Komputer
demikian pada kasus terakhir ini tidak mungkin terjadi measured TRT bernilai 2 x TTRT. Masih ada satu masalah yang tersisa : bagaimana jika suatu node yang memiliki data asinkron mendapati TRT faktual lebih kecil daripada TTRT, namun waktu yang dimiliki tidak cukup untuk mengirimkan message secara lengkap? Dalam kasus seperti ini, node tetap diijinkan untuk mengirim data. Sebagai konsekuensinya, measured TRT secara aktual dibatasi oleh TTRT ditambah dengan waktu yang dibutuhkan untuk mengirimakan satu frame FDDI secara lengkap.
Pemeliharaan Token Sementara ini token selalu dianggap eksis dan vaild. Pada kenyataannya, token yang notabene berupa pola bit khusus dapat saja rusak (akibat bit error dalam jaringan) atau hilang (karena kerusakan pada node yang sedang menyimpannya). Dengan demikian diperlukan suatu metode untuk memonitor validitas token dan membangkitkan token baru jika token yang lama rusak atau hilang. Token baru juga harus dibangkitkan pada awal inisialisasi jaringan. Pembangkitan token Pembangkitan token baru mungkin terjadi saat ada node baru yang bergabung ke jaringan atau suatu node mencurigai adanya kerusakan dalam jaringan. Algoritma pembangkitan token (disebut dengan token claim process) sekaligus juga menghasilkan kesepakatan akan nilai TTRT. Tiap node akan mengirimkan frame khusus (claim frame), yang memuat penawaran TTRT dari node tersebut (TRT yang diperlukan oleh node untuk memenuhi kebutuhan aplikasinya). Node dapat mengirimkan claim frame tanpa terlebih dahulu harus memegang token, bahkan biasanya akan langsung mengirim saat mencurigai adanya kerusakan atau saat pertama kali node tersebut bergabung ke jaringan. Jika frame ini berputar di jaringan dan kembali lagi ke node pengirimnya, maka node pengirim akan membuang frame tersebut dan menyimpulkan bahwa TTRT yang ditawarkannya adalah tawaran yang paling rendah. Saat itu, node tersebut diasumsikan sebagai node yang sedang memegang token (dengan kata lain : node tersebut bertanggung jawab untuk melepaskan token yang valid ke jaringan). Saat node menerima claim frame, nilai yang tertera didalam frame dibandingkan dengan nilai TTRT yang akan ditawarkannya. Jika nilai dalam frame ternyata lebih kecil daripada tawarannya sendiri, maka TTRT lokal akan disamakan dengan nilai yang ada di claim frame, kemudian frame tersebut akan diteruskan ke node sebelahnya. Sebaliknya, jika nilai yang termuat dalam claim frame ternyata lebih besar dari TTRT yang akan ditawarkan, maka fraem tersebut akan dibuang dari jaringan dan node akan mengirimkan claim frame baru yang berisi penawaran TTRTnya sendiri. Jika ternyata nilainya sama, maka node akan membandingkan alamat dari
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
69 Jaringan Komputer
pengirim frame dengan alamatnya sendiri, pemenangnya adalah yang memiliki nilai alamat paling besar. Jika suatu claim frame sampai kembali ke node pengirimnya, maka node dapat menyimpulkan bahwa tawarannya paling rendah diantara yang lain. Memonitor Token yang valid Pada jaringan yang berjalan normal, tiap node seharusnya akan menjumpai transmisi yang valid (baik itu frame data ataupun token) tiap selang waktu yang singkat. Rentang waktu kosong antar transmisi valid yang dialami tiap node adalah sama dengan ring latency ditambah dengan waktu untuk mengirimkan satu frame. Pada jaringan berukuran maksimal, waktu ini sedikit dibawah 2,5 milidetik. Dengan demikian, tiap node akan memiliki timer yang akan mengirim sinyal setiap 2,5 milidetik. Jika waktu 2,5 milidetik tercapai, maka node curiga ada sesuatu yang tidak beres dalam jaringan dan mengirimkan claim frame. Tiap kali terdeteksi adanya transmisi valid, maka node akan me-reset timer.
Ethernet Ethernet bisa dikatakan sebagai teknologi yang paling sukses dalam dunia jaringan komputer dalam 30 tahun terakhir ini. Diawali pada pertengahan ’70-an oleh peneliti di Xerox Palo Alto Research Center (PARC), Ethernet merupakan contoh nyata jaringan dengan kendali akses media CSMA/CD (Carrier Sense, Multiple Access with Collision Detection). Ethernet klasik mendukung transmisi data dengan kecepatan 10 Mbps. Meski algoritma utamanya tidak berubah, dalam beberapa tahun terakhir ini Ethernet telah mengalami perkembangan pesat dalam hal kecepatan transfer dan media fisik yang dapat digunakan. ‘Multiple Access’ dalam CSMA/CD mengindikasikan bahwa Ethernet merupakan jaringan dimana sejumlah node mengirim dan menerima frame melalui shared media. Jaringan Ethernet dapat dibayangkan sebagai sebuah link dimana sejumlah node menempel padanya.’Carrier Sense’ berarti bahwa tiap node dapat membedakan kondisi link antara idle dengan busy. ‘Collision Detection’ menunjukkan bahwa selama melakukan transmisi data, node juga melakukan sensing terhadap link sehingga dapat mendeteksi jika frame yang sedang dikirimkannya mengalami interferensi (tumbukan) dengan frame yang ditransmisikan node lainnya. Teknologi Ethernet berakar pada jaringan radio-paket bernama ALOHA yang dibangun di University of Hawaii untuk mendukung komunikasi komputer antar pulau di kepulauan Hawaii. Seperti halnya jaringan ALOHA, masalah yang dihadapi oleh Ethernet adalah pengaturan akses terhadap media sehingga tercapai keadilan antar node dengan efisiensi yang tinggi.Meski media fisiknya berbeda (ALOHA menggunakan atmosfer, sementara Ethernet menggunakan kabel tembaga –pada versi awal digunakan kabel coaxial–).
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
70 Jaringan Komputer
Properti Fisik Pada awal perkembangannya, segmen jaringan Ethernet diimplementasikan dengan kabel coaxial dengan panjang maksimal 500 m. Kabel coaxial yang digunakan ini mirip dengan yang digunakan pada televisi, bedanya terletak pada impedansi yang dimiliki oleh kabel. TV menggunakan kabel dengan impedansi 75 ohm, sementara Ethernet menggunakan kabel dengan impedansi 50 ohm. Host dihubungkan dengan segmen jaringan dengan melakukan tapping. Jarak antar tap minimal 2,5 m. Transceiver (alat yang langsung terhubung dengan tap) melakukan pendeteksian kekosongan jalur (idle line) dan bertanggung jawab terhadap pengiriman sinyal saat host melakukan transmisi data. Transceiver ini terhubung dengan adaptor Ethernet yang tersambung ke host. Seluruh logika yang membangun protokol Ethernet diimplementasikan dalam adaptor. Sejumlah segmen Ethernet dapat dihubungkan satu sama lain dengan bantuan repeater. Repeater adalah perangkat yang akan menguatkan dan meneruskan sinyal digital. Namun demikian, tidak lebih dari empat repeater yang diperkenankan berada diantara dua host yang saling berkomunikasi. Dengan demikian jangkauan maksimal dari jaringan Ethernet adalah 2500 m. Gambar 2.29 memperlihatkan konfigurasi dimana hanya ada maksimal dua repeater berada diantara dua host yang saling berkomunikasi. Selain batasan diameter, jumlah host dalam satu jaringan Ethernet juga dibatasi maksimal sebanyak 1024 buah. Setiap sinyal yang dimasukkan ke jaringan Ethernet oleh suatu host akan terkirim secara braodcast. Sinyal akan dipropagasikan ke segala arah. Repeater akan meneruskannya ke seluruh outgoing segmen yang terhubung padanya. Terminator yang terpasang pada tiap ujung segmen menyerap seinyal sehingga tidak terjadi efek pantulan yang akan menyebabkan interferensi dengan sinyal yang datang kemudian. Ethernet menggunakan skema pengkodean Manchester untuk merepresentasikan data biner dalam bentuk sinyal. Sejak jaman Ethernet ‘klasik’ (dikenal dengan 10Base5 atau Thick-net) tersebut, telah banyak perkembangan dalam menyediakan alternatif teknologi pembangun jaringan Ethernet. Dari semula kabel coaxial 50-ohm, Ethernet kemudian dapat menggunakan kabel coaxial yang lebih tipis (10Base2 atau Thin-net). Angka ‘10’ pada kedua teknologi tersebut mengindikasikan bahwa masing-masing beroperasi pada bandwidth 10 Mbps. ‘Base’ mengindikasikan bahwa keduanya menggunakan sistem baseband. Angka ‘5’ dan ‘2’ berturut-turut mengindikasikan bahwa panjang segmen maksimum dari masing-masing jaringan adalah 500 m dan 200 m. Media yang digunakan juga mulai beralih dari kabel coaxial ke kabel twisted pair, bahkan sudah pula merambah ke fiber optik. Perubahan media fisik juga mengubah teknologi koneksi host ke segmen. Dengan penggunaan kabel 10Base2, host terhubung ke segmen dengan konektor T. Dengan kabel twisted pair, host dihubungkan ke segmen menggunakan konektor khusus (misal : RJ-45 untuk UTP), sehingga umumnya pada topologi fisik 10BaseT akan terlihat sejumlah hubungan point-to-point dari repeater ke tiap host yang terhubung dalam satu segmen. Tabel 2.6 memberikan deskripsi beberapa anggota keluarga Ethernet yang ada. Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
71 Jaringan Komputer
Tabel 2.6 Beberapa anggota keluarga Ethernet Bandwidth maksimum
Panjang segmen maksimum
Topologi fisik
Topologi lojik
Tipe
Medium
10Base5
Thick Coax
10 Mbps
500 m
Bus
Bus
10Base2
Thin Coax
10 Mbps
200 m
Bus
Bus
10Base-T
Cat 5 UTP
10 Mbps
100 m
Star; extended star
Bus
10Base-FL
Multimode fiber optik
10 Mbps
2000 m
Star
Bus
100Base-TX
Cat 5 UTP
100 Mbps
100 m
Star
Bus
100Base-FX
Multimode fiber optik
100 Mbps
2000 m
Star
Bus
1000Base-T
Cat 5 UTP
1000 Mbps
100 m
Star
Bus
Ethernet dan IEEE 802.3 Ethernet yang dibangun oleh Xerox merupakan dasar bagi IEEE (Institute of Electrical and Electronic Engineers) untuk menyusun spesifikasi IEEE 802.3 yang dikeluarkan tahun 1980. Tidak lama setelah itu, Digital Equipment Corporation (DEC), Intel Corp., and Xerox Corp. bergabung untuk menyusun spesifikasi Ethernet versi 2.0 yang secara substansial kompatibel dengan IEEE 802.3. Ethernet dan IEEE 802.3 menspesifikasikan teknologi yang hampir serupa. Keduanya adalah teknologi LAN dengan medium access control CSMA/CD. Tiap host diperkenankan mengakses jaringan kapan saja. Sebelum mengirimkan data, host akan ‘mendengarkan’ jaringan terlebih dahulu untuk menentukan apakah jaringan bisa dipergunakan atau sedang ada host lain yang menggunakannya. Jika jaringan kosong, maka host dapat mentransmisikan datanya. Sebaliknya, jika jaringan sedang terpakai, maka host terpaksa menunggu. Collision akan terjadi jika pada suatu saat ada lebih dari satu host yang (setelah ‘mendengarkan’ jaringan) berkesimpulan jaringan sedang dalam kondisi kosong dan mengirimkan data secara bersamaan. Pada kasus ini, semua transmisi akan gagal dan seluruh host yang mengalami collision harus mengirim ulang datanya. Ethernet dan IEEE 802.3 juga sama-sama merupakan jaringan yang bersifat broadcast. Sehingga seluruh host di jaringan dapat ‘melihat’ frame yang dimasukkan ke jaringan, terlepas dari kenyataan bahwa dirinya merupakan host tujuan atau bukan. Perbedaan diantara keduanya terletak pada cakupan spesifikasinya. Ethernet menyediakan layanan yang berkaitan dengan layer 1 dan layer 2 pada model OSI,
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
72 Jaringan Komputer
sementara IEEE 802.3 memberikan spesifikasi layer fisik dan sebagian layer data-link (sub layer MAC).℘ Selain itu juga ada perbedaan kecil dalam format framenya. Metode akses CSMA/CD melakukan tiga fungsi utama, yaitu : 1. mentransmisikan dan menerima data 2. melakukan decoding terhadap data dan melihat validitas alamat sebelum meneruskannya ke protokol diatasnya. 3. mendeteksi adanya kerusakan dalam frame atau dalam jaringan
Format frame Format frame Ethernet dan IEEE 802.3 terlihat pada Gambar 2.29.
Gambar 2.29 Format frame Ethernet dan IEEE 802.3
℘
•
preamble – berupa pola khusus yang menginformasikan kepada node tujuan apakah frame tersebut mengikuti aturan Ethernet atau IEEE 802.3. Frame Ethernet memuat juga byte tambahan yagn ekivalen dengan Start of Frame pada IEEE 802.3.
•
start-of-frame (SOF) – merupakan delimiter untuk IEEE 802.3. Diakhiri dengan dua buah bit 1 untuk keperluan sinkronisasi. Pada Ethernet, SOF ini dispesifikasikan secara eksplisit.
•
destination and source addresses – alamat terdiri dari dua bagian : bagian pertama dari alamat dispesifikasikan oleh IEEE sebagai kode unik untuk vendor, sementara sisanya dispesifikasikan oleh masing-masing vendor dari Ethernet atau IEEE 802.3. Alamat sumber selalu berupa alamat
Sublayer Logical Link Control (LLC) didefinisikan pada spesifikasi IEEE 802.2
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
73 Jaringan Komputer
unicast (node tunggal). Alamat tujuan dapat berupa unicast, multicast (grup), atau broadcast (semua node). •
type (Ethernet) – field ini menspesifikasikan protokol layer atas yang akan menerima data setelah proses pada Ethernet selesai.
•
length (IEEE 802.3) – field ini mengindikasikan panjang (jumlah byte) data yang mengikutinya.
•
data (Ethernet) – setelah proses pada layer fisik dan data-link selesai, data yang termuat dalam frame akan diteruskan ke protokol di layer atasnya (yang diidentifikasikan pada field type). Meskipun Ethernet versi 2 tidak menspesifikasikan adanya padding, ukuran data minimal yang diharapkan adalah 46 byte.
•
data (IEEE 802.3) - setelah proses pada layer fisik dan data-link selesai, data yang termuat dalam frame akan diteruskan ke protokol di layer atasnya (yang harus diidentifikasikan didalam bagian data itu sendiri). Jika data yang akan dikirimkan mengakibatkan total panjang frame kurang dari 64 byte, maka ditambahkan byte padding. ℘
•
frame check sequence (FCS) – field ini memuat 4 byte CRC yang dihitung oleh pengirim dan akan dihitung ulang oleh penerima untuk menentukan apakah frame mengalami kerusakan atau tidak.
Alamat Tiap host pada jaringan Ethernet –bahkan mungkin tiap host Ethernet di seluruh dunia– memiliki alamat Ethernet yang unik (seringkali disebut juga MAC address). Sebenarnya alamat ini dimiliki oleh adaptor (bukan host), yang ditanam dalam ROM. Alamat Ethernet biasanya dituliskan dalam bentuk yang mudah dimengerti manusia berupa urutan enam angka yang dipisahkan dengan titik dua. Tiap angka berkoresponden dengan 1 byte dari keseluruhan 6 byte alamat, dan direpresentasikan dalam bentuk hexadesimal (satu digit untuk tiap empat bit, angka nol diawal tidak akan dituliskan). Sebagai contoh, 8:0:2b:e4:b1:2 merupakan representasi yang lebih mudah dibaca dari alamat Ethernet : 00001000 00000000 00101011 11100100 10110001 00000010 Untuk menjamin tiap adaptor memiliki alamat yang unik, maka tiap vendor perangkat Ethernet diberi alokasi prefix yang harus dituliskan mengawali alamat tiap adaptor yang dibuatnya. Sebagai contoh, Advanced Micro Device (AMD) diberikan
℘
Panjang data minimal 64 byte pada Ethernet dan IEE 802.3 diberlakukan agar frame berukuran cukup panjang untuk dapat mendukung pendeteksian collision
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
74 Jaringan Komputer
prefix x08002 (8:0:2). Vendor kemudian menambahkan nomor dibelakang prefix-nya untuk menjamin tiap adaptor memiliki alamat yang unik. Tiap frame yang ditransmisikan melalui jaringan Ethernet akan diterima oleh tiap node yang terhubung ke jaringan. Tiap adaptor akan mencocokan alamat tujuan yang tertera pada frame dengan alamatnya sendiri, hanya jika sesuai maka frame akan diberikan ke host. Ada perkecualian untuk hal ini, yaitu : •
jika yang diterima adalah alamat broadcast (semua bit alamat bernilai 1), maka semua adaptor akan meneruskan frame tersebut ke host
•
jika alamat yang tertera pada frame diawali dengan bit 1 tetapi bit lain sisanya tidak semua bernilai 1 (alamat multicast), maka adaptor yang telah diprogram untuk tergabung dalam grup multicast akan meneruskannya ke host.
•
jika adaptor diprogram untuk bekerja pada mode promiscuous, maka setiap frame yang diterima akan selalu diteruskan ke host.
Algoritma pengirim Sebagaimana yang telah dipaparkan, algoritma sisi penerima pada protokol Ethernet relatif sederhana. Yang agak rumit justru algoritma pada sisi pengirim. Saat adaptor memiliki data untuk dikirim dan link dalam keadaaan kosong, maka frame akan langsung ditransmisikan; tidak ada negosiasi dengan adaptor pada node lain. Batasan panjang maksimal data 1500 byte menjamin waktu maksimal yang dapat digunakan oleh adaptor untuk menduduki link. Adaptor harus menunggu setidaknya 9,6 µdetik sebelum mengirimkan frame berikutnya. Ini untuk memberikan kesempatan kepada adaptor lain untuk dapat mengirimkan frame yang dimilikinya. Saat adaptor memiliki frame untuk dikirimkan sementara link dalam keadaan sibuk (sedang terpakai oleh adaptor lain), maka ia harus menunggu sampai link terdeteksi dalam keadaan kosong, saat itu ia dapat langsung mengirimkan framenya. Ethernet dikatakan memiliki protokol yang bersifat 1-persistent, karena adaptor yang memiliki frame akan mengirimkannya dengan probabilitas 1 saat mendeteksi link dalam keadaan kosong. Secara umum, algoritma p-persistent akan mentransmisikan data dengan probabilitas 0 ≤ p ≤ 1 sat link dalam keadaan kosong. Alasan pemilihan nilai p kurang dari 1 adalah untuk mengantisipasi jika dalam waktu yang bersamaan ada lebih dari satu adaptor yang sedang menunggu link menjadi kosong dan tidak diinginkan mereka mengirim frame pada saat yang bersamaan. Jika tiap adaptor akan langsung mengirimkan frame dengan probabilitas (katakanlah) 33%, maka jika ada tiga adaptor yang menunggu link dalam keadaan kosong, hanya satu adaptor yang akan mengirim langsung begitu terdeteksi link dalam keadaan kosong. Karena tidak ada kendali terpusat, maka mungkin terjadi adanya lebih dari satu node yang mengirim frame pada saat yang bersamaan. Tiap node yang terlibat didalam ‘tabrakan’ tersebut akan dapat mendeteksi adanya collision. Hal pertama yang dilakukannya adalah mengirimkan jam signal sebanyak 32 bit, kemudian Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
75 Jaringan Komputer
menghentikan transmisi. Dengan demikian, tiap node tersebut akan mengirimkan setidaknya 96 bit : 64 bit preamble dan 32 bit jam signal. Di sisi lain, untuk menjamin suatu frame yang baru saja dikirim oleh suatu node tidak bertabrakan dengan frame lain, maka pengirim harus mentransmisikan frame sebanyak 512 bit. 512 bit ini merupakan jam time minimum yang berawal dari fakta bahwa dalam jaringan Ethernet yang berukuran maksimal, delay dari satu ujung ke ujung lain maksimal adalah 51,2 µdetik. Sehingga pada jaringan dengan kecepatan 10 Mbps, delay x bandwith dari Ethernet adalah 512 bit. Karena diinginkan setiap node dalam jaringan dapat mendeteksi adanya collision, maka node-node tersebut harus mengirimkan frame dengan ukuran yang dapat memenuhi ‘pipa’ Ethernet –yakni 512 bit–. Hal inilah yang melatarbelakangi mengapa Ethernet mensyaratkan setidaknya ada 46 byte data dalam tiap frame. 14 byte header ditambah 46 byte data ditambah 4 byte CRC sama dengan 64 byte atau 512 bit. Setelah adaptor mendeteksi terjadinya collision dan menghentikan pengiriman, ia harus menunggu beberapa saat sebelum akhirnya mencoba engirim kembali. Tiap kali mencoba mengirim dan mengalami kegagalan, adaptor akan menambahkan 51,2 µdetik pada pilihan waktu tunggu terlamanya. Strategi penambahan waktu tunggu antar percobaan pengiriman ulang ini dikenal dengan istilah exponential backoff. Lebih rincinya, pertama kali adaptor akan menunggu dalam rentang waktu 0 atau 51,2 µdetik yang dipilih secara acak. Jika masih terjadi collision, maka adaptor akan kembali menunggu selama 0, 51,2 atau 102,4 µdetik sebelum mencoba lagi; kemudian 0, 51,2, 102,4 atau 153,6 µdetik dan seterusnya. Adaptor akan menghentikan pengiriman setelah sejumlah percobaan (biasanya 16 kali), dan melaporkan kegagalan pengiriman kepada host.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
76 Jaringan Komputer
3
Packet Switching
J
aringan terhubung-langsung (directly connected) yang telah dibahas pada
bab sebelumnya setidaknya mempunyai dua kelemahan, yakni : •
Batas jumlah node maksimal yang dapat terhubung ke jaringan. Link pointto-point hanya dapat menghubungkan dua buah node. Jaringan Ethernet maksimal hanya dapat menghubungkan 1024 node.
•
Batas cakupan geografis yang dapat dilayani suatu jaringan. Ethernet (10Base5) hanya dapat melingkupi area dengan diameter 1500 m.
Jika yang dituju adalah pembangunan jaringan yang dapat bersifat global dengan tingkat skalabilitas yang tinggi, maka masalah yang harus dipecahkan adalah bagaimana membangun hubungan antar node yang tidak terhubung langsung. Masalah serupa sebetulnya telah lama disadari keberadaaannya pada jaringan telepon. Sangat tidak praktis membangun jaringan dimana setiap pesawat telepon terhubung langsung dengan semua pesawat telepon lain yang mungkin akan dihubunginya. Solusi dari masalah ini : pesawat telepon memang tidak perlu terhubung langsung dengan semua pesawat telepon lainnya, tiap pesawat cukup terhubung ke suatu sentral telepon yang akan melakukan switching. Switch inilah yang menjadikan seolah-olah setiap pesawat telepon dapat terhubung langsung dengan pesawat yang lain. Jaringan komputer pun menggunakan pendekatan yang serupa dengan jaringan telepon, bedanya hanyalah penggunaan metode packet switching (telepon menggunakan circuit switching). Packet switch memungkinkan paket-paket dapat diirimkan dari satu host ke host lain meski host-host tersebut tidak terhubung secara langsung. Packet switch (selanjutnya akan disebut switch saja) adalah perangkat dengan sejumlah port input dan output dari dan ke host. Ada tiga masalah utama yang dihadapi oleh switch, yakni : •
Tugas utama dari switch adalah menerima paket yang tiba di suatu port
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
77 Jaringan Komputer
kemudian meneruskannya ke port yang tepat sehingga paket akan dapat mencapai tujuannya. Untuk dapat mengetahui port mana yang tepat, switch harus memiliki informasi tentang jalur-jalur yang mungkin ditempuh untuk mencapai tujuan. •
Bagaimana mendapatkan dan membagi pengetahuan tentang jalur-jalur yang mungkin tersebut? Hal ini merupakan pokok perhatian routing
•
Switch terhubung dengan link yang memiliki bandwidth terbatas. Jika jumlah paket yang harus diteruskan oleh switch melalui suatu port melampaui batas kemampuan link yang terhubung kepada port tersebut, mka muncullah masalah contention. Switch melakukan buffering terhadap paket hingga contention dapat teratasi. Namun jika hal tersebut berlangsung cukup lama, maka buffer switchpun akhirnya akan penuh dan terpaksa membuang paket yang tidak tertampung. Jika pembuangan paket terjadi sangat sering, keadaan ini disebut dengan congestion. Kemampuan switch untuk mengatasi masalah ini adalah aspek penting yang menentukan unjuk kerjanya.
Switching dan Forwarding Secara sederhana, switching dapat dikatakan sebagai suatu mekanisme yang memungkinkan terjadinya hubungan interkoneksi untuk membangun jaringan yang lebih besar. Switch melakukan hal ini dengan memanfatkan kelebihan yang ditawarkan topologi star, yakni : •
Host dapat dihubungkan dengan switch dengan link point-to-point
•
Meskipun switch memiliki port input dan output terbatas yang juga membatasi jumlah host yang dapat terhubung langsung kapadanya, jaringan dapat diperbesar dengan menghubungkan sejumlah switch
•
Menambahkan host ke jaringan dengan menghubungkannya ke switch tidak berarti akan menurunkan kualitas layanan jaringan ke host yang telah lebih dulu terhubung ke jaringan.
Pernyataan ketiga diatas tidak dapat dilakukan pada jaringan yang berbasis shared-media. Pada jaringan Ethernet 10Base5 misalnya, tidak mungkin ada dua host yang sama-sama mengirimkan data dengan kecepatan 10 Mbps secara terus-menerus. Setiap host pada jaringan yang menggunakan switch memiliki link tersendiri untuk berhubungan dengan switch, dengan demikian dimungkinkan adanya beberapa host yang mengirim data dengan kecepatan sama dengan bandwith yang tersedia pada link (dengan asumsi switch memang dirancang dengan aggregate bandwidth yang cukup). Switch terhubung ke sejumlah link, dimana untuk setiap link dijalankan protokol data link yang sesuai untuk dapat berkomunikasi dengan node di ujung lain
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
78 Jaringan Komputer
dari link. Pada Gambar 3.1 terlihat protocol graph dari switch yang terhubung dengan tiga buah host masing-masing melalui link T1, T3 dan STS-1. Gambar 3.2 merepresentasikan switch yang sama, dengan pemisahan bagian input dan output dari tiap link (secara umum, tiap link diasumsikan bersifat bidirectional sehingga input dan output menjadi satu port).
Switching protocol
T1
T3
STS-1
Gambar 3.1 Contoh protocol graph pada suatu switch
T1 T3 STS-1 Input ports
Switch
T1 T3 STS-1 Output ports
Gambar 3.2 Contoh switch dengan tiga port input dan output Telah dipaparkan diatas bahwa fungsi utama switch adalah menerima paket dari port input dan meneruskannya ke port output yang sesuai. Bagaimana switch bisa dengan tepat menentukan port output mana yang harus digunakan agar paket bisa mencapai tujuan? Yang pasti, penentuan output port harus berdasarkan informasi yang terdapat dalam header paket. Ada beberapa pendekatan yang dapat digunakan. Yang pertama adalah pendekatan datagram atau connectionless. Kedua, pendekatan virtual circuit atau connection-oriented. Yang ketiga dan paling sederhana adalah pendekatan source routing.
Source Routing Salah satu cara agar switch tahu output port yang akan digunakan untuk meneruskan paket adalah dengan cara memberi nomor pada tiap port yang dimiliki switch dan meletakkan nomor output port yang tepat header dari paket. Dengan cara ini, fungsi switching menjadi sangat sederhana : untuk tiap paket yang diterima, switch akan membaca informasi output port dalam header kemudian meneruskan paket melalui port tersebut. Karena dalam switched network sangat mungkin terdapat lebih dari satu switch sepanjang jalur antara node sumber dan tujuan, maka header pun harus dapat memuat informasi port sebanyak jumlah switch yang akan dilewati. Salah satu cara yang dapat ditempuh adalah dengan melakukan rotasi terhadap urutan Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
79 Jaringan Komputer
informasi port tersebut sehingga switch tinggal membaca nomor port yang terletak paling depan. Gambar 3.3 mengilustrasikan ide ini dalam pengiriman paket dari host A ke host B. Switch 4
0 3
3
0
2
0
0
Switch 2
Switch 3
1 3
1
3
1
2 2
0
2
2
3
Host B 0
3 Switch 1
1
2
Host A 2
3
0
Gambar 3.3 Ilustrasi metode source routing (switch membaca informasi port terkanan / diarsir) Pada contoh ini, paket harus melalui tiga switch sebelum sampai ke host B (switch 1, 2 dan 4). Pada switch 1, setelah diterima dari port 1, paket harus diteruskan melalui port 0. Switch 1 menentukan port 0 sebagai output port dengan melihat informasi port pertama dari header (yang saat diterima memiliki urutan [0,3,2]). Untuk memastikan switch berikutnya akan meneruskan paket melalui port yang benar, maka urutan informasi paket tersebut di-rotate sesaat sebelum paket itu meninggalkan switch 1. Saat diterima oleh switch 2 urutan informasi port pada header adalah [3,2,0], sehingga paket tersebut akan diteruskan melalui port 3. Demikian seterusnya hingga paket tiba di host tujuan. Switch terakhir sebelum host tujuan (dalam hal ini switch 4) sebetulnya juga melakukan rotasi terhadap informasi port sehingga paket yang diterima host B sama kondisinya seperti saat dikirimkan oleh host A. Ada beberapa hal yang harus diperhatikan berkenaan dengan pendekatan ini. Pertama, diasumsikan bahwa host A mempunyai cukup pengetahuan tentang topologi jaringan untuk membentuk header yang memuat semua informasi tentang nomor output port dari setiap switch yang akan dilalui. Untuk jaringan yang cukup besar, mendapatkan informasi topologi jaringan ini merupakan masalah yang tidak sepele. Kedua, ukuran header tidak dapat diprediksi sehingga mungkin ukuran headerpun akan bervariasi tanpa batas maksimal, kecuali dapat dilakukan prediksi terhadap jumlah maksimum switch yang dapat dilalui suatu paket. Ketiga, ada beberapa variasi dari pendekatan ini. Contoh : selain melakukan rotasi terhadap header, tiap switch
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
80 Jaringan Komputer
juga dapat membuang elemen pertama setelah digunakannya. Meski sedikit lebih rumit, rotasi memiliki kelebihan dibanding sekedar membuang elemen pertama : host B menerima paket dengan header yang lengkap, sehingga memudahkan dalam menentukan jalur balik ke host A. Alternatif lain adalah dengan menambahkan pointer pada header yang akan menunjuk ke elemen yang harus dibaca oleh switch setelah paket diterima. Saat paket akan meninggalkan switch, pointer tersebut diupdate sehingga menunjuk ke elemen berikutnya. Alasan utama mengapa source routing tidak banyak digunakan adalah ketidakmampuannya dalam mengatasi masalah skalabilitas. Dalam suatu jaringan yang besar, sangat besar effort yang harus dikeluarkan suatu host untuk mendapatkan informasi lengkap tentang jalur yang akan dilalui paket. Jika informasi tentang jalur tidak lengkap atau tidak akurat, maka hampir pasti paket tidak akan sampai ke tujuan.
Virtual Circuit Pendekatan ini juga sering disebut dengan model connection-oriented. Dengan pendekatan ini, sebelum dapat mengirimkan data, host pengirim harus membangun virtual circuit ke host penerima. Gambar 3.4 mengilustrasikan situasi dimana host A akan mengirimkan data ke host B.
Switch 4
0 4
3
0
0
Switch 2
Switch 3
1 3
1
3
1
2 2
2
7 6 Host B 0
3 Switch 1
1
2
Host A 11
Gambar 3.4 Contoh jaringan dengan virtual circuit Host A pertama kali akan mengirimkan connection request ke host B, yang akan diterima oleh switch 1. Paket ini memuat alamat host B dan virtual circuit identifier (VCI), yang akan digunakan oleh switch untuk mengidentifikasi paketpaket selanjutnya dari A untuk B. Satu-satunya batasan dari identifier ini adalah tidak sedang digunakan pada link tersebut oleh host A dan switch 1 (local significant).
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
81 Jaringan Komputer
Dalam kasus diatas, host A memilih angka 11 sebagai VCI. Saat menerima connection request, switch 1 akan berupaya untuk mendapatkan cara menyampaikannya ke host B. Untuk saat ini, diasumsikan switch 1 memiliki cukup informasi tentang topologi jaringan sehingga dapat menyimpulkan bahwa host B dapat dicapai melalui port 0. Cara switch mendapatkan informasi untuk dapat menentukan output port disebut dengan routing dan akan dibahas pada bagian tersendiri. Switch 1 akan manambahkan entri pada tabel virtual circuit-nya, yang berbunyi “jika ada paket tiba dari port 1 dengan identifier 11, maka teruskan paket tersebut ke port 0”. Karena identifier 11 hanya berlaku pada link antara host A dengan switch 1, maka switch 1 akan memilih identifier lain yang tidak sedang digunakan pada link antara switch 1 dengan switch 2. Misalkan switch 1 memilih nomor 6 sebagai identifier, maka isi dari entri pada tabel virtual circuit-nya akan berbunyi “jika ada paket tiba dari port 1 dengan identifier 11, maka ganti identifiernya dengan 6 dan teruskan paket tersebut ke port 0”. Tabel 3.1 mengilustrasikan virtual circuit table yang dimiliki oleh switch 1. Tabel 3.1 Sebagian isi tabel virtual circuit dari switch 1 Input Port
Incoming Identifier
Output Port
Outgoing Identifier
...
...
...
...
1
11
0
6
...
...
...
...
Saat switch 2 dan 4 menerima paket yang berisi connection request tadi, proses yang sama akan terjadi. Host B kemudian akan menerima (atau menolak) pembukaan hubungan tersebut dengan megnirimkan pesan notifikasi kembali ke host A. Saat host A menerima notifikasi bahwa host B menerima permintaan pembukaan hubungan, maka dapat disimpulkan bahwa seluruh switch di antara keduanya telah terkonfigurasi sedemikian sehingga jika host A mengirimkan paket dengan identifier 11 maka jaringan akan mengantarkannya ke host B. Identifier 11 berturut-turut akan dipetakan oleh switch sepanjang perjalanannya menjadi 6, 4 dan 7. Jika host B menerima paket dengan identifier 7, maka dapat disimpulkan bahwa paket tersebut berasal dari koneksi dengan host A (meski tidak memuat alamat host A maupun identifier yang dipilih oleh host A saat mengirimkannya). Saat host A tidak lagi memiliki data untuk dikirimkan, ia akan mengirim message teardown ke switch 1. Switch 1 kemudian akan menghapus entri yang berkaitan dengan koneksi tersebut dari tabel virtual circuit. Message teardown kemudian diteruskan ke seluruh switch berikutnya dalam jalur ke host B, yang juga akan menghapus entri dari tabel virtual circuit-nya masing-masing. Dalam kondisi ini, jika host A mengirimkan paket dengan VCI = 11 ke switch 1, maka paket akan Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
82 Jaringan Komputer
diabaikan. Ada beberapa hal yang perlu diperhatikan berkenaan dengan virtual circuit switching : •
Karena host A harus menunggu connection request sampai ke host B dan mendapat notifikasi sebelum dapat mengirimkan paket data pertamanya, maka akan ada delay setidaknya setara dengan RTT sebelum data dapat dikirimkan. Namun demikian, dimungkinkan juga mekanisme untuk langsung mengirimkan data segera setelah pengiriman connection request.
•
Tidak seperti connection request yang harus memuat alamat lengkap dari host B (yang mungkin saja cukup panjang karena merupakan alamat global yang unik di jaringan), tiap paket data hanya perlu mencantumkan identifier (VCI) yang relatif pendek karena hanya harus unik untuk tiap link. Dengan demikian, overhead perpaket yang disebabkan oleh header dapat dikurangi.
•
Jika switch atau link pembentuk hubungan mengalami kerusakan, maka hubungan putus dan harus dibentuk hubungan baru. Seluruh switch dalam jalur harus juga menghapus entri yang berkaitan dengan hubungan yang telah terputus tersebut.
Satu aspek menarik dari virtual circuit adalah saat host menerima notifikasi yang memperbolehkan host tersebut untuk mengirim data, maka banyak pengetahuan yang didapat mengenai jaringan (contoh : memang ada jalur yang dapat dilalui hingga ke host tujuan dan tujuan memang bersedia dan bisa menerima data). Mungkin juga dilakukan pengalokasian sumber daya jaringan ke virtual circuit pada saat hubungan sedang dibangun. Jaringan X.25 (contoh jaringan packet switched yang menggunakan model connection oriented), menggunakan tiga strategi sebagai berikut : •
Buffer dialokasikan untuk tiap virtual circuit saat inisialisasi
•
Protokol sliding window dijalankan untuk tiap pasang nose sepanjang virtual circuit. Bersama dengan flow control, protokol ini menjamin aliran data dari node pengirim tidak akan melampaui kapasitas buffer pada node penerima.
•
Pembentukan virtual circuit akan ditolak oleh host tujuan jika tidak tersedia kapasitas buffer yang cukup.
Dengan melakukan ketiga strategi diatas, tiap node dijamin mendapatkan kapasitas buffer yang dibutuhkannya untuk menampung sementara paket yang tiba pada virtual circuit tersebut. Strategi ini dikenal dengan hop-by-hop flow control. Dengan melakukan generalisasi terhadap ide ini, mungkin untuk menyediakan Quality of Service (QoS) yang berlainan untuk tiap circuit. Istilah QoS digunakan untuk mengacu pada jaminan unjuk kerja yang diberikan oleh jaringan kepada penggunanya. Pada gilirannya, QoS berimplikasi pada pengalokasian sumber daya oleh switch untuk menjamin tersedianya kualitas unjuk kerja yang telah dijanjikan tersebut. Sebagai contoh : seluruh switch sepanjang virtual circuit akan mengalokasikan sekian persen dari bandwidth outgoing link-nya untuk digunakan oleh circuit tersebut. Contoh lain : seluruh switch dalam suatu virtual circuit bisa
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
83 Jaringan Komputer
mengadakan konsensus bahwa paket yang mengalir dalam virtual circuit tersebut tidak akan mengalami penundaan (masuk antrian) lebih dari suatu batas waktu tertentu.
Datagram Alternatif lain dari model komunikasi connection-oriented adalah pendekatan connectionless. Dalam jaringan packet switched, pendekatan ini juga disebut dengan model datagram. Ide dibalik model ini sederhana saja : tidak perlu mengadakan pembangunan hubungan, paket dibekali dengan informasi yang cukup untuk dapat berjalan sampai ke tujuan. Dengan demikian, tiap paket akan memuat alamat lengkap dari host tujuan. Gambar 3.5 mengilustrasikan kasus dimana host A ingin mengirim data ke host B. Host G Host F Switch 4
0 B
3
0
1 3
0
Switch 2 1
3
Switch 3 1
Host D
2 2
2
B Host E B Host B 0
Host C
3 Switch 1
1
2
Host A B
Gambar 3.5 Contoh jaringan dengan model connectionless Untuk menentukan output port yang akan digunakan untuk meneruskan paket yang diterimanya, tiap switch memiliki forwarding table (routing table). Contoh routing table yang dimiliki switch 2 tampak pada Tabel 3.2. Tabel ini menyimpan informasi yang dibutuhkan oleh switch 2 untuk melakukan forwarding paket, dengan mengetahui alamat tujuan yang tertera pada tiap paket dan menghubungkannya dengan nomor port yang bersesuaian dalam tabel. Jika topologi jaringan sederhana dan tidak terlalu besar, cukup mudah membangun tabel ini pada tiap switch. Masalah baru akan muncul jika topologi jaringan relatif rumit dan dalam skala yang besar. Lagi-lagi hal ini merupakan masalah yang akan diatasi dengan algoritma routing, yang akan dibahas tersendiri. Tabel 3.2 Forwarding table yang dimiliki switch 2
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
84 Jaringan Komputer
Alamat tujuan
Nomor port
A
2
B
3
C
2
D
1
E
1
F
0
G
3
Model connectionless (datagram) memiliki beberapa karakteristik, yaitu : •
Tidak ada delay RTT untuk menunggu terbangunnya hubungan. Begitu data tersedia node dapat langsung mengirimkannya.
•
Saat suatu host mengirimkan data, tidak ada jaminan bahwa jaringan memang bisa mengantarkannya ke tujuan dan host tujuan bersedia menerimanya.
•
Tiap paket dikirimkan secara independen terhadap paket lain, meski ditujukan ke host yang sama. Dengan demikian kerusakan pada switch atau link dalam jaringan tidak akan terlalu berpengaruh pada pengiriman data, selama bisa ditemukan jalur lain yang menghubungkan host sumber dengan tujuan dan tiap switch bisa memperbaharui forwarding table-nya sesegera mungkin.
•
Karena tiap paket harus memuat alamat lengkap dari alamat tujuan, maka overhead tiap paket relatif lebih besar dibanding model connection-oriented
Karena tidak ada fase pembukaan hubungan yang mendahului pengiriman paket data dan masing-masing switch memproses paket secara independen, maka tidak ada cara untuk melakukan alokasi sumber daya. Tiap paket yang tiba di switch akan berkompetisi dengan paket-paket lain untuk mendapatkan tempat di buffer. Jika tidak lagi tersedia tempat kosong pada buffer, maka paket yang tiba terpaksa harus dibuang.
Implementasi dan Unjuk Kerja Sampai sejauh ini, telah dibahas fungsi-fungsi yang harus dilakukan oleh switch tanpa sedikitpun menyinggung implementasinya. Cara mudah untuk membuat switch adalah dengan sebuah komputer (multi purpose computer) yang dilengkapi sejumlah interface jaringan. Perangkat sederhana seperti inipun telah dapat menerima paket, melakukan fungsi switching dan mengirimkan kembali paket melalui interface yang dimilikinya. Cara ini populer untuk membangun switch eksperimental (misalnya
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
85 Jaringan Komputer
untuk membangun protokol routing baru), karena fleksibilitas dan lingkungan pemrograman yang lebih familiar. Komputer dengan tiga interface jaringan yang digunakan sebagai switch terlihat pada Gambar 3.6. Gambar tersebut menunjukkan jalur yang dilalui oleh suatu paket mulai dari tiba di interface 1 sampai akhirnya diteruskan melalui interface 3. Dalam kasus ini diasumsikan komputer dapat memindahkan data dari interface ke memory tanpa campur tangan dari CPU (misal dengan DMA). Saat paket sudah berada dalam memori, maka CPU akan memeriksa header untuk menentukan interface mana yang akan digunakan untuk mengirimkan kembali paket tersebut. I/O Bus CPU Interface 1
Interface 2
Interface 3 Memory
Gambar 3.6 Komputer yang digunakan sebagai switch
Masalah yang timbul dalam penggunaan komputer biasa (general purpose workstation) adalah keterbatasan unjuk kerja karena semua paket harus melalui single point of contention. Pada kasus diatas, tiap paket akan melalui I/O bus dua kali selain harus sekali ditulis ke dan dibaca dari memori. Batas atas dari aggregate throughput dari perangkat yang demikian adalah separuh dari total bandwidth main memory atau separuh dari bandwidth I/O bus (tergantung mana yang lebih kecil). Untuk sebagian besar aplikasi, batas ini menjadikan unjuk kerjanya sangat rendah (sangat lambat). Batas atas ini bardasar asumsi bahwa pemindahan data adalah satu-satunya masalah. Asumsi ini bisa diterima untuk paket yang berukuran panjang, namun tidak untuk paket berukuran kecil. Pada kasus paket berukuran kecil, justru pengolahan tiap paket –melakukan parsing terhadap header dan menentukan port output– akan lebih mendominasi permasalahan. Sebagai contoh, sebuah komputer dapat memproses 15000 paket tiap detik. Jika paket berukuran relatif kecil, misalnya 64 byte, maka throughput yang bisa dicapai adalah 7,68 Mbps. Angka ini belum cukup untuk memenuhi kebutuhan aplikasi, mengingat 7,68 Mbps ini harus digunakan bersama oleh sejumlah host (apalagi dibandingkan dengan 10 Mbps pada Ethernet 10Base-T atau 100 Mbps pada FDDI yang juga digunakan bersama oleh seluruh host yang
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
86 Jaringan Komputer
terhubung ke jaringan). Untuk mengatasi masalah ini, pada perancang hardware telah memiliki banyak rancangan untuk mengurangi jumlah contention dan meningkatkan aggregate throughput. Perlu dicatat bahwa ada kasus contention yang tidak terhindarkan, misal : paket dari seluruh port input harus diteruskan melalui satu port output yang sama. Sebaliknya, jika paket yang diterima pada sejumlah port input ternyata harus diteruskan melalui port output yang berbeda-beda, maka rancangan switch yang baik akan mampu memindahkan data dari port input ke output secara paralel (yang akan meningkatkan aggregate throughput).
Routing 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.
Jaringan Sebagai Suatu Graph Routing sebenarnya merupakan masalah yang berakar pada teori graph. Gambar 3.7 mengilustrasikan graph yang merepresentasikan suatu jaringan. ℘ Nodenode 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 masing-masing.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
87 Jaringan Komputer
Garis yang menghubungkan dua node pada graph mewakili link pada jaringan. Tiap garis memiliki bobot (harga), yang akan berhubungan dengan pemilihan jalur. D 3
4
6
B
1
A
F 1
9
C
2 1
E
Gambar 3.7 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 3.7, cara paling sederhana yang 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)?
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.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
88 Jaringan Komputer
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. 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 3.8). 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 node-node yang lain direpresentasikan dalam bentuk tabel (Tabel 3.3). 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. D F C
B E
G
A
Gambar 3.8. Contoh jaringan Tabel 3.3. Pengetahuan awal tentang jarak antar node Jarak yang ditempuh untuk mencapai node
Informasi di node
A
B
C
D
E
F
G
A
0
1
∞
∞
1
∞
∞
B
1
0
1
1
∞
1
∞
C
∞
1
0
∞
∞
∞
∞
D
∞
1
∞
0
∞
1
∞
E
1
∞
∞
∞
0
∞
1
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
89 Jaringan Komputer
F
∞
1
∞
1
∞
0
1
G
∞
∞
∞
∞
1
1
0
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 3.3) 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 3.4. Tabel 3.4 Pengetahuan akhir tentang jarak antar node Jarak yang ditempuh untuk mencapai node
Informasi di node
A
B
C
D
E
F
G
A
0
1
2
2
1
2
2
B
1
0
1
1
2
1
2
C
2
1
0
2
3
2
3
D
2
1
2
0
3
1
2
E
1
2
3
3
0
2
1
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
90 Jaringan Komputer
F
2
1
2
1
2
0
1
G
2
2
3
2
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 tablenya. 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 3.5. 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 3.5 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 3.5 Tabel routing pada node D Tujuan
Biaya
Node_berikut
A
2
B
B
1
B
C
2
B
E
3
F
F
1
F
G
2
F
Ada dua kondisi yang menyebabkan suatu node memutuskan untuk mengirim update ke tetangganya. Pertama, tiap node akan secara otomatis mengirimkan update
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
91 Jaringan Komputer
tiap selang waktu tertentu, meski tidak ada entri yang 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 masing-masing, 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 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
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
92 Jaringan Komputer
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 linknya 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.
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 demikian inti dari metode link state adalah mekanisme penyebaran informasi link-state secara handal dan penghitungan (penentuan) jalur atas dasar akumulasi pengetahuan tadi. Reliable Flooding
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
93 Jaringan Komputer
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 linkstate 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 link-state 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. 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 time-out. Jika ternyata saat node tersebut hidup kembali LSP-nya belum mengalami time out, maka ia akan menerima
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
94 Jaringan Komputer
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. Penentuan jalur Setelah menerima LSP dari semua done 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)) 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
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
95 Jaringan Komputer
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 3.9. Terlihat bahwa jaringan tersebut memiliki bobot yang bervariasi untuk tiap link-nya. Tabel 3.6 menunjukkan langkah-langkah pembentukan tabel routing untuk node C. 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
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
96 Jaringan Komputer
diyakininya benar-benar (hanya informasi berkaitan dengan link yang terhubung langsung kepadanya) kepada seluruh node dalam jaringan. B
5
3
A 10
D
11
2
C
Gambar 3.9 Contoh jaringan Tabel 3.6 Langkah-langkah pembangunan table routing pada node C Langkah 1
Confirmed (C,0,-) (C,0,-)
(C,0,-)
4
5
(B,11,B)
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
(B,11,B)
Masukkan entri Tentative dengan biaya terkecil (D) ke Confirmed. Kemudian lihat LSP dari anggota Confirmed yang baru tersebut (D)
(C,0,-)
(B,5,D)
(D,2,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.
(C,0,-)
(A,12,D)
Pindahkan anggota Tentative dengan biaya terkecil (B) ke Confirmed, kemudian lihat LSPnya
(A,10,D)
Karena A dapat dicapai dengan biaya 5 dari B maka entri dari Tentative di-update
(D,2,D)
(D,2,D) (B,5,D) (C,0,-)
6
Keterangan Karena C merupakan satu-satunya anggota baru dari Confirmed, maka dilihat LSP-nya
(D,2,D)
2
3
Tentative
(D,2,D) (B,5,D)
7
(C,0,-)
Pindahkan anggota Tentative dengan biaya terkecil (A) ke Confirmed. Karena Tentative Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
97 Jaringan Komputer
(D,2,D) (B,5,D)
telah kosong (jalur terbaik ke seluruh node telah diketahui) maka eksekusi algoritma selesai
(A,10,D)
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 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
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
98 Jaringan Komputer
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 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 hoppun 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
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
99 Jaringan Komputer
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 3.10. 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
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. Bentuk grafik pada Gambar 3.10 didapat dari percobaan (trial-and-error) dan telah dipilih sedemikian rupa untuk mendapatkan performansi terbaik.
240
Metrik (unit routing)
225 210 180
link satelit 9,6 Kbps
150 140
link terestrial 9,6 Kbps
120
link satelit 56 Kbps
90
link terestrial 56 Kbps
75 60 30
25 %
50 %
75 %
100 %
Utilisasi
Gambar 3.10 Grafik metrik routing revised ARPANET terhadap utilisasi link Ada satu isu yang tersisa berkaitan dengan perhitungan bobot link : seberapa
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
100 Jaringan Komputer
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.
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 merupakan salah satu penyebab Internet dapat berkembang (secara skala) dengan sangat pesat. Pengalamatan dan routing di Internet secara spesifik akan dipaparkan pada bab berikutnya.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
101 Jaringan Komputer
Perangkat Keras Switching Apakah suatu switch harus menangani virtual circuit atau datagram, paket dengan ukuran bervariasi atau cell dengan ukuran tetap (seperti pada ATM), isu dasarnya tetap sama. Suatu switch adalah perangkat dengan sejumlah input, sejumlah output dan berfungsi untuk sebanyak mungkin meneruskan paket dari input ke output yang tepat. Yang telah dipaparkan pada bagian sebelumnya adalah penentuan output port yang tepat untuk meneruskan suatu paket. Pada bagian ini, akan dipaparkan teknik-teknik untuk dapat meneruskan paket dari input ke output yang tepat secepat mungkin. Sebagaimana telah dijelaskan, performansi dari switch yang diimplementasikan secara software pada komputer general-purpose salah satunya akan dibatasi oleh bandwidth dari bus I/O. Karena tiap paket harus melalui bus dua kali –pertama dari adaptor ke memori dan kedua dari memori kembali ke adaptor–, maka dengan mudah dapat disimpulkan bahwa komputer dengan bandwidth bus I/O sebesar 1 Gbps hanya akan mampu menangani paling banyak sepuluh link T3 (45 Mbps), tiga link STS-3 (155 Mbps) dan bahkan tidak dapat menangani satu link STS-12 (622 Mbps). Mengingat tujuan utama dari switch adalah untuk menghubungkan sebanyak mungkin link, maka situasi ini tentu saja tidak ideal. Karena itu, switch biasanya diimplementasikan dengan perangkat yang memang dirancang khusus sesuai dengan tujuan switch.
Tujuan Perancangan Ada dua tantangan utama dalam perancangan perangkat keras switching. Yang pertama adalah throughput –jumlah paket yang dapat diteruskan oleh switch tiap detiknya–, yang kedua adalah skalabilitas –berapa banyak port input / output yang dapat dihubungkan–. Sebelum lebih jauh membahas kedua tantangan tersebut, ada satu terminologi yang perlu diperkenalkan. Switch biasanya dideskripsikan dengan jumlah input dan output yang dimilikinya. Switch n x m (n by m) adalah switch yang memiliki n buah input dan m buah output, biasanya n = m (terutama jika switch menghubungkan link-link yang bersifat bidirectional). Switch biasanya juga menghubungkan link-link dengan kecepatan yang sama, namun ada kalanya switch harus menghubungkan link-link yang berbeda kecepatan. Throughput Mendefinisikan throughput dari switch ternyata tidak mudah. Secara intuitif, karena switch memiliki n buah input dimana masing-masing input memiliki kecepatan sn, maka throughput akan setara dengan total penjumlahan sn. Angka yang didapat merupakan throughput maksimal yang dapat disediakan oleh switch, namun pada kenyataannya tidak ada switch yang dapat mencapai performansi seperti itu. Alasannya sederhana saja : misalkan pada suatu saat trafik yang datang dari seluruh input harus diteruskan melalui satu output yang sama, selama bandwidth dari output kurang dari total bandwidth input, maka sebagian dari trafik input terpaksa harus
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
102 Jaringan Komputer
mengantri atau bahkan dibuang karena keterbatasan buffer. Pada kasus dengan pola trafik seperti itu, switch tidak akan dapat menyediakan throughput lebih besar daripada kecepatan satu output port. Hal pertama yang perlu diperhatikan dari contoh diatas adalah bahwa throughput switch merupakan fungsi dari trafik yang akan diprosesnya. Salah satu masalah yang dihadapi para perancang switch adalah mendapatkan model trafik yang serupa dengan trafik aslinya. Ada banyak elemen dalam memodelkan trafik, diantaranya : kapan suatu paket tiba di switch, output mana yang akan ditempuh dan seberapa besar ukuran trafik tersebut. Pemodelan trafik telah menjadi ilmu tersendiri dan banyak membantu dalam dunia komunikasi telepon. Pemodelan itu memungkinkan perusahaan telepon untuk merancang jaringannya dengan efisien sesuai dengan beban yang diramalkan. Hal ini dapat dilakukan karena kecenderungan orang utnuk menggunakan telepon tidak terlalu banyak berubah sejalan waktu : frekwensi pemanggilan, rentang waktu terjadinya percakapan, dan kecenderungan penggunaan telepon pada hari-hari (dan waktu-waktu) tertentu. Sebaliknya, pesatnya perkembangan komunikasi komputer, dimana aplikasi sepeti World Wide Web dapat mengubah pola trafik dalam semalam, telah menjadikan pemodelan trafik jaringan komputer lebih kompleks. Disamping sulitnya mendapatkan model trafik, masalah yang harus dihadapi dalam perancangan switch adalah contention. Contoh diatas (mengirimkan semua input trafik ke satu output) mengilustrasikan masalah contention ini. Jenis contention seperti ini boleh dibilang tidak terelakkan, mengingat trafik dari input tidak akan dapat dilewatkan melalui output melebihi apa yang dapat dihantarkan oleh link yang terhubung kepadanya. Sebagian besar rancangan switch juga berhubungan dengan tingkat contention internal, dimana jumlah contention pada beban trafik yang berbeda akan menentukan performansi dari switch. Skalabilitas Biasanya jumlah perangkat yang dibutuhkan untuk membangun suatu switch merupakan fungsi dari jumlah input dan output. Masalahnya adalah : seberapa cepat peningkatan harga perangkat terhadap peningkatan n? Sebagai contoh, rancangan switch dimana harga perangkat meningkat setara dengan n2 dikatakan lebih skalabel dibanding yang meningkat setara dengan n3. Lebih jauh lagi, sebagian besar rancangan switch terbentur pada jumlah maksimum input dan output, contohnya karena keterbatasan panjang kabel untuk dapat beroperasi pada kecepatan penuh atau karena telah melebihi batas penyebaran pada perangkat. Dengan demikian, skalabilitas dapat diukur dengan laju peningkatan biaya dan ukuran maksimum switch yang mungkin. Setidaknya ada dua pilihan pendekatan dalam merancang jaringan besar : menggunakan beberapa switch dengan skala besar atau menggunakan banyak switch berukuran kecil.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
103 Jaringan Komputer
Port dan Fabric Secara konseptual, rancangan switch tidak akan terlalu jauh berbeda dengan yang tampak pada Gambar 3.11, terdiri dari sejumlah port input dan output serta sebuah fabric. Port digunakan untuk berkomunikasi dengan dunia luar. Didalamnya terdapat interface dengan media fisik (komponen pengirim dan penerima), buffer untuk menyimpan sementara paket yang akan dikirim ke fabric atau yang menunggu untuk ditransmisikan dan rangkaian lainnya. Fabric melakukan tugas ‘sederhana’ : jika ada paket datang, teruskan ke port output yang tepat.
Port Input
Port Output Fabric
Port Input
Port Output
Gambar 3.11 Switch 2 x 2 Salah satu tugas port adalah berurusan dengan kompleksitas dari ‘dunia nyata’ sedemikian hingga fabric dapat melakukan tugas ‘sederhana’-nya tanpa perlu dipusingkan dengan masalah lain. Misalkan suatu switch digunakan dalam model komunikasi dengan virtual circuit, maka proses pembukaan dan penutupan hubungan serta pengelolaan virtual circuit menjadi tangung jawab port. Port memiliki table VCI yang sedang digunakan, lengkap dengan informasi tentang output yang akan digunakan untuk meneruskan paket dari setiap VC dan menjamin agar VCI selalu unik untuk tiap link. Demikian juga dengan port pada switch di jaringan datagram, ada tabel yang memetakan antara alamat datagram dengan port output. Secara umum, saat paket dikirimkan dari port input ke fabric, port telah mengetahui melalui port output yang mana paket tersebut harus diteruskan (baik menggunakan set-up fabric atau dengan mencantumkan informasi tersebut pada paket). Fungsi utama dari port sebenarnya adalah buffering. Beberapa rancangan fabric memiliki buffer internal, namun demikian pada hampir semua kasus selalu disediakan buffer pada port. Rancangan buffer tersebut (dari aspek kapasitas dan mekanisme pengelolaan data) akan turut menentukan performansi switch. Patut diperhatikan bahwa fungsionalitas, ukuran dan harga switch lebih banyak ditentukan oleh port daripada fabric. Buffering dapat terjadi baik pada port input, output ataupun di dalam fabric (internal buffering). Pada beberapa contoh switch berikut, akan dipparkan buffering internal dan buffering pada port output. Tidak ada rancangan yang menggunakan buffering pada port input, karena keterbatasan yang dimilikinya. Cara termudah membangun buffer input adalah menggunakan disipin antrian FIFO. Saat paket tiba
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
104 Jaringan Komputer
di switch, akan langsung dimasukkan ke buffer input. Switch kemudian akan berusaha meneruskan paket yang terletak paling awal dari tiap antrian ke port output yang tepat. Jika suatu saat paket paling depan pada sejumlah antrian port input harus dilewatkan pada port output yang sama, maka hanya satu saja yang dapat diteruskan, yang lain harus menunggu di antriannya masing-masing. Hal ini membawa masalah lain, paket-paket yang harus menunggu di antriannya masing-masing tersebut akan menghalangi paket lain dibelakangnya untuk dapat dilayani (diteruskan ke port output yang tepat), meski sebenarnya tidak ada contention pada outputnya. Fenomena ini dikenal dengan head-of-line-blocking. Contoh sederhan adari masalah ini tampak pada Gambar 3.12, dimana ada paket yang harusnya diteruskan melalui port 2 terhalang dibelakang paket yang harus menunggu untuk dilewatkan melalui port 1. Jika trafik terdistribusi secara uniform pada seluruh output, maka head-of-line-blocking akan membatasi throughput dari switch hanya 59% dari nilai maksimum teoritisnya.
1 2
1
Switch
Port 1 Port 2
Gambar 3.12 Ilustrasi head-of-line-blocking
Switch Crossbar Rancangan switch crossbar sangat sederhana, seperti terlihat pada Gambar 3.13. Di sini, masalah contention hanya muncul pada port output. Setiap input pada switch terhubung ke setiap output. Kompleksitas switch hanya terletak pada modul kecil di depan tiap output. Modul ini melakukan dua fungsi : 1. mengenali paket yang memang ditujukan ke output tersebut (hal ini penting, mengingat fabric meneruskan semua input ke setiap output) 2. menangani contention yang muncul saat beberapa paket dikirimkan ke output yang sama pada satu saat Secara umum, kompleksitas dari port output akan meningkat setara atau bahkan lebih cepat dibanding jumlah input n. Karena switch juga memiliki n buah output, maka kompleksitas dari switch secara keseluruhan setidaknya akan meningkat setara dengan n2. Namun demikian, ada rancangan yang cukup menarik berkaitan dengan port output yang menjadikan kompleksitas hanya meningkat setara dengan n. Salah satu contohnya adalah switch Knockout yang dirancang oleh Yeh, Hluchyj dan Acampora.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
105 Jaringan Komputer
Gambar 3.13 Switch crossbar 2 x 2
Switch Knockout Sebetulnya switch Knockout tidak dapat dikatakan sebagai crossbar sempurna, karena digunakan asumsi berkaitan dengan trafik untuk mereduksi kempleksitas port output. Crossbar yang sesungguhnya harus dapat menangani situasi dimana setiap input memiliki paket untuk diteruskan melalui suatu output pada waktu yang sama. Untuk switch yang berukuran kecil, seperti yang terlihat pada Gambar 3.13, implementasinya relatif mudah. Namun tidak demikian halnya untuk switch yang berukuran besar. Pada skenario trafik yang masuk akal, kecenderungan adanya paket banyak input yang harus diteruskan ke satu output pada saat yang bersamaan bisa dibilang sangat kecil. Dengan demikian, tidak berlebihan jika ide yang melatarbelakangi pembangunan switch adalah merancang port output yang dapat menerima l buah paket secara simultan, dimana l < n. Nilai l haruslah dipilih sekecil mungkin utuk menekan biaya, namun harus cukup besar sehingga kecenderungan kedatangan paket secara bersamaan yang lebih besar dari l menjadi sangat kecil. Lagi-lagi masalah ini berkaitan dengan pemodelan trafik; lebih mudah menentukan nilai l jika diasumsikan trafik yang masuk ke setiap port input bersifat independen terhadap trafik yang masuk ke port yang lain. Sayangnya asumsi tersebut tidak dapat berlaku umum, misalkan pada kasus dimana satu port output terhubung ke suatu Web server yang cukup populer. Fenomena seperti ini, dimana trafik terkumpul pada suatu port dari switch dikenal dengan istilah hot spot, dan akan muncul pada lingkungan dimana banyak client berkomunikasi dengan satu server. Port output dari switch Knockout terdiri dari tiga bagian, yakni : •
sekumpulan filter paket untuk mengenali apakah paket tersebut betul-betul ditujukan ke port tersebut atau tidak
•
bagian ‘knockout’, disebut juga concentrator, memilih l paket dari sejumlah paket yang akan diteruskan melalui port output tersebut dan membuang sisanya (pada kasus yang diharapkan sangat jarang terjadi)
•
antrian yang pada satu saat hanya dapat menyimpan l buah paket sementara menunggu ditransmisikan
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
106 Jaringan Komputer
Filter menggunakan perangkat keras pencocokan sederhana untuk melakukan identifikasi paket yang memuat nomor port output yang sesuai dengannya. Tugas konsentrator dapat dikatakan yang paling berat, mengingat pemilihan paket harus berdasar atas asas keadilan. Tidak boleh ada port input yang mendapat perlakuan tidak adil setiap kali port output kelebihan beban. Keadilan dicapai dengan ‘mempertarungkan’ antar paket dalam ‘turnament knockout’ untuk mendapatkan l buah pemenang dari n kontestan. Setiap ‘pertandingan’ melibatkan dua paket. Kedua paket tersebut berkompetisi dengan memasuki elemen switch 2 x 2, yang kemudian dipilih pemenangnya secara acak. Proses untuk mendapatkan l paket terlihat pada Gambar 3.14, dengan n = 8 dan l = 4. Untuk menyederhanakan masalah, untuk selanjutnya diasumsikan paket memiliki panjang yang sama. Input
D
D
D
D
D
D
D
D
D
D
D
D
D
D
1
2
3
4
Output
Gambar 3.14 Konsentrator knockout 8 ke 4 Turnamen tersebut dapat dibayangkan memiliki l bagian masing-masing untuk mendapatkan juara satu, dua, tiga dan seterusnya hingga juara ke-l. Bagian pertama adalah turnamen knockout tradisional untuk mendapatkan juara pertama. Semua yang kalah akan berkompetisi kembali untuk menjadi juara ke-dua. Semua paket yang
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
107 Jaringan Komputer
kalah pada putaran ke-dua akan berkompetisi pada putaran ke-tiga, demikian seterusnya. Jika suatu paket terus-menerus kalah dalam l kompetisi, maka terpaksa harus dibuang. Jika ada ronde dalam suatu putaran dimana ada sejumlah ganjil paket, maka harus ada satu paket yang harus menunggu dalam elemen delay (kotak bertanda ‘D’) sebelum bertanding di ronde berikutnya. Elemen delay ini juga digunakan agar semua paket pemenang keluar pada bagian output secara bersamaan, meski masingmasing mengalami pertandingan yang jumlahnya tidak sama banyak. Hal lain yang menarik dari rancangan knockout adalah buffer outputnya, yang harus dapat menampung hingga l buah paket dalam satu siklus dan kemudian mengirimkan satu paket per siklus berikutnya. Dalam implementasinya digunakan sebuah shifter dan array l buah buffer, seperti terlihat pada gambar 3.15. a) Shifter
Buffer
b) Shifter
Buffer
c) Shifter
Buffer
Gambar 3.15 Skema shifter dan buffer pada switch knockout : a) Dua paket tiba; b) Empat paket tiba, satu paket ditransmisikan; c) Tiga paket tiba, satu paket ditransmisikan Shifter akan menempatkan paket yang datang pada buffer yang berlainan Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
108 Jaringan Komputer
dengan mekanisme round-robin. Dengan demikian isi setiap buffer tidak akan pernah berbeda lebih dari satu dengan buffer yang lain. Pada saat yang bersamaan, paket juga ditransmisikan (keluar dari buffer secara FIFO) dengan mekanisme urutan roundrobin juga sehingga urutan paket tetap dapat dipertahankan. Jika jumlah paket yang tiba pada tiap siklus lebih dari sebuah pada rentang waktu tertentu, maka mungkin terjadi kasus overflow pada buffer. Untuk dapat melakukan estimasi kompleksitas switch dengan ukuran input n, dan sekaligus mengevaluasi skalabilitasnya, digunakan nilai l yang tetap dan tidak terlalu besar namun masih memberikan performansi yang bagus. Karena ukuran buffer akan membesar setara dengan l, maka biayanya akan konstan. Kompleksitas konsentrator untuk nilai n yang besar akan mendekati n x l, sehingga dapat dikatakan bahwa kompleksitas akan membesar setara dengan n. Jumlah filter paket yang dibutuhkan tiap port sama dengan n. Dengan demikian kompleksitas dari port output (yang lebih banyak ditentukan oleh konsentrator) proporsional dengan n. Karena ada n buah port output, maka total kompleksitas switch secara kasar akan sebanding dengan n2. Kelemahan desain switch knockout ini terutama pada asumsi yang digunakan (trafik yang masuk pada port input yang berbeda bersifat independen dan memiliki kecenderungan untuk tersebar secara merata pada seluruh port output). Kompleksitas n2 juga sebetulnya masih terlalu mahal. Berikutnya akan dipaparkan rancangan lain untuk mengatasi masalah skalabilitas ini.
Self-routing fabric Self-routing fabric adalah kelas dimana switch tersusun atas sejumlah elemen switching kecil yang saling terhubung. Paket akan menempuh jalurnya sendiri melalui fabric, tergantung pada urutan keputusan lokal yang diambil pada tiap elemen switch kecil tersebut. Gamabr 3.16 menunjukkan salah satu tipe self-routing fabric yang dikenal dengan nama banyan network (karena strukturnya mirip dengan pohon beringin). Disebut network karena memang fabric-nya merupakan jaringan mini didalam switch. Prinsip umum dibalik self-routing fabric adalah tiap paket membawa cukup informasi dalam headernya yang memunginkan elemen switching kecil untuk mengambil keputusan secara lokal, tanpa harus berkonsultasi dengan elemen lain atau sentral pengendali. Hal ini dilakukan dengan menambahkan header ekstra kepada paket saat melewati port input (sebelum memasuki fabric) yang kemudian akan dibuang kembali oleh port output sebelum ditransmisikan ke switch berikutnya. Header ini dikenal dengan nama self-routing header. Pada switch yang mengunakan virtual circuit, VCI yang terdapat pada paket yang tiba digunakan untuk mencari nomor port output yang tepat, nomor port output ini kemudian akan ditempatkan pada self-routing header.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
109 Jaringan Komputer
Gambar 3.16 Banyan Network dengan 8 input
Banyan Networks Self-routing fabric seringkali dibangun dari elemen switching 2 x 2 sehingga proses switching pada tiap elemen hanya melibatkan satu bit pada self-routing header. Sebagai contoh, switch 2 x 2 dalam banyan network hanya akan melihat satu bit dalam self-routing header, kemudian meneruskan paket tersebut melalui ouput bagian atas jika bit tersebut bernilai 0 dan akan melalui output bagian bawah jika bit tersebut bernilai 1. Jika ada lebih dari satu paket tiba pada suatu elemen banyan pada waktu yang bersamaan dan bit-nya bernilai sama sehingga harus diteruskan melalui port output yang sama pula, maka akan timbul masalah collision (tabrakan). Masalah tabrakan ini merupakan tantangan utama dalam perancangan switch self-routing. Banyan network yang terdiri dari elemen-elemen switch 2 x 2 ditata sedemikian rupa sehingga dijamin tidak akan terdapat collision pada jalur sejumlah paket yang telah terurut naik berdasarkan nomor port tujuannya. Gambar 3.17 mengilustrasikan salah satu contoh kasus switching pada banyan network. 001 011
001
101 110
011
111 101 110 111
Gambar 3.17 Routing paket melalui banyan network Pada contoh diatas, elemen-elemen switch pada kolom pertama akan melihat Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
110 Jaringan Komputer
most significant bit dari nomor port output yang termuat dalam self-routing header, kemudian meneruskan paket sesuai dengan nilai bit tersebut (ke port atas jika bit bernilai 0 dan kebawah jika bit bernilai 1). Elemen-elemen switch pada kolom kedua akan melihat bit kedua (dari kiri), demikian seterusnya. Semua paket dapat diteruskan ke port output yang tepat tanpa adanya tabrakan. Perlu diperhatikan bahwa port output atas dari elemen switch pada kolom pertama akan menuju ke elemen switch separuh atas dari kolom kedua, sementara port output bawah akan menuju ke elemen switch paruh bawah dari kolom kedua. Dengan demikian, setelah melewati kolom pertama, jalur paket telah separuh benar. Kolom kedua memperkecil kemungkinan pilihan sehingga jalur kini telah tiga per empat benar. Kolom terakhir menuntaskan pencarian jalur. Yang menarik di sini adalah penataan elemen switch untuk menghindari tabrakan. Penataan itu sendiri melibatkan ‘perfect shuffle’ pada awal network. Terlihat bahwa banyan network dengan n buah input memerlukan log2 n tahap, dengan masing-masing tahap terdiri dari n/2 elemen switching. Dapat disimpulkan bahwa kompleksitas switch jenis ini setara dengan n log2 n.
Perfect shuffle adalah fungsi permutasi khusus yang diajukan oleh Harold Stone (1971) untuk aplikasi pemrosesan paralel. Pemetaan yang digunakan untuk mendapatkan perfect shuffle adalah sebagai berikut : 000
000
001
001
010
010
011
011
100
100
101
101
110
110
111
111
Batcher Networks Meskipun banyan network dapat menemukan jalur tanpa ada tabrakan, hal itu dapat terjadi jika syarat keterurutan paket (berdasar nomor port output) terpenuhi. Untuk mengeliminasi syarat ini, diperlukan ‘sesuatu’ yang ditambahkan sebelum banyan network untuk mengurutkan terlebih dahulu paket berdasar nomor port outputnya. Batcher network adalah network yang dirancang untuk melakukan hal
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
111 Jaringan Komputer
seperti itu. Jika Batcher network (seperti terlihat pada Gambar 3.18) diletakkan didepan banyan network, maka akan didapat Batcher-banyan fabric yang memiliki sifat nonblocking (tidak akan terjadi tabrakan) selama paket-paket ditujukan pada port output yang berbeda-beda.
Gambar 3.18 Batcher network 8 x 8. Yang diarsir merupakan elemen yang akan meneruskan paket dengan nomor lebih tinggi keatas. Elemen switching yang terdapat pada Batcher network bekerja dengan cara yang sangat berbeda dengan yang terdapat pada banyan network. Elemen switching tersebut melakukan perbandingan menyeluruh terhadap angka pada self-routing header, kemudian meneruskan paket yang memiliki angka lebih tinggi ke satu port output sementara yang lebih rendah ke port output yang lain. Jika ternyata kedua nilai sama, maka dilakukan pemilihan secara acak. Ada dua jenis elemen switch pada Batcher network : elemen yang melakukan pengurutan ‘naik’ (meneruskan paket dengan nomor lebih tinggi ke port sebelah atas) dan elemen yang melakukan pengurutan ‘turun’ (meneruskan paket dengan nomor lebih tinggi ke port sebelah bawah). Batcher network sebetulnya mengimplementasikan algoritma merge-sort secara rekursif dalam bentuk hardware. Untuk mendapat gambaran yang lebih jelas tentang cara kerjanya, dapat diambil enam elemen switching di bagian kiri atas dari Gambar 3.18. Elemen dasar 2 x 2 dapat mengurutkan dua buah paket. Karena digunakan satu elemen ‘naik’ dan satu elemen ‘turun’, maka akan didapat dua list terurut dengan masing-masing dua anggota –satu terurut naik (ascending) dan satu lagi terurut turun (descending)–. Dengan menggunakan dua kolom elemen ‘turun’ lagi, dapat dilakukan penggabungan (merge) kedua list tersebut menjadi satu list terurut naik dengan empat anggota. Sementara itu, enam elemen di bagian kiri bawah juga melakukan hal yang serupa (dengan mengganti elemen ‘naik’ menjadi ‘turun’ dan sebaliknya). Akhirnya akan menghasilkan list empat paket yang terurut turun. Tiga kolom yang terdiri atas elemen ‘turun’ kemudian akan menggabungkan kedua list tersebut menjadi satu list
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
112 Jaringan Komputer
dengan delapan anggota. Ilustrasi contoh kasus tampak pada Gambar 3.19. Nomor port output sengaja disajikan dalam desimal untuk memudahkan penelusuran jalur masing-masing paket melewati elemen-elemen switching.
Terurut naik
2
0
2
2
1
1
1
7
7
5
2
6
3
1
5
5
1
5
2
0
2
1
7
7
4
2
3
0
4
6
3
5
6
6
0
4
5
6
5
4
4
6
3
0
4
6
3
3
3
0
7
7
1 0
Input
Terurut turun
4
7 Output
Gambar 3.19 Contoh kasus switching dengan Batcher network Jumlah tahapan pada Batcher network dengan n buah port input adalah log2 n x (1+log2 n) / 2. Karena terdapat n / 2 buah elemen switching pada tiap tahap, maka kompleksitas total akan setara dengan n log22 n.
Sunshine Switch Dengan kombinasi batcher dan banyan network, tidak ada lagi syarat paket input harus sudah dalam keadaan terurut naik berdasarkan nomor port output-nya. Namun sebetulnya masih ada satu syarat lagi yang masih harus dipenuhi, yakni : tidak boleh ada lebih dari satu paket yang ditujukan pada satu port output. Jika ada kasus duplikasi nomor port output, maka terpaksa ada paket yang harus dibuang. Ada beberapa arsitektur switch yang berupaya menutupi kelemahan Batcher-banyan network ini, salah satunya adalah switch Sunshine. Seperti terlihat pada Gambar 3.20, switch Sunshine melengkapi Batcher-banyan network dengan tiga elemen, yakni : trap, selektor dan delay. Digunakan pula beberpa banyan yang beroperasi secara paralel. Dengan digunakannya beberapa banyan, maka dimungkinkan adanya beberapa paket melalui port output yang sama pada waktu yang bersamaan. Seperti halnya switch Knockout, port output juga harus dapat menangani l buah paket pada waktu yang bersamaan (jika digunakan l buah banyan secara paralel). Jika ada lebih dari l paket yang ditujukan ke port output yang sama
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
113 Jaringan Komputer
pada suatu siklus, maka sejumlah paket lebih tersebut akan disirkulasi ulang melalui elemen delay dan dimasukkan kembali ke switch pada siklus berikutnya. Ini berarti Batcher network harus dapat menangani (n+k) paket, dimana n paket berasal dari input sementara k paket merupakan paket yang mengalami sirkulasi ulang. Trap network mengidentifikasi paket yang akan diteruskan ke banyan (maksimal l paket per port output) dan menandai sisanya yang harus disirkulasi ulang. Selektor akan melihat, jika ada l buah paket yang ditujukan ke port output yang sama maka masingmasing akan dikirim ke banyan yang berbeda untuk menghindari tabrakan, sementara sisanya akan dikirim ke elemen delay. Tiap paket memuat field prioritas yang nilainya akan dinaikkan satu setiap kali ia mengalami sirkulasi ulang. Hal ini dilakukan untuk menjamin paket yang ‘lebih tua’ akan memiliki peluang yang lebih besar untuk diteruskan ke banyan dibanding paket yang baru datang, juga untuk menjamin keterurutan paket saat melewati switch (menjadi salah satu syarat pada jaringan ATM). k
Input
n
Batcher
k
Delay
n+k
Trap
n+k
Selektor
n n n
n l Banyan
n n
Output
Gambar 3.20 Switch Sunshine Switch Sunshine dapat dikatakan merupakan rancangan dengan kompromi yang paling optimal. Kompleksitasnya lebih rendah dibanding switch Knockout, dan tidak pernah membuang paket jika jumlah inputnya melebihi l (melakukan sirkulasi ulang). Satu-satunya kemungkinan kehilangan paket terjadi jika paket yang harus mengalami sirkulai ulang melebihi k. Para perancang Sunshine telah melakukan simulasi dan menganalisa rancangannya dengan sejumlah variasi skenario trafik, dan akhirnya disimpulkan bahwa kemungkinan kehilangan paket akan dapat ditekan seminimal mungkin dengan pemilihan nilai l dan k yang tepat.
Shared Media Switches Ada banyak lagi cara untuk membangun switch. Salah satu metode yang populer adalah dengan membuat miniatur jaringan shared media (misal FDDI) dan menggunakannya sebagai switching fabric. Switch yang dibangun dengan metode ini memiliki keterbatasan pada aspek skalabilitas. Saat ukuran switch diperbesar, ada kemungkinan sumber daya yang dipakai bersama tidak sanggup menangani (overload), kecuali peningkatan ukuran juga diimbangi dengan peningkatan kecepatan dari sumber daya yang digunakan. Salah satu contoh switch shared media, Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom
114 Jaringan Komputer
Mux
Buffer memory
Write control
Demux
...
Input
...
yakni switch shared memory tampak pada Gambar 3.21.
Output
Read control
Gambar 3.21 Switch shared memory Hal yang menarik dari switch shared memory adalah pada dasarnya switch ini memiliki satu buffer yang besar. Cara kerjanya mirip dengan crossbar, hanya saja lebih baik. Karena buffer digunakan bersama oleh seluruh port output, maka tingkat utilitas buffer juga akan lebih baik. Crossbar yang menggunakan buffer pada masingmasing port output akan membuang paket hanya jika kecepatan kedatangan paket pada satu output melebihi kecepatan transmisinya, dan jika kasus tersebut berlangsung terus menerus pada rentang waktu tertentu sehingga akhirnya buffer tidak cukup menampungnya. Konsekuensinya, pada tiap output harus disediakan buffer yang cukup besar untuk mengurangi kemungkinan terjadinya overflow. Namun demikian, sangat kecil kemungkinannya terjadi overflow pada seluruh port output secara bersamaan, sehingga akan sangat menguntungkan jika buffer yang sedang tidak terpakai pada port lain dapat dipinjam untuk mengatasi overflow pada suatu port output. Ide inilah yang mendasari penggunaan shared buffer memory. Switch pada Gambar 3.21 hanya mampu menulis satu paket ke shared memory pada satu saat. Ini berarti bus yang menghubungkan multiplexer ke memory harus dapat berjalan n kali lebih cepat daripada masing-asing jalur input. Tiap kali ada paket yang tiba, header-nya diteruskan ke write control. Setelah melihat nomor port tujuan dari paket, write control akan mencari alamat buffer yang kosong, menuliskan paket ke alamat tersebut dan menghubungkannya dengan linked-list yang berasosiasi dengan port output yang dituju. Read control akan mengambil paket dari linked-list pada tiap port output, mengirimkan paket ke port yang dituju melalui demultiplexer dan membebaskan kembali lokasi memori yang baru saja dibaca. Faktor yang membatasi ukuran switch jenis ini adalah kecepatan modul kontrol, karena modul kontrol ini tidak dapat dipercepat hanya dengan menambah ukurannya.
Fazmah Arif Yulianto Sekolah Tinggi Teknologi Telkom