error deteksi
TRANSCRIPT
Data link layer
Prinsip dasar (1)
Masalah utama dalam komunikasi data ialah realibility atau keandalan. Sinyal yang dikirim melalui medium tertentu dapat mengalami pelemahan, distorsi, keterbatasan bandwidth
Data yang dikirim dapat menjadi rusak, hilang, berubah
Tugas data link layer adalah menangani kerusakan dan hilangnya data antar 2 titik komunikasi yang terhubung oleh satu medium transmisi fisik
Prinsip dasar (2)
A mengirim data ke B. Jalur antara A dan B tidak reliable, sehingga mungkin ada data yang rusak/hilang.
Bagaimana menjamin transmisi data A ke B tetap reliable?
Prinsip dasar (3)
A tidak mengirim data yang panjang ke B. Data dibagi menjadi frame, sehingga kerusakan sebuah frame tidak merusak keseluruhan data.
Bagaimana B dapat mendeteksi bahwa frame yang dikirim A mengalami kerusakan?
A menambahkan error check bits ke frame, sehingga B dapat memeriksa frame dan menentukan apakah telah terjadi perubahan
Prinsip dasar (4)
Bagaimana A mengetahui data yang dikirimnya telah diterima B?
B dapat mengirimkan ack/pemberitahuan jika data diterima dengan benar, dan nak/pemberitahuan data salah jika data rusak
A dapat mengirimkan ulang frame yang rusak
Prinsip dasar (5)
Mengapa frame dapat hilang? Bagian alamat/id/header mengalami kerusakan,
sehingga frame tidak dikenali Temporer disconnection
Apa yg terjadi jika frame dapat hilang? B tidak mengetahui ada pengiriman dari A, sehingga
tentunya juga tidak mengirimkan ack ke A. B mengirimkan ack namun hilang di jalan.
Prinsip dasar (6)
A harus memiliki timer, yang akan mengirim ulang jika tidak menerima kabar dari B
Jangka waktu timeout harus diatur. Jika timeout terlalu cepat, A akan mengirimkan
ulang sebelum ack dari B tiba. Jika timeout terlalu lama, A akan menunggu terlalu
lama jika ada frame yg hilang
Prinsip dasar (7)
A mengirim frame 1 A mengalami timeout, dan mengirimkan ulang frame 1 A menerima ack, melanjutkan mengirim frame 2 A menerima ack kedua untuk frame 1, namun
dianggap sebagai ack untuk frame 2 (error) Untuk mencegah hal tersebut maka A harus
memberikan frame number, sehingga B dapat memberikan ack spesifik untuk frame number tertentu
Peran data link layer
Physical layer: mengkodekan data menjadi sinyal yang dikirim melalui medium transmisi
Data Link layer berfungsi menangani kesalahan transmisi, serta memberikan layanan ke network layer.
Untuk itu beberapa hal yang dilakukan oleh Data Link Layer adalah: Framing Flow control Error control, error detection, error correction
Layanan yang disediakan Data Link Layer bagi Network Layer
Data link layer dapat dirancang untuk memberikan salah satu dari jenis layanan (service) berikut: Unacknowledged connectionless service.
Sesuai pada kondisi dengan error rate yang sangat rendah, juga pada aplikasi real time seperti voice.
Acknowledged connectionless service. Sesuai pada kondisi channel yang kurang handal seperti
wireless.
Acknowledged connection-oriented service. Menjamin pengiriman data secara handal
Framing
DL melakukan framing untuk: Mengurangi kemungkinan error Menyesuaikan dengan kapasitas buffer penerima yang terbatas
Framing
Relationship between packets and frames.
Framing
Teknik framing: Character count Flag byte – byte stuffing Flag bits – bit stuffing
Framing – character count
A character stream. (a) Without errors. (b) With one error.
Setiap frame diawali dengan field yang menyatakan panjang frame
Jika field ini rusak, maka frame tidak dapat dikenali lagi
Framing : flag byte
Awal dan akhir frame ditandai dengan byte(s) khusus
Byte penanda dapat merupakan simbol yang sama atau berbeda
Masalah: kode byte(s) yang digunakan dapat muncul di dalam data yang terkirim, sehingga dapat mengakibatkan kesalahan penentuan frame
Solusi: byte stuffing, mengganti byte serupa pada data dengan simbol lain
Framing : flag byte
(a) A frame delimited by flag bytes. (b) Four examples of byte sequences before and after stuffing.
Framing : flag bits
Serupa dengan flag bytes, namun menggunakan bit
Lebih cocok untuk data biner Misalnya ditentukan flag adalah: 01111110
Pada pengirim: setiap muncul 5 bit 1 berurutan, tambahkan bit 0
Pada penerima: jika menerima 5 bit 1 berurutan, maka: Jika bit berikutnya 0: hapus Jika bit berikutnya: 10: end-of-frame Jika bit berikutnya: 11: error
Framing : flag bits
Bit stuffing (a) The original data. (b) The data as they appear on the line. (c) The data as they are stored in receiver’s memory after
destuffing.
Flow control
Mengendalikan aliran transmisi data, sehingga pengirim tidak membanjiri penerima
Dapat dilakukan pada layer data link maupun layer di atasnya Stop and wait protocol sliding window
Stop and Wait Protocol
mengirim sebuah frame dan menunggu konfirmasi penerima (ACK) sebelum mengirimkan frame berikutnya
Stop and Wait Protocol
Dengan stop and wait protocol utilisasi kanal akan rendah. bit rate: jumlah bit yang dikirim setiap satuan waktu transmission time: waktu yang diperlukan untuk
mengirim sebuah frame. Untuk frame dengan ukuran L, maka
transmission time (ttrans) = L / bit rate
transmission delay/latency/propagation (tprop): waktu yang diperlukan sebuah bit untuk mencapai tujuan
Stop and Wait Protocol
Utilisasi kanal:
Stop and Wait Protocol
Jika latency jauh lebih besar dari transmission time, maka utilisasinya akan sangat rendah.
Contoh: Pada link antara stasiun bumi dan satelit dengan
jarak 36000 km dengan data rate 1 Mbps. t trans untuk frame berukuran 8000 bit : 8000/106 =
8ms Tprop (latency) = 36000km/3X108=120ms
U = 8 / (8 + 2*120) = 0,032
Sliding Window Protocol
pengirim dapat mengirim hingga w (ukuran window) buah frame tanpa harus menerima konfirmasi terlebih dahulu
penerima harus memiliki buffer yang mampu menampung n buah frame
frame memiliki nomor identitas (sequence number)
ack menyatakan frame terakhir yang diterima sesuai urutan
Sliding Window Protocol
utilisasi kanal:
jika w x t trans > 2 x tprop, maka dapat dicapai utilisasi 100% (pengirim dapat melakukan pengiriman frame secara kontinu)
Sliding Window Protocol
Sliding Window Protocol
Window pengirim: Setiap mengirimkan frame baru, batas atas akan
bergeser. Setiap menerima ack, batas bawah akan digeser. Pada unreliable link, frame-frame ini harus
disimpan pada buffer pengirim
Window penerima: menyatakan frame yang dapat diterima. Setiap menerima frame pada batas bawah, window akan bergeser
Error Control
Konfirmasi/ack untuk flow control digunakan pula untuk error control
Positive ack berarti data telah diterima dengan benar, negative ack berarti frame diterima rusak.
Pengirim menggunakan timeout untuk pengiriman ulang frame yg belum mendapat ack, sehingga pengiriman ulang dilakukan secara otomatis, disebut sebagai protokol ARQ (automatic repeat request)
Error Detection and Correction
Umumnya penanganan error transmisi dilakukan pada data link layer. Error control dapat pula dilakukan pada layer lain (biasanya higher layer)
Error dapat dideteksi dan dikoreksi dengan menggunakan data tambahan / redundant pada setiap pengiriman data
Error Detection and Correction
Jenis error: Single bit error: hanya sebuah bit yang
berubah. Disebabkan oleh white noise Burst error: sederetan bit-bit mengalami
error. Disebabkan oleh impulse noise Makin tinggi data rate, makin besar efeknya
Error Detection and Correction
Ada 2 teknik yang digunakan:Error - Detecting CodesError - Correcting Codes
Error correcting codes memerlukan data redundant lebih besar dibandingkan dengan error detecting codes
Error detection: parity bit
Menambahkan sebuah bit pada setiap pengiriman sejumlah bit, sehingga jumlah bit bernilai 1 selalu genap/ganjil.
Parity bit dapat mendeteksi kesalahan 1 bit atau kesalahan bit dalam jumlah ganjil, namun tidak dapat mendeteksi kesalahan dalam jumlah genap
Parity CheckingSingle Bit Parity:Detect single bit errors
Two Dimensional Bit Parity:Detect and correct single bit errors
0 0
Error detection: CRC
Cyclic redundancy check (CRC) adalah method yang umum digunakan untuk mendeteksi error
CRC beroperasi pada sebuah frame/block. Setiap block data (berukuran m bit) yang akan dikirim akan terlebih dahulu dihitung CRC checksumnya (berukuran r bit).
Kemudian data + check sumnya akan dikirim sebagai frame (dengan ukuran m+r bit).
Error detection: CRC
Pada sisi penerima, CRC checksum akan dihitung kembali berdasarkan pada frame yang diterima, dan dibandingkan dengan checksum yang dikirimkan. Jika terdapat perbedaan, berarti frame telah rusak.
CRC menggunakan prinsip modulo bilangan.
Modulo arithmetic
Operasi penambahan dan pengurangan = XOR
CRCContoh: Data berukuran m bit
Misalnya: 1001, di mana m = 4 Generator (pembagi) memiliki
panjang r bit Misalnya: 101, di mana r = 3
Menentukan checksum:• Tambahkan sejumlah r-1 bit 0 ke
data: Pada contoh di atas 100100
• Bagi bilangan ini dengan generator• Sisanya adalah checksum (11) • Tambahkan checksum ke data asal:
100111
CRC
Data dan checksum dikirimkan.
Pada sisi penerima, data dan checksum yang diterima dibagi dengan generator.
Jika sisanya 0, berarti tidak terjadi kesalahan
Jika sisanya bukan 0, berarti terjadi kesalahan
Contoh Lain Kalkulasi CRC
Contoh: M= 110101, G = 1001
1 0 0 1 1 1 0 1 0 1 0 0 01 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1
1 0 1 01 0 0 1 0 1 1
R
T = 1 1 0 1 0 1 0 1 1
CRC
Cara lain mengamati proses CRC adalah dengan menyatakan seluruh nilai sebagai polynomial dalam suatu model variabel X, dengan koefisien-koefisien biner.
Contoh:M=110011→ M(X) = X5+X4+X+1R=11001 → R(X)= X4+X3+1
CRC
Empat versi R(X) yang telah digunakan secara luas adalah:CRC-12: X12+X11+X3+X2+X+1CRC-16: X16+X15+X2+1CRC-CCITT: X16+X12+X5+1CRC-32: X32+X26+X23+X22+X16+X12+
X11+X10+X8+X7+X5+X4+X2+X+1
Cyclic Redundancy Code (CRC)
Pilihan G kritis utk deteksi errorsSecara umum, G dipilih utk:
1. Deteksi single-bit error2. Deteksi sembarang 2 single-bit errors3. Deteksi burst error4. Deteksi error lainnya tdk dipertimbangkan disini…
Hamming Code
Hamming code dapat digunakan untuk melakukan error correction.
Codeword (berukuran n-bit) merupakan gabungan data berukuran m-bit dan redundant check bits berukuran r-bit, (n=m+r).
Hamming distance:Jumlah bit yang berbeda antara dua buah codeword: 1110 dan 1111 memiliki 1 bit yang berbeda: d=1 1010 dan 1100 memiliki 2 bit yang berbeda: d=2
Hamming Distance
Jika setiap kode yang valid memiliki perbedaan minimum h bit, maka setiap kesalahan yang < h bit dapat dideteksi
Kode yang error dapat diperbaiki jika ia memiliki jumlah perbedaan yang lebih sedikit ke kode valid tertentu
Untuk memperbaiki d bit error, diperlukan jarak minimum antar kode valid 2d+1
Hamming Code
Cara pengisian bit tambahan pada bit-bit informasi x
Untuk bit data 4-bit, bit-bit data terletak pada posisi 3, 5, 6 dan 7Bit pengisi terletak pada posisi 1, 2, 4 (2K)K = jumlah bit data -1
Hamming Code
Jumlah bit informasi =
(n jumlah bit cek)
Σ Bit pengisi / cek Σ bit informasi
Hamming distance
Hamming Code
Hamming Code
Menangani single error code Cara membuat codenya :
Posisi parity bit ada di bit sesuai 2n
(1,2,4,8,16,32….) Selain posisi tersebut akan
dipakai sebagai data (3,5,6,7…) Untuk mencari besar parity (0 atau
1) dapat dilakukan sbb:
Posisi 1 : bergantian ada 1bit dan tidak ada 1bit : ada 1bit, gak ada 1 bit,ada 1bit…..
Posisi 2 : bergantian ada 2 bit dan tidak ada 2 bit : ada 2bit, gak ada 2 bit,ada 2bit…..
Posisi 4 : bergantian ada 4 bit dan tidak ada 4 bit : ada 4 bit, gak ada 4 bit,ada 4 bit…..
Dan seterusnya untuk 8, 16,32,64…. Bit Paritas ditentukan sebagai 1 bila jumlah bit 1-
nya adalah ganjil. Bit Paritas ditentukan sebagai 0 bila jumlah bit 1-nya adalah genap
Hamming Code
Untuk informasi n-bit, nilai bit
pengisi / cek adalah:
Hamming Code
Contoh: Bagaimana bentuk data yang
ditransmisikan dengan kode Hamming,
jika diketahui bit data = 1010 ?
Jawab:
a1 = a3 + a5 + a7 a1 = 1 + 0 + 0 = 1
a2 = a3 + a6 + a7 a2 = 1 + 1 + 0 = 0
a4 = a5 + a6 + a7 a3 = 0 + 1 + 0 = 1
Sehingga bentuk data yang ditransmisikan
menjadi: 1011010
Contoh:
Suatu data : 1 0 0 1 1 0 1 0 Membuat data word –nya:
- - 1 – 0 0 1 – 1 0 1 0 ( - paritas 15)
Carilah paritas-nya :
Posisi 1 : ? – 1 – 0 0 1 – 1 0 1 0
Jumlah bit 1 genap paritas : 0
Posisi 2 : 0 ? 1 – 0 0 1 – 1 0 1 0
Jumlah bit 1 ganjil paritas : 1
Posisi 4 : 0 1 1 ? 0 0 1 – 1 0 1 0
Jumlah bit 1 ganjil paritas : 1
Posisi 8 : 0 1 1 1 0 0 1 ? 1 0 1 0
Jumlah bit 1 genap paritas : 0
Jadi Code-word-nya :
0 1 1 1 0 0 1 0 1 0 1 0
Dicoba :cari kesalahan pada bit paritas-nya
0 1 0 1 0 1 1 0 0 0 1 1
1 1 1 1 1 0 0 0 1 1 0 0
0 0 0 0 1 0 0 0 1 0 1 0
Use of a Hamming code to correct burst errors.
Use of a Hamming code to correct burst errors.