מה זה TCP/IP?

מחבר:
בתאריך:

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

מה שאנחנו קוראים לו "אינטרנט" הוא אוסף של פרוטוקולים. החשוב בהם הוא TCP/IP.

התקשורת באינטרנט היא בין שרת (עליו יושב אתר אינטרנט או שירות סטרימינג) ששולח מידע ומחשב לקוח שמקבל מידע.

the basics of tcp/ip for sending and receiving data over the internet

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

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

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

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

בגלל אמינות הפרוטוקול פרוטוקולים רבים של העברת מידע ברשת משתמשים ב- TCP/IP:

FTP להעברת קבצים, ופרוטוקולים לשליחת וקבלת מיילים IMAP, SMTP, POP.

בעיה עיקרית היא איך אנחנו יודעים שהמידע התקבל בהצלחה. כאן באה לעזרתנו לחיצת יד משולשת Triple handshake בין השרת ומחשב המשתמש. בתהליך שני המחשבים אומרים "שלום" אחד לשני עוד לפני שהם מתחילים להעביר מידע. מחשב המשתמש אומר "שלום", שרת האתר מחזיר "שלום" ומחשב המשתמש מחזיר מסר שהוא קיבל את "השלום". אם השרת מקבל את האישור השלישי התקשורת התבססה ואפשר להתחיל להעביר מידע. במציאות במקום להגיד "שלום" המחשב המקבל והשרת משתמשים במספרים אקראיים שאותם יש להגדיל ב-1 כהוכחה להתקשרות. מחשב הלקוח מתחיל את לחיצת היד המשולשת בשליחת SYN מספר אקראי (לדוגמה 10). השרת מקבל את המסר ומחזיר מסר SYN/ACK הכולל מספר אקראי שיצר השרת (לדוגמה 50) ואישור שהוא מוכן ל-11. המחשב המקבל מחזיר מסר ACK הכולל את המספר שהוא קיבל מהשרת ועוד 1 (51 במקרה זה). אם לחיצת היד המשולשת הצליחה המחשב והשרת יכולים להתחיל להעביר מידע.

the triple handshake between server and client computer for establishing a connection with the TCP/IP model

גם בעת העברת המידע פרוטוקול TCP/IP ממשיך לבדוק שהוא שלם באמצעות ACK. כל פקטה מקבלת מספר סידורי ואם אחת מהם הולכת לאיבוד בדרך השרת ישלח אותה שוב.

הבעיה היא שלפעמים שני קליינטים שולחים סיגנל בו זמנית ואז חוסמים אחד את השני. הפתרון הוא שהשולחים יחכו על פי תבנית של נסיגה אקספוננציאלית exponential backoff בכל פעם בה התקשורת נכשלת צריך לחכות עד פי-2 יותר זמן לפני שמנסים שנית (כמה בדיוק נקבע באקראי). נכשלת בפעם הראשונה, מחכים שנייה, נכשלת בפעם השנייה מחכים שנייה או שתיים. פעם שלישית - מחכים עד 4 שניות. וכיו"ב (2, 4, 8, 16).

התקשורת בין שרת למחשב לקוח מתחיל בהאצה של קצב העברת הנתונים. אם פקטה ראשונה מתקבלת בהצלחה השרת שולח שתיים. אם שתיים מתקבלות הוא שולח 4, וכיו"ב. ברגע ש-ACK של פקטה לא מוחזר לשרת, מפסיקה ההאצה של קצב שליחת הנתונים, ובמקומו נכנס לפעולה אלגוריתם AIMD. אם כל הפקטות מתקבלות AIMD מוסיף פקטה 1. אם ACK לא מתקבל, קצב העברת הפקטות קטן לחצי. AIMD גורם לצורה האופיינית של רוחב הפס ברשתות להראות דפוס אופייני של "שן מסור" TCP sawtooth - טיפוס מתמיד ויציב, שאחריו ירידה חדה.

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

 

גם זה יעניין אותך

כיצד עובדת רשת האינטרנט?

מה זה REST API?

איתור תקלות רשת באמצעות שורת הפקודות

 

לכל המדריכים על כישורי מחשב

 

אהבתם? לא אהבתם? דרגו!

0 הצבעות, ממוצע 0 מתוך 5 כוכבים

 

 

הוסף תגובה חדשה

 

= 9 + 3