Multiple Access Control 3 กลุ่ม
กฎที่กำหนดว่าอุปกรณ์ใดส่งข้อมูลบนสื่อกลางร่วมกันได้เมื่อใด เพื่อลด/หลีกเลี่ยงการชนกัน
Random access
ALOHA, CSMA, CSMA/CD, CSMA/CA
Controlled access
reservation, polling, token passing
Channelization
FDMA, TDMA, CDMA
Ethernet เก่า vs ใหม่:
แบบ shared bus/hub ใช้ CSMA/CD เพราะมีโอกาสชนกัน ·
แบบ switched full-duplex แต่ละพอร์ตเป็น point-to-point link แยกกัน จึงไม่มีการชนกันและไม่ต้องใช้ CSMA/CD เลย
ALOHA
โปรโตคอล random-access ยุคแรก ไม่ sense สื่อกลางก่อนส่ง ส่งได้ทันทีที่มีข้อมูล ถ้าไม่ได้ ACK ภายใน timeout (2 เท่าของ propagation delay สูงสุด) จะรอ random backoff แล้วส่งใหม่
Pure ALOHA
ส่งได้ทุกเวลา
vulnerable time = 2 × Tframe
Slotted ALOHA
แบ่งเวลาเป็น slot ส่งได้เฉพาะต้น slot เท่านั้น (ชนกันได้น้อยกว่า)
vulnerable time = Tframe
CSMA (Carrier Sense Multiple Access)
sense สื่อกลางก่อนส่งเสมอ แต่ยังชนกันได้เพราะ propagation delay (สถานีไกลอาจยังไม่รู้ว่ามีสัญญาณอื่นเดินทางมา)
CSMA/CD (Collision Detection)
ใช้ใน Ethernet แบบ shared/half-duplex เดิม — ขณะส่งข้อมูลจะตรวจสอบสื่อกลางต่อเนื่อง ถ้าพบการชนกัน:
- หยุดส่งทันที
- รอ binary exponential backoff
- sense ใหม่และส่งซ้ำ
r ∈ {0, …, 2min(n,10) − 1} · รอ r × Tslot
ไม่ใช้ใน Ethernet switched full-duplex สมัยใหม่
CSMA/CA (Collision Avoidance)
ใช้ใน Wi-Fi (802.11) เพราะสถานีไร้สายตรวจจับการชนกันขณะส่งเองไม่ได้ จึงเน้น "หลีกเลี่ยง" ก่อนส่งแทน
- sense สื่อกลาง
- รอ idle + IFS (Interframe Space)
- สุ่ม backoff จาก Contention Window (CW)
- นับถอยหลัง (freeze ถ้า busy)
- ส่งเมื่อ counter = 0
- รอ ACK — ถ้าไม่ได้ ACK จะเพิ่ม CW แล้วลองใหม่
CWnew = 2 × CWold + 1
RTS/CTS (Request / Clear to Send):
กลไกเสริมเพื่อลดปัญหา hidden-node — สถานีอื่นที่ได้ยิน RTS/CTS จะอัปเดต NAV (Network Allocation Vector) และหลีกเลี่ยงการส่งช่วงนั้น (virtual carrier sensing)
Controlled access
สถานีต้องได้รับอนุญาตก่อนส่งเสมอ
- Reservation: จองคิวใน minislot ก่อนส่งข้อมูลจริง
- Polling: อุปกรณ์หลัก (primary) ถามอุปกรณ์รอง (secondary) ทีละตัวว่ามีข้อมูลจะส่งไหม (select/poll)
- Token Passing: สถานีเรียงเป็นวงแหวน ต้องได้รับ token พิเศษก่อนถึงจะส่งข้อมูลได้
Channelization
แบ่งแบนด์วิดท์ของลิงก์ให้แต่ละสถานีใช้พร้อมกันได้
CDMA encoding: บิต 0 → −1 · บิต 1 → +1 · ไม่ส่ง → ไม่มีสัญญาณ (0) · ผู้รับถอดรหัสด้วย inner product ของสัญญาณรวมกับ code ของตนเอง