סקירה כללית של האלגוריתם של Nagle לתקשורת רשת TCP

תוכן עניינים:

סקירה כללית של האלגוריתם של Nagle לתקשורת רשת TCP
סקירה כללית של האלגוריתם של Nagle לתקשורת רשת TCP
Anonim

אלגוריתם Nagle, הקרוי על שם המהנדס ג'ון Nagle, תוכנן להפחית את העומס ברשת הנגרמים מבעיות מנות קטנות ביישומי TCP. יישומי UNIX החלו להשתמש באלגוריתם Nagle בשנות ה-80, והוא נותר תכונה סטנדרטית של TCP כיום.

איך עובד האלגוריתם של Nagle

אלגוריתם Nagle מעבד נתונים בצד השליחה של יישומי TCP בשיטה הנקראת נדנדה. הוא מזהה הודעות בגודל קטן וצובר את ההודעות הללו למנות TCP גדולות יותר לפני שליחת נתונים על החוט. תהליך זה מונע יצירת מספרים גדולים שלא לצורך של מנות קטנות.

המפרט הטכני של האלגוריתם Nagle פורסם ב-1984 כ-RFC 896. ההחלטות לגבי כמות הנתונים לצבור וכמה זמן לחכות בין שליחה הן קריטיות לביצועים הכוללים שלו.

The Benefits of Nagling

Nagling יכולה לנצל ביעילות את רוחב הפס של חיבור רשת על חשבון הוספת עיכובים, או חביון. דוגמה המתוארת ב-RFC 896 ממחישה את היתרונות הפוטנציאליים ברוחב הפס ואת הסיבה ליצירתו:

  • אם יישום TCP שיירט הקשות במקלדת רוצה לתקשר כל תו שהוקלד למקלט, הוא יכול ליצור סדרה של הודעות, שכל אחת מהן מכילה 1 בייט של נתונים.
  • לפני שניתן לשלוח הודעות אלו ברחבי הרשת, כל אחת חייבת להיות ארוזה עם פרטי כותרת TCP כנדרש על ידי TCP/IP. גודל כל כותרת נע בין 20 ל-60 בתים.
  • ללא נדנוד, יישום לדוגמה זה יפיק הודעות רשת המורכבות מ-95 אחוזים או יותר ממידע כותרות (לפחות 20 מתוך 21 בתים) ו-5 אחוזים או פחות נתונים בפועל מהמקלדת של השולח.באמצעות האלגוריתם של Nagle, ניתן היה להעביר את אותם נתונים באמצעות פחות הודעות, וכתוצאה מכך חיסכון גדול ברוחב הפס.

אפליקציות שולטות בשימוש שלהן באלגוריתם Nagle עם אפשרות תכנות השקע TCP_NODELA. מערכות Windows, Linux ו-Java מאפשרות בדרך כלל את Nagle כברירת מחדל. לכן, יישומים שנכתבו עבור אותן סביבות צריכות לציין TCP_NODELAY כדי לכבות את האלגוריתם.

Image
Image

Limitations

יישומים הדורשים תגובה מהירה ברשת, כמו שיחות וידאו ומשחקים מקוונים, עלולים שלא לעבוד טוב כאשר Nagle מופעל. העיכובים הנגרמים בזמן שהאלגוריתם לוקח זמן נוסף כדי להרכיב נתחים קטנים יותר של נתונים יכולים להפעיל פיגור ניכר חזותית על מסך או בזרם אודיו דיגיטלי. יישומים כאלה משביתים בדרך כלל את Nagle.

אלגוריתם זה פותח במקור בתקופה שבה רשתות מחשבים תמכו בפחות רוחב פס מאשר היום.הדוגמה שתוארה לעיל התבססה על חוויותיו של ג'ון נאגל בפורד איירוספייס בתחילת שנות ה-80, שבהן הגיוניות המטרידות ברשת האיטית, העמוסה בכבדות, של פורד היו הגיוניים. יש היום פחות מצבים שבהם יישומי רשת יכולים להפיק תועלת מהאלגוריתם שלו.

אלגוריתם Nagle ניתן לשימוש רק עם TCP. פרוטוקולים אחרים, כגון UDP, אינם תומכים בו.

מוּמלָץ: