ნაგლის ალგორითმის მიმოხილვა TCP ქსელური კომუნიკაციისთვის

Სარჩევი:

ნაგლის ალგორითმის მიმოხილვა TCP ქსელური კომუნიკაციისთვის
ნაგლის ალგორითმის მიმოხილვა TCP ქსელური კომუნიკაციისთვის
Anonim

ნაგლის ალგორითმი, რომელსაც ინჟინერ ჯონ ნაგლის სახელი ეწოდა, შეიქმნა იმისათვის, რომ შემცირდეს ქსელის გადატვირთულობა, რომელიც გამოწვეულია მცირე პაკეტის პრობლემებით TCP აპლიკაციებთან. UNIX-ის დანერგვამ დაიწყო ნაგლის ალგორითმის გამოყენება 1980-იან წლებში და ის დღესაც რჩება TCP-ის სტანდარტულ მახასიათებელად.

როგორ მუშაობს ნაგლის ალგორითმი

ნაგლის ალგორითმი ამუშავებს მონაცემებს TCP აპლიკაციების გაგზავნის მხარეს მეთოდით, რომელსაც ეწოდება ნაგლინგი. ის აღმოაჩენს მცირე ზომის შეტყობინებებს და აგროვებს ამ შეტყობინებებს უფრო დიდ TCP პაკეტებში, სანამ მონაცემთა სადენში გაგზავნის. ეს პროცესი თავიდან აიცილებს ზედმეტად დიდი რაოდენობის მცირე პაკეტების წარმოქმნას.

ნაგლის ალგორითმის ტექნიკური სპეციფიკაცია გამოქვეყნდა 1984 წელს, როგორც RFC 896. გადაწყვეტილებები იმის შესახებ, თუ რამდენი მონაცემი უნდა დაგროვდეს და რამდენ ხანს დაველოდოთ გაგზავნას შორის, გადამწყვეტია მისი საერთო მუშაობისთვის.

ნაგლინგის სარგებელი

Nagling-ს შეუძლია ეფექტურად გამოიყენოს ქსელის კავშირის გამტარუნარიანობა შეფერხებების ან შეყოვნების დამატების ხარჯზე. RFC 896-ში აღწერილი მაგალითი ასახავს გამტარუნარიანობის პოტენციურ სარგებელს და მისი შექმნის მიზეზს:

  • თუ TCP აპლიკაციას, რომელიც წყვეტს კლავიატურის კლავიშებს, სურს მიაწოდოს თითოეული აკრეფილი სიმბოლო მიმღებს, მას შეუძლია შექმნას შეტყობინებების სერია, თითოეული შეიცავს 1 ბაიტ მონაცემს.
  • ამ შეტყობინებების ქსელში გაგზავნამდე, თითოეული მათგანი უნდა იყოს შეფუთული TCP სათაურის ინფორმაციით, როგორც ამას მოითხოვს TCP/IP. თითოეული სათაურის ზომა მერყეობს 20-დან 60 ბაიტამდე.
  • დაბნევის გარეშე, ეს მაგალითი აპლიკაცია გამოიმუშავებს ქსელურ შეტყობინებებს, რომელიც შედგება 95 პროცენტი ან მეტი სათაურის ინფორმაციისგან (მინიმუმ 20 21 ბაიტიდან) და 5 პროცენტი ან ნაკლები რეალური მონაცემებისგან გამგზავნის კლავიატურიდან. Nagle ალგორითმის გამოყენებით, იგივე მონაცემების მიწოდება შეიძლება ნაკლები შეტყობინებების გამოყენებით, რაც გამოიწვევს გამტარუნარიანობის დიდ დაზოგვას.

აპლიკაციები აკონტროლებენ ნაგლის ალგორითმის გამოყენებას TCP_NODELA სოკეტის პროგრამირების ოფციით. Windows, Linux და Java სისტემები ჩვეულებრივ ჩართავს Nagle-ს ნაგულისხმევად. ამიტომ, ამ გარემოებისთვის დაწერილმა აპლიკაციებმა უნდა მიუთითონ TCP_NODELAY ალგორითმის გამორთვისთვის.

Image
Image

შეზღუდვები

აპლიკაციები, რომლებიც საჭიროებენ ქსელის სწრაფ რეაგირებას, როგორიცაა ვიდეო ზარები და ონლაინ თამაშები, შეიძლება კარგად არ იმუშაოს, როდესაც Nagle ჩართულია. შეფერხებებმა, რომლებიც გამოწვეულია მაშინ, როდესაც ალგორითმს დამატებითი დრო სჭირდება მონაცემთა მცირე ნაწილების შეკრებას, შეიძლება გამოიწვიოს შესამჩნევი შეფერხება ეკრანზე ან ციფრულ აუდიო ნაკადში. ასეთი აპლიკაციები ჩვეულებრივ გამორთავს Nagle.

ეს ალგორითმი თავდაპირველად შეიქმნა იმ დროს, როდესაც კომპიუტერული ქსელები მხარს უჭერდნენ ნაკლებ სიჩქარეს, ვიდრე დღეს.ზემოთ აღწერილი მაგალითი ეყრდნობოდა ჯონ ნაგლის გამოცდილებას Ford Aerospace-ში 1980-იანი წლების დასაწყისში, სადაც ფორდის ნელი, მძიმედ დატვირთული, საქალაქთაშორისო ქსელის დამაბნეველი აზრები იყო. დღეს სულ უფრო ნაკლები სიტუაციებია, როდესაც ქსელურ აპლიკაციებს შეუძლიათ ისარგებლონ მისი ალგორითმით.

ნაგლის ალგორითმი გამოსაყენებელია მხოლოდ TCP-ით. სხვა პროტოკოლები, როგორიცაა UDP, მას არ უჭერს მხარს.

გირჩევთ: