Anda di halaman 1dari 57

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, keterb atasan bandwidth Data yang dikirim dapat menjadi rusak, hilang, berubah Tugas data link layer adalah menangani kerusakan dan hilangnya data antar 2 titik komunikasi yang terhu bung oleh satu medium transmisi fisik

Prinsip dasar (2)

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)

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)

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. Sesuai pada kondisi channel yang kurang handal seperti wireless. Menjamin pengiriman data secara handal

Acknowledged connectionless service.

Acknowledged connection-oriented service.

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
after

(a) The original data. (b) The data as they appear on the line. (c) The data as they are stored in receivers memory 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 untuk frame berukuran 8000 bit : 8000/106 = trans

8ms T (latency) = 36000km/3X108=120ms prop

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 Codes Error - Correcting Codes


Error

correcting codes memerlukan data redundant lebih besar dibandingkan den gan 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 Checking
Single Bit Parity:
Detect single bit errors

Two Dimensional Bit Parity:


Detect and correct single bit errors

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

CRC
Contoh: 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

1001 110101000 1001 1000 1001 0011 0000 0110 0000 1100 1001 1010 1001 011

T=110101 011

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+1 R=11001 R(X)= X4+X3+1

CRC
Empat

versi R(X) yang telah digunakan secara luas adalah:


CRC-12:

X12+X11+X3+X2+X+1 CRC-16: X16+X15+X2+1 CRC-CCITT: X16+X12+X5+1 CRC-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 errors Secara umum, G dipilih utk:
1. 2. 3. 4. Deteksi single-bit error Deteksi sembarang 2 single-bit errors Deteksi burst error 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 rbit, (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 7 Bit 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 2 n (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 1nya 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 : 011100101010 Dicoba :cari kesalahan pada bit paritas-nya 010101100011 111110001100 000010001010

Use of a Hamming code to correct burst errors.

Use of a Hamming code to correct burst errors.

Anda mungkin juga menyukai