TCP לעומת UDP: פתרון המסתורין של הוויכוח על אמינות לעומת יעילות

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

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

TCP הוא ראשי תיבות של Transmission Control Protocol והוא ידוע כפרוטוקול מונחה-חיבור. משמעות הדבר היא שלפני שאפליקציה אחת יכולה להתחיל לשלוח נתונים לאחרת, שני התהליכים צריכים לבצע לחיצת יד. לחיצת יד היא תהליך המחובר לוגית המבטיח העברה אמינה וקליטה מסודרת של נתונים. במהלך לחיצת היד, נוצר חיבור בין מארח המקור ליעד על ידי החלפת סדרה של חבילות בקרה והסכמה על פרמטרים וכללים מסוימים כדי להבטיח העברת נתונים מוצלחת.

מה זה TCP? (מיי לינקינג'סהקש על רשתומתווך חבילות רשתיכול לעבד גם חבילות TCP וגם חבילות UDP)
TCP (פרוטוקול בקרת שידור) הוא פרוטוקול תקשורת שכבת תעבורה אמין, מונחה חיבור, מבוסס זרם בתים.

מוכוון חיבורתקשורת מוכוונת חיבור פירושה שתקשורת TCP היא אחד-לאחד, כלומר, תקשורת מקצה לקצה מנקודה לנקודה, בניגוד ל-UDP, שיכול לשלוח הודעות למספר מארחים בו זמנית, כך שלא ניתן להשיג תקשורת אחד-לרבים.
אָמִיןהאמינות של TCP מבטיחה שחבילות מידע מועברות באופן אמין למקלט ללא קשר לשינויים בקישור הרשת, מה שהופך את פורמט חבילת הפרוטוקול של TCP למורכב יותר מזה של UDP.
מבוסס זרם בייטהאופי המבוסס על זרם בתים של TCP מאפשר העברת הודעות בכל גודל ומבטיח סדר הודעות: גם אם ההודעה הקודמת לא התקבלה במלואה, וגם אם הבייטים הבאים התקבלו, TCP לא יעביר אותם לשכבת היישומים לצורך עיבוד וישחרר אוטומטית חבילות כפולות.
לאחר שמארח א' ומארח ב' יצרו חיבור, היישום צריך להשתמש רק בקו התקשורת הווירטואלי כדי לשלוח ולקבל נתונים, ובכך להבטיח את העברת הנתונים. פרוטוקול TCP אחראי על בקרת משימות כגון יצירת חיבור, ניתוק והחזקה. יש לציין שכאן אנו אומרים שקו וירטואלי נועד רק ליצור חיבור, חיבור פרוטוקול TCP מציין רק ששני הצדדים יכולים להתחיל בהעברת נתונים, ולהבטיח את אמינות הנתונים. צמתי הניתוב וההעברה מטופלים על ידי התקני הרשת; פרוטוקול TCP עצמו אינו עוסק בפרטים אלה.

חיבור TCP הוא שירות דו-כיווני מלא, כלומר מארח A ומארח B יכולים להעביר נתונים בשני הכיוונים בחיבור TCP. כלומר, ניתן להעביר נתונים בין מארח A למארח B בזרימה דו-כיוונית.

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

TCP-UDP

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

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

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

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

TCP יוצר מקטע TCP, או מקטע חבילות, על ידי פיצול הזרם הנכנס לחלקים והוספת כותרות TCP לכל חלק. כל מקטע יכול להיות משודר רק למשך זמן מוגבל ואינו יכול לחרוג מגודל המקטע המרבי (MSS). בדרכו למטה, מקטע חבילות עובר דרך שכבת הקישור. לשכבת הקישור יש יחידת שידור מרבית (MTU), שהיא גודל החבילה המרבי שיכול לעבור דרך שכבת קישור הנתונים. יחידת השידור המרבית קשורה בדרך כלל לממשק התקשורת.

אז מה ההבדל בין MSS ל-MTU?

ברשתות מחשבים, הארכיטקטורה ההיררכית חשובה מאוד משום שהיא מתחשבת בהבדלים בין הרמות השונות. לכל שכבה יש שם שונה; בשכבת התעבורה, הנתונים נקראים מקטע, ובשכבת הרשת, הנתונים נקראים חבילת IP. לכן, ניתן לחשוב על יחידת השידור המקסימלית (MTU) כגודל חבילת ה-IP המקסימלי שניתן להעביר על ידי שכבת הרשת, בעוד שגודל מקטע המקסימלי (MSS) הוא מושג בשכבת התעבורה המתייחס לכמות הנתונים המקסימלית שניתן להעביר על ידי חבילת TCP בו זמנית.

שימו לב שכאשר גודל הקטע המרבי (MSS) גדול מיחידת השידור המרבית (MTU), יבוצע פיצול IP בשכבת הרשת, ו-TCP לא יפצל את הנתונים הגדולים יותר לקטעים המתאימים לגודל ה-MTU. יהיה מדור בשכבת הרשת המוקדש לשכבת ה-IP.

מבנה מקטע חבילת TCP
בואו נחקור את הפורמט והתוכן של כותרות TCP.

מקטע TCP

מספר סידורימספר אקראי שנוצר על ידי המחשב בעת יצירת החיבור כערך ההתחלתי שלו בעת יצירת חיבור TCP, ומספר הרצף נשלח למקלט דרך חבילת SYN. ​​במהלך העברת הנתונים, השולח מגדיל את מספר הרצף בהתאם לכמות הנתונים שנשלחו. המקלט שופט את סדר הנתונים בהתאם למספר הרצף שהתקבל. אם הנתונים נמצאים לא בסדר, המקלט יסדר אותם מחדש כדי להבטיח את סדר הנתונים.

מספר אישורזהו מספר רצף המשמש ב-TCP לאישור קבלת נתונים. הוא מציין את מספר הרצף של הנתונים הבאים שהשולח מצפה לקבל. בחיבור TCP, המקבל קובע אילו נתונים התקבלו בהצלחה על סמך מספר הרצף של מקטע חבילת הנתונים שהתקבל. כאשר המקבל מקבל את הנתונים בהצלחה, הוא שולח חבילת ACK לשולח, המכילה את מספר אישור האישור. לאחר קבלת חבילת ה-ACK, השולח יכול לאשר שהנתונים התקבלו בהצלחה לפני אישור מספר התשובה.

ביטים של בקרה במקטע TCP כוללים את הדברים הבאים:

סיבית ACKכאשר סיבית זו היא 1, פירוש הדבר ששדה תשובת האישור תקף. TCP מציין שסיבית זו חייבת להיות מוגדרת ל-1 למעט עבור חבילות SYN כאשר החיבור נוצר לראשונה.
ביט RSTכאשר סיבית זו היא 1, זה מציין שיש חריג בחיבור ה-TCP ויש לאלץ את ניתוק החיבור.
סיבית SYNכאשר סיבית זו מוגדרת ל-1, משמעות הדבר היא שיש ליצור את החיבור והערך ההתחלתי של מספר הרצף מוגדר בשדה מספר הרצף.
קצת FINכאשר סיבית זו היא 1, משמעות הדבר היא שלא יישלחו נתונים נוספים בעתיד והחיבור רצוי.
הפונקציות והמאפיינים השונים של TCP מגולמים על ידי מבנה מקטעי חבילות TCP.

מה זה UDP? (של Mylinking)הקש על רשתומתווך חבילות רשתיכול לעבד גם חבילות TCP וגם חבילות UDP)
פרוטוקול User Datagram (UDP) הוא פרוטוקול תקשורת ללא חיבור. בהשוואה ל-TCP, UDP אינו מספק מנגנוני בקרה מורכבים. פרוטוקול UDP מאפשר ליישומים לשלוח ישירות חבילות IP אנקפסולות מבלי ליצור חיבור. כאשר המפתח בוחר להשתמש ב-UDP במקום TCP, היישום מתקשר ישירות עם ה-IP.

השם המלא של פרוטוקול UDP הוא User Datagram Protocol, והכותרת שלו היא רק שמונה בתים (64 סיביות), וזה די תמציתי. הפורמט של כותרת ה-UDP הוא כדלקמן:

מקטע UDP

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

הבדלים בין TCP ו-UDP ב-Mylinkingהקש על רשתומתווך חבילות רשתיכול לעבד גם חבילות TCP וגם חבילות UDP
TCP ו-UDP שונים זה מזה בהיבטים הבאים:

TCP לעומת UDP

קֶשֶׁרTCP הוא פרוטוקול תעבורה מונחה-חיבור הדורש יצירת חיבור לפני שניתן להעביר נתונים. UDP, לעומת זאת, אינו דורש חיבור ויכול להעביר נתונים באופן מיידי.

אובייקט שירותTCP הוא שירות דו-נקודתי של אחד לאחד, כלומר, לחיבור יש רק שתי נקודות קצה שמתקשרות זו עם זו. עם זאת, UDP תומך בתקשורת אינטראקטיבית של אחד לאחד, אחד לרבים ורבים לרבים, שיכולה לתקשר עם מספר מארחים בו זמנית.

אֲמִינוּתTCP מספק שירות של מסירת נתונים בצורה אמינה, תוך הבטחה שהנתונים נטולי שגיאות, נטולי אובדן נתונים, אינם כפולים ומגיעים לפי דרישה. לעומת זאת, UDP עושה כמיטב יכולתו ואינו מבטיח מסירה אמינה. UDP עלול לסבול מאובדן נתונים וממצבים אחרים במהלך השידור.

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

תקורה של כותרת עליונהל-TCP יש אורך כותרת ארוך, בדרך כלל 20 בתים, אשר גדל כאשר משתמשים בשדות אופציה. ל-UDP, לעומת זאת, יש כותרת קבועה של 8 בתים בלבד, כך של-UDP יש תקורה נמוכה יותר של כותרת.

TCP לעומת UDP

תרחישי יישומי TCP ו-UDP:
TCP ו-UDP הם שני פרוטוקולי שכבת תעבורה שונים, ויש ביניהם כמה הבדלים בתרחישי היישום.

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

העברת קבצים ב-FTPTCP יכול להבטיח שקבצים לא יאבדו וייפגמו במהלך ההעברה.
HTTP/HTTPSTCP מבטיח את שלמות ותקינות תוכן האינטרנט.
מכיוון ש-UDP הוא פרוטוקול ללא חיבור, הוא אינו מספק ערובה לאמינות, אך יש לו את המאפיינים של יעילות וזמן אמת. UDP מתאים לתרחישים הבאים:

תעבורת חבילות נמוכה, כגון DNS (מערכת שמות דומיין)שאילתות DNS הן בדרך כלל חבילות קצרות, ו-UDP יכול להשלים אותן מהר יותר.
תקשורת מולטימדיה כגון וידאו ואודיועבור שידור מולטימדיה עם דרישות גבוהות בזמן אמת, UDP יכול לספק השהייה נמוכה יותר כדי להבטיח שניתן יהיה להעביר נתונים בצורה יעילה.
תקשורת שידורUDP תומך בתקשורת של אחד לרבים ורבים לרבים וניתן להשתמש בו להעברת הודעות שידור.

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


זמן פרסום: 3 בדצמבר 2024