Pages

Thursday, January 10, 2013

Cisco Fundamental : TCP dan UDP

TCP dan UDP

Perbedaan Dasar

Perbedaan dasar antara TCP dengan UDP adalah reliabilitas. Komunikasi TCP lebih reliable karena menggunakan sesi koneksi (connection – oriented sessions). Sebelum host menggunakan TCP mengirim data ke host lain, layer 4 akan menginisiasikan proses pembukaan koneksi. Koneksi ini akan memungkinkan tracking session. Setelah sesi terbuka, penerima akan mengirimkan acknowledgement pada pengirim, ini adalah dasar bagi reliabilitas sesi TCP.



Karena pengirim menerima ACK, ia mengetahui data telah dikirim dengan sukses, dan berhenti melakukan tracking data tersebut. Jika tidak menerima ACK (dalam kurun waktu tertentu), pengirim akan berasumsi data tidak mencapai tujuan, dan akan mengirim ulang.

Beban tambahan TCP adalah lalu lintas yang dihasilkan ACK dan transmisi ulang. Pembukaan sesi mengharuskan beberapa tambahan segmen yang harus dipertukarkan. Beban lain berupa sumber daya yang digunakan host untuk melakukan tracking (menunggu ACK dan retransmisi). Reliabilitas ini didapat dari info pada header segment, yang memiliki fungsi spesifik.





TCP

Port

Seperti yang telah dibahas sebelumnya, layer 4 mengetahui sumber dan tujuan (aplikasi) segment menggunakan nomor port. Sebuah server tidak bisa memiliki 2 service yang berjalan pada port yang sama. Dalam tiap segment, terdapat info port sumber dan port tujuan.

Contoh Penggunaan Port HTTP dan Email















Pembukaan dan Penutupan Sesi

Untuk membuka sesi, dilakukan three way handshake. Tujuan dari handshake ini adalah:

  1. Memastikan bahwa host penerima ada pada jaringan.
  2. Memverivikasi bahwa host penerima memiliki service yang aktif dan menerima request pada port yang ingin dituju oleh pengirim.
  3. Menginformasikan host penerima bahwa pengirim ingin membuka sesi komunikasi pada nomor port tersebut.

Three Way Handshake

Berikut adalah langkah kerja three way handshake. Host pengirim akan disebut client dan host penerima akan disebut server.

1) Client mengirimkan segment yang berisi nomor sequence, yang berfungsi sebagai permohonan pembukaan sesi, ini adalah segment SYN.




2) Server merespon dengan segment SYN,ACK yang berisi nilai ACK (nomor sequence client diterima +1), dan nomor sequencenya sendiri. SYN,ACK ini memungkinkan client untuk menghubungkan response dengan segment yang ia kirim.



3) Client akan merespon dengan ACK yang nilai sequencenya +1 dari sequence sebelumnya, dan nilai ACK = nilai sequence server +1.




Untuk lebih memahami proses tersebut, harus diperhatikan nilai dari flag control info. Yaitu :


  1. URG – Urgent pointer field significant.
  2. ACK – Acknowledgment field significant.
  3. PSH – Push function.
  4. RST – Reset the connection.
  5. SYN – Synchronize sequence numbers.
  6. FIN – No more data from sender.
Disebut flag, karena nilainya hanya 1 atau 0 menandakan aktif atau tidaknya control tersebut.

Pentupan Sesi

Untuk menutup koneksi, control flag FIN (Finish) harus diset. Diperlukan two way handshake untuk menutup satu sesi searah, terdiri dari FIN dan ACK. Sehingga dibutuhkan 4 kali pergantian segment untuk menutup sebuah komunikasi TCP.

Catatan : digunakan bahasa client dan server untuk kemudahan pemahaman, sebenarnya penutupan sesi bisa diawali baik dari server maupun client.

1) Saat client tidak memiliki data untuk dikirim lagi, ia mengirim segment dengan flag FIN bernilai 1.




2) Server akan mengirim ACK sebagai tanda terima untuk penutupan sesi.










3) Server mengirim FIN pada client.










4) Client merespon dengan ACK.




Dengan 4 langkah tersebut, sesi dianggap selesai, jika ada pengiriman data lagi, sesi harus dibuka ulang.




Segment Reassembly

TCP juga bertanggung jawab menyusun ulang segment yang mungkin tiba dengan urutan yang salah.



Acknowledgment dengan Windowing

Untuk menjamin data sampai ditujuan, digunakan acknowledgment. Digunakan sequence number (selanjutnya disebut SEQ dan ACK) untuk mengkonfirmasi penerimaan segment data. SEQ mengindikasikan jumlah byte relative yang telah ditransmisikan, termasuk byte pada segment saat ini. ACK pada balasan, mengindikasikan byte berikutnya yang diharapkan untuk diterima. Metode ini disebut expectational acknowledgment.


Menggunakan model pada contoh, host pengirim harus menunggu ACK untuk tiap 10 byte, jaringan akan memiliki banyak overhead (beban). Untuk mengurangi beban jaringan, banyak segment dapat dikirim sebelum menerima ACK. ACK yang digunakan bisa berupa resume (ACK untuk banyak segment sekaligus).

Contoh, jika pengiriman menggunakan SEQ number = 2000 dan mengirim 10 segment berukuran 1000 byte, maka ACK nya akan bernilai 120001. Jumlah data yang dapat dikirimkan sebelum menerima ACK disebut dengan window size.

Retransmisi

Sebaik apapun desain jaringan, pasti terjadi data loss, sehingga TCP harus menyediakan mekanisme retransmisi data yang hilang.




Congestion Control

TCP juga menyediakan mekanisme untuk control flow, yang membantu reliabilitas dengan mengatur kecepatan data flow yang efektif. Field window size pada header mengatur berapa banyak data yang bisa dikirim sebelum ACK diterima, nilai awal ditentukan saat three way handshake.




Window size dapat diubah, jika terjadi kehilangan data atau beban terlalu tinggi.




UDP

UDP memiliki kelebihan berupa overhead yang rendah, dan tidak berorientasi koneksi. Tidak terdapat retransmisi, pengurutan (sequencing) dan flow control. Bukan berarti selalu tidak reliable, tetap digunakan pada beberapa aplikasi yang sifatnya berjalan di latar belakang
  1. Domain Name System (DNS).
  2. Simple Network Management Protocol (SNMP).
  3. Dynamic Host Configuration Protocol (DHCP).
  4. Routing Information Protocol (RIP).
  5. Trivial File Transfer Protocol (TFTP).
  6. Online games.
Namun UDP tetap mengenal port numbering.


Contoh






















sumber : Cisco Fundamental 1, Joko Christian, M.Kom.




























No comments:

Post a Comment