תוכן העניינים[להתחבא][הופעה]
פרוטוקול בשם TCP Flow Control נוצר כדי לשלוט בזרימת הנתונים בין המשתמש לשרת.
הוא מוודא שכמות מסוימת של רוחב פס זמינה לשליחה וקבלה של נתונים כך שהעיבוד יוכל להמשיך מבלי להיתקל בבעיות רציניות.
פרוטוקול TCP עושה שימוש בשיטה המכונה פרוטוקול חלון הזזה כדי להשיג זאת.
נסקור לעומק את בקרת זרימת TCP ביצירה זו, כולל אופן פעולתו, ובעיקר, פרוטוקול החלון ההזזה.
מהי TCP Flow Control?
פרוטוקול TCP מבטיח שניתן ליצור ערוץ תקשורת אמין על פני רשת בלתי צפויה.
חבילות נתונים עלולות ללכת לאיבוד, להגיע מחוץ לרצף, לגבות ברשת או להעמיס על הצומת המקבל כשהן נשלחות מצומת אחד לאחר.
עם זאת, בזמן פיתוח אפליקציה, בדרך כלל איננו צריכים להתמודד עם המורכבות הזו; במקום זאת, אנו פשוט שולחים כמה נתונים לשקע, ו-TCP מבטיח שהמנות מועברות בהצלחה לצומת הנמען.
בקרת זרימה היא תכונה נוספת מכרעת ש-TCP מציעה.
באמצעות שימוש בבקרת זרימה, TCP בעצם יוודא ששולח לא שולח למקלט יותר מדי מנות בבת אחת.
כיצד פועל פרוטוקול בקרת העברה - בקרת זרימה?
זה מתרחש בדרך כלל כאשר אנו צריכים לתקשר נתונים דרך רשת.
אפליקציית השולח שולחת נתונים לשקע, שכבת התחבורה (במקרה זה, TCP) אורזת את הנתונים הללו בקטע, ושכבת הרשת (לדוגמה, IP) מעבירה את החבילה הזו לצומת המקבל במסלול כלשהו.
שכבת הרשת תעביר את הנתונים הללו ל-TCP בסוף השיחה המקבלת, ו-TCP תהפוך אותם לזמינים לאפליקציה המקבלת ככפיל זהה של הנתונים שניתנו.
TCP לא יספק מנות במצב לא מסודר ויחכה לשידור חוזר למקרה שיזהה פער בזרם בתים.
זה מה שנראה אם נתקרב.
גם מאגרי השידור וגם הקבלה ב-TCP משמשים כדי להחזיק נתונים שיש לשלוח ולקבל, בהתאמה.
הנתונים ממאגר הקבלה ייקראו על ידי היישום כאשר הוא מוכן.
לוודא שאנחנו לא שולחים מנות נוספות בזמן שמאגר הקבלה של המקלט כבר מלא היא המטרה העיקרית של בקרת הזרימה שכן פעולה זו תאלץ את המקלט להפיל מנות נוספות שהוא לא יכול היה לטפל בהן.
המקלט יכריז על חלון הקבלה שלו, או על המקום הפנוי במאגר הקבלה, על מנת להגביל את כמות הנתונים ש-TCP יכול להעביר.
פרוטוקול החלון הזזה
פרוטוקול חלון הזזה ב-TCP הוא אחת משיטות בקרת הזרימה הנפוצות ביותר. זהו הליך בגודל משתנה, מונחה בתים.
בגישה זו, המקלט שולח לשולח את חלון המקלט ברגע שהשולח והמקלט מחוברים.
גודל המאגר הנוכחי של המקלט מכונה חלון המקלט.
כמות הנתונים שניתן לשלוח הלאה ללא אישור מחושבת כעת על ידי TCP בהתבסס על חלון המקלט הזמין.
עם זאת, TCP מפסיק את העברת הנתונים אם גודל חלון המקלט הוא 0 וממתין עד שהוא יגדל.
גודל חלון המקלט הוא מרכיב של מסגרת ה-TCP.
הגודל המרבי של החלון הוא 65,535 בתים מכיוון שיש לו גודל חלון של 16 סיביות.
מידות החלון נבחרות על ידי הנמען. עם כל הודעת אישור, המקלט משדר את גודל חלון המקלט הזמין כעת.
תהליך של פרוטוקול חלון הזזה
בעת שימוש בטכניקת פרוטוקול חלון הזזה, נוצרים שני מאגרים כאשר השולח והמקלט מתחברים.
שני מאגרים אלו מחולקים לשתי קבוצות: חלון השליחה, השייך לשולח, וחלון המקבל, השייך למקבל.
חלון הקבלה מחזיר את שטח מאגר הקבלה הנותר כאשר השולח מעביר נתונים למקלט.
כתוצאה מכך, השולח מוגבל לכמות הנתונים שיכולה להתאים למאגר המקבל.
חלון השידור בדוגמה למעלה משדר נתונים לחלון המקבל.
לאחר קבלת הנתונים, חלון הקבלה שולח אישור, ולאחר מכן חלון המשדר משדר מסגרת נתונים חדשה.
עם זאת, הפעם, חלון הקבלה שולח בנוסף הודעה המציינת שהזיכרון הזמין מלא בנוסף לאישור שקיבל.
חלון השידור משהה את העברת הנתונים עד שהוא מקבל אישור מחלון המקבל שהמקום התפנה, ובשלב זה הוא יכול לחדש את העברת הנתונים.
סיכום
לסיכום, שכבת חיבור הנתונים ושכבת התעבורה אחראיות לטיפול בבעיות בקרת זרימה.
המטרה הבסיסית של מנגנון בקרת הזרימה היא למנוע מהמקלט להיות עומס יתר בנתונים מהשולח המשדר מהר יותר.
גם אם הנתונים המועברים על ידי השולח הם נטולי שגיאות ונשלחים בקצב מהיר יותר הודות למכונה חזקה, ייתכן שהמקלט של הקצה האיטי יותר לא יוכל להתמודד עם קצב הנתונים המהיר יותר ולכן יאבד חלק מהנתונים.
השאירו תגובה