Automatic Repeat ReQuest (ARQ)
Jika penerima mendeteksi error dlm suatu paket, bagaimana caranya pengirim tahu utk mengirim kembali paket tsb?
Sistem yg secara otomatis meminta retransmisi dari paket yg hilang atau paket yg mengalami error disebut sistem ARQ
Tiga skim yg umum – Stop & Wait – Go Back N – Selective Repeat
Untuk memberi tahu pengirim apakah data yang dikirim diterima dengan sukses, penerima dapat mengirimkan:– Acknowledgment (ACK) — Indikasi penerimaan dengan baik– Negative Acknowledgment (NAK) — keluhan terhadap error
Strategi ACK/NAK memerlukan time-out Untuk sistem yang menggunakan link yang handal,
gaya end-to-end lebih disukai
ACK/NAK (1)
1 2 3 4 5
End-to-end ACK/NAK
Data Data Data Data
1 2 3 4 5
Hop-by-hop
Data Data Data Data
ACK/ NAK
ACK/ NAK
ACK/ NAK
ACK/ NAK
ACK/NAK (1)
Protokol Automatic Repeat Request (ARQ) menjamin pengiriman data handal (atau memberi tahu pengirim ketidakmampuan pengiriman)
Frame Grup bit-bit yang ditransmisikan bersama, berisi :— Header menjelaskan bagaimana untuk memperlakukan sisa
frame lainnya.— Paket Informasi (Payload) data user (optional)— Error Detection Code biasanya CRC
Frame Informasi (I-Frame) berisi data Frame Control mengatur/meregulasi komunikasi
Protocol ARQ
Packet sequence
Error-free packet
sequence
Informationframes
Control frames
Transmitter Receiver
CRC
Informationpacket
Header
Station A Station B
Information Frame
Control frame
CRC Header
Protocol ARQ
Frame control dapat berupa : Dari penerima :
ACK mendapatkan data NAK tidak mendapat data Error Detection Code biasanya CRC
Dari pengirim : Frame Enquiry (ENQ) meminta laporan status dari
penerima
Tipe-Tipe Frame Control
Stop-and-Wait ARQ bekerja dengan : Sisi penerima mendapat frame-I dan
CRC valid (tidak ada error terdeteksi) balas ACK CRC invalid balas NAK
Sisi pengirim : Transmist Frame-I Segera hidupkan timer frame-I Lakukan salah satu dari berikut:
* Menerima ACK sebelum timeout kirim frame berikutnya* Menerima NAK sebelum timeout retransmit frame* Timeout retransmit frame
Stop and Wait ARQ
ACK dan Frame-I harus mempunyai nomor urut untuk mencegah frame ACK tidak match
Timer frame-I harus tidak terlalu cepat (terlalu lambat juga jelek!)
Tantangan Stop and Wait ARQ
(a) Frame 1 lost ACK dan Time-out mengatasi transmisi error
A
B
frame 0
frame1
ACK
frame1
ACK
timeTime-out
frame2
(b) ACK lost jika tanpa pernomoran frame, B tdk tahu frame 1 dikirm 2 kali
A
B
frame 0
frame1
ACK
frame1
ACK
timeTime-out
frame2
ACK
Tanpa penomoran frame:
Tantangan Stop and Wait ARQ
Tanpa penomoran ACK:
A
B
frame 0 frame
0ACKframe
1ACK
timetime-out
frame2
Tantangan Stop and Wait ARQ
Efisiensi Stop and Wait• Mis S = waktu total antara transmisi suatu paket
dan penerimaan ACK • DTP = waktu transmisi paket
Efisiensi Stop-and-Wait ARQ dapat ditingkatkan dgn : Checkpointing — jika timing out setelah mengirimkan
frame-I yang panjang, daripada melakukan retransmisi, kirim ENQ dulu (modifikasi minor)
Pipelining — Jika delay propagasi besar relatif terhadap waktu transmisi frame memerlukan protokol baru
Meningkatkan Efisiensi Stop and Wait
(a) Frame 1 lost
A
B
frame 0
frame1ACK
1
ENQACK
1
time
Time-out
frame1
(b) ACK for frame 1 lost
A
B
frame 0
frame1ACK
1
ENQACK
2
timeTime-out
frame2ACK
2
Stop and Wait ARQ: Frame ENQ
Go Back N ARQ (Sliding Window)
• Stop and Wait tdk efisien jika delay propagasi lebih besar drpd waktu transmisi paket – Hanya dp mengirim satu paket per round-trip time
• Go Back N memungkinkan transmisi paket-paket baru sebelum yg terdahulu di-acknowledged
• Go back N menngunakan mekanisme window dimana pengirim dp mengirim paket yg ada dlm rentang window dari paket-paket – Window dinaikan/digeser begitu acknowledgement dari
paket-paket sebelumnya diterima
Fitur-Fitur Go Back N• Ukuran Window = N
– Pengirim tdk dp mengirimkan paket dg nomor urutan paket/Sequence Number (SN) sampai dg SN = i+N sampai sudah menerima ACK utk paket dg SN = i
• Penerima beroperasi spt pd Stop and Wait
– Menerima paket-paket dlm urutan – Penerima tdk dp menerima paket tdk berurutan – Kirim ACK dg nomor paket yg di harapkan berikutnya
diterima/Request Number (RN), RN = i + 1 ACK utk semua paket sampai dg dan termasuk i
Pengirim Mengingat sejumlah frame-I sebelumnya Boleh mengirim frame-I s/d N frame (window=N) yg
belum di-ack Saat menerima NAK (atau timing out) untuk frame-I ke
i, restart transmisi frame-I kembali ke frame yg ke i
Penerima Buang deretan paket yang tidak berurut atau duplikasi Kirim ACK/NAK seperti Stop-and-Wait ARQ
Go-Back-N ARQ
A
B
fr0
timefr1
fr2
fr3
fr4
fr5
fr6
fr3
ACK1 error
Out-of-sequence frames
Go-Back-4: 4 frames are outstanding; so go back 4
fr5
fr6
fr4
fr7
fr8
fr9
ACK2
ACK3
ACK4
ACK5
ACK6
ACK7
ACK8
ACK9
Go-Back-N ARQ
A
fr0
timefr1
fr2
fr3
fr4
fr5
fr1
fr2
ACK1
error
Out-of-sequenceframes
Go-Back-7:
fr4
fr5
fr3
fr6
fr7
fr0
NAK1
ACK3
ACK4
ACK5
ACK6
ACK7
ACK2
Transmitter goes back to frame 1
NAK Error Recovery
• Misalkan kedua sisi adalah pengirim, bagaimana pengaruh dari Go Back-N ARQ?– Penerima dapat piggyback acknowledgments pada
header frame-I, yang memerlukan:– Menggunakan ACK timer untuk trigger sebuah ACK saat
tidak ada frame-I dijadwalkan untuk pengiriman
Bagaimana dengan Sistem Full Duplex?
Pada protokol Go-Back-N bi-directional kita dapat mengukur: Propagasi delay round trip sebagai 2Tprop
Maksimum waktu transmisi Frame-I Tfmax
Waktu proses sebuah frame Tproc
Karena keadaan terburuk adalah saat kedua sisi mengirimkan frame-frame terbesar yang mungkin, imterval timeout Tout harus paling sedikit:
Tout = 2Tprop + 2 Tproc + 2 Tfmax
Memilih Harga Timeout
Pada Go-Back-N ARQ : Pengirim harus mengingat N fame-I Satu kehilangan frame-I menyebabkan N frame
harus retransmisi
Perlu diingat sebagian besar frame-frame hilang karena kongesti, dan retransmisi akan meningkatkan trafik
Isue Efisiensi pada Go-Back-N ARQ
Selective Repeat ARQ memperbaiki Go-Back-N ARQ pada jaringan kongesti dengan mengurangi retransmisi
Pengirim: Menjaga timer untuk tiap frame dikirimkan dalam
window pengirimannya Jika menerima NAK atau timeout hanya retransmisi
frame yang terkorupsi atau hilang Tidak akan meningkatkan frame lebih dari window
pengiriman (Ws) dari frame terakhir yang di acknowledge
Selective Repeat ARQ
Tetapi sekarang penerima harus lebih smart! Penerima:
Mengingat nomor urut dari paket berikutnya Rnext yang diharapkan dilihat
Mengingat secara benar paket-paket yang datang dalam window penerima WR
Dalam hal paket terkorupsi atau hilang, kirim NAK dengan nomor urut tersebut
Jika paket retransmisi tiba, naikan Rnext sesuai nomor urut frame yang disimpan dalam window.
Selective Repeat ARQ