Tinjauan Keseluruhan Algoritma Nagle untuk Komunikasi Rangkaian TCP

Isi kandungan:

Tinjauan Keseluruhan Algoritma Nagle untuk Komunikasi Rangkaian TCP
Tinjauan Keseluruhan Algoritma Nagle untuk Komunikasi Rangkaian TCP
Anonim

Algoritma Nagle, dinamakan sempena jurutera John Nagle, direka untuk mengurangkan kesesakan rangkaian yang disebabkan oleh masalah paket kecil dengan aplikasi TCP. Pelaksanaan UNIX mula menggunakan algoritma Nagle pada tahun 1980-an dan ia kekal sebagai ciri standard TCP hari ini.

Cara Algoritma Nagle Berfungsi

Algoritma Nagle memproses data pada bahagian penghantaran aplikasi TCP melalui kaedah yang dipanggil nagling. Ia mengesan mesej bersaiz kecil dan mengumpul mesej tersebut ke dalam paket TCP yang lebih besar sebelum menghantar data merentasi wayar. Proses ini mengelakkan penjanaan sejumlah besar paket kecil yang tidak diperlukan.

Spesifikasi teknikal untuk algoritma Nagle diterbitkan pada tahun 1984 sebagai RFC 896. Keputusan untuk jumlah data terkumpul dan tempoh menunggu antara penghantaran adalah penting untuk prestasi keseluruhannya.

Faedah Mengling

Nagling boleh menggunakan lebar jalur sambungan rangkaian dengan cekap dengan mengorbankan penambahan kelewatan atau kependaman. Contoh yang diterangkan dalam RFC 896 menggambarkan potensi manfaat lebar jalur dan sebab penciptaannya:

  • Jika aplikasi TCP yang memintas ketukan kekunci papan kekunci ingin menyampaikan setiap aksara yang ditaip kepada penerima, ia boleh menjana satu siri mesej, setiap satu mengandungi 1 bait data.
  • Sebelum mesej ini boleh dihantar ke seluruh rangkaian, setiap satu mesti dibungkus dengan maklumat pengepala TCP seperti yang diperlukan oleh TCP/IP. Setiap pengepala mempunyai saiz antara 20 dan 60 bait.
  • Tanpa mengomel, aplikasi contoh ini akan menjana mesej rangkaian yang terdiri daripada 95 peratus atau lebih maklumat pengepala (sekurang-kurangnya 20 daripada 21 bait) dan 5 peratus atau kurang data sebenar daripada papan kekunci penghantar. Menggunakan algoritma Nagle, data yang sama boleh dihantar menggunakan lebih sedikit mesej, menghasilkan penjimatan lebar jalur yang besar.

Applications mengawal penggunaannya terhadap algoritma Nagle dengan pilihan pengaturcaraan soket TCP_NODELA. Sistem Windows, Linux dan Java biasanya mendayakan Nagle secara lalai. Oleh itu, aplikasi yang ditulis untuk persekitaran tersebut perlu menentukan TCP_NODELAY untuk mematikan algoritma.

Image
Image

Limitation

Aplikasi yang memerlukan respons rangkaian pantas, seperti panggilan video dan permainan dalam talian, mungkin tidak berfungsi dengan baik apabila Nagle didayakan. Kelewatan yang disebabkan semasa algoritma mengambil masa tambahan untuk mengumpulkan sebahagian kecil data boleh mencetuskan ketinggalan yang ketara secara visual pada skrin atau dalam aliran audio digital. Aplikasi sedemikian biasanya melumpuhkan Nagle.

Algoritma ini pada asalnya dibangunkan pada masa rangkaian komputer menyokong jalur lebar yang kurang daripada yang mereka lakukan hari ini. Contoh yang diterangkan di atas adalah berdasarkan pengalaman John Nagle di Ford Aerospace pada awal 1980-an, di mana pengorbanan yang membingungkan pada rangkaian jarak jauh Ford yang perlahan, sarat muatan, masuk akal. Terdapat semakin kurang situasi hari ini di mana aplikasi rangkaian boleh mendapat manfaat daripada algoritmanya.

Algoritma Nagle hanya boleh digunakan dengan TCP. Protokol lain, seperti UDP, tidak menyokongnya.

Disyorkan: