ตำราเครือข่ายทุกเล่มมีหน้าที่วาดรูปสี่แบบ — บัส วงแหวน ดาว และเมช พร้อมบอกว่า แต่ละแบบมีข้อดีข้อเสียอย่างไร
ปัญหาคือ ทุกเครือข่ายที่คุณซื้อวันนี้เดินสายเป็นดาวทั้งหมด ไม่ว่าจะเป็น บ้าน ออฟฟิศ หรือศูนย์ข้อมูล สายวิ่งจากทุกจุดเข้าหาอุปกรณ์กลางเสมอ
รูปทั้งสี่จึงไม่ได้อธิบายว่าจะเดินสายอย่างไร แต่อธิบายสองอย่างที่ยังจริงอยู่ คือ ต้องซื้อสายกี่เส้น และ สายขาดกี่เส้นถึงจะพัง ซึ่งคำนวณได้ทั้งคู่
และมีอีกเรื่องที่ตำรามักไม่แยกให้ชัด — รูปที่เดินสายกับรูปที่ข้อมูลเดินจริง เป็นคนละรูป
ถ้ายังไม่เคยคิดเรื่องนี้ เริ่มตรงนี้
มองสายที่เสียบอยู่ที่เครื่องคุณ แล้วถามคำถามเดียว — ปลายอีกด้านไปไหน
คำตอบเกือบทั้งหมดคือ "ไปที่กล่องกลาง" ไม่ว่าจะเป็นเราเตอร์ที่บ้านหรือสวิตช์ ในตู้ นั่นคือดาว และมันเป็นแบบนี้เพราะเหตุผลเดียว — สายขาดเส้นเดียวกระทบ คนเดียว
รูปแบบอื่นทั้งหมดตายไปเพราะข้อนี้ข้อเดียว ไม่ใช่เพราะช้ากว่า
สี่รูปแบบ ในสองตัวเลข
ตัวเลขแรกคือจำนวนสายที่ต้องเดิน
nodes full mesh ring star bus
5 10 5 5 1
10 45 10 10 1
50 1,225 50 50 1
100 4,950 100 100 1
1000 499,500 1,000 1,000 1
เมชเต็มรูปแบบต้องใช้ n(n-1)/2 เส้น ซึ่งโตแบบกำลังสอง ที่ร้อยโหนดคือ 4,950 เส้น และที่พันโหนดคือเกือบห้าแสนเส้น นั่นคือเหตุผลที่ไม่มีใครทำเมชเต็มรูปแบบ ด้วยสาย ไม่ใช่เพราะมันไม่ดี แต่เพราะจ่ายไม่ไหว
ตัวเลขที่สองคือความทนทาน
bus สายขาดเส้นเดียว ตายทั้งวง
ring สายขาดเส้นเดียวยังวนอีกทางได้ ต้องขาดสองเส้นถึงจะแยก
star สายขาดเส้นเดียวตายหนึ่งโหนด แต่ถ้าตัวกลางตาย ตายทั้งหมด
mesh ต้องตัด n-1 เส้น ถึงจะตัดหนึ่งโหนดออกจากเครือข่ายได้
บัสแพ้เพราะบรรทัดแรก สายเส้นเดียวที่ทุกคนใช้ร่วมกัน แปลว่าใครสะดุดสายก็ ล้มทั้งออฟฟิศ และการหาว่าขาดตรงไหนก็ยากมากเพราะไม่มีจุดรวม
ดาวชนะเพราะย้ายความเปราะบางไปไว้ที่จุดเดียวที่คุณเลือกได้ — อุปกรณ์กลาง ที่อยู่ในตู้ มีไฟสำรอง และเปลี่ยนได้ในสิบนาที
รูปที่เดินสาย กับรูปที่ข้อมูลเดิน
นี่คือส่วนที่ตำรามักไม่แยกให้ชัด และเป็นส่วนที่สำคัญที่สุด
สายที่เดินเป็นดาว ไม่ได้บอกว่าข้อมูลเดินอย่างไร สิ่งที่บอกคืออุปกรณ์ ตรงกลาง
hub รับเข้าพอร์ตหนึ่ง ส่งออกทุกพอร์ต
ทุกคนได้ยินทุกอย่าง ชนกันได้ทั้งวง
สายเป็นดาว แต่พฤติกรรมเป็นบัส
switch จำได้ว่า MAC ไหนอยู่พอร์ตไหน ส่งเฉพาะพอร์ตนั้น
แต่ละพอร์ตเป็นขอบเขตการชนของตัวเอง
สายเป็นดาว และพฤติกรรมเป็นการต่อตรงคู่ต่อคู่
การเปลี่ยนจากฮับเป็นสวิตช์ไม่ได้เปลี่ยนสายแม้แต่เส้นเดียว แต่เปลี่ยนโทโพโลยี เชิงตรรกะจากบัสเป็นชุดของลิงก์แยกกัน — และนั่นคือสิ่งที่ทำให้อีเทอร์เน็ตเร็วขึ้น มากกว่าการเพิ่มความเร็วสายเสียอีก
บทความ Ethernet อธิบายกลไก CSMA/CD ที่ต้องมีเพราะทุกคน ใช้สายร่วมกัน เมื่อสวิตช์ทำให้แต่ละพอร์ตมีสายของตัวเอง กลไกนั้นก็แทบไม่ต้อง ทำงานอีกเลย
เมื่อดาวไม่พอ — และลูปที่ตามมา
ดาวมีจุดอ่อนข้อเดียวที่ชัดมาก คือตัวกลาง ถ้าสวิตช์ตัวนั้นตาย ทุกอย่างที่ต่อ กับมันตายหมด
ทางแก้คือมีสวิตช์มากกว่าหนึ่งตัว แล้วต่อถึงกัน ซึ่งได้รูปที่เรียกว่าดาวซ้อนดาว และเมื่อเดินสายสำรองเพิ่มเข้าไปเพื่อกันอุปกรณ์เสีย ก็ได้ ลูป มาโดยอัตโนมัติ
ลูปในเครือข่ายชั้นสองไม่ได้แค่ทำให้ช้า มันทำให้ล่มทั้งวง เพราะเฟรมกระจายเสียง จะวนไปเรื่อย ๆ โดยไม่มีอะไรหยุดมัน — ไม่มี TTL แบบที่ IP มี
นั่นคือสาเหตุที่ต้องมี STP และเมื่อมี STP แล้ว สายสำรอง เส้นนั้นก็ถูกปิด ซึ่งเป็นที่มาของ EtherChannel ที่ทำให้ ใช้ทั้งสองเส้นได้
สามบทนั้นเรียงต่อกันได้เพราะปัญหาเดียวกัน — ความทนทานต้องการเส้นทางสำรอง และเส้นทางสำรองสร้างลูป
เมชกลับมา แต่เป็นคนละเมช
เมชแบบเดินสายทุกคู่ตายไปแล้วเพราะจำนวนสาย แต่แนวคิดกลับมาในสองที่
ในศูนย์ข้อมูล ใช้รูปที่เรียกว่า spine-leaf ซึ่งไม่ใช่เมชเต็ม แต่ทุกสวิตช์ ชั้นล่างต่อกับทุกสวิตช์ชั้นบน ทำให้ทุกเส้นทางยาวเท่ากันและมีทางเลือกหลายทาง โดยใช้สายเป็น leaf x spine แทนที่จะเป็น n(n-1)/2
ในเครือข่ายไร้สาย เมชทำได้ถูกกว่ามากเพราะไม่ต้องเดินสาย การเพิ่มเส้นทาง คือการเพิ่มจุดที่ได้ยินกัน ไม่ใช่การเพิ่มสาย ซึ่งเปลี่ยนสมการต้นทุนทั้งหมด
และอินเทอร์เน็ตเองก็เป็นเมชแบบไม่เต็ม — ไม่มีใครวางแผนรูปร่างของมัน มันโต มาจากแต่ละคนต่อกับคนที่ตัวเองเลือก ซึ่งเป็นเหตุผลที่บทความ สวิตชิง สรุปว่าของที่ชนะคือของที่ต้องการการตกลงกันน้อยที่สุด
เมื่อมันโกหก
"เครือข่ายของเราเป็นแบบดาว" จริงในแง่สาย แต่ไม่ได้บอกอะไรเลยเกี่ยวกับ พฤติกรรม ต้องดูว่าตรงกลางเป็นอะไร และมีกี่ชั้น
"เมชทนทานที่สุด" ทนทานที่สุดจริง และแพงที่สุดจริง ที่ร้อยโหนดต้องใช้สาย 4,950 เส้น ตัวเลขนี้เป็นเหตุผลที่ไม่มีใครทำ ไม่ใช่เพราะไม่รู้ว่ามันดี
"บัสตายเพราะช้า" บัสตายเพราะสายเส้นเดียวขาดแล้วล้มทั้งวง และเพราะหาจุดที่ ขาดไม่เจอ ความเร็วเป็นเหตุผลรอง
"ต่อสายสำรองเพิ่มแล้วปลอดภัยขึ้น" ปลอดภัยขึ้นก็ต่อเมื่อมีอะไรจัดการลูป ถ้าไม่มี STP การเดินสายสำรองคือการสร้างเหตุล่มขึ้นมาเอง
"รูปในเอกสารคือสิ่งที่มีจริง" เอกสารมักวาดตอนติดตั้ง แล้วไม่ได้แก้อีกเลย สิ่งที่ควรเชื่อคือสิ่งที่วัดได้จากอุปกรณ์ ไม่ใช่รูปที่วาดไว้เมื่อสามปีก่อน
ตัวอย่างจริงจากงานจริง
กรณีที่ 1 — หาโทโพโลยีจริงโดยไม่ดูเอกสาร
สถานการณ์ รับดูแลเครือข่ายที่ไม่มีเอกสาร หรือมีแต่ไม่ตรง
คำสั่ง ถามอุปกรณ์แทนที่จะถามเอกสาร
$ arp -an ใครอยู่วงเดียวกับเราบ้าง
$ traceroute 8.8.8.8 ทางออกผ่านอะไรบ้าง
$ netstat -rn | head เกตเวย์คือใคร
อ่านอย่างไร ตารางที่อยู่บอกว่าใครอยู่วงเดียวกัน เส้นทางบอกว่าจุดออกอยู่ที่ ไหน สองอย่างนี้ให้โครงคร่าว ๆ ได้เร็วกว่าการไล่หาเอกสาร และสำคัญกว่าตรงที่ มันคือสภาพจริง ณ ตอนนี้
สิ่งที่ยังไม่ได้พิสูจน์ วิธีนี้เห็นเฉพาะสิ่งที่คุยกับเราได้ ไม่เห็นสายที่ เสียบทิ้งไว้ ไม่เห็นสวิตช์ที่ไม่มีเลขไอพี และไม่เห็นลิงก์สำรองที่ STP ปิดอยู่ ซึ่งเป็นสิ่งที่จะกลับมาทำงานตอนเกิดปัญหาพอดี
กรณีที่ 2 — ตัดสินว่าจะเดินสายสำรองไหม
สถานการณ์ มีงบพอเดินสายเพิ่มได้เส้นเดียว ต้องเลือกว่าจะเดินตรงไหน
อ่านอย่างไร ถามว่าจุดไหนที่พังแล้วกระทบมากที่สุด ซึ่งในรูปดาวคือตัวกลาง เสมอ การเดินสายสำรองระหว่างเครื่องผู้ใช้กับสวิตช์แทบไม่ได้อะไร เพราะกระทบ คนเดียวอยู่แล้ว ส่วนการเดินสายสำรองระหว่างสวิตช์กับสวิตช์เปลี่ยนผลลัพธ์มาก
สิ่งที่ยังไม่ได้พิสูจน์ สายสำรองช่วยเฉพาะเมื่อสายเป็นสิ่งที่ขาด ถ้าจุดอ่อน จริงคือไฟฟ้าหรือตัวอุปกรณ์เอง สายเส้นที่สองไม่ได้ช่วยอะไร ต้องรู้ก่อนว่า อะไรพังบ่อยที่สุดในที่นั้น
กรณีที่ 3 — อ่านรูปในใบเสนอราคาให้ออก
สถานการณ์ ผู้ขายส่งแบบมาให้ดู
อ่านอย่างไร ดูสองอย่าง
1 มีจุดไหนที่ถ้าตายแล้วทุกอย่างตาย
2 เส้นทางสำรองมีจริงไหม และอะไรเป็นตัวเลือกเส้นทาง
ข้อแรกหาได้ด้วยการเอานิ้วปิดทีละกล่องแล้วดูว่าเหลืออะไร ข้อที่สองสำคัญเพราะ เส้นทางสำรองที่ไม่มีอะไรจัดการ ก็คือลูปที่รอเกิด
สิ่งที่ยังไม่ได้พิสูจน์ รูปบอกได้แค่ว่าตั้งใจจะต่ออย่างไร ไม่ได้บอกว่าจะ ตั้งค่าอย่างไร อุปกรณ์ที่ต่อถูกแต่ตั้งค่าผิดให้ผลเหมือนต่อผิดทุกประการ
สิ่งที่รูปทั้งสี่ยังสอนได้
ถึงจะไม่มีใครเดินสายเป็นบัสหรือวงแหวนแล้ว รูปทั้งสี่ยังมีค่าในฐานะคำถามสอง ข้อที่ต้องถามกับทุกการออกแบบ — จะจ่ายค่าสายเท่าไหร่ และจะทนความเสียหายได้ แค่ไหน
คำตอบของสองข้อนี้เปลี่ยนไปตามยุค ตอนที่สายแพงและอุปกรณ์ถูก บัสชนะ ตอนที่สาย ถูกลงและการหาจุดเสียแพงขึ้น ดาวชนะ และในศูนย์ข้อมูลที่ทั้งสองอย่างถูกลงมาก เมชแบบมีโครงสร้างก็กลับมา
รูปไม่ได้เปลี่ยน สิ่งที่เปลี่ยนคือราคา
อ้างอิง
คำนวณเอง
- ตารางจำนวนสายคำนวณจาก
n(n-1)/2สำหรับเมชเต็มรูปแบบ และnสำหรับวงแหวน กับดาว - ตารางความทนทานมาจากการนับว่าต้องตัดกี่เส้นถึงจะแยกเครือข่ายออกจากกัน
บทความที่เกี่ยวข้องบนเว็บนี้
- Ethernet อธิบายว่าทำไมการที่ทุกคนใช้สายร่วมกันถึง ต้องมีกลไกจัดการการชน และสวิตช์ทำให้กลไกนั้นแทบไม่ต้องทำงาน
- STP และ EtherChannel คือสองคำตอบ ต่อลูปที่เกิดจากการเดินเส้นทางสำรอง