การทำงานของอุปกรณ์เน็ตเวิร์กเบื้องต้น
NIC · ฮับ · บริดจ์ · สวิตช์ · เร้าเตอร์ · สวิตช์เลเยอร์ 3 — อุปกรณ์ห้าหกตัวนี้ต่างกันแค่สองคำถาม: ทำงานที่เลเยอร์ไหน และ แยกโดเมนอะไรให้บ้าง ตอบสองข้อนี้ได้ก็จบทั้งบท
หัวใจของบทนี้คือ ตารางเทียบอุปกรณ์ (ทำงานเลเยอร์ไหน / แยก collision domain ไหม / แยก broadcast domain ไหม) — เป็นคำถามที่ข้อสอบแนว Cisco/CCNA ชอบออกมากที่สุด ตามด้วย (1) นับจำนวน collision domain และ broadcast domain จากรูปโทโพโลยีผสม hub + switch + router (2) เทียบ Store-and-forward กับ Cut-through (3) ฮับต่างจากสวิตช์อย่างไร และ (4) บริดจ์ต่างจากสวิตช์อย่างไร ซึ่งเป็นข้อ 1–3 ของคำถามท้ายบทที่ 9 ด้วย
8.1แผ่นวงจรต่อประสานข่ายงาน (Network Interface Card)
องค์ประกอบสำคัญชนิดแรกของการสื่อสารในเน็ตเวิร์กคือ แผ่นวงจรต่อประสานข่ายงาน (Network Interface Card, NIC) หรือที่เรียกทั่วไปว่า การ์ดแลน (LAN card)
หน้าที่ที่ 1 — เชื่อมต่อและแปลงสัญญาณ
ทำหน้าที่เชื่อมต่อเข้ายังเน็ตเวิร์ก และแปลงข้อมูลดิจิทัลให้อยู่ในรูปของสัญญาณที่เหมาะสมกับช่องสัญญาณที่ส่ง รวมถึงแปลงสัญญาณที่ได้รับจากช่องสัญญาณกลับเป็นข้อมูลดิจิทัล
หน้าที่ที่ 2 — คัดเฟรมด้วย MAC address
ทุกการ์ดแลนมีเลขประจำตัวของตนเองหรือ MAC address ใช้ตรวจสอบว่าเฟรมที่ได้รับตรงกับ MAC address ของตนหรือไม่ — หากใช่จึงจะรับไว้เพื่อนำไปประมวลผลต่อ
ปัจจุบันการ์ดแลนถูกประกอบอยู่บนเมนบอร์ด (mainboard) อยู่แล้ว ไม่จำเป็นต้องหาซื้อเพิ่มเติม
การ์ดแลนบางแผ่นสามารถกำหนดให้ทำงานในโหมดพิเศษเรียกว่า promiscuous mode เพื่อรับทุกเฟรมที่ผ่านเข้าสู่ระบบ (ไม่ใช่แค่เฟรมที่จ่าหน้าถึงตนเอง) เช่นการใช้กับแอปพลิเคชัน wireshark เพื่อวิเคราะห์ฟิลด์ต่าง ๆ ของเฟรม รวมถึงวิเคราะห์โพรโตคอลอื่น ๆ อย่างละเอียด
ในบทที่ 5 พอร์ตแอดเดรส คือแอดเดรสเพื่อเรียกไปยังโพรโตคอลที่ใช้ เช่น พอร์ต 80 อ้างถึงโพรโตคอล HTTP — แต่เมื่อกล่าวถึงอุปกรณ์ในเน็ตเวิร์ก คำว่าพอร์ตหมายถึง จุดเชื่อมต่อของอุปกรณ์จริงบนสวิตช์หรือฮับ (รูเสียบสาย) ข้อสอบชอบเล่นกับความกำกวมนี้
8.2ฮับ (Hub)
ฮับเป็นอุปกรณ์พื้นฐานเพื่อใช้สร้างเน็ตเวิร์กอย่างง่าย โดยทั่วไปมีพอร์ตอย่างน้อย 4 พอร์ต ทำหน้าที่:
- ขยายสัญญาณ (amplification)
- จัดการกับสัญญาณ (reshaping) ในการจำกัดสัญญาณรบกวนออก เพื่อเตรียมส่งออกไปอุปกรณ์ปลายทาง
หรืออาจกล่าวได้ว่า ฮับเป็นเสมือนอุปกรณ์ทวนสัญญาณ (repeater) แบบหลายพอร์ต (multi-port repeater)
เนื่องจากโครงสร้างภายในของฮับมีการเชื่อมต่อในลักษณะที่เป็นบัส (bus) ดังนั้นเมื่อได้รับข้อมูล ข้อมูลจะถูกส่งออกไปยังทุกพอร์ต ยกเว้นพอร์ตที่ส่งข้อมูล
ในกรณีนี้ หากมีอุปกรณ์มากกว่า 1 ตัวส่งข้อมูลพร้อมกัน จะทำให้ข้อมูลเกิดการชนกัน เป็นผลให้อุปกรณ์ทั้งสองต้องเริ่มส่งใหม่ — นี่คือเหตุผลทั้งหมดที่ฮับถูกเลิกใช้ ไม่ใช่เพราะช้าอย่างเดียว
ข้อดีของฮับ
ความง่ายในการต่อขยาย และราคาที่ถูก
ทำไมเลิกใช้
ปัจจุบันราคาของสวิตช์ลดลง และมีประสิทธิภาพที่ดีกว่า ทำให้มีการนำสวิตช์เข้ามาทดแทน
สองรูปข้างบนตอบว่า "ข้างในฮับหน้าตาเป็นยังไง" — ส่วนภาพเคลื่อนไหวข้างล่างตอบว่า "แล้วพอสองเครื่องส่งพร้อมกันเกิดอะไรขึ้น" ดูคู่กันจะเห็นภาพครบ
8.3บริดจ์ (Bridge)
บริดจ์คล้ายฮับคือใช้เพื่อเชื่อมต่อส่วนของเน็ตเวิร์ก (segment) เข้าด้วยกัน แต่บริดจ์ยังทำหน้าที่กรองทราฟฟิก (traffic) ที่เกิดขึ้นระหว่างเน็ตเวิร์กเซกเมนต์ด้วย
- เมื่อเน็ตเวิร์กเซกเมนต์หนึ่งได้รับเฟรม บริดจ์จะตรวจสอบ physical address ของเฟรม ว่าภาครับอยู่ภายในเซกเมนต์เดียวกันหรือไม่
- ถ้าไม่ใช่เซกเมนต์เดียวกัน → บริดจ์จะส่งต่อ (retransmit) เฟรมออกไปยังพอร์ตของเซกเมนต์ที่ภาครับเชื่อมต่ออยู่
- ถ้าอยู่ในเซกเมนต์เดียวกัน → บริดจ์ถือว่าภาครับได้รับเฟรมเรียบร้อยแล้ว ดังนั้นเฟรมจะถูกกำจัดทิ้ง — ทำให้ลดทราฟฟิกในเน็ตเวิร์กลงได้
จากการที่บริดจ์ต้องกรองทราฟฟิก บริดจ์จึงต้องเรียนรู้ฟิสิคอลแอดเดรสของอุปกรณ์ต่าง ๆ ตัวอย่างบริดจ์ที่นิยมใช้ในการเชื่อมต่ออีเทอร์เน็ตคือ transparent bridge ซึ่งสะดวกมาก เพราะบริดจ์เรียนรู้เพื่อส่งเฟรมไปยังพอร์ตที่ถูกต้องได้เอง โดยผู้ใช้ไม่ต้องตั้งค่าใด ๆ
บริดจ์จะสร้างตารางเรียกว่า bridge table เพื่อจัดเก็บเฟรมที่ได้ พร้อมทั้งพอร์ตที่รับเฟรมนั้น ลงในตาราง ดังนั้นเมื่อมีการส่งเฟรมระหว่างอุปกรณ์ในเน็ตเวิร์ก บริดจ์จะเรียนรู้และทราบถึงพอร์ตในการส่งเฟรมโดยอัตโนมัติ (แนวคิดเดียวกับ MAC address table ของสวิตช์ — ดูภาพเคลื่อนไหวในหัวข้อ 8.4)
8.4สวิตช์ (Switch)
สวิตช์เป็นอุปกรณ์เพื่อเชื่อมเน็ตเวิร์กเซกเมนต์เช่นเดียวกับบริดจ์ ในความเป็นจริงแล้วสวิตช์ก็คือบริดจ์ที่ประกอบไปด้วยพอร์ตจำนวนมาก (multiport bridge) ทำหน้าที่เช่นเดียวกับบริดจ์คือเรียนรู้การส่งต่อ (retransmit) เฟรมที่ได้รับไปในพอร์ตที่เหมาะสม โดยเรียนรู้จาก physical address ในเฟรม
ความแตกต่างระหว่างสวิตช์กับบริดจ์คือ สวิตช์มีพอร์ตจำนวนมาก (4 พอร์ตหรือมากกว่า) ในขณะที่บริดจ์อาจมีเพียง 2–3 พอร์ตเท่านั้น ดังนั้นหากมองในกรณีของ collision domain การใช้สวิตช์จะทำให้เราแบ่งเน็ตเวิร์กหนึ่ง ๆ ออกเป็นหลาย collision domain ได้
ตัวอย่างที่เห็นได้ทั่วไปคือสวิตช์ขนาด 24 พอร์ตที่มีขายทั่วไป — เอามาวางเทียบกับบริดจ์ที่มีแค่ 2–3 พอร์ต ก็เห็นภาพทันทีว่าทำไมสวิตช์ถึงซอยคอลลิชันโดเมนได้ละเอียดกว่ามาก
สวิตช์ตัดสินใจส่งอย่างไร — Store-and-forward กับ Cut-through
เมื่อสวิตช์ได้รับเฟรมจากพอร์ตใดพอร์ตหนึ่ง การจะส่งออกที่พอร์ตใด แบ่งการทำงานออกเป็นสองแบบ
| ประเด็น | Store-and-forward | Cut-through |
|---|---|---|
| อ่านเฟรมแค่ไหนก่อนส่งต่อ | บัฟเฟอร์ที่พอร์ตขาเข้าจนกระทั่งครบเฟรม | อ่านจนถึงตำแหน่งแอดเดรสของภาคส่งและภาครับเท่านั้น (ในอีเทอร์เน็ตคือ 12 ไบต์แรก) |
| ตรวจความผิดพลาดหรือไม่ | ตรวจ ก่อนส่งต่อไปยังบัฟเฟอร์ของพอร์ตขาออก | ไม่ตรวจ — ส่งต่อไปยังพอร์ตปลายทางทันที |
| ข้อดี | ลดการใช้แบนด์วิดท์ในเน็ตเวิร์กที่มีความผิดพลาดสูง (เฟรมเสียถูกทิ้งตั้งแต่ต้นทาง) | ความเร็ว — พอร์ตรับเฟรมถัดไปได้ทันที |
| ข้อเสีย | ต้องรอจนครบเฟรมโดยเก็บไว้ในหน่วยความจำก่อน → เกิดความล่าช้าในการส่งเฟรม | หากเฟรมที่ส่งไปมีความผิดพลาด จะทำให้ สิ้นเปลืองแบนด์วิดท์ |
เลข 12 ไบต์ ไม่ใช่ตัวเลขสุ่ม — MAC frame ของอีเทอร์เน็ตเริ่มด้วย Destination MAC (6 ไบต์) + Source MAC (6 ไบต์) = 12 ไบต์ พอดี สวิตช์แบบ cut-through จึงตัดสินใจได้ทันทีที่อ่านครบ 12 ไบต์ (รายละเอียดเฟรมอยู่บทที่ 14) และอย่าสลับข้อดี-ข้อเสีย: Store-and-forward = ช้าแต่สะอาด · Cut-through = เร็วแต่ปล่อยเฟรมเสียผ่าน
8.4.1 ฮับและสวิตช์
สมมติมีอุปกรณ์เครือข่าย 4 เครื่อง — A ต้องการสื่อสารกับ B และ D ต้องการสื่อสารกับ C ในเวลาเดียวกัน
- กรณีใช้ฮับ: จะทำให้เกิดการชนกันของเฟรมที่มาจาก A และ D
- กรณีใช้สวิตช์: การสื่อสารระหว่าง A กับ B และ C กับ D สามารถเกิดขึ้นได้พร้อมกัน
สรุปสั้น ๆ: จากการทำงานของฮับ แม้จะเป็นการสื่อสารแบบยูนิคาสต์ เฟรมที่ส่งจะถูกกระจาย (flood) ออกไปยังทุกพอร์ตของฮับ แต่ในสวิตช์จะส่งไปยังพอร์ตใดพอร์ตหนึ่งเท่านั้น
ปัญหาหนึ่งของการสื่อสารที่มีโอกาสเกิดการชนกันได้แก่ การสื่อสารแบบบรอดคาสท์ โดยสวิตช์จะส่งออกไปยังทุกพอร์ตเช่นเดียวกับการทำงานของฮับ ผลดังกล่าวจะทำให้เกิดปัญหา broadcast storm — นี่คือเหตุผลที่ "สวิตช์แยก collision domain ได้ แต่แยก broadcast domain ไม่ได้"
8.4.2 บริดจ์และสวิตช์
โดยทั่วไปเรานิยามให้สวิตช์คือบริดจ์ที่ประกอบพอร์ตจำนวนมาก (multi-port bridge) อย่างไรก็ตาม บริดจ์และสวิตช์มีความแตกต่างที่สำคัญ
| ประเด็น | บริดจ์ (Bridge) | สวิตช์ (Switch) |
|---|---|---|
| พื้นฐานการทำงาน | อยู่บนพื้นฐานของซอฟต์แวร์ | เป็นอุปกรณ์ฮาร์ดแวร์ อาศัยชิปรูปแบบ ASIC เพื่อจัดการ |
| จำนวน Spanning-Tree | มีได้เพียง 1 Spanning-Tree เท่านั้น | มีได้มากกว่า 1 |
| จำนวนพอร์ต | ประมาณ 2–3 พอร์ต | 4 พอร์ตหรือมากกว่า (ส่วนใหญ่มีพอร์ตมากกว่าบริดจ์) |
| การเรียนรู้ MAC / การฟอร์เวิร์ดเฟรม | ทำงานเช่นเดียวกันทุกประการ | |
8.5เร้าเตอร์ (Router)
เร้าเตอร์ถือว่าเป็นอุปกรณ์ที่สำคัญที่สุดในระบบเน็ตเวิร์ก เร้าเตอร์เชื่อมต่อเน็ตเวิร์กต่าง ๆ เข้าเป็นเน็ตเวิร์กขนาดใหญ่ การเชื่อมโยงของเร้าเตอร์จำนวนมากทำให้เกิดเป็นอินเทอร์เน็ตในปัจจุบัน
เร้าเตอร์ทำงานในเลเยอร์ 3 เพื่อใช้ในการหาเส้นทาง โดยการพิจารณาจาก IP address จากภาคส่งเพื่อไปหาภาครับ
เหมือนสวิตช์ตรงไหน
ใช้เพื่อเชื่อมโยงเน็ตเวิร์กเซกเมนต์เข้าด้วยกันและกรองทราฟฟิก เหมือนกัน
ต่างจากสวิตช์ตรงไหน
เร้าเตอร์รองรับเน็ตเวิร์กขนาดใหญ่ และค้นหาเส้นทางที่สั้นที่สุดเพื่อไปหาปลายทางได้
ย่อหน้านี้ในตำราเขียนว่า "รูปที่ 8.9 แสดงตัวอย่างเร้าเตอร์ของ Cisco" แต่รูปที่มีคำบรรยายว่า ตัวอย่างของอุปกรณ์เร้าเตอร์ของ CISCO จริง ๆ คือ รูปที่ 8.8 (หน้า 67) ส่วน รูปที่ 8.9 (หน้า 68) เป็นเรื่องสวิตช์เลเยอร์ 3 ของหัวข้อถัดไป — อย่าสับสน
8.6สวิตช์เลเยอร์ 3 (Layer 3 Switch)
นอกเหนือจากการทำงานเลเยอร์ 2 ปกติแล้ว ปัจจุบันมีสวิตช์ที่สามารถทำหน้าที่หาเส้นทางเหมือนเร้าเตอร์ได้ เรียกว่า สวิตช์เลเยอร์ 3
- สามารถประมวลผลเร้าติ้งโพรโตคอล และสื่อสารกับเร้าเตอร์ข้างเคียง (neighbor) ได้
- ทำให้สามารถฟอร์เวิร์ดแพ็กเก็ตเหมือนในเน็ตเวิร์กเลเยอร์
- แต่การเชื่อมต่อในรูปแบบ WAN ยังคงจำเป็นต้องอาศัยเร้าเตอร์
การใช้สวิตช์ในรูปแบบนี้ทำให้เพิ่มประสิทธิภาพการสื่อสารของ LAN และ VLAN ทำให้ลดภาระการทำงานของเร้าเตอร์ และเน้นไปใช้งานเพื่อเพิ่มความปลอดภัย (security) หรือการป้องกันการบุกรุก (intrusion detection) แทน
คำถามที่ออกได้คือ "มีสวิตช์เลเยอร์ 3 แล้ว ยังต้องใช้เร้าเตอร์อีกไหม" คำตอบตามหนังสือคือ ยังต้องใช้ — เพราะการเชื่อมต่อแบบ WAN ยังต้องอาศัยเร้าเตอร์ ส่วนงานที่ย้ายไปให้ L3 switch ทำแทนคืองาน routing ภายใน LAN/VLAN
8.7คอลลิชันโดเมน และบรอดคาสท์โดเมน
จากการที่มีผู้ใช้จำนวนมาก การใช้ฮับเพื่อต่อเชื่อมจำนวนหลายตัวทำให้มีโอกาสเกิดการชนกันของข้อมูลสูงขึ้น เช่นในอีเทอร์เน็ต เมื่อเฟรมถูกส่งจากฮับตัวแรก จะถูกส่งต่อไปฮับตัวอื่น ๆ จนกระทั่งผ่านไปยังทุกฮับ
การใช้งานของบริดจ์จะช่วยแบ่งส่วนของเน็ตเวิร์กออกเป็นกลุ่มย่อย เรียกว่า คอลลิชันโดเมน (collision domain) โดย หนึ่งคอลลิชันโดเมนคือหนึ่งเน็ตเวิร์กของอีเทอร์เน็ตนั่นเอง ทำให้ลดการชนกันของข้อมูลในกรณีที่มีผู้ใช้จำนวนมากได้
อย่างไรก็ตาม เนื่องจากสวิตช์จำเป็นต้องเรียนรู้การเชื่อมต่อของอุปกรณ์ต่าง ๆ เช่นการสื่อสารโดยใช้โพรโตคอล Address Resolution Protocol (ARP) ทำให้มีการส่งแพ็กเก็ตออกไปยังทุกพอร์ต เกิดปัญหา broadcast storm ตามมา เนื่องจากสวิตช์มีบรอดคาสท์โดเมน (broadcast domain) เดียวกันทั้งหมด
เร้าเตอร์ถือเป็นอุปกรณ์สำคัญป้องกันการบรอดคาสท์แพ็กเก็ตอย่างต่อเนื่อง โดยเร้าเตอร์จะไม่ส่งต่อบรอดคาสท์ทราฟฟิกจากอินเทอร์เฟซหนึ่งไปยังอินเทอร์เฟซถัดไป
ภาพเคลื่อนไหวข้างบนให้ลองนับโดเมนจากโทโพโลยีจริง ส่วนสองรูปจากตำราข้างล่างคือนิยามแบบย่อที่สุดของทั้งสองโดเมน — จำรูปไว้แล้วตอบข้อสอบได้เร็วกว่านับทีละพอร์ต
สองรูปนี้ต้องดูคู่กัน — ต่างกันแค่แถวลูกศรล่างสุด เท่านั้น และความต่างแค่แถวเดียวนั้นคือทั้งหมดของประโยค "สวิตช์แยกคอลลิชันโดเมน · เร้าเตอร์แยกบรอดคาสท์โดเมน"
ตารางที่ 8.1 — เปรียบเทียบพื้นฐานการทำงานของฮับ สวิตช์ และเร้าเตอร์
| การทำงาน | ฮับ | บริดจ์ / สวิตช์ | เร้าเตอร์ |
|---|---|---|---|
| เลเยอร์ที่ทำงาน | ฟิสิคอล | ดาต้าลิงก์ | เน็ตเวิร์ก |
| การตรวจแยกทราฟฟิก traffic isolation | ไม่ใช่ | คอลลิชันโดเมน | บรอดคาสท์โดเมน |
| ความสะดวกในการติดตั้ง plug & play | ใช่ | ใช่ | ไม่ใช่ |
| การสื่อสารเส้นทางที่ดีที่สุด | ไม่ใช่ | ไม่ใช่ | ใช่ |
ตารางสรุปแบบที่ข้อสอบมักถาม
เอาตารางที่ 8.1 มาเรียงใหม่ในรูปที่ข้อสอบแนว Cisco ถามบ่อยที่สุด — "อุปกรณ์นี้ทำงานเลเยอร์ไหน แยก collision domain ไหม แยก broadcast domain ไหม"
| อุปกรณ์ | เลเยอร์ | แยก Collision Domain? | แยก Broadcast Domain? | ที่มา |
|---|---|---|---|---|
| NIC / การ์ดแลน | ดาต้าลิงก์ + ฟิสิคอล | — (เป็นปลายทาง ไม่ใช่ตัวเชื่อม) | — | 8.1 |
| ฮับ (repeater) | ฟิสิคอล | ไม่แยก — ทุกพอร์ตอยู่โดเมนเดียวกัน | ไม่แยก | ตารางที่ 8.1 |
| บริดจ์ | ดาต้าลิงก์ | แยก — แบ่งเน็ตเวิร์กเป็นคอลลิชันโดเมนย่อย | ไม่แยก | ตารางที่ 8.1 + 8.7 |
| สวิตช์ | ดาต้าลิงก์ | แยก — 1 พอร์ต = 1 คอลลิชันโดเมน | ไม่แยก — "สวิตช์มีบรอดคาสท์โดเมนเดียวกันทั้งหมด" | ตารางที่ 8.1 + 8.7 |
| เร้าเตอร์ | เน็ตเวิร์ก | แยก | แยก — ไม่ส่งต่อบรอดคาสท์ข้ามอินเทอร์เฟซ | ตารางที่ 8.1 + 8.7 |
| สวิตช์เลเยอร์ 3 | ดาต้าลิงก์ + เน็ตเวิร์ก | แยก | แยก (ในส่วนที่ทำหน้าที่เร้าติ้ง) | อนุมานจาก 8.6 — "ฟอร์เวิร์ดแพ็กเก็ตเหมือนในเน็ตเวิร์กเลเยอร์" |
เวลาเจอรูปโทโพโลยีในข้อสอบ นับแบบนี้เร็วที่สุด:
Collision domain = นับทุกพอร์ตของสวิตช์และเร้าเตอร์ที่มีสายต่ออยู่ โดยที่ฮับทั้งตัว (รวมทุกเครื่องใต้ฮับ) นับเป็น 1 โดเมนเดียว
Broadcast domain = นับจำนวนอินเทอร์เฟซของเร้าเตอร์ที่มีสายต่ออยู่ (ถ้าไม่มีเร้าเตอร์เลย = 1 โดเมน) — เพราะมีแต่เร้าเตอร์เท่านั้นที่หยุดบรอดคาสท์ได้
เช็คความเข้าใจ
- NIC: แปลงดิจิทัล ↔ สัญญาณ + มี MAC address + promiscuous mode (Wireshark)
- ฮับ = multi-port repeater · amplification + reshaping · ภายในเป็นบัส · ส่งออกทุกพอร์ตยกเว้นพอร์ตที่ส่ง → ชนกัน
- บริดจ์ = เชื่อม segment + กรองทราฟฟิกจาก physical address · transparent bridge + bridge table
- สวิตช์ = multiport bridge · Store-and-forward (ครบเฟรม ตรวจ error ช้า) vs Cut-through (12 ไบต์แรก เร็วแต่ไม่ตรวจ)
- บริดจ์ vs สวิตช์: ซอฟต์แวร์ vs ASIC · 1 Spanning-Tree vs มากกว่า 1 · 2–3 พอร์ต vs 4+ พอร์ต
- เร้าเตอร์ = เลเยอร์ 3 · ดู IP address · หาเส้นทางสั้นที่สุด · สวิตช์เลเยอร์ 3 ทำ routing ได้ แต่ WAN ยังต้องใช้เร้าเตอร์
- ตารางที่ 8.1 — ฟิสิคอล / ดาต้าลิงก์ / เน็ตเวิร์ก · ไม่ใช่ / คอลลิชัน / บรอดคาสท์ · ใช่ / ใช่ / ไม่ใช่ · ไม่ใช่ / ไม่ใช่ / ใช่