Handshaking adalah
proses negosiasi otomatis yang secara dinamis menentukan parameter
dalam pembentukan kanal komunikasi antara dua entitas normal sebelum
komunikasi melalui kanal dimulai. Ia mengikuti pembentukan fisik
saluran precedes normal dan mentransfer informasi. Contohnya : ketika
sebuah komputer berkomunikasi dengan perangkat lain seperti modem
atauprinter yang perlu melakukan Handshake untuk membuat sambungan.
Proses
negosiasi SSL atau “Handshake,” melibatkan pertukaran cryptographic
keys, certificate,dan informasi lain , random data digunakan untuk
membuat enkripsi satu waktu, dan valuenya digunakan untuk
mengidentifikasi SSL yang dibuat dari Handshake. Handshake memiliki tiga
tujuan:
- Untuk membolehkan client dan server setuju mengenai algoritma yang akan mereka gunakan.
- Untuk melibatkan kumpulan dari crypto keys untuk digunakan oleh algoritma tersebut.
- Untuk mengautentikasi client
Catatan
penting bahwa SSL Handshake memerlukan perhitungan yang sangat kompleks
dan perlu komputer dengan processor yang tangguh.Pada
akhir cryptographic key dibuat dan dipertukarkan
antara client dan server, enkripsi berikutnya dibuat cukup mudah
sejauh processor dari komputer terfokus, namun hal itu tetap menjadikan
perlunya performa tinggi dari server. Terutama ketikaHandshake dengan
jumlah besar terjadi dalam waktu bersamaan. Bagaimanapun juga, pekerjaan
ini dapat dilakukan oleh processor khusus/special yang didesain khusus
untuk memproses perhitungan matematis yang melibatkan Handshake.
Handshaking memungkinkan
terjadinya sesi komunikasi data yang berlangsung dari mulai perencanaan
komunikasi sampai dengan komunikasi tersebut selesai. Proses ini
diawali proses prakomunikasi, yaitu proses pencarian host tujuan
(destination) oleh host yang bertindak sebagai pengirim. Proses ini
diakhiri dengan kesepakatan antara kedua belah pihak untuk melaksanakan
pertukaran data (connection establish), yaitu proses pengiriman
informasi berupa request dan tanggapan antara kedua belah pihak.
Dua
proses awal ini dapat disebut proses pembentukan koneksi. Artinya,
untuk melakukan komunikasi, perangkat yang dituju harus menerima koneksi
awalan terlebih dahulu sebelum mengirimkan data atau menerima data.
1. Proses yang dilakukan sebelum pengiriman data terdiri atas :
2. Pengirim (sender) mengirimkan sinyal sinkronasi (SYN) terlebih dulu ke tujuan.
3. Penerima akan membalas sinyal SYN dengan Negotiate Connection.
4. Penerima mengirimkan SYN ulang, apa benar pengirim akan mengirimkan data.
5. Pengirim
akan membalas dengan sinyal Acknowledge (ACK), artinya sudah siap untuk
mengirimkan data sampai saat ini. Prosesnya telah mencapai
status Connection Establish.
6. Kemudian
segmen data dikirim. Proses terakhir adalah ketika terjadi pengiriman
kodeBYE atau FIN ACK atau CLOSED atau kode lainnya bergantung aplikasi
komunikasi yang digunakan.
Tahapan Analisa:
1. Pertama-tama, buka aplikasi throughput (Wireshark). Jika anda belum meng-install-nya, lakukan dahulu proses penginstalan.
2. Kemudian, akan muncul tampilan di bawah ini. Lalu, klik “Interfaces List”.
3. Lalu akan muncul window baru. Klik “start” pada interface yang akan di-capture.
4. Kemudian, jalankan aplikasi internet browser, dan masuklah kepada salah satu situs web(misal : http://www.google.co.id/).
5. Setelah
browser menunjukkan tidak sedang melakukan loading (dalam Mozolla
Firefoxbiasanya bertuliskan “Done”), hentikan proses capture dengan
mengklik tombol “Stop” pada bagian toolbar. Setelah itu, akan muncul
hasil capture-nya. Berikut merupakan contoh dari hasil analisanya.
Hasil Analisa :
41 – 43 (! 42)
|
Opening
|
42 – 47 (! 43)
|
Negotiation
|
48 – 72 (! 62 – 71)
|
GET/ HTTP
|
62 – 80 (! 68, 70, 75, 76)
|
GET/ _icon
|
84 – 117
|
GET/ rsrc.php
|
118
|
Closing
|
Tabel A
41 – 43 (! 42)
|
Opening
|
42 – 47 (! 43)
|
Negotiation
|
48 – 117 (! 68, 70, 75, 76)
|
Connection Establish
|
118
|
Closing
|
Tabel B
Dari
hasil analisis di atas terlihat di tabel 1.0 merupakan proses yang
lebih detail dalam prosesHandshaking yang ditunjukan gambar 1.0,
sedangkan tabel 1.1 merupakan proses yang umum dari keseluruhan gambar
1.0. dari proses di atas kita bisa ketahui bahwa ini merupakan proses
three-way Handshaking. Hal ini bisa dibuktikan adanya tiga kali
persetujuan antara perangkat komunikasi yaitu opening, negotiation
dan closing. Disini Connection Cstablish merupakan proses utama dan
bukan persetujuan atau kesepakatan antar perangkat komunikasi.
Maka
dari itu, dapat disimpulkan bahwa Proses Handshaking bisa dikatakan
sudah masukConnection Cstablish bilamana sudah ada kode GET/ dari host
penerima ke pengirim. Merupakan tanda pertukaran data awal dalam
proses Connection Establish. Proses Handshaking dalam aplikasi
throughput tidak selalu berurutan dalam suatu proses GET/ bisa saja ada 2
kali proses GET/ dalam satu waktu sehingga menyebabkan hasil capture
bergantian antara GET/ yang satu dengan yang lainnya.
A. Metode Handshaking
1. Handshaking polling
Secara software Prioritas, yang di-poll pertama mendapat prioritas tertinggi. Bila processor ingin
mengakses perangkat, salah satu pendekatannya adalah dengan
membiarkan processor melakukan semua pekerjaan. Processor berinteraksi
dengan controller melalui protokol yang rumit tetapi dasar Handshaking-nya cukup sederhana yaitu:
a. CPU terus menerus membaca bit status sampai bit tersebut menandakan perangkat siap menerima perintah CPU.
b. CPU mengaktifkan bit-write di register perintah sebagai awal pertanda CPU memberikan perintah dan menulis sebuah byte di data-out.
c. CPU mengaktifkan command-ready bit, artinya perintah tersedia untuk dijalankan controller.
d. Controller melihat command ready bit di-set sehingga bit kerja di-set.
e. Controller membaca register perintah dan melihat perintah write maka data-out dibaca dan menyuruh perangkat M/K melakukan apa yang diperintah CPU.
f. Controller menghapus command ready bit, bit error di status dan bit kerja.
Langkah 1 disebut polling atau busy
waiting. Processor terus-menerus membaca bit status, berharap suatu
saat bit tersebut menandakan perangkat siap menerima perintahnya. Pada
dasarnya polling dapat dikatakan efisien bila kinerja perangkat dan controller-nya
cepat. Kelemahan dari cara ini adalah bila waktu tunggu lama, maka
lebih baikprocessor mengerjakan tugas yang lain. Sedangkan untuk
mengetahui apakah perangkatnya sudah siap menerima perintah lagi atau
belum, digunakanlah interupsi.
2. Handshaking Interupsi
Interupsi
terjadi bila suatu perangkat M/K ingin memberitahu processor bahwa ia
siap menerima perintah, output sudah dihasilkan, atau terjadi error.
Ada beberapa tahapan dalam penanganan interupsi:
- Controller mengirimkan sinyal interupsi melalui interrupt-request-line
- Sinyal dideteksi oleh processor
- Processor akan terlebih dahulu menyimpan informasi tentang keadaan state-nya (informasi tentang proses yang sedang dikerjakan)
- Processor mengidentifikasi penyebab interupsi dan mengakses tabel vektor interupsi untuk menentukan interrupt handler
- Transfer kontrol ke interrupt handler
- Setelah interupsi berhasil diatasi, processor akan kembali ke keadaan seperti sebelum terjadinya interupsi dan melanjutkan pekerjaan yang tadi sempat tertunda.
Pada
kebanyakan CPU, ada dua interrupt request line. Pertama,
interupsi nonmaskable, interupsi ini biasanya berasal dari perangkat
keras dan harus segera dilaksanakan, seperti terjadinya error pada
memori.
Kedua,
interupsi maskable, jenis interupsi ini bisa dilayani
oleh processor atau bisa tidak dilayani. Kalaupun dilayani, harus
dilihat keadaan processor saat itu. Ada kemungkinan processorlangsung
menangani bila saat itu, processor preemptive, bila nonpreemptive, maka
harus menunggu proses yang sedang dikerjakan selesai.
Bila
ada sebuah sinyal interupsi pada interrupt request line, bagaimana
sebuah interrupt handler mengetahui sumber dari interupsi itu? Apakah
harus menelusuri semua sumber interupsi satu-persatu? Tidak perlu,
karena setiap interrupt handler mempunyai alamat memori masing-masing.
Alamat ini adalah offset pada sebuah tabel yang disebut dengan vektor
interupsi.
Vector number
|
Description
|
0
|
Divide error
|
1
|
Debug Exception
|
2
|
Null Interrupt
|
3
|
Breakpoint
|
4
|
INTO-detected overflow
|
5
|
Bound range exception
|
6
|
Invalid opcode
|
7
|
Device not available
|
8
|
Double fault
|
9
|
Compressor segment overrun (reserved)
|
10
|
Invalid task state segment
|
11
|
Segment not present
|
12
|
Stack fault
|
13
|
General protection
|
14
|
Page fault
|
15
|
(Intel reserved, do not use)
|
16
|
Floating point error
|
17
|
Alignment check
|
18
|
Machine check
|
19-31
|
(Intel reserved, do not use)
|
32-255
|
Maskable interrupt
|
Sesuai
dengan perkembangan zaman, komputer mempunyai lebih banyak perangkat
(dan lebih banyak interrupt handlers) daripada elemen alamat di vektor.
Hal ini bisa diatasi dengan teknik vector chaining. Setiap elemen di
vektor interupsi menunjuk ke kepala dari sebuah daftar interrupt
handlers, sehingga bila ada interupsi, handler yang terdapat pada daftar
yang ditunjuk akan dipanggil satu persatu sampai didapatkan handler yang bisa menangani interupsi yang bersangkutan.
Mekanisme
interupsi juga menerapkan sistem level prioritas interupsi. Sistem ini
memungkinkan interupsi berprioritas tinggi menyela eksekusi interupsi
berprioritas rendah. Sistem ini juga memungkinkan perangkat M/K yang
membutuhkan pelayanan secepatnya didahulukan daripada perangkat lainnya
yang prioritasnya lebih rendah. Pengaturan prioritas dan penanganan
perangkat berdasarkan prioritasnya diatur oleh processor dan controller interupsi.
Mekanisme
interupsi tidak hanya digunakan untuk menangani operasi yang
berhubungan dengan perangkat M/K. Sistem operasi menggunakan mekanisme
interupsi untuk beberapa hal, di antaranya:
- Menangani exception
Exception adalah
suatu kondisi dimana terjadi sesuatu, atau dari sebuah operasi
didapatkan hasil tertentu yang dianggap khusus sehingga harus mendapat
perhatian lebih, contohnya, pembagian dengan nol, pengaksesan alamat
memori yang restricted atau tidak valid, dll.
- Mengatur virtual memory paging.
- Menangani perangkat lunak interupsi.
- Menangani alur kontrol kernel.
Jika
interupsi yang terjadi merupakan permintaan untuk transfer data yang
besar, maka penggunaan interupsi menjadi tidak efisien, untuk
mengatasinya digunakanlah DMA.
D. Handshaking DMA
Proses Handshaking antara
DMA controller dan device controller dilakukan melalui sepasang kabel
yang disebut DMA-request dan DMA-acknowledge. Device
controller mengirimkan sinyal melalui DMA-request ketika akan
mentransfer data sebanyak satu word. Hal ini kemudian akan mengakibatkan
DMA controller memasukkan alamat-alamat yang dinginkan ke kabel alamat
memori, dan mengirimkan sinyal melalui kabel DMA-acknowledge. Setelah
sinyal melalui kabel DMA-acknowledge diterima, device
controller mengirimkan data yang dimaksud dan mematikan sinyal pada
DMA-request.
Hal
ini berlangsung berulang-ulang sehingga disebut Handshaking. Pada saat
DMA controller mengambil alih memori, CPU sementara tidak dapat
mengakses memori (dihalangi), walau pun masih dapat mengaksees data
pada cache primer dan sekunder. Hal ini disebut cycle stealing, yang
walau pun memperlambat komputasi CPU, tidak menurunkan kinerja karena
memindahkan pekerjaan data transfer ke DMA controller meningkatkan performa sistem secara keseluruhan.
Handshaking DMA
Memberikan transfer data tercepat dengan cara mensinkronkan peripheral
dan memori utama. Software minimal atau tidak ada, tetapi
membutuhkan chip kontroler DMA, yang memperumit hardware.
Tiga mode:
1. One byte (ambil bus, kirim 1 byte, kembalikan bus)
2. Burst (ambil bus, jika bus ready kirim 1 byte, kembalikan bus)
3. Block DMA (ambil bus, jika bus ready kirim block, kembalikan bus)
Perlu diketahui
bahwa mekanisme interupsi tidak efisien untuk melakukan transfer data
yang besar. Transfer data dilakukan per word. Pada mekanisme interupsi,
untuk tiap word data yang ditransfer, processor tidak akan menunggu data
tersedia pada perangkat yang mengirim data maupun data selesai ditulis
oleh perangkat yang menerima data. Dalam situasi tersebut processorakan
mengganti proses yang sedang dieksekusinya (yang melakukan transfer
data) dengan proses lain (context switch). Jika ukuran data yang
ditransfer cukup besar, processor akan berulang kali melakukan context
switch, padahal context switch akan menimbulkan overhead. Oleh karena
itu kelemahan mekanisme interupsi untuk menangani transfer data yang
besar disebabkan oleh context switch. Untuk menangani kelemahan
tersebut, digunakan suatu unit kontrol khusus yang disediakan untuk
mentrasfer data langsung antar perangkat eksternal dan memori utama
tanpa intervensi terus menerus dari processor. Unit kontrol khusus
tersebut adalah DMA.
Sistem
modern dapat mengurangi beban CPU untuk melakukan operasi M/K, yaitu
dengan menggunakan pengendali DMA. Dengan demikian CPU dapat melakukan
tugas lain sementara operasi M/K dilakukan. Setiap pengendali peralatan
dapat saja memiliki perangkat keras DMA tersendiri. Alternatif lain
adalah dengan memiliki sebuah pengendali DMA pada motherboard yang
mengatur transfer ke berbagai peralatan. Untuk
memulai transfer data secara DMA, driver peralatan akan menulis blok
perintah DMA memori yang menunjuk sumber data, tujuan, dan
jumlah byte yang akan ditransfer. CPU kemudian akan mengirimkan alamat
blok perintah ini pada pengendali DMA. pengendali DMA akan memproses
informasi ini untuk kemudian mengoperasikan bus memori. Transfer
sebanyak 1 byte/word per satuan waktu oleh pengendali DMA disebut
sebagai cycle stealing karena pengendali menggunakan bus cycle milik
CPU. Dengan cycle stealing penggunaan bus oleh CPU akan tertunda
beberapa waktu karena busdigunakan untuk proses DMA.
Tiga langkah dalam transfer DMA:
- processor menyiapkan DMA transfer dengan menyediakan data-data dari perangkat, operasi yang akan ditampilkan, alamat memori yang menjadi sumber dan tujuan data, dan banyaknya byte yang ditransfer.
- Pengendali DMA memulai operasi (menyiapkan bus, menyediakan alamat,menulis dan membaca data) samapai seluruh blok sudah ditransfer.
- Pengendali DMA menginterupsi processor, dimana selanjutnya akan ditentukan tindakan berikutnya.
0 komentar:
Posting Komentar