רשתות מחשבים PDF
Document Details
Uploaded by RapturousCherryTree
Handasaim High School
2020
עומר רוזנבוים, ברק גונן, תומר גביש, מתן זינגר, רמי עמר, שלומי בוטנרו, שלומי הוד
Tags
Summary
This textbook, "Computer Networks", version 3.2 from November 2020, is a comprehensive resource on computer networks. It is a detailed guide, covering topics from the fundamentals of internet operations to advanced topics on networking protocols. The book is written for undergraduate students.
Full Transcript
רשתות מחשבים גרסה 3.2נובמבר 2020 כתיבה עומר רוזנבוים – כותב ראשי...
רשתות מחשבים גרסה 3.2נובמבר 2020 כתיבה עומר רוזנבוים – כותב ראשי ברק גונן תומר גביש מתן זינגר רמי עמר שלומי בוטנרו שלומי הוד עריכה עומר רוזנבוים ברק גונן שלומי הוד אין לשכפל ,להעתיק ,לצלם ,להקליט ,לתרגם ,לאחסן במאגר מידע ,לשדר או לקלוט בכל דרך או אמצעי אלקטרוני ,אופטי או מכני או אחר – כל חלק שהוא מהחומר שבספר זה.שימוש מסחרי מכל סוג שהוא בחומר הכלול בספר זה אסור בהחלט ,אלא ברשות מפורשת בכתב ממטה הסייבר הצה"לי. © כל הזכויות על החומרים ממקורות חיצוניים ששובצו בספר זה שמורות לבעליהן.פירוט בעלי הזכויות – בסוף הספר. © תשע"ד -תש"פ.2020 - 2014 ,כל הזכויות שמורות למרכז לחינוך סייבר של קרן רש"י. הודפס בישראל. http://www.cyber.org.il 3 תוכן עניינים תוכן עניינים תוכן עניינים 4................................................................................................................... מבוא 10.......................................................................................................................... קהל היעד של הספר 10............................................................................................................. שיטת הלימוד של הספר 11......................................................................................................... צעדים להמשך 11.................................................................................................................. ידע מקדים נדרש 11.................................................................................................................. התקנות נדרשות 12.................................................................................................................. אייקונים 19............................................................................................................................. תודות 19................................................................................................................................ תוכן עניינים מצגות 20........................................................................................................ פייתון 20............................................................................................................................. רשתות 21........................................................................................................................... פרק 22.........................................................................................................................1 תחילת מסע – איך עובד האינטרנט? 22................................................................................ 23................................................................................................ World Wide Web – WWW כתובות 24.......................................................................................................................... IP 28.............................................................................................................................. GeoIP ענן האינטרנט 30...................................................................................................................... 34................................................................................................................................. DNS איך עובד האינטרנט – סיכום 36.................................................................................................. פרק 37.........................................................................................................................2 תכנות ב37........................................................................................................ Sockets- שרת-לקוח 37.......................................................................................................................... אז מה זה בעצם 39.................................................................................................... ? Socket כתובות של 39............................................................................................................. Socket סיכום תכנות ב59....................................................................................................... Sockets- פרק 60.........................................................................................................................3 Wiresharkומודל חמש השכבות 60..................................................................................... מודל חמש השכבות 60.............................................................................................................. כיצד ניתן לארגן את כל המידע הזה?61.................................................................................. מה זה בעצם אומר מודל של שכבות? 61................................................................................. פרוטוקול – הגדרה 64......................................................................................................... כיצד בנויה פקטה (66........................................................................................... ?)Packet פירוט חמש השכבות 68......................................................................................................... שכבה ראשונה – השכבה הפיזית 68...................................................................................... שכבה שנייה – שכבת הקו 68................................................................................................ שכבה שלישית – שכבת הרשת 69......................................................................................... שכבה רביעית – שכבת התעבורה70...................................................................................... שכבה חמישית – שכבת האפליקציה 70.................................................................................. מודל השכבות ו72................................................................................................... Sockets- 4 למה המידע מחולק לפקטות? 73........................................................................................... 74........................................................................................................................ Wireshark 75........................................................................................................... Capture Options התחלה ועצירה של הסנפה 76................................................................................................. שמירה ופתיחה של קבצי הסנפה 77......................................................................................... מסננים (78.............................................................................................................. )Filters סוגי מסננים 78.................................................................................................................. דוגמאות 78....................................................................................................................... שימוש ב Wireshark-לניתוח מודל חמש השכבות 82...................................................................... 87.............................................................................................. Follow TCP/UDP Stream סטטיסטיקות 88.................................................................................................................... סיכום Wiresharkומודל חמש השכבות 90.................................................................................... פרק 91.........................................................................................................................4 שכבת האפליקציה 91......................................................................................................... פרוטוקול – HTTPבקשה ותגובה 91........................................................................................... מהו משאב רשת? 92.......................................................................................................... עיקרון "בקשה-תגובה״ 93.................................................................................................... שורת הבקשה של 93................................................................................................... HTTP שורת התגובה של 93.................................................................................................. HTTP סיכום ביניים של התקשורת שראינו94....................................................................................... מה מסתתר בתוך הבקשה/תגובה? Headerים ("מבוא") ב94............................................. HTTP- מבנה פורמלי של בקשת 95.......................................................................................... HTTP מבנה פורמלי של תשובת 96......................................................................................... HTTP תוכן (מידע – )Dataב97.............................................................................................HTTP- פרוטוקול – HTTPתכנות צד שרת בפייתון ,הגשת קבצים בתגובה לבקשת 98......................... GET שלד קוד של תרגיל כתיבת שרת 101........................................................................... HTTP הוספת אייקון לדפדפן 102.................................................................................................... כלי דיבוג – 102.............................................................................................. breakpoints כלי דיבוג – דפדפן כרום103................................................................................................. כלי דיבוג – 104................................................................................................ Wireshark פרוטוקול – HTTPתשובה "תכנותית" לבקשות ,GETופרמטרים של בקשת 107......................GET פרוטוקול – HTTPבקשות POSTותכנות צד לקוח בפייתון (הרחבה) 112........................................ האם ניתן להשתמש בפרמטרים של בקשת GETכדי להעביר את כל התמונה? 113........................ – HTTPסיכום קצר 114......................................................................................................... – HTTPנושאים מתקדמים ותרגילי מחקר 116............................................................................... ( Cacheמטמון) 116.............................................................................................................. "( Cookiesעוגיות") 118......................................................................................................... פרוטוקול – DNSהסבר כללי 122............................................................................................... היררכיית שמות 123.............................................................................................................. גלישה לאתרים שנמצאים על שרתי אחסון127............................................................................ מחקר פרוטוקול – 132.................................................................................................... SMTP שכבת האפליקציה – סיכום 134.................................................................................................. שכבת האפליקציה – צעדים להמשך135....................................................................................... קריאה נוספת 135................................................................................................................. נושאים מתקדמים בפרוטוקול 135............................................................................... HTTP נושאים מתקדמים בפרוטוקול 135................................................................................. DNS פרוטוקולים נוספים בשכבת האפליקציה 135............................................................................ פרק 136.......................................................................................................................5 136..................................................................................................................... Scapy מבוא ל136.................................................................................................................. Scapy- 5 תוכן עניינים מה למשל אפשר לעשות עם 136.............................................................................. ?Scapy בואו נתחיל – הרצת 137................................................................................................. Scapy קבלה של פקטות (או – הסנפה) 138............................................................................................ כיצד נוכל לסנן חבילות לא מזוהות? 147................................................................................ הסנפה – סיכום 148.............................................................................................................. יצירת חבילות 148.................................................................................................................... שכבות 150............................................................................................................................. 152....................................................................................................................... Resolving שליחת פקטות 152................................................................................................................... שימוש ב Scapy-מתוך קובץ סקריפט153..................................................................................... – Scapyסיכום 154................................................................................................................. – Scapyצעדים להמשך 154..................................................................................................... קריאה נוספת 154................................................................................................................. תרגיל מתקדם154................................................................................................................ פרק 156.......................................................................................................................6 שכבת התעבורה 156......................................................................................................... מה התפקיד של שכבת התעבורה? 156........................................................................................ ריבוב אפליקציות – פורטים 156............................................................................................... מי מחליט על מספרי הפורטים? 161...................................................................................... העברה אמינה של מידע 162................................................................................................... מיקום שכבת התעבורה במודל השכבות162.................................................................................. מה השירותים ששכבת התעבורה מספקת לשכבה שמעליה? 162................................................... מה השירותים ששכבת התעבורה מקבלת מן השכבה שמתחתיה? 163.......................................... פרוטוקולים מבוססי קישור ולא מבוססי קישור 163.......................................................................... פרוטוקולים מבוססי קישור 163................................................................................................ פרוטוקולים שאינם מבוססי קישור 164...................................................................................... מתי נעדיף פרוטוקול מבוסס קישור ומתי פרוטוקול שלא מבוסס קישור? 165.................................. מקרה מבחן :תוכנה להעברת קבצים גדולים 165...................................................................... מקרה מבחן :פרוטוקול 165.......................................................................................... DNS מקרה מבחן :תוכנה לשיתוף תמונות 166................................................................................ מקרה מבחן166.................................................................................................... Skype : 168..................................................................................... UDP – User Datagram Protocol מה גודל ה Header-של חבילת 168............................................................................ ?UDP אילו שדות יש ב Header-של חבילת ?UDPמה התפקיד של כל שדה? 169.................................. מה מציין שדה האורך ב169...................................................................................... ?UDP- מה זה 170.................................................................................................... ?Checksum Socketשל 173.............................................................................................................. UDP UDPב177................................................................................................................. Scapy- 185............................................................................ TCP – Transmission Control Protocol כיצד ניתן לוודא שהמידע מגיע אל היעד? כיצד ניתן לוודא שהוא מגיע בסדר הנכון? 185................... איך TCPמשתמש ב188.................................................................. ?Sequence Numbers- איך TCPמשתמש ב191..................................................... ?Acknowledgement Numbers- מענה ב ACK-יחיד למספר חבילות 194.................................................................................... הקמת קישור ב195...................................................................................................... TCP- חבילה ראשונה – 196................................................................................................. SYN חבילה שנייה – 197......................................................................................... SYN + ACK חבילה שלישית – 198................................................................................................. ACK העברת מידע על גבי קישור שנוצר 209...................................................................................... תפקידים ושיפורים נוספים של 211.................................................................................... TCP רשתות מחשבים 6 שכבת התעבורה – סיכום 212..................................................................................................... שכבת התעבורה – צעדים להמשך 213......................................................................................... קריאה נוספת 213................................................................................................................. נספח א' – 214.................................................................................................... TCP Header פרק 216.......................................................................................................................7 שכבת הרשת 216............................................................................................................. מה תפקידה של שכבת הרשת? 216............................................................................................ אילו אתגרים עומדים בפני שכבת הרשת? 218............................................................................ מיקום שכבת הרשת במודל השכבות 218...................................................................................... מה השירותים ששכבת הרשת מספקת לשכבה שמעליה? 218....................................................... מה השירותים ששכבת הרשת מקבלת מהשכבה שמתחתיה? 219.................................................. מסלולים ברשת 219................................................................................................................. מה צריכה שכבת הרשת לדעת בכדי להחליט כיצד לנתב?221....................................................... עשה זאת בעצמך – תכנון מסלול ניתוב 222............................................................................. פרוטוקול 223...................................................................................................................... IP כתובות 223..................................................................................................................... IP מה כתובת ה IP-שלי?223................................................................................................... מה זו כתובת 224.........................................................................................................?IP כמה כתובות IPאפשריות קיימות? 225.................................................................................. מהו מזהה הרשת שלי? מהו מזהה הישות? 228......................................................................... כתובות IPמיוחדות 231......................................................................................................... כתובות פרטיות ו233........................................................................................................ NAT- ניתוב 238............................................................................................................................... נתב (238............................................................................................................... )Router כיצד נתב מחליט לאן לנתב?239.......................................................................................... מהי טבלת הניתוב שלי? 241............................................................................................... 243............................................................................................................................. ICMP איך Pingעובד? 243............................................................................................................. איך Tracerouteעובד? 254................................................................................................... 261............................................................................................................................ DHCP שכבת הרשת – סיכום 271......................................................................................................... שכבת הרשת – צעדים להמשך 272............................................................................................. קריאה נוספת 272................................................................................................................. נספח א' – 274........................................................................................................ IP Header נספח ב' – 278................................................................................................................ IPv6 כתובות 278................................................................................................................. IPv6 279.................................................................................................................. IPv6 Header פרק 281.......................................................................................................................8 שכבת הקו 281................................................................................................................. מה התפקיד של שכבת הקו? 281................................................................................................ איפה ממומשת שכבת הקו? 282........................................................................................... פרוטוקול 283............................................................................................................ Ethernet מהי הכתובת שלי בשכבת הקו? 283......................................................................................... איך בנויה כתובת 287............................................................................................ ?Ethernet כתובת 288......................................................................................................... Broadcast מבנה מסגרת 289.................................................................................................. Ethernet פרוטוקול 294................................................................. Address Resolution Protocol – ARP מטמון ( )Cacheשל 296................................................................................................ ARP 7 תוכן עניינים שליחת מסגרות בשכבה שנייה באמצעות 300..................................................................... Scapy רכיבי רשת בשכבת הקו ובשכבה הפיזית 302................................................................................ ( Hubרכזת) 302.................................................................................................................. ( Switchמתג) 304............................................................................................................... כיצד Switchפועל?305...................................................................................................... שכבת הקו – סיכום 310............................................................................................................. נספח א' – התנגשויות 311.......................................................................................................... ערוץ משותף – הגדרה 311...................................................................................................... מהי התנגשות? 312.............................................................................................................. מה תפקידה של שכבת הקו בנוגע להתנגשויות? 312................................................................... מניעת התנגשויות 313........................................................................................................... שכבת הקו – צעדים להמשך 315................................................................................................. קריאה נוספת 315................................................................................................................. נספח א' – כתובות Ethernetשל קבוצות 317................................................................................ פרק 321.......................................................................................................................9 רכיבי רשת321................................................................................................................. ( Hubרכזת) 321..................................................................................................................... ( Switchמתג)322................................................................................................................... ( Routerנתב) 323................................................................................................................... טבלת סיכום 324...................................................................................................................... פרק 325.....................................................................................................................10 השכבה הפיזית (העשרה)325............................................................................................. מבוא 325............................................................................................................................... עמודי התווך של התקשורת 326.................................................................................................. העברת מידע באוויר 327........................................................................................................ גלים נושאי מידע 329............................................................................................................. כבלי נחושת כתווך תקשורת 333.............................................................................................. הרשת בבית333...................................................................................................................... קו הטלפון הביתי ,או למה צריך פילטר למודם 334........................................................... ?ADSL איך עובד טלפון? 334.......................................................................................................... איך עובד מודם? 336.......................................................................................................... אנלוגי ,דיגיטלי ומה שביניהם 338.......................................................................................... סיכום ביניים 341...................................................................................................................... הרשת המשרדית 342............................................................................................................... משרד קטן 342..................................................................................................................... משרד גדול 345.................................................................................................................... ספק תקשורת 347................................................................................................................ השכבה הפיזית – סיכום 349...................................................................................................... נספח א' – הרשת האלחוטית 350................................................................................................ פרק 352.....................................................................................................................11 איך הכל מתחבר ,ואיך עובד האינטרנט? 352......................................................................... מה קורה כשאנו גולשים ל352................................................................................. ?Facebook- מה המחשב שלנו צריך לעשות בכדי להצליח לתקשר עם האינטרנט? 352........................................... איזה מידע יש למחשב שלנו על הרשת? 353................................................................................. איך המחשב שלנו משיג את כתובת ה IP-ושאר פרטי הרשת שלו? 353........................................... איך ההודעה הגיעה אל שרת ה354............................................................................. ?DHCP- מה השלב הבא? 354............................................................................................................ רשתות מחשבים 8 מהו שרת ה DNS-שלנו? כיצד המחשב יודע זאת? 355................................................................... כיצד המחשב שלנו יודע לפנות אל שרת ה355................................................................. ?DNS- איך נצליח לתקשר עם הנתב? 356........................................................................................... איך ה Switch-יודע להעביר את ההודעות? 357............................................................................. מהן הכתובות בחבילה?358....................................................................................................... כתובות ה358............................................................................................................. MAC- כתובות ה360................................................................................................................. IP- מהן הכתובות בתחנה הבאה? 360........................................................................................... כתובות ה362............................................................................................................. MAC- כתובות ה362................................................................................................................. IP- מה עושה כל נתב עם החבילה? 363............................................................................................ כיצד מוצא המחשב את כתובת ה IP-של 364...............................................................?Facebook מה השלב הבא? 364................................................................................................................ באילו פורטים תתבצע התקשורת?365......................................................................................... כיצד נראית הרמת הקישור? 366................................................................................................. איך נראית בקשת ה369............................................................................................... ?HTTP- איך נראית תשובת ה369.............................................................................................. ?HTTP- מה קורה כאשר המחשב שלנו נמצא מאחורי 370................................................................. ?NAT איך הכל מתחבר ,ואיך עובד האינטרנט – סיכום 373....................................................................... פרק 374.....................................................................................................................12 תכנות Socketsמתקדם :ריבוי משתמשים (הרחבה) 374........................................................ שירות לכמה לקוחות במקביל 375............................................................................................... הפתרון – 376............................................................................................................... Select קריאה לפונקציה 378................................................................................................... select תיאור הפרוטוקול 392............................................................................................................ צד הלקוח 392................................................................................................................... צד השרת 395................................................................................................................... תכנות Socketsמתקדם – סיכום 396.......................................................................................... פרק 397.....................................................................................................................13 מילון מושגים 397.............................................................................................................. פרק – 1תחילת מסע – איך עובד האינטרנט? 397......................................................................... פרק – 2תכנות ב397................................................................................................. Sockets- פרק Wireshark – 3ומודל חמש השכבות 398.............................................................................. פרק – 4שכבת האפליקציה 398................................................................................................. פרק 400................................................................................................................ Scapy – 5 פרק – 6שכבת התעבורה400.................................................................................................... פרק – 7שכבת הרשת 401........................................................................................................ פרק – 8שכבת הקו403............................................................................................................ פרק – 10השכבה הפיזית 403................................................................................................... פרק 407.....................................................................................................................14 פקודות וכלים 407............................................................................................................. הרשימה 407........................................................................................................................... זכויות יוצרים – מקורות חיצוניים409..................................................................................... 9 תוכן עניינים מבוא רשתות תקשורת הן דבר מדהים.מאז ומעולם ,בני אדם רצו להעביר מסרים ביניהם.בעבר הרחוק ,בהיעדר אמצעים אחרים ,התבססה התקשורת בעיקר על תקשורת מילולית ושפת גוף.על מנת להעביר מסרים למרחקים גדולים יותר ,נעשה שימוש בשליחים.בתקופת המערות ,החל האדם הקדמון לעשות שימוש בציורי מערות בכדי לתקשר.בשלב מאוחר יותר הופיע הכתב – מערכת סימנים מוסכמת שאפשרה העברת מסרים בצורה רחבה יותר.המצאת הדפוס ,במאה ה ,15-אפשרה להעביר ידע ומסרים לאנשים רבים ובעלות העתקה נמוכה יחסית. במאה ה 19-החלה מתפתחת התקשורת האלקטרונית ,המאפשרת תקשורת המונים מהירה ויעילה.כבני אדם ,עברנו דרך ארוכה מאז שהתקשורת התבססה על תקשורת מילולית ,ועד לשימוש היום יומי בגלישה באינטרנט ,בדואר אלקטרוני או בתוכנות העברת מסרים כגון .WhatsAppהמהפכה התקשורתית משפיעה על כל תחומי החיים שלנו – על הדרך בה אנו מדברים זה עם זה ,על הדרך בה אנו מחפשים מידע כדי ללמוד, על מידת ההיכרות שלנו עם העולם הסובב אותנו ואף על החלטות שאנו מקבלים בחיינו. התפתחות התקשורת והתפתחות המחשוב שזורים זה בזה.עולם המחשבים משתנה ומתפתח בקצב מהיר. בעוד המחשבים הראשונים היו מבודדים זה מזה ,רוב מכריע של המחשבים כיום מחוברים זה לזה דרך רשת האינטרנט ,שהיא למעשה רשת של תת רשתות.לכל רשת יש את המאפיינים שלה :יש רשתות קטנות (בהן מחוברים למשל שני מחשבים) ,רשתות בינוניות (כמו רשת של בית ספר ,שיכולה לחבר כמה עשרות או מאות מחשבים) ורשתות גדולות (כמו רשת של חברה עם אלפי מחשבים).יש רשתות קוויות ורשתות אלחוטיות, רשתות מהירות ורשתות איטיות.מטרת כל הרשתות הינה להעביר מידע בין מחשבים. הספר נכנס אל תוך העולם המדהים של רשתות מחשבים.נלמד כיצד עובדת התקשורת בין מחשבים ,נכיר סוגים שונים של רשתות ,נבין איך הן בנויות ואיך הכל מתחבר לעולם הווירטואלי שאנו מכירים כיום. קהל היעד של הספר הספר מיועד לשני קהלי יעד עיקריים: .1תלמידים ומורים הלומדים במסגרת חלופת הגנת סייבר במגמת הנדסת תוכנה. .2כל מי שמעוניין ללמוד את תחום רשתות מחשבים באופן עצמאי. 10 שיטת הלימוד של הספר ספר זה ככל הנראה שונה מספרי לימוד אחרים שהכרתם.הספר נועד לאפשר לימוד עצמאי ,והוא פרקטי מאוד וכולל תרגול רב.רשתות מחשבים הינו נושא עצום ומורכב ,ולא ניתן לכסות את כולו או מרביתו בספר אחד.הקו שהנחה אותנו בהחלטה אילו נושאים ייכללו בספר זה ואילו יישארו מחוצה לו היה מעשיות – הספר מתמקד באותם נושאים אשר ניתן ליישם ולתרגל בקלות יחסית.הספר כולל מעט מאוד נושאים שהם תיאורטיים בלבד ,ורובו ככולו מתעסק במימושים אמיתיים וביטויים ברשת האינטרנט.כבר מהפרק השני של הספר ,הלימוד ילווה בכתיבת קוד מצד הלומד. במהלך הלימוד בספר ,עליכם לתפקד כלומדים פעילים – כלומר ,לא רק לקרוא ולהבין את החומר ,אלא גם לתרגל אותו.בספר משולבים תרגילים רבים ,חלק מודרכים וחלק לביצוע עצמי.בכדי לרכוש שליטה בחומר הלימוד ,יש לבצע את כל התרגילים ולוודא שאתם מבינים אותם.התרגילים המודרכים נבנו כך שהם מפורקים למשימות מובנות המתבססות זו על זו ,ומניחות שהלומד מבצע בפועל את ההנחיות.אל תסתפקו בקריאת התרגילים המודרכים ,והקפידו לבצע אותם שלב אחרי שלב. אחת ממטרות הספר היא להקנות כלים בהם תוכלו להשתמש בעצמכם ,כדי להרחיב את אופקיכם ,לחקור וללמוד באופן עצמאי.אי לכך ,תזכו במהלך הקריאה להיחשף לתוכנות ,כלי תכנות ודרכי חשיבה שיאפשרו לכם להרחיב את הידע גם מעבר למה שמופיע בספר זה. צעדים להמשך כחלק משיטת הלימוד של הספר ,המעודדת למידה עצמאית ,בסוף חלק מהפרקים הוספנו סעיף "צעדים להמשך".סעיף זה נועד לתלמידים סקרנים המעוניינים להרחיב את הידע ,וכולל מקורות מידע נוספים ותרגילים מתקדמים. ידע מקדים נדרש ספר זה מניח כי לקורא היכרות בסיסית לפחות עם השפה .Pythonבהתאם לצורך ,אתם מוזמנים להשתמש בספר הלימוד של שפת Pythonמאת ברק גונן ,הזמין בכתובת: https://data.cyber.org.il/python/python_book.pdf 11 מבוא התקנות נדרשות כאמור ספר הלימוד מבוסס על שפת פייתון.ישנן התקנות רבות של פייתון ,לכן נרצה להמליץ על סביבת עבודה ושימוש נכון בסביבת העבודה.גרסת הפייתון של ההתקנה היא ,3.8בתואם לספר הלימוד.התקנה זו כוללת את כל הכלים הנוספים שנצטרך להשתמש בהם במהלך הלימוד (כגון .)wireshark, scapy שימו לב: התוכנות הן עבור מערכת ההפעלה ,Windows10עבור מערכות הפעלה אחרות ישנן גרסאות ספציפיות של התוכנות ויש להוריד אותן באופן עצמאי.יתר ההתקנה צפוי להיות דומה. התוכנות הן (לפי סדר ההתקנה): .1פייתון ,גרסה 3.8.0 .2סביבת פיתוח ,PyCharmגרסה 2019.2.5 .3דרייבר הסנפה מכרטיס רשת Npcap ,גרסה 0.9984 .4תוכנת הסנפה Wiresharkגרסה 3.0.6 .5מודול יצירת פקטות של פייתון Scapy ,גרסה 2.4.3 קובץ התקנה מרוכז נמצא בכתובת: https://data.cyber.org.il/networks/installs.zip אפשר להתקין את התוכנות בכל תיקיה ,אך מנסיון רב שנים התקנה "מפוזרת" של התוכנות גורמת אינספור בעיות ללומדים.לדוגמה ,חלק מהתוכנות לא מסוגלות לזהות תיקיות שיש בהן עברית.חלק מהתוכנות דורשות התאמה של משתני סביבה.אם תפעלו לפי ההוראות הבאות ,תחסכו לעצמכם בעיות.שימו לב למבנה התיקיות המומלץ בסיום ההתקנות: התיקיה הראשית היא ,Networksשם נשים את כל תתי התיקיות.ישנן חמש תיקיות המיועדות להתקנות ותיקיה נוספת בשם Workהמיועדת לקבצי הפייתון שלכם. רשתות מחשבים 12 א.התקנת פייתון הקליקו על הקובץ ,python-3.8.0.exeיופיע מסך ההתקנה הבא: בחרו באפשרות ”.“customize installation בחרו באפשרויות הבאות: ובמסך הבא בחרו את האפשרויות המסומנות ,והזינו בתור תיקיית התקנה את :c:\Networks\Python3.8 13 מבוא כעת בידקו שפייתון מוגדר בתוך ה PATH-של משתני הסביבה שלכם.במסך החיפוש של windowsהקלידו envובחרו באפשרות .Edit The System Environment Variablesהקליקו על הלחצן Environment .Variables וודאו שבתוך המשתנה PATHיש את שתי הכניסות הבאות.אם הן אינן ,הוסיפו אותן ידנית (בהנחה שהתקנתם את פייתון בתוך )c:\networks\python3.8 רשתות מחשבים 14 כדי לוודא שהכל עובד כשורה ,פיתחו cmdוהקלידו .pythonצפוי שתקבלו את ההדפסה הבאה: בPyCharm. הקליקו על קובץ ההתקנה ,היא תתבצע מעצמה. עם ההפעלה ,בחרו באפשרות ” “Create new projectופיתחו פרוייקט בספריה .c:\networks\work תצטרכו להגדיר היכן נמצא ה python interpreter-שלכם ,בצעו זאת כך: 15 מבוא אפשרות נוספת היא להגדיר את ה Interpreter -בעצמכם ,עבור כל קובץ אותו אתם מריצים.מתי נכון "Invalid Python Interpreter selected for the לעשות זאת? אם קבלתם הודעת שגיאה ".projectההודעה מופיעה שורות הקוד של הקובץ אותו אתם מנסים להריץ: הקליקו על " "Configure Python Interpreterבצד הימני של ההודעה ותעברו למסך ההגדרות הבא: שנו את הערך של ה Python interpreter-כך שיצביע על הקובץ Python.exeשבתיקיה ,c:\networks\work\python3.8כעת הקליקו על כפתור ה OK-והבעיה נעלמה. ג Wireshark.וnpcap- הקליקו על תוכנת ההתקנה של .Wiresharkהתוכנה תשאל אם ברצונכם להתקין על הדרך את ,npcap בחרו באפשרות הזו. הקליקו על האייקון של .Wiresharkהתוכנה תגלה באופן אוטומטי את כל ממשקי הרשת שלכם.כרטיס רשת פעיל יראה גרף עולה ויורד ,בהתאם לרמת הפעילות. רשתות מחשבים 16 במקרה זה ,המחשב מחובר דרך .Wi-Fiבחרו בממשק הפעיל והתחילו הסנפה. הscapy. העתיקו את התוכן של התיקיה scapy-masterמקובץ ה zip-אל תיקיית .c:\networks\scapy פיתחו cmdוהקלידו cd c:\networks\scapy כדי להתקין הקלידו python setup.py install כדי לבדוק אם ההתקנה הצליחה ,הקלידו .scapyתקבלו את המסך הבא ,אין מה להיות מוטרדים מהודעות השגיאה -הן שייכות למודולים שאין לנו צורך בהם. 17 מבוא כדי לוודא שה scapy-שלכם עובד כשורה ,הסניפו באמצעותו 2פקטות והציגו אחת מהן: זהו ,סיימנו.מוכנים להתחיל לעבוד! רשתות מחשבים 18 אייקונים בספר זה אנו משתמשים באייקונים הבאים בכדי להדגיש נושאים ובכדי להקל על הקריאה: שאלה הגדרה למונח הדגשת נקודה חשובה "תרגיל מודרך".עליכם לפתור תרגילים אלו תוך כדי קריאת ההסבר תרגיל לביצוע.תרגילים אלו עליכם לפתור בעצמכם ,והפתרון בדרך כלל לא יוצג בספר פתרון מודרך לתרגיל אותו היה עליכם לפתור בעצמכם רקע היסטורי ,או מידע העשרתי אחר הפניה לסרטון תודות אנשים רבים תרמו לתהליך יצירתו של ספר זה.איריס צור ברגורי ליוותה את הספר מתהליך התכנון ועד לשלביו הסופיים והשפיעה עליו רבות.תומר גלון מימש את צד השרת עבור תרגילים במהלך הספר.מיכל לשם סייעה באופן משמעותי בהבאת הספר לידי גרסה להפצה.משובים שקיבלנו על הספר לאורך הזמן שיפרו אותו ותרמו לו מאוד.באופן מיוחד אנו מבקשים להודות ליוסי ממו ומתן עבודי על הערותיהם הבונות. יוחאי אייזנרייך כתב פתרונות רבים לתרגילים הניתנים בספר ,ובכך סייע לשפר אותם וכן סיפק פתרונות לדוגמה עבור תלמידים.כמו כן אנו מבקשים להודות לדניאל גולדברג ,נעם ארז ,ליאור גרנשטיין ,יהודה אור ואנטולי פיימר על משוביהם.לכל המורים ,התלמידים והחברים שהשפיעו וסייעו בתהליך יצירת הספר – תודה רבה. עומר רוזנבוים ,ברק גונן ,שלומי הוד 19 מבוא תוכן עניינים מצגות פייתון Before we start: http://data.cyber.org.il/python/1450-3-00.pdf Intro and CMD: http://data.cyber.org.il/python/1450-3-01.pdf Pycharm: http://data.cyber.org.il/python/1450-3-02.pdf Variables, conditions and loops: http://data.cyber.org.il/python/1450-3-03.pdf Strings: http://data.cyber.org.il/python/1450-3-04.pdf Functions: http://data.cyber.org.il/python/1450-3-05.pdf Assert: http://data.cyber.org.il/python/1450-3-06.pdf Files and script parameters: http://data.cyber.org.il/python/1450-3-07.pdf Lists and tuples: http://data.cyber.org.il/python/1450-3-08.pdf Dictionaries: http://data.cyber.org.il/python/1450-3-09.pdf Object Oriented Programming: http://data.cyber.org.il/python/1450-3-10.pdf Utilities and exceptions: http://data.cyber.org.il/python/1450-3-11.pdf Regular expressions: http://data.cyber.org.il/python/1450-3-12.pdf 20 רשתות http://data.cyber.org.il/networks/1450-2-00.pdf :מבוא לשנת הלימודים http://data.cyber.org.il/networks/1450-2-01.pdf : – מבוא לרשתות מחשבים1 פרק http://data.cyber.org.il/networks/1450-2-02.pdf : – תכנות סוקטים2 פרק http://data.cyber.org.il/networks/1450-2-03.pdf :א – מודל חמש השכבות3 פרק http://data.cyber.org.il/networks/1450-2-04.pdf :wireshark – ב3 פרק http://data.cyber.org.il/networks/1450-2-05.pdf :HTTP א – שכבת האפליקציה4 פרק http://data.cyber.org.il/networks/1450-2-06.pdf : נושאים מתקדמיםHTTP – ב4 פרק http://data.cyber.org.il/networks/1450-2-07.pdf :DNS ג – פרוטוקול4 פרק http://data.cyber.org.il/networks/1450-2-08.pdf :SMTP ד – אבחון פרוטוקול4 פרק http://data.cyber.org.il/networks/1450-2-09.pdf :Scapy – 5 פרק http://data.cyber.org.il/networks/1450-2-10.pdf :א – שכבת התעבורה6 פרק http://data.cyber.org.il/networks/1450-2-11.pdf :ב–מבוא לפרוטוקולים של שכבת התעבורה6 פרק http://data.cyber.org.il/networks/1450-2-12.pdf :UDP – ג6 פרק http://data.cyber.org.il/networks/1450-2-13.pdf :TCP – ד6 פרק http://data.cyber.org.il/networks/1450-2-14.pdf :א – שכבת הרשת מבוא לניתוב7 פרק http://data.cyber.org.il/networks/1450-2-15.pdf : וראוטרIP ב – כתובות7 פרק http://data.cyber.org.il/networks/1450-2-16.pdf :ICMP ג – פרוטוקול7 פרק http://data.cyber.org.il/networks/1450-2-17.pdf :DHCP ד – פרוטוקול7 פרק http://data.cyber.org.il/networks/1450-2-18.pdf : – שכבת הקו8 פרק http://data.cyber.org.il/networks/1450-2-19.pdf : – השכבה הפיזית10 פרק http://data.cyber.org.il/networks/1450-2-20.pdf : – איך הכל מתחבר11 פרק 21 תוכן עניינים מצגות פרק 1 תחילת מסע – איך עובד האינטרנט? ניתן לצפות בסרטון המלווה פרק זה בכתובת.http://youtu.be/ad8EOsXFuxE : ספר זה עוסק ברשתות מחשבים.מה זה בעצם אומר? איך רשת האינטרנט עובדת? בפרק זה נתחיל לענות על שאלות אלו באופן כללי ,ונקבל תמונה כללית על איך עובד האינטרנט.בהמשך הספר ,נרד לפרטים ונזכה לקבל תמונה הרבה יותר מעמיקה ומדויקת.על מנת להתחיל את ההסבר ,נפתח בשאלה: מה קורה כשאנו גולשים לאתר ?Facebook רובנו גלשנו ל ,Facebook-הרשת החברתית העצומה שמונה מעל למיליארד משתמשים.אך האם עצרנו לשאול את עצמנו – מה בעצם קורה מאחורי הקלעים כשגולשים? איך יתכן שאנו נמצאים בבית, מקישים בדפדפן ( )Browserאת הכתובת " ,"www.facebook.comמקישים ,Enterומקבלים תמונת מצב של כל החברים שלנו? על מנת לענות על שאלה זו ,עלינו להבין ראשית מה האתר Facebookצריך כדי לתפקד. כל אתר ,וכך גם אתר ,Facebookזקוק לאחסון ( – )Hostingהכוונה למקום בו יימצאו דפי האתר ואליו יפנו המשתמשים.אתר Facebookישמור גם את המידע על כל המשתמשים כגון :מי חבר של מי ,התמונות שהועלו לאתר ,סטטוסים וכו'.בנוסף ,אתר Facebookזקוק לעיצוב.יש לעצב לוגו ,להחליט היכן תוצג רשימת החברים ,היכן יוצגו העדכונים שלהם ,איפה יוצגו הפרסומות ועוד.האתר זקוק גם לאימות ( – )Authenticationעליו לזהות את המשתמש שפונה אליו.לשם כך Facebook ,צריך לזכור את כל המשתמשים והסיסמאות שלהם ,ולאפשר לכל משתמש להתחבר ולהזדהות.כלומר Facebook ,נזקק לתקשורת.צריכה להיות דרך שתאפשר לאדם לתקשר עם האתר של ,Facebookבין אם מהמחשב שלו בישראל ,ובין אם מהסמארטפון שלו כשהוא נמצא בטיול בחו"ל. ספר זה יתמקד בתקשורת שבין רכיבים אלקטרוניים שונים ודרך העברת המידע ביניהם.בפרק הנוכחי ,נתאר באופן כללי מה קורה מהרגע שאנו כותבים " "www.facebook.comבדפדפן ומקישים ,Enterועד שמופיע דף הבית של Facebookעל המסך. World Wide Web – WWW כשאנו אומרים "אינטרנט" ,אנו מתכוונים בדרך כלל ל.)World Wide Web( WWW-זהו אוסף עמודי האינטרנט אליהם אנו גולשים בדפדפן.משמעות המילה Webהיא רשת.עמודי האינטרנט מקושרים אחד לשני כמו רשת של קורי עכביש המקושרים זה לזה.עמודי האינטרנט מפוזרים בכל רחבי העולם – World – Wideבעוד אתר אחד נמצא בחיפה ,שני יכול להיות בטוקיו ושלישי בניו-יורק.העמודים השונים מקושרים ביניהם באמצעות לינקים. על מנת שהדפדפן יוכל להציג את העמוד הראשי של ,Facebookעליו לדעת כיצד העמוד נראה.הכוונה היא לדעת איזה טקסט קיים בעמוד ,היכן כל חלק מהעמוד ממוקם ,באיזה גופן הטקסט כתוב ובאיזה גודל ,האם צריך להציג תמונות על המסך ,אילו תמונות ועוד.את כל המידע הזה ,הדפדפן משיג מאתר Facebookעצמו. בכדי ש Facebook-ישלח לדפדפן את המידע ,על הדפדפן להודיע שהוא מעוניין בו.כלומר ,הדפדפן צריך לשלוח הודעת בקשה ( )Requestאל ,Facebookובה להגיד" :שלח לי את המידע הנדרש כדי להציג את העמוד הראשי של האתר ."www.facebook.comכאשר Facebookמקבל את הבקשה ,הוא שולח תגובה ( )Responseשמכילה את המידע הדרוש. האתר של Facebookמקבל בקשה ושולח תגובה.כלומר ,הוא מספק שירות לדפדפן.כלומר ,האתר של Facebookהינו שרת ( ,)Serverוהדפדפן הינו לקוח (.)Clientבאופן כללי ,כאשר גולשים ב ,WWW-ישנם לקוחות (דפדפנים) ששולחים בקשות אל השרתים (אתרי האינטרנט) ,והשרתים מחזירים תגובות ללקוחות. אותו מידע שמגיע בתגובות ,משמש את הדפדפנים בכדי להציג על המסך את אתרי האינטרנט למשתמשים. 23 פרק :1תחילת מסע – איך עובד האינטרנט? על מנת לראות את המידע שהשרת שלח ללקוח (או לפחות חלק ממנו), ניתן ללחוץ על הכפתור הימני של העכבר באזור ריק באתר האינטרנט, ולבחור באפשרות "( "View page sourceבעברית" :הצג מקור"): בחלון שייפתח יוצג טקסט שמכיל את המידע ששלח השרת כתגובה לבקשת הלקוח (הטקסט שנמצא באתר ,איפה כל דבר נמצא ,אילו תמונות נמצאות וכו').בשלב זה לא נתעמק במה אנחנו רואים בדיוק.עם זאת ,נסו לזהות בעצמכם חלקים מעמוד האינטרנט – האם אתם יכולים לזהות טקסט שמוצג לכם בדפדפן? היכנסו אל האתר .https://www.themarker.comהקליקו עם הכפתור הימני של העכבר ,ובחרו באופציה .View page sourceמצאו בחלון שייפתח את הכותרת הראשית שמופיעה בעמוד של .TheMarker כתובות IP על מנת שנוכל לשלוח ולקבל הודעות באינטרנט ,עלינו לדעת לאן לשלוח את הבקשות ועל השרת לדעת להיכן לשלוח את התגובות.כאשר אנו שולחים מכתב בדואר ,אנו מציינים על המעטפה את כתובת היעד (נמען) ואת כתובת המקור (מוען).באופן דומה ,גם כאשר נשלח מידע ברחבי האינטרנט ,יש צורך בכתובות מתאימות שיזהו את השולח ואת היעד של ההודעה.למשל ,בדוגמה לעיל ,נרצה לדעת מה הכתובת של המחשב ששלח את הבקשה (כתובת המקור) ,ומה הכתובת של ( Facebookכתובת היעד).באינטרנט ,כתובות אלו נקראות כתובות .)IP Addresses( IP על IPבכלל וכתובות IPבפרט ,נלמד בהרחבה בפרק שכבת הרשת.בשלב זה רק נבין כיצד כתובות אלו נראות.כשם שלכתובות דואר יש מבנה קבוע ,שכולל את שם הנמען (למשל :משה כהן) ,רחוב ומספר בית (הרצל ,)1עיר (ירושלים) ומיקוד ( ,)1234567כך גם לכתובות IPיש מבנה קבוע.כתובות IPמורכבות מארבעה בתים (.)bytesכל בית יכול לקבל ערך בין 0ל ,255-ונהוג להפריד את הבתים בנקודה.מכאן ש- כתובת IPיכולה להיות ,255.255.255.255 ,0.0.0.0והטווח שביניהן ,למשל 1.2.3.4או .10.42.2.3 רשתות מחשבים 24 אם נחזור לדוגמה של הדפדפן ,הרי שהודעת הבקשה שהדפדפן שולח לאתר Facebookמכילה בכתובת המקור את כתובת ה IP-של המחשב ממנו מתבצעת הגלישה ,ובכתובת היעד את כתובת ה IP-של האתר .Facebookכאשר נשלחת הודעת תגובה ,היא נשלחת מ Facebook-לדפדפן ,ולכן כתובת המקור תכיל את כתובת ה IP-של האתר ,Facebookבעוד כתובת היעד תכיל את כתובת ה IP-של המחשב ממנו מתבצעת הגלישה. גלו את כתובת ה IP-שלכם! נבצע זאת בשתי שיטות. א.היכנסו אל האתר .http://www.whatismyip.com ב.את שיטה ב' נלמד לאחר ביצוע התרגיל המודרך תרגיל מודרך – מציאת כתובת ה IP-של אתר אינטרנט מסוים נאמר ונרצה לגלות את כתובת ה IP-של ,Facebookאו של .Googleאיך נוכל לעשות זאת? דרך אחת לגלות את כתובת ה IP-של אתר אינטרנט היא להשתמש בכלי .pingלצורך כך ,הריצו את שורת הפקודה ( ,)Command Lineבה נשתמש רבות לאורך הספר.לחצו על צירוף המקשים ( )WinKey+Rבכדי להגיע לשורת ההפעלה Winkey.הינו המקש במקלדת שנמצא בין המקש Ctrlלמקש Altומופיע עליו הלוגו של מערכת הפעלה :Windows לחלופין ,תוכלו לגשת אל ( Startהתחל) ולבחור באופציה ( Runהפעל).הקישו בה את האותיות cmdולחצו על :OK 25 פרק :1תחילת מסע – איך עובד האינטרנט? לחלופין ,תוכלו להקיש על מקש ה ,WinKey-לכתוב cmd ולבחור בו כאשר הוא יוצג למסך: בשלב זה צפוי להיפתח חלון ה cmd-ובו שורת הפקודה: כעת ,הקלידה את הפקודה הבאה: ping www.facebook.com והקישו .Enterעל המסך יודפסו נתונים שונים.בין השאר ,תוכלו למצוא את כתובת ה IP-של :Facebook רשתות מחשבים 26 1 בדוגמה זו ,כתובת ה IP-הינה .31.13.72.65 כעת ,נסו בעצמכם – מה היא כתובת ה IP-של ?Google הכלי pingלא נועד בכדי למצוא כתובות IPשל אתרים.הוא נועד בכדי לבדוק האם מחשב בעל כתובת IP מסוימת מחובר לרשת ,ולמדוד כמה זמן לוקח להודעה להישלח אל אותו מחשב ,ואז לחזור אליי.על מנת לעשות זאת ,הכלי pingשולח בקשת הד (כמו לצעוק במערה כדי לגלות כמה זמן לוקח להד לחזור אלינו). כאשר מחשב היעד מקבל את הבקשה הזו ,הוא משיב מיד בתשובת הד: כך ניתן לבדוק האם המחשב בכתובת ה IP-המסוימת קיים ,ולדעת כמה מהיר החיבור בינינו לבין אותו מחשב מרוחק.בהמשך הספר ,בפרק שכבת הרשת ,נלמד לעומק איך הכלי pingעובד – ואף תממשו אותו בעצמכם! 1מסיבות שלא נפרט כעת ,כתובת ה IP-עשויה להשתנות.לכן ,ייתכן שכשתריצו את הפקודה במחשב שלכם ,תהיה ל- Facebookכתובת IPשונה. 27 פרק :1תחילת מסע – איך עובד האינטרנט? גלו את כתובת ה IP-שלכם! נבצע זאת בשתי שיטות. א.היכנסו אל האתר .http://www.whatismyip.com ב.בתוך ,cmdאותו למדנו כרגע לפתוח ,כיתבו ipconfigוליחצו .enterתופיע לפניכם רשימת כל ממשקי הרשת שלכם.נצטרך לזהות מהו החיבור הפעיל שיש לכם ,מכיוון שישנם ממשקי רשת רבים אך רק אחד פעיל.אתם מחוברים או באמצעות חיבור שנקרא ( Ethernet Adapterאם ישנו כבל רשת שמחובר למחשב שלכם) או באמצעות חיבור שנקרא .Wireless LAN Adapterרק לאחד הממשקים הללו יש ערך בשדה ה.Default Gateway -זהו הממשק הפעיל שלכם.הערך שרשום בשדה ה "IPv4 Address"-הוא כתובת ה IP-שלכם.לדוגמה (מודגש בצהוב): כפי שהנכם רואים ,שתי השיטות מראות כתובות IPשונות.מדוע? נבין זאת כאשר נלמד מהו .NATבקיצור רב -הכתובת שמצאנו בשיטה ב היא כתובת IPפרטית ואילו בשיטה א מצאנו את כתובת ה IP-החיצונית שבה משתמשת ספקית האינטרנט שלנו.שתי הכתובות זהות רק אם רכשתם מספקית האינטרנט כתובת IP חיצונית.כאמור ,בשלב זה רק שימו לב להבדלים ,בהמשך נדון בכך בפירוט. GeoIP עד כה דיברנו על שרתים ,לקוחות וכתובות.כאשר גולשים לאתר אינטרנט מסוים ,הודעת הבקשה צריכה להגיע בסופו של דבר אל השרת שיטפל בה.אותו שרת נמצא במקום כלשהו בעולם.האם ניתן לגלות היכן הוא נמצא? ישנם מאגרי נתונים הכוללים מידע על המיקום הגיאוגרפי של כתובות .IPמכאן שבהינתן כתובת ,IPניתן לדעת באיזו מדינה ובאיזו עיר היא נמצאת.מאגרים אלו לא רשמיים ולא מדויקים ,אך הם נותנים מענה נכון ברוב המקרים.בגלל האופן שבו בנוי האינטרנט ,לא ניתן לייצר מאגר רשמי של מיפוי בין כתובת IPלמקום גיאוגרפי ,אבל על כך נלמד בהמשך הספר. רשתות מחשבים 28 אתר לדוגמה שמאפשר למפות בין כתובת IPלמיקום הגיאוגרפי שלה ,הוא .http://www.geoiptool.com נוכל להשתמש באתר זה כדי לגלות ,למשל ,את המיקום של :Google נסו זאת בעצמכם :מיצאו את המיקום הגאוגרפי של האתרים הבאים (כל אחד מהם נמצא במדינה אחרת): www.yahoo.com www.bbc.com www.newtoholland.nl www.yahoo.co.jp www.southafrica.co.za www.webawards.com.au כאמור ,המיפוי בין כתובת IPלמיקום גיאוגרפי אינו מדויק.הכתבה הבאה ממחישה מדוע במקרים מסוימים זו עלולה להיות בעיה קשה :נניח שפושע מבצע פשע ,ורשויות החוק מגלות את כתובת ה IP-שלו ומשתמשות בה על מנת לאתר את המיקום הפיזי שלו.אם המיפוי אינו מדויק ,יש אפשרות שכתובת ה IP-של הפושע תמוקם ליד ביתו של אדם תמים.במקרה זה ,רשויות החוק עלולות לפשוט על האזרח התמים ,אשר אמנם 29 פרק :1תחילת מסע – איך עובד האינטרנט? יוכל להסביר שחלה טעות ,אך עדיין יסבול מהטרדה :דמיינו שהמשטרה פושטת על הבית שלכם עם צו חיפוש, רק משום שחלה טעות באיתור מיקום כתובת IPשל פושע. http://fusion.net/story/287592/internet-mapping-glitch-kansas-farm/ צו חיפוש משטרתי ,בחשד לגניבה ,שניתן עקב מיקום IPשגוי (מתוך הכתבה) ענן האינטרנט אם בדקתם מה המיקום הגיאוגרפי של ,Googleגיליתם שהוא נמצא בקליפורניה שבארצות הברית.איך קורה שהודעת הבקשה מהלקוח מגיעה עד לשרת שבארצות הברית ,והודעת התגובה חוזרת בחזרה? ההודעות עוברות מרחק של חצי כדור הארץ הלוך ושוב! אם היינו צריכים לממן טיסה כה ארוכה עבור כל הודעה שנשלחת ,השימוש באינטרנט היה עשוי להיות יקר מדי גם עבור ג'ף בזוס.2מעבר לכך ,לא הגיוני שהמחשב שלנו יהיה מחובר בכבל הישר אל השרת של .Googleאם כך ,כיצד המידע מצליח להגיע אל Googleשבארצות הברית? האינטרנט הוא למעשה אוסף של הרבה רכיבים שמחוברים זה לזה.הודעה שנשלחת בין שני מחשבים המחוברים לרשת האינטרנט ,עוברת בדרך בין הרבה רכיבים שמחוברים זה לזה באופן ישיר.כך כל רכיב מעביר את ההודעה הלאה אל הרכיב הבא ,עד שהיא מגיעה אל היעד.העברה של הודעה בין רכיב אחד לרכיב אחר המחוברים ישירות נקראת קפיצה (.)Hop 2מייסד חברת Amazonוהאיש העשיר ביותר בעולם ,נכון לזמן עדכון ספר זה. רשתות מחשבים 30 מה הם בדיוק הרכיבים האלו? איך הם עובדים? על שאלות אלו נענה בהרחבה בהמשך הספר.שימו לב שעל רכיבים אלו מוטלת משימה מורכבת :עליהם למצוא את הדרך הנכונה להגיע מהמקור (מחשב א' שנמצא בישראל) אל היעד (מחשב ב' שנמצא בארצות הברית).כל אותם רכיבים משתמשים בכתובות ה IP-של ההודעה בכדי לדעת לאן היא צריכה להגיע. היות שהאינטרנט הינה רשת גדולה ומורכבת ,לעיתים משתמשים בעברית במונח ענן האינטרנט כדי לתאר אותה.ענן האינטרנט מקבל מידע מצד אחד (למשל ,מחשב של אדם בישראל) ,ומעביר אותו עד לצד השני (למשל ,השרת של Googleבארצות הברית). תרגיל מודרך – מציאת הדרך בה עוברת הודעה האם נוכל לגלות את המסלול שההודעה עוברת? אילו רכיבים מעבירים אותה בדרך בין המקור אל היעד? הכלי ( tracertקיצור של – tracerouteמעקב אחר מסלול) מאפשר לנו לעשות זאת.לשם כך ,הריצו שוב את שורת הפקודה ( )Command Lineאותה פגשנו קודם לכן: 31 פרק :1תחילת מסע – איך עובד האינטרנט? הקלידו את הפקודה הבאה: tracert -d www.google.com 3 קיבלנו רשימה של כתובות ה IP-של הרכיבים שדרכם עברה ההודעה ששלחנו אל .Google כפי שאתם רואים ,חלק מההנתיב אינו ידוע.מבלי להכנס לאופן בו עובד ,Tracertשנלמד עליו כאשר נלמד על פרוטוקול ,IPחלק מרכיבי הרשת לא סיפקו לנו מידע שמאפשר לדעת מה כתובת ה IP-שלהם.עם זאת, הצלחנו למצוא חלקים מהנתיב ועל הדרך לגלות את כמות הHop-ים בין המחשב שלנו לבין ( Googleבמקרה זהHop 11 -ים). tracertמודיע שהוא לא ימשיך לעקוב אחרי המסלול של ההודעה אם המסלול ארוך יותר מ 30-קפיצות (.)hopsהמרחק בין מקור ליעד נמדד לעיתים על ידי מספר הקפיצות ביניהם (כלומר ,כמות הרכיבים שההודעה עברה בדרך מהמקור ליעד). כמו כן ,הכלי tracertמציג מדידות של זמן ב( MS-מילי שניות) שלקח להגיע מהמקור אל כל רכיב בדרך ובחזרה ממנו.עבור כל אחד מהרכיבים ,מוצגות שלוש מדידות כדי להגביר את האמינות של המדידה. ההבדלים בין משך הזמן שלוקח להגיע לכל רכיב ,יכולים להעיד על המרחק הגאוגרפי בין הרכיבים השונים. 3בגלל הדרך בה עובד האינטרנט ,הדרך הזו נכונה עבור הודעה מסוימת אך עשויה להשתנות עבור הודעה אחרת.על כך נעמיק בהמשך הספר. רשתות מחשבים 32 למשל ,אם נראה לפתע הפרש גדול מאוד בין זמנים ,נוכל לשער שעברנו יבשת.עבור הפרשים קטנים במיוחד ,כנראה שהרכיבים סמוכים יחסית זה לזה. נסו בעצמכם להריץ את הכלי tracertבכדי לגלות את המסלול שהודעה עוברת מהמחשב שלכם אל .Facebook בהמשך הספר ,נלמד להבין איך הכלי tracertפועל מאחורי הקלעים ,וגם תבנו כלי כזה בעצמכם! 33 פרק :1תחילת מסע – איך עובד האינטרנט? DNS קודם לכן ,דיברנו על כתובות ,IPואמרנו שאלו הכתובות בעזרתן הודעות נשלחות באינטרנט.עם זאת ,בתור משתמשים ,כמעט ולא נתקלנו בכתובות .IPעל מנת לזהות שרתים באינטרנט ,השתמשנו בעיקר בכתובות מהצורה "."www.facebook.comכתובות אלו נקראות שמות דומיין ( ,)Domain Nameאו שמות מתחם. הסיבה העיקרית לכך שמעדיפים להשתמש בשמות דומיין ,היא שלבני אדם קל יותר לזכור אותם מאשר כתובות .IP הדבר דומה לדרך בה אנו שומרים מספרי טלפון :כאשר אנו מתקשרים לאדם ,בדרך כלל נעדיף שהטלפון יזכור עבורנו את המספר שלו ,וכך נעדיף לחייג אל "משה כהן" מאשר לזכור את המספר .054-1234567עם זאת ,כשם שהטלפון צריך בסופו של דבר להשתמש במספר בכדי להתקשר למשה ,כך גם המחשב צריך לדעת את כתובת ה IP-של מחשב היעד בכדי לפנות אליו.לשם כך ,יש צורך בדרך לתרגם בין השניים :בין השם "משה כהן" למספר ,054-1234567או בעולם האינטרנט :בין שם הדומיין ""www.facebook.com לכתובת ה IP-הרלוונטית ,למשל .31.13.72.65 באינטרנט ,הדרך לתרגם שמות דומיין לכתובות IPהיא באמצעות המערכת Domain Name ( DNS .)Systemההמרה הזו ,בין שמות דומיין אל כתובות ,IPמתרחשת בכל פעם שאנו מציינים שם דומיין – בין אם כשאנו גולשים לאתר בדפדפן ,ובין אם כשאנו משתמשים בכלים כמו pingאו .tracertהמחשב מבין בשלב ראשון מה היא כתובת ה IP-של היעד ,ורק לאחר מכן שולח אליו את ההודעה.כך למשל ,כאשר אנו גולשים אל ,Facebookהמ