Rabu, 16 November 2011

Transmission Control Protocol

Transmission Control Protocol (TCP) adalah suatu protokol yang berada di lapisan transpor (baik itu dalam tujuh lapis model referensi OSIatau model DARPA) yang berorientasi sambungan (connection-oriented) dan dapat diandalkan (reliable). TCP dispesifikasikan dalam RFC 793.

Sejarah

Saat Vint Cerf dan Bob Kahn pertama menulis spesifikasi atas protokol ini tahun 1973, internet masih merupakan media yang dilarang untuk keperluan komersil.[1] Di bulan May 1974, IEEE mempublikasikan makalah berjudul "Protokol sebagai paket interkoneksi jaringan."[2]Sebagai penulis makalah tersebut, Cerf dan Kahn menjabarkan sebuah protokol interkoneksi untuk berbagi layanan dengan memanfaatkan pertukaran-paket antara node jaringan yang terhubung. Komponen pengontrol utama atas model ini disebut sebagai "Program pengontrol transmisi" yang menggabungkan baik tautan koneksi teriorientasi dan layanan datagram antar host. Program pengontrol transmisi monolitik ini kemudian dipecah ke dalam arsitektur modular yang terdiri atas Protokol pengontrol transmisi pada lapisan koneksi terorientasi danProtokol internet pada lapisan datagram. Model ini lah yang kemudian dikenal dengan istilah TCP/IP, meski secara formal istilah yang digunakan adalah Paket protokol internet.

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 streamyang 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" jaringaninternetwork 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.

Segmen TCP

Segmen-segmen TCP akan dikirimkan sebagai datagram-datagram IP (datagram merupakan satuan protocol data unit pada lapisaninternetwork). Sebuah segmen TCP terdiri atas sebuah header dan segmen data (payload), yang dienkapsulasi dengan menggunakan headerIP dari protokol IP.
Proses enkapsulasi data protokol TCP/IP: Data aplikasi + header TCP + header IP + header network interface (Ethernet, Token Ring, dll) + trailer network interface
Sebuah segmen dapat berukuran hingga 65495 byte: 216-(ukuran header IP terkecil (20 byte)+ukuran header TCP terkecil (20 byte)). Datagram IP tersebut akan dienkapsulasi lagi dengan menggunakan header protokol network interface (lapisan pertama dalam DARPA Reference Model) menjadi framelapisan Network Interface. Gambar berikut mengilustrasikan data yang dikirimkan ke sebuah host.
Di dalam header IP dari sebuah segmen TCP, field Source IP Address diatur menjadi alamat unicastdari sebuah antarmuka host yang mengirimkan segmen TCP yang bersangkutan. Sementara itu, fieldDestination IP Address juga akan diatur menjadi alamat unicast dari sebuah antarmuka host tertentu yang dituju. Hal ini dikarenakan, protokol TCP hanya mendukung transmisi one-to-one.

0 komentar:

Posting Komentar