Jarkom2011-Data Link Layer

Download Report

Transcript Jarkom2011-Data Link Layer

Data link layer Jaringan Komputer

By : Eko Prasetyo Teknik Informatika Univ. Muhammadiyah Gresik 2011

DATA LINK LAYER

data-link layer

berfungsi mentransfer data dari satu simpul (node) ke simpul yang berdekatan melalui saluran (link) Terminologi:  host and router adalah

simpul

 Kanal komunikasi yang menghubungkan simpul yang berdekatan adalah

link

   wired link wireless link LAN  Data di

encapsulate

menjadi

frame

“link”

2

DATA LINK LAYER

Services Provided to the Network Layer

Framing

Error Control

Flow Control

3

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

4

Services Provided to Network Layer

(a) Virtual communication.

(b) Actual communication.

5

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

6

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?

7

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

8

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

9

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.

10

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 yang hilang

11

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

12

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

13

Framing

Data Link melakukan framing untuk :

Mengurangi kemungkinan error

Menyesuaikan dengan kapasitas buffer penerima yang terbatas

14

Framing

Hubungan antara packets and frames.

15

Arsitektur Link Layer

sending node datagram link layer protocol frame adapter frame adapter rcving node  Sisi pengirim :   Mengencapsulasi datagram dalam frame Menambah error checking bits, rdt, flow control, dsb.

 Sisi penerima   Memeriksa error, rdt, flow control, dsb.

Mengekstrak datagram, mengirimkan ke node penerima

16

Framing

Teknik framing :

Character count

Flag byte – byte stuffing

Flag bits – bit stuffing

17

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

18

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

19

Framing : flag byte

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

20

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

21

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.

22

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

23

Error Control (Cont.)

   Laju Error (Error Rate)  Bit error rate (BER) menunjukan probabilitas bit terkena error. Harga tipikal BER = 10 -9 untuk link electrik, dan 10 -12 untuk link optik  1 bit error dalam n bit yang ditransmisikan. mis., 1 dalam 100,000  Bit Error rate (BER) = 10 -5 Burst error   Banyak bit yang terkorupsi pada saat bersamaan Error-error tidak terdistribusi secara uniform Fungsi-fungsi utama    Mencegah error Mendeteksi error Mengkoreksi errors

24

BER vs PER

D H H ACK Contoh: Asumsi BER dan error independen, Packet Error Rate = PER = 1 – (1 – BER) N PER ~= N (BER) if N (BER) << 1 mis. N = 10 4 , BER = 10 -7 => PER = 10 -3

25

Sumber-Sumber Error

 Noise saluran dan distorsi – penyebab utama   Lebih mungkin pd media elektrik  Sinyal elektrik yang tidak diinginkan  Disebabkan gangguan peralatan dan alam  Menurunkan performansi suatu circuit Tanda-tanda    Bit-bit extra Bit bit berubah (“flipped” bits) Bit-bit hilang

26

Sumber Error dan Pencegahan

Source of Error Line Outages White Noise (Gaussian Noise) Impulse Noise (Spikes) Cross-talk Echo Attenuation Intermodulation Noise Jitter Harmonic Distortion What causes it

Faulty equipment, Storms, Accidents (circuit fails) Movement of electrons (thermal energy) Sudden increases in electricity (e.g., lightning, power surges ) Multiplexer guard bands are too small or wires too close together Poor connections (causing signal to be reflected back to the source) Gradual decrease in signal over distance (weakening of a signal) Signals from several circuits combine Analog signals change (small changes in amp., freq., and phase) Amplifier changes phase (does not correctly amplify its input signal)

How to prevent it

Increase signal strength (increase SNR) Shield or move the wires Increase the guard bands, or move or shield the wires Fix the connections, or tune equipment Use repeaters or amplifiers Move or shield the wires Tune equipment Tune equipment

27

Deteksi Error

Pengirim mengkalkulasi Error Detection Value (EDV) dan mentransmisikan bersama data

Mathematical calculations

Data yg akan ditransmisikan

EDV

Makin besar ukuran, makin baik deteksi error (tetapi efisiensi lebih rendah) Penerima kalkulasi ulang EDV dan bandingkan dengan EDV yang diterima

Mathematical calculations ?

=

– Jika sama  error tidak ada saat transmisi – Jika berbeda  Terjadi error saat transmisi

28

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

29

Teknik Deteksi dan Koreksi Error

 Parity checks  Longitudinal Redundancy Checking (LRC)  Hamming Code  Polynomial checking  Checksum  Cyclic Redundancy Check (CRC)

30

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

31

Error Detection and Correction

Ada 2 teknik yang digunakan:

 Error - Detecting Codes  Error - Correcting Codes 

Error correcting codes memerlukan data redundant lebih besar dibandingkan dengan error detecting codes

32

Koreksi Error

 Begitu terdeteksi, error harus dikoreksi  Teknik Koreksi Error  Retransmisi (Backward error correction)  Sederhana, efektif, murah, umum digunakan   Dikoreksi dengan retransmisi data  Penerima, jika mendeteksi error, meminta pengirim untuk retransmit message  Sering disebut Automatic Repeat Request (ARQ) Forward Error Correction  Peralatan penerima dapat mengkoreksi sendiri messages yang datang

33

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)

34

Contoh Penggunaan Parity Bit

Untuk dikirimkan: huruf V pd 7-bit ASCII: 0110101 EVEN parity Operator : XOR

sender 0110101 0

parity

receiver

ODD parity

sender

Operator : ~XOR

0110101 1

parity

receiver 35

Parity Checking

      Satu yang paling tua dan paling sederhana Satu bit ditambahkan pada tiap karakter   Even parity: penambahan 1 bit parity  Odd parity : penambahan 1 bit parity  jumlah bit 1 genap (even) jumlah bit 1 ganjil (odd) Sisi penerima kalkulasi ulang parity bit  Jika satu bit mengalami error transmisi jumlah bit 1 tdk sesuai dengan parity yang digunakan (

genap identik dengan 0 dan ganjil identik dengan 1

) Sederhana, tetapi tidak dapat mendeteksi semua error   Jika dua (atau sejumlah genap) bit mengalami error, parity check tampak benar Mendeteksi sekitar 50% dari error Jika terjadi kesalahan maka data harus dikirim ulang Keuntungannya, hanya menggunakan satu bit tunggal untuk check bit dan membutuhkan hanya satu gate XOR untuk mengenerate

36

KODE DENGAN PENDETEKSI KESALAHAN

Desimal

6 7 8 9 3 4 5 0 1 2

BCD

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

Dengan paritas genap

0000 0 0001 1 0010 1 0011 0 0100 1 0101 0 0110 0 0111 1 1000 1 1001 0

Dengan paritas gasal

0000 1 0001 0 0010 0 0011 1 0100 0 0101 1 0110 1 0111 0 1000 0 1001 1

37

Error detection : parity bit

  Contoh : mengirimkan nilai 4-bit yaitu 1001 dengan bit paritas disisi kanan, tanda ^ menyatakan gate XOR Transmisi pengiriman menggunakan paritas

genap

:       A wants to transmit: 1001 A computes parity bit value: 1^0^0^1 = 0 A adds parity bit and sends: 10010 B receives: 10010 B computes parity: 1^0^0^1^0 = 0 B reports correct transmission after observing expected even result.

38

Error detection : parity bit

  Transmisi pengiriman menggunakan paritas

ganjil

:  A wants to transmit: 1001      A computes parity bit value: ~(1^0^0^1) = 1 A adds parity bit and sends: 10011 B receives: 10011 B computes overall parity: 1^0^0^1^1 = 1 B reports correct transmission after observing expected odd result. Transmisi pengiriman menggunakan paritas

genap

:  A wants to transmit: 1001      A computes parity bit value: 1^0^0^1 = 0 A adds parity bit and sends: 10010 *** TRANSMISSION ERROR *** B receives: 1

1

010 B computes overall parity: 1^1^0^1^0 = 1 B reports incorrect transmission after observing unexpected odd result.

39

Error detection : parity bit

  B menghitung paritas ganjil yang mengindikasikan error, disini yang terjadi error pada bit paritasnya :  A wants to transmit: 1001      A computes even parity value: 1^0^0^1 = 0 A sends: 10010 *** TRANSMISSION ERROR *** B receives: 1001

1

B computes overall parity: 1^0^0^1^1 = 1 B reports incorrect transmission after observing unexpected odd result.

Bit paritas hanya menjamin deteksi jumlah ganjil pada bit error. Jika jumlah genap mempunyai error, bit paritas mencatat hasil yang benar padahal datanya corrupt.

 A wants to transmit: 1001      A computes even parity value: 1^0^0^1 = 0 A sends: 10010 *** TRANSMISSION ERROR *** B receives: 1

1

01

1

B computes overall parity: 1^1^0^1^1 = 0 B reports correct transmission though actually incorrect.

40

LRC -

Longitudinal Redundancy Checking   Tambahkan karakter tambahan (bukan satu bit)    Block Check Character (BCC) pada tiap blok data Ditentukan seperti parity, tetapi menghitung secara longitudinal pada pesan (dan juga secara vertikal) Kalkulasi berdasarkan pd bit ke-1, ke-2 dst (dari semua karakter) pd blok  Bit ke-1 dari BCC  jumlah 1 pada bit ke-1 dari karakter  Bit ke-2 dari BCC  jumlah 1 pada bit ke-2 dari karakter Perbaikan signifikan dibandingkan parity checking    98% laju deteksi error utk burst errors ( > 10 bit) Mampu mengoreksi error sebuah bit Mampu mengoreksi error sebuah drive yang rusak (dalam RAID)

41

Parity Checking

Single Bit Parity:

Detect single bit errors

Two Dimensional Bit Parity

: Detect and correct single bit errors

Contoh : Menggunakan paritas genap 0 0

42

Penggunaan LRC Utk Deteksi Error

Contoh: kirim pesan “DATA” dg ODD parity dan LRC

Letter D A T A 1 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 0 1 0 0 0 0 0 1 1 BCC 1 1 0 1 1 1 1 1

Arah pentransmisian bit Cat. parity bit BCC juga ditentukan dg parity

43

Penggunaan LRC Utk Deteksi Error

Contoh: kirim pesan “DATA” dg ODD parity dan LRC Yang diterima seperti pada gambar

Letter D C 1 0 0 0 1 0 0 1 0 0 0 0 1 1 1 1

Paritas error

T A 1 0 1 0 1 0 0 1 0 0 0 0 0 1 0 1 BCC 1 1 0 1 1 1 1 1

Bagaimana jika ada 2 bit yang error pada data 2 ?

Paritas error Koreksi dilakukan dengan menginversi bit 0 menjadi 1 atau 1 menjadi 0 pada posisi bit yang baris dan kolomnya dinyatakan error

44

Penggunaan LRC Utk Deteksi Error

RAID

Paritas juga digunakan dalam beberapa level RAID untuk mendapatkan redundansi. Jika dalam salah satu drive array rusak, data tersebut masih dapat dikembalikan dengan mengombinasikan data paritas (dengan operator logika XOR) untuk mengembalikan data yang rusak.

Drive 1 2 3 4 BCC ASCII 1 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1

Rusak !!!

Drive 1 3 4 BCC 2 ASCII 1 0 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1

Koreksi dilakukan dengan megoperasi drive yang lain dengan BCC sehingga drive 2 (rusak) bisa dikembalikan data aslinya)

45

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 (gunakan XOR):   1110 dan 1111 memiliki 1 bit yang berbeda: d=1 1010 dan 1100 memiliki 2 bit yang berbeda: d=2

46

Hamming distance

47

KODE HAMMING ( DETEKSI DAN KOREKSI KESALAHAN )

Data: 0 1 1 0 (6) p 1 p 2 p 4 d 3 d 2 d 1 d 0 Posisi : 1 2 3 4 5 6 7 p 1 p 1 p 2 p 2 d 3 p 4 d 2 d 1 d 0 0 p 4 1 1 0 bertanggung jawab pada posisi: 1,3,5,7 bertanggung jawab pada posisi: 2,3,6,7 bertanggung jawab pada posisi: 4,5,6,7 Menggunakan paritas genap : saat pendeteksian, hasil operasi XOR harus 0 (genap) p 1 p 2 p 4 : p 1 : p 2 : p 4    0  0  1  1  1  1  0 = genap  0 = genap  0 = genap  p 1 p 2 p 4 = 1 = 1 = 0

Kode Hamming: 1 1 0 0 1 1 0 48

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 p 1 p 2 d 3 p 4 d 2 d 1 d 0 1 1 1 0 1 1 0 Yang benar: 1 1 0 0 1 1 0 Data : 0110 (6) p 1 p 2 p 4 : 1 + 1 + 1 + 0 = ganjil  : 1 + 1 + 1 + 0 = ganjil  salah salah : 0 + 1 + 1 + 0 = genap  benar Bit yang salah adalah posisi: 3 ????

49

Hamming Code – Contoh FEC

Kalkulasi tiga parity bit EVEN dari data Jika satu bit (parity atau data) berubah  perubahan pd bit data dp dideteksi & dikoreksi

50

Use of a Hamming code to correct burst errors.

51

Polynomial Checking

    Tambahkan 1 atau lebih karakter pd akhir pesan (berdasarkan algoritma matematik) Dua tipe: Checksum dan CRC Checksum     Kalkulasi dengan menambahkan nilai desimal dari tiap karakter pd pesan Bagi total dengan 255 dan Simpan sisanya (nilai 1 byte) dan gunakan ini sbg checksum 95% efektif Cyclic Redundancy Check (CRC)  Dihitung dg kalkukasi sisa ke problem pembagian

52

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

 m=M(x)+R(x)) yang akan dikirim akan terlebih dahulu dihitung CRC checksumnya (berukuran R bit dari    M(x) = pesan yang dikirim. G(x) = generator polynomial. R=jumlah bit CRC yang digunakan (mengikuti standart) Kalikan D dengan 2 R Lakukan pembagian modulo 2 dengan G(x) untuk mendapatkan sisa R(x) Kemudian M(x)+R(x) sumnya akan dikirim sebagai frame (dengan ukuran m bit). Pada sisi penerima, CRC checksum akan dihitung kembali berdasarkan pada frame yang diterima, dan dibandingkan dengan checksum yang dikirimkan. Jika hasil baginya tidak 0, berarti frame telah rusak. CRC menggunakan prinsip modulo bilangan 2 .

53

Modulo arithmetic

 Operasi penambahan dan pengurangan = XOR

54

Standart CRC Internasional

Name Polynomial Representations: normal / reversed / reverse of reciprocal

CRC-1 CRC-4-ITU CRC-5-EPC CRC-5-ITU CRC-5-USB CRC-6-ITU CRC-7 x + 1 (most hardware; also known as parity bit) x 4 + x + 1 (ITU-T G.704, p. 12) x 5 + x 3 + 1 (Gen 2 RFID) x 5 + x 4 + x 2 + 1 (ITU-T G.704, p. 9) x 5 + x 2 + 1 (USB token packets) x 6 + x + 1 (ITU-T G.704, p. 3) x 7 + x 3 + 1 (telecom systems, ITU-T G.707, ITU-T G.832, MMC, SD) 0x1 / 0x1 / 0x1 0x3 / 0xC / 0x9 0x09 / 0x12 / 0x14 0x15 / 0x15 / 0x1A 0x05 / 0x14 / 0x12 0x03 / 0x30 / 0x21 0x09 / 0x48 / 0x44 CRC-8-CCITT x 8 + x 2 + x + 1 (ATM HEC), ISDN Header Error Control and Cell Delineation ITU-T I.432.1 (02/99) 0x07 / 0xE0 / 0x83 CRC-8 Dallas/Maxim CRC-8 x 8 + x 5 + x 4 + 1 (1-Wire bus) x 8 + x 7 + x 6 + x 4 + x 2 + 1 CRC-8-SAE J1850 x 8 + x 4 + x 3 + x 2 + 1 CRC-8-WCDMA CRC-10 CRC-11 x 8 + x 7 x 10 + x 9 + x + x 4 5 + x 3 + x + 1 + x 4 + x + 1 (ATM; ITU-T I.610) x 11 + x 9 + x 8 + x 7 + x 2 + 1 (FlexRay) 0x31 / 0x8C / 0x98 0xD5 / 0xAB / 0xEA 0x1D / 0xB8 / 0x8E 0x9B / 0xD9 / 0xCD 0x233 / 0x331 / 0x319 0x385 / 0x50E / 0x5C2 CRC-12 CRC-15-CAN x x 12 15 + x + x 11 14 + x + x 3 10 + x 2 + x 8 + x + 1 (telecom systems) + x 7 + x 4 + x 3 + 1 0x80F / 0xF01 / 0xC07 0x4599 / 0x4CD1 / 0x62CC

55

Standart CRC Internasional

Name

CRC-16-IBM CRC-16-CCITT CRC-16-T10-DIF CRC-16-DNP CRC-16-DECT CRC-16-Fletcher

Polynomial Representations: normal / reversed / reverse of reciprocal

x16 + x15 + x2 + 1 (Bisync, Modbus, USB, ANSI X3.28, many others; also known as CRC-16 and CRC-16-ANSI) x16 + x12 + x5 + 1 (X.25, V.41, HDLC, XMODEM, Bluetooth, SD, many others; known as CRC CCITT) 0x8005 / 0xA001 / 0xC002 0x1021 / 0x8408 / 0x8810[8] x16 + x15 + x11 + x9 + x8 + x7 + x5 + x4 + x2 + x + 1 (SCSI DIF) x16 + x13 + x12 + x11 + x10 + x8 + x6 + x5 + x2 + 1 (DNP, IEC 870, M-Bus) x16 + x10 + x8 + x7 + x3 + 1 (cordless telephones) Not a CRC; see Fletcher's checksum 0x8BB7[20] / 0xEDD1 / 0xC5DB 0x3D65 / 0xA6BC / 0x9EB2 0x0589 / 0x91A0 / 0x82C4 Used in Adler-32 A & B CRCs CRC-24 x24 + x22 + x20 + x19 + x18 + x16 + x14 + x13 + x11 + x10 + x8 + x7 + x6 + x3 + x + 1 (FlexRay) 0x5D6DCB / 0xD3B6BA / 0xAEB6E5 CRC-24-Radix-64 CRC-30 CRC-32-Adler CRC-32-IEEE 802.3 CRC-32C (Castagnoli) CRC-32K (Koopman) CRC-32Q CRC-40-GSM CRC-64-ISO CRC-64-ECMA-182 x24 + x23 + x18 + x17 + x14 + x11 + x10 + x7 + x6 + x5 + x4 + x3 + x + 1 (OpenPGP) x30 + x29 + x21 + x20 + x15 + x13 + x12 + x11 + x8 + x7 + x6 + x2 + x + 1 (CDMA) Not a CRC; see Adler-32 x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1 (V.42, Ethernet, SATA, MPEG-2, PNG,[22] POSIX cksum) x32 + x28 + x27 + x26 + x25 + x23 + x22 + x20 + x19 + x18 + x14 + x13 + x11 + x10 + x9 + x8 + x6 + 1 (iSCSI & SCTP, G.hn payload, SSE4.2) x32 + x30 + x29 + x28 + x26 + x20 + x19 + x17 + x16 + x15 + x11 + x10 + x7 + x6 + x4 + x2 + x + 1 0x864CFB / 0xDF3261 / 0xC3267D 0x2030B9C7 / 0x38E74301 / 0x30185CE3 See Adler-32 0x04C11DB7 / 0xEDB88320 / 0x82608EDB 0x1EDC6F41 / 0x82F63B78 / 0x8F6E37A0 0x741B8CD7 / 0xEB31D82E / 0xBA0DC66B[11] 0x814141AB / 0xD5828281 / 0xC0A0A0D5 x32 + x31 + x24 + x22 + x16 + x14 + x8 + x7 + x5 + x3 + x + 1 (aviation; AIXM) x40 + x26 + x23 + x17 + x3 + 1 (GSM control channel) x64 + x4 + x3 + x + 1 (HDLC — ISO 3309, Swiss-Prot/TrEMBL; considered weak for hashing) 0x0004820009 / 0x9000412000 / 0x8002410004 0x000000000000001B / 0xD800000000000000 / 0x800000000000000D x64 + x62 + x57 + x55 + x54 + x53 + x52 + x47 + x46 + x45 + x40 + x39 + x38 + x37 + x35 + x33 + x32 + x31 + x29 + x27 + x24 + x23 + x22 + x21 + x19 + x17 + x13 + x12 + x10 + x9 + x7 + x4 + x + 1 (as described in ECMA-182 p. 51) 0x42F0E1EBA9EA3693 / 0xC96C5795D7870F42 / 0xA17870F5D4F51B49

56

CRC

Contoh :

 Akan mengirim karakter “W”     Dalam desimal 87 10 Biner : M(x) = x 6 + x 4 + x 2 + x + 1 = 1010111  Generator menggunakan standart CRC-8 ATM (HEC) polynomial

x

8 +

x

2 +

x

+ 1 Maka G(x) = 9-bit string "100000111".

 R=8 (CRC 8bit)  Kalikan M(x) dengan 2 R M(x) * 2 8 = 1010111

00000000 Menentukan checksum:

1.

2.

3.

Bagi M(x) dengan generator G(x) Sisanya adalah checksum (10100010) Tambahkan checksum ke data asal :   10100010 ke M(x) Menjadi : 1010111

10100010 57

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 Misalnya M(x) yang diterima : 1010

0

1110100010 Sisa yang dihasilkan :

00011100

Pesan yang terima terjadi error.

58

CRC

   M(x) yang diterima : 101011110100010 Sisa yang dihasilkan : 00000000 Pesan yang diterima benar – Paling powerful dan paling umum – Deteksi 100% error, jika jum error ≤ ukuran R • Kalau tdk : CRC-16 (99.998%) dan CRC-32 (99.9999%)

59

Flow control

   Mengendalikan aliran transmisi data, sehingga pengirim tidak membanjiri penerima Proses utk meminta data transmisi dikirim ulang (Automatic Repeat Request / ARQ) Dapat dilakukan pada layer data link maupun layer di atasnya   Stop and wait protocol (Stop and wait ARQ)   Sender mengirimkan sebuah message dan menunggu acknowledgment, lalu kjrim message berikutnya Receiver menerima message dan mengirimkan acknowledgement, dan menunggu message berikutnya sliding window (Continuous ARQ)   Sender secara kontinyu mengirimkan paket tanpa menunggu acknowledge dari penerima Receiver secara kontinyu menerima messages tanpa harus memberikan acknowledment dg segera

60

Stop and Wait ARQ

Sender Kirim paket, lalu tunggu kabar dari receiver Kirim paket berikutnya Kirim ulang paket Receiver Kirim acknowledgement Kirim negative acknowledgement

61

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 (t trans ) = L / bit rate transmission delay /latency/propagation (t prop ) : waktu yang diperlukan sebuah bit untuk mencapai tujuan

62

Stop and Wait Protocol

 Utilisasi kanal:

63

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/10 6 = 8ms T prop (latency) = 36000km/3X10 8 =120ms U = 8 / (8 + 2*120) = 0,032

64

Continuous ARQ

    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 Perhatikan bahwa acknowledgments sekarang mengidentifikasi paket yang di acknowledged

65

Sliding Window Protocol

 utilisasi kanal :  jika w x t trans 100% > 2 x t prop , maka dapat dicapai utilisasi (pengirim dapat melakukan pengiriman frame secara kontinu)

66

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 A sliding window of size 1, with a 3-bit sequence number.

(a) Initially.

(b) After the first frame has been sent.

(c) After the first frame has been received.

(d) After the first acknowledgement has been received.

67

Sliding Window Protocol

68

Go-Back-N

Allow up to

N

network unACKed pkts in the

 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 ACKed pkt

69

A Protocol Using Go Back N

Pipelining and error recovery. Effect on an error when (a) (b) Receiver’s window size is 1.

Receiver’s window size is large.

70

Selective Repeat

  Penerima memberitahu secara individu semua paket yang diterima dengan benar  Buffer paket, dibutuhkan untuk kejadian penerimaan paket layer diatasnya Pengirim hanya mengirimkan paket yang belum ada ACK  Sender window  N memutus urutan #’s  Batas urutan #s yang terkirim, paket yang belum ACK

71

Selective Repeat Example

0123 456789 PKT0 PKT1 PKT2 PKT3 0 1234 56789 01 2345 6789 0 1234 56789 0 1234 56789 Time-Out ACK0 ACK1 ACK2 ACK3 PKT1 PKT4 01234 5678 9 ACK4 ACK1 01234 5678 9 Receiver Sender

72

Protokol Data Link

 Klasifikasi  Asynchronous transmission  Synchronous transmission  Berbeda oleh  Message delineation  Frame length  Frame field structure

frame k-1 frame k frame k+1 73

Asynchronous Transmission

Digunakan oleh receiver utk memisahkan karakter dan utk synch.

Kadang disebut start-stop transmission Tiap karakter dikirim secara independen Kirim antara transmisi (deretan stop bits) Digunakan pada point-to-point full duplex circuits (digunakan oleh Telnet saat menghubungkan ke komputer Unix/Linux)

74

Asynchronous File Transfer

   Digunakan pada  Point-to-point asynchronous circuits   Biasanya melalui saluran telepon via modem Komputer ke komputer untuk transfer file data Karakteristik dari file transfer protocols  Dirancang untuk transmit error-free data  Kelompokkan data kedalam blocks untuk ditransmisikan (tidak dikirimkan character by character) File transfer Protocols yang populer  Xmodem, Zmodem, dan Kermit

75

File Transfer Protocols

Xmodem • satu dari async file transfer protocol paling tua • menggunakan stop-and-wait ARQ.

Start of Header SOH Packet # Packet # compl.

Checksum (128 bytes)

• Xmodem-CRC: menggunakan 1 byte CRC (drpd checksum) • Xmodem-1K: Xmodem-CRC + message field 1024 byte Zmodem • Menggunakan CRC-32 dg continuous ARQ • Pengaturan dinamis dari ukuran paket (tergantung circuit) Kermit • Sangat fleksibel, powerful dan popular • Biasanya menggunakan CRC-24 dan ukuran 1K, tetapi adjustable

76

Synchronous Transmission

    Data dikirim dalam satu blok yg besar  disebut frame atau paket  Biasanya sekitar seribu karakter (bytes) Mencakup informasi addressing  Terutama berguna dalam multipoint circuits Mencakup satu serie dari karakter-karakter synchronization (SYN)  Digunakan utk membantu receiver mengenali data yg datang Kategori Synchronous transmission protocols    Bit-oriented protocols: SDLC, HDLC Byte-count protocols: Ethernet Byte-oriented protocols: PPP

77

Byte-Oriented Protocol

8

STX

Text (Data) 8

ETX

  STX - start of text ETX - end of text  Masalah: bagaimana jika ETX muncul pada bagian data dari frame   Solusi: Gunakan karakter khusus DLE (“Data Link Escape”) sebelumnya   Jika DLE muncul dalam text, gunakan DLE lainnya sebelumnya Contoh-contoh protocol:  Bisync, PPP, DDCMP

78

Byte-Count Protocol

   Sender: Menyisipkan panjang data (dalam byte) pada awal frame Receiver: mengekstrak panjang ini dan menguranginya setiap satu byte dibaca, jika counter menjadi nol satu frame lengkap diproses Contoh: Ethernet

79

Bit-Oriented Protocol

8

Start sequence

Text (Data) 8

End sequence

     Digunakan suatu flag: deretan bit tetap (pola tetap) untuk indikasi awal dan akhir suatu paket  Pola start sequence dan end sequence dapat sama, mis pd HDLC” ‘01111110’ Secara prinsip, sembarang deretan dp digunakan, tetapi kemunculan flag harus dicegah di dalam data Protokol standard menggunakan deretan 8-bit 01111110 sbg satu flag INVENTED ~ 1970 oleh IBM utk SDLC (synchronous data link protocol) Data transparan   Krnnya 0111111 yang tidak boleh muncul di didalam data Untuk mencegah pola start dan end sequence pada data digunakan ‘bit stuffing’

80

Bit Stuffing (Pengirim)

  Digunakan utk menghilangkan flag dari data original Satu 0 disisipkan setelah 1 berturutan pd frame original  Mengapa perlu menyisipkan 0 pd 0111110?

 Jika tidak 0111110111  011111111  0111110111 011111 0 111  Bagaimana membedakannya pd penerima?

81

Destuffing (Penerima)

 Jika 11111 diikuti 0, buang 0

82

SDLC –

Synchronous Data Link Control Awal (01111110) • Bit-oriented protocol dikembangkan IBM • Menggunakan controlled media access protocol Akhir (01111110)

data CRC-32

Address tujuan(8 atau 16 bit) Identifikasi tipe frame: - Informasi (utk transfer data user) - Supervisory (utk error dan flow control)

83

Masalah Transparansi pd SDLC

  Problem: Transparansi  Data user dapat berisi pola bit seperti flags (01111110)  Receiver dapat menginterpretasi sebagai akhir frame dan mengabaikan yang lainnya Solusi: Bit stuffing (zero insertion)    Sender menyisipkan 0 jika mendeteksi 11111 (lima deretan 1) Jika receiver melihat lima deretan 1, check bit-bit berikutnya    jika 0, hilangkan (stuffed bit) jika10, akhir dari frame marker (01111110) jika 11, error (tujuh deretan tdk mungkin dlm data) Bekerja tetapi menambah kompleksitas

84

HDLC –

High-Level Data Link Control    Standar formal dikembangkan oleh ISO Sama seperti SDLC, kecuali  Address dan field control lebih panjang   Ukuran sliding window lebih besar Lainnya Dasar bagi banyak Data Link Layer protocol lainnya  LAP-B (Link Accedes Protocol – Balanced)   Digunakan pada teknologi X.25

LAP-D (Link Accedes Protocol – Balanced)  Digunakan pada teknologi ISDN  LAP- F (digunakan pd teknologi Frame Relay)

85

Ethernet (IEEE 802.3)

 Protokol LAN paling luas digunakan, dikembangkan bersama oleh Digital, Intel, dan Xerox, sekarang sebagai standar IEEE  formal standard: IEEE 802.3ac

 Menggunakan contention based media access control  Byte-count data link layer protocol  Tidak ada masalah transparency  Menggunakan sebuah field berisi jumlah bytes (bukan flags) untuk membatasi frames  Koreksi error: optional

86

Frame Ethernet (IEEE 802.3)

• Digunakan pd Virtual LANs; (jika tidak field ini diabaikan • Jika digunakan, 2 byte pertama di-set ke: 24.832 (8100H) Digunakan untuk no urut/sequence number, ACK/NAK, dll, (1 atau 2 byte)

00 01 10 11

Pengulangan pola dari (1010101010) (jumlah byte pada field message) Digunakan untuk pertukaran info kontrol (mis., tipe protokol network layer yang digunakan)

87

Point-to-Point Protocol (PPP)

• Byte-oriented protocol dikembangkan awal 90’an • Umum digunakan pada saluran dial-up dari PC di rumah • Dirancang terutama untuk saluran. telepon point-to-point (dapat digunakan juga untuk saluran multipoint) Menspesifikasikan protokol network layer yang digunakan (mis. IP, IPX) (s/d 1500 byte)

88

Data Link Protocol Summary

Protocol

Asynchronous Xmission

File Transfer Protocols

XMODEM XMODEM-CRC XMODEM-1K ZMODEM KERMIT

Size

1 132 * * 132 1028

Error Detection

Parity 8-bit Checksum 8-bit CRC 8-bit CRC 32-bit CRC 24-bit CRC

Synchronous Protocols

SDLC HDLC * * Token Ring * Ethernet SLIP PPP * * *

* Varies depending on message length.

16-bit CRC 16-bit CRC 32-bit CRC 32-bit CRC None 16-bit CRC

Retransmission

Continuous ARQ Stop-and-wait ARQ Stop-and-wait ARQ Stop-and-wait ARQ Continuous ARQ Continuous ARQ Continuous ARQ Continuous ARQ Stop-and wait ARQ Stop-and wait ARQ None Continuous ARQ

Media Access

Full Duplex Controlled Access Controlled Access Controlled Access Controlled Access Controlled Access Controlled Access Controlled Access Controlled Access Contention Full Duplex Full Duplex

89

Efisiensi Transmisi

  Tujuan suatu jaringan:  Memindahkan sebanyak mungkin bit dengan error minimum  efisiensi lebih tinggi biaya lebih rendah Fator yg mempengaruhi efisiensi jaringan:    Karakteristik dari circuit (laju error/error rate, kecepatan/speed) Kecepatan dari peralatan, Teknik Error control Protocol yang digunakan  Bit-bit informasi (memuat informasi user)  Bit-bit Overhead (digunakan untuk error checking, pembatas frame, dll.) = Total jumlah bit info ditransmisikan Total jumlah bit ditransmisikan

90

Efisiensi Transmisi dari Protocol

Async Transmission: 7-bit ASCII (info bits), 1 parity bit, 1 stop bit, 1 start bit Efisiensi transmisi = 7 / 10  70% mis., V.92 modem dg 56 Kbps  laju efektif 39.2 Kbps SDLC Transmission Asumsi 100 karakter info (800 bit), 2 flag (16 bit) Address (8 bits), Control (8 bits), CRC (32 bits) Efisiensi transmisi = 800 / 64  92.6% mis., V.92 modem with 56 Kbps  51.9 Kbps effective rate Lebih besar panjang message, efisiensi lebih baik namun, paket yang lebih besar kemungkinan mendapatkan error lebih besar (kemungkinan lebih banyak memerlukan retransmisi)  kapasitas terbuang

91

Throughput

 Definisi lebih akurat dari efisiensi  Total jumlah bit informasi diterima per detik; dengan mempertimbangkan:  Bit-bit overhead (seperti pada efisiensi transmisi)  Keperluan retransmisi paket mengandung error  Kalkulasi kompleks; tergantung pada    Efisiensi transmisi Laju error Jumlah retransmisi  Transmission Rate of Information Bits (TRIB)  Digunakan sebagai ukuran dari throughput

92

Ukuran paket Optimum

Trade-off antara ukuran paket dan throughput Rentang yang dapat diterima (kemungkinan mengandung error kecil) (lebih mahal dalam hal kapasitas circuit untuk retransmisi jika ada error)

93

TRIB

= Jumlah bit info diterima / total waktu diperlukan untuk mendapatkan bit (jumlah bit info) (Prob. Dari transmisi sukses) waktu diperlukan untuk transmit bit-bit ini + delay propagasi Info bits per character TRIB = Packet length in Average number characters of non-info characters per block K (M – C) (1 – P) (M / R) + T Probability that a block will require retransmission Ex: K=7 bits/character M = 400 char/block R= 4.8 Kb/s C = 10 char/block P = 1% T = 25 ms 7(400-10)(1-0.01) TRIB = (400/600)+0.025) = 3.908 Kb/s Data xmission rate in char per second Time between blocks (in seconds) (propagation time + turnaround time) (a.k.a., reclocking time) 94

PEKERJAAN RUMAH

1.

2.

3.

4.

5.

Baca Tanenbaum Chapter 3 dan 4.

Kerjakan soal Chapter 3 No: 2, 3, 5, 10, 15, 16, dan 17.

Tugas di email paling lambat …… jam 24:00 Format nama file : tugas-datalink-

noreg

-

nama

.doc

Format subject email : tugas-datalink-

noreg

-

nama

95