TCP adalah suatu protokol yang berorientasi koneksi artinya sebelum setiap data dapat dikirim , kedua end point harus membangun suatu koneksi dengan pengiriman paket kontrol bolak-balik. ketika koneksi tida diperlukan lagi, koneksi dapat ditutup oleh aplikasi. Suatu sistem komunikasi data yang kompleks tidak menggunakan sebuah protokol saja untuk menangani seluruh proses dan pemasalahan transfer data melainkan menggunakan sekumpulan protokol yang saling bekerja sama tapi sifatnya independent satu sama lain. Sekumpulan protokol ini disebut protocol suite, contohnya TCP TCP/IP terdiri dari 4 layer dan dapat digambarkan seperti Gambar di bawah ini
a. Application Layer
Lapisan ini berisikan logik yang dibutuhkan untuk mendukung berbagai aplikasi user. Dalam layer yang paling atas ini, user memanggil program aplikasi yang memanfaatkan servis yang tersedia dalam TCP/IP. Simple Mail Transfer Protocol (SMTP), merupakan salah satu contoh protokol standar untuk e-mail yang ada di layer ini. Setiap aplikasi memiliki ukuran yang berbeda. Ukuran dari masing-masing aplikasi tersebut dapat dilihat pada Tabel dibawah ini
b. Transport Layer
Tugas utama dari Transport Layer adalah menyediakan komunikasi dari suatu program aplikasi di sebuah sumber dengan program aplikasi di sisi tujuan. Layer ini juga untuk memastikan bahwa seluruh data tiba di aplikasi tujuan dan sesuai dengan data yang dikirim. TCP adalah protokol yang bertanggung jawab atas fungsi ini. Selain itu Transport Layer juga mengatur kecepatan pengiriman paket dari komputer sumber ke komputer tujuan.
c. Internet Layer
Layer ini mengatur komunikasi data yang akan melewati berbagai macam kondisi jaringan (jaringan yang berbeda-beda) yang dihubungkan melalui router. Router adalah suatu prosesor yang menghubungkan dua jaringan dan fungsi utamanya adalah untuk me-relay data dari suatu jaringan ke jaringan yang lain pada jalurnya mulai dari sumber ke ujung sistem tujuan. PDU pada Internet Protocol disebut IP Datagram atau Datagram.IP akan menerima segment atau user datagram yang dikirimkan oleh Transport Layer dan memasukkan segment atau user datagram itu ke dalam IP datagram kemudian mengirimkannya ke komputer tujuan.
d. Network Access Layer
Sebuah Network Access Layer dalam konsep layer TCP/IP ini bertugas menerima IP datagram dari Internet Layer, kemudian memasukkan IP datagram itu ke frame dan mengirimkannya melalui Physical Layer. Demikian juga Network Access Layer bertugas untuk mengirimkan IP datagram yang dating melalui Physical Layer ke Internet Layer. Wide Area Network (WAN), Local Area Network (LAN), serta ISDN merupakan beberapa contoh teknologi pada layer ini.
e. Physical Layer
Lapisan fisik meliputi interface fisik antara suatu perangkat transmisi data (misal, komputer) dengan sebuah media transmisi atau jaringan. Lapisan ini berkaitan dengan karakteristik khusus dari media transmisi, sifat sinyal, rate data, dan lain-lain.
Parameter kinerja jaringan TCP
Beberapa parameter yang dijadikan referensi umum untuk dapat melihat performansi dari jaringan TCP adalah seperti : Throughput, Paket loss dan Delay.
• Throughput
Throughput adalah kecepatan rata-rata data yang diterima oleh suatu suatu node dalam selang waktu pengamatan tertentu. Nilai throughput ini dipengaruhi oleh delay dan packet loss yang terjadi. dimana :
A = Jumlah paket yang diterima dengan benar
T = Waktu pengamatan (second)
Ps = Packet size (byte
• Paket Loss / Kongesti
Paket loss didefinisikan sebagai kegagalan transmisi paket IP mencapai tujuannya. Kegagalan paket tersebut mencapai tujuan, dapat disebabkan oleh beberapa kemungkinan, seperti :
a.Terjadinya overload trafik pada jaringan
b.Tabrakan (congestion) pada jaringan
c.Error yang terjadi pada media fisik
Untuk menghitung loss digunakan persamaan di bawah ini
dimana: A = Jumlah paket yang dikirim
B = Jumlah paket yang diterima
• Delay
Delay adalah waktu tunda yang disebabkan oleh proses transmisi dari satu titik ke titik lain yang menjadi tujuannya. Delay dalam jaringan TCP/IP dapat digolongkan sebagai berikut :
a.Packetization Delay
Delay yang disebabkan oleh waktu yang diperlukan untuk proses pembentukan paket IP dari infomasi user. Delay ini hanya terjadi sekali, yaitu di source informasi.
b. Queuing Delay
Delay ini disebabkan oleh waktu proses yang diperlukan oleh router didalam menangani antrian transmisi paket di sepanjang jaringan. Umumnya delay ini sangat kecil , kurang lebih 100 micro second.
c. Delay Propagasi
Proses perjalanan informasi selama didalam media transmisi, misalnya SDH, coax atau tembaga, menyebabkan delay yang disebut dengan delay propagasi.
d. Transmission Delay
Transmission Delay adalah waktu yang diperlukan sebuah paket data untuk melintasi suatu media. Transmission delay ditentukan oleh kecepatan media dan besar paket data.
e. Processing delay
Processing delay adalah waktu yang diperlukan oleh suatu perangkat jaringan untuk melihat rute, mengubah header, dan tugas switching lainnya.
TCP Reno
TCP Reno adalah pengembangan dari TCP yang sudah ada (TCP yang telah di modifikasi). Reno didefinisikan sebagai TCP yang berisi algoritma yang dijelaskan dalam RFC 2001 [Ste97]. Algoritma ini disebut juga dengan Agoritma Kendali Kongesti TCP yang terdiri dari: slow start, fast retransmit dan fast recovery, dan congestion avoidance.
a. Algoritma Slow Start
Slow start mengizinkan TCP memeriksa kondisi jaringan dengan menaikkan secara perlahan data yang diinjeksikan ke dalam network. Algoritma slow start menggunakan congestion window, untuk mengontrol flow data. Cwnd diinisialisasi ke satu segmen, biasanya 512 bytes. Prinsip slow start sederhana, bahwa untuk setiap ACK yang diterima, menambahkan satu segmen ke cwnd. Proses slow start dapat dilihat pada Gambar dibawah
Pengirim dapat mengirim congestion windows minimum, atau ssthresh. Ssthresh diinisialisasi ke window yag diperlihatkan penerima. Saat cwnd lebih besar atau sama dengan nilai ssthresh, koneksi memasuki fase congestion avoidance. Jika kapasitas jaringan dapat dipenuhi sebelum cwnd lebih besar dari ssthresh, maka gateway akan memberi sinyal kongesti dengan membuang segmen dan TCP akan memasuki fase retransmit setelah tiga ACK duplikat.
b. Congestion Avoidance
Jalur bottleneck dapat terjadi saat saluran besar terhubung ke saluran kecil. Kongesti terjadi saat volume segmen dapat melampaui buffer space gateway. Gateway akan terus membuang segmen sampai buffer space tersedia. Proses ini memberi sinyal kongesti pada koneksi TCP melalui ACK duplikat atau retransmission timeout. Saat kongesti terjadi, koneksi melakukan recovery lalu memasuki congestion avoidance. Jika retransmission timeout terjadi, cwnd diset ke satu MSS. Saat cwnd > ssthresh, fase slow start selesai, dan congestion avoidance mengambil alih. Saat fase congestion avoidance, cwnd tidak akan pernah dipecah lebih dari satu segmen per RTT, jika semua segmen dalam window telah di-ACK. Ini merupakan laju pertumbuhan linear bila dibandingkan dengan laju pertumbuhan eksponensial slow start.
c. Fast Retransmit dan Fast Recovery
RTO terjadi karena mendeteksi lost segment dalam TCP. Saat timeout terjadi, TCP akan kembali kepada fase slow start dan retransmit segmen yang lost. Ini menimbulkan retransmisi yang tidak perlu dari segmen out-of-order yang diterima, yang sedang disimpan di buffer receiver. Jacobson mengajukan fase fast retransmit dan kembali ke slow start. Fast retransmit terjadi bila tiga ACK duplikat memicu retransmisi paket yang hilang.
Prinsip kerja dari fast retransmit adalah bahwa kebanyakan segmen out-of-order akan muncul setelah satu atau dua segmen. Setelah tiga ACK duplikat, telah aman jika diasumsikan segmen telah hilang. Jika pengirim sedang menerima ACK duplikat, maka data yang sedang melalui jaringan dan kembali ke slow start tidak dibutuhkan, sehingga fast recovery dapat dilakukan. Setelah tiga ACK duplikat, pengirim akan men-set ssthresh menjadi 2 1 1 cwnd yang meruntut turun ke banyak MSS yang terdekat. Cwnd diset sama dengan sthresh ditambah tiga MSS ( 2 1 1 cwnd ditambah tiga segmen yang diterima yang telah meninggalkan jaringan).
Cwnd akan di-update dengan satu MSS untuk setiap ACK duplikat tambahan yang diterima. Jika cwnd mengijinkan, pengirim akan mentransmit segmen baru kedalam jaringan. Segmen baru ini akan memicu ACK tambahan yang mungkin mengijinkan fase fast retransmit lainnya jika segmen tambahan telah hilang. Bila sepotong data baru di ACK, congestion window di set sama dengan ssthresh. Pengirim kemudian memasuki fasa congestion avoidance Proses fast retransmit ini dapat dilihat pada Gambar dibawah ini
TCP SACK
TCP dengan Selective Acknowledgement (SACK), dispesifikasikan dalam RFC 2018 [MMFR96a], didesain untuk menyediakan informasi kehilangan banyak segmen dalam jendela data. Receiver data menggunakan pilihan SACK untuk menginformasikan pengirim tentang semua segmen yang berhasil diterima yang belum di ACK secara kumulatif. Pengirim menggunakan informasi yang di SACK untuk mentransmit ulang hanya segmen yang hilang. Pengirim dan penerima harus menjalankan implementasi TCP dengan SACK untuk menggunakan opsi SACK.
Kompatibilitas SACK diverifikasi dalam tiga cara handshake TCP dengan opsi Sack-Permitted. Opsi ini memelihara kompatibilitas dengan versi yang lebih tua dari TCP. TCP dengan Sack mengirim SACK-Permitted dalam segmen SYN saat inisialisasi koneksi. Receiver harus menjawab dengan opsi Sack-Permitted tidak ditemukan saat menjawab SYN, opsi SACK tidak akan digunakan selama koneksi. Jika segmen SYN jawabannya berisi opsi Sack-Permitted, maka kedua koneksi mampu mengirim opsi SACK pada koneksi tersebut. Opsi SACK dikirim oleh data receiver untuk menginformasikan pengirim data dari blok data non-contigous (yang tidak berdekatan), yang telah diantrikan di buffer terima receiver dalam window. Opsi SACK harus dimasukkan dalam semua ACK yang tidak mengacknowledge urutan angka tertingi yang diterima receiver. Sebuah blok SACK harus memasukkan data yang baru saja diterima dalam blok SACK pertama. Blok data SACK mengijinkan pengirim untuk retransmit hanya segmen yang hilang dalam fast retransmit dan fase fast recovery dari TCP. Header TCP dibatasi 64 bytes, tergantung pada jumlah opsi TCP, satu, dua, atau tiga blok SACK yang cocok dalam segmen. Daftar dari data outstanding yang diterima yang diambil dari blok SACK receiver yang disimpan dalam struktur data scoreboard. Pengirim dapat menggunakan scoreboard untuk menempatkan segmen yang telah hilang dan butuh di-retransmit.
Sumber :http://www.ittelkom.ac.id/library/index.php?view=article&catid=10%3Ajaringan&id=278%3A-tcp&option=com_content&Itemid=15