CSMA
מתוך ויקיפדיה, האנציקלופדיה החופשית
Carrier Sense Multiple Access (או CSMA), הוא אלגוריתם לא דטרמיניסטי שנועד להגדיר את אופן הגישה למדית התקשורת (Media Access Control) בפרוטוקולי תקשורת. כך שלפני תחילת השידור יש לוודא שמדיית התקשורת פנויה (Carrier Sense), ואין תחנה אחרת שכבר משדרת באותו מתחם התנגשות (collision domain) ברשתות בהן מספר תחנות יכולות לשדר על מדיית תקשורת משותפת, וכאשר תחנה אחת משדרת כל שאר התחנות מקבלות את התשדורת (Multiple Access). מדיית התקשורת יכולה להיות כבל נחושת, סיב אופטי או תדר אלקטרומגנטי מסוים.
[עריכה] התנגשויות
שתי תחנות או יותר המשדרות על אותה מדיית התקשורת במקביל יוצרות התנגשות (collision). האותות המשודרים ממספר מקורות מתערבבים זה בזה ולתחנה שאמורה לקבל את המידע אין דרך להפריד ביניהם, וחבילת המידע לא מגיעה ליעדה. אלגוריתם ה-CSMA מונע את רוב ההתנגשויות, אך במידה ושתי תחנות מעוניינות להתחיל לשדר במקביל או כמעט במקביל - שתיהן עלולות לחשוב שמדיית התקשורת פנויה ולהתחיל לשדר מבלי להיות מודעות להתנגשות העומדת להיווצר. אלגוריתם ה-CSMA אינו מציע פתרון לבעיה זו, ובמידה ומקרה כזה מתרחש הוא מסתמך על בקרת השגיאות ורציפות המידע של הפרוטוקולים שמנהלים את התקשורת, למשל - מנגנוני ה-ACK וה-Checksum בפרוטוקול TCP שיזהו שהחבילה לא הגיעה ליעדה ויבקשו שתישלח פעם נוספת. על מנת להתגבר על הבעיה הומצאו שתי הרחבות - CSMA/CD וCSMA/CA שמציעות פתרונות שונים לטיפול בהתנגשות הנובעת משתי תחנות המתחילות לשדר במקביל.
[עריכה] פרוטוקולים המשתמשים ב-CSMA
- רשתות Ethernet משתמשות ב-CSMA/CD
- רשתות IEEE 802.11 משתמשות ב-CSMA/CA
- רשתות LocalTalk (מבית אפל) משתמשות ב-CSMA/CA