Selama tahun-tahun awal internet, Internet Protocol (IP) adalah satu-satunya protokol yang digunakan orang untuk terhubung ke internet. Masalah dengan IP adalah Anda dapat mengirim pesan dan tidak yakin apakah penerima akan menerimanya atau tidak. Untuk alasan ini, TCP/IP didirikan.

TCP/IP memastikan bahwa semua data yang Anda kirim mencapai penerimanya. Hal ini dilakukan dengan menyediakan klien dan server dengan koneksi yang aman sebelum mengirim data. Koneksi aman ini dibuat melalui proses yang dikenal sebagai jabat tangan tiga arah, juga dikenal sebagai jabat tangan TCP/IP.

Apa Itu Jabat Tangan Tiga Arah?

Kredit Gambar: Fleshgrinder /Wikimedia

Jabat tangan tiga arah (jabat tangan TCP/IP) adalah tiga interaksi pertama antara klien dan server yang mencoba membuat koneksi TCP. Interaksi awal ini sangat penting dalam membuat koneksi yang aman. Pada fase ini, baik klien dan server akan menyepakati parameter yang akan mereka gunakan untuk memeriksa dan memverifikasi paket data yang masuk dan keluar. Parameter ini akan dalam bentuk segmen TCP.

instagram viewer

Apa itu Segmen TCP?

Dalam koneksi TCP/IP, semua data yang dikirim harus dipotong dan terstruktur pada apa yang dikenal sebagai segmen TCP. Segmen ini berisi informasi seperti alamat IP, port, bit bendera, nomor urut, nomor pengakuan, dan data opsional atau muatan.

Tiga interaksi pertama (jabat tangan tiga arah) hanya akan berisi header segmen TCP tanpa payload atau data yang dilampirkan. Berikut adalah contoh segmen TCP

Kredit Gambar: Ere/Wikimedia

Perhatikan bahwa ilustrasi di atas hanya untuk TCP. Segmen TCP/IP penuh membutuhkan keduanya alamat IP dari pengirim dan penerima di atas segmen TCP di atas.

Setiap kali Anda mengirim paket ke seseorang, Anda diminta oleh layanan pengiriman untuk mengisi formulir informasi dan kemudian melampirkannya ke paket sebelum pengiriman. Demikian pula, TCP mengharuskan pengirim untuk melampirkan kepala segmen (formulir informasi) ke data (paket) sebelum mulai mengirim segmen (paket) ke penerima.

Setiap kali klien berkomunikasi ke server, kedua belah pihak perlu memformat interaksi mereka dalam bentuk segmen TCP. Segmen TCP terdiri dari kepala segmen TCP yang dilampirkan ke data yang Anda coba kirim. Pengirim harus mengisi informasi yang dibutuhkan kepala segmen.

Untuk jabat tangan tiga arah, pengirim harus mengisi yang berikut ini:

  • Pelabuhan Sumber: Mengidentifikasi port pengirim
  • Pelabuhan Tujuan: Mengidentifikasi port penerima
  • Nomor urut: Menunjukkan urutan segmen
  • Nomor Pengakuan: Menandakan segmen telah diakui dengan menambahkan satu ke nomor urut yang diberikan

Selain mengisi bidang kepala segmen, pengirim juga harus memilih bit bendera. Ada enam bit flag secara total, tetapi untuk jabat tangan tiga arah, Anda hanya memerlukan dua hal berikut:

  1. SYN: Memberikan nomor urut. Nomor urut ini akan digunakan untuk menghitung urutan semua segmen yang masuk untuk sisa interaksi.
  2. AK: Menunjukkan bahwa penerima nomor SYN menerima permintaan koneksi dengan menambahkan satu (1) ke nomor SYN yang diberikan.

Sekarang setelah Anda mengetahui apa itu segmen TCP, mari kita lihat bagaimana segmen tersebut digunakan dalam jabat tangan tiga arah.

Bagaimana Jabat Tangan Tiga Arah Bekerja

Jabat tangan tiga arah dibuat ketika klien dan tuan rumah telah bertukar info dan mengakui nomor urut masing-masing. Sesuai dengan namanya, jabat tangan tiga arah dilakukan dalam tiga langkah.

Pertama, klien mengirimkan segmen SYN murni yang menunjukkan bahwa ia menginginkan koneksi. Kedua, server merespons dengan segmen SYN-ACK yang berarti telah mengakui permintaan dan mengirimkan nomor SYN-nya sendiri untuk diakui oleh klien. Ketiga, klien mengirimkan segmen ACK ke server untuk memberitahukan bahwa nomor SYN server telah diketahui dan akan digunakan untuk koneksi lebih lanjut.

Jabat tangan tiga arah akan terlihat seperti ini:

Kredit Aset: Penggiling Daging/Wikimedia

Mari kita uraikan dan lihat segmennya sehingga Anda tahu apa yang sebenarnya terjadi ketika klien dan server bertukar dan mengakui nomor urut.

Langkah 1: Klien Mengirim Segmen SYN

Kredit Aset: Penggiling Daging/Wikimedia

Klien mengirimkan koneksi permintaan dengan mengirimkan segmen SYN ke server. Klien menggunakan alamat IP klien untuk menemukan server dan mengirim segmen TCP.

Untuk mengurangi kerumitan segmen, mari kita abaikan beberapa bidang segmen dan berkonsentrasi pada kebutuhan dasar untuk koneksi jabat tangan tiga arah. Ini termasuk port sumber, port tujuan, nomor urut, nomor pengakuan, dan jenis bit bendera apa yang digunakan.

Dan dengan itu, segmen SYN/permintaan akan terlihat seperti ini:

Gambar dibuat oleh penulis 

Port klien adalah nomor acak antara 49152 dan 65536. Rentang port ini adalah rentang yang disepakati yang dapat digunakan perangkat publik secara dinamis untuk terhubung ke internet. Rentang port 1024 hingga 49151 bersifat pribadi. Mereka harus didaftarkan oleh entitas untuk menggunakan port dalam rentang yang ditentukan. Nomor port di bawah 1024 adalah port yang disediakan untuk berbagai fungsi dan protokol internet seperti FTP (port 20), SMTP (port 25), DNS (port 53), dan HTTP (port 80).

Dalam kehidupan nyata, nomor urut adalah nomor acak. Sebagai contoh, kami menggunakan 0000000000 untuk membuatnya lebih mudah untuk divisualisasikan.

Catat nomor urut saat kita maju melalui langkah-langkah. Saat ini, itu 000000000. Saat ini tidak ada nomor pengakuan karena tidak ada sesuatu untuk diakui.

Langkah 2: Balasan Server Dengan Segmen SYN-ACK

Kredit Aset: Penggiling Daging/Wikimedia

Setelah server menerima segmen SYN, server akan merespons dengan mengirimkan segmen ACK yang berisi nomor pengakuan. Nomor pengakuan akan menjadi nomor urut klien ditambah satu (1).

Gambar dibuat oleh penulis

Lihatlah port sumber. Ini menunjukkan bahwa segmen berasal dari port 20, menunjukkan bahwa itu berasal dari server sebagai respons.

Sekarang, lihat nomor pengakuan. Ini 0000000001, yang merupakan nomor urut klien (00000000000) ditambah satu (1). Ini adalah bagaimana segmen dilacak. Katakanlah klien menerima respons segmen ACK di mana nomor pengakuan adalah 0000000002. Ini akan menunjukkan kepada klien bahwa segmen 0000000001 hilang dan klien harus menunggu sampai segmen itu tiba agar tidak mengalami packet loss.

Seperti yang Anda lihat, dua bit flag diaktifkan—SYN dan ACK.

Selain mengakui nomor urut klien, server juga akan mengirimkan nomor urut sendiri untuk klien untuk mengakui nomor urut server ditambah satu (1). Dalam contoh kami, kami menggunakan 11111111111 sebagai nomor urut server. Sekali lagi, di dunia nyata, angka ini acak.

Perhatikan bahwa nomor urut klien dan server tidak harus sama. Selama kedua belah pihak saling mengakui nomor urut unik masing-masing, koneksi akan dapat diandalkan.

Langkah 3: Klien Membalas Dengan Segmen ACK

Kredit Aset: Penggiling Daging/Wikimedia

Akhirnya, klien mengakui nomor urut server.

Gambar dibuat oleh penulis

Segmen terakhir adalah segmen ACK dari klien.

Seperti yang Anda bisa, klien akan mengakui nomor urut server dengan merespons dengan nomor urut server (11111111111) ditambah satu (1), yaitu 1111111112.

Klien dan server tidak akan lagi mengirim nomor urut karena awal urutan telah diakui. Kedua pihak akan, bagaimanapun, mengharapkan segmen pengakuan melanjutkan nomor urut ditambah satu (1) dan jumlah byte sepanjang interaksi. Dalam hal ini, klien mengharapkan respons server berikutnya memiliki ACK 0000000002 (jika tidak ada data yang dilampirkan).

Setelah itu, jabat tangan tiga arah dibuat!

Memahami Cara Kerja Koneksi Jaringan

Sekarang setelah Anda mempelajari cara kerja jabat tangan tiga arah, Anda juga akan lebih mudah memahami cara kerja TCP setelah jabat tangan. Klien dan server akan mulai mengirim data ketika jabat tangan dibuat. Kali ini format segmen penuh akan digunakan, ditambah data atau payload opsional.

Data biasanya tersegmentasi/dipotong menjadi bagian-bagian yang lebih kecil untuk transfer yang lebih mudah. Setiap segmen data memiliki kepala segmen sendiri yang berisi nomor urut dan nomor pengakuan. Alasan nomor urut adalah untuk mengetahui urutan segmen ketika mereka akhirnya akan dipasang kembali. Nomor pengakuan ada untuk memverifikasi dengan pengirim bahwa segmen mereka telah diterima dan cocok dengan urutan segmen yang masuk.

Memperhitungkan nomor urut dan memverifikasinya dengan pengakuan adalah bagaimana TCP dapat dengan andal mengangkut potongan data yang sangat besar tanpa ada paket data yang hilang.

Dan dengan itu, Anda harus memiliki gagasan yang cukup bagus tentang cara kerja TCP.