למה צריך שכבות בתקשורת - ולמה "פתרון אחד להכול" נכשל

📚 איך מחשבים מדברים - חלק 3 תקשורת #שכבות תקשורת
תוכן עניינים

למה צריך שכבות בתקשורת - ולמה “פתרון אחד להכול” נכשל

אחרי שהובן שתקשורת נשענת על פרוטוקולים - עולה שאלה כמעט מתבקשת: אם כבר מסכימים על כללים, למה לא להסכים על סט אחד של כללים שעושה הכול?

למה לפצל? למה להסתבך? למה לבנות שכבות?

התשובה אינה היסטורית או טכנולוגית - אלא מערכתית.

הבעיה עם פתרון אחד גדול

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

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

על הנייר זה נשמע יעיל. בפועל, זה יוצר מערכת שאינה ניתנת לשינוי.

כל שינוי קטן - במהירות הרשת, בסוג החומרה, בצרכים של היישום - מחייב שינוי בפרוטוקול כולו.

התוצאה היא מערכת שבירה:

  • קשה להבין אותה
  • קשה לבדוק אותה
  • קשה מאוד לפתח אותה לאורך זמן

שכבות הן דרך לשלוט במורכבות

שכבות אינן פתרון טכני - הן החלטה הנדסית על חלוקת אחריות.

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

  • שכבה אחת אחראית להעברת אותות
  • אחרת אחראית לסדר ואמינות
  • אחרת אחראית למשמעות של הנתונים

כל שכבה מניחה שהשכבה שמתחתיה “עושה את שלה”, ומספקת שירות ברור לשכבה שמעליה.

כך נבנית מערכת שבה:

  • כל חלק פשוט יותר
  • אפשר לשנות שכבה אחת בלי לשבור את כולן
  • אפשר להבין תקלות לפי המקום שבו הן נוצרות

שכבות יוצרות גבולות ברורים

גבול הוא דבר טוב במערכות.

כאשר שכבות מוגדרות היטב:

  • בעיה פיזית לא “מטפסת” לשכבה הלוגית
  • שינוי ביישום לא מחייב שינוי בתשתית
  • כל רכיב יודע מה מצופה ממנו - ומה לא

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

המשל

אפשר לחשוב על בניין משרדים רב-קומות.

אין מערכת אחת שעושה הכול:

  • יש חשמל
  • יש מים
  • יש מעליות
  • יש משרדים

כל מערכת עצמאית יחסית, אבל כולן פועלות יחד.

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

ההפרדה הזו היא מה שמאפשר לבניין לתפקד.

שכבות כעיקרון חוזר בהייטק

ברגע שמזהים את עקרון השכבות בתקשורת, קל לראות אותו בכל מקום:

  • מערכות הפעלה
  • ארכיטקטורת שירותים
  • מערכות Inference
  • ואפילו ארגון צוותים

שכבות אינן מוסיפות מורכבות - הן מונעות ממנה להתפשט.

מבט קדימה

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

בפוסט הבא נתחיל מהבסיס ביותר: איך מחשב מזהה מחשב אחר - ולמה “כתובת” ברשת אינה מיקום פיזי כלל.

תגובות