Anda di halaman 1dari 97

Implementasi Data link layer dalam

Jaringan Komputer
Teknik Informatika
Universitas Dian Nuswantoro
November @2015
Pendahuluan
 Merupakan Layer 2 pada Model OSI
 Bertujuan menyediakan koneksi antara dua
komputer/host dengan menggunakan
pengalamatan secara fisik/Hardware Addressing
 Komunikasi hanya bisa terjadi jika kedua
host/komputer yang berkomunikasi tahu alamat
fisik masing-masing
 Pengalamatan secara fisik biasa disebut MAC
Address
 MAC Address Diambilkan dari ID NIC masing-
masing komputer

2
Medium Access Control Address
 MAC Address terdiri dari 48 bit tetapi biasanya ditulis
dalam 12 bit Heksadesimal dengan ketentuan 6 bit
sebagai kode pabrik yang ditentukan oleh IEEE dan 6
bit berikunya adalah nomor serial peralatan yang
dikeluarkan oleh pabrik

3
DATA LINK LAYER
data-link layer berfungsi
“link”
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

4
DATA LINK LAYER

 Services Provided to the Network


Layer
 Framing
 Error Control
 Flow Control

5
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

6
Services Provided to Network
Layer

(a) Virtual communication.


(b) Actual communication.

7
Prinsip dasar (1)
 Masalah utama dalam komunikasi data di
jaringan adlh realibility atau keandalan. Sinyal y
ang dikirim melalui medium tertentu dapat men
galami pelemahan, distorsi, keterbatasan band
width
 Data yang dikirim dapat menjadi rusak, hilang,
berubah
 Tugas data link layer adalah menangani kerusa
kan dan hilangnya data antar 2 titik komunikasi
yang terhubung oleh satu medium transmisi fisi
k

8
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?
9
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
10
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

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

12
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

13
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

14
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

15
Framing

 Data Link melakukan framing


untuk:
 Mengurangi kemungkinan
error
 Menyesuaikan dengan
kapasitas buffer penerima
yang terbatas
16
Framing

Hubungan antara packets and frames.


17
Arsitektur Link Layer
datagram
link layer protocol rcving
sending node
node
frame frame
adapter adapter

 Sisi pengirim :  Sisi penerima


 Mengencapsulasi datagram  Memeriksa error, rdt, flow
dalam frame control, dsb.
 Mengekstrak datagram,
 Menambah error checking
mengirimkan ke node
bits, rdt, flow control, dsb.
penerima

18
Framing

 Teknik framing:
 Character count

 Flag byte – byte stuffing

 Flag bits – bit stuffing

19
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

20
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

21
Framing : flag byte

(a) A frame delimited by flag bytes.


(b) Four examples of byte sequences before and after stuffing.

22
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
23
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.
24
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

25
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

26
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 = 104, BER = 10-7 => PER = 10-3

27
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

28
Sumber Error dan Pencegahan
Source of Error What causes it How to prevent it

Line Outages Faulty equipment, Storms, Accidents  


  (circuit fails)
White Noise Movement of electrons (thermal Increase signal strength
More important

(Gaussian Noise) energy) (increase SNR)


Impulse Noise Sudden increases in electricity Shield or move the wires
(Spikes) (e.g., lightning, power surges)
Multiplexer guard bands are too small Increase the guard bands, or
Cross-talk or wires too close together move or shield the wires
Echo Poor connections (causing signal to Fix the connections, or
  be reflected back to the source) tune equipment
Attenuation Gradual decrease in signal over Use repeaters or amplifiers
  distance (weakening of a signal)
mostly on analog

Intermodulation Signals from several circuits combine Move or shield the wires
Noise
Jitter Analog signals change (small changes Tune equipment
  in amp., freq., and phase)
Harmonic Distortion Amplifier changes phase (does not Tune equipment
  correctly amplify its input signal)
29
Deteksi Error
Pengirim mengkalkulasi Penerima kalkulasi ulang
Error Detection Value EDV dan bandingkan dengan
(EDV) dan mentransmisikan EDV yang diterima
bersama data
Mathematical Mathematical
calculations calculations
?
=
Data yg akan EDV
ditransmisikan – Jika sama  tidak ada
error
Makin besar ukuran, saat transmisi
makin baik deteksi error
(tetapi efisiensi lebih – Jika berbeda  Terjadi
rendah) error saat transmisi
30
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

31
Teknik Deteksi dan Koreksi Error
 Parity checks
 Longitudinal Redundancy Checking (LRC)
 Hamming Code
 Polynomial checking
 Checksum
 Cyclic Redundancy Check (CRC)

32
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

33
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

34
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

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

36
Contoh Penggunaan Parity Bit
Untuk dikirimkan: huruf V pd 7-bit ASCII: 0110101

EVEN parity sender receiver


01101010
Operator : XOR

parity

ODD parity sender receiver


01101011

Operator : ~XOR
parity
37
Parity Checking
 Satu yang paling tua dan paling sederhana
 Satu bit ditambahkan pada tiap karakter
 Even parity: penambahan 1 bit parity  jumlah bit 1 genap (even)
 Odd parity : penambahan 1 bit parity  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

38
KODE DENGAN PENDETEKSI
KESALAHAN
Desimal BCD Dengan paritas Dengan paritas
genap gasal
0 0000 0000 0 0000 1
1 0001 0001 1 0001 0
2 0010 0010 1 0010 0
3 0011 0011 0 0011 1
4 0100 0100 1 0100 0
5 0101 0101 0 0101 1
6 0110 0110 0 0110 1
7 0111 0111 1 0111 0
8 1000 1000 1 1000 0
9 1001 1001 0 1001 1
39
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.

40
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: 11010
 B computes overall parity: 1^1^0^1^0 = 1
 B reports incorrect transmission after observing unexpected odd result.

41
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: 10011
 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: 11011
 B computes overall parity: 1^1^0^1^1 = 0
 B reports correct transmission though actually incorrect.
42
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)

43
Parity Checking
Single Bit Parity: Two Dimensional Bit Parity:
Detect single bit errors Detect and correct single bit errors

Contoh :
Menggunakan paritas genap
0 0

44
Penggunaan LRC Utk Deteksi Error

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

Letter ASCII Parity bit


D 10001001
A 10000011
T 10101000
A 10000011
BCC 1 1 0 1 1 1 1 1

Arah pentransmisian bit


Cat. parity bit BCC juga
ditentukan dg parity
45
Penggunaan LRC Utk Deteksi Error
Contoh:
kirim pesan “DATA” dg ODD parity dan LRC
Yang diterima seperti pada gambar
Letter ASCII Parity bit
D 10001001
C 10000111 Paritas error
T 10101000
A 10000011 Bagaimana jika
ada 2 bit yang
BCC 1 1 0 1 1 1 1 1 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
46
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 ASCII Drive ASCII


1 10001001 1 10001001
2 10000011 Rusak !!! 3 10101000
3 10101000 4 10000011
4 10000011 BCC 11011111
BCC 11011111 2 10000011
Koreksi dilakukan dengan megoperasi drive yang lain dengan
BCC sehingga drive 2 (rusak) bisa dikembalikan data aslinya)

47
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 a
ntara 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

48
Hamming distance

49
KODE HAMMING (DETEKSI DAN KOREKSI
KESALAHAN)
Data: 0 1 1 0 (6) Posisi : 1 2 3 4 5 6 7
d3d2d1d0 p 1 p 2 d 3 p4 d2 d 1 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 Kode Hamming:
p2 : p2  0  1  0 = genap  p2 = 1 1100110
p4 : p4  1  1  0 = genap  p4 = 0
50
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 Yang benar: 1 1 0 0 1 1 0
p1 p2 d3 p4 d2 d1 d0 Data : 0110 (6)
1 1 1 0 1 1 0

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 ????

51
Hamming Code – Contoh FEC

Kalkulasi tiga parity bit


EVEN dari data

Jika satu bit (parity atau Only


Hanya
data) berubah  works
bekerja for
utk
perubahan pd bit data satu bit
one bit
dp dideteksi & dikoreksi error
errors

52
Use of a Hamming code to correct b
urst errors.

53
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

54
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  m=M(x)+R(x)) yang akan dikirim akan
terlebih dahulu dihitung CRC checksumnya (berukuran R bit dari
standart).
 M(x) = pesan yang dikirim. G(x) = generator polynomial. R=jumlah bit CRC
yang digunakan (mengikuti standart)
 Kalikan D dengan 2R
 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.
55
Modulo arithmetic

 Operasi penambahan dan pengurangan = XOR

56
Standart CRC Internasional
Representations: normal /
Name Polynomial
reversed / reverse of reciprocal

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

CRC-12 x12 + x11 + x3 + x2 + x + 1 (telecom systems) 0x80F / 0xF01 / 0xC07

CRC-15-CAN x15 + x14 + x10 + x8 + x7 + x4 + x3 + 1 0x4599 / 0x4CD1 / 0x62CC

57
Standart CRC Internasional
Representations: normal / reversed /
Name Polynomial
reverse of reciprocal
x16 + x15 + x2 + 1 (Bisync, Modbus, USB, ANSI X3.28, many others; also known as CRC-16 and
CRC-16-IBM CRC-16-ANSI) 0x8005 / 0xA001 / 0xC002
x16 + x12 + x5 + 1 (X.25, V.41, HDLC, XMODEM, Bluetooth, SD, many others; known as CRC-
CRC-16-CCITT CCITT) 0x1021 / 0x8408 / 0x8810[8]
CRC-16-T10-DIF x16 + x15 + x11 + x9 + x8 + x7 + x5 + x4 + x2 + x + 1 (SCSI DIF) 0x8BB7[20] / 0xEDD1 / 0xC5DB
CRC-16-DNP x16 + x13 + x12 + x11 + x10 + x8 + x6 + x5 + x2 + 1 (DNP, IEC 870, M-Bus) 0x3D65 / 0xA6BC / 0x9EB2
CRC-16-DECT x16 + x10 + x8 + x7 + x3 + 1 (cordless telephones) 0x0589 / 0x91A0 / 0x82C4
CRC-16-Fletcher Not a CRC; see Fletcher's checksum 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 x24 + x23 + x18 + x17 + x14 + x11 + x10 + x7 + x6 + x5 + x4 + x3 + x + 1 (OpenPGP) 0x864CFB / 0xDF3261 / 0xC3267D
0x2030B9C7 / 0x38E74301 /
CRC-30 x30 + x29 + x21 + x20 + x15 + x13 + x12 + x11 + x8 + x7 + x6 + x2 + x + 1 (CDMA) 0x30185CE3
CRC-32-Adler Not a CRC; see Adler-32 See Adler-32
x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1 (V.42, Ethernet, 0x04C11DB7 / 0xEDB88320 /
CRC-32-IEEE 802.3 SATA, MPEG-2, PNG,[22] POSIX cksum) 0x82608EDB
CRC-32C x32 + x28 + x27 + x26 + x25 + x23 + x22 + x20 + x19 + x18 + x14 + x13 + x11 + x10 + x9 + x8 + x6 0x1EDC6F41 / 0x82F63B78 /
(Castagnoli) + 1 (iSCSI & SCTP, G.hn payload, SSE4.2) 0x8F6E37A0
0x741B8CD7 / 0xEB31D82E /
CRC-32K (Koopman) x32 + x30 + x29 + x28 + x26 + x20 + x19 + x17 + x16 + x15 + x11 + x10 + x7 + x6 + x4 + x2 + x + 1 0xBA0DC66B[11]
0x814141AB / 0xD5828281 /
CRC-32Q x32 + x31 + x24 + x22 + x16 + x14 + x8 + x7 + x5 + x3 + x + 1 (aviation; AIXM) 0xC0A0A0D5
0x0004820009 / 0x9000412000 /
CRC-40-GSM x40 + x26 + x23 + x17 + x3 + 1 (GSM control channel) 0x8002410004
0x000000000000001B /
0xD800000000000000 /
CRC-64-ISO x64 + x4 + x3 + x + 1 (HDLC — ISO 3309, Swiss-Prot/TrEMBL; considered weak for hashing) 0x800000000000000D
x64 + x62 + x57 + x55 + x54 + x53 + x52 + x47 + x46 + x45 + x40 + x39 + x38 + x37 + x35 + x33 + 0x42F0E1EBA9EA3693 /
x32 + x31 + x29 + x27 + x24 + x23 + x22 + x21 + x19 + x17 + x13 + x12 + x10 + x9 + x7 + x4 + x + 0xC96C5795D7870F42 /
CRC-64-ECMA-182 1 (as described in ECMA-182 p. 51) 0xA17870F5D4F51B49
58
CRC
Contoh:
 Akan mengirim karakter “W”
 Dalam desimal 8710
 Biner : M(x) = x6 + x4 + x2 + x + 1 = 1010111
 Generator menggunakan standart CRC-8-
ATM (HEC) polynomial x8 + x2 + x + 1
 Maka G(x) = 9-bit string "100000111".
 R=8 (CRC 8bit)
 Kalikan M(x) dengan 2R
 M(x) * 28 = 101011100000000
Menentukan checksum:
1. Bagi M(x) dengan generator G(x)
2. Sisanya adalah checksum (10100010)
3. Tambahkan checksum ke data asal:
 10100010 ke M(x)
 Menjadi : 101011110100010

59
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 :
101001110100010
 Sisa yang dihasilkan : 00011100
 Pesan yang terima terjadi error.

60
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%)

61
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

62
Stop and Wait ARQ

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

Kirim ulang
paket

63
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

64
Stop and Wait Protocol
 Utilisasi kanal:

65
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

66
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

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

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

69
Sliding Window Protocol

70
Go-Back-N
 Allow up to N unACKed pkts 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 ACKed pkt

71
A Protocol Using Go Back N

Pipelining and error recovery. Effect on an error when


(a) Receiver’s window size is 1.
(b) Receiver’s window size is large.

72
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

73
Selective Repeat Example
PKT0
0123 456789
PKT1
0 1234 56789
PKT2
PKT3 01 2345 6789

ACK0 ACK1

0 1234 56789 ACK2

0 1234 56789 ACK3 PKT4


01234 5678 9
Time-Out
PKT1

ACK4

ACK1

01234 5678 9

Sender Receiver
74
Protokol Data Link
 Klasifikasi
 Asynchronous transmission
 Synchronous transmission
 Berbeda oleh
 Message delineation
 Frame length frame k-1 frame k frame k+1
 Frame field structure

75
Asynchronous Transmission
Kadang disebut start-stop transmission
Digunakan oleh
receiver utk Tiap karakter dikirim Kirim antara
memisahkan secara independen transmisi
karakter dan utk (deretan
synch. stop bits)

Digunakan pada point-to-point full duplex circuits


(digunakan oleh Telnet saat menghubungkan ke komputer Unix/Linux)

76
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

77
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,
78
tetapi adjustable
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

79
Byte-Oriented Protocol
8 8

STX Text (Data) 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
80
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

81
Bit-Oriented Protocol
8 8
Start End
Text (Data)
sequence 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’

82
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  0111110111
011111111  0111110111
 Bagaimana membedakannya pd penerima?

83
Destuffing (Penerima)
 Jika 11111 diikuti 0, buang 0

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

data CRC-32

Address Identifikasi tipe frame:


tujuan(8 atau - Informasi (utk transfer data user)
16 bit) - Supervisory (utk error dan flow control)

85
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

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

87
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

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

Pengulangan pola (jumlah byte pada Digunakan untuk


dari field message) pertukaran info kontrol
(1010101010) (mis., tipe protokol
network layer yang
digunakan)
89
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)

(s/d 1500 byte)


Menspesifikasikan protokol
network layer yang digunakan
(mis. IP, IPX)

90
Data Link Protocol Summary
Protocol Size Error Detection Retransmission Media Access

Asynchronous Xmission 1 Parity Continuous ARQ Full Duplex


         

File Transfer Protocols        

XMODEM 132 8-bit Checksum Stop-and-wait ARQ Controlled Access

XMODEM-CRC 132 8-bit CRC Stop-and-wait ARQ Controlled Access

XMODEM-1K 1028 8-bit CRC Stop-and-wait ARQ Controlled Access

ZMODEM * 32-bit CRC Continuous ARQ Controlled Access

KERMIT * 24-bit CRC Continuous ARQ Controlled Access


         

Synchronous Protocols      

SDLC * 16-bit CRC Continuous ARQ Controlled Access


HDLC * 16-bit CRC Continuous ARQ Controlled Access

Token Ring * 32-bit CRC Stop-and wait ARQ Controlled Access


Ethernet * 32-bit CRC Stop-and wait ARQ Contention
SLIP * None None Full Duplex
PPP * 16-bit CRC Continuous ARQ Full Duplex

* Varies depending on message length. 91


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
92
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 93
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

94
Ukuran paket Optimum
Trade-off antara ukuran paket dan throughput
Rentang yang
dapat diterima

(lebih mahal dalam hal kapasitas


(kemungkinan mengandung error circuit untuk retransmisi jika ada
kecil) error)

95
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
Ex:
Average Probability that K=7 bits/character
Info bits per number of non-
a block will M = 400 char/block
character info characters R= 4.8 Kb/s
require
per block retransmission C = 10 char/block
P = 1%
K (M – C) (1 – P) T = 25 ms
TRIB =
(M / R) + T 7(400-10)(1-0.01)
TRIB =
(400/600)+0.025)
Packet Time between blocks (in = 3.908 Kb/s
length in Data seconds) (propagation
xmission
characters rate in char time + turnaround time)
per second (a.k.a., reclocking time) 96
PEKERJAAN RUMAH

1. Baca Tanenbaum Chapter 3 dan 4.


2. Kerjakan soal Chapter 3 No: 2, 3, 5, 10, 15,
16, dan 17.
3. Tugas di email paling lambat …… jam 24:00
4. Format nama file : tugas-datalink-noreg-
nama.doc
5. Format subject email : tugas-datalink-
noreg-nama

97

Anda mungkin juga menyukai