Selasa, 23 Juni 2020

Penjelasan TCP dan UDP

Penjelasan TCP dan UDP 


1. TCP (Transmission Control Protocol)

TCP (Transmission Control Protocol) adalah salah satu jenis protokol yang  memungkinkan sekumpulan komputer untuk berkomunikasi dan bertukar data didalam suatu jaringan.

TCP mempunyai karakteristik sebagai protokol yang berorientasi koneksi (Connection oriented). Protokol TCP menggunakan jalur data full duplex yang berarti antara kedua host terdapat dua buah jalur, jalur masuk dan jalur keluar sehingga data dapat dikirimkan secara simultan.

 

2. Karakteristik TCP/IP

  1. Reliable berarti data ditransfer ke tujuannya dalam suatu urutan seperti ketika dikirim. Memiliki mekanisme pengiriman data yang handal dan efisien.
  2. Berorientasi sambungan (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. Koneksi TCP ditutup dengan menggunakan proses terminasi koneksi TCP (TCP connection termination).
  3. Full-duplex: Untuk setiap host TCP, koneksi yang terjadi antara dua host terdiri atas dua buah jalur, yakni jalur keluar dan jalur masuk. Dengan menggunakan teknologi lapisan yang lebih rendah yang mendukung full-duplex, maka data pun dapat secara simultan diterima dan dikirim. Header TCP berisi nomor urut (TCP sequence number) dari data yang ditransmisikan dan sebuah acknowledgment dari data yang masuk.
  4. Memiliki layanan flow control. Untuk mencegah data terlalu banyak dikirimkan pada satu waktu, yang akhirnya membuat “macet” jaringan internetwork IP, TCP mengimplementasikan layanan flow control yang dimiliki oleh pihak pengirim yang secara terus menerus memantau dan membatasi jumlah data yang dikirimkan pada satu waktu. Untuk mencegah pihak penerima untuk memperoleh data yang tidak dapat disangganya (buffer), TCP juga mengimplementasikan flow control dalam pihak penerima, yang mengindikasikan jumlah buffer yang masih tersedia dalam pihak penerima.
  5. Melakukan segmentasi terhadap data yang datang dari lapisan aplikasi (dalam DARPA Reference Model)
    Mengirimkan paket secara “one-to-one“. hal ini karena memang TCP harus membuat sebuah sirkuit logis antara dua buah protokol lapisan aplikasi agar saling dapat berkomunikasi. TCP tidak menyediakan layanan pengiriman data secara one-to-many.
  6. Bersifat open platform atau platform independent yaitu tidak terikat oleh jenis perangkat keras atau perangkat lunak tertentu.
  7. Karena sifatnya yang terbuka, TCP/IP bisa mengirimkan data antara sistem-sistem komputer yang berbeda yang menjalankan pada sistem-sistem operasi yang berbeda pula.
  8. TCP/IP terpisah dari perangkat keras yang mendasarinya. Protokol ini dapat dijalankan pada jaringan Ethernet, Token ring, X.25, dan bahkan melalui sambungan telepon.
  9. TCP/IP menggunakan skema pengalamatan yang umum, maka semua sistem dapat mengirimkan data ke alamat sistem yang lain.
  10. Pengiriman file (file transfer). File Transfer Protokol (FTP) memungkinkan pengguna komputer yg satu untuk dapat mengirim ataupun menerima file ke komputer jaringan. Karena masalah keamanan data, maka FTP seringkali memerlukan nama pengguna (username) dan password, meskipun banyak juga FTP yg dapat diakses melalui anonymous, alias tidak berpassword. (lihat RFC 959 untuk spesifikasi FTP).

 3. Contoh Aplikasi yang Menggunakan Protocol TCP

  • TELNET
  • FTP (File Transfer Protocol)
  • SMTP (Simple Mail Transfer Protocol)

 

4. Cara Kerja TCP/IP

  1. Datagram dibagi-bagi ke dalam bagian-bagian kecil yang sesuai dengan ukuran bandwith (lebar frekuensi) dimana data tersebut akan dikirimkan.
  2. Pada lapisan TCP, data tersebut lalu “dibungkus” dengan informasi header yang dibutuhkan. Misalnya seperti cara mengarahkan data tersebut ke tujuannya, cara merangkai kembali kebagian-bagian data tersebut jika sudah sampai pada tujuannya, dan sebagainya.
  3. Setelah datagram dibungkus dengan header TCP, datagram tersebut dikirim kepada lapisan IP.
  4. IP menerima datagram dari TCP dan menambahkan headernya sendiri pada datagram tersebut.
  5. IP lalu mengarahkan datagram tersebut ke tujuannya.

 

Komputer penerima melakukan proses-proses perhitungan, ia memeriksa perhitungan checksum yang sama dengan data yang diterima. Jika kedua perhitungan tersebut tidak cocok berarti ada error sewaktu pengiriman dan datagram akan dikirimkan kembali.

Ilustrasi-Perbedaan-TCP-Dan-UDP

UDP vs TCP

 

5. UDP (User Datagram Protocol)

5. UDP (User Datagram Protocol)

Sedangkan UDP (User Datagram Protocol) adalah transport layer yang tidak handal, unreliable / connectionless dan merupakan kebalikan dari transport layer TCP. Dengan menggunakan UDP, setiap aplikasi socket dapat mengirimkan paket – paket yang berupa datagram. Istilah datagram diperuntukkan terhadap paket dengan koneksi yang tidak handal (unreliable service). Koneksi yang handal selalu memberikan keterangan apabila pengiriman data gagal, sedangkan koneksi yang tidak handal tidak akan mengirimkan keterangan (acknowledgment) meski pengiriman data gagal.

 

Data dalam protokol UDP akan dikirimkan sebagai datagram tanpa adanya nomor identifier. Sehingga sangat besar sekali kemungkinan data sampai tidak berurutan dan sangat mungkin hilang/rusak dalam perjalananan dari host asal ke host tujuan.

 

6. Karakteristik UDP

  1. Protokol yang “ringan” (lightweight). Untuk menghemat sumber daya memori dan prosesor, beberapa protokol lapisan aplikasi membutuhkan penggunaan protokol yang ringan yang dapat melakukan fungsi-fungsi spesifik dengan saling bertukar pesan.
  2. Transmisi broadcast. Karena UDP merupakan protokol yang tidak perlu membuat koneksi terlebih dahulu dengan sebuah host tertentu, maka transmisi broadcast pun dimungkinkan. Sebuah protokol lapisan aplikasi dapat mengirimkan paket data ke beberapa tujuan dengan menggunakan alamat multicast atau broadcast. Hal ini kontras dengan protokol TCP yang hanya dapat mengirimkan transmisi one-to-one.
  3. UDP tidak menyediakan mekanisme penyanggaan (buffering) dari data yang masuk ataupun data yang keluar. Tugas buffering merupakan tugas yang harus diimplementasikan oleh protokol lapisan aplikasi yang berjalan di atas UDP.
  4. UDP tidak menyediakan mekanisme segmentasi data yang besar ke dalam segmen-segmen data, seperti yang terjadi dalam protokol TCP. Karena itulah, protokol lapisan aplikasi yang berjalan di atas UDP harus mengirimkan data yang berukuran kecil (tidak lebih besar dari nilai Maximum Transfer Unit/MTU) yang dimiliki oleh sebuah antarmuka di mana data tersebut dikirim. Karena, jika ukuran paket data yang dikirim lebih besar dibandingkan nilai MTU, paket data yang dikirimkan bisa saja terpecah menjadi beberapa fragmen yang akhirnya tidak jadi terkirim dengan benar.
  5. UDP tidak menyediakan mekanisme flow-control, seperti yang dimiliki oleh TCP.
  6. Connectionless (tanpa koneksi). Pesan-pesan UDP akan dikirimkan tanpa harus dilakukan proses negosiasi koneksi antara dua host yang hendak berukar informasi.
  7. Unreliable (tidak andal). Pesan-pesan UDP akan dikirimkan sebagai datagram tanpa adanya nomor urut atau pesan acknowledgment. Protokol lapisan aplikasi yang berjalan di atas UDP harus melakukan pemulihan terhadap pesan-pesan yang hilang selama transmisi. Umumnya, protokol lapisan aplikasi yang berjalan di atas UDP mengimplementasikan layanan keandalan mereka masing-masing, atau mengirim pesan secara periodik atau dengan menggunakan waktu yang telah didefinisikan.

7. Contoh Aplikasi yang Menggunakan Protocol UDP

  • DNS (Domain Name System)
  • SNMP (Simple Network Management Protocol)
  • TFTP (Trivial File Transfer Protocol)
  • SunRPC

Perbedaan TCP dan UDP

PerbedaanTCPUDP
Jenis KoneksiConnection-oriented : semua paket data yang dikirimkan akan diperiksa kembali. Jika terdapat informasi yang hilang / tidak sesuai dengan paket yang dikirimkan, maka paket data akan dikirimkan kembali.Connectionless : semua paket data dikirimkan tanpa adanya pengecekan hingga semua data sampai ke tujuan. Hal ini menyebabkan, jika ada informasi yang hilang akan diabaikan.
Basis koneksiConnection based : pengiriman paket data melalui internet dari satu komputer ke komputer lain. (dalam jaringan)Not connection based : paket data akan langsung dikirimkan ke tujuan. (host-to-host tidak dalam jaringan TCP/IP)
PenggunaanCocok untuk aplikasi yang memerlukan keandalan tinggi dengan waktu yang kurang cepat.Cocok untuk aplikasi yang membutuhkan transmisi cepat, efisien dan mengijinkan adanya sedikit informasi yang hilang.
Contoh aplikasi / port*Telnet, FTP (File Transfer Protocol), SMTP (Simple Mail Transfer Protocol)

Game, DNS (Domain Name System), SNMP (Simple Network Management Protocol), Remote Procedure Call (RPC), Lightweight Directory Access Protocol (LDAP)

Overhead*Digunakan untuk memaksimalkan performansi.Membutuhkan overhead yang lebih kecil.
Ukuran header20 byte8 byte
Pembuatan koneksiMembutuhkan three-way-handshake*.Tidak membutuhkan pembuatan koneksi.
Keandalan (reliability)Data terjamin akan sampai sesuai urutannya dan tidak ada data yang hilang (utuh).Tidak terjamin data akan sama persis dengan yang dikirimkan.
Besar paketDapat mengijinkan transfer dengan data yang besar per paketnya.Hanya mengijinkan transfer data untuk data kecil per paketnya.
KeamananMenawarkan keamanan yang lebih baik untuk spoofing attack.Tidak dapat menawarkan keamanan pada data yang dikirimkan.
Data flow control* Memiliki flow control. Tidak memiliki flow control.