מבוא לרשתות תקשורת

האינטרנט הינה רשת מחשבים המחברת מיליארדים של מכשירים מגוונים אחד עם השני.
בעבר היינו מתייחסים למכשירים האלו כמחשבים בלבד. אך זה כלל לא המצב בעידן של היום.
Screenshot 2024-01-02 at 21.58.58.png|450

המכשירים האלה מסווגים כ hosts או כ end systems
מערכות קצה, מחוברות על ידי רשת הנקראת communication links שלה יש מגוון רחב של סוגים שכל סוג יכול להעביר מידע בתדירות שונה (transmission rate).

כשמערכת קצה שולחת מידע למערכת אחרת, היא מבצעת חלוקה (segmentation) של המידע ומוסיפה headers לכל חלק. התוצאה הסופית של זה נקראת פקטה (packet).
בהגעה אל היעד הפקטה ״מתפרקת״ ומתקבל המידע הרצוי.

packet switch הוא אמצעי שלוקח פקטה מחיבור תקשורת נכנס ומעבירה אותה לחיבור תקשורת יוצא. שני הסוגים המוכרים של ״ממתגי מנה״ הם link layer switch ו router . הראשון יותר נפוץ ב Access Network והשני יותר נפוץ ב Core Network

Pasted image 20240102222601.png

כל מערכת קצה ניגשת לאינטרנט באמצעות ISP שכל אחד כזה מהווה רשת של packet switches ו communication links.

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

הרשת כ service description

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

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

פרוטוקול

נסתכל על הדיאגרמה הבאה כדי להבין מהו פרוטוקול

Screenshot 2024-01-02 at 23.48.51.png|450
כשבן אדם א׳ מבקש מבן אדם ב׳ את השעה זוהי מוסכמה שקודם כל צריכה להיות מעין ״ברכת איחול״ קודם לכן ולאחר מכן שאלה ותשובה. התגובה של בן אדם א׳ תלויה בחינוך ובתרבות שהוא חי בה. אם כן , פרוטוקול הוא בעצם מוסכמה ששני הצדדים צריכים להסכים עליה כדי שתוכל להתבצע ה״שיחה״. דוגמה נוספת יכולה להיות מורה שעוצר את השיעור בכתה תחת האמרה ״יש שאלות?״ ותלמיד יכול לשאול שאלה על ידי הרמה של היד ואישור המורה לאחר שזיהה את התלמיד ולאפשר לו לשאול את השאלה, תלמיד שלא היה מרים את היד לא היה מקבל אישור מהמורה לשאול שאלה, גם אם בכוונתו לשאול.

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

Screenshot 2024-01-02 at 23.54.44.png

ארכיטקטורת שכבות

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

באנלוגיה לחיים האזרחיים, נסתכל על מערכת שכבות שמתארת את העלייה שלנו לטיסה

Screenshot 2024-01-04 at 8.42.17.png|400
Screenshot 2024-01-04 at 8.42.42.png

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

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

Protocol layering

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

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

Screenshot 2024-01-04 at 9.05.28.png|200

ישנם מספר ארכיטקטורות שכבות לאינטרנט שהראשית בינהם היא מודל 5 השכבות הנ״ל.

Note

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

Application Layer

שכבת האפליצייה היא המקום שבו שוכנים יישומי רשת והפרוטוקולים של שכבת היישומים שלהם. שכבת היישום של האינטרנט כוללת פרוטוקולים רבים, כמו פרוטוקול HTTP (המספק בקשה והעברה של מסמכי אינטרנט), SMTP (המספק העברת הודעות דואר אלקטרוני) ו-FTP (המספק העברת קבצים בין שניים מערכות קצה). פונקציות רשת מסוימות, כמו תרגום של שמות ידידותיים לאדם עבור מערכות קצה אינטרנט כמו www.ietf.org לכתובת רשת של 32 סיביות, נעשות גם הן בעזרת פרוטוקול של שכבת האפליקצייה, כלומר, מערכת שמות הדומיין (DNS).

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

Transport Layer

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

Network Layer

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

שכבת הרשת של האינטרנט מנתבת datagrams דרך סדרה של ראוטרים בין המקור ליעד. כדי להעביר פקטה מצומת אחד (host או ראוטר) לצומת הבא במסלול, שכבת הרשת מסתמכת על שירותי שכבת הקישור. בפרט, בכל צומת, שכבת הרשת מעבירה את ה-Datagram למטה אל שכבת הקישור, אשר מעבירה את ה-Datagram לצומת הבא לאורך המסלול. בצומת הבא זה, שכבת הקישור מעבירה את הנתונים גרמה למעלה לשכבת הרשת.
השירותים שמספקת שכבת הקישור תלויים בפרוטוקול הקישור הספציפי המופעל על הקישור. לדוגמה, כמה פרוטוקולים של שכבת קישור מספקים מסירה אמינה, מצומת שידור, דרך קישור אחד, ועד לצומת קבלה. שימו לב ששירות משלוחים אמין זה שונה משירות המשלוחים האמין של TCP, המספק משלוח אמין ממערכת קצה אחת לאחרת. דוגמאות לפרוטוקולים של שכבת קישור כוללות Ethernet, WiFi ופרוטוקול DOCSIS של רשת הגישה לכבלים. מכיוון שגרמות נתונים בדרך כלל צריכות לעבור מספר קישורים כדי לנסוע ממקור ליעד, ייתכן ש-Datagram יטופל על ידי פרוטוקולים שונים של שכבת קישור בקישורים שונים לאורך המסלול שלה. לדוגמה, דאטהגרם עשוי להיות מטופל על ידי Ethernet בקישור אחד ועל ידי PPP בקישור הבא. שכבת הרשת תקבל שירות שונה מכל אחד מהפרוטוקולים השונים של שכבת הקישור. נתייחס למנות שכבת הקישור כאל frames.

Physical Layer

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

Encapsulation

Screenshot 2024-01-06 at 20.48.47.png
התמונה ממחישה את הרעיון החשוב של אנקפסולציה ברשת. במארח השולח, הודעת שכבת יישום M מועברת לשכבת התחבורה. במקרה הפשוט ביותר, שכבת התעבורה לוקחת את ההודעה ומצרפת מידע נוסף Ht שישמש את שכבת התעבורה בצד המקלט. הודעת שכבת היישום ומידע הכותרת של שכבת התעבורה מהווים יחד את מקטע שכבת התעבורה. קטע שכבת ההובלה מכסה אפוא את הודעת שכבת היישום. המידע הנוסף עשוי לכלול מידע המאפשר לשכבת התחבורה בצד המקלט להעביר את ההודעה עד ליישום המתאים, וביטים לזיהוי שגיאות המאפשרים למקלט לקבוע אם סיביות בהודעה שונו במסלול. לאחר מכן, שכבת התחבורה מעבירה את הקטע לשכבת הרשת, אשר מוסיפה מידע על כותרת רשת (Hn באיור 1.24) כגון כתובות מקור וכתובות קצה של מערכת היעד, ויוצרת נתונים גרמה של שכבת רשת. לאחר מכן, הדאטהגרם מועבר לשכבת הקישור, אשר תוסיף מידע כותרת של שכבת קישור משלה ותיצור מסגרת של שכבת קישור. לפיכך, אנו רואים שבכל שכבה, לחבילה יש שני סוגים של שדות: שדות כותרת ושדה payload. הpayload הוא בדרך כלל חבילה מהשכבה שלמעלה.

המסקנה היא בעצם שפקטה שעוברת באינטרנט בעצם נראת מהצורה
Pasted image 20240118234922.png