Data Link Layer: Framing dan Deteksi Error Achmad Ubaidillah Ms. Universitas Trunojoyo Madura
Jan 08, 2016
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
Physical PhysicalPhysical
Signals
Bits
FramesLLC
MAC
FramesLLC
MAC
LLC
MAC
DLL PDUs
Data Link Layer (DLL)
• Bertanggung jawab utk transmisi yg handal dari
paket melalui suatu link – Framing: Menentukan awal (start) dan akhir (end) dari
paket-paket – 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
0 1 1 1 0 1 0 1 1
Parity ditambahkan utkmembuat # 1 even/odd
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
Transmisi: 110101011
G = x3 + 1
M = x5 + x4 + x2 + 1
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 = 110101011Terima 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 Codeword0000 00000000001 00011110010 00101010011 00110100100 01000110101 01011000110 01101100111 01110011000 10001101001 10010011010 10100111011 10111001100 11001011101 11010101110 11100001111 1111111
Koreksi Error
Code umum digunakan: Bose-Chaudhuri-Hocquenghem (BCH)
MR 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 KoreksiContoh
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
Overhead Deteksi Error:Asumsi gunakan: 32-bit CRC; satu retransmisi per errorKrnnya, kita kirim 923 data bit sbg 955 bit
Transmission Overhead = ~= 10%
Overhead Transmisi = ~= 3%
100923
(923 + 32) 10-5 + 32923