Horizon

Monday, September 28, 2015

[Wi-Fi] กฎเหล็ก ของ Wi-Fi Communication : Rules of Wi-Fi Communication

กฎเหล็ก ของ Wi-Fi Communication : Rules of Wi-Fi Communication
การส่งข้อมูลบน Wi-Fi นั้น มีกฎอยู่ 2 ข้อดังนี้
ข้อแรก การส่งข้อมูลบนระบบ Wi-Fi เป็น Half Duplex คือ ในขณะที่ส่งข้อมูล (Transmit : Tx) จะไม่สามารถรับข้อมูลได้
ข้อสอง ในการส่งข้อมูล เมือส่งเสร็จ จะมี ช่องว่าง (Space/Dead air) คั่นอยู่เสมอ เรียก ช่องว่างนี้ว่า Inter Frame Space (IFS) โดยจะมี Short IFS (SIFS) และ DeCode Function IFS หรือ DIFS

ศัพท์เทคนิค ที่อาจจะต้องได้ยิน
Carrier Sense Multiple Access หรือ CSMA คือ เมื่อมีใคร ทำการส่ง (Tx) Client คนอื่น ๆ ต้องรอจนกว่าจะเสร็จ โดยมาตรฐานนี้จะมี CD และ CA โดย
CD = Collision detection อันนี้จะใช้บนระบบ LAN ไม่ได้ใช้บน Wi-Fi
CA = Collision avoidance อันนี้จะใช้บนระบบ Wi-Fi (ในบทที่ 2 ที่ยกตัวอย่างเรื่องบัตรคิว)

ขอยกตัวอย่าง ในเคสที่มี Client 2 เครื่อง เชื่อมต่อบน Access Point ตัวเดียวกัน ต้องการจะส่งข้อมูลในเวลาพร้อมกัน

หลักการทำงาน มี step ขั้นตอนดังนี้
1.      Access Point ประกาศ ACK ออกไป บอกแก่ client ที่เชื่อมต่อว่า ตอนนี้ คิวว่างแล้วนะ
2.       Client ทั้ง 2 ตอนนี้ ยังไม่รู้ว่า เป็นคิวของตนเองหรือไม่ ขั้นตอนนี้จะมี DIFS ทั้ง 2
3.       Client ทั้ง 2 เครื่อง จะทำการ สุ่มติ้วบัตรคิว (ทางเทคนิค เรียกว่า Random Back Off Timer โดยค่านี้ มีหน่วยเป็น millisec (ms) มีค่าระหว่างเลข 1-15 ms) ซึ่งเป็นตัวเลขไว้สำหรับนับถอยหลัง (ใครถึง 0 ก่อน แปลว่า ได้คิวก่อน)
4.       เมื่อได้ติ้วบัตรคิวแล้ว Client จะรู้ว่า ลำดับคิวของตนเองเป็นอย่างไร โดยเมื่อนับถอยหลังถึง 0 แล้ว Client นั้น จะส่ง CCA Negative หรือ Clear Channel Assessment เพื่อบอกกับ Access Point ว่า จะเริ่มส่งข้อมูลแล้วนะ
5.       จากนั้น Client ทำการส่งข้อมูล
6.       เมื่อส่งเสร็จ Access Point จะประกาศแก่ Client ที่เชื่อมต่อว่า โอเค ตอนนี้ คิวว่างแล้วนะ (เรียกว่า SIFS) จากนั้นก็ ACK ออกไป
7.       Client ก็จะมี DIFS ใหม่อีกรอบ แต่ Client ที่ส่งข้อมูลไปเสร็จสิ้นแล้ว จะไม่มีติ้วบัตรคิว ดังนั้น จะทำการสุ่มอีกครั้ง (Random Back Off Timer) ส่วน Client อีกเครื่อง ก็จะนับถอยหลังต่อไปจากเลขเดิม
8.       เมื่อนับถอยหลังจนถึงศูนย์ Client เครื่องนั้น ก็จะได้สิทธิ์ในการส่งข้อมูล
9.       วนลูปนี้ไปจนกว่าจะไม่มีการส่งข้อมูล



จาก Step การจัดคิวดังกล่าวมานี้ ที่เป็นเรื่องของ Back Off Timer (หรือ BoT) จะไปเกี่ยวข้องการจัดความสำคัญของการส่งข้อมูล (Quality of Service: QoS) ซึ่งจะมีลำดับการสุ่มเลขคิว ตามความสำคัญ (ดังที่บทที่ 1 กล่าวว่ามีความสำคัญ 4 ขั้น)
1.       Voice
2.       Video
3.       Best Effort
4.       Background
มีสูตรการสุ่ม BoT ดังนี้

จะเห็นว่า ข้อมูลที่เป็น Voice จะสุ่ม Back Off Timer ได้แค่เลข 0 หรือ 1 เท่านั้น แปลว่า ยังไงคิวก็มาถึงได้ก่อนเสมอ

เรื่องของ WiFi ยังไม่จบ ไว้ติดตามต่อนะครับ


Friday, September 25, 2015

[Wi-Fi] How Wi-Fi Works และ Air Time Fairness


ภาค2 ต่อจาก ตอนที่1 Introduction to Wireless LAN

How does Wi-Fi works และ อะไรคือ AirTime Fairness
การทำงานของระบบเครือข่ายไร้สายทำงานอย่างไร
อิงจากทฤษฎี Wi-Fi Protocol Layer ดังนี้
  • Manage เป็น Protocol ที่ทำหน้าที่ในการเชื่อมต่อระหว่าสง Access Point กับ Client และทำการ maintain connection ให้เชื่อมต่อตลอดเวลา การส่ง key ในการเข้ารหัส และถอดรหัสด้วย (อาจจะใช้ WEP หรือ WPA แล้วแต่การใช้งาน)
  • Control เป็นการจัดสรร "คิว" ที่จะใช้งาน ซึ่งจะอธิบายในหัวข้อด้านล่างนี้
  • Data เป็นการรับส่งข้อมูล ของการใช้งานระบบเครือข่ายไร้สาย
เริ่มแรก ก่อนที่จะใช้งาน Wi-Fi ได้ ต้องทำการเชื่อมต่อก่อน โดยมีขั้นตอนดังนี้
  • Discovery Process เป็นการค้นหา ทั้งที่ Access Point ส่ง broadcast SSID ออกไป และเครื่อง Client ส่ง Probe Request หาว่ามี สัญญาณให้บริการหรือไม่ ถ้าหากพบว่า มีสัญญาณเชื่อมต่อก็ไปต่อขั้นที่สอง
  • Authentication เป็นการตรวจสอบสิทธิ์การใช้งาน อันนี้จะอ้างอิงมาตรฐาน IEEE 802.11r ด้วย ว่าเครื่อง Client มีสิทธิ์ในการใช้งานหรือไม่ ถ้ามีก็ไปต่อขั้นที่สาม
  • Association เมื่อตรวจสอบสิทธิ์แล้วว่าใช้งานได้ การ Association ถ้าอธิบายง่าย ๆ คือ การเปรียบเทียบกับการลงทะเบียน ว่า Client นี้ เชื่อมต่อกับ Access Point ตัวไหนในระบบ (กรณีที่มี Access Point หลาย ๆ ตัว) เพื่อเป็นการ ล๊อกการใช้งานว่า ให้รับส่งข้อมูลกับ Access Point ตัวนั้น ๆ และหากมีการ Roaming (การย้ายการใช้งานไปอีก Access Point) ก็จะทำการย้ายการลงทะเบียนไปว่า ตอนนี้ย้ายแล้ว เพราะฉะนั้น การรับส่งข้อมูล ก็ให้ไปทำบน Access Point ที่ย้ายไป
  • Connected พร้อมใช้งานแล้ว !!!
ลองมาดูเป็นรูปภาพ เพื่อความเข้าใจที่ง่ายขึ้น แบ่งเป็นสี ในแต่ละขั้นตอน



เมื่อการเชื่อมต่อเสร็จสิ้น จะมาว่าด้วยเรื่องของการรับส่งข้อมูล

การรับส่งข้อมูลของAP กับ client

เมื่อมีอุปกรณ์ Client เชื่อมต่อหลาย ๆ เครื่อง กับ Access Point ตัวเดียว 
การทำงานจะคล้ายกับการขึ้นบันไดเลื่อนคือต้องขึ้นทีละคน หากมีหลายคน ก็ต่อคิวกัน
หรืออีกแบบ คือเหมือนกับฮับ hub network ส่งข้อมูลได้ทีละคน
มีลักษณะคือ หยุดรอคิว ฟัง ตอบกลับ เริ่มรับส่ง สำหรับในเชิงลึก จะมีบทความเชิงเทคนิคอีกทีตอนนี้ขออธิบายคร่าวๆ ก่อน

หยุดรอคิว - ap แจ้งให้ทุกคนทราบว่าตอนนี้ว่างแล้วนะจับติ้วบัตรคิวกันว่าใครจะได้ลำดับก่อนหลังยังไง
ฟัง - บัตรคิวหมายเลข 1เชิญใช้บริการคะ บัตรคิวหมายเลข1 อยู่มั้ยค่ะ?
ตอบกลับ - อยู่ครับ
เริ่มรับส่ง - เชิญใช้บริการคะ

พอเสร็จปุ้ปก็กลับมาวนลูปอีกครั้ง

หยุดรอคิว - ap แจ้งให้ทุกคนทราบว่าตอนนี้ว่างแล้วนะหยิบติ้วบัตรคิวกันว่าใครจะได้ลำดับถัดไป
ฟัง - บัตรคิวหมายเลข 2เชิญใช้บริการคะ บัตรคิวหมายเลข2 อยู่มั้ยค่ะ?
ตอบกลับ - อยู่ครับ
เริ่มรับส่ง - เชิญใช้บริการคะ

จะทำแบบนี้สลับกันไปเรื่อยๆ จนวนรอบมาใหม่กรณีที่มีเครื่อง client ใช้งานบน ap ตัวเดียวกัน


แน่นอนว่า เครื่อง client มีหลากหลาย ทั้ง notebook, macbook, iphone, samsung, android etc. มันก็ต้องมีบ้างที่เครื่องเร็วเครื่องช้า เมื่อเครื่องหลากหลายเหล่านี้มาใช้งานร่วมกัน สิ่งที่ตามมาคือ คิวจำนวนมาก และระยะรอคิวที่เพิ่มขึ้น โดยแรกเริ่มเดิมที ระบบคิวของ WiFi จะนับคิวจนให้บริการเสร็จ ถึงจะให้คิวต่อไปมองง่ายๆว่าส่งข้อมูลในปริมาณเท่ากัน เช่น สมมุติว่า Access Point ให้ส่งทีละ 100 package 
เครื่อง1 ส่งทีละ 100 package ใช้เวลา2 วินาที
เครื่อง2 ส่งทีละ 100 package ใช้เวลา 3 วินาที
เครื่อง3 ส่งทีละ 100 package ใช้เวลา 10วินาที

เท่ากับ 15วินาที สามารถส่งข้อมูลได้ 300แพคเกจ

ถ้าต้องการส่งข้อมูล จำนวนมาก เช่น เครื่องละ 10,000แพคเกจ ทั้ง 3เครื่อง รวม 30,000แพคเกจ ต้องใช้เวลา 1,500 วินาที โดยเครื่อง1 แทนที่จะสามารถส่งได้เสร็จในเวลา 200วินาที (ถ้าคิดว่ามีแค่เครื่องเดียว) แต่กลับต้องมารอคิวการส่งคิวละ 100แพคเกจ สลับคิวรอบละ 13 วินาทีวน loop คิวไปจนกว่าจะเสร็จ และ แต่ละเครื่องจะส่งข้อมูลครบ 10,000แพคเกจในเวลาเท่าๆกัน เรียกว่า เพื่อนกันไม่ทิ่งกันว่างั้น

                                                  "มาด้วยกัน ไปด้วยกันเลือดสุพรรณ"

เราจะเห็นจากตัวอย่างว่า ถ้าระบบ wifi ไม่ทำอะไรสักอย่าง การรับส่งข้อมูล การรอคิว ระยะเวลารอคิวมันเป็นปัญหา ดังนั้น การคิดค้นการแก้ไขปัญหาโลกแตกนี้ จึงเกิดขึ้นเป็นที่มาของคำว่า Air Time Fairness

โดยเปลี่ยนการนับจำนวนแพคเกจที่ส่ง เป็นระยะเวลา (air time) ที่ใช้งานแทน นั่นแปลว่า เครื่อง client ที่เร็ว จะสามารถส่งข้อมูลได้มากกว่า ในเวลาเท่ากัน

จากตัวอย่างเดิม จำนวน client 3 เครื่อง ระยะ air time เครื่องละ 5วินาที ก็แปลว่า รอบนึงใช้เวลา 15วินาทีเท่ากัน
เทียบแบบหยาบๆ คือ
เครื่อง1 ในเวลา 5 วินาที ส่งได้ 250แพคเกจ
เครื่อง2 ในเวลา 5 วินาที ส่งได้ 183แพคเกจ
เครื่อง3 ในเวลา 5 วินาที ส่งได้ 50 แพคเกจ

ดังนั้นถ้าต้องการส่งข้อมูลเครื่องละ 10,000แพคเกจ จะเห็นได้ว่า เครื่อง1จะสามารถส่งได้ครบก่อนเพราะส่งได้250แพคเกจต่อการรอคิว1รอบและพอเครื่อง1ส่งได้หมดก่อนเครื่องที่เหลือคือ2,3 จะสลับกันส่งทีละ5วินาที สลับกันการรอคิวอีก5วินาที วนไปจนเครื่อง2 ส่งได้ครบ ทีนี้เครื่อง3 ก็ไม่ต้องต่อคิวใครอีก (ถ้าเครื่องอื่นไม่ได้ใช้แล้วนะ) ก็รับคิวส่งไปเต็ม
จากตัวอย่างนี้ จะเห็นได้ว่าในรอบคิว1รอบรวม15วินาที ระบบนี้ ส่งได้ 483แพคเกจ 
เมื่อเทียบกับตัวอย่างแรก เวลาเท่ากัน แต่ส่งได้ 300แพคเกจ

                                                                                                                              "ไปก่อนหล่ะนะ :D "



เอาหล่ะ นี่แค่ feature น้ำจิ้มนะ เรื่องของ Wifi ยังมีอีกเยอะ ไว้มาต่อกันคราวหน้า

Thursday, September 24, 2015

[Wi-Fi] Introduction to Wireless LAN

Introduction to Wireless LAN

เมื่อพูดถึงระบบเครือข่ายแบบไร้สาย (Wireless LAN หรือ WLAN) คนส่วนใหญ่ จะนึงถึงคำว่า WiFi ดังรูปด้านล่าง
โดยหน่วยงาน IEEE เป็นผู้ที่ตั้งกฎ IEEE 802.11 ที่ว่าด้วยกฎเกณฑ์ของการใช้งานบนระบบเครือข่ายไร้สาย และได้ก่อนตั้ง WiFi Alliance ขึ้นมา เพื่อเป็นหน่วยงานที่ใช้งานตามกฎที่ตั้งขึ้น

มาตรฐาน WiFi ที่เห็นเป็น Logo บนอุปกรณ์ต่าง ๆ นั้น จะมี a, b, g, n และ ac (และ ax ในอนาคต) จะใช้เป็นตัวบ่งชี้ถึงการใช้คลื่นความถี่ และประสิทธิภาพของอุปกรณ์นั้น ๆ ดังตาราง
มาตรฐานที่เกี่ยวข้องอื่น ๆ ของ WiFi ได้แก่
IEEE 802.11i
IEEE 802.11e

IEEE 802.11i เป็นเรื่องของการเข้ารหัสข้อมูลที่ระบส่ง เพื่อรักษาความปลอดภัยของผู้ใช้งาน (Encryption Method) โดยเริ่มแรก จะใช้ WEP (Wired Equivalent Privacy) แต่เนื่องจากการเข้ารหัสแบบนี้ จะใช้ Key ที่เหมือนเดิมตลอดการใช้งาน หากมีผู้ไม่ประสงค์ดี มาดักข้อมูลไป และสามารถถอดรหัสได้ ก็จะสามรถเจาะการเข้าหรัสได้ จึงมีการพัฒนาการเข้ารหัสแบบใหม่ คือ WPA (Wi-Fi Protected Access) โดยจะใช้ Key แบบชั่วคราว (Temporal Key Integrity) โดยในระหว่างการใช้งานอยู่ Key ที่ใช้งาน จะเปลี่ยนไปเรื่อย ๆ เพื่อให้การถอดรหัสยากขึ้น และซับซ้อนขึ้น โดยปัจจุบันนี้ พัฒนามาเป็น WPA 2.0 แล้ว

IEEE 802.11e เป็นเรื่องของการจัดสรรความสำคัญของการส่งข้อมูล (Quality of Service:QoS) โดยในการส่งข้อมูล ถ้าเป็นแบบ LAN ที่เชื่อมต่อผ่านอุปกรณ์ Switch แบบที่ใช้งานนั้น จะสามารถตั้งค่าความสำคัญ (Priority) ได้สูงสุดคือ 7 Priority (ค่าสูงสุดคือ 7 และต่ำสุดคือ 0) แต่ในการรับส่งข้อมูลแบบไร้สาย สามารถตั้งได้เพียง 4 Priority (โดยปกติ จะให้ข้อมูลชนิด Voice เป็นค่าสูงสุด)

คลื่นความถี่ (Radio Frequency)
ในการส่งข้อมูลแบบไร้สาย จะส่งผ่านคลื่น โดยจะมีค่าของ ความถี่ (Frequency) และ ความยาวคลื่น (Wavelength) ซึ่งความถี่ที่ใช้งาน ณ ปัจจุบันคือ 2.4 GHz และ 5 GHz

ความแรงของสัญญาณ (Signal Strength)
จะใช้หน่วยวัดความแรงเป็น Watt โดยมีความแรงเป็นระดับ milliwatt (mW) โดยอุปกรณ์กระจายสัญญาณ Access Point จะมีระบุว่า มีความแรงของสัญญาณที่ส่ง กี่ mW