Protokol Kontrol Transmisi: Perbedaan antara revisi
Konten dihapus Konten ditambahkan
Fitur saranan suntingan: 1 pranala ditambahkan. |
|||
(44 revisi perantara oleh 26 pengguna tidak ditampilkan) | |||
Baris 1:
'''Protokol Kendali Transmisi''' atau '''''Transmission Control
==
Saat [[Vinton G. Cerf|Vint Cerf]] dan Bob Kahn pertama menulis spesifikasi atas protokol ini tahun 1973, internet masih merupakan media yang dilarang untuk keperluan
▲[[File:TCP state diagram.png|thumb|272x272px|]]
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
== Karakteristik TCP ==
Baris 14 ⟶ 12:
* Dapat diandalkan (''reliable''): Data yang dikirimkan ke sebuah koneksi TCP akan diurutkan dengan sebuah nomor urut paket dan akan mengharapkan paket ''[[ACK|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''.
Baris 21 ⟶ 19:
== Segmen TCP ==
Segmen-segmen TCP akan dikirimkan sebagai datagram-datagram IP (datagram merupakan satuan [[protocol data unit]] pada [[DARPA Reference Model|lapisan ''internetwork'']]). Sebuah segmen TCP terdiri atas sebuah ''header'' dan segmen data (''payload''), yang dienkapsulasi dengan menggunakan ''header'' IP dari protokol IP.
[[Berkas:Segmen_TCP.png|
Sebuah segmen dapat berukuran hingga 65495 [[byte]]: 2<sup>16</sup>-(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]] [[DARPA Reference Model|lapisan Network Interface]]. Gambar berikut mengilustrasikan data yang dikirimkan ke sebuah host.
Baris 29 ⟶ 27:
== Header TCP ==
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.
[[Berkas:Format_Header_TCP.png|
{| class="wikitable"
|-
Baris 89 ⟶ 87:
== TCP Flag ==
Sebuah segmen TCP dapat memiliki flag (tanda-tanda) khusus yang mengindikasikan segmen yang bersangkutan, seperti yang disebutkan dalam tabel berikut:
[[Berkas:Flag_TCP.png|
{| class="wikitable"
Baris 117 ⟶ 115:
=== TCP Three-way handshake ===
[[Berkas:TCP_Three_Way_Handshake.png|
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:
* ''Host'' pertama (yang ingin membuat koneksi) akan mengirimkan sebuah segmen TCP dengan flag SYN diaktifkan kepada ''host'' kedua (yang hendak diajak untuk berkomunikasi).
Baris 125 ⟶ 123:
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''..
==
{{refbegin}}
* [[W. Richard Stevens]]. TCP/IP Illustrated, Volume 1: The Protocols. ISBN 0-201-63346-9
Baris 133 ⟶ 131:
{{reflist}}
== Pranala luar ==
* RFC 675 - Specification of Internet Transmission Control Program, December 1974 Version
* RFC 793 - TCP v4
Baris 144 ⟶ 142:
* RFC 4614 - A Roadmap for TCP Specification Documents
* RFC 5681 - TCP Congestion Control
* [http://www.cbi.umn.edu/oh/display.phtml?id=119 Oral history interview with Robert E. Kahn], [[Charles Babbage Institute]], University of Minnesota, Minneapolis.
* [http://www.iana.org/assignments/port-numbers IANA Port Assignments]
* [http://condor.depaul.edu/~jkristof/technotes/tcp.html John Kristoff's Overview of TCP (Fundamental concepts behind TCP and how it is used to transport data between two endpoints)]
* [http://www.visualland.net/tcp_histrory.php?simu=tcp_fast_retransmit&protocol=TCP&title=4.%20Fast%20transmit&ctype=1 TCP fast retransmit simulation animated: slow start, sliding window, duplicated Ack, congestion window]{{Pranala mati|date=November 2021 |bot=InternetArchiveBot |fix-attempted=yes }}
* [http://www.networksorcery.com/enp/protocol/tcp.htm TCP, Transmission Control Protocol] {{Webarchive|url=https://web.archive.org/web/20151114060758/http://www.networksorcery.com/enp/protocol/tcp.htm |date=2015-11-14 }}
* [http://mathforum.org/library/drmath/view/54379.html Checksum example]
* [http://www.ilmondodelletelecomunicazioni.it/english/telematics/protocols.html Engineer Francesco Buffa's page about Transmission Control Protocol] {{Webarchive|url=https://web.archive.org/web/20110312114242/http://www.ilmondodelletelecomunicazioni.it/english/telematics/protocols.html |date=2011-03-12 }}
* [http://www.ssfnet.org/Exchange/tcp/tcpTutorialNotes.html TCP tutorial] {{Webarchive|url=https://web.archive.org/web/20181018160117/http://www.ssfnet.org/Exchange/tcp/tcpTutorialNotes.html |date=2018-10-18 }}
* [http://www.linktionary.com/s/segment_tcp.html Linktionary on TCP segments] {{Webarchive|url=https://web.archive.org/web/20181106144039/http://www.linktionary.com/s/segment_tcp.html |date=2018-11-06 }}
* [http://www.visualland.net/tcp_histrory.php?simu=tcp_swnd&protocol=TCP&title=2.Sliding%20Window&ctype=1 TCP Sliding Window simulation animated (ns2)]{{Pranala mati|date=November 2021 |bot=InternetArchiveBot |fix-attempted=yes }}
* [http://inl.info.ucl.ac.be/mptcp Multipath TCP in Linux kernel] {{Webarchive|url=https://web.archive.org/web/20110731204409/http://inl.info.ucl.ac.be/mptcp |date=2011-07-31 }}
[[Kategori:Protokol lapisan transpor]]
|