error deteksi

57
Data link layer

Upload: adimas-singgih-sumaryo

Post on 05-Jul-2015

231 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Error Deteksi

Data link layer

Page 2: Error Deteksi

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

Page 3: Error Deteksi

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?

Page 4: Error Deteksi

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

Page 5: Error Deteksi

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

Page 6: Error Deteksi

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.

Page 7: Error Deteksi

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

Page 8: Error Deteksi

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

Page 9: Error Deteksi

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

Page 10: Error Deteksi

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

Page 11: Error Deteksi

Framing

DL melakukan framing untuk: Mengurangi kemungkinan error Menyesuaikan dengan kapasitas buffer penerima yang terbatas

Page 12: Error Deteksi

Framing

Relationship between packets and frames.

Page 13: Error Deteksi

Framing

Teknik framing: Character count Flag byte – byte stuffing Flag bits – bit stuffing

Page 14: Error Deteksi

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

Page 15: Error Deteksi

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

Page 16: Error Deteksi

Framing : flag byte

(a) A frame delimited by flag bytes. (b) Four examples of byte sequences before and after stuffing.

Page 17: Error Deteksi

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

Page 18: Error Deteksi

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.

Page 19: Error Deteksi

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

Page 20: Error Deteksi

Stop and Wait Protocol

mengirim sebuah frame dan menunggu konfirmasi penerima (ACK) sebelum mengirimkan frame berikutnya

Page 21: Error Deteksi

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

Page 22: Error Deteksi

Stop and Wait Protocol

Utilisasi kanal:

Page 23: Error Deteksi

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

Page 24: Error Deteksi

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

Page 25: Error Deteksi

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)

Page 26: Error Deteksi

Sliding Window Protocol

Page 27: Error Deteksi

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

Page 28: Error Deteksi

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)

Page 29: Error Deteksi

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

Page 30: Error Deteksi

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

Page 31: Error Deteksi

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

Page 32: Error Deteksi

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

Page 33: Error Deteksi

Parity CheckingSingle Bit Parity:Detect single bit errors

Two Dimensional Bit Parity:Detect and correct single bit errors

0 0

Page 34: Error Deteksi

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).

Page 35: Error Deteksi

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.

Page 36: Error Deteksi

Modulo arithmetic

Operasi penambahan dan pengurangan = XOR

Page 37: Error Deteksi

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

Page 38: Error Deteksi

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

Page 39: Error Deteksi

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

Page 40: Error Deteksi

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

Page 41: Error Deteksi

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

Page 42: Error Deteksi

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…

Page 43: Error Deteksi

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

Page 44: Error Deteksi

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

Page 45: Error Deteksi

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

Page 46: Error Deteksi

Hamming Code

Jumlah bit informasi =

(n jumlah bit cek)

Σ Bit pengisi / cek Σ bit informasi

Page 47: Error Deteksi

Hamming distance

Page 48: Error Deteksi
Page 49: Error Deteksi

Hamming Code

Page 50: Error Deteksi

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:

Page 51: Error Deteksi

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

Page 52: Error Deteksi

Hamming Code

Untuk informasi n-bit, nilai bit

pengisi / cek adalah:

Page 53: Error Deteksi

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

Page 54: Error Deteksi

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

Page 55: Error Deteksi

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

Page 56: Error Deteksi

Use of a Hamming code to correct burst errors.

Page 57: Error Deteksi

Use of a Hamming code to correct burst errors.