Makalah Komunikasi Data
SELECTIVE REPEAT
Oleh : 1. 2. 3. 4.
Gigih Adi Cita Yuni Almaadin Robby Hartanto Hartedi Gobel
(2205.100.138) (2206.100.035) (2206.100.174) (2206.100.701)
Jurusan Teknik Elektro Fakultas Teknologi Industri Institut Teknologi Sepuluh Nopember Surabaya 2008
Bab 1 Pendahuluan
1.1 Latar Belakang Dalam pengiriman paket data melalui suatu medium tertentu, akan selalu terjadi adanya perbedaan antara sinyal yang dikirim dengan sinyal yang diterima. Perbedaan tersebut dapat mengakibatkan adanya error atau kesalahan pada paket data yang dikirim tersebut sehingga data tersebut tidak dapat dibaca dengan baik oleh penerima. Untuk menghindari terjadinya error atau kesalahan pada paket data yang dikirim maka diperlukan adanya deteksi kesalahan (checking error), perbaikan kesalahan (correction error), dan pengendalian kesalahan (control error). Checking error telah kita pelajari pada pertemuan sebelum UTS. Di antara beberapa metode checking error adalah bit parity, BCC (Block Check Character), dan CRC (Cyclic Redundancy Check). Pada error control terdapat tiga metode yang sering dipakai dalam komunikasi data, yaitu stop and wait request, go back N request, dan selective request. Error control meliputi mekanisme-mekanisme sebagai berikut : ACK/NAK, timeout, dan sequence number. Pada error control terjadi prosesproses sebagai berikut : error detection, acknowledgment, retransmission after timeout, dan negative acknowledgment.
1.2 Pembatasan Masalah Dalam penulisan makalah ini kami membatasi masalah yang akan kami bahas agar tidak keluar dari pokok masalah yang kita bahas karena masalah dalam komunikasi data sangat luas. Permasalahan yang akan kami angkat dalam makalah ini adalah mengenai continuous request, selective repeat, sequence number, dan protocol specification.
1.3 Tujuan Tujuan dari penulisan makalah ini adalah untuk memenuhi tugas kuliah Komunikasi Data dan juga untuk memberikan gambaran kepada para pembaca mengenai proses pengendalian kesalahan dalam komunikasi data.
Bab 2 Pembahasan
Tujuan dilakukan pengontrolan terhadap error adalah untuk menyampaikan frameframe tanpa error dalam urutan yang tepat ke lapisan jaringan. Teknik yang umum digunakan untuk error control berbasis pada dua fungsi, yaitu: •
Error detection, biasanya menggunakan teknik CRC (Cyclic Redundancy Check)
•
Automatic Repeat Request (ARQ), ketika error terdeteksi pengirim meminta mengirim ulang frame yang terjadi kesalahan.
Error control dibagi menjadi tiga yaitu : 1. Manual error control Misalnya jika kita melakukan kesalahan dalam pengetikan kita koreksi dengan melakukan penghapusan terhadap karakter yang salah misalkan dengan tombol delete atau backspace. 2. Echo checking Prosedur yang sama digunakan ketika suatu terminal terhubung dengan remote computer katakanlah dengan menggunakan analog PSTN dan sebuah modem. Di samping tiap karakter yang dimasukkan ditampilkan secara langsung pada terminal display mula-mula ia ditransmisikan ke remote computer. Remote computer tersebut kemudian membaca dan menyimpan karakter dan mentransmisikan ulang ke terminal yang menampilkannya. Jika berbeda dengan apa yang telah dimasukkan user dapat memulai lagi transmisi untuk penghapusan karakter yang salah. 3. Automatic repeat request Terdiri dari idle request dan continuous request. Kita akan membahas lebih dalam continuous request terutama selective repeat.
Continuous Request Dengan skema error control continuous request, penggunaan jaringan lebih mahal karena kebutuhan buffer untuk penyimpanan data meningkat. Dan dapat kita lihat bahwa
jaringan duplex dibutuhkan untuk implementasi continuous request. Contoh seperti pada gambar di bawah ini. N
N+1
N+2
N+3
N+4
N+5 V(S) = Send sequence variable
N+4
N+1
N+1
N+2
N+3
N+4
N
N
N+1
N+2
N+3
)
N+1
+4)
I(N+2)
I(N+4) I(N
N
3)
I(N+1)
I(N+3) + I(N
2)
+1)
)
I(N)
+ I(N
I(N
I(N
Secondary, S
I(N+2)
I(N+3)
N+2
A CK (N+ 3)
I(N+1)
A CK (N+ 2)
I(N)
ACK (N
Primary, P
N+3
A CK (N+ 1)
N
Contents of link retransmission list
N+2
Time
I(N+4)
N+3
N+4 Contents of link receive list
N
N+1
N+2
N+3
N+4
V(R) = Receive sequence variable
Error Control Tujuan dilakukan pengontrolan terhadap error adalah untuk menyampaikan frameframe tanpa error dalam urutan yang tepat ke lapisan jaringan. Teknik yang umum digunakan untuk error control berbasis pada dua fungsi, yaitu: •
Error detection, biasanya menggunakan teknik CRC (Cyclic Redundancy Check)
•
Automatic Repeat Request (ARQ), ketika error terdeteksi pengirim meminta mengirim ulang frame yang terjadi kesalahan.
Error control dibagi menjadi tiga yaitu : 1. Manual error control Misalnya jika kita melakukan kesalahan dalam pengetikan kita koreksi dengan melakukan penghapusan terhadap karakter yang salah misalkan dengan tombol delete atau backspace. 2. Echo checking Prosedur yang sama digunakan ketika suatu terminal terhubung dengan remote computer katakanlah dengan menggunakan analog PSTN dan sebuah modem. Di samping tiap karakter yang dimasukkan ditampilkan secara langsung pada
terminal display mula-mula ia ditransmisikan ke remote computer. Remote computer tersebut kemudian membaca dan menyimpan karakter dan mentransmisikan ulang ke terminal yang menampilkannya. Jika berbeda dengan apa yang telah dimasukkan user dapat memulai lagi transmisi untuk penghapusan karakter yang salah. 3. Automatic repeat request Terdiri dari idle request dan continuous request.
Mekanisme Error control meliputi •
ACK/NAK : Provide sender some feedback about other end
•
Time-out: for the case when entire packet or ACK is lost
•
Sequence numbers: to distinguish retransmissions from originals
Untuk menghindari terjadinya error atau memperbaiki jika terjadi error yang dilakukan adalah melakukan pengiriman message secara berulang, proses ini dilakukan secara otomatis dan dikenal sebagai Automatic Repeat Request (ARQ). Pada proses ARQ dilakukan beberapa langkah diantaranya : •
Error detection
•
Acknowledgment
•
Retransmission after timeout
•
Negative Acknowledgment
Macam-macam error control adalah :
1. Stop and Wait ARQ Mekanisme ini menggunakan skema sederhana stop and wait acknowledgment dan dapat dijelaskan seperti tampak pada gambar 3.13 Stasiun pengirim mengirimkan sebuah frame dan kemudian harus menunggu balasan dari penerima. Tidak ada frame data yang dapat dikirimkan sampai stasiun penerima menjawab kedatangan pada stasiun pengirim. Penerima mengirim sebuah positive acknowledgment (ACK) jika frame benar dan sebuah negative acknoledgment jika sebaliknya.
2. Go Back N ARQ Gambar 3.14 menampilkan aliran frame untuk mekanisme go-back-and ARQ pada sebuah jalur full-duplex. Ketika frame 2,3, dan 4 ditransmisikan, dari stasiun A ke stasiun B, sebuah ACK dari penerimaan sebelumnya frame 1 mengalir dari B ke A. Beberapa waktu kemudian, frame 2 diterima dalam kondisi error. Frame-frame 2,3,4 dan 5 dikirimkan, stasiun B mengirimkan sebuah NAK2 ke stasiun A yang diterima setelah
frame 5 dikirimkan tetapi sebelum stasiun A siap mengirim frame 6. Sekarang harus dilakukan pengiriman ulang frame-frame 2,3,4, dan 5 walaupun hanya pada frame 2 terjadinya kesalahan. Sekali lagi, catat bahwa stasiun A harus sebuah copy dari setiap unacknowledgment frame.
3. Selective Repeat Selective Repeat atau dikenal juga sebagai Selective-reject. Dengan selectivereject ARQ, frame-frame yang akan dikirimkan hanya frame-frame yang mendapat balasan negatif, dalam hal ini disebut SREJ atau frame-frame yang waktunya sudah habis. Cara selective-reject ARQ dalam memperbaiki kesalahan dengan cara = mulanya bagian transmiter mengirim stream data kontinyu dari frame yang kontinyu, pada sisi penerima data tersebut disimpan dan dilakukan proses CRC. Tapi proses CRC ini berlangsung pada stream data yang kontinyu dari frame yang diterima. Ketika dijumpai frame yang error, penerima mengirim informasi pada sisi pengirim melalui ‘return channel’. Bagian pengirim kemudian mengambil frame tersebut dari tempat penyimpanan data, lalu dimasukkan dalam antrian transmisi. Ada beberapa poin penting bagi pembaca frame, yang pertama adalah harus ada cara untuk mengidentifikasi frame. Yang kedua adalah harus ada cara yang baik untuk mengetahui frame mendapat balasan positif atau balasan negatif. Kedua poin penting tersebut bisa di atasi dengan menggunakan angka sekuensial yang dikirim dan yang diterima. Angka sekuensial yang dikirim ada pada pengirim, begitu juga dengan angka sekuensial yang diterima berada pada penerima. Angak sekuensial yang diterima yang dikirim kembali pada sisi pengirim adalah angka sekuensial yang dikirim oleh sisi pengirim dan mendapat balasan positif dari sisi penerima. Ketika sisi penerima mendeteksi kesalahan pada frame, maka sisi penerima akan mengirimkan angka sekuensial yang dikirim bersama frame yang dianggap error. Tentu daja pada akhirnya sisi penerima harus menata kembali frame sesuai urutannya seperti pada sisi pengirim sebelum data diteruskan ke pengguna akhir. Selective-reject ARQ lebih efisien terhadap go-back-N karena mengurangi jumlah retransmisi. Namun selective-reject memerlukan kapasitas penyimpanan data yang lebih besar baik disisi pengirim dan penerima untuk menyimpan frame sampai frame yang rusak diretransmisi. Selain itu disisi penerima juga harus terdapat software yang dapat mengirim frame diluar urutan agar data bisa sampai secara urut pada pengguna akhir. Selective repeat dapat diimplementasikan dengan dua cara : 1. S menyatakan bahwa frame telah diterima dengan benar dan P menentukan dari sequence ACK yang diterioma bahwa sebuah frame telah hilang (implicit retransmisi) 2. S mengembalikan pernyataan negative khusus dikarenakan ada frame hilang dari sequence (explicit request)
Dari kedua event tersebut kejadian frame diterima di luar sequence, S menahan frame ini di saluran penerima sampai sequence frame masuk berikutnya diterima. Pada kasus implicit retransmission dengan asumsi semua frame ACK diterima
1) AC K (N+
4) AC K (N+
3) AC K (N+
2) AC K (N+
AC K
+5) I( N
+1) I( N
+4) I( N
+3) I( N
+2) I( N
+1) I( N
) I( N
(N)
dengan benar dapat dijelaskan sebagai berikut (Gb A) :
Gb. A. Implicit Retransmission corrupted I-frame
•
Diasumsikan I-frame N+1 rusak (hilang)
•
S mengembalikan frame ACK untuk tiap-tiap I-frame yang telah diterima dengan benar.
•
S mengembalikan frame ACK untuk I-frame N, N+2, N+3, …
•
Pada penerimaan ACK untuk I-frame N+2, P menngetahui bahwa frame N+1 tidak diterima
•
Untuk dapat mengetahui bahwa lebih dari 1 I-frame yang rusak, P memasukkan retransmission state pada frame yang hilang (tidak diterima).
•
Dalam kondisi ini, transmisi frame baru ditunda sampai frame yang tidak diterima ditransmisikan ulang.
•
P menghilangkan I-frame N+2 pada daftar retransmisi dan mengirimkan ulang Iframe N+1 sebelum mentransmisikan frame N+5
•
Dalam penerimaan I-frame N+1, isi dari frame antrian pada link receive list dikirimkan oleh S ke LS_user pada urutan yang benar.
Sedangkan pada implicit retransmission dengan asumsi bahwa semua I-frame diterima dengan benar kecuali ACK frame N dapat dijelaskan sebagai berikut. P enters retransmission state N
N+1
N+2
N+3
P leaves retransmission state
N+4
N+4 V(S) = Send sequence variable
N+3 N+2
N
N+1
N+1
N+1
N+3
N
N
N
N
N+2
N+3
N
ACK
I(N+3)
I(N)
N+2
N+2
N+3
N+3
(N) ACK
ACK
I(N+2)
N+1
N+1
(N + 3)
ACK
ACK
N
)
I(N+1)
+ 3)
I(N)
I(N)
(N + 2)
I( N
+ 2)
+ 1)
)
Secondary, S
(N + 1)
I(N+3)
I( N
I(N+2) I( N
I( N
I(N+1) I( N
I(N)
Primary, P
(N)
N
Contents of link retransmission list
N+2
Contents of link receive list
N+4
N+4
Time
N+4
V(R) = Receive sequence variable
Gb. B. Implicit Retransmission corrupted ACK-frame
•
Pada penerimaan ACK frame N+1 P mengetahui bahwa I-frame N masih menunggu pernyataan telah diterima dengan benar. Jadi P mentransmisikan Iframe N.
•
Saat penerimaan I-frame N yang diretransmisi S menentukan dari sequence variable bahwa frame tersebut telah diterima dengan benar dan oleh karena itu merupakan sebuah duplikat.
•
S membuang frame tapi mengembalikan ACK frame untuk menggantikannya untuk memastikan P menghilangkan frame dari daftar retransmisi.
Operasi di atas bergantung pada penerimaan frame ACK yang berhubungan dengan frame-frame berikutnya untuk menginisiasi retransmisi frame sebelumnya yang rusak. Usaha yang lain adalah dengan menggunakan explicit negative acknowledgment frame untuk meminta trasnmisi ulang frame yang error. Negative acknowledgment tersebut dikenal dengan selective reject. Pada explicit request dengan asumsi bahwa acknowledgments hilang dalam perjalanan dapat dijelaskan sebagai berikut (lihat Gb. C di bawah ini) : P enters retransmission state N
N+1
N+2
N+3
N+4
P leaves retransmission state
N+5
N+5
N+6
V(S) = Send sequence variable
N+5 N+1 N+4
N+2
N+3
N+3
N+4
N+1
N+1
N+2
N+2
N+3
N+3
N
N
N+1
N+1
N+2
N+2
I(N+1)
I(N+2)
I(N+3)
I(N+4)
(N)
5)
A CK
+ I(N
N+2
1)
I(N+3)
I(N+5)
+ I(N
N
4)
3)
2)
1)
I(N+2)
I(N+1)
+ I(N
+ I(N
+ I(N
+ I(N
) I(N
I(N)
Secondary, S
I(N+4)
N+5
I(N+1)
A CK ( N+ 1)
I(N)
Primary, P
N+1
NA K ( N+ 1)
N
N+4
Time
I(N+5)
N+2
N+2
N+2
N+3
N+3
N+3
N+4
N+4
N+5 Contents of link receive list
N+1
V(R) = Receive sequence variable N
N+1
N+1
N+1
S enters retransmission state
N+1
N+1
N+5
N+6
S leaves retransmission state
Gb. C. Explicit Request Effect Correct Operation •
Mula-mula sebuah ACK frame menyatakan telah diterima semua frame di retransmission list termasuk I-frame dengan sequence number yang dimiliki ACK
•
Asumsikan I-frame N+1 rusak.
•
S mengembalikan sebuah ACK frame untuk I-frame N
•
Ketika S menerima I-frame N+2 S mengetahui bahwa I-frame N+1 hilang jadi S mengirim NAK frame yang mengandung identifier untuk I-frame N+1 yang hilang tersebut
•
Dalam penerimaan NAK N+1, P menterjemahkan NAK N+1 dan saat itu S masih
menunggu I-frame N+1 sehingga P mentransmisikan ulang I-frame N+1. •
Ketika S mengirim NAK frame S memasukkan retransmission state
•
Ketika dalam retransmission state pengembalian ACK frame ditunda
•
Saat penerimaan I-frame N+1 S meninggalkan retransmission state dan melanjutkan pengembalian ACK frame
•
ACK N+4 mengakui bahwa semua frame sampai I-frame N+4 telah diterima dengan benar termasuk frame N+4
• Timer digunakan dengan masing-masing NAK frame untuk memastikan bahwa suatu frame rusak akan ditransmisikan ulang
Flow control Flow control adalah suatu teknik untuk menjamin bahwa sebuah stasiun pengirim tidak membanjiri stasiun penerima dengan data. Stasiun penerima secara khas akan menyediakan suatu buffer data dengan panjang tertentu. Ketika data diterima, dia harus mengerjakan beberapa poses sebelum dia dapat membersihkan buffer dan mempersiapkan penerimaan data berikutnya. Bentuk sederhana dari kontrol aliran dikenal sebagai stop and wait, dia bekerja sebagai berikut. Penerima mengindikasikan bahwa dia siap untuk menerima data dengan mengirim sebual poll atau menjawab dengan select. Pengirim kemudian mengirimkan data. Flow control ini diatur/dikelola oleh Data Link Control (DLC) atau biasa disebut sebagai Line Protocol sehingga pengiriman maupun penerimaan ribuan message dapat terjadi dalam kurun waktu sesingkat mungkin. DLC harus memindahkan data dalam lalu lintas yang efisien. Jalur komunikasi harus digunakan sedatar mungkin, sehingga tidak ada stasiun yang berada dalam kadaan idle sementara stasiun yang lain saturasi dengan lalu lintas yang berkelebihan. Jadi flow control merupakan bagian yang sangat kritis dari suatu jaringan. Berikut ini ditampilkan time diagram Flow control saat komunikasi terjadi pada kondisi tanpa error dan ada error. Mekanisme Flow control yang sudah umum digunakan adalah Stop and Wait dan Sliding window, berikut ini akan dijelaskan kedua mekanisme tersebut.
Stop and Wait Protokol ini memiliki karakteristik dimana sebuah pengirim mengirimkan sebuah frame dan kemudian menunggu acknowledgment sebelum memprosesnya lebih lanjut. Mekanisme stop and wait dapat dijelaskan dengan menggunakan gambar 3.6, dimana DLC mengizinkan sebuah message untuk ditransmisikan (event 1), pengujian terhadap terjadinya error dilakukan dengan teknik seperti VCR (Vertical Redundancy Check) atau LRC (Longitudinal Redundancy Check) terjadi pada even 2 dan pada saat yang tepat sebuah ACK atau NAK dikirimkan kembali untuk ke stasiun pengirim (event 3). Tidak ada messages lain yang dapat ditransmisikan selama stasiun penerima mengirimkan kembali sebuah jawaban. Jadi istilah stop and wait diperoleh dari proses pengiriman message oleh stasiun pengirim, menghentikan transmisi berikutnya, dan menunggu jawaban. Pendekatan stop and wait adalah sesuai untuk susunan transmisi half duplex, karena dia menyediakan untuk transmisi data dalam dua arah, tetapi hanya dalam satu arah setiap saat. Kekurangan yang terbesar adalah disaat jalur tidak jalan sebagai akibat dari stasiun yang dalam keadaan menunggu, sehingga kebanyakan DLC stop and wait sekarang menyediakan lebih dari satu terminal yang on line. Terminal-terminal tetap beroperasi dalam susunan yang sederhana. Stasiun pertama atau host sebagai penaggung jawab untuk peletakkan message diantara terminal-terminal (biasanya melalui sebuah terminal pengontrol yang berada di depannya) dan akses pengontrolan untuk hubungan komunikasi. Urutan sederhana ditunjukkan pada gambar 3.6 dan menjadi masalah yang serius ketika ACK atau NAK hilang dalam jaringan atau dalam jalur. Jika ACK pada event 3
hilang, setelah habis batas waktunya stasiun master mengirim ulang message yang sama untuk kedua kalinya. Transmisi yang berkelebihan mungkin terjadi dan menciptakan sebuah duplikasi record pada tempat kedua dari file data pengguna. Akibatnya, DLC harus mengadakan suatu cara untuk mengidentifikasi dan mengurutkan message yang dikirimkan dengan berdasarkan pada ACK atau NAK sehingga harus dimiliki suatu metoda untuk mengecek duplikat message.
Sliding Window Control Sifat inefisiensi dari stop and wait DLC telah menghasilkan teknik pengembangan dalam meperlengkapi overlapping antara message data dan message control yang sesuai. Data dan sinyal kontrol mengalir dari pengirim ke penerima secara kontinyu, dan beberapa message yang menonjol (pada jalur atau dalam buffer penerima) pada suatu waktu. DLC ini sering disebut sliding windows karena metode yang digunakan sinkron dengan pengiriman nomer urutan pada header dengan pengenalan yang sesuai. Stasiun transmisi mengurus sebuah jendela pengiriman yang melukiskan jumlah dari message(dan nomor urutannya) yang diijinkan untuk dikirim. Stasiun penerima mengurus sebuah jendela penerimaan yang melakukan fungsi yang saling mengimbangi. Dua tempat menggunakan keadaan jendela bagaimana banyak message dapat/ menonjol dalam suatu jalur atau pada penerima sebelum pengirim menghentikan pengiriman dan menunggu jawaban.
Deteksi Dan Koreksi Error Sebagai akibat proses-proses fisika yang menyebabkannya terjadi, error pada beberapa media (misalnya, radio) cenderung timbul secara meletup (burst) bukannya satu demi satu. Error yang meletup seperti itu memiliki baik keuntungan maupun kerugian pada error bit tunggal yang terisolasi. Sisi keuntungannya, data komputer selalu dikirim dalam bentuk blok-blok bit. Anggap ukuran blok sama dengan 1000 bit, dan laju error adalah 0,001 per bit. Bila error-errornya independen, maka sebagian besar blok akan mengandung error. Bila error terjadi dengan letupan 100, maka hanya satu atau dua blok dalam 100 blok yang akan terpengaruh, secara rata-ratanya. Kerugian error letupan adalah bahwa error seperti itu lebih sulit untuk dideteksi dan dikoreksi dibanding dengan error yang terisolasi.
Kode-kode Pengkoreksian Error Para perancang jaringan telah membuat dua strategi dasar yang berkenaan dengan error. Cara pertama adalah dengan melibatkan informasi redundan secukupnya bersamasama dengan setiap blok data yang dikirimkan untuk memungkinkan penerima menarik kesimpulan tentang apa karakter yang ditransmisikan yang seharusnya ada. Cara lainnya adalah dengan hanya melibatkan redundansi secukupnya untuk menarik kesimpulan bahwa suatu error telah terjadi, dan membiarkannya untuk meminta pengiriman ulang. Strategi pertama menggunakan kode-kode pengkoreksian error (error-correcting codes), sedangkan strategi kedua menggunakan kode-kode pendeteksian error (error-detecting codes). Untuk bisa mengerti tentang penanganan error, kita perlu melihat dari dekat tentang apa yang disebut error itu. Biasanya, sebuah frame terdiri dari m bit data (yaitu pesan) dan r redundan, atau check bits. Ambil panjang total sebesar n (yaitu, n=m+r). Sebuah satuan n-bit yang berisi data dan checkbit sering kali dikaitkan sebagai codeword n-bit. Ditentukan dua buah codeword: 10001001 dan 10110001. Disini kita dapat menentukan berapa banyak bit yang berkaitan berbeda. Dalam hal ini, terdapat 3 bit yang berlainan. Untuk menentukannya cukup melakukan operasi EXCLUSIVE OR pada kedua codeword, dan menghitung jumlah bit 1 pada hasil operasi. Jumlah posisi bit dimana dua codeword berbeda disebut jarak Hamming (Hamming, 1950). Hal yang perlu diperhatikan adalah bahwa bila dua codeword terpisah dengan jarak Hamming d, maka
akan diperlukan error bit tunggal d untuk mengkonversi dari yang satu menjadi yang lainnya. Pada sebagian besar aplikasi transmisi data, seluruh 2m pesan data merupakan data yang legal. Tetapi sehubungan dengan cara penghitungan check bit, tidak semua 2n digunakan. Bila ditentukan algoritma untuk menghitung check bit, maka akan dimungkinkan untuk membuat daftar lengkap codeword yang legal. Dari daftar ini dapat dicari dua codeword yang jarak Hamming-nya minimum. Jarak ini merupakan jarak Hamming bagi kode yang lengkap. Sifat-sifat pendeteksian error dan perbaikan error suatu kode tergantung pada jarak Hamming-nya. Untuk mendeteksi d error, anda membutuhkan kode dengan jarak d+1 karena dengan kode seperti itu tidak mungkin bahwa error bit tunggal d dapat mengubah sebuah codeword yang valid menjadi codeword valid lainnya. Ketika penerima melihat codeword yang tidak valid, maka penerima dapat berkata bahwa telah terjadi error pada transmisi. Demikian juga, untuk memperbaiki error d, anda memerlukan kode yang berjarak 2d+1 karena hal itu menyatakan codeword legal dapat terpisah bahkan dengan perubahan d, codeword orisinil akan lebih dekat dibanding codeword lainnya, maka perbaikan error dapat ditentukan secara unik. Sebagai sebuah contoh sederhana bagi kode pendeteksian error, ambil sebuah kode dimana parity bit tunggal ditambahkan ke data. Parity bit dipilih supaya jumlah bitbit 1 dalam codeword menjadi genap (atau ganjil). Misalnya, bila 10110101 dikirimkan dalam parity genap dengan menambahkan sebuah bit pada bagian ujungnya, maka data itu menjadi 101101011, sedangkan dengan parity genap 10110001 menjadi 101100010. Sebuah kode dengan parity bit tunggal mempunyai jarak 2, karena sembarang error bit tunggal menghasilkan sebuah codeword dengan parity yang salah. Cara ini dapat digunakan untuk mendeteksi erro-error tunggal. Sebagai contoh sederhana dari kode perbaikan error, ambil sebuah kode yang hanya memiliki empat buah codeword valid : 0000000000,0000011111,1111100000 dan 1111111111 Kode ini mempunyai jarak 5, yang berarti bahwa code tersebut dapat memperbaiki error ganda. Bila codeword 0000011111 tiba, maka penerima akan tahun bahwa data orisinil seharusnya adalah 0000011111. Akan tetapi bila error tripel mengubah 0000000000 menjadi 0000000111, maka error tidak akan dapat diperbaiki. Bayangkan
bahwa kita akan merancang kode dengan m bit pesan dan r bit check yang akan memungkinkan semua error tunggal bisa diperbaiki. Masing-masing dari 2m pesan yang legal membutuhkan pola bit n+1. Karena jumlah total pola bit adalah 2n , kita harus memiliki (n+1)2m = 2n. Dengan memakai n = m + r, persyaratan ini menjadi (m + r + 1)=2r. Bila m ditentukan, maka ini akan meletakkan batas bawah pada jumlah bit check yang diperlukan untuk mengkoreksi error tunggal.
Sequence Number Sebelum masuk ke sequence number, ditinjau lebih dahulu tentang pengiriman pesan antara dua komputer. Dalam suatu pengiriman pesan, andaikan aplikasi berhubungan dengan Service Access Point 1 (SAP1) dari komputer A ke aplikasi lain yang berhubungan dengan SAP2 dalam komputer B. Aplikasi yang berada dalam komputer A mengirim pesan itu ke lapisan transport dengan instruksi berisi kirim pesan itu ke SAP2 dalam komputer B. Lapisan transport kemudian mengirim pesan tersebut ke lapisan network access, yang memberi perintah pada jaringan agar mengirim pesan tersebut ke komputer B. Di sini jaringan tidak perlu tahu tentang identitas SAP tujuan, yang perlu diketahui adalah data tersebut benar-benar data yang ditujukan untuk komputer B. Untuk mengontrol operasi di atas, control information, sama halnya dengan data user harus ditransmisikan seperti diagram berikut :
Data aplikasi Transport header
Transport header
Network Header
Network Header
Dari gambar di atas dapat ditarik kesimpulan bahwa aplikasi pengiriman membangkitkan blok data dan meneruskannya ke lapisan transport. Di lapisan transport blok ini dibagi jadi dua belahan agar bisa diatur dengan mudah. Kedua belahan ditambah dengan transport header yang berisi dengan informasi mengenai control protocol. Kombinasi antara data lapisan berikutnya dengan control information dinamakan protocol data unit (PDU). Dalam hal ini berkaitan pada transport PDU. Header yang ada pada PDU ini meliputi : •
Destination SAP Saat lapisan transport tujuan menerima transport PDU, harus diketahui kepada siapa data tersebut dikirim.
•
Sequence number Karena protocol transport mengirimkan deretan PDU, dan memasukkannya dalam antrian secara sekuensial sehingga saat mereka tiba tidak sesuai dengan yang diperintahkan, entiti transport tujuan dapat memerintah mereka kembali.
•
Error detection code Entiti transport yang dikirimkan meliputi suatu kode yang merupakan fungsi dari isi dari sisa PDU. Protocol transport yang menerima melakukan kalkulasi yang sama dan membandingkan hasilnya dengan kode yang datang. Hasilnya akan mengalami ketidaksesuaian bila ada error pada transmisinya. Bila hal itu terjadi, receiver akan membuang PDU dan melakukan tindakan perbaikan.
Bab 3 Penutup
Metode koreksi error continuous request mengijinkan pengirim untuk mengirim frame secara kontinu (terus menerus) tanpa harus menunggu penerima mengirimkan suatu pemberitahuan bahwa frame telah diterima oleh penerima. Pemberitahuan yang dimaksud dapat berupa positif acknowledgment (ACK) atau negative acknowledgment (NAK). Dengan menggunakan metode selective repeat maka frame data dapat dikirim dengan tingkat efisiensi yang tinggi karena jika terjadi error pada saat pengiriman maka hanya frame yang mengalami error yang akan diretransmisi sehingga dapat mengurangi jumlah frame yang diretransmisi. Berbeda dengan metode go back N yang meretransmisikan frame mulai dari frame yang terjadi error hingga frame yang selanjutnya. Tapi jika kita menggunakan metode selective repeat, kita membutuhkan kapasitas penyimpanan yang lebih besar untuk menyimpan retransmission state dan receive list. Selain itu juga dibutuhkan software khusus untuk mengurutkan frame-frame yang telah diterima pada penerima.
Daftar Pustaka
http://www.techscape.co.id Stalling, William. Komunikasi Data dan Komputer : Dasar-Dasar Komunikasi Data. Edisi Pertama. Jakarta : Salemba Teknika, 2001. Halshall, Fred. Data Communication. 1st edition.
Pertanyaan dan Jawaban Presentasi
1. Apakah aplikasi selective repeat? Jawab : Aplikasi selective repeat adalah untuk koreksi error pada pengiriman suatu paket data. Contohnya adalah pengiriman paket data pada jaringan internet. Metode koreksi error ini bisa dikatakan paling efisien karena hanya frame yang mengalami error yang akan diretransmisi. Koreksi error ini bertujuan agar informasi yang dikirimkan pada penerima dapat diterima dengan baik oleh penerima tanpa adanya kesalahan sehingga tidak merugikan pihak pengirim dan penerima. 2. Bagaimana pengiriman data ulang? Apakah data langsung dikirim ulang saat terjadi error atau menunggu setelah semua frame selesai dikirimkan? Jawab : Pengiriman data ulang akan langsung dikirim setelah pengirim tahu bahwa penerima belum menerima paket data tertentu sesuai dengan sekuennya. Pada metode koreksi error dengan menggunakan continuous request, pengirim dapat mengirimkan paket data secara kontinu. Misalnya pengirim dapat mengirim paket data ke-1, 2, 3, dan 4 secara langsung dan kontinu walaupun pengirim belum menerima ack atau nak dari penerima. Pengirim bisa mengetahui bahwa suatu paket data tidak terkirim atau tidak diterima oleh penerima dari ack atau NAK. Jika pengirim tidak menerima ack dari penerima maka pengirim menyimpulkan bahwa penerima tidak menerima paket data tersebut. Jika pengirim menerima atau tidak menerima NAK maka pengirim menyimpulkan bahwa penerima tidak menerima paket data tersebut. 3. Mana yang lebih efektif untuk metode koreksi error? Jawab : Setiap metode memiliki keunggulan dan kelemahan masing-masing. y
Untuk metode go back N, keunggulannya adalah tidak memerlukan kapasitas penyimpanan yang besar baik pada penerima maupun pada pengirim dan juga tidak membutuhkan software khusus untuk pengurutan frame karena jika terjadi error pada salah satu frame maka frame yang mengalami error dan frame dengan urutan sekuen setelah frame error yang telah terkirim akan diretransmisi. Sedangkan frame yang double akan dibuang.
y
Kelemahan dari metode go back N adalah kurang efisien karena terlalu banyak retransmisi.
y
Keunggulan dari selective repeat adalah lebih efisien karena mengurangi jumlah retransmisi data. Hanya frame yang mengalami error yang akan diretransmisi sedangkan yang lain tetap.
y
Kelemahannya adalah memerlukan kapasitas penyimpanan data yang lebih besar baik disisi pengirim dan penerima untuk menyimpan frame sampai frame yang rusak diretransmisi. Selain itu disisi penerima juga harus terdapat software yang dapat mengirim frame diluar urutan agar data bisa sampai secara urut pada pengguna akhir.
Dari perbandingan keduanya, yang paling efisien adalah metode selective repeat. 4. Saat yang bagaimana harus menggunakan metode koreksi error? Apakah sudah ditentukan sejak awal? Jawab : Metode yang digunakan sudah ditentukan sejak awal. Metode go back N dipakai karena kita tidak memerlukan space penyimpanan yang besar baik pada penerima maupun pada pengirim. Metode selective repeat dipakai karena tingkat efisiensi dalam pengiriman paket-paket data (frame). Pengirim hanya akan mengirimkan ulang paket data (frame) yang mengalami error dalam perjalanannya. Sedangkan yang tidak mengalami error tidak dikirim ulang.