Monday 26 October 2009

Transmission Control Protocol (TCP)

TCP/IP TCP singkatan dari 'Transmission Control Protocol' dan hampir semua sistem operasi modern kompatibel dengan protocol ini. TCP adalah dasar dari koneksi, Hal ini berarti melakukan suatu koneksi langsung antara dua komputer untuk melakukan transfer data antara kedua host. Suatu paket mengandung header dan data gram, pada bagian header dari paket akan mengandung informasi penting tentang :

· Source Port

· Destination Port

· Sequence number

· Acknowledgement number

· Header Length (Standard 20 Bytes)

· Flags (syn, ack, psh, fin, rst, urg)

· Window size

· Checksum

· IP_v4 or IP_v6

· Header Length

· DSF

· Total Length

· Identification

· Flags (Set Fragment bit or not)

· Fragment Offset

· TTL

· Protocol (this case TCP)

· Header checksum

· Source IP

· Destination IP

Karakteristik TCP

TCP memiliki karakteristik sebagai berikut:

  • 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).
  • 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.
  • Dapat diandalkan (reliable): Data yang dikirimkan ke sebuah koneksi TCP akan diurutkan dengan sebuah nomor urut paket dan akan mengharapkan paket positive acknowledgment dari penerima. Jika tidak ada paket Acknowledgment dari penerima, maka segmen TCP (protocol data unit dalam protokol TCP) akan ditransmisikan ulang. Pada pihak penerima, segmen-segmen duplikat akan diabaikan dan segmen-segmen yang datang tidak sesuai dengan urutannya akan diletakkan di belakang untuk mengurutkan segmen-segmen TCP. Untuk menjamin integritas setiap segmen TCP, TCP mengimplementasikan penghitungan TCP Checksum.
  • Byte stream: TCP melihat data yang dikirimkan dan diterima melalui dua jalur masuk dan jalur keluar TCP sebagai sebuah byte stream yang berdekatan (kontigu). Nomor urut TCP dan nomor acknowlegment dalam setiap header TCP didefinisikan juga dalam bentuk byte. Meski demikian, TCP tidak mengetahui batasan pesan-pesan di dalam byte stream TCP tersebut. Untuk melakukannya, hal ini diserahkan kepada protokol lapisan aplikasi (dalam DARPA Reference Model), yang harus menerjemahkan byte stream TCP ke dalam "bahasa" yang ia pahami.
  • 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.
  • 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.

TCP umumnya digunakan ketika protokol lapisan aplikasi membutuhkan layanan transfer data yang bersifat andal, yang layanan tersebut tidak dimiliki oleh protokol lapisan aplikasi tersebut. Contoh dari protokol yang menggunakan TCP adalah HTTP dan FTP.


Daftar Pustaka

WIKIPEDIA

User Datagram Protocol (UDP)

UDP (User Datagram Protocol)

Adalah TCP yang connectionless. Hal ini berarti bahwa suatu paket yang dikirim melalui jaringan dan mencapai computer lain tanpa membuat suatu koneksi. Sehingga dalam perjalanan ke tujuan paket dapat hilang karena tidak ada koneksi langsung antara kedua host dalam jarigan yang menggunakan TCP/IP. Jadi UDP sifatnya tidak realibel, tetapi UDP lebih cepat dari pada TCP dalam mengirimkan suatu paket karena UDP tidak membutuhkan koneksi langsung.

Karakteristik UDP

UDP memiliki karakteristik – karakteristik berikut:

a. Connectionless (tanpa koneksi)

Pesan – pesan UDP akan dikirimkan tanpa harus dilakukan proses negosiasi koneksi antara dua host yang hendak bertukar informasi.

b. Unrealible (Tidak andal)

Pesan – pesan UDP akan dikirimkan sebagai datagram tanpa adanya nomor urut atau pesan acknowledgment. Protocol lapisan aplikasi yang berjalan di atas keandalannya mereka masing – masing, atau mengirim pesan secara periodic atau dengan menggunakan waktu yang telah didefinisikan.

c. UDP menyediakan mekanisme untuk mengirim pesan – pesan ke sebuah protocol lapisan aplikasi atau proses tertentu di dalam jaringan yang menggunakan TCP/IP. Header UDP berisi Field Source Process dan Destination Process Indentification.

d. UDP menyediakan perhitungan checksum berukuran 16 – bit terhadap keseluruhan pesan UDP.

UDP tidak menyediakan layanan – layanan antar host berikut:

a. UDP tidak menyediakan mekanisme penyanggaan (buffering) dari data yang masuk ataupun data yang keluar. Tugas buffering merupakan tugas yang harus diimplementasikan oleh protocol lapisan aplikasi yang berjalan di atas UDP.

b. UDP tidak menyediakan mekanisme segmentasi data yang besar ke dalam segmen – segmen data, seperti yang terjadi dalam protocol TCP. Karena itulah, protocol lapisan aplikasi yang berjalan di atas UDP harus mengirimkan data yang berukuran kecil (tidak lebih besar dari nilai Maksimum Transfer Unit / MTU) yang dimiliki oleh sebuah antarmuka di mna data tersebut dikirim. Karena, jika ukuran paket data yang dikirim lebih besar dibandingkan nilai MTU, paket data yang dikirimkan bias saja terpecah menjadi beberapa fragmen yang akhirnya tidak jadi terkirim dengan benar.

c. UDP tidak menyediakan mekanisme flow – control , seperti yang dimiliki TCP.

Penggunaan UDP

UDP sering digunakan dalam beberapa tugas berikut:

a. 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. Contoh dari protokol yang ringan adalah fungsi query nama dalam protokol lapisan aplikasi Domain Name System.

b. Protokol lapisan apliksi yang mengimplementasikan layanan keandalan.

Jika protokol lapisan aplikasi menyediakan layanan transfer data yang andal, maka kebutuhan terhadap keandalan yang ditawarkan oleh TCP pun menjadi tidak ada. Contoh dari protokol seperti ini adalah Trivial File Transfer Protocol (TFTP) dan Network File System (NFS).

c. Protokol yag tidak membutuhkan keandalan.

Contoh protokol ini adalah protokol Routing Information Protocol (RIP).

d. 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. Contoh: query nama dalam protokol NetBIOS Name Service.

Port UDP

Seperti halnya TCP, UDP juga memiliki saluran untuk mengirimkan informasi antar host, yang disebut dengan UDP Port. Untuk menggunakan protokol UDP, sebuah aplikasi harus menyediakan alamat IP dan nomor UDP Port dari host yang dituju. Sebuah UDP port berfungsi sebagai sebuah multiplexed message queue, yang berarti bahwa UDP port tersebut dapat menerima beberapa pesan secara sekaligus. Setiap port diidentifikasi dengan nomor yang unik, seperti halnya TCP, tetapi meskipun begitu, UDP Port berbeda dengan TCP Port meskipun memiliki nomor port yang sama. Tabel di bawah ini mendaftarkan beberapa UDP port yang telah dikenal secara luas.

Nomor Port UDP

Digunakan Oleh

53

Domain Name System (DNS) Name Query

67

BOOTP Client (Dynamic Host Configuration Protocol [DHCP])

68

BOOTP Server (DHCP)

69

Trivial File Transfer Protocol (TFTP)

137

NetBIOS Name Service

138

NetBIOS Datagram Service

161

Simple Network Management Protocol (SNMP)

445

Server Message Block (SMB)

520

Routing Information Protocol (RIP)

1812/1813

Remote Authentication Dial – in User Service (RADIUS)

Daftar Pustaka:
WIKIPEDIA