Bagikan melalui


Karakteristik TCP/IP

TCP/IP memiliki karakteristik yang memungkinkan protokol beroperasi sebagai persyaratan implementasi standarnya menentukan. Karakteristik ini dapat dikombinasikan dengan pilihan pengembangan yang menghasilkan performa yang buruk. Dampak karakteristik TCP/IP ini pada aplikasi bergantung pada apakah aplikasi tersebut transaksional atau streaming.

Aplikasi transaksi dipengaruhi oleh overhead yang diperlukan untuk pembentukan dan penghentian koneksi. Misalnya, setiap kali koneksi dibuat pada jaringan Ethernet, tiga paket masing-masing sekitar 60 byte harus dikirim, dan sekitar satu RTT diperlukan untuk pertukaran. Ketika penghentian koneksi terjadi, empat paket ditukar. Ini untuk setiap koneksi; aplikasi yang membuka dan menutup koneksi sering menimbulkan overhead ini pada setiap kejadian.

Aspek lain dari TCP/IP adalah slow-start, yang terjadi setiap kali koneksi dibuat. Permulaan lambat adalah batas buatan pada jumlah segmen data yang dapat dikirim sebelum pengakuan segmen tersebut diterima. Mulai lambat dirancang untuk membatasi kemacetan jaringan. Ketika koneksi melalui Ethernet dibuat, terlepas dari ukuran jendela penerima, transmisi 4 KB dapat memakan waktu hingga 3-4 RTT karena mulai lambat.

Pengoptimalan TCP/IP yang disebut Algoritma Nagle juga dapat membatasi kecepatan transfer data pada koneksi. Algoritma Nagle dirancang untuk mengurangi overhead protokol untuk aplikasi yang mengirim sejumlah kecil data, seperti Telnet, yang mengirim satu karakter sekaligus. Daripada segera mengirim paket dengan banyak header dan sedikit data, tumpukan menunggu lebih banyak data dari aplikasi, atau pengakuan, sebelum melanjutkan.

Pengakuan tertunda, yang umumnya disebut sebagai ACK tertunda, juga dirancang ke dalam TCP/IP untuk memungkinkan dukungan pengakuan yang lebih efisien ketika data kembali akan datang dari aplikasi samping penerimaan. Sayangnya, jika data ini tidak akan datang dan sisi pengiriman menunggu pengakuan, penundaan sekitar 200 milidetik per pengiriman dapat terjadi.

Ketika koneksi TCP ditutup, sumber daya koneksi pada simpul yang memulai penutupan dimasukkan ke dalam status tunggu, yang disebut TIME-WAIT, untuk melindungi dari kerusakan data jika paket duplikat yang ada di jaringan. Ini memastikan kedua ujung selesai dengan koneksi. Ini dapat menyebabkan penipisan sumber daya yang diperlukan per koneksi, seperti RAM dan port, ketika aplikasi sering membuka dan menutup koneksi.

Selain dipengaruhi oleh ACK yang tertunda dan skema penghindarian kemacetan lainnya, aplikasi streaming juga dapat dipengaruhi oleh ukuran jendela terima default yang terlalu kecil di ujung penerima.

Perilaku Aplikasi

Aplikasi Windows Sockets berkinerja tinggi

Algoritma Nagle