Chapter 3 The Data Link Layer
The Data Link Layer Deals with the algorithms for achieving reliable, efficient communication between 2 adjacent machines at the Data Link layer The specific function to carry out by the DLL : Non zero propagation delay Transmission error The differences flow of frames
Functions Data Link Layer Well define service interface to the network layer Groups the bit into frames Transmission Error Flow Control
Services Provided to the network layer Transferring data from the network layer on the source machine to the network layer on the destination machine Actual Transmission Virtual data path
Fig 2-1 (a) Virtual communication (b) Actual Communication
The actual services offered: Unacknowledged Connectionless Service Acknowledged Connectionless Service Acknowledged Connection Oriented Service 1. Unacknowledged Connectionless Service Tidak membutuhkan ketersambungan terlebih dahulu. Bila ada frame hilang karena noise tidak ada usaha perbaikan masalah error rate rendah recovery oleh layer yang lebih di atasnya
Unacknowledged Connectionless Service Mengirim frame independent dari sumber ke tujuan tanpa disertai pengiriman acknowledgement dari tujuan
. Acknowledged Connectionless Service Tidak membutuhkan ketersambungan lebih dahulu Perbaikan menjadi lebih mudah Baik untuk kanal yang unreliable, seperti sistem wireless
3. Connection Oriented Service Terdiri dari 3 fase Membentuk ketersambungan lebih dahulu Counter dan variabel yang lain diset pada kedua pihak Pengiriman frame Pelepasan hubungan Pembebasan variabel-variabel/resource yang lain Contoh : Hubungan melalui 2 buah router
Fig 2-2 Hubungan antara 2 buah router
paket yang ada di payload field dilewatkan ke routing software WAN subnet yang terdiri dari router-router yang berhubungan point to point leased line Saat frame sampai pada router, perangkat keras memeriksa check sum dan melewatkan frame ke DLLayer software DLLSW mengecek, bila frame yang diharapkan paket yang ada di payload field dilewatkan ke routing software Routing software memilih outgoing line dan melewatkan paket ke DLLSW yang mana akan mentrasmisikan paket tersebut
2.1.2 Framing Lapisan fisik hanya mampu menyalurkan bit stream Lapisan data bertanggung jawab atas : Jumlah bit benar Mendeteksi dan mengoreksi error Membuang/melaporkan error
Setiap frame umumnya dibentuk dari beberapa cara : Untuk itu, data link layer memecah-mecah bit menjadi frame yaitu sekelompok bit dengan urutan dan aturan tertentu Setiap frame umumnya dibentuk dari beberapa cara : 1. Penghitung karakter 2.Karakter awal dan karakter akhir dengan penyisipan karakter 3.Flag awal dan flag akhir dengan penyisipan bit 4.Pelanggaran pengkodean physical layer
Fig 2-3 A character stream (a) without error (b) with error 1. Fig 2-3 A character stream (a) without error (b) with error
Setiap frame memiliki : Bit sinkronisasi Error code Character / bit count Start & end of frame Antar frame ada gap Cara ini jarang digunakan 2. Penyisipan karakter DLE (Data Link Escape) pada data link layer pengirim Penyisipan ini akan dihapus lagi pada saat diterima
Fig 2-5 Character stuffing
3. Penyisipan bit pada urutan bit yang masuk Umumnya didahului dan diakhiri dengan flag : 01111110 Pengiriman akan menyisipkan 0 setiap melihat urutan 1 yang kelima stuff 0 ini akan dihapus lagi pada penerima destuff Bit Stuffing
4. Digunakan pada encoding yang mengandung beberapa perulangan Mis : 1 tinggi rendah 0 Menyatakan rendah tinggi tinggi-tinggi atau rendah-rendah tidak digunakan pada data memiliki transisi tengah 2.1.3. Kontrol Error Untuk menjaga kemungkinan hilangnya frame digunakan : Acnowledgement Positive-ack Negative-ack Nomor urutan frame
Timer. setiap kali mengirim frame. timer ON Timer setiap kali mengirim frame timer ON. Bila waktu sudah habis sebelum ada ack mengirim ulang. Ack hilang timer berhenti Kerusakan pada hardware tidak dapat diamati 2.1.4. Pengontrolan Aliran (Flow Control) Bila kecepatan pengirim > kecepatan penerima Penerima tidak bisa menampung Perlu penyamaan kecepatan dan pengaturan pengiriman frame antara pihak yang saling berkomunikasi
2.2. Deteksi dan koreksi Error Error umumnya terjadi pada proses reansmisinya pada bagian dijital jarang terjadi error Sering pada local loopnya Perlu pendeteksian error dan pengoreksian error 2.2.1. Error Correcting Code Frame terdiri dari : m bit data (pesan) r redundant (check bit) Panjang frame : n n = m + n n bit codeword
Jarak Hamming (Hamming distance) Jumlah posisi bit dimana dua code word berbeda Caranya : Melakukan operasi XOR pada kedua codeword 10001001 dan 10110001 dua codeword yang berbeda d = 3 = jumlah bit yang berbeda Dibutuhkan 3 single-bit error untuk mengkonver-si satu sama lain Untuk mendeteksi d error membutuhkan kode dengan jarak d + 1
Hamming Error Correction Code Contoh : Parity check : - genap ditambah 1 bit jumlah 1 harus genap - ganjil ditambah 1 bit jumlah bit harus ganjil Hamming Error Correction Code Tugas baca !!
2.2.2. Error Detecting Code Pada lapisan Data Link dilakukan : Koreksi error (error correction) Deteksi error (error detection) error terjadi : request transmisi Error detection Code Dengan menambah bit paritas pada data Dengan polynomial code (CRC Cede) Menambah bit paritas pada data Bit paritas dipilih sehingga jumlah 1 bit dalam codeword adalah genap/ganjil n bit codeword terdiri dari : n = m + r
m = data (message) r = redundant Probabilitas terdeteksinya error : 0.5 Ini dapat diperbaiki dengan : Menganggap yang dikirim adalah blok yang berupa matrix n x k Bit paritas dihitung secara terpisah untuk : Kolom Baris Matrix ini dikirim perbaris pada satu saat Begitu seluruh blok (berupa matrix) sampai, penerima megecek seluruh bit paritas Kalau ada kesalahan retransmisi blok
Dengan Polynomial Code (CRC) Polynomial Code : merepresentasikan string bit sebagai polynomial yang mana koefisiennya terdiri dari 1 atau 0 Untuk k bit frame, xk-1 sampai x0 MSB menjadi koefisien untuk x k-1 Berikutnya x k-2 dst Contoh : 110001 direpresentasikan sebagai berikut : x5 + x4 + x0 Aritmatika polynomial, penjumlahan dan pengura-ngan identik dengan operasi XOR
Contoh : 10011011 00110011 11110000 01010101 11001010 11001101 10100110 10101111 01010001 11111110 01010110 11111010 Untuk menghitung checsum dengan m bit diperlukan adalnya Generator Polynomial G(x) Prinsip Polynomial Code : Mengirim frame yang sudah di“checsum” (T(x)) Penerima membagi T(x) dengan G (x) Bila ada sisa, adanya error pada saat transmisi
1. r merupakan pangkat tertinggi dari G(x). Algoritma untuk menghitung checsum adalah sbb: 1. r merupakan pangkat tertinggi dari G(x). Tambahkan 0 bit sebanyak r pada akhir frame, sehingga menjadi : m + r bit jadi : xrM(x) 2. Bagilah xrM(x) dengan G(x) dengan cara di atas 3. Hasilnya berupa checksumed frame yang akan ditransmisikan : T(x) Contoh : Frame : 1101011011 Generator : 10011 Message setelah ditambahkan 4 bit nol : 11010110110000
Error yang terdeteksi : Misalkan error = e(x) Checksummed frame yang diterima penerima : T(x) + E (x) Proses yang dilakukan : [T(x) + E(x)] / G (x) Karena T(x) / G(x) = selalu 0 ,ala [T(x) + E(x)] / G (x) = E(x)] / G (x) Jadi, error yang terdeteksi adalah semua error kecuali bila error tersebut identik dengan G(x)
3 Polynomial yang menjadi standar international : CRC - 12 : x12 + x11 + x3 + x2 + x1 + 1 CRC - 16 : x16 + x15 + x2 + 1 CRC - CCITT : x16 + x12 + x5 + 1 Latihan : Diketahui : M(x) = x7 + x5 + 1 G(x) = x3 + 1 Carilah T(x) !
To be continued …….. Data Link Layer 2