Mohon tunggu...
Zulhan Dwi
Zulhan Dwi Mohon Tunggu... -

simpel

Selanjutnya

Tutup

Inovasi

TCP

16 Juni 2013   11:33 Diperbarui: 24 Juni 2015   11:57 2645
+
Laporkan Konten
Laporkan Akun
Kompasiana adalah platform blog. Konten ini menjadi tanggung jawab bloger dan tidak mewakili pandangan redaksi Kompas.
Lihat foto
Bagikan ide kreativitasmu dalam bentuk konten di Kompasiana | Sumber gambar: Freepik

TCP

Transmission Control Protocol (TCP) adalah salah satu protokol dari dua protokol inti dari Internet Protokol (IP), dan sangat umum sehingga paket tersebut sering disebut TCP/IP yang menyediakan kehandalan, memerintahkan, pemeriksaan kesalahan pengiriman aliran paket antara program yang berjalan pada komputer yang terhubungke intranet maupun internet. TCP berada pada layer transport. Browser menggunakannya ketika mereka terhubung ke server situs www, dan digunakan secara akurat dalam mengirimkan email dan mentransfer file dari satu lokasi lain. Aplikasi yang tidak memerlukan keandalan koneksi TCP sebaliknya dapat menggunakan connectionless user datagram protocol (UDP), yang menekankan operasi overhead rendah dan mengurangi latency daripada pengecekan eror dan vlidasi pengiriman. TCP didefinisikan dalam RFC 793.

Sifat dan fungsi protokol TCP.

TCP mempunyai karekteristik berorientasi sambungan (connecteion-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).

Menggunakan 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.

TCP dapat diandalkan (realiable) : 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.

TCP menggunakan 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.

TCP 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.

TCP melakukan segmentasi terhadap data yang datang dari lapisan aplikasi (dalam DARPA Reference Model).

TCP 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.

TCP Flag

Sebuah segmen TCP dapat memiliki flag (tanda-tanda) khusus yang mengindikasikan segmen yang bersangkutan, seperti berikut :

1.URG

Mengindikasikan bahwa beberapa bagian dari segmen TCP mengandung data yang sangat penting, dan field Urgent Pointer dalam header TCP harus digunakan untuk menentukan lokasi di mana data penting tersebut berada dalam segmen.

2.ACK

Mengindikasikan field Acknowledgment mengandung oktet selanjutnya yang diharapkan dalam koneksi. Flag ini selalu diset, kecuali pada segmen pertama pada pembuatan sesi koneksi TCP.

3.PSH

Mengindikasikan bahwa isi dari TCP Receive buffer harus diserahkan kepada protokol layer aplikasi. Data dalam receive buffer harus berisi sebuah blok data yang berurutan (kontinyu), dilihat dari ujung paling kiri dari buffer. Dengan kata lain, sebuah segmen yang memiliki flag PSH diset ke nilai 1, tidak boleh ada satu byte pun data yang hilang dari aliran byte segmen tersebut; data tidak dapat diberikan kepada protokol layer aplikasi hingga segmen yang hilang tersebut datang. Normalnya, TCP Receive buffer akan dikosongkan (dengan kata lain, isi dari buffer akan diteruskan kepada protokol layer aplikasi) ketika buffer tersebut berisi data yang kontinyu atau ketika dalam "proses perawatan".

4.RST

Mengindikasikan bahwa koneksi yang dibuat akan digagalkan. Untuk sebuah koneksi TCP yang sedang berjalan (aktif), sebuah segmen dengan flag RST diset ke nilai 1 akan dikirimkan sebagai respons terhadap sebuah segmen TCP yang diterima yang ternyata segmen tersebut bukan yang diminta, sehingga koneksi pun menjadi gagal.

5.SYN

Mengindikasikan bahwa segmen TCP yang bersangkutan mengandung Initial Sequence Number (ISN). Selama proses pembuatan sesi koneksi TCP, TCP akan mengirimkan sebuah segmen dengan flag SYN diset ke nilai 1. Setiap host TCP lainnya akan memberikan jawaban (acknowledgment) dari segmen dengan flag SYN tersebut dengan menganggap bahwa segmen tersebut merupakan sekumpulan byte dari data. Field Acknowledgment Number dari sebuah segmen SYN diatur ke nilai ISN + 1.

6.FIN

Menandakan bahwa pengirim segmen TCP telah selesai dalam mengirimkan data dalam sebuah koneksi TCP.

TCP Establishment

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. Proses TCP three-way handshake dapat dilihat pada gambar berikut.

1.Komputer client (yang ingin membuat koneksi) akan mengirimkan sebuah segmen TCP dengan flag SYN diaktifkan kepada server (yang hendak diajak untuk berkomunikasi).

2.Server akan meresponsnya dengan mengirimkan segmen dengan acknowledgment (ACK) dan juga SYN kepada komputer client.

3.Komputer client selanjutnya akan mulai saling bertukar data dengan server.

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.

Referensi Sumber :

http://en.wikipedia.org/wiki/Transmission_Control_Protocol

Pada percobaan kali ini, saya akan mencoba untuk menjelaskan dan menganalisa bahwa adanya permasalahan koneksi TCP handshake. Berikut merupakan gambar dari TCP handshake problem yang dicapture menggunakan aplikasi Wireshark.

TCP Handshake Problem

1371356600574596574
1371356600574596574

Terlihat pada gambar diatas, alamat IP 67.161.32.69 merupakan alamat IP client dan alamat IP 65.201.175.19 merupakan alamat IP server.

Frame 3 – 5 merupakan proses transfer data ketika client mengirimkan sebuah SYN, direspon oleh server dan server membalas dengan sebuah SYN,ACK yang diterima oleh client, dan terkahir client mengirimkan sebuah ACK yang menandakan bahwa data yang diterima client telah sampai.

Frame 6, terdapat info “combo-web-acc > rwhois [PSH, ACK] seq=1 ack=1... len=14”, menunjukkan bahwa client melakukan proses mengosongkan data yang menuju ke server. Frame 7, client mencoba mengosongkan kembali dengan melakukan retransmisi data menuju ke server.

Frame 8, terdapat info “rwhois > combo-web-acc [SYN, ACK] seq=0 ack=1... len=0”, menunjukkan bahwa alamat IP server telah merespon adanya permintaan pengosongan data yang dilakukan client saat client mengirimkan [PSH, ACK] menuju ke server.

Frame 9, terdapat info “[TCP dup ACK 7#1] combo-web-acc > rwhois [ACK] seq=15 ack=1... len=0”, menunjukkan bahwa client mengirimkan sebuah ACK menuju ke server.

Tetapi pada frame 10, client malah mengirimkan sebuah data dimana data tersebut malah berisi pesan yang ingin melakukan pengosongan data, dilihat pada info “[TCP Retransmission] combo-web-acc > rwhois [SYN, ACK] seq=1 ack=1... len=14”.

Pada permasalahan ini, normalnya data yang dikirimkan client menuju ke server tidak ada retransmission data karena dengan adanya itu maka terjadi suatu masalah dalam transmisi data. Ini dikarenakan client mengirimkan data dengan cara melakukan retransmission tetapi data yang dikirimkan kembali dari client malah memberikan permintaan untuk pengosongan data. Seharusnya client tidak melakukan sebuah pengiriman data dengan sebuah [PSH, ACK] dengan cara retransmission (trasmisi berulang), ini menunjukkan bahwa terdapat permasalahan dalam transmisi datanya ataupun data yang dikirimkan client itu salah. Idealnya dalam pentransmisian data seperti gambar berikut.

1371356629957153278
1371356629957153278

Alamat IP 12.234.13.89 meruapakan alamat IP client/source, dan alamat IP 128.121.70.151 merupakan alamat IP server/destination. Terakhir dalam pentransmisian data, diakhiri dengan sebuah [FIN, ACK] yang terlihat pada frame 69.

1371356648507818874
1371356648507818874

Mohon tunggu...

Lihat Inovasi Selengkapnya
Beri Komentar
Berkomentarlah secara bijaksana dan bertanggung jawab. Komentar sepenuhnya menjadi tanggung jawab komentator seperti diatur dalam UU ITE

Belum ada komentar. Jadilah yang pertama untuk memberikan komentar!
LAPORKAN KONTEN
Alasan
Laporkan Konten
Laporkan Akun