TCP, UDP, Port, Socket, TCP Header, Handshake(3way handshaking)


1. TCP
TCP (transmission control protocol) merupakan jenis protocol connection-oriented, sebelum data dapat ditransmisikan antara dua host, dua proses yang berjalan pada lapisan aplikasi harus melakukan negosiasi untuk membuat sesi koneksi terlebih dahulu.[1]
Proses pembuatan koneksi TCP disebut juga dengan “3-way handshake”. Tujuan metode ini adalah agar dapat melakukan sinkronisasi terhadap nomor urut dan nomor acknowledgement yang dikirimkan oleh kedua pihak dan saling bertukar ukuran TCP Window. Prosesnya adalah Host pertama (yang ingin membuat koneksi) akan mengirimkan sebuah segmen TCP dengan flag SYN kepada host kedua (yang hendak diajak untuk berkomunikasi). Host kedua akan meresponsnya dengan mengirimkan segmen yang berisi acknowledgen dan juga SYN kepadahost pertama. Host pertama selanjutnya akan mulai saling bertukar data dengan host kedua. Proses handshaking complete dengan ditandai kedua client telah menerima acknowledgements dari koneksi sehingga keduanya dapat saling mengirim data.[2]
2. UDP
UDP (user datagram protokol) merupakan protocol transport layer seperti TCP, tetapi UDP lebih cepat dibandingkan TCP dan mendukung komunikasi yang tidak andal (unreliable), tanpa koneksi (connectionless) antara host-host dalam jaringan yang menggunakan TCP.[3]
UDP mengijinkan komunikasi antara proses-proses pada node yang berbeda. Setiap proses ditandai dengan nomor logical port.
Contoh berikut adalah menggunakan TFTP server provides dan layanan VOIP (voice over IP).
Pada TFTP, UDP header adalah 69/1598, 69 merupakan destination port (tftp) dan 1598 merupakan source port (tftp client), nomor source port diacak oleh UDP. Pada VOIP, header UDP adalah 9760/2793, 9760 merupakan destination port (VoIP) dan 2793 merupakan source port (VoIP).
Pada saat sampai di tujuan UDP membaca destination port pada TFTP (69) dan mengirim data ke proses yang tersedia. Packet yang asli memiliki source port sehingga server dapat mengirim kembali data ke tftp client.
Ketika sebuah aplikasi ingin mengirimkan data, UDP tidak membagi datanya (fragment). Data langsung dikirim ke IP layer. Karena UDP tidak melakukan frgment pada data maka jika data lebih besat dari MTU, IP layer harus melakukan fragment.
Ketika UDP pada penerima mendapat data, penerima tidak mengirimkan acknowledgement. Karena tidak ada pemberitahuan data sudah terkirim, UDT tidak melakukan apapun saat kehilangan data. UDP tidak membuat koneksi ke tujuan sebelum mengirimkan data, UDP hanya mengirim atau menerima data dari aplikasi. Saat server tidak online, data akan terbuang.
Karena UDP lebih cepat dibandingkan TCP, maka lebih berguna saat menggunakan aplikasi seperti VOIP atau streaming media.[4]
3. Port
Dalam protokol jaringan, sebuah port adalah mekanisme yang mengizinkan sebuah komputer untuk mendukung beberapa sesi koneksi dengan komputer lainnya dan program di dalam jaringan. Port dapat mengidentifikasikan aplikasi dan layanan yang menggunakan koneksi di dalam jaringan TCP/IP. Port juga mengidentifikasikan sebuah proses tertentu di mana sebuah server dapat memberikan sebuah layanan kepada klien atau bagaimana sebuah klien dapat mengakses sebuah layanan yang ada dalam server.
Port dapat dikenali dengan angka 16-bit (dua byte) yang disebut dengan Port Number dan diklasifikasikan dengan jenis protokol transport apa yang digunakan, ke dalam Port TCP dan Port UDP. Karena memiliki angka 16-bit, maka total maksimum jumlah port untuk setiap protokol transport yang digunakan adalah 65536 buah.
Dilihat dari penomorannya, port UDP dan TCP dibagi menjadi tiga jenis, yakni sebagai berikut :
·         Well-known Port: yang pada awalnya berkisar antara 0 hingga 255 tapi kemudian diperlebar untuk mendukung antara 0 hingga 1023. Port number yang termasuk ke dalam well-known port, selalu merepresentasikan layanan jaringan yang sama, dan ditetapkan oleh Internet Assigned Number Authority (IANA). Beberapa di antara port-port yang berada di dalam range Well-known port masih belum ditetapkan dan direservasikan untuk digunakan oleh layanan yang bakal ada di masa depan. Well-known port didefinisikan dalam RFC 1060.
·         Registered Port: Port-port yang digunakan oleh vendor-vendor komputer atau jaringan yang berbeda untuk mendukung aplikasi dan sistem operasi yang mereka buat. Registered port juga diketahui dan didaftarkan oleh IANA tapi tidak dialokasikan secara permanen, sehingga vendor lainnya dapat menggunakan port number yang sama. Range registered port berkisar dari 1024 hingga 49151 dan beberapa port di antaranya adalah Dynamically Assigned Port.
·         Dynamically Assigned Port: merupakan port-port yang ditetapkan oleh sistem operasi atau aplikasi yang digunakan untuk melayani request dari pengguna sesuai dengan kebutuhan. Dynamically Assigned Port berkisar dari 1024 hingga 65536 dan dapat digunakan atau dilepaskan sesuai kebutuhan.[5]
4. Socket
Socket adalah mekanisme komunikasi yang memungkinkan terjadinya pertukaran data antar program atau proses baik dalam satu mesin maupun antar mesin.
Keunggulan dari penggunaan socket ini dibandingkan jika menggunakan pipes biasa adalah dapat melakukan komunikasi antar proses/program melalui jaringan berbasis yang TCP/IP, bahkan dengan program lain yang berjalan pada platform non-unix seperti Microsoft Windows, sepanjang program tersebut berbicara dalam protokol transfer yang sama.
Komunikasi socket terutama diciptakan untuk tujuan menjembatani komunikasi antara dua buah program yang dijalankan pada mesin yang berbeda.  Yang berarti dua program pada mesin yang sama dapat juga saling berkomunikasi. Kelebihan lain dari komunikasi socket adalah mampu menangani banyak klien sekaligus (multiple clients).
Jenis Socket :
·         Socket Lokal
Socket Lokal adalah socket yang melakukan komunikasi dengan perantaraan sebuah file yang biasanya diletakkan pada direktori /tmp atau /usr/tmp ataupun /var/tmp. Socket semacam ini digunakan umumnya terbatas untuk komunikasi antar aplikasi dalam satu mesin.
·         Socket Networking
Socket Networking ditujukan untuk komunikasi antar aplikasi antar mesin dalam lingkungan jaringan TCP/IP. Identifikasi socket dilakukan dengan sebuah service identifier yaitu berupa nomor port TCP/IP yang dapat di sambung oleh client.
·         Socket Stream
Socket Stream adalah socket komunikasi full-duplex berbasis aliran (stream) data. Pada model komunikasi Socket Stream, koneksi dua aplikasi harus dalam kondisi tersambung dengan benar untuk dapat bertukar data. Ini dapat dianalogikan seperti komunikasi telepon. Jika sambungan telepon di salah satu titik putus, maka komunikasi tidak dapat terjadi. Koneksi model seperti ini akan menjamin data dapat dipertukarkan dengan baik, namun memiliki kelemahan dalam hal penggunaan jalur data yang relatif besar dan tidak boleh terputus.
·         Socket Datagram
Socket Datagram berkomunikasi dengan cara yang berbeda. Socket ini tidak membutuhkan koneksi yang tersambung dengan benar untuk mengirimkan dan menerima data. Model koneksi semacam ini tidak dapat menjamin data dapat dipertukarkan dengan baik, namun memiliki keunggulan dalam hal penggunaan jalur data yang minimal. Socket Datagram dapat dianalogikan dengan komunikasi yang terjadi pada kelas, misalnya pada saat guru melakukan broadcasting materi pelajaran untuk diterima oleh setiap murid. Tidak ada yang dapat menjamin materi pelajaran dapat diterima oleh semua murid dengan baik, kecuali diterapkan metodarechecking. Rechecking ini dapat dilakukan baik oleh guru maupun murid. Guru bertanya untuk memastikan jawaban dari murid benar, atau murid bertanya untuk memastikan kebenaran materi yang diterimanya. Socket Datagram pun menggunakan metoda ini untuk menjamin pengiriman data dapat dilakukan dengan baik.[6]
5. TCP Header
Ukuran dari header TCP adalah bervariasi, yang terdiri atas beberapa field yang ditunjukkan dalam gambar dan tabel berikut. Ukuran TCP header paling kecil (ketika tidak ada tambahan opsi TCP) adalah 20 byte. [2]
5. Handshake
Handshaking Adalah proses yang mengatur dan mengendalikan aliran data antar 2 peranti.  Hansdhaking diperlukan untuk mengakomodasi ketepatan waktu pengiriman data antara komputer dan terminal, atau periferal. Beberapa handshaking secara umum diperlukan karena komputer dan terminal mungkin beroperasi pada kecepatan yang berbeda. Jalur handshake biasanya ditambahkan untuk mengendalikan waktu yang tepat untuk pengiriman data.
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 atau printer yang perlu melakukan handshake untuk membuat sambungan.
Proses negosiasi handshake, melibatkan pertukaran cryptographic keys,  certificate dan informasi lain, random data digunakan untuk membuat enkripsi satu waktu, dan valuenya digunakan untuk mengidentifikasi 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 klien.
Catatan penting bahwa 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 prosesor dari komputer terfokus, namun hal itu tetap menjadikan perlunya performa  tinggi dari server. Terutama ketika handshake dengan jumlah besar terjadi dalam waktu
bersamaan. Bagaimanapun juga, pekerjaan ini dapat dilakukan oleh processor khusus/spesial
yang didesain khusus untuk memproses perhitungan matematis yang melibatkan handshake.[7]
Referensi :
[7] http://www.rendy1412.co.cc/2010/07/enkapsulasi-dan-handshaking_5206.html

2 Komentar untuk "TCP, UDP, Port, Socket, TCP Header, Handshake(3way handshaking)"

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel