9.0 – תיאוריה – תקשורת בין שרת ללקוח, פרוטוקול תעבורה, מס' פורטים

מה לומדים בחלק זה?

  • מהו לקוח ומהו שרת? תוכנת הלקוח ותוכנת השרת והקשר ביניהם.
  • פרוטוקול התעבורה בתקשורת שבין הלקוח לבין השרת. פרוטוקול UDP ופרוטוקול TCP.
  • תהליך יצירת הקשר וסיום הקשר של TCP
  • מס' פורטים לוגיים - מהם? ואיך קשורים לכתובות IP - + מהו שקע רשת? Socket?
  • סוגי פורטים - מוכרים, רשמיים ופרטיים.
  • השרתים והפרוטוקולים שיש להכיר ולדעת.
  • פקודת netstat להצגת שיחות

סרטון

פירוט חלק זה

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

מהו בעצם שרת?

שרת הוא בעצם מחשב! כמו המחשב בבית, אך זה לא סתם מחשב.

שרת הוא מארח המריץ תוכנה אשר מספקת מידע או שירות למארחים אחרים ברשת.
לדוגמה: שרת אינטרנט (Web Server) – שרת http - שרת המאפשר הצגת דפי אינטרנט, קול ווידאו.

בדרך כלל השרת הוא יותר עוצמתי מאשר מחשב לקוח, מכיון שהשרת צריך לעמוד בהרבה בקשות – הרבה פניות מלקוחות.

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

לקוח הוא מארח המריץ תוכנה אשר משתמשים בה כדי לקבל שירות מהשרת. דפדפן אינטרנט הוא דוגמה ל- "לקוח" (Client) – "לקוח אינטרנט" המשמש כדי לבקש ולצפות בדפי אינטרנט, תוכנות לקוח מסוג זה לדוגמה: Google Chrome, Safari, Internet Explorer, Edge, Firefox ועוד.

הלקוח שולח בקשה לשרת והשרת עונה ע"י ביצוע פעולה כגון: שליחת דף אינטרנט חזרה ללקוח. תחשבו על מוכר בחנות שהוא השרת שנותן שירות ללקוח. הלקוח מבקש חלב מהמוכר, והמוכר – השרת נותן לו.

סוגי שרתים נפוצים

  • Domain Name Server – DNS שרת המספק כתובות IP של אתרי אינטרנט כדי שמארחים יוכלו להתחבר לאתרים אלו.
  • Telnet - שרת המאפשר להתחבר למארח מרוחק ולשלוט עליו.
  • Email – שרת המשמש לשלוח ולקבל דואר אלקטרוני באמצעות פרוטוקולים כגון:
    SMTP -  Simple Mail Transfer Protocol
    POP3 – Post Office Protocol
    IMAP – Internet Message Access Protocol
  • DHCP – שרת המספק באופן דינאמי: כתובת IP, Subnet Mask, Default Gateway והגדרות נוספות ללקוח.
  • WEB – משמש להעברת מידע בין לקוח - דפדפן אינטרנט לשרת אינטרנט.
    משתמש בפרוטוקול HTTP – Hyper Transfer Protocol.
  • FTP - File Transfer Protocol משמש להורדת / העלאת קבצים בין לקוח ושרת.

השרתים פועלים בכל השכבות של מודל ה- OSI, אך יש לציין במיוחד את השכבה ה-7 שבה בעצם מתבצעים פעולות ברמת התוכנה – ה- DATA, למשל הבקשה לצפות בדף אינטרנט נמצא בשכבה ה- 7. ועצם זה שאנו רואים אתר אינטרנט, זה מכיון שאנו רואים אותו בשכבה ה-7 של מודל ה- OSI.

כמובן השרתים פועלים גם בשכבה השלישית ומשתמשים בכתובות IP על מנת לתקשר.

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

פרוטוקול התעבורה מאפיין כיצד להעביר הודעות בין המארחים.

הפרוטוקולים הנפוצים לתעבורה הם:

  • TCP – Transmission Control Protocol
  • UDP – User Datagram Protocol

TCP מפרק את ההודעה לחלקים קטנים אשר נקראים: סגמנטים (Segments). סגמנטים אלו ממוספרים לפי הסדר ומועברים לפרוטוקול IP כדי להרכיב מהם "חבילות".

פרוטוקול זה הוא Connection Oriented (מייסד קשר). מספק אמינות, שומר על סדר החבילות, מוודא את הגעת החבילות ואת קבלתן במלואן. זהו חיבור אמין אך איטי יחסית, וחבילת המידע שלו גדולה.

הפרוטוקול משתמש ב- לחיצת יד משולשת (Three-way Handshake), על מנת להקים קשר בין תחנות ברשת:

  1. SYN – המקור שולח הודעה לפתיחת קשר עם יעד.
  2. SYN-ACK - תחנת היעד שולחת אישור קבלה ואישור פתיחת קשר מצדה, בשלב זה יכולה כבר לשלוח מידע.
  • ACK – תחנת המקור מיידעת את תחנת היעד על סיום מיסוד הקשר.

על מנת לסגור את הקשר, ישנה שוב לחיצת יד משולשת רק שהפעם: 1) FIN-ACK 2) FIN-ACK 3) ACK.

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

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

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

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

UDP הוא פרוטוקול המשמש כאשר אין צורך באישור, בדומה לשליחת "מכתב רגיל".  אין בטחון שהמכתב יגיע ליעדו אולם הסיכויים לכך הם טובים.
UDP עדיף באפליקציות כגון: הזרמת שמע, וידאו ו- Voice Over IP – VOIP .
אישורים במקרים אלו יאטו את העברת המידע משום ששידורים חוזרים אינם נחוצים.

פורטים לוגיים – Port לוגי

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

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

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

הפורט מורכב מכתובת בעלת 16 ביטים היוצרת 65535 אפשרויות שונות לכתובת עבור הפורט (עבור UDP ו- TCP בנפרד).

מספרי פורטים

ישנם שלושה סוגים של מספרים:

  1. פורטים מוכרים (Well Known Ports) – פורטים שידועים לכולם המספרים: 0-1023.
  2. פורטים רשומים (Registered Ports) – פורטים שרשומים אצל IANA: 1024-49151.
  3. פורטים פרטיים (Private Ports) – פורטים שניתן להשתמש בהם על ידי מחשבים פרטיים: 49152-65535.

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

פורט היעד Destination Port)), מצביע על השירות המבוקש.

למשל:  port 80 – מתייחס לבקשת שירותי אינטרנט.
port 21 – מתייחס לשירותי FTP.

באמצעות מספר הפורט יודע השרת אשר מקבל את ההודעה איזה שירות נדרש ממנו לספק. שרת יכול להציע יותר משירות אחד בו זמנית. כלומר: להציע שירותי אינטרנט בפורט 80. ובאותו הזמן להציע חיבור FTP בפורט 21.

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

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

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

השילוב של כתובות IP של המקור והיעד וגם פורטי המקור והיעד, נקרא: שקע רשת (Socket).

שקע הרשת (Socket) שימושי לזהות את השרת ואת השירות אשר מבוקש ע"י הלקוח.

אלו סוגי שרתים ישנם?

יש המון סוגי שרתים שונים, עם זאת יש שרתים שהם יותר מפורסמים ופופולריים. לכל שרת ידוע שכזה יש מספר פורט משלו ששמור לו ורשום ע"י ארגון IANA, כך שאני יודע שאם אני רוצה לפנות לדוגמא לשרת http אפנה לפורט 80. כמו כן כל פרוטוקול/שרת יש לו את פרוטוקול התעבורה שהוא משתמש בו – UDP או TCP ולפעמים משתמש בשניהם.

אז ממש במשפט על כל שרת מפורסם, שאנו צריכים להכיר:

  • Domain Name Server – DNS שרת המספק כתובות IP של אתרי אינטרנט כדי שמארחים יוכלו להתחבר לאתרים אלו.
  • Telnet - שרת המאפשר להתחבר למארח מרוחק ולשלוט עליו.
  • SSH – כמו TELNET רק מאובטח ומוצפן.
  • Email – שרת המשמש לשלוח ולקבל דואר אלקטרוני באמצעות פרוטוקולים כגון:
    SMTP -  Simple Mail Transfer Protocol
    POP3 – Post Office Protocol
    IMAP – Internet Message Access Protocol
  • DHCP – שרת המספק באופן דינאמי: כתובת IP, Subnet Mask, Default Gateway והגדרות נוספות ללקוח.
  • WEB – משמש להעברת מידע בין לקוח - דפדפן אינטרנט לשרת אינטרנט.
    משתמש בפרוטוקול HTTP – Hyper Transfer Protocol.
    או בפרוטוקול HTTPS – שהוא גרסה מאובטחת ומוצפנת שלו.
  • TFTP – שגם משמש להורדה והעלאת קבצים, ובין היתר גם לגיבוי ושחזור של מידע.
  • FTP - File Transfer Protocol גם משמש להורדת / העלאת קבצים בין לקוח ושרת, אך עובד על פרוטוקול TCP ומאפשר שימוש בשם משתמש וססמה.

 

 

פורט השירות (בד"כ יעד) הפרוטוקול – השירות טכנולוגית תעבורה מה עושה?
20,21 FTP TCP File Transfer Protocol - פרוטוקול מבוסס TCP שמאפשר העברת קבצים בין מחשבים (העלאה והורדה). פורט 21 משמש לפתיחת השיחה ולהעברת פקודות. פורט 20 משמש להעברת המידע עצמו.
22 SSH TCP Secure Shell – בדומה ל- Telnet - פרוטוקול שמאפשר לבצע פעולות ולשלוח פקודות למחשב או לרכיב רשת מרוחק (כמו Switch או Router). בפרוטוקול זה התקשורת מאובטחת ומוצפנת.
23 TELNET TCP TELecommunication NETwork - פרוטוקול שמאפשר לבצע פעולות ולשלוח פקודות למחשב או רכיב רשת מרוחק (כמו Switch או Router).
25 SMTP TCP Simple Mail Transfer Protocol - פרוטוקול זה נמצא בצד מחשב הלקוח, ומאפשר לתוכנת האימייל של הלקוח לשלוח אימייל לשרת האימייל.
53 DNS UDP Domain Name System - פרוטוקול המאפשר המרת כתובות מתחם – (Domain) - כתובת של אתר אינטרנט לכתובות לוגיות (IP).
67,68 DHCP UDP Dynamic Host Configuration Protocol - פרוטוקול שמאפשר מתן כתובת לוגית (IP) באופן אוטומטי בעת התחברות של מחשב לרשת. [67 – פורט הודעה מלקוח לשרת, 68 – פורט הודעה משרת ללקוח].
69 TFTP UDP Trivial File Transfer Protocol - גרסה פשוטה של פרוטוקול FTP המיועדת למשל לשמירה וטעינה של הגדרות של שרתים, מערכות הפעלה עדכונים וכו'.
80 HTTP TCP Hypertext Transfer Protocol - פרוטוקול תקשורת להעברת דפי מידע מסוג HTML הנפוץ ביותר ברשת האינטרנט.
110 POP TCP פרוטוקול Post Office Protocol - פרוטוקול זה נמצא בצד מחשב הלקוח, ומאפשר לתוכנת האימייל של הלקוח למשוך (להוריד) את הודעות האימייל לתוכנה.
143 IMAP TCP פרוטוקול Internet Message Access Protocol - פרוטוקול זה נמצא בצד מחשב הלקוח, ומאפשר לתוכנת האימייל של הלקוח למשוך (להוריד) את הודעות האימייל לתוכנה.
443 HTTPS TCP Hypertext Transfer Protocol Secure - בדומה לפרוטוקול HTTP, פרוטוקול זה גם הוא מיועד להעברת דפי מידע מסוג HTML, אלא שפרוטוקול זה מעביר מידע בצורה מאובטחת ומוצפנת.

 

תצוגת השיחות הקיימות בין הלקוח לשרת

ניתן להציג את השיחות הקיימות בין הלקוח (אתם) לבין השרת שאיתו אתם מתקשרים, אם נרשום את הפקודה netstat או בשילוב של netstat -n נוכל לראות רשימה כזאת:

ברשימה זו ניתן לראות שיחות פעילות רואים שיחות TCP, וניתן לראות איך שקע הרשת של מחשב הלקוח – Local Address מחובר לשקע הרשת של השרת – Foreign Address. שקע הרשת הוא כתובת ה- IP של המחשב ומספר הפורט, ניתן לראות שמספר הפורט של הלקוח גבוה ומוגרל, ואילו מספר הפורט של היעד הוא מספר קבוע וידוע. 443 זה פרוטוקול HTTPS, 80 זה פרוטוקול HTTP ו- 21 זה פרוטוקול FTP. ניתן לראות גם את מצב הקישוריות של ה- TCP.

You may also like...

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

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