ITDS231 · บทที่ 4 · Lecture 6.1 – 6.2

MAC + Ethernet

การควบคุมการเข้าถึงสื่อกลาง (ALOHA, CSMA/CD, CSMA/CA, controlled access, channelization) และ Ethernet ตั้งแต่โครงสร้างเฟรม MAC address จนถึงการทำงานของสวิตช์ อ่านเนื้อหา ทบทวน cheat sheet แล้วลองทำแบบฝึกหัด 20 ข้อ

เนื้อหาแยกตามไฟล์สไลด์

Transmission mode

โหมดลักษณะตัวอย่าง
Simplexทิศทางเดียวรีโมท
Half-duplexส่งหรือรับได้ทีละอย่างบนสื่อกลางร่วมWLAN, hub Ethernet เก่า
Full-duplexส่งและรับพร้อมกันได้Ethernet switch สมัยใหม่

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 (สถานีไกลอาจยังไม่รู้ว่ามีสัญญาณอื่นเดินทางมา)

Persistence strategyเมื่อ busyเมื่อ idle
Nonpersistentรอสุ่มแล้วค่อย sense ใหม่
1-persistentsense ต่อเนื่องส่งทันทีที่ว่าง
p-persistentsense ต่อส่งด้วยความน่าจะเป็น p หรือรอ slot ถัดไปด้วยความน่าจะเป็น 1 − p

CSMA/CD (Collision Detection)

ใช้ใน Ethernet แบบ shared/half-duplex เดิม — ขณะส่งข้อมูลจะตรวจสอบสื่อกลางต่อเนื่อง ถ้าพบการชนกัน:

  1. หยุดส่งทันที
  2. รอ binary exponential backoff
  3. sense ใหม่และส่งซ้ำ
r ∈ {0, …, 2min(n,10) − 1} · รอ r × Tslot

ไม่ใช้ใน Ethernet switched full-duplex สมัยใหม่

CSMA/CA (Collision Avoidance)

ใช้ใน Wi-Fi (802.11) เพราะสถานีไร้สายตรวจจับการชนกันขณะส่งเองไม่ได้ จึงเน้น "หลีกเลี่ยง" ก่อนส่งแทน

  1. sense สื่อกลาง
  2. รอ idle + IFS (Interframe Space)
  3. สุ่ม backoff จาก Contention Window (CW)
  4. นับถอยหลัง (freeze ถ้า busy)
  5. ส่งเมื่อ counter = 0
  6. รอ 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

แบ่งแบนด์วิดท์ของลิงก์ให้แต่ละสถานีใช้พร้อมกันได้

วิธีแบ่งตามรายละเอียด
FDMAความถี่ใช้ในมือถือ/ดาวเทียม
TDMAช่วงเวลาบนช่องสัญญาณเดียว
CDMAรหัส (code)ทุกสถานีส่งพร้อมกันบนช่องเดียวกันทั้งหมด แยกกันด้วย orthogonal code (Walsh table) แทนเวลา/ความถี่

CDMA encoding: บิต 0 → −1 · บิต 1 → +1 · ไม่ส่ง → ไม่มีสัญญาณ (0) · ผู้รับถอดรหัสด้วย inner product ของสัญญาณรวมกับ code ของตนเอง

ประวัติ Ethernet

  1. 1973–74พัฒนาที่ Xerox PARC โดย Robert Metcalfe ได้แรงบันดาลใจจาก ALOHAnet
  2. 1983กลายเป็นมาตรฐาน IEEE 802.3

ชนะคู่แข่ง (Token Ring ฯลฯ) เพราะ: พัฒนาความเร็วได้ต่อเนื่อง · เปิดให้ทุกคนผลิตอุปกรณ์ตามสเปกได้ · ราคาถูกกว่า

วิวัฒนาการ

Ethernet รวม data-link layer และ physical layer ไว้ในมาตรฐานเดียว

รุ่นความเร็วการเข้าถึงสื่อกลาง
Standard EthernetCSMA/CD บน bus/hub
Fast Ethernet100 MbpsCSMA/CD เป็นทางเลือกถ้าใช้ hub
Gigabit / 10G+ Ethernetปัจจุบันรองรับถึง 40–100 Gbpsใช้ switch เท่านั้น ไม่มี CSMA/CD เลย

บริการของ Ethernet และ error control

  • ให้บริการแบบ connectionless และไม่มี flow control ของตัวเอง (ไม่มี LLC) — ต้องพึ่งโปรโตคอลชั้นบน (เช่น TCP) จัดการเรื่อง reliable delivery แทน
  • error control ใช้ CRC-32 ตรวจสอบเฟรม ถ้าพบว่าเสียหายจะ "ทิ้งเฟรมเงียบๆ" โดยไม่แจ้งผู้ส่ง

โครงสร้างเฟรม Ethernet

  1. Preamble7 ไบต์
  2. SFD1 ไบต์
  3. Destination6 ไบต์
  4. Source6 ไบต์
  5. Type
  6. Data46–1500 ไบต์
  7. CRC
ฟิลด์ขนาดหน้าที่
Preamble7 ไบต์สลับ 0/1 ช่วยซิงโครไนซ์นาฬิกา
SFD (Start Frame Delimiter)1 ไบต์บอกจุดเริ่มเฟรม
Destination Address6 ไบต์ที่อยู่ผู้รับ
Source Address6 ไบต์ที่อยู่ผู้ส่ง
Typeบอกโปรโตคอลชั้นบน เช่น IP, ARP
Data46–1500 ไบต์ต้อง padding ถ้าสั้นกว่าขั้นต่ำ
CRCตรวจสอบ error คำนวณจาก address + type + data

ความยาวเฟรมขั้นต่ำและสูงสุด

ขั้นต่ำ 64 ไบต์ 512 บิต

เพื่อให้ผู้ส่งยังคงส่งข้อมูลอยู่ขณะที่การชนกันอาจเกิดขึ้น (worst-case round trip บนสายยาวสุดที่มาตรฐานกำหนด) ทำให้ตรวจจับการชนได้ทันภายใต้ CSMA/CD

สูงสุด 1518 ไบต์ payload 1500

เพื่อประหยัดหน่วยความจำ (ยุคที่หน่วยความจำแพง) และป้องกันสถานีเดียวครองสื่อกลางนานเกินไป

MAC Address

ขนาด 48 บิต เขียนเป็น hex คั่นด้วย :

24 บิตแรก OUI

กำหนดโดย IEEE ตามผู้ผลิต

24 บิตหลัง

กำหนดโดยผู้ผลิตเอง

ประเภทการส่งใครเก็บเฟรม
Unicastผู้รับ 1 คนเก็บ ที่เหลือทิ้ง
Multicastสมาชิกกลุ่มเก็บ
Broadcastทุกสถานียกเว้นผู้ส่งเก็บทั้งหมด — ใช้ใน DHCP, ARP

Ethernet Switch

เรียนรู้ MAC address จากเฟรมที่เข้ามา (source MAC + พอร์ตที่รับเข้า) สร้างตาราง MAC address table (เก็บ entry ไว้ประมาณ 5 นาที) เมื่อรับเฟรม:

Frame filtering

destination MAC อยู่ในตาราง → ส่งออกเฉพาะพอร์ตนั้น

Flooding

destination MAC ไม่อยู่ในตาราง (unknown unicast) หรือเป็น broadcast/multicast → ส่งออกทุกพอร์ตยกเว้นพอร์ตที่รับเข้ามา

ประเภทสวิตช์ และ Auto-MDIX

Store-and-forward

รับเฟรมทั้งเฟรม ตรวจ CRC ก่อนส่งต่อ — รองรับ QoS

Cut-through

ส่งต่อทันทีที่รู้ destination address ยังไม่รอรับครบเฟรม — เร็วกว่าแต่ไม่ตรวจ error ก่อน · มีแบบย่อย fragment-free ที่เช็ค 64 ไบต์แรกก่อน

Auto-MDIX

สวิตช์สมัยใหม่ตรวจจับชนิดสายที่เสียบเข้ามาอัตโนมัติ (ใช้สายตรงหรือไขว้ก็ได้)

Autonegotiation คนละอย่างกัน

การเจรจาความเร็ว/duplex ระหว่างอุปกรณ์สองฝั่งอัตโนมัติ

Cheat sheet

ตาราง สูตร และคำที่มักออกสอบของบทที่ 4 รวมไว้ในหน้าเดียว

01 วิธีเข้าถึงสื่อกลาง 3 กลุ่ม

กลุ่มหลักการตัวอย่าง
Contention (random access)สถานีแข่งกันส่ง อาจชนกันALOHA, CSMA, CSMA/CD, CSMA/CA
Controlled accessต้องได้รับอนุญาตก่อนส่งเสมอReservation, Polling, Token passing
Channelizationแบ่งแบนด์วิดท์ให้ใช้พร้อมกันFDMA, TDMA, CDMA

02 ALOHA vs Slotted ALOHA

Pure
ส่งได้ทุกเวลา · vulnerable time 2 × Tframe
Slotted
ส่งได้เฉพาะต้น slot · vulnerable time Tframe

ไม่ sense ก่อนส่ง · timeout = 2 × propagation delay สูงสุด → random backoff

03 CSMA persistence

Nonpersistent
busy → รอสุ่ม แล้ว sense ใหม่
1-persistent
busy → sense ต่อเนื่อง · ว่างปุ๊บส่งทันที
p-persistent
idle → ส่งด้วยความน่าจะเป็น p หรือรอ slot ถัดไปด้วย 1 − p

ยังชนได้เพราะ propagation delay

04 CSMA/CD vs CSMA/CA

CSMA/CDCSMA/CA
ใช้ในEthernet shared / half-duplex เดิมWi-Fi (802.11)
แนวคิดตรวจจับการชนขณะส่งหลีกเลี่ยงก่อนส่ง (ตรวจจับขณะส่งเองไม่ได้)
ขั้นตอนชน → หยุดทันที → backoff → sense ใหม่ → ส่งซ้ำsense → idle + IFS → สุ่ม backoff จาก CW → นับถอยหลัง (freeze ถ้า busy) → ส่งเมื่อ 0 → รอ ACK
Backoffr ∈ {0,…,2min(n,10) − 1} × Tslotไม่ได้ ACK → CWnew = 2 × CWold + 1
กลไกเสริมRTS/CTS + NAV (virtual carrier sensing) แก้ hidden-node

05 FDMA · TDMA · CDMA

FDMA
แบ่งตามความถี่ · มือถือ/ดาวเทียม
TDMA
แบ่งตามช่วงเวลา บนช่องเดียว
CDMA
ส่งพร้อมกันช่องเดียว แยกด้วยรหัส (Walsh)

CDMA: 0 → −1 · 1 → +1 · ไม่ส่ง → 0 · ถอดด้วย inner product

06 โครงสร้างเฟรม Ethernet

  1. Preamble7 B
  2. SFD1 B
  3. Dest6 B
  4. Src6 B
  5. Type2 B*
  6. Data46–1500 B
  7. CRC4 B*

* สไลด์ไม่ได้ระบุขนาด Type/CRC — CRC-32 = 32 บิต = 4 ไบต์ และ Type = 1518 − 6 − 6 − 1500 − 4 = 2 ไบต์ · Preamble สลับ 0/1 ซิงค์นาฬิกา · SFD บอกจุดเริ่ม · CRC คำนวณจาก address + type + data

07 ความยาวเฟรม

ขั้นต่ำ 64 ไบต์ = 512 บิต

ผู้ส่งต้องยังส่งอยู่ตลอด worst-case round trip บนสายยาวสุด → ตรวจจับการชนได้ทัน (CSMA/CD)

สูงสุด 1518 ไบต์ (payload 1500)

ประหยัดหน่วยความจำ + กันสถานีเดียวครองสื่อกลาง

08 การ forward ของ Ethernet switch

destination MACswitch ทำอะไรเรียกว่า
Known unicast (อยู่ในตาราง)ส่งออกเฉพาะพอร์ตนั้นFrame filtering
Unknown unicast (ไม่อยู่ในตาราง)ส่งออกทุกพอร์ตยกเว้นพอร์ตที่รับเข้าFlooding
Broadcast / Multicastส่งออกทุกพอร์ตยกเว้นพอร์ตที่รับเข้าFlooding

เรียนรู้จาก source MAC + พอร์ตขาเข้า · entry อยู่ ~5 นาที · Store-and-forward ตรวจ CRC ก่อน / Cut-through ส่งทันทีที่รู้ destination

แบบฝึกหัด 20 ข้อ

เลือกคำตอบให้ครบแล้วกด "ตรวจคำตอบ" ด้านล่าง ระบบจะเฉลยพร้อมคำอธิบายทุกข้อ

01การสื่อสารแบบใดที่อุปกรณ์ทั้งสองฝั่งส่งและรับข้อมูลพร้อมกันได้บนสื่อกลางเดียวกัน?

Full-duplex ส่งและรับพร้อมกันได้ (เช่น Ethernet switch สมัยใหม่) · Half-duplex ส่งหรือรับได้ทีละอย่าง (WLAN, hub Ethernet เก่า) · Simplex ทิศทางเดียว (รีโมท)

02Multiple Access Control มีวัตถุประสงค์หลักคืออะไร?

Multiple Access Control คือกฎที่กำหนดว่าอุปกรณ์ใดส่งข้อมูลบนสื่อกลางร่วมกันได้เมื่อใด เพื่อลด/หลีกเลี่ยงการชนกัน

03วิธีเข้าถึงสื่อกลางแบ่งเป็น 3 กลุ่มหลักคือข้อใด?

3 กลุ่ม: Random access / contention (ALOHA, CSMA, CSMA/CD, CSMA/CA) · Controlled access (reservation, polling, token passing) · Channelization (FDMA, TDMA, CDMA) · ข้อ C คือประเภทการส่งของ MAC address

04เหตุใด Ethernet แบบ switched full-duplex สมัยใหม่จึงไม่ต้องใช้ CSMA/CD?

Switched full-duplex: แต่ละพอร์ตเป็น point-to-point link แยกกัน จึงไม่มีการชนกัน · CSMA/CD ใช้กับ Ethernet แบบ shared bus/hub เดิมที่มีโอกาสชนกัน

05ALOHA (protocol ดั้งเดิม) มีลักษณะเด่นคือข้อใด?

ALOHA ไม่ sense สื่อกลางก่อนส่ง ส่งได้ทันทีที่มีข้อมูล ถ้าไม่ได้ ACK ภายใน timeout (2 เท่าของ propagation delay สูงสุด) จะรอ random backoff แล้วส่งใหม่ · การ sense ก่อนส่งคือ CSMA

06Vulnerable time ของ Pure ALOHA เท่ากับเท่าใด?

Pure ALOHA ส่งได้ทุกเวลา vulnerable time = 2 × Tframe · Tframe คือค่าของ Slotted ALOHA

07Slotted ALOHA ลดโอกาสชนกันเมื่อเทียบกับ Pure ALOHA ได้อย่างไร?

Slotted ALOHA แบ่งเวลาเป็น slot ส่งได้เฉพาะต้น slot vulnerable time ลดจาก 2 × Tframe เหลือ Tframe จึงชนกันได้น้อยกว่า

08เหตุใด CSMA จึงยังชนกันได้แม้ sense สื่อกลางก่อนส่ง?

CSMA sense ก่อนส่งเสมอ แต่ propagation delay ทำให้สถานีที่อยู่ไกลอาจยังไม่รู้ว่ามีสัญญาณอื่นเดินทางมา จึงยังชนกันได้

09กลยุทธ์ p-persistent CSMA ทำงานอย่างไรเมื่อ channel ว่าง?

p-persistent: busy → sense ต่อ · idle → ส่งด้วยความน่าจะเป็น p หรือรอ slot ถัดไปด้วยความน่าจะเป็น 1 − p · ส่งทันทีที่ว่างคือ 1-persistent · รอสุ่มคือ nonpersistent

10CSMA/CD ทำอะไรเมื่อตรวจพบการชนกันระหว่างส่งข้อมูล?

CSMA/CD: พบการชน → หยุดส่งทันที → binary exponential backoff (สุ่ม r จาก {0,…,2min(n,10) − 1} แล้วรอ r × Tslot) → sense ใหม่และส่งซ้ำ

11CSMA/CA (Wi-Fi 802.11) ต่างจาก CSMA/CD อย่างไร?

สถานีไร้สายตรวจจับการชนขณะส่งเองไม่ได้ CSMA/CA จึงหลีกเลี่ยงก่อนส่ง: รอ idle + IFS → สุ่ม backoff จาก CW → นับถอยหลัง → ส่ง → รอ ACK (ไม่ได้ ACK: CWnew = 2 × CWold + 1) — จึงมี backoff เช่นกัน

12กลไก RTS/CTS ใน CSMA/CA มีไว้เพื่ออะไรเป็นหลัก?

RTS/CTS (Request/Clear to Send) ลดปัญหา hidden-node — สถานีอื่นที่ได้ยิน RTS/CTS จะอัปเดต NAV (Network Allocation Vector) และหลีกเลี่ยงการส่งช่วงนั้น (virtual carrier sensing)

13วิธี controlled access ใดที่สถานีได้รับอนุญาตส่งเมื่อได้รับเฟรมพิเศษที่ส่งวนรอบสถานีต่างๆ?

Token Passing: สถานีเรียงเป็นวงแหวน ต้องได้รับ token พิเศษก่อนจึงส่งได้ · Reservation จองคิวใน minislot · Polling ให้ primary ถาม secondary ทีละตัว · FDMA เป็น channelization

14Channelization ต่างจาก Contention-based และ Controlled access อย่างไร?

Channelization แบ่งแบนด์วิดท์ของลิงก์ให้แต่ละสถานีใช้พร้อมกันได้ ตามความถี่ (FDMA) เวลา (TDMA) หรือรหัส (CDMA) · ข้อ C คือ token passing · ข้อ D คือ random access

15CDMA ต่างจาก FDMA และ TDMA อย่างไร?

CDMA: ทุกสถานีส่งพร้อมกันบนช่องเดียวกัน แยกด้วย orthogonal code (Walsh table) — บิต 0 = −1, บิต 1 = +1, ไม่ส่ง = 0 ผู้รับถอดรหัสด้วย inner product กับ code ของตนเอง

16เฟรม Ethernet มีฟิลด์ Preamble และ SFD เพื่อจุดประสงค์ใด?

Preamble 7 ไบต์ (สลับ 0/1) ช่วยซิงโครไนซ์นาฬิกา · SFD 1 ไบต์ บอกจุดเริ่มเฟรม · ปลายทางอยู่ใน Destination Address · การตรวจ error เป็นหน้าที่ของ CRC

17เหตุใดเฟรม Ethernet มาตรฐานต้องมีความยาวขั้นต่ำ 64 ไบต์?

เฟรมขั้นต่ำ 64 ไบต์ (512 บิต) ทำให้ผู้ส่งยังส่งอยู่ในช่วง worst-case round trip บนสายยาวสุดที่มาตรฐานกำหนด จึงตรวจจับการชนได้ทันภายใต้ CSMA/CD · การประหยัดหน่วยความจำเป็นเหตุผลของความยาวสูงสุด 1518 ไบต์

18MAC Address 48 บิต แบ่งเป็นสองส่วนคือข้อใด?

MAC address 48 บิต เขียนเป็น hex คั่นด้วย ':' — 24 บิตแรก IEEE กำหนดตามผู้ผลิต (OUI) · 24 บิตหลังผู้ผลิตกำหนดเอง

19เมื่อสวิตช์ได้รับเฟรมที่ destination MAC address ไม่อยู่ในตาราง จะทำอย่างไร?

Unknown unicast (รวมถึง broadcast/multicast) → flooding: ส่งออกทุกพอร์ตยกเว้นพอร์ตที่รับเข้ามา · ถ้า destination MAC อยู่ในตาราง → ส่งเฉพาะพอร์ตนั้น (frame filtering)

20Store-and-forward switch ต่างจาก Cut-through switch อย่างไร?

Store-and-forward รับครบเฟรม ตรวจ CRC ก่อนส่งต่อ (รองรับ QoS) · Cut-through ส่งต่อทันทีที่รู้ destination address เร็วกว่าแต่ไม่ตรวจ error ก่อน (แบบย่อย fragment-free เช็ค 64 ไบต์แรก)

0 / 20 ข้อ