Ikhtisar Algoritma Nagle untuk Komunikasi Jaringan TCP

Daftar Isi:

Ikhtisar Algoritma Nagle untuk Komunikasi Jaringan TCP
Ikhtisar Algoritma Nagle untuk Komunikasi Jaringan TCP
Anonim

Algoritme Nagle, dinamai menurut nama insinyur John Nagle, dirancang untuk mengurangi kemacetan jaringan yang disebabkan oleh masalah paket kecil dengan aplikasi TCP. Implementasi UNIX mulai menggunakan algoritma Nagle pada 1980-an, dan itu tetap menjadi fitur standar TCP saat ini.

Cara Kerja Algoritma Nagle

Algoritme Nagle memproses data di sisi pengiriman aplikasi TCP dengan metode yang disebut nagling. Ini mendeteksi pesan berukuran kecil dan mengakumulasikan pesan-pesan itu ke dalam paket TCP yang lebih besar sebelum mengirim data melalui kabel. Proses ini menghindari pembuatan sejumlah besar paket kecil yang tidak perlu.

Spesifikasi teknis untuk algoritme Nagle diterbitkan pada tahun 1984 sebagai RFC 896. Keputusan tentang berapa banyak data yang akan dikumpulkan dan berapa lama menunggu antar pengiriman sangat penting untuk kinerja keseluruhannya.

Manfaat Mengomel

Nagling dapat secara efisien memanfaatkan bandwidth koneksi jaringan dengan mengorbankan penambahan penundaan, atau latensi. Contoh yang dijelaskan dalam RFC 896 menggambarkan potensi manfaat bandwidth dan alasan pembuatannya:

  • Jika aplikasi TCP yang mencegat penekanan tombol keyboard ingin mengomunikasikan setiap karakter yang diketik ke penerima, aplikasi tersebut dapat menghasilkan serangkaian pesan, masing-masing berisi 1 byte data.
  • Sebelum pesan ini dapat dikirim melalui jaringan, setiap pesan harus dikemas dengan informasi header TCP seperti yang disyaratkan oleh TCP/IP. Setiap header memiliki ukuran antara 20 dan 60 byte.
  • Tanpa mengganggu, aplikasi contoh ini akan menghasilkan pesan jaringan yang terdiri dari 95 persen atau lebih informasi header (setidaknya 20 dari 21 byte) dan 5 persen atau kurang data aktual dari keyboard pengirim. Menggunakan algoritme Nagle, data yang sama dapat dikirimkan menggunakan lebih sedikit pesan, sehingga menghemat bandwidth yang besar.

Aplikasi mengontrol penggunaan algoritma Nagle dengan opsi pemrograman soket TCP_NODELA. Sistem Windows, Linux, dan Java biasanya mengaktifkan Nagle secara default. Oleh karena itu, aplikasi yang ditulis untuk lingkungan tersebut perlu menentukan TCP_NODELAY untuk menonaktifkan algoritme.

Image
Image

Keterbatasan

Aplikasi yang memerlukan respons jaringan cepat, seperti panggilan video dan game online, mungkin tidak berfungsi dengan baik saat Nagle diaktifkan. Penundaan yang disebabkan saat algoritme membutuhkan waktu ekstra untuk mengumpulkan potongan data yang lebih kecil dapat memicu kelambatan yang terlihat secara visual di layar atau dalam aliran audio digital. Aplikasi semacam itu biasanya menonaktifkan Nagle.

Algoritme ini awalnya dikembangkan pada saat jaringan komputer mendukung bandwidth lebih sedikit daripada yang mereka lakukan saat ini. Contoh yang dijelaskan di atas didasarkan pada pengalaman John Nagle di Ford Aerospace pada awal 1980-an, di mana kompromi yang mengganggu pada jaringan jarak jauh Ford yang lambat, bermuatan berat, masuk akal. Saat ini semakin sedikit situasi di mana aplikasi jaringan dapat mengambil manfaat dari algoritmenya.

Algoritme Nagle hanya dapat digunakan dengan TCP. Protokol lain, seperti UDP, tidak mendukungnya.

Direkomendasikan: