Jarkom2011-Data Link Layer

advertisement
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)
“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
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.


Acknowledged connectionless service.


Sesuai pada kondisi dengan error rate yang sangat
rendah, juga pada aplikasi real time seperti voice.
Sesuai pada kondisi channel yang kurang handal seperti
wireless.
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
datagram
sending
node

frame
frame
adapter
adapter
Sisi pengirim :


rcving
node
link layer protocol
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



Human errors:



mis, perubahan nilai suatu bit saat transmisi
Dikendalikan oleh network hardware dan software
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)



Burst error



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
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 = 104, 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
What causes it
How to prevent it
More important
mostly on analog
Line Outages
Faulty equipment, Storms,
Accidents (circuit fails)
White Noise
(Gaussian Noise)
Movement of electrons (thermal
energy)
Increase signal strength
(increase SNR)
Impulse Noise
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)
Intermodulation
Noise
Signals from several circuits
combine
Use repeaters or
amplifiers
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
(Spikes)
27
Deteksi Error
Pengirim mengkalkulasi
Error Detection Value (EDV)
dan mentransmisikan
bersama data
Mathematical
calculations
Penerima kalkulasi ulang
EDV dan bandingkan dengan
EDV yang diterima
Mathematical
calculations
?
=
Data yg akan
ditransmisikan
EDV
Makin besar ukuran,
makin baik deteksi error
(tetapi efisiensi lebih
rendah)
– Jika sama  tidak ada
error
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
sender
receiver
01101010
Operator : XOR
parity
ODD parity
Operator : ~XOR
sender
receiver
01101011
parity
35
Parity Checking


Satu yang paling tua dan paling sederhana
Satu bit ditambahkan pada tiap karakter



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


Even parity: penambahan 1 bit parity  jumlah bit 1 genap (even)
Odd parity : penambahan 1 bit parity  jumlah bit 1 ganjil (odd)
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
BCD
Dengan paritas
genap
Dengan paritas
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
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: 11010
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: 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.
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:
Two Dimensional Bit Parity:
Detect single bit errors
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
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
43
Penggunaan LRC Utk Deteksi Error
Contoh:
kirim pesan “DATA” dg ODD parity dan LRC
Yang diterima seperti pada gambar
Letter
D
C
T
A
ASCII
Parity bit
10001001
Paritas error
10000111
10101000
Bagaimana jika
10000011
BCC 1 1 0 1 1 1 1 1
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
10001001
10000011
10101000
10000011
11011111
Drive
1
Rusak !!!
3
4
BCC
2
ASCII
10001001
10101000
10000011
11011111
10000011
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)
d 3d 2d 1d 0
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:
1100110
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
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
????
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
Only
Hanya
bekerja for
utk
works
satu bit
bit
one
error
errors
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  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.
53
Modulo arithmetic

Operasi penambahan dan pengurangan = XOR
54
Standart CRC Internasional
Name
CRC-1
CRC-4-ITU
CRC-5-EPC
CRC-5-ITU
CRC-5-USB
CRC-6-ITU
CRC-7
CRC-8-CCITT
CRC-8Dallas/Maxim
CRC-8
CRC-8-SAE J1850
CRC-8-WCDMA
CRC-10
CRC-11
Polynomial
x + 1 (most hardware; also known as parity bit)
x4 + x + 1 (ITU-T G.704, p. 12)
x5 + x3 + 1 (Gen 2 RFID)
x5 + x4 + x2 + 1 (ITU-T G.704, p. 9)
x5 + x2 + 1 (USB token packets)
x6 + x + 1 (ITU-T G.704, p. 3)
x7 + x3 + 1 (telecom systems, ITU-T G.707, ITU-T
G.832, MMC, SD)
Representations: normal /
reversed / reverse of reciprocal
0x1 / 0x1 / 0x1
0x3 / 0xC / 0x9
0x09 / 0x12 / 0x14
0x15 / 0x15 / 0x1A
0x05 / 0x14 / 0x12
0x03 / 0x30 / 0x21
0x09 / 0x48 / 0x44
x8 + x2 + x + 1 (ATM HEC), ISDN Header Error
Control and Cell Delineation ITU-T I.432.1 (02/99) 0x07 / 0xE0 / 0x83
x8 + x5 + x4 + 1 (1-Wire bus)
x8 + x7 + x 6 + x4 + x2 + 1
x8 + x4 + x 3 + x2 + 1
x8 + x7 + x 4 + x3 + x + 1
x10 + x9 + x5 + x4 + x + 1 (ATM; ITU-T I.610)
x11 + x9 + x8 + x7 + x2 + 1 (FlexRay)
0x31 / 0x8C / 0x98
0xD5 / 0xAB / 0xEA
0x1D / 0xB8 / 0x8E
0x9B / 0xD9 / 0xCD
0x233 / 0x331 / 0x319
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
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
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 CRCCCITT)
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
Representations: normal / reversed /
reverse of reciprocal
0x8005 / 0xA001 / 0xC002
0x1021 / 0x8408 / 0x8810[8]
0x8BB7[20] / 0xEDD1 / 0xC5DB
0x3D65 / 0xA6BC / 0x9EB2
0x0589 / 0x91A0 / 0x82C4
Used in Adler-32 A & B CRCs
CRC-24
CRC-24-Radix-64
x24 + x22 + x20 + x19 + x18 + x16 + x14 + x13 + x11 + x10 + x8 + x7 + x6 + x3 + x + 1 (FlexRay) 0x5D6DCB / 0xD3B6BA / 0xAEB6E5
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 + 0x1EDC6F41 / 0x82F63B78 /
(Castagnoli)
x6 + 1 (iSCSI & SCTP, G.hn payload, SSE4.2)
0x8F6E37A0
x32 + x30 + x29 + x28 + x26 + x20 + x19 + x17 + x16 + x15 + x11 + x10 + x7 + x6 + x4 + x2 + x + 0x741B8CD7 / 0xEB31D82E /
CRC-32K (Koopman) 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
56
CRC
Contoh:

Akan mengirim karakter “W”



Generator menggunakan standart CRC-8ATM (HEC) polynomial x8 + x2 + x + 1



Dalam desimal 8710
Biner : M(x) = x6 + x4 + x2 + x + 1 = 1010111
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
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 :
101001110100010
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
Receiver
Kirim
acknowledgement
Kirim paket
berikutnya
Kirim negative
acknowledgement
Kirim ulang
paket
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 (ttrans) = L / bit rate
transmission delay/latency/propagation (tprop):
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/106 =
8ms
Tprop (latency) = 36000km/3X108=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 diacknowledged
65
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)
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 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

69
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.
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
PKT0
0123 456789
PKT1
PKT2
PKT3
0 1234 56789
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
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
Kadang disebut start-stop transmission
Digunakan oleh
receiver utk
memisahkan
karakter dan utk
synch.
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




Karakteristik dari file transfer protocols



Point-to-point asynchronous circuits
Biasanya melalui saluran telepon via modem
Komputer ke komputer untuk transfer file data
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



Mencakup informasi addressing


Terutama berguna dalam multipoint circuits
Mencakup satu serie dari karakter-karakter
synchronization (SYN)


disebut frame atau paket
Biasanya sekitar seribu karakter (bytes)
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
8
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
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)
End
sequence
Digunakan suatu flag: deretan bit tetap (pola tetap) untuk indikasi awal dan akhir
suatu paket


8
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

Bagaimana membedakannya pd penerima?
0111110111  0111110111
011111111  0111110111
81
Destuffing (Penerima)

Jika 11111 diikuti 0, buang 0
82
SDLC – Synchronous Data Link Control
• Bit-oriented protocol dikembangkan IBM
• Menggunakan controlled media access protocol
Awal
(01111110)
Akhir
(01111110)
data
Address
tujuan(8 atau
16 bit)
CRC-32
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)


LAP-D (Link Accedes Protocol – Balanced)


Digunakan pada teknologi X.25
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




Menggunakan contention based media access control
Byte-count data link layer protocol
Tidak ada masalah transparency


formal standard: IEEE 802.3ac
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)
Pengulangan pola
dari
(1010101010)
(jumlah byte pada
field message)
Digunakan untuk no urut/sequence
number, ACK/NAK, dll, (1 atau 2 byte)
00
01
10
11
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)
(s/d 1500 byte)
Menspesifikasikan protokol
network layer yang digunakan
(mis. IP, IPX)
88
Data Link Protocol Summary
Protocol
Size
Error Detection
Retransmission
Media Access
Asynchronous Xmission
1
Parity
Continuous ARQ
Full Duplex
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
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
File Transfer Protocols
Synchronous Protocols
* Varies depending on message length.
89
Efisiensi Transmisi

Tujuan suatu jaringan:


Fator yg mempengaruhi efisiensi jaringan:



=
Memindahkan sebanyak mungkin bit dengan error minimum
 efisiensi lebih tinggi biaya lebih rendah
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:



Kalkulasi kompleks; tergantung pada




Bit-bit overhead (seperti pada efisiensi transmisi)
Keperluan retransmisi paket mengandung error
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
Average number
Info bits per
of non-info
character
characters per
block
TRIB =
Ex:
K=7 bits/character
M = 400 char/block
R= 4.8 Kb/s
C = 10 char/block
P = 1%
T = 25 ms
Probability that
a block will
require
retransmission
K (M – C) (1 – P)
(M / R) + T
7(400-10)(1-0.01)
TRIB =
Packet
length in
characters
Time between blocks (in
Data
seconds) (propagation
xmission
rate in char time + turnaround time)
per second (a.k.a., reclocking time)
(400/600)+0.025)
= 3.908 Kb/s
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-noregnama.doc
Format subject email : tugas-datalinknoreg-nama
95
Download