Anda di halaman 1dari 119

Jaringan

Tugas Mata Kuliah PTI

Komputer Kelompok 4

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 19
Layering dan Protokol 19
Arsitektur OSI 25
Arsitektur Internet 26

Jaringan-jaringan Terhubung-Langsung _ 29

Komponen Perangkat Keras 30


Node 30
Link 31

Pengkodean 33

Framing 37
Protokol Berorientasi Byte 38
Protokol Berorientasi Bit 39
Framing berbasis clock 41
Deteksi Kesalahan 43
Cyclic Redundancy Check 43
Parity Dua Dimensi 46
Internet Checksum 46

Transmisi yang Handal 47


Stop-and-Wait 48
Sliding Window 50
Concurrent Logical Channel 54

Token Ring 55
Format Frame 55
MAC (Medium Access Control) 56
Topologi fisik jaringan Token Ring 59

FDDI (Fiber Distributed Data Interface) 59


Spesifikasi FDDI 60
Format frame FDDI 61
Medium Access Control FDDI 62
Pengalokasian bandwidth 62
Media fisik FDDI 63
Jenis node FDDI 64
Algoritma Timed-Token 66
Pemeliharaan Token 68

Ethernet 69
Properti Fisik 70
Ethernet dan IEEE 802.3 71
Format frame 72
Alamat 73
Algoritma pengirim 74

Packet Switching 76

Switching dan Forwarding 77


Source Routing 78
Virtual Circuit 80
Datagram 83
Implementasi dan Unjuk Kerja 84

Routing 86
Jaringan Sebagai Suatu Graph 86
Distance Vector 88
Link State 92
Metric 97
Routing, Pengalamatan dan Hirarki 100

Perangkat Keras Switching 101


Tujuan Perancangan 101
Port dan Fabric 103
Switch Crossbar 104
Self-routing fabric 108
Shared Media Switches 113
1 Dasar-dasar
Jaringan Komputer
M isalkan suatu saat dibutuhkan suatu jaringan komputer yang memiliki
kemampuan untuk mendukung berbagai macam aplikasi (teleconference, video-on-
demand, 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 masing-
masing 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
(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 melalui 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 fungsi-
fungsi 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 / 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 system 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 :

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-to-
point 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 blok- blok diskrit
(sering disebut dengan packet atau message).

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.

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)
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.
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.

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 Round-
Robin, 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
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.
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
mempedulikan urutan kedatangan message? Apakah jaringan harus menjamin bahwa
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 tersebut 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 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 mengalirkan 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 video- on-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
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 tiba- tiba) yang berinterferensi dengan
sinyal transmisi data. Bit error ini sangat jarang terjadi; probabilitas terjadinya sekitar
-6 -7
10 sampai 10 pada kabel tembaga dan sekitar
-12 -14
10 sampai 10 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
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
dan mengirim atau menerima bit data tiap detik).

a)

b)

Gambar 1.7. Lebar bit yang ditransmisikan pada link : a) 1 Mbps b) 2 Mbps

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
8
lainnya, meski harus hati-hati karena cahaya merambat 3,0 x 10 meter per detik
8 8
dalam ruang hampa, 2,3 x 10 dalam kawat dan 2,0 x 10 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
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
10 3
dengan konteksnya. Sebagai contoh, kilo dapat berarti 2 atau 10 dan mega dapat
20 6
berarti 2 atau 10 . 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
6
mentransmisikan bit dengan kecepatan 10 Mbps. Karena mega dalam Mhz berarti 10
6
hertz, maka Mbps juga didefinisikan sebagai 10 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
20
pangkat dari dua power of two), maka mega disini berarti 2 .
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
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
-3 6
mili detik dan bandwidth 45 Mbps akan dapat memuat 50 x 10 detik x 45 x 10 bit /
6
detik = 2,25 x 10 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
6
pengiriman data, telah ada data sebanyak 5,5 x 10 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
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
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 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.

Aplikasi

Kanal Kanal message


request/reply 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 operasi-
operasi 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 local 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

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.
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 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 control (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 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.

Gambar 1.12 Enkapsulasi


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 di- demultiplex 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 proseske proses. Disini, unit data yang dipertukarkan
lebih sering disebut dengan istilah message.
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) Amerika
Serikat. Internet dan ARPANET telah ada sebelum disusunnya arsitektur OSI, dan
pengalaman pembangunan keduanya memberikan sumbangan yang besar terhadap
model referensi OSI.
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 bermacam-
macam 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. 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.
Jaringan-jaringan

J
2 Terhubung Langsung
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 lain-
lain. Cakupan areanya bisa jadi hanya kecil (misal : satu gedung perkantoran) atau
mungkin juga mencakup daerah yang luas (missal : 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 masalah- masalah 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–).
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 special- purpose. Hal ini
dilakukan dengan alasan unjuk kerja : perangkat yang dirancang- bangun secara khusus
akan dapat beroperasi lebih cepat dibanding perangkat general- purpose. 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 (Network)

Memory

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
dijaringan (aspek lain yang juga terbatas adalah bandwidth) menjadikannya harus
dikelola dengan baik agar dapat menyediakan layanan yang adil
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
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-to-
point yang hanya dapat menghantarkan satu arah aliran bit tiap saat, disebut half-
duplex, 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
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. Bahasan-
bahasan 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 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 :
 Sinyallow 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.

 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%.

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
0101 01011
Framing 0110 01110
Pada Bab 1 telah 0111 01111
disebutkan bahwa fokus bahasan 1000 10010
ini adalah pada jaringan packet
switched, yang berarti blok-blok 1001 10011
data (pada level ini disebut 1010 10110
frame) bukan bit stream akan
dipertukarkan antar node. Pada 1011 10111
Gambar 2.5, saat node A 1100 11010
ingin mengirim frame ke node
B, maka node A akan 1101 11011
memerintahkan adaptor untuk 1110 11100
metransmisikan frame yang
telah tersimpan dalam memori 1111 11101
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 Node B
Bits
Adaptor 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.
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) yang 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 protocol 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
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.

a) 8 8 8 8 8 16
SOH
SYN

SYN

STX

ETX
Header Bod CRC
y

8 8 8 8 128 8 8 16
DLE

b) ETX
SYN

SYN

DLE

STX

Header Body 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 karakter sentinel
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 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
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 contohini, field COUNT
menspesifikasikan berapa banyak byte yang ada dalam field BODY.

8 8 8 14 42 16
SYN

SYN

Class

Count Header Bod CRC


y
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
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 16 8

Beginning Ending
Sequence Header Bod CR
Sequence
y C
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.

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.

Overhead Payload

9 baris

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
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.
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.

Hdr

Hdr

Hdr
STS-1 STS- STS-1
1

Header 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 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
7 4 3 1
sebagai M(x) = x +x +x +x . Selanjutnya ditentukan suatu polinom lain C(x) yang
3 2
berderajat k. Sebagai contoh C(x) = x +x +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
k
dilakukan adalah mengalikan M(x) dengan x sehingga untuk contoh tadi akan didapat
10 7 6 4
x +x +x +x 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.

1 1 1 1 1 0 0 1

C(x) 1 1 0 1 1 0 0 1 1 0 1 0 0 0 0 M(x)

1 1 0 1

1 0 0 1

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
1 0 0 0

1 1 0 1
1 0 1 Remainder
Gambar 2.11. Perhitungan CRC
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
i
direpresentasikan sebagai E(x) = x . 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 :
k 0
 Semua single-bit error, selama suku x dan x 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)
8 2 1
CRC-8 x +x +x +1
10 9 5 4 1
CRC-10 x +x +x +x +x +1
12 11 3 2
CRC-12 x +x +x +x +1
16 15 2
CRC-16 x +x +x +1
16 12 5
CRC-CCITT x +x +x +1
32 26 23 22 16 12 11 10 8 7 5 4 2 1
CRC-32 x +x +x +x +x +x +x +x +x +x +x +x +x +x +1
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.

Parity
bits

0101001 1

0
1101001
1
Data

1011110
1
0001110
1
0110100
0
1011111
Parity 0
byte 1111011

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
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.

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.
Timeout
Sender Receiver Sender Receiver

Frame 0 Frame 0

Timeout

Timeout
X
ACK 0

Timeout
Frame 1 Frame 0

ACK 1 ACK 0

Time
(a (b)
)

Sender Receiver Sender Receiver

Frame 0
Timeout

Frame 0
Timeout

ACK 0
X
ACK 0

Frame 0
Timeout

Frame 0
Timeout

ACK 0
ACK 0

Time
(c) (d)

Gambar 2.13. Empat skenario yang mungkin pada algoritma stop-and-wait.


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.
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.

Sender Receiver

...
...

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.
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
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
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-and- wait 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 stop-
and-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 frame-
frame 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
tujuan dalam menerima dan memrosesnya. Hal ini dilakukan dengan menyediakan
fasilitas dalam protokol sliding window sehingga node tujuan tidak hanya bisa meng-
ACK 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.
konnsekuensinya, protokol ini tidak dapat menjamin keterurutan data. Protokol IMP-
IMP 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.
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 Token Ring IBM IEEE 802.5


Laju data 4 atau 16 Mbps 4 atau 16 Mbps
Jumlah Stasiun 260 (STP) 250
per segmen 720 (UTP)
Topologi Star Tidak
dispesifikasikan
Media Twisted Pair Tidak
dispesifikasikan
Pensinyalan Baseband Baseband
Metode akses Token Passing Token Passing
Pengkodean Differential Differential
Manchester 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 4 1 1

Start Access Frame Dest. Source End Fram


Delimiter Address Data FCS e
Control Control Address Delimiter
Status

Gambar 2.17. Frame Data / Command

Start Access End


Delimiter Control Delimiter

Gambar 2.18. Format Token


Token
Token adalah frame khusus sepanjang 3 byte yang hanya terdiri dari start
delimiter, access control, dan end delimiter.
o 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.

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
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-of-
frame. 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 D Host C

Host A Arah pergerakan frame Host B

Gambar 2.19. Skema lojik jaringan Token Ring


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.
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 MSAU

in 1 2 3 4 5 6 7 8 o in 1 2 3 4 5 6 7 8 out
ut

MSAU

in 1 2 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.
Spesifikasi FDDI

Logical Link Control

Medium Access

Station Management
Control

Physical Layer Spesifikasi


Control FDDI

Physical Layer
Medium

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
kemedia, 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
• 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 4 1 3

Preamble Start Frame Dest. Source End Fr


Address Data FCS a
Delimiter Control Address Delimiter
m
e
St
at
us

Gambar 2.22. Format frame data

Start Frame End


Preamble Delimiter Control 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.
• 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-of-
frame. 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
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 single- mode
memiliki bandwidth yang lebih besar dan rentang kabel yang lebih panjang
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 point- to-
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,
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 Downstream
DAS 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
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 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

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 didala 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 TTRT- nya sendiri. Jika
ternyata nilainya sama, maka node akan membandingkan alamat dari 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.
‘Multipl 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).

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 teroperasi
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.

Tabel 2.6 Beberapa anggota keluarga Ethernet

Panjang
Bandwidth segmen Topologi fisikTopologi
Tipe Medium maksimum lojik
maksimum
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; Bus
extended
star
10Base-FL Multimode 10 Mbps 2000 m Star Bus
fiber optik
100Base-TX Cat 5 UTP 100 Mbps 100 m Star Bus
100Base-FX Multimode 100 Mbps 2000 m Star Bus
fiber optik
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,
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 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
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
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 melatar belakangi 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.

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 point- to-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
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
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

Switch
T1 T1
T3 T3
STS-1
STS-1

Input ports 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
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.

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 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 di- update
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.
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 paket-
paket 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).
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 identifier- nya 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 Incoming Output Outgoing


Port Identifier Port 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 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 per-
paket 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 bias 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.

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

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
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
5000 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
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. Node-
node pada graph (A sampai F) dapat mewakili host ataupun switch, namun dalam
bahasan ini graph dibatasi hanya merepresentasikan switch dan hubungannya dalam
jaringan. Hal ini dapat dilakukan, mengingat host biasanya akan terhubung ke salah satu
switch, sehingga dalam hal proses routing akan cukup diwakili oleh switch.


Graph yang ditunjukkan menggunakan garis tak berarah dan tiap garis hanya memiliki satu bobot.
Hal ini dilakukan menyederhanakan masalah. Sebetulnya akan lebih akurat jika digunakan garis
berarah dengan bobot masing-masing.

Garis yang menghubungkan dua node pada graph mewakili link pada jaringan. Tiap
garis memiliki bobot (harga), yang akan berhubungan dengan pemilihan jalur.

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.

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.

C B

E G

Gambar 3.8. Contoh jaringan


Tabel 3.3. Pengetahuan awal tentang jarak antar node

Informasi di node Jarak yang ditempuh untuk mencapai 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

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

Informasi di node Jarak yang ditempuh untuk mencapai 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
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 table-
nya. Sebagai contoh, D mengingat bahwa B-lah yang memberitahunya “C dapat aku
capai dengan satu lompatan (hop)”, sehingga D akan memasukkan ke forwarding table-
nya informasi “untuk mencapai C, gunakan link ke B”. Hal inilah yang dimaksud
dengan ‘vector’, yakni arah yang harus ditempuh untuk menngirimkan paket ke
node tujuan.
Pada prakteknya, forwarding table pada tiap node akan terdiri dari sekumpulan
‘record’ dengan format :
(Tujuan, Biaya, Node_berikut)
Tabel 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
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 dari
node yang menyadari bahwa C tidak dapat diakses, dan jaringan tidak akan pernah
kembali stabil.
Ada beberapa solusi parsial untuk mengatasi hal ini. Satu teknik digunakan untuk
memutuskan routing loop, dikenal dengan istilah split horizon. Idenya adalah saat suatu
node mengirimkan update ke tetangganya, ia tidak akan pernah mengirimkan informasi
jalur yang didapat dari tetangganya tersebut. Sebagai contoh, jika D memiliki jalur
(C,2,B) dalam tabelnya, maka node D tahu bahwa dirinya pasti mendapat informasi jalur
tersebut dari B. Dengan demikian, sewaktu D mengirimkan update ke B, informasi
(C,2) tidak akan turut dikirimkannya. Ada variasi lain dari split horizon, yang dikenal
dengan nama split horizon with poison reverse. Dengan varian ini, D tetap mengirimkan
informasi jalur tersebut ke B, namun dengan tambahan informasi negatif untuk
menjamin bahwa B tidak akan menggunakan link- nya ke D untuk mencapai C.
Kelemahan dari kedua teknik tersebut adalah keduanya hanya dapat diterapkan untuk
routing loop yang terdiri dari 2 node. Untuk routing loop yang lebih besar diperlukan
‘pengorbanan’ yang lebih besar pula. Dari contoh diatas, saat D dan F menerima update
dari B maka keduanya akan menandai jalur ke C menjadi tidak dapat diakses dan
memulai hitung mundur (hold-down timer). Jika sebelum waktu habis ada update dari B
yang menginformasikan bahwa jalur ke C kembali dapat digunakan, maka D dan F akan
kembali mengaktifkan jalur ke C dan penghitungan mundur dihentikan. Demikian juga
jika yang diterima adalah update dari node tetangga dengan jarak yang lebih kecil dari
jarak semula, maka jalur akan kembali diaktifkan dengan arah dan jarak yang baru.
Sebaliknya, jika sebelum waktu habis ada update dari node tetangga yang menyatakan
bahwa C dapat dicapai melalui node tetangga tersebut dengan jarak yang lebih jauh dari
jarak semula, maka update akan diabaikan. Saat waktu habis, maka barulah C betul-
betul dianggap tidak dapat dicapai lagi. Pendekatan ini menunda terjadinya konvergensi.
Kecepatan dari konvergensi justru merupakan kunci keunggulan kelas protokol
routing yang lain : link state.

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

Reliable flooding adalah proses untuk menjamin bahwa setiap node yang
menggunakan protokol routing ini akan mendapatkan salinan informasi link-state dari
seluruh node yang lain. ‘Flooding’ disini mengindikasikan bahwa setiap node akan
mengirimkan informasi link-state-nya ke semua node yang lain, dengan cara
mengirimkannya ke node tetangganya, yang kemudian akan diteruskan oleh node
tetangga tersebut melalui seluruh link yang terhubung kepadanya. Demikian seterusnya
hingga akhirnya informasi link state dari suatu node akan diterima oleh semua node
yang lain dalam jaringan.
Tiap node membentuk paket update yang dikenal dengan nama Link State
Packet (LSP), yang terdiri dari :
• Identitas dari node yang membangun LSP
• Daftar semua node tetangga yang terhubung langsung dengan node tersebut, lengkap
dengan bobot link yang menghubungkannya
• Nomor urut
• Time to live (TTL) dari paket LSP tersebut.
Dua item yang pertama digunakan pada perhitungan (penentuan) jalur. Dua item
berikutnya digunakan untuk menjamin kehandalan pengiriman paket ke semua node
yang lain (flooding). Kehandalan yang dimaksud disini meliputi jaminan bahwa tiap
node akan menerima LSP terbaru, karena mungkin ada lebih dari satu LSP dari satu
node yang berada dalam jaringan pada suatu saat (mungkin satu sama lain memuat
informasi yang saling bertentangan). Menjamin kehandalan flooding tidak semudah
yang dibayangkan. Bukti sejarang menunjukkan hal itu : versi awal dari routing link-
state yang digunakan di ARPANET justru menyebabkan macetnya jaringan pada
tahun 1981.
Cara kerja flooding adalah sebagai berikut. Saat suatu node A menerima salinan
LSP dari suatu node lain B, pertama kali yang dilakukannya adalah melihat apakah
dirinya telah memiliki informasi 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
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

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 diyakininya benar-benar (hanya
informasi berkaitan dengan link yang terhubung langsung kepadanya) kepada seluruh
node dalam jaringan.
Gambar 3.9 Contoh jaringan

Tabel 3.6 Langkah-langkah pembangunan table routing pada node C


Langkah Confirmed Tentative Keterangan
(C,0,-) Karena C merupakan satu-satunya anggota baru
1
dari Confirmed, maka dilihat LSP-nya
(C,0,-) (B,11,B) LSP dari C menyatakan bahwa B dapat dicapai
melalui B dengan biaya 11, yang lebih baik
(D,2,D)
2 (kecil) dibanding entri lain dalam list sehingga
dimasukkan dalam Tentative. Hal yang sama
juga berlaku untuk D
(C,0,-) (B,11,B) Masukkan entri Tentative dengan biaya terkecil
3 (D) ke Confirmed. Kemudian lihat LSP dari
(D,2,D)
anggota Confirmed yang baru tersebut (D)
(C,0,-) (B,5,D) Biaya untuk mencapai B melalui D adalah 5,
sehingga entri (B,11,B) digantikan oleh (B,5,D).
4 (D,2,D) (A,12,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 LSP-
5 (D,2,D)
nya
(B,5,D)

(C,0,-) (A,10,D) Karena A dapat dicapai dengan biaya 5 dari B


maka entri dari Tentative di-update
6 (D,2,D)
(B,5,D)

7 (C,0,-) Pindahkan anggota Tentative dengan biaya


terkecil (A) ke Confirmed. Karena Tentative
(D,2,D) telah kosong (jalur terbaik ke seluruh node telah
diketahui) maka eksekusi algoritma selesai
(B,5,D)
(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 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 hop- pun dapat menyelesaikan
masalah dapat dianggap sebagai pemborosan sumber daya jaringan. Contoh lain : link
satelit 56 Kbps yang kosong dapat dianggap lebih mahal dibanding link terestrial 9,6 Kbps
yang juga dalam keadaan kosong, meski link satelit menjanjikan performansi lebih baik
untuk aplikasi yang membutuhkan bandwidth besar.
Pendekatan ketiga (disebut ‘revised ARPANET routing metric’) berusaha mengatasi
masalah tersebut. Perubahan mendasar yang dilakukan adalah
mempersempit rentang nilai metrik, turut memperhitungkan jenis link dan memperhalus
perubahan metrik sejalan waktu.
Penghalusan perubahan nilai metrik dilakukan dengan beberapa mekanisme.
Pertama, pengukuran delay ditransformasikan menjadi utilisasi link dan angka ini dirata-
ratakan dengan utilisasi terakhir yang diketahui untuk menekan perubahan yang tiba-
tiba. Kedua, ada batas yang tegas terhadap seberapa besar nilai metric 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.
Gambar 3.10 Grafik metrik routing revised ARPANET terhadap utilisasi link
Ada satu isu yang tersisa berkaitan dengan perhitungan bobot link : seberapa sering
suatu node harus melakukan perhitungan bobot linknya? Ada dua hal yang perlu
diperhatikan disini. Pertama, tidak ada perhitungan yang tidak membutuhkan waktu
proses. Apakah suatu node menghitung panjang antrian, delay atau utilisasi, yang
dihitung sebenarnya adalah nilai rata-rata sepanjang suatu rentang waktu tertentu.
Kedua, tidak setiap kali terjadi perubahan bobot link akan diikuti pengiriman update,
update hanya akan dikirimkan jika perubahan bobot melampaui duatu batas tertentu.

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.

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
Fa
untuk meneruskan suatu paket. Pada bagian ini, akan dipaparkan
Sekolah T om
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
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
Fa
pemanggilan, rentang waktu terjadinya
percakapan, dan kecenderungan penggunaan
Sekolah T telepon pada hari-hari
om (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
2
dimana harga perangkat meningkat setara dengan n dikatakan lebih skalabel dibanding
3
yang meningkat setara dengan n . 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.

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.

Gambar 3.11 Switch 2 x 2 Fa


Sekolah T om
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
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.

Fa
Sekolah T om
1
Port 1
Switch
2 1
Port 2

Fa
Sekolah T om
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
2
n . 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.

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

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.

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
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 masing-masing
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.

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 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 round-
robin 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
2
n.
Kelemahan desain switch knockout ini terutama pada asumsi yang digunakan
(trafik yang masuk pada port input yang berbeda bersifat independen dan memiliki
2
kecenderungan untuk tersebar secara merata pada seluruh port output). Kompleksitas n
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.

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.

Gambar 3.17 Routing paket melalui banyan network

Pada contoh diatas, elemen-elemen switch pada kolom pertama akan melihat 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 :

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

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.

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
2
kompleksitas total akan setara dengan n log2 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 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 masing- masing 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).

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,
yakni switch shared memory tampak pada Gambar 3.21.

Buffer

...

...
Input Mux memory Demux Output

Write Read
control 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 masing-
masing 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.