Data Link Layer: Framing dan Deteksi Error Achmad Ubaidillah Ms. Universitas Trunojoyo Madura

Download Report

Transcript Data Link Layer: Framing dan Deteksi Error Achmad Ubaidillah Ms. Universitas Trunojoyo Madura

Data Link Layer:
Framing dan Deteksi Error
Achmad Ubaidillah Ms.
Universitas Trunojoyo Madura
Data Link Layer
Data Link Layer
• Fungsi-fungsi yang diperlukan pada data link layer
– Framing
– Error control
– Flow control
• Asumsi data link  wirelike
– Saluran komunikasi point-to-point
– Koneksi pd jaringan dimana message mengikuti lintasan yg sama
• Utk jaringan broadcast isue utama kontrol access ke kanal,
DLL dibagi kedalam 2 sublayer:
– Media Access Control (MAC) sub-layer
– Logical Link Control (LLC): IEEE 802.2
• Standar data link control ISO: High-level Data Link Control
(HDLC)
Sub-Layer Data Link Layer
• Medium access control (MAC): bertanggung jawab thd akses
kontrol ke shared medium. Bbrp protocol MAC yg umum:
CSMA/CD, Token Ring dan Token Bus
• Logical Link Control (LLC): mediasi antara network layer
protocol dan macam-macam MAC protocols
DLL PDUs
LLC
LLC
Frames
Frames
MAC
Physical
Bits
Signals
LLC
MAC
MAC
Physical
Physical
Data Link Layer (DLL)
• Bertanggung jawab utk transmisi yg handal dari paket
melalui suatu link
– Framing: Menentukan awal (start) dan akhir (end) dari paketpaket
– Deteksi Error: Mendeteksi jika paket mengandung errors
– Error recovery: Retransmisi paket-paket yang mengalami
error
• Mungkin dilaksanakan pd layer yg lebih tinggi
• ARQ (Automatic Repeat Request)
Framing
Dimana Data??
• Tiga pendekatan untuk menemukan frame dan batas
frame:
– Character oriented framing
– Perhitungan panjang (length counts) – panjang tetap
– Bit oriented protocols (flags)
Character Based Framing
• Kode karakter standard seperti ASCII dan EBCDIC
memp karakter khusus utk komunikasi yg tdk dp
muncul di dlm data
• Keseluruhan transmisi didasarkan pd suatu kode
karakter
Isue Dg Character Based Framing
• Tergantung pd kode karakter
– Bagaimana utk mengirim data biner?
• Error yg terjadi pd karakter kontrol akan sangat
mengacaukan
Cat: Metoda framing utama pd 1960 sd ~1975
Pendekatan Panjang Field
(DECNET)
• Menggunakan satu length field header utk
memberikan info panjang frame (dlm bit atau byte)
• Panjang length field harus log2 (Max_Size_Packet) + 1
bit
– Ini membatasi ukuran paket yg akan digunakan
• Issue dg perhitungan panjang
– Sulit recover dari error (tdk trsedia mekanismenya)
– Resynchronization diperlukan setelah suatu error pd hitungan
panjang
Paket dengan Panjang Tetap
(mis. ATM)
• Semua paket memp. ukuran yg sama
– Pd jaringan ATM semua paket berukuran 53 Byte
• Memerlukan synchronization saat inisialisasi
• Issue:
– Panjang message bukan kelipatan ukuran paket  paket
terakhir dari suatu message harus berisi idle fill (efsiensi)
– Isue synchronization
– Fragmentasi dan re-assembly rumit pd laju tinggi, krn pjg ttp
Bit Oriented Framing (Flag)
• Suatu flag adalah suatu deretan bit tetap utk indikasi
awal dan akhir suatu paket
– Satu flag dp digunakan utk indikasi baik awal dan akhir paket
• Secara prinsip, sembarang deretan dp digunakan,
tetapi kemunculan flag harus dicegah di dlm data
– Protokol standard menggunakan deretan 8-bit 01111110 sbg
satu flag
• Krnnya 0111111 yg tdk boleh muncul di didlm data
• INVENTED ~ 1970 oleh IBM utk SDLC (synchronous
data link protocol)
Bit Stuffing (Pengirim)
• Digunakan utk menghilangkan flag dari data original
• Satu 0 disisipkan setelah 1 berturutan pd frame original
• Mengapa perlu menyisipkan 0 pd 0111110?
– Jika tidak
0111110111  0111110111
011111111  0111110111
– Bagaimana membedakannya pd penerima?
Destuffing (Penerima)
• Jika 11111 diikuti 0, buang 0
Framing Error
• Semua teknik framing sensitif thd error
– Error pd suatu length count field menyebabkan frame akan
diterminasi pd titik yg salah (dan membuat sulit utk mencari
awal dari frame berikutnya)
– Error pd DLE, STX, atau ETX menyebabkan problem yg sama
– Error pd suatu flag, atau flag terbentuk oleh suatu error
menyebabkan satu frame hilang atau frame ekstra muncul
• Pendekatan flag tdk begitu sensitif thd error krn
suatu flag akhirnya akan muncul lagi utk indikasi akhir
dari frame berikutnya
– Yg terjadi hanya paket yg mengalami error terbentuk
– Paket yg error ini dp dihilangkan melalui teknik deteksi error
Error
• Bit error terjadi jika suatu sumber kirim satu bit, b,
dan tujuan menerima bukan b
yaitu b  b  1
• Error dp terjadi pada link (mis. interferensi EM, atau
signal loss), dlm suatu switch (yg rusak) atau router
sepanjang lintasan, atau di sumber atau tujuan (mis.
kegagalan hardware, atau bit errors di memories)
• Bit error rate (BER) menunjukan probabilitas bit
terkena error. Harga tipikal BER = 10-9 utk link
electrik, dan 10-12 untuk link optik
Encoding Untuk Deteksi Error
• Kita gunakan code utk membantu deteksi error
• Set dari kemungkinan messages dipetakan dg suatu
fungsi kedalam set code
• Kita ambil fungsi pemetaan shg mudah deteksi
error diantara code yg dihasilkan
• Contoh: Perhatikan fungsi yg menduplikasi tiap bit
dlm message. Mis. message 1011001 akan dipetakan
ke code 11001111000011, dan ditransmisikan oleh
pengirim. Penerima tahu bhw bits selalu datang
berpasangan. Jika dua bit dlm pasangan berbeda,
terdeteksi bit error
• Tentu saja, code ini sungguh tdk efisien…
Parity: Code Deteksi Error
Sederhana
Parity ditambahkan utk
membuat # 1 even/odd
0 1 1 1 0 1 0 1 1
Jika parity salah
ERROR
Jika parity benar
NO ERROR
(atau jemlah error genap telah terjadi)
Parity Checking
Single Bit Parity:
Deteksi single bit error
Two Dimensional Bit Parity:
Deteksi dan koreksi single bit errors
0
0
Cyclic Redundancy Check (CRC)
Cyclic Redundancy Check (CRC)
• Bagaimana kita menghitung R (check bits)?
–
–
–
–
Pilih suatu generator string G dg panjang r+1 bits
Pilih R sedemikian shg T kelipatan G (T = A*G, utk sembarang A)
Sekarang jika T dibagi dg G tdk akan ada sisa  no errors
Semuanya dilakukan dg mod 2 arithmetic
T = M 2r + R = A*G => M 2r = A*G + R (mod 2 arithmetic)
 R = sisa dari M 2r/G dan T akan berupa kelipatan G
• Pemilihan G merupakan parameter yg kritis utk performansi
suatu CRC
Contoh
 G = x3 + 1
 M = x5 + x4 + x2 + 1
 Transmisi: 110101011
Checking utk Error
• Misal T’ adalah deretan bit yg diterima
• Bagi T’ dg G
– Jika sisa = 0, asumsi tidak ada error
– Jika sisa tidak nol terjadi error
Contoh:
Kirim T = 110101011
Terima T’ = 110101011
(tdk ada error)
Tdk ada cara utk mengetahui berapa
bit yg error dan yg mana
Performansi CRC
• Utk r check bit per frame dan panjang frame kurang
dari 2r-1, berikut ini dp dideteksi
1) Semua pola dari 1,2, atau 3 error (d > 3)
2) Semua bursts errors dari r bit atau lebih kecil
3) Random dg jumlah error yg besar dg prob. 1-2-r
• Standard DLC menggunakan CRC dg r = 16 dg option r
= 32
– CRC-16, G = X16 + X15 + X2 +1 = 11000000000000101
Koreksi Error
Untuk Hamming Distance = d
dp koreksi (d-1)/2 error
Contoh: Hamming (7,4) Code
Informasi
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Codeword
0000000
0001111
0010101
0011010
0100011
0101100
0110110
0111001
1000110
1001001
1010011
1011100
1100101
1101010
1110000
1111111
Koreksi Error
Code umum digunakan: Bose-Chaudhuri-Hocquenghem (BCH)
R
M
BCH (R + M, M, t)
mis. BCH (1023, 923, 10)
Dp deteksi semua “t”
bit error
Deteksi atau Koreksi?
Keuntungan Deteksi Error
 Memerlukan jumlah lebih kecil bits/overhead
 Memerlukan pemrosesan lebih sederhana
Keuntungan Koreksi Error
 Mengurangi Jumlah retransmisi
Kebanyakan jaringan data saat ini menggunakan deteksi error,
Bukan koreksi error
Deteksi atau Koreksi
Contoh
Asumsi: 1. Panjang paket 923 bit
2. PER = 10-5
Overhead Koreksi Error:
Asumsi kita gunakan: BCH (1023, 923, 10)
Krnnya, kita kirim 923 data bit sbg 1023 bit
100
Transmission Overhead =
~= 10%
923
Overhead Deteksi Error:
Asumsi gunakan: 32-bit CRC; satu retransmisi per error
Krnnya, kita kirim 923 data bit sbg 955 bit
Overhead Transmisi =
(923 + 32) 10-5 + 32 ~= 3%
923