TCP Three Way Handshake
Protokol TCP mengharuskan kita membuat terjadinya koneksi diantara dua perangkat (establish connection) sebelum mereka dapat mengirim data di antara mereka. TCP melakukan ini melalui proses yang dikenal sebagai "Three Way Handshake". Cara kerjanya adalah kita menggunakan bit SYN dan bit ACK di dalam header TCP untuk berkomunikasi antara dua perangkat dalam satu session.
Header TCP sendiri memiliki struktur sebagai berikut :
- Source port: Nomor port sumber (16 bits) yang dihasilkan secara random/dinamis.
- Destination port: Nomor port tujuan (16 bits), sesuai dengan standar dari IANA, terdokumentasi di RFC 1700.
- Sequence number: nomor sebagai tandai dalam sebuah segment , digunakan untuk memastikan data yang dikirim/diterima dalam urutan yang benar (32 bits)
- Acknowledgment number: TCP oktet berikutnya (32 bit). Koneksi TCP adalah koneksi yang andal (reliable). Komputer pengirim dan penerima menggunakan Acknowledgement untuk memastikan bahwa data dikirim dan diterima sebagaimana yang ditentukan dan bahwa data tsb diterima tidak ada kesalahan dan dalam urutan yang benar.
- Header length: nomor dari 32 bit data pada header (4 bits).
- Reserved: Diset 0 (6 bits).
- Control bits: Berisi 9 filed dengan panjang 1 bit disebut dengan flag, flag tsb diantaranya :
- URG: filed yang menyatakan bahwa segment bersifat urgent.
- ACK: Mengindikasikan bahwa segmen merupakan ACK. Semua paket, setelah pakei initial SYN yang dikirim oleh client maka filed ini akan diset aktif (1).
- PSH: Push function. Mendorong data pada media buffer ke aplikasi penerima.
- RST: Reset koneksi.
- SYN: Inisiasi sebuah koneksi. hanya paket pertama pada setiap sesi dengan SYN diset = 1.
- FIN: Menyatakan tidak ada lagi data untuk dikirim (mengakhiri koneksi).
- Window: berisi angka/nomor berapa jumlah data yang diharapkan untuk dikirim (16 bits). Windowing Memungkinkan komputer pengirim mengirim data tanpa menunggu ACK dari penerima, juga berfungsi menjaga kecepatan transfer.
- Checksum: Kalkulasi checksum dari header dan data (16 bits)
- Urgent: Menyatakan akhir data urgent (16 bits)
- Options: Ukuran segemen yang ditentukan saat itu bisa 0 atau 32 bits dan lainnya.
- Data: Berisi data dari protocol diatasnya (Model Referensi OSI ).
Setelah mengetahui struktur dari segment TCP maka akan lebih bisa memahami bagaimana three way handshake terjadi.
Proses ini melibatkan pengaturan bit SYN dan bit ACK di segmen antara kedua perangkat. Fungsi penting yang dilakukan selama pembentukan koneksi adalah bahwa perangkat bertukar nomor urut awal mereka atau disebut Initial Sequence Number (ISN). Nomor ini digunakan untuk melacak byte data pada koneksi ini. Tabel di bawah ini mencakup penjelasan yang disederhanakan dari proses jabat tangan tiga arah, yang diilustrasikan dalam gambar.
Step
|
Action
|
Keterangan
|
1
|
Perangkat
yang menginisiasi koneksi mengirim TCP SYN
(segmen TCP dengan set bit SYN = 1) ke perangkat penerima, memulai proses handshake dengan menampilkan
nomor urut awal (ISN)
|
Host A memberitahu Host B: "Hai. Saya akan memulai koneksi dengan
anda, dan nomor urut awal/initial sequence
number saya adalah 100."
|
2
|
Perangkat penerima
merrespon dengan TCP SYN/ACK (segmen TCP dengan set bit SYN dan ACK = 1) mengakui nomor
urutan awal peer
(100) dan menyajikan nomor urut awal sendiri (300).
|
Host B memberitahu Host A: "Saya menerima permintaan koneksi anda. Nomor urut awal saya
adalah 300. Saya mengakui (ACK)
nomor urut awal anda yaitu 100. Byte data berikutnya yang akan saya terima adalah nomor 101”.
|
3
|
Perangkat
yang menginisiasi koneksi merespon dengan TCP ACK (Segmen TCP
dengan set bit ACK
= 1), mengakui nomor urutan awal perangkat penerima.
|
Host A memberitahu Host B: "Mantaps jiwa. Saya telah mengakui
nomor urut awal anda yaitu nomor 300. Byte data berikutnya yang akan saya terima
adalah nomor 301”. Kedua host siap untuk bertukar data.
|
Koneksi TCP biasanya dan diakhiri dengan normal ketika setiap sisi koneksi menutup sisi koneksi secara independen.
Contoh berikut memberikan uraian proses yang disederhanakan:
- Host A mengirim FIN (segmen TCP dengan set bit FIN = 1) ke Host B untuk menunjukkan bahwa ia ingin mengakhiri sesi.
- Host B mengirim ACK (segmen dengan set bit ACK = 1) kembali ke Host A, mengakui bahwa ia menerima FIN.
- Host B mengirim FIN ke Host A.
- Host A mengirim ACK ke Host B.
Sekian dari saya, mohon maaf jika ada kekurangan.. atau ada pertanyaan bisa disampaikan dikolom komentar
Referensi :
Cisco Curriculum
No comments:
Post a Comment