Computer Networks - הקדמה

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

הפוסט הנל מהווה הקדמה וסקירה כללית של הנושאים המרכזיים בתחום הרשתות:

  1. היבט החומרה.
  2. היבט התוכנה.
  3. המודלים השונים של חלוקה לשכבות.
  4. דוגמאות של רשתות.
  5. תקינת רשתות.
  6. יחידות מדידה.

 

1. היבט החומרה

באופן כללי קיימות שתי טכנולוגיות שידור עקריות: רשתות נקודה לנקודה (Point-to-Point) - רשתות אלו מחברות תחנות אינדבידואליות כדי להעביר פאקטות (Packets) מהמקור לנקודה כלשהי ברשת. לפעמים המנות (Packets) עוברות מסלולים שונים (בעלי אורכים שונים) על מנת להגיע ליעד, לכן מציאה של מסלול טוב (קצר) היא קריטית ברשתות אלה. רשת נקודה לנקודה בעלת שולח אחד בלבד ומקבל אחד בלבד נקראת גם Unicasting (שידור המיועד לתחנה אחת בלבד).

רשתות הפצה – (Broadcast) - בסוג רשתות אלה ישנו ערוץ שידור משותף, וכל שידור לערוץ נשמע בכל התחנות ברשת. ההודעות המשודרות מחולקות למסרים קצרים המכונות מנות או חבילות (Packets), (כל מנה מכילה סימון למי היא מיועדת).שידור כזה מכונה Broadcasting. מערכות Broadcast מסוימות תומכות, בנוסף, בשידור לקבוצה של תחנות, פעולה זו נקראת Multicasting.

בנוסף, יש לציין כי:

  • המבנה הטיפולוגי של הרשתות אינו קבוע וניתן למצוא טופולוגיות שונות כגון: כוכב, טבעת, עץ, רשת מלאה וכד’.
  • יש להבדיל בין טכנולוגיית שידור לבין המאפיין הלוגי של השידור, שיכול להיות: Unicast - שידור המיועד לתחנה אחת בלבד. Broadcast - שידור המיועד לכלל התחנות ברשת. Multicast - שידור המיועד לקבוצה מוגדרת של תחנות.
  • כל מאפיין לוגי של שידור יכול להתבצע בכל טכנולוגיית שידור. למשל, כדי ליישם שידור לוגי Unicast ברשת הפועלת בטכנולוגיית הפצה (Broadcast), ניתן לשדר את המנה לכל התחנות ברשת, אך רק התחנה אליה מיועדת המנה תסיר את המסגרת מהערוץ ותעבד את התוכן שלה, ואילו כל שאר התחנות יתעלמו ממנה.

להלן איור עם דוגמאות למבנים טופולוגיים של רשתות:

Networks Types

קריטריון נוסף לסיווג רשתות הוא גודלן:

  • PAN (ראשי תיבות: Personal Area Network) - רשתות תקשורת אישיות, לדוגמה Bluetooth או RFID.
  • LAN (ראשי תיבות: Local Area Network) - רשתות תקשורת מקומיות, לדוגמה ראווטר (אלחוטי או קווי).
  • MAN (ראשי תיבות: Metropolitan Area Network) - רשתות תקשורת אזוריות, לדוגמה רשת טלוויזיה קווית או WiMAX.
  • WAN (ראשי תיבות: Wide Area Network) - רשתות תקשורת רחבות, הרשת תתפרס על אזור גדול, לרוב מדינה או יבשת.
  • Internetworks (או Internet) - זו בעצם רשת של רשתות. מה שמחבר בין רשת לרשת נקרא gateway.

 

2. היבט התוכנה

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

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

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

 

למרות כל זאת, השכבות יכולות להציע 2 סוגים של שירותים:

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

חיבור חסר קשר (Connectionless) - פועל על פי השיטה של הדואר. כל הודעה (מכתב) נושא את כתובת היעד המלאה, בנוסף כל הודעה כזו מנותבת דרך צמתי הביניים בתוך המערכת באופן עצמאי, ללא תלות של ההודעות שלאחר מכן. כאשר כל צומת ביניים צריכה לקבל את ההודעה במלואה, שליחתה אל הצומת הבאה (זה נקרא: Store-and-Forward Switching). כאשר החלופה היא להתחיל את שליחת ההודעה אל הצומת הבאה עוד לפני שההודעה התקבלה במלואה בצומת הנוכחית (נקרא: Cut-Through Switching). שימו לב כי כאן אין צורך בהקמת קשר ישיר עם כתובת היעד.

Connection OrientedLess

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

 

MeaningPrimitive
Block wating for an incoming connectionLISTEN
Establish a connection with a wating peerCONNECT
Accept an incoming connaction from a peerACCEPT
Block wating for an incoming messageRECEIVE
Send a message to the peerSEND
Terminate a connectionDISCONNECT

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

  1. ראשית, השרת מבצע פקודת LISTEN כדי לסמן שהוא מוכן לקבל חיבורים נכנסים.
  2. לאחר מכן הלקוח מבצע פקודת CONNECT כדי להקים חיבור עם השרת. (הקריאה ל CONNECT צריכה לפרט למי להתקשר כך שכנראה יהיה לה פרמטר שבו נכניס את כתובת השרת). מערכת ההפעלה תשלח את לבסוף את המנה ותבקש לבצע חיבור. כעת התהליך בצד הלקוח “קופא” עד שתוחזר תשובה.
  3. כאשר המנה מגיע לשרת מערכת ההפעלה רואה שהמנה מבקשת לבצע חיבור. היא בודקת האם ישנו LISTEN היא חוסמת את הפקודה ומבצעת חיבור ע”י שליחת מנת ACCEPT חזרה ללקוח. ההגעה של התגובה הזו “משחררת” את הלקוח. כעת הלקוח והשרת מחוברים, רצים, ומחליפים בניהם מידע.
  4. כעת השרת נכנס למצב RECEIVE ומתכונן לקבלת הבקשה הראשונה. בדר”כ השרת מבצע את זה ישירות לאחר ה”שחרור” ממצב LISTEN, עוד לפני שהאישור מגיע חזרה ללקוח.
  5. הלקוח מבצע פקודת SEND ושולח בקשה למידע. ההגעה של הבקשה “משחררת” את השרת ממצב RECEIVE, כדי לטפל בבקשה, לאחר שהוא ביצע את העבודה הוא משתמש בפקודה SEND כדי להחזיר תשובה ללקוח. ובהתאמה, ההגעה של פקודת SEND ללקוח “משחררת” אותו כדי לטפל במידע שהגיע. אם ללקוח ישנן עוד בקשות הוא יכול לבצע את ההליך הנ”ל שוב.
  6. כאשר הלקוח מסיים הוא מבצע פקודת DISCONNECT כדי לסיים את החיבור. לרוב, הפעולה משהה את הלקוח ושולחת מנה לשרת שאומרת שהחיבור הסתיים. כאשר השרת מקבל את המנה הזאת גם הוא מבצע DISCONNECT משלו, וכך בעצם משיב אישור ללקוח על המנה של סיום החיבור, ומסיים את החיבור. כאשר המנה של השרת מגיעה חזרה ללקוח, השירות של הלקוח “משתחרר” והחיבור “נשבר”.

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

 

TCP-IP OSI Models

3. המודלים השונים של חלוקה לשכבות

קיימות 2 ארכיטקטורות רשת עיקריות: מודל OSI ומודל TCP/IP. למרות שרוב הפרוטוקולים המקושרים עם מודל ה OSI אינם בשימוש, המודל עצמו עדיין תקף, והפיצ’רים במודל זה עדיין חשובים מאוד. ובמודל ה TCP/IP ההפך הוא הנכון, המודל עצמו אינו בשימוש רב אך הפרוטוקולים המקושרים לו נמצאים בשימוש רחב מאוד (במיוחד ברשת האינטרנט). להלן, בצד שמאל, תמונה מסכמת של השכבות במודל ה OSI וה TCP/IP זה לצד, תוך הקבלה של השכבות המקבילות בניהם.

 

מודל השכבות OSI (ראשי תיבות: Open System Interconnection) מחלק את רמות התקשורת לשבע שכבות. העקרונות במודל שכבות הן:

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

השכבה הפיזית (The Physical Layer) - אחראית על העברת זרם ביטים בערוץ תקשורת. אחד הדברים החשובים להם השכבה צריכה לדאוג הוא כאשר צד אחד שולח 1 (ביט) הצד השני יקבל אותו כ-1 ולא כ-0. שאלות טיפוסיות בשכבה זו הן: “איזה אותות חשמליים ייצגו 1 ו-0”, “כמה מילי שניות נמשך שידור של ביט” וכד’. בעיות העיצוב של שכבה זו מתמודדים במידה רבה עם ממשקים מכניים, חשמליים, ותזמונים, וכמו גם מדיום השידור עצמו (התשתית הפיזית, ש”מתחת” לשכבה זו).

שכבת הערוץ (The Data Link Layer) - המשימה העיקרית של שכבת הערוץ היא להפוך רצף שידור גולמי (שורה שעתידה להיות משודרת) לשורה בה לא תמצאנה שגיאות שידור שלא ניתנות לגילוי. בעיה נוספת שמתעוררת בשכבה זו (ובשכבות גבוהות יותר) היא כיצד למנוע ממשדר מהיר להציף במידע מקלט איטי.

שכבת הרשת (The Network Layer) - אחת הבעיות העיקריות אתה מתמודדת שכבה זו הוא הקביעה “איך המנות ינותבו מהמקור אל היעד”. בנוסף, היא מטפלת בהתנגשויות בין מנות ובאופן כללי יותר באיכות השירות (QoS).

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

שכבת השיחה (The Session Layer) - השכבה מאפשרת לשני משתמשים שונים במכונות שונות להקים בניהם שיחה. השכבה מציעה מגוון שירותים כמו dialog control (עוקב אחרי תור מי לשדר), token management (מונע משני המשתמשים לבצע את אותה פעולה ביחד), synchronization (מאפשר למשתמשים להמשיך מאיפה שהפסיקו במקרה שאחד מהם מתנתק), וכד’.

שכבת הייצוג (The Presentation Layer) - בשונה מהשכבות התחתונות, שכבת הייצוג דואגת בעיקר לתחביר והסמנטיקה של המידע המשודר. היא מנהלת את המידע שעתיד להיות משודר (מקודדת / מצפינה / דוחסת).

שכבת היישום (The Application Layer) - השכבה מכילה את מגוון הפרוטוקולים בהם המשתמש עושה שימוש. אחד מהם לדוגמה הנו HTTP ׁ(שמהווה את הבסיס ל WWW).

 

מודל השכבות TCP/IP (ראשי תיבות: Transmission Control Protocol / Internet Protocol) שמקורו ברשת ה ARPANET, מחלק את רמות התקשורת לחמש שכבות. הרעיון העיקרי העומד בבסיס המודל הוא היכולת לחבר כמה רשתות שונות בצורה חלקה.

שכבת הקישור (The Link Layer) - השכבה התחתונה ביותר מתארת כיצד לקשר בין רשתות בעלות סוגי טכנולוגיות שונות, כגון קווים סידוריים ואתרנט. השכבה יוצרת מראה של רשת אחת בעלת מבנה אחיד עבור השכבות הגבוהות (ברמה של הבדלים טכנולוגיים).

שכבת הרשת (The Internet Layer) - תפקידה העיקרי הוא לאפשר למשתמש לשדר מנות לכל רשת ו”לגרום” להם לנוע ליעד באופן עצמאי (שעלול להיות ברשת אחרת). המנות עשויות להגיע בסדר שונה לחלוטין ממנו נשלחו, ובמקרה זה העבודה של סידורם מחדש היא על שכבות גבוהות יותר. אחד הפרוטוקולים המפורסמים בשכבה זו הוא IP ׁ(ראשי תיבות: Internet Protocol) ופרוטוקול נלווה אליו ICMP (ראשי תיבות: Internet Control Message Protocol) שעוזר לו לתפקד.

שכבת התובלה (The Transport Layer) - נועדה כדי לאפשר לשני עמיתים (אחד במקור ואחד ביעד) לנהל בניהם “שיחה”. בשכבה זו נמצאים 2 פרוטוקולים מפורסמים: TCP (ראשי תיבות: Transmission Control Protocol). בקיצור (בעתיד נתעמק), זהו פרוטוקול מונחה חיבור, אמין, המאפשר לזרם בתים שמקרום במחשב אחד להיות מועבר, ללא שגיאה, למכונה אחרת על גבי האינטרנט. לעומתו UDP (ראשי תיבות: User Datagram Protocol) הוא פרוטוקול לא אמין (שבעיקר נועד ליישומים שלא מעוניינים בבקרת הזרימה של TCP). הוא בשימוש נרחב בעיקר לשאילתות בקשה - תשובה משרת / לקוח, ושירותים בהם שידור מהיר חשוב יותר מאשר שידור אמין (כמו שידור ישיר של אודיו / ווידיאו).

שכבת היישום (The Application Layer) - השכבה האחרונה מכילה את הפרוטוקולים ברמה הגבוהה. כמו TELNET (טרמינל ווירטואלי), FTP (העברת קבצים), SMTP (מייל אלקטרוני) וכ’ו.

 

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

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

  1. שירותים.
  2. ממשקים.
  3. פרוטוקולים.

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

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

 

4. דוגמאות של רשתות

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

 

ה ARPANET

Telephone System Structure

הסיפור מתחיל בשנים המאוחרות של 1950, בשיא המלחמה הקרה, מחלקת ההגנה של ארה”ב (U.S. DoD, ראשי תיבות: United States Department of Defense) רצתה רשת לפיקוד ובקרה שתוכל לשרוד התקפה גרעינית (בזמנו כל התקשורת הצבאית השתמשה בתשתית הטלפוניה הציבורית). רשת הטלפוניה הציבורית נחשבה לפגיעה בגלל המבנה שלה, אותו מבנה שניתן לראות בתמונה משמאל, בו ניתן לראות כי ישנם מרכזיות המחברות בין מרכזיות אחרות (או משתמשי קצה וכד’) ואם הן נופלות לא ניתן יהיה להמשיך בתקשורת כי זוהי הדרך היחידה בה המרכזיות מחוברות בניהן.

בערך בשנת 1960 משרד ההגנה האמריקאי העניק חוזה לתאגיד RAND כדי למצוא פתרון לבעיה האמורה לעיל. אחד מהעובדים של התאגיד, פול ברן (Paul Baran) הציע את העיצוב המבוזר בו גם תחנות הקצה מחוברות אחת לשניה. ומכיוון שהדרך בין כל 2 מרכזיות הייתה כעת יותר גדולה ממה שאות אנלוגי יכול לנוע בלי להיות מעוות, ברן הציע להשתמש בטכנולוגיית מנות דיגיטליות. ברן כתב כמה דוחות למשרד ההגנה האמריקאי המתארים את התכנית שלו, הפנטגון אהב את הקונספט וביקש מ AT&T לבנות אב טיפוס. אך AT&T ביטלה את הרעיון של ברן, התאגיד הגדול והעשיר לא התכוון לתת לאיזה שחצן צעיר להגיד לה איך לבנות מערכת טלפוניה, הם אמרו שהרשת של ברן אינה יכולה להיבנות ובכך הרגו את הרעיון.

כמה שנים מאוחר יותר ולמשרד ההגנה עדיין לא הייתה רשת לפיקוד ובקרה טובה יותר. וכדי להבין מה קרה הלאה, שוב, נחזור קצת אחורה לאוקטובר 1957. כאשר ברית המועצות השיגה את ארה”ב במירוץ לחלל והצליחה לשגר את הלוויין הראשון ספוטניק (Sputnik). הנשיא (דאז) דווייט אייזנהאואר (Dwight D. Eisenhower) ניסה להבין מי נרדם בשמירה, ונחרד למצוא את הצבא, חיל הים, והאוויר מתקוטטים על תקציב המחקר של הפנטגון. התגובה המידית שלו הייתה להקים ארגון יחיד שיתמקד במחקר בטחוני, ARPA (ראשי תיבות: Advanced Research Projects Agency, ששינתה את שמה לDARPA כדי להוסיף Defense (באופן סופי) בשנת ב-1996). ל ARPA לא היה מדענים ומעבדות. האמת, לא היה לה כלום חוץ ממשרד ותקציב קטן (בסטנדרטים של הפנטגון). ARPA עשתה את עבודה ע”י הענקת מענקים וחוזים לאוניברסיטאות וחברות שהרעיונות שלהן נראו לה מבטיחים.

 

ב-1967 תשומת הלב של לארי רוברטס (Larry Roberts), מנהל ב ARPA שניסה להבין כיצד לספק גישה מרחוק למחשב, הופנתה לרשת. הוא יצר קשר עם כמה מומחים, ואחד מהם היה וסלי קלארק (Wesley Clark) שהציע לבנות תת רשת מיתוג מנות. רוברטס, לאחר ספקנות ראשונית, קנה את הרעיון והציג גרסה מעורפלת שלו בכנס ACM SIGPOS (שהיה על עקרונות מערכות הפעלה והתקיים בגטלינבורג, טנסי בסוף 1967. להפתעתו של רוברטס מאמר נוסף בכנס תיאר מערכת כזו, ולא רק תיאר את עיצוב המערכת אלה גם יישום מלא שלה תחת הנהגתו של דונלד דייויס (Donald Davies) מהמעבדה הלאומית לפיזיקה של אנגליה (National Physical Laboratory). המערכת של ה NPL לא הייתה מערכת לאומית (היא רק חיברה כמה מחשבים לקמפוס הראשי שלה), אך היא הדגימה שמיתוג מנות יכול לעבוד, ואף יותר מכך, הם ציטטו ישירות מהעבודה המוקדמת של ברן. רוברטס חזר מגטילינבורג נחוש לבנות את מה שיותר מאוחר נודע בתור ה ARPANET.

ARPA הוציאה מכרז לבניה של הרשת (הכולל תיאור מדויק של עיצוב הרשת והרכיבים). 12 חברות התמודדו עליו, ולבסוף ARPA בחרה ב BBN, חברת ייעוץ היושבת בקיימברידג’, מסצ’וסטס ובדצמבר 1968 העניקה לה את החוזה לבניה של תת הרשת ולפיתוח התוכנה שלה. בדצמבר 1969 רשת ניסיונית עלתה לאוויר וחיברה 4 אוניברסיטאות במערב ארה”ב. לאחר כמה שנים נוספו יכולות לוויניות ומנות מבוססת תקשורת רדיו. ולאחר מכן שוחררה גרסת תוכנה חדשה המבוססת על פרוטוקול TCP/IP, שפותח באונ’ ברקלי (Berkeley) שבקליפורניה. בהמשך, בשנות ה-80 חוברו רשתות נוספות ל ARPANET (במיוחד רשתות LAN), וכשקנה המידה של הרשת גדול נעשה יקר יותר ויותר למצוא hostים, לכן פותח ה DNS (ראשי תיבות: Domain Name System) כדי לארגן את המכונות לתוחמים ואת שמות הhostים לכתובת IP.

 

NSFNET

בשנות ה-70 המאוחרות ארגון ה NSF (ראשי תיבות: National Science Foundation) ראה את ההשפעה העצומה של ה ARPANET על המחקר של האוניברסיטאות המחוברות אליו (היכולת לאפשר למדענים מכל המדינה לחלוק מידע ולבצע שיתופי פעולה בפרויקטי מחקר). אך כדי לקבל גישה ל ARPANET על האוניברסיטה היה להיות בעלת חוזה מחקר ממשרד ההגנה האמריקאי (DoD), והתגובה הראשונית של ה NSF הייתה לממן רשת למדעי המחשב הנקראה CSNET. אך לאחר מכן, בשנות ה-80 המאוחרות, ה NSF החליט לתכנן יורש ל ARPANET שיהיה פתוח לכל האוניברסיטאות. הרשת הייתה מחוברת ע”י קווי 56kbps (אותם אלה ששימשו את הARPANET), אך שכבת התוכנה הייתה שונה לגמרי, היא “דיברה” TCP/IP ישר מההתחלה, והייתה לרשת TCP/IP הראשונה בגודל WAN.

ההצלחה של הרשת הייתה אדירה, וה NSF חזר מייד לשולחן השירטוטים לתכנן את היורש, סיבים אופטיים שאפשרו מהירות של 448kbps, אך לאחר זמן מה, שוב, הרשת הייתה מוצפת והרשת שודרגה ב-1990 ל1.5Mbps. וכשהצמיחה גדלה, הבין ה NSF כי הממשלה אינה יכולה לתמוך ברשת, באופן פיננסי לעד. בנוסף, ארגונים מסחריים רצו להיכנס פנימה, אך האופי של רשת ה NSF אסר עליהם. לכן הוקם ארגון ללא מטרות רווח בשם ANS (ראשי תיבות:Advanced Networks and Services), הארגון פעל במשך 5 שנים, שבהם גם שדרג את הרשת למהירות של 45Mbps ושינה את שמה ל ANSNET, אך לאחר 5 השנים הרשת נמכרה ל America Online. עד אז חברות רבות הציעו שירותי IP והיה ברור שהממשלה צריכה לצאת מהתחום.

 

רשתות סלולריות

Cellular Network

אנשים אוהבים לדבר בטלפון, וזה הפך את הרשת הסלולרית לרשת המצליחה ביותר בעולם. יש כיום יותר מ-4 מילארד מנויים (בעולם) לרשת הסלולרית (כדי לקבל פרספקטיבה, זה בערך 60% מאוכלוסיית העולם). הארכיטקטורה של רשת הסלולר השתנתה רבות ב-40 שנה האחרונות, יד ביד עם הצמיחה האדירה שחוותה. הדור הראשון של המכשירים הסלולריים העביר אותות רצפים אנלוגיים ונקרא AMPS, בעוד הדור השני (הנקרא GSM) היה דיגיטלי לגמרי, והדור השלישי (UMTS) גם הוא היה דיגיטלי וכבר הציע מענה לתופעת הגלישה והשימוש ביישומי אינטרנט גם מהמכשיר הנייד (למרות ששוב, הרשת מוצפת והמעבר לדור הרביעי, LTE, מתחיל לתפוס תאוצה).

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

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

 

5. תקינת רשתות

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

תקנים נופלים ל-2 קטגוריות: הראשונה היא תקני ‘דה פקטו’ (בלטינית: בפועל), אלה שפשוט קרו, ללא תכנון מקדים רשמי כלשהו. ישנם המון תקנים פופולריים שהתחילו ככה, כמו HTTP או Bluetooh. והסוג השני אלה תקני ‘דה יורה’ (בלטינית: לפי החוק), אלה תקנים אשר תכננן אותם גוף רשמי כלשהו לפני במיוחד. ישנם כמה ארגונים גדולים ובינלאומיים האחראיים לרוב התקינה הבינלאומית:

  • ITU (ראשי תיבות: International Telecommunication Union). ל ITU יש 3 מחלקות, הראשונה ITU-T האחראית על תחום הטלפונים ורשתות התקשורת הסלולריות (נקראה CCITT עד 1993). ITU-R האחראי על טווחים של תדרי רדיו. ו ITU-D המקדם את הפיתוח הטכנולוגי של המידע והתקשורת על מנת לצמצם את הפער הדיגיטלי בין ארצות.
  • ISO (ראשי תיבות: International Standards Organization). זהו מכון התקנים הבינלאומי, והוא עוסק במגוון עצום של נושאים (החל מברגים ואומים עד לציפוי של עמודי טלפון, רשתות דיג ובקיצור כל מה שעולה על דעתכם. ל ISO יש מעל ל-200 וועדות טכניות ומעל ל-17,000 סטנדרטים שהוצאו עד כה.
  • שחקן גדול נוסף הינו IEEE (ראשי תיבות: Institute of Electrical and Electronics Engineers). בנוסף לכך שהארגון עורך מאות כנסים בכל שנה, יש לו גם קבוצת תקינה המפתחת תקנים בתחום החשמל של ההנדסה והמחשוב (לארגון היו כמה סיפורי הצלחה גדולים מאוד כמו התקנים 802.3 ו-802.11 עליהם נדבר בעתיד).

 

6. יחידות מדידה

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

Units

כמה נקודות:

  • לא ציינתי זאת, אך הטבלה כמובן מתחילה מ 1bit (סיבית, יחידת המידה הקטנה ביותר), ועוברת ל 1byte (בית, שזה 8 ביטים) ומשם כבר מצויין בטבלה (kilo וכך הלאה).
  • כדי שנוכל להבדיל בין מילי למיקרו (שניהם מתחילים ב m), נבחר לייצג מילי בm ומיקרו ב’מיו’ (האות היוונית μ).
  • כדאי לציין שכדי למדוד זיכרון, דיסק, קבצים וכד’, כמקובל בתעשייה יחידות המידה טיפה שונות. ה Kilo שם לדוגמה הוא 10^2 (1024) במקום 3^10 (1000).
  • בנוסף, B (גדולה) מציינת “byte” בעוד b (קטנה) מציינת “bits”. כבל המספק מהירות שידור של 1kbps בעצם מספק 1,000bits בשניה.

 

לסיכום

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

באופן כללי, ניתן לחלק את הרשתות ל LANs, MANs, WANs ול internetworks. בעוד LAN בדרך כלל מכסה בניין, MAN מכסה עיר, ו WAN כנראה תכסה מדינה או אפילו יבשת. בעוד חלק מהטכנולוגיות ששימשו לבנות את הרשתות האלו הן נקודה-לנקודה (בדרך כלל כבל), אחרות הן רשתות הפצה (broadcast, בדרך כלל אלחוטיות).

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

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

בחלק הבא נצלול הישר לשכבה הראשונה במודל התאורטי שלנו, הלא היא “השכבה הפיזית” - The Physical Layer. מקווה שהצלחתי לפשט את הדברים ולספק הסבר פשוט וממצה, וכמו תמיד, אשמח לענות לשאלות בתגובות או במייל (איך שנוח לכם).