Transmission Control Protocol (בראשי תיבות: TCP; בעברית: פרוטוקול בקרת שידור) הוא פרוטוקול תקשורת נתונים שנמצא בשכבת התעבורה של מודל ה‑OSI ושל מודל TCP/IP. TCP יוצר חיבור מקושר (Connection Oriented), ומשתמש בפרוטוקול ה‑IP להעברת החבילות. הוא דואג שהנתונים יגיעו בצורה נכונה ומלאה, ובמקרה של בעיה מבקש שידור חוזר.
לקיום חיבור נערכת לחיצת יד בשלושה שלבים (three‑way handshake). שלב ראשון: תחנת השולח שולחת SYN, הודעה לפתיחת קשר. שלב שני: המחשב המקבל משיב ב‑SYN‑ACK. בשלב זה המחשב המקבל גם מודיע על ה‑ISN שלו, Initial Sequence Number, מספר אקראי שנבחר כדי למנוע ערבוב שיחות. שלב שלישי: השולח שולח ACK ואומר את ה‑ISN שלו. אחרי זה אפשר להתחיל לשלוח נתונים.
הנתונים נשלחים בחבילות שמסומנות במספר סידורי (Seq) ובאורך (Len). השולח מפעיל טיימר; אם לא מגיע ACK בזמן, הוא משדר שוב את החבילה. המקבל שולח ACK שמציין את המספר שהוא מצפה לקבל הבא. לדוגמה: אם נשלחה חבילה Seq=1 Len=3, המקבל יענה Ack=4 כדי לציין שהוא קיבל עד המספר 3 ומחכה ל‑4.
הניתוק נעשה על ידי שליחת חבילת FIN מכל צד ואישור עליה. לעתים קורה חיבור "חצי פתוח" אם רק צד אחד סגר. ברוב המקרים הסגירה נעשית בלחיצת יד דומה: FIN‑ACK מהשולח, FIN‑ACK מהמקבל, ולבסוף ACK מאחד הצדדים.
לבדיקת תקינות הנתונים מחשב השולח ערך Checksum (בדיקה מתמטית, לעתים CRC) והוסיף אותו לראש החבילה. המקבל מחשב את ה‑Checksum שוב ומשווה. אם התקבלו שגיאות, מבקש המקבל שידור חוזר. המקור שומר העתקים של החבילות עד לקבלת אישור, וכך מבטיח שהכל יגיע.
TCP יכול לעבוד עם SSL (Secure Sockets Layer), פרוטוקול הצפנה שיושב מעל ה‑TCP ומתחת לאפליקציה. ה‑SSL מצפין נתונים ומספק חתימה אלקטרונית לזיהוי קצה, למשל בחיבור לבנק.
לכדי להתאים את קצב השידור ליכולת העיבוד של המקבל ולהרוחב הפס, TCP משתמש ב"חלונות הזזה" (sliding windows). גודל החלון משתנה דינמית במהלך השיחה.
TCP מכיל ארבעה אלגוריתמים עיקריים לבקרת גודש: slow‑start, congestion avoidance, fast retransmit ו‑fast recovery. הרעיון הוא להשתמש באיחור או בהעדר ACK כאינדיקציה לעומס ברשת, ואז להאט או להתאושש בהתאם. בתוספת הרחבה יש אפשרות לבקרת גודש מפורשת (ECN), עם דגלים חדשים בפתיח.
כדי להבחין בין שירותים שונים במחשב משתמשים בפורטים. זיהוי השיחה מבוצע על פי ארבעת הפרמטרים: כתובת שולח, פורט שולח, כתובת מקבל ופורט מקבל.
חבילת TCP כוללת פתיח (header) בגודל מינימלי של 20 בתים ועד 60 בתים (20 בתים קבועים ועוד עד 40 בתים אופציונליים). הפתיח הוא כפולה של 32 סיביות. אחריו מגיעה מסגרת המידע שיכולה להיות עד פחות מ‑65,495 בתים.
בפתיח יש מספר דגלים (flags) ושדות חשובים. כמה דגלים עיקריים:
- NS: דגל ניסיוני להגנה מפני הסתרת פקטות.
- CWR ו‑ECE: קשורים להרחבת ECN לבקרת גודש מפורשת.
- URG: מציין מידע דחוף שנמצא בשדה מיוחד.
- ACK: מציין כי שדה מספר האישור תקף.
- PSH: מפעיל דחיפה מידית של הנתונים.
- RST: מבקש לאתחל קשר.
- SYN: משמש להקמת קשר.
- FIN: מסמן סיום קשר.
הדגלים האלו והמספור הסידורי מאפשרים ל‑TCP לנהל חיבור אמין ומסודר בין שני קצות תקשורת.
Transmission Control Protocol (TCP) הוא חוק שמחשב משתמש בו כדי לשלוח נתונים באינטרנט. TCP יוצר "חיבור" בין שני מחשבים. זה עוזר שמה שנשלח יגיע בשלמות.
לפני שליחה עושים שלוש הודעות: SYN, תגובה SYN‑ACK, ולבסוף ACK. כך שני המחשבים מסכימים להתחיל לדבר. ה‑ISN הוא מספר התחלתי אקראי לכל שיחה.
הנתונים נשלחים בחבילות עם מספרים סידוריים (Sequence number). המחשב ששולח מחכה לאישור (ACK). אם אין אישור, הוא ישלח שוב.
כדי לסגור שולחים FIN והצד השני מאשר. לפעמים רק אחד סוגר והחיבור נשאר חצי פתוח.
השולח מוסיף בדיקה שנקראת Checksum (בדיקת תקינות). המקבל בודק את זה. אם משהו לא נכון, מבקשים לשדר שוב.
TCP יכול לעבוד עם SSL. SSL היא שכבה שמצפינה את המידע. זה חשוב בחיבור לבנק, כדי לוודא זהות.
TCP מתאים את קצב השידור בעזרת "חלון הזזה". יש גם כללים (לדוגמה slow‑start) שמונעים עומס ברשת.
פורטים עוזרים להכיר שירותים שונים בין מחשבים. כותרת החבילה (header) היא בין 20 ל‑60 בתים. הנתונים יכולים להגיע עד כ‑65,495 בתים.
בפתיח יש דגלים שמספרים מה קורה: SYN לפתיחה, ACK לאישור, FIN לסגירה, RST לאתחול, URG למידע דחוף, ועוד דגלים לבקרת גודש.
תגובות גולשים