Chapter 3 – Medium Access Control
Wired vs. Wireless Medium Access Control (MAC) อยู่ใน layer นี้ ในชั้น MAC จะยืมของ wired (TCP/IP) มาใช้ก็ไม่เหมาะ ต้องพัฒนา MAC สำหรับ wireless โดยเฉพาะ
Motivation for a Specialized MAC เอา MAC ของ wired network มาใช้กับ wireless network ได้หรือไม่ ? Local area network (LAN) ใช้ carrier sense multiple access with collision detection (CSMA/CD) Medium คือ wire หรือ coaxial cable ผู้ส่ง sense ใน medium ก่อน ถ้าว่างค่อยส่ง ถ้า detect ได้ว่าเกิด collision จะส่ง jamming signal แล้วเริ่มส่งใหม่ ใน wired network ผู้ส่งสามารถ detect ได้ว่าเกิด collision บนสายสัญญาณ (สัญญาณทุกจุดบนสาย) ใน wireless network สัญญาณแพร่ไปในอากาศและอ่อนลงตามระยะทาง ผู้ส่งไม่ทราบว่าเกิด collision (มี hidden terminal)
Hidden and Exposed Terminals B is exposed to A and C. A is hidden to C and vice versa.
Near and Far Terminal สมมติว่ากำลังส่งของ A และ B แรงเท่าๆ กัน near/far effect ทำให้ C ได้ยินแต่ B ไม่ได้ยิน A (เช่น C เป็น base station) Precise power control ที่ผู้ส่งสำคัญมาก เพื่อให้ผู้รับได้รับสัญญาณแรงเท่าๆ กัน ระบบ UTMS ปรับกำลังส่ง 1,500 ครั้งต่อนาที
Multiplexing สรุปมี 4 แบบ (เรียงตามพัฒนาการ) Space Frequency (2G) Time (2G+) ใช้ time เพื่อรองรับผู้ใช้งานที่เพิ่มขึ้นใน cell Code (3G) 1G ใช้ base station กับ mobile station ที่ fixed ไม่มีการทำ handover mobile station ต้องอยู่ในระยะที่สื่อสารกับ base station ได้
Space Division Multiple Access (SDMA) แบ่ง space ใน wireless network โทรศัพท์มือถือต้องตัดสินใจว่าจะเกาะอยู่กับ base station ใด SDMA มักจะใช้ร่วมกับวิธีอื่นๆ เช่น FDMA, TDMA, CDMA ใช้ beam-forming antenna array เพื่อแบ่ง space ทำให้เพิ่ม cell capacity วัดเป็น bit/s/m2 (data) หรือ call/m2 (voice) 4G / 5G มีความหมายกว้างมาก โดยรวมหมายถึง data rate ที่มากขึ้น โดยใช้เทคนิคหลายอย่างผสมผสานกัน
Frequency Division Multiple Access (FDMA) Assign ความถี่แบบ fixed เช่น สถานีวิทยุ หรือแบบ dynamic ที่ assign ความถี่ให้ base station ตาม demand driven ใช้แบ่ง channel เพื่อทำ duplex channel ระหว่าง mobile device กับ base station Frequency Division Duplex (FDD) แบ่งย่านความถี่เป็น 2 ช่วงคือ uplink และ downlink ในข้างล่างคือ GSM standard 900 MHz มี 124 channels ต่อ 1 base station ได้พร้อมๆ กัน uplink/downlink channel ถูกจับคู่กันไว้แล้ว (fixed) GSM Standard (2G)
Time Division Multiple Access (TDMA) เหมือน Round Robin ที่ process ผลักกันใช้ CPU Process ผู้ส่งข้อมูลลงมาบน medium CPU medium (space) ที่ทุกคนต้องใช้ร่วมกัน แต่ใช้ได้ทีละคน ถ้าใช้ TDMA เสียงจะขาดๆ หายๆ หรือไม่ ทำไมเรายังได้ยินเสียงต่อเนื่อง? D1 D2 D3 Real-time voice data (source) D1 D2 D3 มี delay เล็กน้อย Real-time voice data (playback) t D1 D2 D3
Fixed TDM แบ่งแกนเวลาให้มี 12 channels สำหรับ upload และ download ข้อเสียคือมัน static ไม่ dynamic ทำให้เปลือง slot ที่ไม่มีการใช้งาน
Classic Aloha Aloha = คำทักทายในภาษาฮาวาย (เกาะที่มีประชากรไม่หนาแน่น) Classical assumption คือ data packet ที่เข้ามาเป็นไปตาม Poisson distribution (ความน่าจะเป็นที่จะเกิดเหตุการณ์นั้นขึ้น k ครั้ง เมื่อเหตุการณ์นั้นเป็นอิสระต่อกัน เช่น โยนเหรียญออกหัว k ครั้ง จากทั้งหมด n ครั้ง) ทำงานได้ดีเมื่อมี load น้อย ถ้าเกิด collision ก็ให้ส่งใหม่ (แก้ที่ layer ข้างบน) ได้ maximum throughput ประมาณ 18% load Classical assumption เป็นจริงกับ telephone network แต่ไม่จริงสำหรับ internet
Slotted Aloha เพิ่ม maximum throughput จาก 18% เป็น 36% (2 เท่า) นึกภาพออกมั๊ย ว่าทำไม? ไม่รับประกัน maximum delay และ minimum throughput (เป็นวิธีที่ random มากๆ) ระบบมือถือใหม่ๆ เช่น UMTS ใช้ Slotted Aloha สำหรับ initial connection setup
Carrier Sense Multiple Access (CSMA) เช็คก่อนว่า carrier ว่างหรือไม่ ถ้าว่างก็ค่อยใช้ (access) จะช่วยลด collision แต่ก็มีปัญหาที่เช็ค hidden terminal ถ้า hidden terminal ส่งข้อมูลออกมาพร้อมกัน ก็จะเกิด collision ที่ผู้รับอยู่ดี วิธีนี้ยังใช้ใน wireless LAN Non-persistent CSMA: sense ก่อน ถ้าว่างส่งทันที ถ้าไม่ว่างรอ random amount of time 𝑝-persistent CSMA: sense ก่อน ถ้าว่างส่งด้วย probability 𝑝 ไม่ส่ง (รอ next slot) ด้วย probability 1−𝑝 อาจจะเพิ่ม back-off algorithm เพื่อป้องกันไม่ให้ผู้ที่จะส่งข้อมูลต้องรอนานจนเกินไป เช่น ถ้ารอนานมากก็เพิ่ม 𝑝 CSMA/CA (CA คือ collision avoidance) ใช้ใน wireless LAN (IEEE 802.11) อย่าสับสนกับ CSMA/CD (CD คือ collision detection) ที่ใช้ใน wired LAN CSMA/CA ใช้ sense carrier + back-off algorithm
Demand Assigned Multiple Access (DAMA) หรือ Reservation Aloha ระบบ DAMA ใช้กับ satellite systems Reservation period ในระยะเวลานี้ station บนโลกจะจอง time slot ของดาวเทียม ดาวเทียมจะส่ง reservation list กลับไปให้ station บนโลก (แก้ collision ให้แล้ว) station บนโลกต้องเชื่อฟังและทำตาม reservation list นี้ Transmission period ในระยะเวลานี้ station บนโลกจะส่งข้อมูลด้วย time slot ที่จองไว้ ในรูป “Aloha” คือ reservation period “Reserved” คือ transmission period ที่จริงในกรณีที่มี collision ดาวเทียมน่าจะเลือก station ที่มีสิทธิใช้ time slot ให้เลย ไม่น่าจะปล่อย slot นั้นให้ว่าง กรณี light load จะเพิ่ม delay เล็กน้อย แต่จะเพิ่ม throughput เมื่อมี heavy load เพราะลด collision DAMA เป็นแบบ explicit reservation
Packet Reservation Multiple Access (PRMA) Implicit reservation, 8 slots รวมเป็น 1 คอลัมน์ Reservation ในรูปคือ status ของแต่ละ slot ที่ base station แจ้งให้ mobile station (มือถือ) ทุกตัวทราบ เครื่องหมายขีด “-” คือ reservation fail หรือ free ใน slot 1 – 8 คือ ที่มีการส่งข้อมูลกันจริง slot ที่ว่าง เช่น frame 2 slot 3, 8 เกิดจาก C, F หยุดส่งข้อมูล base station ก็จะประกาศว่า slot 3, 8 ว่าง จากนั้น mobile station จะแย่งกันจองเพื่อใช้ในรอบต่อไป
Reservation TDMA ใช้ N mini-slots และ N*k data-slots แต่ละ mobile station จะได้ mini-slot 1 ช่อง (กันไว้ให้เลย) และจอง data-slot ได้ไม่เกิน 2 ช่อง รับประกัน bandwidth ขั้นต่ำ mobile stations สามารถใช้ data-slots ที่ว่างได้ (“ใช้” กับ “จอง” ไม่เหมือนกัน) อาจจะใช้แบบ Aloha หรือ round-robin ก็ได้
Multiple Access with Collision Avoidance (MACA) มุ่งแก้ปัญหา hidden terminal ไม่ต้องมี base station เป็น ad-hoc network ยังรักษาคุณสมบัติ random access Aloha และ dynamic reservation
สถานการณ์ 1: A จะส่งข้อมูลให้ B (ต้องป้องกัน C มา collide) A ส่ง request to send (RTS) ประกอบด้วย sender, receiver, length of transmission B ได้รับ RTS (C ไม่ได้รับ) B ส่ง clear to send (CTS) ประกอบด้วย sender, receiver, length of transmission ทั้ง A และ C ได้ยิน CTS อนุญาตให้ A ส่งข้อมูลได้ และไม่อนุญาตให้ C ส่งข้อมูลในช่วงเวลาดังกล่าว A กับ C อาจจะส่ง RTS มาพร้อมๆ กัน เกิด collision แต่โอกาสเกิดน้อย เพราะ RTS สั้น ถ้าเกิด collision จริงๆ B ก็จะเลือกตอบ CTS ให้ A หรือ C อย่างใดอย่างหนึ่ง สถานการณ์ 2: B จะส่งข้อมูลให้ A ขณะเดียวกัน C ก็กำลังจะส่งข้อมูลให้ B B ส่ง RTS (B -> A) A ส่ง CTS (B -> A) A กับ B เข้าใจกันแล้วว่าจะเริ่มส่งข้อมูล แต่ C ไม่รู้เรื่องด้วย C ได้รับ RTS แต่ไม่ได้รับ CTS เลยคิดว่า A อยู่นอก detection range B เริ่มส่งข้อมูลให้ A ขณะที่ C ลอง sense carrier ดูก็พบว่าไม่ว่าง (busy) ดังนั้น C ก็ยังไม่เริ่มส่งข้อมูล อันนี้ป้องกัน collision แต่เสียโอกาส เพราะถึง C ส่งมันก็ไม่ไปทำให้เกิด collision ที่ A (ยกเว้น C ส่งสัญญาณได้แรงมาก)
อธิบาย MACA ด้วย finite state machine บนเส้นเชื่อมคือ (event; action) Assume “symmetrical transmission” mobile station สามารถรับและส่งสัญญาณกับ x ได้ ในระยะทางเท่าๆ กัน ทำไม?
Polling One master station, many slave stations (centralized system) Master station ส่งสัญญานแรง ทุก station ได้ยิน master จะเป็นคนสั่ง slave เองว่าจะให้ใช้วิธีไหน เช่น random access หรือ reservation เป็นต้น ใช้ใน Bluetooth wireless LAN
Inhibit Sense Multiple Access (ISMA) หรือ Digital Sense Multiple Access (DSMA) ใช้ uplink กับ downlink อย่างละ 1 channel จะแบ่งด้วยเวลา (time multiplexing) สำหรับ mobile stations หลายๆ ตัว Mobile station ตัวหนึ่งส่งข้อมูลไปบน uplink โดยไม่เกิด collision Base station ส่งสัญญาณ busy บน downlink เพื่อบอก mobile stations ทุกตัวว่า uplink ไม่ว่าง ถ้าเกิด collision ให้ retransmit และใช้ back-off algorithm
Code Division Multiple Access (CDMA) Mobile station (ผู้ใช้) แต่ละเครื่องจะใช้ code ต่างกัน และ code ควรจะมีลักษณะดังนี้ Good autocorrelation ถ้าจากนิยามนี้ code ที่ดีก็ต้องเป็น vector ของ +1 และ –1 ผสมกัน
Barker code (+1, –1, +1, +1, –1, +1, +1, +1, –1, –1, –1) ใช้ +1 แทน 1 และ -1 แทน 0 Good autocorrelation (inner product with itself is large, 11) สมมติว่า string s1 และ s2 เกิดจากการเอา Barker code มาเรียงต่อกันไปเรื่อยๆ ถ้า s1 และ s2 align ตรงกัน ถึงจะได้ inner product = 11 (high) ถ้า align ไม่ตรงกันจะได้ inner product = 1 (low) คุณสมบัตินี้ช่วยให้ทำ autocorrelation ได้ง่าย Autocorrelation ช่วย synchronize ระหว่างผู้ส่งและผู้รับ Barker code ใช้ใน ISDN (Integrated Services Digital Network) และ IEEE802.11 (Wireless LAN) หนังสือไม่ได้อธิบายว่า ในกรณีที่ data bit ยาวหลายบิต ถ้าผู้รับไม่รู้จุดเริ่มต้นของ symbol (บิต 0/1) จะต้องทำ autocorrelation ยังไง แต่ถ้าใช้ code ที่ดีจะทำ autocorrelation ได้ง่าย Orthogonal to other code ตั้งฉากกับ code อื่น นิยามเหมือน “ตั้งฉาก” ใน 3D space Vector 2 ตัวที่ตั้งฉากกัน จะได้ inner product = 0 เช่น (2, 5, 0) * (0, 0, 17) = 0 ถ้า inner product มีค่าใกล้ 0 คือ เกือบ orthogonal เช่น (1, 2, 3) * (4, 2, -3) = -1
ตัวอย่างแรก (CDMA เพียวๆ ส่ง data bit แค่บิตเดียว) ไม่จำเป็นต้องเป็น B ส่งออกมาก็ได้ เป็น noise อื่นๆ ก็ได้ B ไม่มีทาง cancel A ให้เป็นศูนย์ได้ (orthogonal codes) ตัวอย่างแรก (CDMA เพียวๆ ส่ง data bit แค่บิตเดียว) ผู้ส่ง A และ B ต้องการส่งข้อมูลพร้อมๆ กัน A ใช้ code หรือ key Ak = 010011 และ B ใช้ code หรือ key Bk = 110101 (ในตัวอย่างนี้ใช้ key สั้น แต่ในทางปฏิบัติต้องใช้ key ยาวมากๆ เพื่อความปลอดภัยจากการถูกดักฟัง) A มี data bit Ad = 1 (แทนด้วย +1) และ B มี data bit Bd = 0 (แทนด้วย –1) A ส่ง signal As = Ad * Ak = +1*(–1, +1, –1, –1, +1, +1) = (–1, +1, –1, –1, +1, +1) B ส่ง signal Bs = Bd * Bk = –1*(+1, +1, –1, +1, –1, +1) = (–1, –1, +1, –1, +1, –1) สังเกตว่า Ak ตั้งฉากกับ Bk (Ak * Bk = 0) แล้วถ้า key ไม่ตั้งฉากกันจะเกิดอะไรขึ้น ? สัญญาณถูกส่งออกมาพร้อมกัน ที่ความถี่เดียวกัน C = As + Bs = (–2, 0, 0, –2, +2, 0) ถ้าส่งไม่พร้อมกันจะเกิดอะไรขึ้น ? ถ้าผู้รับต้องการรับสัญญาณจาก A C * Ak = (–2, 0, 0, –2, +2, 0) * (–1, +1, –1, –1, +1, +1) = 2 + 0 + 0 + 2 + 2 + 0 = 6 ได้ positive value ดังนั้น ข้อมูลที่ส่งมาคือ 1 ถ้าผู้รับต้องการรับสัญญาณจาก B C * Bk = (–2, 0, 0, –2, +2, 0) * (+1, +1, –1, +1, –1, +1) = –2 + 0 + 0 – 2 – 2 + 0 = –6 ได้ negative value ดังนั้น ข้อมูลที่ส่งมาคือ 0 ในสถานการณ์จริง อาจจะมี noise ทำให้ค่าที่ได้เข้าใกล้ 0 และตัดสินได้ยากว่าข้อมูลที่ส่งมาเป็น 0 หรือ 1
สมมติว่าสัญญาณ B แรงกว่า A 5 เท่า C' = As + 5*Bs = (–1, +1, –1, –1, +1, +1) + (–5, –5, +5, –5, +5, –5) = (–6, –4, +4, –6, +6, –4) ผู้รับสัญญาณ B: C'*Bk = –6 –4 – 4 – 6 – 6 – 4= –30 (ลบเยอะ มองเห็นชัดว่าข้อมูลที่ส่งมาคือ 0) ผู้รับสัญญาณ A: C'*Ak = 6 – 4 – 4 + 6 + 6 – 4 = 6 (บวก ข้อมูลที่ส่งมาคือ 1 สัญญาณอ่อนกว่า B 5 เท่า และอยู่ใกล้ศูนย์มาก อาจจะทำให้ดูไม่ต่างจาก noise) เครื่องส่งในระบบ CDMA ต้องปรับ power บ่อยมาก (>1,000 ครั้ง/วินาที ในบางระบบ) เปลืองพลังงาน ลองพิจารณาดูว่า +1 และ -1 ที่ส่งในตัวอย่าง ใน physical layer จริงๆ แล้วมันคืออะไร?
CDMA + DSSS แทน 0 ด้วย positive (เส้นบน) และแทน 1 ด้วย negative (เส้นล่าง), กลับกันกับตัวอย่างแรก (ไม่มีประเด็นอะไร ไม่ต้องสนใจ) Code sequence ของจริงยาวถึง 242-1 chips (pulse), chip rate 1,228,800 chips/s (code repeats after 41.425 days) Chip rate (of a code) มีหน่วยเป็น chips (pulses) per second Spreading factor (SF) = chip rate / symbol rate ในตัวอย่าง SF = 6 เพราะ 1 symbol ถูก spread เป็น 6 chips หนังสือไม่ได้บอกรายละเอียดว่าสร้าง code sequence ที่ยาวมากๆ นี้ยังไง แต่ไม่ได้เก็บเป็นตารางแน่ๆ เพราะใหญ่มาก และใช้ code sequence นี้ยังไง เช่น synchronous (syn กับเวลา) หรือ asynchronous (มีตัวนับว่าใช้ไปถึงไหนแล้ว) ต้องทำ autocorrelation หรือไม่ ยังไง ทำ CDMA แล้วต้องแยกส่งแต่ละ data bit ด้วยความถี่ต่างกัน เพื่อลด narrowband interference เช่น ในตัวอย่าง 1 data bit ถูก spread เป็น 6 bit เพื่อแยกส่งไปบนแต่ละความถี่ (แต่ละ channel)
สังเกตว่า code หรือ key ของแต่ละ data bit ไม่ตั้งฉากกันแล้ว แต่คิดว่าแค่เกือบๆ ตั้งฉากกันก็น่าจะพอใช้ได้ เหตุผลที่ไม่ตั้ง ฉากกันพอดี เพราะใช้ code sequence ที่ยาวมาก (ไม่ซ้ำกับ code ของ data bit ก่อนหน้า) ทำให้มีข้อจำกัดว่าออกแบบ code ให้ตั้งฉากกันเป๊ะไม่ได้ ทำได้แค่เกือบๆ ตั้งฉาก
Integrate แล้วต่ำกว่าเส้นแดงคือ 1 สูงกว่าเส้นแดงคือ 0 ต้อง integrate พื้นที่ใต้กราฟ ถ้าพื้นที่เป็นบวกมากๆ คือ 0 ถ้าพื้นที่เป็นลบมากๆ คือ 1 ที่จริงผลลัพธ์ของ integration ก็คือ inner of product แต่เนื่องจากข้อมูลเข้ามาทีละบิต แทนที่จะรอให้ข้อมูลมาครบทุกบิต (6 บิต) แล้วค่อยทำ inner of product ทีเดียว ก็ค่อยๆ ทำ inner of product ไปทีละบิต (ออกแบบฮาร์ดแวร์ง่ายกว่า) +1 -1 -1 -1 -2 -3 -3 -4 Integrate แล้วต่ำกว่าเส้นแดงคือ 1 สูงกว่าเส้นแดงคือ 0
Spread Aloha Multiple Access (SAMA) อุปกรณ์รับส่งข้อมูลแบบ CDMA นั้นมีข้อเสียคือ ซับซ้อนและแพง เพราะต้องรับส่งโดยใช้ code ที่ต่างกันได้ n แบบ เช่น มีอุปกรณ์ n ตัว ทุกคู่สามารถสื่อสารกันได้หมด (ad-hoc network) แต่โทรศัพท์มือถือไม่ได้ยุ่งยากขนาดนั้น เพราะโทรศัพท์มือถือหรือ mobile station คุยกับ base station เท่านั้น ความซับซ้อนไปอยู่ที่ base station แทน (ใช้ code ต่างกัน n แบบ) ไม่ได้อยู่ที่โทรศัพท์มือถือ (ใช้ code เดียว) ในกรณีที่ต้องการให้อุปกรณ์ n ตัวคุยกันได้แบบ CDMA (เช่น เกิดภัยพิบัติ base station ล่มไปแล้ว) ใช้ Spread Aloha multiple access (SAMA) จะซับซ้อนน้อยกว่า แต่ได้ bandwidth ลดลง ผสม CDMA + TDMA = SAMA ผู้ส่งแต่ละคนใช้ spread code เดียวกัน เช่นในรูปข้างล่างใช้ code “110101” และเกิด collision ขณะ A ส่ง 101 และ B ส่ง 011 ส่ง null ด้วย high power ใน short period of time ผู้รับที่ต้องการฟัง A ต้องพยายาม synchronize กับ A และ ผู้รับที่พยายามฟัง B ต้องพยายาม synchronize กับ B Code จะไม่ตั้งฉากกันแล้ว (ทำไม?) ถึงออกแบบ code มาให้ตั้งฉากกัน มันก็จะไม่ตั้งฉากกัน เพราะ sender A และ B ไม่ syn กัน Code ที่ใช้ต้องมีคุณสมบัติ autocorrelation แต่ในขณะเดียวกัน code นั้นต้องไม่ correlate กันมาก ถ้า phase ต่างกัน ได้ maximum throughput 18% เท่า Aloha แต่ได้ robustness เพิ่มขึ้นจาก spread spectrum ทน narrowband interference ในรูปจะเห็นว่าส่วนที่เป็น spread spectrum (แท่งเล็ก) ส่วนที่หักล้างกัน น่าจะเสียไป (อ่านไม่ได้) แต่ก็ยังเหลือบางแท่งที่อ่านได้ ในการใช้งานจริงที่มี device หลายๆ ตัว ต้องใช้ chipping sequence ที่ยาวกว่านี้มาก
ปัจจุบัน cellular system ใช้ CDM แทน FDM ดังนั้นไม่มีปัญหาเรื่องการจัดสรรความถี่แล้ว แต่ CDM cells จะเกิดปัญหา cell breathing แทน ปัญหาของ 3G