Little boy questioned his mother, he asked what he can be in the future..with a sad smile, she tells him he can be anything he wants to be.... Boy said he’d become (an) astronaut and fly out into space crews around the universe he wanted to see the stars and also see other planets in outer space------------- "Why don’t we just keep dreaming, let’s keep our mind with dream and faith, as long as we wish we can make it come true, how old you are never forget your dream and keep dreaming "

Sunday, 1 April 2018

TCP Three Way Handshake : Explained!

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