Transmission Control Protocol
Transmission Control Protocol (TCP) adalah suatu protokol yang berada di lapisan transport (baik itu dalam tujuh lapis model referensi OSI atau model DARPA) yang berorientasi sambungan ("connection-oriented") dan dapat diandalkan ("reliable"). TCP dispesifikasikan dalam RFC 793.
Saat Vint Cerf dan Bob Kahn pertama menulis spesifikasi atas protokol ini tahun 1973, internet masih merupakan media yang dilarang untuk keperluan komersil. Di bulan May 1974, IEEE mempublikasikan makalah berjudul ""Protokol sebagai paket interkoneksi jaringan."" 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 dan "Protokol internet" pada lapisan datagram. Model ini lah yang kemudian dikenal dengan istilah "TCP/IP", meski secara formal istilah yang digunakan adalah "Paket protokol internet".
TCP memiliki karakteristik sebagai berikut:
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-segmen TCP akan dikirimkan sebagai datagram-datagram IP (datagram merupakan satuan protocol data unit pada lapisan "internetwork"). Sebuah segmen TCP terdiri atas sebuah "header" dan segmen data ("payload"), yang dienkapsulasi dengan menggunakan "header" IP dari protokol IP.
Sebuah segmen dapat berukuran hingga 65495 byte: 2-(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 frame lapisan 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 "unicast" dari sebuah antarmuka host yang mengirimkan segmen TCP yang bersangkutan. Sementara itu, field Destination 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".
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.
Port TCP mampu mengindikasikan sebuah lokasi tertentu untuk menyampaikan segmen-segmen TCP yang dikirimkan yang diidentifikasi dengan TCP Port Number. Nomor-nomor di bawah angka 1024 merupakan port yang umum digunakan dan ditetapkan oleh [[IANA|IANaplikasi, sementara port UDP merepresentasikan sebuah antrean pesan UDP untuk protokol lapisan aplikasi. Selain itu, protokol lapisan aplikasi yang menggunakan port TCP dan port UDP dalam nomor yang sama juga tidak harus sama. Sebagai contoh protokol [[Extended Filename Server]] (EFS) menggunakan port TCP dengan nomor 520, dan protokol [[Routing Information Protocol]] (RIP) menggunakan port UDP juga dengan nomor 520. Jelas, dua protokol tersebut sangatlah berbeda! Karenanya, untuk menyebutkan sebuah nomor port, sebutkan juga jenis port yang digunakannya, karena hal tersebut mampu membingungkan (ambigu).
Lihat juga [[Port TCP dan UDP]]
Sebuah segmen TCP dapat memiliki flag (tanda-tanda) khusus yang mengindikasikan segmen yang bersangkutan, seperti yang disebutkan dalam tabel berikut:
[[Berkas:Flag_TCP.png|jmpl|ka|200px|Struktur flag-flag TCP]]
[[Berkas:TCP_Three_Way_Handshake.png|jmpl|ka|200px|Proses pembuatan koneksi (TCP Three way handshake)]]
Proses pembuatan koneksi TCP disebut juga dengan "Three-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 dapat digambarkan sebagai berikut:
TCP menggunakan proses jabat tangan yang sama untuk mengakhiri koneksi yang dibuat. Hal ini menjamin dua "host" yang sedang terkoneksi tersebut telah menyelesaikan proses transmisi data dan semua data yang ditransmisikan telah diterima dengan baik. Itulah sebabnya, mengapa TCP disebut dengan koneksi yang "reliable"..
[[Kategori:Protokol lapisan transpor]]
[[Kategori:Protokol Internet]]