752 likes | 1.22k Views
Datalink Layer. Computer Networks. Eko Prasetyo Teknik Informatika Universitas Muhammadiyah Gresik 2012. “link”. Datalink Layer. data-link layer berfungsi mentransfer data dari satu simpul (node) ke simpul yang berdekatan melalui saluran (link). Terminologi :
E N D
Datalink Layer Computer Networks Eko Prasetyo TeknikInformatika UniversitasMuhammadiyah Gresik 2012
“link” Datalink Layer data-link layer berfungsi mentransfer data dari satu simpul (node) ke simpul yang berdekatan melalui saluran (link) Terminologi: • host dan router adalahsimpul • Salurankomunikasi yang menghubungkansimpul yang berdekatanadalahlink • wired link • wireless link • LAN • Data diencapsulatemenjadiframe
TugasUtamaDatalink Layer • Services Provided to the Network Layer • Framing • Error Control • Flow Control
Services Provided to the Network Layer (a) Virtual communication. (b) Actual communication.
Prinsip dasar (1) • Masalah utama dalam komunikasi dataialahrealibilityataukeandalan. • Sinyal yang dikirim melalui mediumtertentu dapat mengalami pelemahan, distorsi,keterbatasan bandwidth • Data yang dikirim dapat menjadi rusak, hilang,berubah • Tugas data link layer adalah menanganikerusakan dan hilangnya data antar 2 titik komunikasi yang terhubung oleh satu mediumtransmisi 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 tidakmengirim data yang panjangke B. • Data dibagimenjadi frame, sehinggakerusakansebuah frame tidakmerusakkeseluruhan data. • Bagaimana B dapatmendeteksibahwa frame yang dikirim A mengalamikerusakan? • A menambahkan error check bits ke frame, sehingga B dapatmemeriksa frame danmenentukanapakahtelahterjadiperubahan
Prinsip dasar (4) • Bagaimana A mengetahui data yang dikirimnyatelahditerima B? • B dapatmengirimkanack/pemberitahuanjika data diterimadenganbenar, dannak/pemberitahuan data salahjika data rusak • A dapatmengirimkanulang frame yang rusak • Mengapa frame dapathilang? • Bagianalamat/id/header mengalamikerusakan, sehingga frame tidakdikenali • Temporer disconnection • Apayang terjadijika frame dapathilang? • B tidakmengetahuiadapengirimandari A, sehinggatentunyajugatidakmengirimkanackke A. • B mengirimkanacknamunhilangdijalan.
Prinsip dasar(5) • 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 yang hilang
Prinsip dasar(6) • A mengirim frame 1 • A mengalami timeout, danmengirimkanulang frame 1 • A menerimaack, melanjutkanmengirim frame 2 • A menerimaackkeduauntuk frame 1, namundianggapsebagaiackuntuk frame 2 (error) • Untukmencegahhaltersebutmaka A harusmemberikan frame number, sehingga B dapatmemberikanackspesifikuntuk frame number tertentu
Peran data link layer • Physical layer: mengkodekan data menjadisinyal yang dikirimmelalui medium transmisi • Data Link layer berfungsimenanganikesalahantransmisi, sertamemberikanlayananke network layer. • Untukitubeberapahal yang dilakukanoleh Data Link Layer adalah: • Framing • Flow control • Error control (error detection, error correction)
Framing • Tujuan: • Mengurangikemungkinan error • Menyesuaikandengankapasitas buffer penerima yang terbatas Hubunganantara packets and frames.
Teknik Framing • Character count • Protokol : Ethernet • Flag byte – byte stuffing • Protokol : PPP • Flag bits – bit stuffing • Protokol : HDLC
Framing : character count A character stream. (a) Without errors. (b) With one error. • Setiap frame diawalidengan field yang menyatakanpanjang frame • Jika field inirusak, maka frame tidakdapatdikenalilagi
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.
Error Control • Menangani error jaringan yang disebabkan masalah transmisi • Network errors • mis, perubahan nilai suatu bit saat transmisi • Dikendalikan oleh network hardware dan software • Human errors: • mis., kesalahan dlm pengetikan angka • Dikendalikan oleh program aplikasi • Kategori dari error jaringan • Data terkorupsi (perubahan data) • Data hilang
Error Control (Cont.) • Laju Error (Error Rate) • Bit error rate (BER) menunjukanprobabilitas bit terkena error. Hargatipikal BER = 10-9untuk link electrik, dan 10-12untuk link optik • 1 bit error dalamn bit yang ditransmisikan. mis., 1 dalam 100,000 Bit Error rate (BER) = 10-5 • Burst error • Banyak bit yang terkorupsipadasaatbersamaan • Error-error tidakterdistribusisecara uniform • Fungsi-fungsiutama • Mencegah error • Mendeteksi error • Mengkoreksierrors Dimanapemeriksaan error yang baik ? • Low error rate (e.g. fiber): • Melakukanpemeriksaan error pada layer yang lebihtinggi, padakumpulan data yang besar (multi-frame objects). • High error rate (e.g. wireless): • Melakukanpemeriksaan error dalam data link layer, padasetiap frame tunggal. Error rate : • Phone lines - moderate • Coaxial cable - low • Fiber optic - very low • Wireless - very high
Sumber-Sumber Error Noise salurandandistorsi – penyebabutama • Lebihmungkin pd media elektrik • Sinyalelektrik yang tidakdiinginkan • Disebabkangangguanperalatandanalam • Menurunkanperformansisuatu circuit • Tanda-tanda • Bit-bit extra • Bit-bit berubah (“flipped” bits) • Bit-bit hilang
Source of Error What causes it How to prevent it Line Outages Faulty equipment, Storms, Accidents (circuit fails) White Noise (Gaussian Noise) Movement of electrons (thermal energy) Increase signal strength (increase SNR) Impulse Noise (Spikes) Sudden increases in electricity (e.g., lightning, power surges) Shield or move the wires Cross-talk Multiplexer guard bands are too small or wires too close together Increase the guard bands, or move or shield the wires Echo Poor connections (causing signal to be reflected back to the source) Fix the connections, or tune equipment Attenuation Gradual decrease in signal over distance (weakening of a signal) Use repeaters or amplifiers Intermodulation Noise Signals from several circuits combine Move or shield the wires Jitter Analog signals change (small changes in amp., freq., and phase) Tune equipment Harmonic Distortion Amplifier changes phase (does not correctly amplify its input signal) Tune equipment Sumber Error danPencegahan More important mostly on analog
Deteksi Error Penerima kalkulasi ulang EDV dan bandingkan dengan EDV yang diterima Pengirim mengkalkulasi Error Detection Value (EDV) dan mentransmisikan bersama data Mathematical calculations Mathematical calculations ? = Data yg akan ditransmisikan EDV • Jika sama tidak ada error • saat transmisi • Jika berbeda Terjadi • error saat transmisi Makin besar ukuran, makin baik deteksi error (tetapi efisiensi lebih rendah)
Error Detection and Correction • Umumnyapenanganan error transmisidilakukanpada data link layer. • Error control dapat pula dilakukanpada layer lain (biasanya higher layer) • Error dapatdideteksidandikoreksidenganmenggunakan data tambahan/redundantpadasetiappengiriman data • Jenis error: • Single bit error: hanyasebuah bit yang berubah. Disebabkanoleh white noise • Misal : data yang dikirim : 1111001010111 • Data yang diterima : 1111101010111 • Burst error: sederetan bit-bit mengalami error. Disebabkanoleh impulse noise • Misal : data yang dikirim : 1111001010111 • Data yang diterima : 1111110101011 • Makin tinggi data rate, makinbesarefeknya
Teknik Deteksi dan Koreksi Error • Parity checks • Protokol : Asynchronous Xmission • Longitudinal Redundancy Checking (LRC) • Hamming Code • Protokol : wireless (802.11), broadband (802.16) • Polynomial checking • Checksum • Cyclic Redundancy Check (CRC) • Protokol : Ethernet, PPP, HDLC, SDLC
Error Detection and Correction • Ada 2 teknik yang digunakan: • Error - Detecting Codes • Error - Correcting Codes • Error correcting codes memerlukan data redundant lebihbesardibandingkandengan error detecting codes • Begituterdeteksi, error harusdikoreksi TeknikKoreksi Error • Retransmisi (Backward error correction) • Sederhana, efektif, murah, umumdigunakan • Dikoreksidenganretransmisi data • Penerima, jikamendeteksi error, memintapengirimuntuk retransmit message • Seringdisebut Automatic Repeat Request (ARQ) • Forward Error Correction • Peralatanpenerimadapatmengkoreksisendiri messages yang datang
Forward Error Correction (FEC) • Peralatan penerima dapat mengkoreksi sendiri message yang datang (tanpa retransmisi) • Perlu informasi ekstra untuk koreksi • Kirim bersama dengan data • Memungkinkan data untuk di-check dan dikoreksi oleh penerima • Jumlah informasi extra : biasanya 50-100% dari data • Berguna untuk transmisi satelit • Transmisi satu arah (retransmisi tidak dimungkinkan) • Waktu transmisi sangat panjang (retransmisi akan memakan waktu lama) • Biaya FEC tdk signifikan (dibandingkan biaya total peralatan)
sender receiver EVEN parity 01101010 Operator : XOR parity sender receiver ODD parity 01101011 Operator : ~XOR parity Contoh Penggunaan Parity Bit Untukdikirimkan: huruf V pd 7-bit ASCII: 0110101
Hamming Code • Dibuat oleh Richard Hamming (1915-1998) • 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 (gunakan XOR): • 1110 dan 1111 memiliki 1 bit yang berbeda: d=1 • 1010 dan 1100 memiliki 2 bit yang berbeda: d=2
KODE HAMMING (deteksidankoreksikesalahan) Data: 0 1 1 0 (6) d3d2d1d0 Posisi : 1 2 3 4 5 6 7 p1 p2 d3 p4 d2 d1 d0 p1 p2 0 p4 1 1 0 p1 bertanggung jawab pada posisi: 1,3,5,7 p2 bertanggung jawab pada posisi: 2,3,6,7 p4 bertanggung jawab pada posisi: 4,5,6,7 Menggunakan paritas genap : saat pendeteksian, hasil operasi XOR harus 0 (genap) p1 : p1 0 1 0 = genap p1 = 1 p2 : p2 0 1 0 = genap p2 = 1 p4 : p4 1 1 0 = genap p4 = 0 Kode Hamming: 1 1 0 0 1 1 0
MISAL KODE HAMMING PARITAS GENAP DARI BCD ADALAH 1 1 1 0 1 1 0 , BERAPA NILAI BCD TSB? Posisi : 1 2 3 4 5 6 7 p1 p2 d3 p4 d2 d1 d0 1 1 1 0 1 1 0 Yang benar: 1 1 0 0 1 1 0 Data : 0110 (6) p1 : 1+ 1 + 1 + 0 = ganjil salah p2 : 1 + 1 + 1 + 0 = ganjil salah p4: 0 + 1 + 1 + 0 = genap benar Bit yang salah adalah posisi: 3 ????
Penggunaan kode Hamming untuk mengoreksi burst errors. • Normal : mengirimkan data blok per baris • Trik :mengirimkan data blokpadatiapkolom
Penggunaan kode Hamming untuk mengoreksi burst errors. • Normal : mengirimkan data blok per baris • Trik :mengirimkan data blok pada tiap kolom • Ketika terjadi burst error, error hanya terjadi pada sederet bit kolom (satu bit tiap baris Warna kuning : burst error
Polynomial Checking • Tambahkan 1 ataulebihkarakterpadaakhirpesan (berdasarkanalgoritmamatematik) • Duatipe: ChecksumdanCRC • Checksum • Kalkulasidenganmenambahkannilaidesimaldaritiapkarakterpadapesan • Bagi total dengan 255 dan • Simpansisanya (nilai 1 byte) dangunakaninisbg checksum • 95% efektif • Cyclic Redundancy Check (CRC) • Dihitungdengankalkukasisisake problem pembagian
Error detection: CRC • Cyclic redundancy check (CRC) merupakan method yang umumdigunakanuntukmendeteksi error • CRC beroperasipadasebuah frame/block. Setiap block data (berukuran m bit m=M(x)+R(x)) yang akandikirimakanterlebihdahuludihitung CRC checksumnya(berukuran R bit daristandart). • M(x) = pesan yang dikirim. G(x) = generator polynomial. R=jumlah bit CRC yang digunakan (mengikutistandart) • KalikanM(x) dengan 2R • Lakukanpembagian modulo 2 dengan G(x) untukmendapatkansisa R(x) • Kemudian M(x)+R(x) sumnyaakandikirimsebagai frame (denganukuran m bit). • Padasisipenerima, CRC checksum akandihitungkembaliberdasarkanpada frame yang diterima, dandibandingkandengan checksum yang dikirimkan. Jikahasilbaginyatidak 0, berarti frame telahrusak. • CRC menggunakanprinsip modulo bilangan 2.
Aritmrtika modulo • Operasipenambahandanpengurangan= XOR
Contohdeteksi error dengan CRC Contoh: • Akanmengirimkarakter “W” • Dalamdesimal 8710 • Biner : M(x) = x6 + x4 + x2 + x + 1 = 1010111 • Generator menggunakanstandartCRC-4-ITU, polynomial x4 + x + 1 • Maka G(x) = 5-bit string “10011". • R=4 (CRC 4-bit) • Kalikan M(x) dengan 2R • M(x) * 24= 10101110000 Menentukan checksum: • Bagi M(x) dengan generator G(x) • Sisanyaadalah checksum (1011) • Tambahkan checksum ke data asal: • 1011 ke M(x) • Menjadi : 10101111011
Contohdeteksi error denganCRC – Cont’d • Data dan checksum dikirimkan. • Padasisipenerima, data dan checksum yang diterimadibagidengan generator. • Jikasisanya 0, berartitidakterjadikesalahan • Jikasisanyabukan 0, berartiterjadikesalahan • Misalnya M(x) yang diterima : • 10101111011, Sisa yang dihasilkan : 0000 (valid) • 10100111011, Sisayang dihasilkan : 1100 (error) • Paling powerful dan paling umum • Deteksi 100% error, jikajum error ≤ ukuran R • CRC-16 (99.998%) dan CRC-32 (99.9999%)
Flow control • Mengendalikanalirantransmisi data, sehinggapengirimtidakmembanjiripenerima • Prosesutkmeminta data transmisidikirimulang (Automatic Repeat Request / ARQ) • Dapatdilakukanpada layer data link maupun layer diatasnya • Stop and wait protocol (Stop and wait ARQ) • Sender mengirimkansebuah message danmenunggu acknowledgment, lalukjrim message berikutnya • Receiver menerima message danmengirimkan acknowledgement, danmenunggu message berikutnya • Protokol : Stop and wait ARQ • Sliding window (Continuous ARQ) • Sender secarakontinyumengirimkanpakettanpamenunggu acknowledge daripenerima • Receiver secarakontinyumenerima messages tanpaharusmemberikanacknowledment dg segera • Protokol : Go Back N, Selective Repeat
Stop and Wait ARQ Sender Receiver Kirim paket, lalu tunggu kabar dari receiver Kirim acknowledgement Kirim paket berikutnya Kirim negative acknowledgement Kirim ulang paket
Stop and Wait Protocol • Dengan stop and wait protocol utilisasikanalakanrendah. • bit rate: jumlah bit yang dikirimsetiapsatuanwaktu • transmission time: waktu yang digunakanuntukmengirimsebuah frame. • Untuk frame denganukuran L, maka • transmission time (ttrans) = L / bit rate • transmission delay/latency/propagation (tprop): waktu yang diperlukansebuah bit untukmencapaitujuan • Utilisasi channel :
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. Cepat rambat gelombang elektromagnetik menurut Maxwell adalah 3x108 m/sec. Ukuran frame 1000 byte(=8000 bit). Berapa utilisasi channel ? • t trans untuk frame berukuran 8000 bit : 8000/106 = 8ms • Tprop (latency) = 36000km/3X108=120ms • U = 8 / (8 + 2*120) = 0,032 Very Bad !!!
Continuous ARQ • pengirimdapatmengirimhingga w (ukuran window) buah frame tanpaharusmenerimakonfirmasiterlebihdahulu • penerimaharusmemiliki buffer yang mampumenampung n buah frame • frame memilikinomoridentitas(sequence number) • ackmenyatakan frame terakhir yang diterimasesuaiurutan Perhatikan bahwa acknowledgments sekarang mengidentifikasi paket yang di- acknowledged
Sliding Window Protocol • utilisasisaluran: • jika w x t trans > 2 x tprop, makadapatdicapaiutilisasi 100% (pengirimdapatmelakukanpengiriman frame secarakontinu)
Go-Back-N • Allow up to NunACKedpkts in the network • N is the Window size • Sender Operation: • If window not full, transmit • ACKs are cumulative • On timeout, send all packets previously sent but not yet ACKed. • Uses a single timer – represents the oldest transmitted, but not yet ACKedpkt