ინჟინერ ჯონ ნაგლის სახელით დასახელებული ნაგელ ალგორითმი მიზნად ისახავს ქსელის შეშუპების შემცირებას "პატარა პაკეტის პრობლემების" გამოყენებით TCP- ის პროგრამებით . UNIX- ის განხორციელება 1980-იან წლებში Nagle- ის ალგორითმის გამოყენებით დაიწყო და დღეს TCP- ის სტანდარტული ფუნქცია რჩება.
როგორ მუშაობს ნაღელ ალგორითმი
Nagle- ს ალგორითმი აწარმოებს TCP- ის გაგზავნის მხარეს მონაცემებს, რომელსაც ეწოდება nagling . იგი ადგენს მცირე ზომის შეტყობინებებს და აგროვებს მათ უფრო დიდ TCP პაკეტებს, ვიდრე მავთულხლართებს გადასცემენ მონაცემებს, რითაც თავიდან აცილება მცირე პაკეტების უმეტეს რაოდენობას. Nagle- ის ალგორითმის ტექნიკური დაზუსტება გამოქვეყნდა 1984 წელს, როგორც RFC 896. გადაწყვეტილებების მიღებასთან დაკავშირებული ბევრი გადაწყვეტილების მიღება და რამდენი ხანი უნდა დაელოდოთ მის მიერ შესრულებული სამუშაოს კრიტიკას.
Nagling შეიძლება უფრო ეფექტურად გამოიყენოს სიჩქარის ქსელის კავშირი ხარჯების დაგვიანებით ( შეყოვნება ). RFC 896- ში აღწერილი მაგალითი გვიჩვენებს პოტენციური გამტარუნარიანობის სარგებელს და მისი შექმნის მიზეზს:
- TCP აპლიკაცია, რომელიც უკავშირებს კლავიატურა კლავიატურას და სურს მიიღოს კომუნიკაციის თითოეული ხასიათი მიმდინარეობს აკრეფილი მიმღები, შეუძლია გენერირება სერია შეტყობინებები თითოეული შემცველი 1 byte მონაცემები.
- სანამ ეს შეტყობინებები შეიძლება გაიგზავნოს მთელს ქსელში, თითოეული უნდა დაკომპლექტდეს TCP- ს სათაურთან ერთად, როგორც ეს მოითხოვს TCP / IP- ს. თითოეული ჰედერი მერყეობს 20 და 60 ბაიტზე.
- გაურკვეველია, ეს მაგალითი აპლიკაციის გენერირებას მოახდენს ქსელის შეტყობინებების 95% ან მეტი სათაურების შესახებ (სულ 21-დან 20 ბაიტიდან) და გამგზავნის კლავიატურისგან 5% -ის ან ნაკლები ფაქტობრივი მონაცემებით. გამოყენება Nagle ალგორითმი, იგივე მონაცემები შეიძლება გადაეცეს გამოყენებით ბევრ ნაკლები შეტყობინებები და მქონე 95% შინაარსი მყოფი კლავიატურის ინფორმაცია - ძალიან დიდი სიჩქარის შემნახველი.
აპლიკაციები აკონტროლებენ ნაღელის ალგორითმის გამოყენებას TCP_NODELAY Socket პროგრამირების პარამეტრთან. Windows, Linux და Java სისტემები ყველა ნორმალურად საშუალებას იძლევა, როგორც ნაგულისხმები, ამ პროგრამებისთვის დაწერილი აპლიკაციები უნდა განსაზღვროთ TCP_NODELAY როდესაც ალგორითმის გამორთვა გსურთ.
შეზღუდვები
Nagle ის ალგორითმი არის მხოლოდ გამოყენება TCP. სხვა პროტოკოლები, მათ შორის, UDP არ უჭერს მხარს.
TCP აპლიკაციები, რომლებიც საჭიროა სწრაფი ქსელური რეაგირებისთვის, ისევე, როგორც ინტერნეტ-ნომრებზე ან პირველადი მსროლელი თამაშები, შეიძლება არ იმოქმედოს, როდესაც Nagle ჩართულია. გამოიწვია დაგვიანებით, ხოლო ალგორითმი იღებს დამატებით დროს შეიკრიბება პატარა მოცულობით მონაცემთა ერთად შეიძლება გამოიწვიოს შესამჩნევი ლაგი ვიზუალურად ეკრანზე ან ციფრული აუდიო ნაკადი. ეს აპლიკაციები, როგორც წესი, გამორთებენ Nagle- ს.
ეს ალგორითმი თავდაპირველად განვითარდა იმ დროს, როდესაც კომპიუტერული ქსელები მხარს უჭერდნენ გაცილებით ნაკლები სიჩქარეს, ვიდრე დღეს აკეთებენ. ზემოთ აღწერილი მაგალითი ეფუძნებოდა ჯონ ნაგლის გამოცდილებას 1980-იანი წლების დასაწყისში Ford Aerospace- ში, სადაც ნელა, მძიმედ დატვირთული გრძელვადიანი ქსელის გაღვივება საკმაოდ კარგი იყო. არსებობს სულ უფრო ნაკლები სიტუაციები, სადაც ქსელის აპლიკაციები სარგებლობს მისი ალგორითმით.