CSMA

מתוך המכלול, האנציקלופדיה היהודית
קפיצה לניווט קפיצה לחיפוש

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

סוגי CSMA

CSMA/CD

Carrier Sense Multiple Access with Collision Detection או CSMA/CD הוא הרחבה לאלגוריתם CSMA בעל מנגנון לזיהוי התנגשויות. היישום הנפוץ ביותר של CSMA/CD הוא תקן ה-Ethernet.

בעת שימוש ב-CSMA/CD מבוצעות הפעולות הבאות:

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

CSMA/CA

Carrier Sense Multiple Access with Collision Avoidance או CSMA/CA הוא הרחבה לפרוטוקול CSMA בעל מנגנון למניעת התנגשויות הפועל ברשתות אלחוטיות (למשל WIFI).

הפרוטוקול עובד בשתי תצורות:

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

האזנה וירטואלית לערוץ

ברשתות אלחוטיות יכולת ההאזנה של התחנה המשדרת לערוץ נמוכה משתי סיבות:

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

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

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

פרוטוקולים המשתמשים ב-CSMA

לקריאה נוספת

Andrew S. Tanenbaum, Computer Networks, fourth edition, pages 255-258,296-297.

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