תרגול TCP: מספרי רצף, ACK ושידור חוזר

מאת ארז ברזאני · תרגול מקורי של GammaCyber

עקבת הודעות מקורית לפי מודל מצומצם של TCP. מניחים חיבור שכבר הוקם, נתונים ללא SYN או FIN, ACK מצטבר וללא גלישת מספרי רצף. ההנחות מצמצמות את התרגיל ואינן מחליפות את RFC 9293.

נתוני הפתיחה

המקבל מצפה לבייט 1000. השולח מעביר מקטע שבו seq=1000 ואורך המטען 100 בייטים. המקטע מכסה את הבייטים 1000 עד 1099 כולל, ולכן לאחר קבלתו ברצף המקבל יכול לאשר ACK=1100. האישור מציין את הבייט הבא המצופה, ולא את מספר המקטע שנשלח.

אובדן באמצע הרצף

המקטע הבא, seq=1100 באורך 100, אובד. אחריו מגיע seq=1200 באורך 100. במודל התרגיל, שבו ACK מצטבר ואין התייחסות ל־SACK, המקבל עדיין מצפה ל־1100 ולכן ACK נשאר 1100. כשהפער מתמלא, ואם הבייטים המאוחרים נשמרו, ACK יכול להתקדם ל־1300. שמירת מקטעים מחוץ לסדר היא הנחה מפורשת כאן, לא משהו שצריך לנחש.

מה מותר להסיק

ACK כפול עשוי להעיד על פער אבל אינו הוכחה יחידה לסיבת התקלה. גם אובדן אישור ועיכוב יכולים להשפיע על מה שרואים אצל השולח. בכתיבת פתרון מפרידים בין מה שנצפה בעקבה לבין ההסבר האפשרי. מנגנון PINGO במעבדה משתמש במספר מתחלף של הודעות; TCP משתמש במספרי בייטים, ולכן אסור להעביר ביניהם נוסחאות בלי להתאים את המודל.

תרגול עצמאי עם הסברים

נסו לענות לפני פתיחת ההסבר. אפשר לעבוד ללא שעון או לבחור זמן אימון משלכם.

שאלה 1: seq=200 ואורך מטען 40. מה הבייט הבא המצופה אחרי קבלה רציפה?

  1. 239
  2. 240
  3. 241
תשובה והסבר

240: הטווח הוא 200..239; הבייט הבא הוא 240.

הכפתור מסמן סיום לפי הדיווח שלכם; פתיחת פתרון אינה בדיקת ידע.

הצעד הבא בלמידה

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

לשיעור הקשור בקורסלמפת הקורס וחלוקת התוכן

המשאבים בעמוד הזה פתוחים. חלק משיעורי הקורס זמינים בתצוגה מקדימה, וגישה מלאה בתשלום.

להמשך תרגול

מקורות טכניים וגבולות התרגול

המקורות מסבירים טכנולוגיה. הם אינם אסמכתה למבנה מיון צבאי. התוכן כאן עצמאי; הנחיות הזימון האישי הן הקובעות. מצאתם שגיאה? כתבו לנו.