Materi Jaringan Komputer - Data Link Control
Pembahasan kita kali ini mengenai pengiriman sinyal melewati sebuah
saluran transmisi, agar komunikasi dapat efektif banyak hal tentang
pengendalian dan managemen pertukaran yang harus diperhatikan. Data link control ini bekerja di lapisan
ke dua pada model referensi OSI.
Beberapa hal yang diperlukan untuk mengefektifkan komunikasi data
antara dua stasiun transmiter dan receiver adalah:
Ø Sinkronisasi frame, data yang dikirimkan dalam bentuk blok disebut
frame. Awal dan akhir suatu frame harus teridentifikasi dengan jelas.
Ø Menggunakan salah satu dari
konfigurasi saluran, akan dibahas pada bab selanjutnya.
Ø Kendali Aliran, stasiun pengirim harus tidak mengirimkan frame
sebelum memastikan bahwa data yang dikirimkan sebelumnya telah sampai.
Ø Kendali kesalahan, bit-bit kesalahan yang
ditunjukkan oleh sistem transmisi harus benar.
Ø Pengalamat, pada sebuah saluran
multipoint, indentitas dari dua buah stasiun dalam sebuah transmisi harus
dikenali.
Ø Kendali dan data dalam beberapa saluran,
biasanya tidak diperlukan sinyal kontrol
dalam sistem komunikasi yang terpisah, maka penerima harus dapat
membedakan informasi kendali dari data
yang dirimkan.
Ø Managemen hubungan, inisiasi, perbaikan,
akhir dari suatu data exchange memerlukan beberapa korodinasi dan kerja sama
antar stasiun.
3.1 Konfigurasi Saluran
Tiga karakteristik yang membedakan
macam-macam konfigurasi saluran adalah topologi, dupleksitas, dan disiplin
saluran.
3.1.1 Topologi dan dupleksitas.
Topologi dari sebuah hubungan data berkenaan dengan susunan fisik
dari sebuah stasiun pada sebuah hubungan.jika hanya terdapat dua buah stasiun
maka hubungan yang dapat dibangun diantara keduanya adalah point-to-poitn. Jika
terdapat lebih dari dua stasiun, maka harus digunakan topoloty multipoint.
Dahulu, sebuah hubungan multipoint digunakan pada suatu kasus hubungan antara
sebuah komputer (stasiun primer) dan satu set terminal (stasiun sekunder),
tetapi sekarang untuk versi yang lebih kompleks topologi multipoint digunakan
pada jaringan lokal.
Saluran multipoint tradisional
memungkinkan dibuat ketika sebuah terminal hanya mengirim pada satu saat.
Gambar 3.1 menunjukkan keuntungan dari konfigurasi multipoint. Jika tiap-tiap
komputer memiliki hubungan point-to-point ke suatu komputer jadi komputer harus harus mempunyai sebuah
I/O port untuk masing-masing terminal. Jadi terdapat sebuah saluran transmisi
yang terpisah dari komputer ke masing-masing terminal. Di dalam sebuah
konfigurasi multipoint, komputer memerlukan hanya sebuah I/O port, hanya sebuah
saluran transmisi yang diperlukan.
Dupleksitas dari sebuah hubungan berkenaan
dengan arah dan waktu aliran sinyal. Dalam transmisi simpleks, aliran sinyal
selalu dalam satu arah. Sebagai contoh, sebuah perangkat input hanya dapat
mentransmisikan, dan tidak pernah menerima. Sebuah perangkat output misalnya
sebuah printer atau aktuator dapat dikonfigurasi hanya sebagai penerima. Simpleks
tidak lazim digunakan karena dia tidak mungkin mmngirim ulang kesalahan atau
sinyal kontrol ke sumber data . Simpleks identik dengan
satu jalan ada satu lintasan.
Gambar 3.1 Konfigurasi
terminal.
Gambar 3.2 Hubungan
konfigurasi saluran
Sebuah hubungan half-dupleks dapat mengirim dan menerima tetapi
tidak simultan. Mode ini seperti dua lintasan alternatif, dua stasiun dalam
sebuah hubungan half-dupleks harus bergantian dalam mentransmisikan sesuatu.
Hal ini dentik dengan satu jalan ada dua lintasan. Dalam sebuah hubungan
full-dupleks, dua buah stasiun dapat mengirim dan menerima secara simultan data
dari yang satu ke yang lain. Sehingga pada mode ini dikenal sebagai dua
lintasan simultan, dan mungkin sebanding dengan dua jalan ada dua lintasan.
Sejumlah kombinasi dari topologi dan dupleksitas yang mungkin
terjadi dapat dilihat pada gambar 3.2 yang melukiskan sebagian keadaan
konfigurasi. Gambar selalu menunjukkan sebuah stasiun primer (P) tunggal dan
lebih dari satu stasiun sekunder (S). Untuk hubungan point-to-point , dua
kemungkinan dapat dijelaskan. Untuk hubungan multipoint, tiga konfigurasi
mungkin terjadi:
Ø Primary full-duplex, secondaries half-duplex (multi-multipoint).
Ø Both primary and secondaries half-duplex (multipoint half-duplex).
Ø Both primary and secondaries full-duplex (multipoint duplex).
3.1.2
Disiplin saluran
Beberapa disiplin diperlukan dalam menggunakan sebuah hubungan
tarnsmisi. Pada sebuah hubungan half-duplex, hanya sebuah stasiun pada suatu
waktu yang harus mengirim. Pada kasus yang lain, hubungan half atau
full-duplex, sebuah setasiun hanya dapat mengirim jika dia tahu bahwa di sisi
penerima telah siap untuk menerima.
Hubungan point-to-point.
Disiplin saluran adalah sederhana dengan sebuah hubungan
point-to-point. Marilah pertimbangkan pertama-tama sebuah hubungan half-duplex
dalam masing-masing stasiun telah siap
menerima perubahan. Sebuah contoh
perubahan dilukiskan pada gambar 3.3 Jika masing-masing stasiun menginginkan
untuk mengirimkan data ke yang lain, yang pertama dilakukan adalah mengetahui
apakah stasiun tujuan telah siap untuk menerima. Stasiun kedua menjawab dengan
sebuah positive acknowledge (ack) untuk mengindikasikan bahwa dia telah siap.
Stasiun pertama kemudian mengirim beberapa data yang telah dibentuk dalam
frame. Pada komunikasi asinkron data akan dikirim seperti sebuah deretan
karakter asinkron. Dalam beberapa kasus, setelah beberapa quantum data
dikirimkan , stasiun pertama berhenti untuk menunggu jawaban. Stasiun kedua
menjawab keberhasilan menerima data dengan ack. Stasiun pertama kemudian
mengirim akhir dari transmisi (eot) yang mengakhiri komunikasi dan kembali ke
keadaan awal.
Gambar 3.3 Hubungan kendali
point-to-point
Beberapa ciri tambahan ditambahkan pada gambar 3.3 untuk melengkapi
proses transmisi dengan kontrol kesalahan. Sebuah negative acknowledgement
(nak) digunakan untuk menandakan bahwa sebuah stasiun belum siap menerima atau
data diterima dalam keadaan error. Sebuah stasiun mungkin mengabaikan jawan
atau menjawab dengan pesan yang cacat. Hasil dari kondisi ini ditunjukkan oleh
garis kecil di dalam gambar, garis tebal menandakan keadaan komunikasi yang
normal. Jika sebuah keadaan tak diinginkan terjadi, seperti sebuah nak atau
invalid reply, sebuah stasiun mungkin mengulang untuk memberikan aksi terakhir
atau mungkin mengadakan beberapa prosedure penemuan kembali kesalahan (erp).
Terdapat tiga phase penting
dalam prosedur pengontrolan komunikasi ini:
Ø Establishement, keputusan yang menentukan stasiun yang mana harus
mengirim dan stasiun yang mana harus siap-siap untuk menerima.
Ø Data Transfer, data ditransfer dalam
satu atau lebih blok pengiriman.
Ø Termination pemberhentian hubungan secara
logika. (hubungan transmitter-receiver).
Hubungan Multipoint
Pilihan dari disiplin saluran untuk hubungan multipoint tergantung
pada penentuan ada-tidaknya stasiun primer. Ketika terdapat sebuah stasiun
primer, data hanya akan ditukar antara stasiun primer dan stasiun sekunder,
bukan antara sesama stasiun sekunder. Sebagian besar disiplin bersama menggunakan situasi ini, yaitu semua perbedaan dari sebuah skema dikenal
sebagai poll dan select.
Ø Poll, stasiun primer meminta data dari stasiun sekunder.
Ø Sellect, stasiun primer memiliki data untuk dikirim dan
diberitahukan ke stasiun sekunder bahwa data sedang datang.
Gambar 3.4 menunjukkan konsep ini, dimana stasiun primer poll ke stasiun sekunder
dengan mengirim sebuah pesan singkat. Pada kasus ini, stasiun sekunder tidak
mengirim dan menjawab dengan beberapa pesan nak. Waktu keseluruhan untuk urutan
ini ditunjukkan dengan
TN = tprop
+ tpoll + tproc + tnak + tprop
dimana :
TN : total waktu
untuk poll tanpa mengirim
tprop : waktu propagasi = t1-t0 = t5-t4
tpoll : waktu
untuk mengririm poll = t2-t1
tproc : waktu untuk pross poll sebelum menerima jawaban
= t3-t2
tnak : waktu untuk mengririm sebuah negative
acknowledgment
= t4-t3
Gambar 3.4 Poll and select sequences
Gambar 3.4 juga menjelaskan kasus dari sebuah keberhasilan poll,
waktu yang dibutuhkan adalah:
TP =
3tprop + tpoll + tack + tdata + 2tproc
TP = TN
+ tprop + tdata + tproc
disini kita
asumsikan waktu proses untuk menjawab beberapa pesan adalah konstan.
Sebagian besar bentuk polling bersama disebut roll-call polling,
yang mana stasiun primer menyeleksi masing-masing poll dari satsiun sekunder
dalam sebuah urutan pra penentuan. Dalam kasus sederhana, stasiun primer poll
ke tiap-tiap stasiun sekunder dalam urutan round robbin S1, S2,
S3, . . . Sn,
sampai semua stasiun sekunder dan mengulang urutan. Waktu yang diperlukan dapat
diekspersikan sebagai:
Tc = nTN + kTD
dimana
Tc : waktu untuk
satu siklus polling lengkap
TN : waktu
rata-rata untuk poll sebuah stasiun sekunder dari data transfer
TD: waktu transfer data
n : jumlah
stasiun sekunder
k : jumlah stasiun
sekundert dengan data untuk dikirim selama siklus.
Fungsi penyeleksian ditunjukkan pada
gambar 3.4c Terlihat bahwa empat transmisi terpisah menerima transfer data dari
stasiun primer ke stasiun sekunder. Sebuah teknik alternatif disebut fast
sellect. pada kasus ini penyeleksian pesan termasuk data ditransfer (gambar
3.4d). Pertama kali mengganti dari stasiun sekunder sebuah acknowledgement yang
mengindikasikan bahwa stasiun telah dipersiapkan untuk menerima dan telah
menerima data dengan sukses. Pemilihan
cepat adalah teristimewa cocok untuk aplikasi dimana pesan pendek sering
dikirimkan dan waktu transfer untuk pesan tidak cukup lama dibanding waktu
reply.
Penggunaan dari roll-call polling untuk
konfigurasi lain adalah mudah dijelaskan. Pada kasus multi-multipoint (gambar
3.2c), stasiun primer dapat mengirim sebuah poll ke salah satu stasiun sekunder
pada waktu yang samadia menerima sebuah pesan kontrol atau data dari yang lain.
Untuk multipoint duplex stasiun primer dapat digunakan dalam komunikasi full
duplex dengan beberapa stasiun sekunder.
Sebuah karakteristik dari semua saluran
disiplin multipoint adalah membutuhkan pengalamatan. Dalam kasus roll call
polling pengirirman dari sebuah stasiun sekunder harus diidentifikasi. Pada
sebuah situasi, kedua pengirim dan penerima harus diidentifikasi. Terdapat tiga
keadaan, yaitu:
Ø point-to-point : tidak memerlukan pengalamatan
Ø primary-secundary multipoint : sebuah alamat diperlukan untuk
mengidentifikasi stasiun sekunder.
Ø peer multipoint : diperlukan dua alamat, untuk mengiden-tifikasi
pengirim dan penerima.
3.2 Kontrol Aliran
Flow control adalah suatu teknik untuk menjamin bahwa sebuah stasiun
pengirim tidak membanjiri stasiun penerima dengan data. Stasiun penerima secara
khas akan menyediakan suatu buffer data dengan panjang tertentu. Ketika data
diterima, dia harus mengerjakan beberapa poses sebelum dia dapat membersihkan
buffer dan mempersiapkan penerimaan data berikutnya.
Bentuk sederhana dari kontrol aliran dikenal sebagai stop and wait,
dia bekerja sebagai berikut. Penerima mengindikasikan bahwa dia siap untuk
menerima data dengan mengirim sebual poll atau menjawab dengan select. Pengirim
kemudian mengirimkan data.
Flow control ini diatur/dikelola oleh Data Link Control (DLC) atau
biasa disebut sebagai Line Protocol sehingga pengiriman maupun penerimaan
ribuan message dapat terjadi dalam kurun waktu sesingkat mungkin. DLC harus
memindahkan data dalam lalu lintas yang efisien. Jalur komunikasi harus
digunakan sedatar mungkin, sehingga tidak ada stasiun yang berada dalam kadaan
idle sementara stasiun yang lain
saturasi dengan lalu lintas yang berkelebihan. Jadi flow control
merupakan bagian yang sangat kritis dari suatu jaringan. Berikut ini ditampilkan time diagram Flow
control saat komunikasi terjadi pada kondisi tanpa error dan ada error.
Gambar 3.5 Diagram waktu flow control saat transmisi
tanpa kesalahan (a) dan saat terjadi kehilangan paket dan terjadi kesalahan (b)
Mekanisme Flow control yang sudah umum digunakan adalah Stop and
Wait dan Sliding window, berikut ini akan dijelaskan kedua mekanisme tersebut.
3.2.1
Stop and wait
Protokol ini memiliki karakteristik dimana sebuah pengirim mengirimkan
sebuah frame dan kemudian menunggu acknowledgment
sebelum memprosesnya lebih lanjut. Mekanisme stop and wait dapat dijelaskan dengan menggunakan gambar 3.6,
dimana DLC mengizinkan sebuah message untuk ditransmisikan (event 1), pengujian
terhadap terjadinya error dilakukan dengan teknik seperti VCR (Vertical Redundancy Check) atau LRC (Longitudinal Redundancy Check) terjadi
pada even 2 dan pada saat yang tepat sebuah ACK atau NAK dikirimkan kembali
untuk ke stasiun pengirim (event 3). Tidak ada messages lain yang dapat
ditransmisikan selama stasiun penerima mengirimkan kembali sebuah jawaban. Jadi
istilah stop and wait diperoleh dari
proses pengiriman message oleh stasiun pengirim, menghentikan transmisi
berikutnya, dan menunggu jawaban.
Pendekatan stop and wait
adalah sesuai untuk susunan transmisi half
duplex, karena dia menyediakan untuk transmisi data dalam dua arah, tetapi
hanya dalam satu arah setiap saat. Kekurangan yang terbesar adalah disaat jalur
tidak jalan sebagai akibat dari stasiun yang dalam keadaan menunggu, sehingga
kebanyakan DLC stop and wait sekarang
menyediakan lebih dari satu terminal yang on line. Terminal-terminal tetap
beroperasi dalam susunan yang sederhana.
Stasiun pertama atau host sebagai penaggung jawab untuk peletakkan message
diantara terminal-terminal (biasanya melalui sebuah terminal pengontrol yang
berada di depannya) dan akses pengontrolan untuk hubungan komunikasi.
Urutan sederhana ditunjukkan pada gambar 3.6 dan menjadi masalah
yang serius ketika ACK atau NAK hilang dalam jaringan atau dalam jalur. Jika
ACK pada event 3 hilang, setelah habis batas waktunya stasiun master mengirim
ulang message yang sama untuk kedua kalinya. Transmisi yang berkelebihan
mungkin terjadi dan menciptakan sebuah duplikasi record pada tempat kedua dari
file data pengguna. Akibatnya, DLC harus mengadakan suatu cara untuk
mengidentifikasi dan mengurutkan message yang dikirimkan dengan berdasarkan
pada ACK atau NAK sehingga harus dimiliki suatu metoda untuk mengecek duplikat
message.
Gambar 3.6 Stop and wait data link control
Pada gambar 3.7 ditunjukkan bagaimana urutan pendeteksian duplikasi
message bekerja, pada event 1 stasiun pengirim mengirikan sebuah message dengan
urutan 0 pada headernya. Stasiun penerima menjawab dengan sebuah ACK dan sebuah
nomor urutan 0 (event 2). Pengirim menerima ACK, memeriksa nomor urutan 0 di
headernya, mengubah nomor urutan menjadi 1 dan mengirimkan message berikutnya
(event 3).
Gambar 3.7 Stop-and-wait alternating sequence
Stasiun penerima
mendapatkan message dengan ACK 1 di event 4. Akan tetapi message ini diterima dalam keadaan rusak atau
hilang pada jalan. Stasiun pengirim mengenali bahwa message di event 3 tidak
dikenali. Setelah batas waktu terlampau (timeout)
stasiun pengirim mengirim ulang message ini (event 5). Stasiun penerima mencari
sebuah message dengan nomor urutan 0. Dia membuang message, sejak itu dia
adalah sebuah duplikat dari message yang
dikirim pada event 3. Untuk melengkapi pertang-gung-jawaban, stasiun penerima
mengirim ulang ACK 1 (event 6).
Efek delay propagasi dan
kecepatan transmisi
Td = TI + nTF
dimana TI = waktu untuk menginisiasi urutan = tprop
+ tpoll + tproc
TF = waktu untuk mengirim satu frame
TF = tprop + tframe + tproc
+ tprop + tack + tproc
tprop = waktu propagasi
tframe = waktu pengiriman
tack = waktu balasan
Untuk menyederhanakan persamaan di atas, kita dapat mengabaikan term.
Misalnya, untuk sepanjang urutan frame, TI relatif kecil sehingga
dapat diabaikan. Kita asumsikan bahwa waktu proses antara pengiriman dan
penerimaan diabaikan dan waktu balasan frame adalah sangat kecil, sehingga kita
dapat mengekspresikan TD sebagai berikut:
TD = n(2tprop + t frame)
Dari keseluruhan waktu yang diperlukan hanya n x t frame yang dihabiskan
selama pengiriman data sehingga utilization (U) atau efisiensi jalur diperoleh
:
3.2.2 Sliding window control
Sifat inefisiensi dari stop and wait DLC telah
menghasilkan teknik pengembangan dalam meperlengkapi overlapping antara message
data dan message control yang sesuai. Data dan sinyal kontrol mengalir dari
pengirim ke penerima secara kontinyu, dan beberapa message yang menonjol (pada
jalur atau dalam buffer penerima) pada suatu waktu.
DLC ini sering disebut sliding windows karena
metode yang digunakan sinkron dengan pengiriman nomer urutan pada header dengan
pengenalan yang sesuai. Stasiun transmisi mengurus sebuah jendela pengiriman
yang melukiskan jumlah dari message(dan nomor urutannya) yang diijinkan untuk
dikirim. Stasiun penerima mengurus sebuah jendela penerimaan yang melakukan
fungsi yang saling mengimbangi. Dua tempat menggunakan keadaan jendela
bagaimana banyak message dapat/ menonjol dalam suatu jalur atau pada penerima
sebelum pengirim menghentikan pengiriman dan menunggu jawaban.
Gambar 3.8. Sliding window data link control
Sebagai contoh pada gambar 3.8 suatu penerima dari ACK
dari message 1 mengalir ke Station A untuk menggeser jendela sesuai dengan
urutan nomor. Jika total message 10 harus dalam jendela, Station A dapat
menahan pengiriman message 5,6,7,8,9,0, dan 1. (menahan message-message 2,3 dan
4 dalam kondisi transit). Dia tidak harus mengirim sebuah message menggunakan
urutan 2 sampai dia menerima sebuah ACK untuk 2. Jendela melilitkan secara
melingkar untuk mengumpulkan nomor-nomor set yang sama. Untuk lebih jelasnya dapat dilihat
gambar berikut menampilkan lebih detail mekanisme sliding window dan contoh
transmisi messagenya.
Gambar 3.9 Mekanisme sliding windows beserta
contoh transimisi message
3.3
Deteksi Dan Koreksi Error
Sebagai akibat proses-proses fisika yang menyebabkannya terjadi,
error pada beberapa media (misalnya, radio) cenderung timbul secara meletup
(burst) bukannya satu demi satu. Error yang meletup seperti itu memiliki baik
keuntungan maupun kerugian pada error bit tunggal yang terisolasi. Sisi
keuntungannya, data komputer selalu dikirim dalam bentuk blok-blok bit. Anggap
ukuran blok sama dengan 1000 bit, dan laju error adalah 0,001 per bit. Bila error-errornya independen, maka
sebagian besar blok akan mengandung error. Bila error terjadi dengan letupan
100, maka hanya satu atau dua blok dalam 100 blok yang akan terpengaruh, secara
rata-ratanya. Kerugian error letupan adalah bahwa error seperti itu lebih sulit
untuk dideteksi dan dikoreksi dibanding dengan error yang terisolasi.
3.3.1 Kode-kode
Pengkoreksian Error
Para perancang jaringan telah membuat dua
strategi dasar yang berkenaan dengan error. Cara pertama adalah dengan
melibatkan informasi redundan secukupnya bersama-sama dengan setiap blok data
yang dikirimkan untuk memungkinkan penerima menarik kesimpulan tentang apa
karakter yang ditransmisikan yang seharusnya ada. Cara lainnya adalah dengan
hanya melibatkan redundansi secukupnya untuk menarik kesimpulan bahwa suatu
error telah terjadi, dan membiarkannya untuk meminta pengiriman ulang. Strategi
pertama menggunakan kode-kode pengkoreksian error (error-correcting codes),
sedangkan strategi kedua menggunakan kode-kode pendeteksian error
(error-detecting codes).
Untuk bisa mengerti tentang penanganan
error, kita perlu melihat dari dekat tentang apa yang disebut error itu.
Biasanya, sebuah frame terdiri dari m bit data (yaitu pesan) dan r redundan,
atau check bits. Ambil panjang total sebesar n (yaitu, n=m+r). Sebuah satuan
n-bit yang berisi data dan checkbit sering kali dikaitkan sebagai codeword
n-bit.
Ditentukan dua buah codeword: 10001001 dan
10110001. Disini kita dapat menentukan berapa banyak bit yang berkaitan
berbeda. Dalam hal ini, terdapat 3 bit yang berlainan. Untuk menentukannya
cukup melakukan operasi EXCLUSIVE OR pada kedua codeword, dan menghitung jumlah
bit 1 pada hasil operasi. Jumlah posisi bit dimana dua codeword berbeda disebut
jarak Hamming (Hamming, 1950). Hal yang perlu diperhatikan adalah bahwa bila
dua codeword terpisah dengan jarak Hamming d, maka akan diperlukan error bit
tunggal d untuk mengkonversi dari yang satu menjadi yang lainnya.
Pada sebagian besar aplikasi transmisi
data, seluruh 2m pesan data merupakan data yang legal. Tetapi sehubungan
dengan cara penghitungan check bit, tidak semua 2n digunakan. Bila
ditentukan algoritma untuk menghitung check bit, maka akan dimungkinkan untuk
membuat daftar lengkap codeword yang legal. Dari daftar ini dapat dicari dua
codeword yang jarak Hamming-nya minimum. Jarak ini merupakan jarak Hamming bagi
kode yang lengkap.
Sifat-sifat pendeteksian error dan
perbaikan error suatu kode tergantung pada jarak Hamming-nya. Untuk mendeteksi
d error, anda membutuhkan kode dengan jarak d+1 karena dengan kode seperti itu
tidak mungkin bahwa error bit tunggal d dapat mengubah sebuah codeword yang
valid menjadi codeword valid lainnya. Ketika penerima melihat codeword yang
tidak valid, maka penerima dapat berkata bahwa telah terjadi error pada
transmisi. Demikian juga, untuk memperbaiki error d, anda memerlukan kode yang
berjarak 2d+1 karena hal itu menyatakan codeword legal dapat terpisah bahkan
dengan perubahan d, codeword orisinil akan lebih dekat dibanding codeword
lainnya, maka perbaikan error dapat ditentukan secara unik.
Sebagai sebuah contoh sederhana bagi kode
pendeteksian error, ambil sebuah kode dimana parity bit tunggal ditambahkan ke
data. Parity bit dipilih supaya jumlah bit-bit 1 dalam codeword menjadi genap
(atau ganjil). Misalnya, bila 10110101 dikirimkan dalam parity genap dengan
menambahkan sebuah bit pada bagian ujungnya, maka data itu menjadi 101101011,
sedangkan dengan parity genap 10110001 menjadi 101100010. Sebuah kode dengan
parity bit tunggal mempunyai jarak 2, karena sembarang error bit tunggal menghasilkan
sebuah codeword dengan parity yang salah. Cara ini dapat digunakan untuk
mendeteksi erro-error tunggal.
Sebagai contoh sederhana dari kode
perbaikan error, ambil sebuah kode yang hanya memiliki empat buah codeword
valid :
0000000000,0000011111,1111100000 dan
1111111111
Kode ini mempunyai jarak 5, yang berarti
bahwa code tersebut dapat memperbaiki error ganda. Bila codeword 0000011111
tiba, maka penerima akan tahun bahwa data orisinil seharusnya adalah
0000011111. Akan tetapi bila error tripel mengubah 0000000000 menjadi 0000000111, maka error tidak akan dapat
diperbaiki.
Bayangkan bahwa kita akan merancang kode
dengan m bit pesan dan r bit check yang akan memungkinkan semua error tunggal
bisa diperbaiki. Masing-masing dari 2m pesan yang legal membutuhkan
pola bit n+1. Karena jumlah total pola bit adalah 2n, kita harus
memiliki (n+1)2m £ 2n.
Dengan memakai n = m + r,
persyaratan ini menjadi (m + r + 1)£2r. Bila m ditentukan, maka ini akan
meletakkan batas bawah pada jumlah bit check yang diperlukan untuk mengkoreksi
error tunggal.
Dalam
kenyataannya, batas bawah teoritis ini dapat diperoleh dengan menggunakan
metoda Hamming (1950). Bit-bit codeword
dinomori secara berurutan, diawali dengan bit 1 pada sisi paling kiri. Bit
bit yang merupakan pangkat 2 (1,2,4,8,16 dan seterusnya) adalah bit check.
Sisanya (3,5,6,7,9 dan seterusnya) disisipi dengan m bit data. Setiap bit check
memaksa parity sebagian kumpulan bit, termasuk dirinya sendiri, menjadi genap (atau ganjil). Sebuah bit dapat
dimasukkan dalam beberapa komputasi parity. Untuk mengetahui bit check dimana
bit data pada posisi k berkontribusi, tulis ulang k sebagai jumlahan pangkat 2.
Misalnya, 11=1+2+8 dan 29=1+4+8+16. Sebuah bit dicek oleh bit check yang
terjadi pada ekspansinya (misalnya, bit 11 dicek oleh bit 1,2 dan 8).
Ketika
sebuah codeword tiba, penerima menginisialisasi counter ke nol. Kemudian
codeword memeriksa setiap bit check, k (k=1,2,4,8,....) untuk melihat apakah
bit check tersebut mempunyai parity yang benar. Bila tidak, codeword akan
menambahkan k ke counter. Bila counter sama dengan nol setelah semua bit check
diuji (yaitu, bila semua bit checknya benar), codeword akan diterima sebagai
valid. Bila counter tidak sama dengan nol, maka pesan mengandung sejumlah bit
yang tidak benar. Misalnya bila bit check 1,2, dan 8 mengalami kesalahan
(error), maka bit inversinya adalah 11, karena itu hanya satu-satunya yang
diperiksa oleh bit 1,2, dan 8. Gambar 3.10 menggambarkan beberapa karakter
ASCII 7-bit yang diencode sebagai codeword 11 bit dengan menggunakan kode
Hamming. Perlu diingat bahwa data terdapat pada posisi bit 3,5,6,7,9,10,11.
Gambar 3.10 Penggunaan kode Hamming
untuk mengkoreksi burst error
Kode Hamming hanya bisa
memperbaiki error tunggal. Akan tetapi, ada trick yang dapat digunakan untuk
memungkinkan kode Hamming dapat memperbaiki error yang meletup. Sejumlah k buah
codeword yang berurutan disusun sebagai sebuah matriks, satu codeword per
baris. Biasanya, data akan ditransmisikan satu baris codeword sekali, dari kiri
ke kanan. Untuk mengkoreksi error yang meletup, data harus ditransmisikan satu
kolom sekali, diawali dengan kolom yang paling kiri. Ketika seluruh k bit telah
dikirimkan, kolom kedua mulai dikirimkan, dan seterusnya. Pada
saat frame tiba pada penerima, matriks direkonstruksi, satu kolom per satuan
waktu. Bila suatu error yang meletup terjadi, paling banyak 1 bit pada setiap k
codeword akan terpengaruh. Akan tetapi kode Hamming dapat memperbaiki satu
error per codeword, sehingga seluruh blok dapat diperbaiki. Metode ini memakai
kr bit check untuk membuat km bit data dapat immune terhadap error tunggal yang
meletup dengan panjang k atau kurang.
3.2.2
Kode-kode Pendeteksian Kesalahan
Kode
pendeteksian error kadang kala digunakan dalam transmisi data. Misalnya, bila
saturan simplex, maka transmisi ulang tidak bisa diminta. Akan tetapi sering kali deteksi error yang diikuti oleh transmisi ulang
lebih disenangi. Hal ini disebabkan karena pemakaian transmisi ulang lebih
efisien. Sebagai sebuah contoh yang sederhana, ambil sebuah saluran yang
errornya terisolasi dan mempunyai laju error 10 –6 per bit.
Anggap
ukuran blok sama dengan 1000 bit. Untuk melaksanakan koreksi error blok 1000
bit, diperlukan 10 bit check; satu megabit data akan membutuhkan 10.000 bit
check. Untuk mendeteksi sebuah blok dengan error tunggal 1-bit saja, sebuah bit
parity per blok akan mencukupi. Sekali setiap 1000 blok dan blok tambahan
(1001) akan harus ditransmisikan. Overhead total bagi deteksi error + metoda
transmisi ulang adalah hanya 2001 bit per megabit data, dibanding 10.000 bit
bagi kode Hamming.
Bila
sebuah bit parity tunggal ditambahkan ke sebuah blok dan blok dirusak oleh
error letupan yang lama, maka probabilitas error dapat untuk bisa dideteksi
adalah hanya 0,5 hal yang sangat sulit untuk bisa diterma. Bit-bit ganjil dapat
ditingkatkan cukup banyak dengan mempertimbangkan setiap blok yang akan dikirim
sebagai matriks persegi panjang dengan lebar n bit dan tinggi k bit. Bit parity
dihitung secara terpisah bagi setiap kolomnya dan ditambahkan ke matriks
sebagai baris terakhir. Kemudian matriks ditransmisikan kembali baris per
baris. Ketika blok tiba, penerima akan memeriksa semua bit parity, Bila ada bit
parity yang salah, penerima meminta agar blok ditransmisi ulang.
Metoda
ini dapat mendeteksi sebuah letupan dengan panjang n, karena hanya 1 bit per
kolom yang akan diubah. Sebuah letupan dengan panjang n+1 akan lolos tanpa
terdeteksi. Akan tetapi bila bit pertama diinversikan, maka bit terakhir juga
akan diinversikan, dan semua bit lainnya adalah benar. (Sebuah error letupan
tidak berarti bahwa semua bit salah; tetapi mengindikasikan bahwa paling tidak
bit pertama dan terakhirnya salah). Bila blok mengalami kerusakan berat akibat
terjadinya error letupan yang panjang atau error letupan pendek yang banyak,
maka probabilitas bahwa sembarang n kolom akan mempunyai parity yang benar adalah
0,5. Sehingga probabilitas dari blok yang buruk akan bisa diterima adalah 2 –n.
Walaupun
metoda di atas kadang-kadang adekuat, pada prakteknya terdapat metode lain yang
luas digunakan: Kode polynomial (dikenal juga sebagai cyclic redundancy code
atau kode CRC). Kode polynomial didasarkan pada perlakuan string-string bit
sebagai representatsi polynomial dengan memakai hanya koefisien 0 dan 1 saja.
Sebuah frame k bit berkaitan dengan daftar koefisien bagi polynomial yang
mempunyai k suku, dengan range dari xk-1 sampai x0.
Polynomial seperti itu disebut polynomial yang bertingkat k-1. Bit dengan orde
tertinggi (paling kiri) merupakan koefisien dari xk-1; bit berikutnya
merupakan koefisien dari xk-2, dan seterusnya. Misalnya 110001
memiliki 6 bit, maka merepresentasikan polynomial bersuku 6 dengan koefisien
1,1,0,0,0 dan 1:x5+x4+x0.
Aritmetika
polynomial dikerjakan dengan modulus 2, mengikuti aturan teori aljabar. Tidak
ada pengambilan untuk pertambahan dan peminjaman untuk pengurangan. Pertambahan dan
pengurangan identik dengan EXCLUSIVE OR, misalnya :
Gambar 3.11 Pertambahan dengan EXOR
Pembagian juga
diselesaikan dengan cara yang sama seperti pada pembagian bilangan biner,
kecuali pengurangan dikerjakan berdasarkan modulus 2. Pembagi dikatakan “masuk
ke” yang dibagi bila bilangan yang dibagi mempunyai bit sebanyak bilangan
pembagi.
Saat metode kode
polynomial dipakai, pengirim dan penerima harus setuju terlebih dahulu tentang
polynomial generator, G(x). Baik bit orde tinggi maupun bit orde rendah dari
generator harus mempunyai harga 1. Untuk menghitung checksum bagi beberapa
frame dengan m bit, yang berkaitan dengan polynomial M(x), maka frame harus
lebih panjang dari polynomial generator. Hal ini untuk menambahkan
checksum keakhir frame sedemikian rupa
sehingga polynomial yang direpresentasikan oleh frame berchecksum dapat habis
dibagi oleh G(x). Ketika penerima memperoleh frame berchecksum, penerima
mencoba membaginya dengan G(x). Bila ternyata terdapat sisa pembagian, maka
dianggap telah terjadi error transmisi.
Algoritma
untuk perhitungan checksum adalah sebagai berikut :
1.
Ambil r sebagai pangkat G(x),
Tambahkan bit nol r ke bagian orde rendah dari frame, sehingga sekarang berisi
m+r bit dan berkaitan dengan polynomial xrM(x).
2.
Dengan menggunakan modulus 2,
bagi string bit yang berkaitan dengan G(x) menjadi string bit yang berhubungan
dengan xrM(x).
3.
Kurangkan sisa (yang selalu
bernilai r bit atau kurang) dari string bit yang berkaitan dengan xrM(x) dengan
menggunakan pengurangan bermodulus 2. Hasilnya merupakan frame berchecksum yang
akan ditransmisikan. Disebut polynomial T(x).
Gambar 3-12 menjelaskan
proses perhitungan untuk frame 1101011011 dan G(x) = x4 + x + 1.
Jelas bahwa T(x) habis dibagi (modulus 2) oleh
G(x). Dalam sembarang masalah pembagian, bila anda mengurangi angka yang dibagi
dengan sisanya, maka yang akan tersisa
adalah angka yang dapat habis dibagi oleh pembagi. Misalnya dalam basis 10,
bila anda membagi 210.278 dengan 10.941, maka sisanya 2399. Dengan mengurangkan
2399 ke 210.278, maka yang bilangan yang tersisa (207.879) habis dibagi oleh
10.941.
Sekarang kita menganalisis
kekuatan metoda ini. Error jenis apa yang akan bisa dideteksi ? Anggap terjadi
error pada suatu transmisi, sehingga bukannya string bit untuk T(x) yang tiba,
akan tetapi T(x) + E(X). Setiap bit 1 pada E(x) berkaitan
dengan bit yang telah diinversikan. Bila terdapat k buah bit 1 pada E(x), maka
k buah error bit tunggal telah terjadi. Error tunggal letupan dikarakterisasi
oleh sebuah awalan 1, campuran 0 dan 1, dan sebuah akhiran 1, dengan semua bit
lainnya adalah 0.
Begitu
frame berchecksum diterima, penerima membaginya dengan G(x); yaitu, menghitung
[T(x)+E(x)]/G(x). T(x)/G(x) sama dengan 0, maka hasil perhitungannya adalah
E(x)/G(x). Error seperti ini dapat terjadi pada polynomial yang mengandung G(x)
sebagai faktor yang akan mengalami penyimpangan, seluruh error lainnya akan
dapat dideteksi.
Bila
terdapat error bit tunggal, E(x)=xi, dimana i menentukan bit mana
yang mengalami error. Bila G(x) terdiri dari dua suku atau lebih, maka x tidak
pernah dapat habis membagi E(x), sehingga seluruh error dapat dideteksi.
Gambar
3-12.Perhitungan checksum kode polynomial
Bila
terdapat dua buah error bit-tunggal yang terisolasi, E(x)=xi+xj,
dimana i > j. Dapat juga dituliskan sebagai E(x)=xj(xi-j
+ 1). Bila kita mengasumsikan bahwa G(x) tidak dapat dibagi oleh x, kondisi
yang diperlukan untuk dapat mendeteksi semua error adalah bahwa G(x) tidak dapat habis membagi xk+1
untuk sembarang harga k sampai nilai maksimum i-j (yaitu sampai panjang frame
maksimum). Terdapat polynomial sederhana atau berorde rendah yang memberikan
perlindungan bagi frame-frame yang panjang. Misalnya, x15+x14+1
tidak akan habis membagi xk+1 untuk sembarang harga k yang kurang
dari 32.768.
Bila
terdapat jumlah bit yang ganjil dalam error, E(x) terdiri dari jumlah suku yang
ganjil (misalnya,x5+x2+1, dan bukannya x2+1).
Sangat menarik, tidak terdapat polynomial yang bersuku ganjil yang mempunyai x
+ 1 sebagai faktor dalam sistem modulus 2. Dengan membuat x + 1 sebagai faktor
G(x), kita akan mendeteksi semua error yang terdiri dari bilangan ganjil dari
bit yang diinversikan.
Untuk
mengetahui bahwa polynomial yang bersuku ganjil dapat habis dibagi oleh x+1,
anggap bahwa E(x) mempunyai suku ganjil dan dapat habis dibagi oleh x+1. Ubah
bentuk E(x) menjadi (x+1)Q(x). Sekarang evaluasi E(1) = (1+1)Q(1). Karena 1+1=0
(modulus 2), maka E(1) harus nol. Bila E(x) mempunyai suku ganjil,
pensubtitusian 1 untuk semua harga x akan selalu menghasilkan 1. Jadi tidak ada
polynomial bersuku ganjil yang habis dibagi oleh x+1.
Terakhir,
dan yang terpenting, kode polynomial dengan r buah check bit akan mendeteksi
semua error letupan yang memiliki panjang <=r. Suatu error letupan dengan
panjang k dapat dinyatakan oleh xi(xk-1 + .....+1),
dimana i menentukan sejauh mana dari sisi ujung kanan frame yang diterima
letupan itu ditemui. Bila G(x) mengandung suku x0, maka G(x) tidak
akan memiliki xi sebagai faktornya. Sehingga bila tingkat ekspresi
yang berada alam tanda kurung kurang dari tingkat G(x), sisa pembagian tidak
akan pernah berharga nol.
Bila
panjang letupan adalah r+1, maka sisa pembagian oleh G(x) akan nol bila dan
hanya bila letupan tersebut identik dengan G(x). Menurut definisi letupan, bit
awal dan bit akhir harus 1, sehingga apakah bit itu akan sesuai tergantung pada
bit pertengahan r-1. Bila semua kombinasi adalah sama dan sebanding, maka
probabilitas frame yang tidak benar yang akan diterima sebagai frame yang valid
adalah ½ r-1.
Dapat
juga dibuktikan bahwa bila letupan error yang lebih panjang dari bit r+1
terjadi, maka probabilitas frame buruk untuk melintasi tanpat peringatan adalah
1/2r yang menganggap bahwa semua pola bit adalah sama dan sebanding.
Tiga buah polynomial telah menjadi standard
internasional:
§ CRC-12 = X12 + X11
+ X3 + X2 + X1 + 1
§ CRC-16 = X16 + X15
+ X2 + 1
§ CRC-CCITT = X16 + X12 + X5
+ 1
Ketiganya
mengandung x+1 sebagai faktor prima.CRC-12
digunakan bila panjang karakternya sama dengan 6 bit. Dua polynomial
lainnya menggunakan karakter 8 bit. Sebuah checksum 16 bit seperti CRC-16 atau
CRC-CCITT, mendeteksi semua error tunggal dan error ganda, semua error dengan
jumlah bit ganjil, semua error letupan yang mempunyai panjang 16 atau kurang,
99,997 persen letupan error 17 bit, dan
99,996 letupan 18 bit atau lebih panjang.
3.3 Kendali kesalahan
Tujuan dilakukan pengontrolan terhadap
error adalah untuk menyampaikan frame-frame
tanpa error, dalam urutan yang tepat ke lapisan jaringan. Teknik yang umum digunakan untuk error control berbasis pada dua
fungsi, yaitu:
·
Error detection, biasanya
menggunakan teknik CRC (Cyclic Redundancy Check)
·
Automatic Repeat Request (ARQ),
ketika error terdeteksi, pengirim meminta mengirim ulang frame yang terjadi
kesalahan.
Mekanisme Error control meliputi
à
Ack/Nak : Provide sender some
feedback about other end
à
Time-out: for the case when
entire packet or ack is lost
à
Sequence numbers: to distinguish
retransmissions from originals
Untuk menghindari terjadinya error atau memperbaiki jika terjadi
error yang dilakukan adalah melakukan perngiriman message secara berulang, proses ini dilakukan secara otomatis dan
dikenal sebagai Automatic Repeat Request (ARQ).
Pada proses ARQ dilakukan beberapa langkah
diantaranya (1):
à
Error detection
à
Acknowledgment
à
Retransmission after timeout
à
Negative Acknowledgment
Macam-macam
error control adalah:
3.3.1
Stop and Wait ARQ
Mekanisme ini menggunakan skema sederhana stop and wait acknowledgment dan dapat dijelaskan seperti tampak
pada gambar 3.13 Stasiun pengirim mengirimkan sebuah frame dan kemudian harus
menunggu balasan dari penerima. Tidak ada frame data yang dapat dikirimkan
sampai stasiun penerima menjawab kedatangan pada stasiun pengirim. Penerima
mengirim sebuah positive acknowledgment
(ACK) jika frame benar dan sebuah negative acknoledgment jika
sebaliknya.
Gambar 3.13
Stop and wait ARQ
3.3.2
Go Back N ARQ
Gambar 3.14 menampilkan aliran frame untuk mekanisme go-back-and ARQ
pada sebuah jalur full-duplex. Ketika frame 2,3, dan 4 ditransmisikan, dari
stasiun A ke stasiun B, sebuah ACK dari penerimaan sebelumnya frame 1 mengalir
dari B ke A. Beberapa waktu kemudian, frame 2 diterima dalam kondisi error.
Frame-frame 2,3,4 dan 5 dikirimkan, stasiun B mengirim sebuah NAK2 ke stasiun A
yang diterima setelah frame 5 dikirimkan tetapi sebelum stasiun A siap mengirim
frame 6. Sekarang harus dilakukan pengiriman ulang frame-frame 2,3,4, dan 5 waluapun
hanya pada frame 2 terjadinya kesalahan. Sekali lagi, catat bahwa stasiun A
harus sebuah copy dari setiap unacknowledgment frame.
Gambar 3.14 Go-back-N ARQ
3.3.3
Selective-report ARQ
Pada mekanisme ini sebenarnya mirip dengan mekanisme go-back-N ARQ
bedanya, pada selective-report ARQ yang dikirimkan hanyalah frame yang terjadi
kesalahan saja. Gambar 3.14 menjelaskan mekanisme tersebut.
Gambar 3.14
Selective-report ARQ
3.3.4
Contoh Continuous ARQ
Untuk lebih memahami mekanisme error control dari kedua mekanisme
terakhir dan mengetahui perbedaan diantara keduanya dapat dilihat tampilan pada
gambar 3.15 yang memperlihatkan aliran frame-frame secara kontinyu.
Gambar 3.15 Contoh continuous ARQ
3.4.
Referensi
1.
Tanenbaum , AS , Computer Networks,
Prentise Hall, 1996
2.
Stallings, W. Data and Computer Communications,
Macmillan Publishing Company, 1985.
3.
Stallings, W. Local Network, Macmillan Publishing
Company, 1985.
4.
Black, U.D, Data Communications and Distributed Networks,
Prentise Hall.
5.
Raj Jain,
Professor of CIS The Ohio
State University
Columbus , OH
43210 Jain@ACM.Org
6.
Cisco Press
Previous
« Prev Post
« Prev Post
Next
Next Post »
Next Post »
Tidak ada komentar:
Posting Komentar