Bahasan ini berhubungan dengan algoritma
bagi komunikasi yang reliabel dan efisien antara dua mesin yang
berdekatan, yaitu dua mesin yang secara fisik terhubung oleh sebuah saluran
komunikasi yang secara konseptual bekerja seperti halnya kabel. Sifat
penting sebuah saluran yang membuatnya menyerupai kabel adalah bit-bit
diteruskan dalam urutan yang sama dengan sewaktu bit-bit itu dikirimkan.
Rangkaian komunikasi sering membuat
kesalahan, memiliki laju data yang terbatas, dan terdapat delay propagasi
yang tidak nol antara saat bit dikirimkan dengan saat bit diterima.
Keterbatasn ini mempunyai implikasi penting bagi efisiensi pemindahan data.
MASALAH-MASALAH RANCANGAN DATA LINK
LAYER
Data link layer memiliki beberapa fungsi
spesifik. Fungsi-fungsi ini meliputi :
- penyediaan interface layanan-layanan baik bagi network layer,
- penentuan cara pengelompokan bit dari physical layer ke dalam frame,
- hal-hal yang berkaitan dengan error transmisi,
- pengaturan aliran frame sehingga receiver yang lambat tidak akan terbanjiri oleh pengirim yang cepat.
LAYANAN YANG DISEDIAKAN BAGI NETWORK
LAYER
Fungsi data link layer adalah menyediakan
layanan bagi network layer. Layanannya yang penting adalah
pemindahan data dari network layer di mesin sumber ke network layer di mesin yang
dituju. Tugas data link adalah mentransmisikan bit-bit ke mesin yang
dituju, sehingga bit-bit tersebut dapat diserahkan ke network layer.
Tiga layanan dari Data Link Layer :
1. Layanan Unacknowledged Connectionless
Yaitu dimana mesin sumber mengirimkan
sejumlah frame ke mesin yang dituju
dengan tidak memberikan acknowledgment
bagi diterimanya frame-frame tersebut. Tidak ada koneksi yang dibuat baik
sebelum atau sesudah dikirimkannya frame. Bila sebuah frame hilang sehubungan
dengan adanya noise, maka tidak ada usaha untuk memperbaiki masalah tersebu di
data link layer. Jenis layanan ini cocok bila laju error sangat rendah,
sehingga recovery bisa dilakukan oleh layer yang lebih tinggi. Layanan ini
sesuai untuk lalu lintas real time, seperti percakapan, dimana data yang
terlambat dianggap lebih buruk dibanding data yang buruk. Sebagian besar LAN
menggunakan layanan unacknowledgment connectionless pada data link layer.
2. Layanan Acknowledged Connectionless
Layanan inipun tidak menggunakan
koneksi, akan tetapi setiap frame dikirimkan secara independent dan secara
acknowledgment. Dalam hal ini, pengirim akan mengetahui apakah frame
yang dikirimkan ke mesin tujuan telah diterima dengan baik atau tidak.
Bila ternyata belum tiba pada interval waktu yang telah ditentukan,
maka frame akan dikirimkan kembali, mungkin saja hilangnya knowledge akan menyebabkan sebuah frame perlu dikirimkan beberapa kali dan akan
diterima beberapa kali juga. Layanan ini akan bermanfaat untuk saluran
unreliablem, seperti sistem tanpa kabel.
3. Layanan Acknowledged Connection Oriented
Dengan layanan ini, mesin sumber dan
tujuan membuat koneksi sebelum memindahkan datanya. Setiap frame yang
dikirim tentu saja diterima. Selain itu, layanan ini menjamin bahwa
setiap frame yang diterima benar-benar hanya sekali dan semua frame
diterima dalam urutan yang benar. Layanan ini juga menyediakan
proses-proses network layer dengan ekivalen aliran bit reliabel. Pada layanan connection-oriented
dipakai, pemindahan data mengalami tiga fase (tahap).
- Fase I koneksi ditentukan dengan membuat kedua mesinmenginisialisasi variabel-variabel dan counter yang diperlukan untukmengawasi frame yang mana yang telah diterima dan mana yang belum.
- Fase II, satu frame atau lebih mulai ditransmisikan.
- Fase III koneksi dilepaskna, pembebasan variabel, buffer, dan resource lainnya yang dipakai untuk menjaga berlangsungnya koneksi.
Karena jarak dan peralatan, pengiriman
informasi, dapat mengalami perubahan atau melemah. Umumnya
interferensi listrik. Kesalahan timbul dalam bentuk burst yaitu lebih dari satu bit
terganggu dalam satu satuan
waktu. Deteksi error dengan Redundansi, yaitu
data tambahan yang tidak ada hubungannya dengan isi informasi yang
dikirimkan, berupa bit pariti. Berfungsi menunjukkan ada tidaknya kesalahan data. Yaitu dengan mendeteksi dan
mengoreksi kesalahan yang terjadi. Makin banyak redundansi
makin baik
deteksi errornya. Akibatnya makin
rendah troughput dari data yang berguna.
Troughput adalah perbandingan antara
data yang berguna dengan data keseluruhan. Banyaknya tambahan pada redundansi sampai 100% dari jumlah bit data.
Ada dua pendekatan untuk deteksi
kesalahan :
1. Forward Error Control
Dimana setiap karakter yang
ditransmisikan atau frame berisi informasi tambahan (redundant) sehingga bila
penerima tidak hanya dapat mendeteksi dimana error terjadi, tetapi juga
menjelaskan dimana aliran bit yang diterima error.
2. Feedback (backward) Error Control
Dimana setiap karakter atau frame
memilki informasi yang cukup untuk memperbolehkan penerima mendeteksi bila
menemukan kesalahan tetapi tidak lokasinya. Sebuah transmisi kontro
digunakan untuk meminta pengiriman ulang, menyalin informasi yang
dikirimkan.
Feedback error control dibagi menjadi 2
bagian, yaitu :
1. Teknik yang digunakan untuk deteksi
kesalahan
2. Kontrol algoritma yang telah
disediakan untuk mengontrol transmisi ulang.
Metode Deteksi Kesalahan :
1.
Echo
- Metode sederhana dengan sistem interaktif .
- Operator memasukkan data melalui terminal dan mengirimkan ke komputer.
- Komputer akan menampilkan kembali ke terminal, sehingga dapat memeriksa apakah data yang dikirimkan dengan benar.
2.
Error Otomatis
Metode dengan tambahan bit pariti.
Terdapat 2 cara :
a. Pariti Ganjil (Odd Parity)
Yaitu bit pariti yang
ditambahkan supaya banyaknya bit "1" tiap karakter atau data ganjil.
b. Pariti Genap (Even Parity)
Yaitu bit pariti yang
ditambahkan supaya banyaknya bit "1" tiap karakter atau data genap.
Dengan
bit pariti dikenal
3 deteksi kesalahan, yaitu :
a. Vertical Redundancy Check / VRC
Setiap
karakter yang dikirimkan
(7 bit) diberi 1 bit
pariti. Bit pariti ini diperiksa oleh penerima untuk mengetahui
apakah karakter yang
dikirim benar atau salah. Cara ini hanya dapat melacak 1 bit dan berguna melacak kesalahan yang
terjadi pada pengiriman
berkecepatan menengah, karena kecepatan tinggi lebih
besar kemungkinan terjadi kesalahan banyak
bit.
Kekurangan : bila ada 2 bit yang
terganggu ia tidak dapat melacaknya karena paritinya akan benar.
Contoh :
ASCII huruf "A" adalah 41h
100 0001 ASCII 7 bit
1100 0001 ASCII dengan pariti ganjil
0100 0001 ASCII dengan pariti genap
Akibatnya huruf "A" kode ASCII
dalam Hex :
- 41
bilamana pariti genapl
- A1 bilamana pariti ganjil
b. Longitudinal Redundancy Check / LRC
LRC untuk data dikirim secara blok. Cara ini seperti
VRC hanya saja penambahan bit
pariti tidak saja pada akhir karakter tetapi juga pada akhir
setiap blok karakter yang dikirimkan. Untuk setiap bit dari seluruh blok
karakter ditambahkan 1 bit pariti termasuk juga bit pariti dari
masing-masing karakter.
Tiap blok mempunyai satu karakter
khusus yang disebut Block Check Character (BCC) yang dibentuk dari bit
uji. dan dibangkitkan dengan cara sebagai berikut :
"Tiap bit BCC merupakan pariti dari
semua bit dari blok yang mempunyai nomor bit yang sama. Jadi bit 1 dari BCC merupakan pariti
genap dari semua bit 1 karakter yang ada pada blok tersebut, dan seterusnya"
Kerugian : terjadi overhead akibat
penambahan bit pariti per 7 bit untuk karakter.
c. Cyclic Redundancy Check / CRC
Digunakan pengiriman berkecepatan tinggi, sehingga perlu rangkaian elektronik yang sukar.
Cara CRC mengatasi masalah overhead dan
disebut pengujian berorientasi bit, karena dasar pemeriksaan
kemungkinan kesalahan adalah bit atau karakter dan menggunakan rumus
matematika yang khusus. Satu blok informasi dilihat sebagai sederetan bit
yang ditransmisikan. Bit yang ditransmisikan dimasukkan kedalam
register geser siklis yang disebut generator CRC. Operasi ini didasarkan atas pembagian deretan
bit dengan sebuah fungsi khusus. Hasil bagi
pembagian diabaikan. Sisanya disalurkan sebagai BCS (Block Check Sequence). Fungsi khusus tersebut disebut generator
polynominal.
3.
Framing Check.
Dipakai pada transmisi
asinkron dengan adanya bit awal dan akhir. Data berada diantara bit awal dan bit
akhir. Dengan memeriksa kedua bit ini dapat diketahui apakah data
dapat diterima dengan baik atau tidak. Transmisi asinkron mempunyai bentuk
bingkai sesuai dengan ketentuan yang dipergunakan.
Pendekatan yang umum dipakai adalah data
link layer memecah aliran bit menjadi frame-frame diskrit dan
menghitung checksum setiap framenya. Ketika sebuah frame tiba di tujuan,
checksum dihitung kembali. Bila hasil perhitungan ulang checksum tersebut
berbeda dengan yang terdapat pada frame, maka data link layer akan
mengetahui bahwa telah terjadi error dan segera akan mengambil langkah
tertentu sehubungan dengan adanya error tersebut (misalnya, membuang frame yang
buruk dan mengirimkan kembali laporan error).
Salah satu cara untuk melaksanakan
pembuatan frame ini adalah dengan cara menyisipakn gap waktu di antara dua buah
frame, sangat mirip seperti spasi antara dua buah katan dalam suatu teks.
Akan tetapi, jaringan jarang memberikan jaminan tentang pewaktuan.
Karena itu, mungkin saja gap ini dibuang, atau diisi oleh gap lainnya
selama proses transmisi, karena sangat besar risikonya dalam menghitung
pewaktuan untuk menandai awal dan akhir frame, telah dibuat metode lainnya,
yaitu 4 buah metoda :
1. Karakter penghitung
2. Pemberian karakter awak dan akhir,
dengan pengisian karakter
3. Pemberian flag awal dan akhir, dengan
pengisian bit
4. Pelanggaran pengkodean physical
layer.
Metoda framing pertama menggunakan
sebuah field pada header untuk menspesifikasikan jumlah karakter di
dalam frame. Ketika data link layer pada mesin yang dituju melihat karakter
penghitung, maka data link layer akan mengetahui jumlah karakter yang
mengikutinya, dan kemudian juga akan
mengetahui posisi ujung frame-nya. Masalah yang dijumpai dalama algoritma ini adalah bahwa hitungan dapat
dikacaukan oleh error transmisi.
Misal bila hitungan karakter 5 frame
menjadi 7, maka tempat yang dituju akan tidak sinkron dan tidak dapat
mengetahui awal frame berikutnya. Bahkan bila cheksum tidak benar sehingga
tempat yang dituju mengetahui bahwa frame yang bersangkutan buruk,
maka tidak mungkin untuk menentukan awal frame berikutnya. Pengiriman
kembali sebuah frame ke sumber untuk meminta pengiriman ulangpun tidak akan menolong, karena tempat yang dituju tidak mengetahui jumlah karakter yang
terlewat untuk mendapatkan awal transmisi. Untuk alasan ini, metoda
hitungan karakter ini sudah jarang digunakan lagi.
Metode framing yang kedua mengatasi
masalah resinkronisasi setelah terjadi suatu error dengan membuat masing-masing
frame diawali dengan sederetan karakter DLE STX ASCII dan diakhiri
dengan DLE ETX (DLE=Data Link Escape, STX=Start Of Text, ETX=End Of Text).
Dalam metoda ini, bila tempat yang dituju kehilangan track batas-batas
frame, maka yang perlu dilakukan adalah mencari karakter-karakter DLE STX dan
DLE ETX.
Masalah serius yang terjadi pada metoda
ini adalah ketika data biner, seperti program object, atau bilangan
floating point, ditransmisikan. Karakter-karakter DLE STX dan DLE ETX
yang terdapat pada data mudah sekali menganggu framing. Satu cara untuk
mengatasi masalah ini adalah dengan membuat data link pengirim menyisipkan
sebuah karakter DLE ASCII tepat sebelum karakter DLE
"insidentil" pada data. Data link layer pada mesin penerima membuang DLE sebelum data diberikan
ke network layer. Teknik ini disebut character stuffing (pengisian
karakter). DLE-DLE pada data selalu digandakan. Kerugian penting dalam
memakai metoda framing ini sangat berkaitan erat dengan karakter 8-bit
secara umum dan kode karakter ASCII pada khususnya. Dengan berkembangnya
jaringan, kerugian dari melekatkan kode karakter dalam mekanisma framing
menjadi semakin jelas, sehingga suatu teknik baru perlu dibuat untuk
memungkinkan pemakaian karakter berukuran sembarang. Teknik baru memungkinkan frame data
berisi sembarang sejumlah bit dan mengijinkan kode karakter dengan
sembarang jumlah bit per karakter.
Teknik ini bekerja seperti berikut,
setiap frame diawali dan diakhiri oleh pola bit khusus, 01111110 yang
disebut flag. Kapanpun data link layer pada pengirim menemukan lima buah flag
yang berurutan pada data, maka data link layer secara otomatis mengisikan
sebuah bit 0 ke aliran bit keluar.
Pengisian bit ini analog dengan
pengisian karakter, dimana sebuah DLE diisikan ke aliran karakter keluar
sebelum DLE pada data. Ketika penerima melihat 5 buah bit 1
masuk yang berurutan, yang diikuti oleh sebuah bit 0, maka penerima secara
otomatis mengosongkan (menghapus) bit 0 tersebut. Seperti halnya pengisian
karakter transparan sepenuhnya bagi network layer pada kedua buah
komputer, demikian pula halnya dengan pengisian bit. Bila data pengguna berisi
pola flag 01111110, maka flag ini akan ditransmisikan kembali sebagai
011111010 tapi akan disimpan di memory penerima sebagai 01111110. Dengan pengisian
bit, maka batas antara dua frame dapat dikenal jelas oleh pola
flag. Jadi bila penerima mengalami kehilangan track frame tertentu, yang
perlu dilakukan adalah menyisir input deretan flag, karena flag tersebut hanya
mungkin terdapat pada batas frame saja dan tidak pernah berada pada data.
Metode framing terakhir hanya bisa
digunakan bagi jaringan yang encoding pada medium fisiknya mengandung beberapa
redundansi (pengulangan). Misalnya, sebagian LAN melakukan encode
bit 1 data dengan menggunakan 2 bit fisik. Umumnya, bit1 merupakan pasangan
tinggi-rendah dan bit 0 adalah pasangan rendah-tinggi. Kombinasi
pasangan tinggi-tinggi dan rendah-rendah tidak digunakan bagi data. Proses itu
berarti bahwa setiap bit data memiliki transisi di tengah, yang
memudahkan penerima untuk mencari batas bit. Manfaat kode fisik yang invalid
merupakan bagian standard LAN 802.2.
Realisasi Generator CRC / Penguji
Data dimasukkan kedalam register geser
pada berbagai titik melalui gerbang
XOR yang mempunyai hubungan
langsung dengan generator polynominal yaitu rumus matematika untuk membagi bit
data.
Lebih baik dari VRC / LRC, 99% error
dapat terdeteksi.
Polynominal yang umum :
- X16 + X12 + X5 + 1 Rekomendasi CCITT
- X16 + X15 + X2 + 1 CRC-16
- X12 + X11 + X3 + X3 + 1 CRC-12
- X8 +
Tidak ada komentar:
Posting Komentar