Connectivity และการสวิตช์ (Switching)
การมีสายเชื่อมอยู่ ไม่ได้แปลว่าทุกเครื่องจะติดต่อกันได้โดยตรง บทนี้จะเริ่มจาก node, link และ topology แล้วค่อยดูว่าสวิตช์ช่วยพาข้อมูลข้ามเครือข่ายอย่างไร ผ่านแนวคิดสำคัญสองแบบคือ circuit switching และ packet switching
1คำศัพท์พื้นฐาน: Node, Link, Topology
หากมองจากด้านนอก เครือข่ายอาจดูเหมือนกล่องหลายใบกับเส้นหลายเส้น แต่เส้นแต่ละเส้นไม่ได้มีความหมายเท่ากัน และกล่องแต่ละใบก็ไม่ได้ทำหน้าที่เหมือนกันทั้งหมด ก่อนเรียนว่า packet เดินทางอย่างไร เราจึงต้องตั้งชื่อสิ่งที่มันเดินผ่านให้ชัดเสียก่อน
Node คือจุดที่ข้อมูลเริ่มต้น สิ้นสุด หรือถูกส่งต่อ
Node หมายถึงอุปกรณ์หรือจุดหนึ่งในเครือข่าย หากเป็นเครื่องปลายทางที่สร้างหรือรับข้อมูล เช่น คอมพิวเตอร์ โทรศัพท์ server หรือ sensor เรามักเรียกว่า host หรือ end system แต่ถ้า node นั้นมีหน้าที่รับข้อมูลจาก link หนึ่งแล้วส่งต่อไปอีก link หนึ่ง เราอาจเรียกว่า switch หรือ router ตามหน้าที่และระดับที่ทำงาน
การแยก host ออกจากอุปกรณ์ส่งต่อสำคัญ เพราะ host สนใจความหมายของข้อมูล ส่วน switch และ router โดยทั่วไปสนใจข้อมูลที่จำเป็นต่อการส่งต่อมากกว่า เปรียบเหมือนผู้รับจดหมายที่อ่านเนื้อหาข้างใน กับศูนย์คัดแยกที่อ่านเฉพาะหน้าซอง ศูนย์คัดแยกไม่จำเป็นต้องรู้ว่าในซองเป็นจดหมายรัก ใบแจ้งหนี้ หรือข้อสอบกลางภาค—และบางทีทุกฝ่ายก็น่าจะสบายใจกว่าถ้ามันไม่รู้ครับ
Link คือช่องทางระหว่าง node
Link คือช่องทางที่เชื่อม node เข้าด้วยกัน อาจเป็นสายทองแดง ใยแก้วนำแสง คลื่นวิทยุ หรือแม้แต่การเชื่อมต่อเชิงตรรกะที่สร้างอยู่บนเครือข่ายอีกชั้นหนึ่ง Link แต่ละแบบมีข้อจำกัดต่างกัน เช่น อัตราการส่ง ระยะทาง ความหน่วง โอกาสเกิดข้อผิดพลาด และจำนวนอุปกรณ์ที่ใช้งานร่วมกัน
ดังนั้นเส้นหนึ่งเส้นในแผนภาพไม่ได้บอกทุกอย่าง มันบอกเพียงว่า node สองฝั่งมีช่องทางติดต่อกัน แต่ยังไม่บอกว่าช่องทางนั้นเร็วแค่ไหน ส่งได้พร้อมกันทั้งสองทิศหรือไม่ มีใครแชร์อยู่บ้าง หรือข้อมูลต้องรอนานเท่าไร
ในระดับพื้นฐาน เราแบ่งลักษณะของ link ได้สองแบบ:
- Point-to-point — link เชื่อมปลายสองฝั่งเข้าหากันโดยตรง เช่น ลิงก์ใยแก้วระหว่าง router สองตัว หรือสายที่เชื่อมคอมพิวเตอร์กับ switch หนึ่งตัว
- Multiple access — node หลายตัวใช้สื่อกลางร่วมกัน เช่น Wi-Fi ที่หลายอุปกรณ์ส่งผ่านช่องสัญญาณเดียวกัน หรือ Ethernet แบบ bus ในอดีต จึงต้องมีกติกาว่าใครส่งได้เมื่อไร
Direct connectivity กับ indirect connectivity
ถ้า A มี link ต่อถึง B โดยตรง เราเรียกว่าเชื่อมต่อแบบตรง แต่ในเครือข่ายขนาดใหญ่ A แทบไม่เคยมี link ตรงถึงทุกปลายทาง A อาจต่ออยู่กับ switch ตัวหนึ่ง แล้วอาศัย node ระหว่างทางส่งข้อมูลต่อไปหา B อีกหลายทอด นี่คือ indirect connectivity
จุดเปลี่ยนสำคัญอยู่ตรงนี้: เมื่อไม่ได้เชื่อมกันโดยตรง เราต้องมีคำตอบอย่างน้อยสองเรื่อง หนึ่ง จะส่งข้อมูลออกทาง link ใด และสอง node ถัดไปจะรู้ได้อย่างไรว่าควรส่งต่อไปทางไหน คำถามแรกพาเราไปสู่ switching ส่วนคำถามที่สองจะพาไปสู่ addressing และ routing
Topology คือรูปแบบความสัมพันธ์ ไม่ใช่เพียงรูปที่วาด
Topology อธิบายว่า node และ link เชื่อมโยงกันในรูปแบบใด เช่น bus, ring, star, tree หรือ mesh รูปร่างเหล่านี้มีผลต่อจำนวน link ที่ต้องใช้ จุดที่อาจกลายเป็นคอขวด และสิ่งที่จะเกิดขึ้นเมื่อบาง node หรือบาง link เสีย
| Topology | ภาพจำ | ข้อดี | จุดที่ต้องระวัง |
|---|---|---|---|
| Bus | ทุก node เกาะอยู่บนทางร่วมเส้นเดียว | โครงสร้างเรียบง่าย ใช้สื่อน้อย | ทุกคนแชร์สื่อเดียวกัน และทางหลักเป็นจุดสำคัญ |
| Ring | node ต่อกันเป็นวง | กำหนดลำดับการส่งต่อได้ชัด | ความเสียหายหนึ่งจุดอาจกระทบทั้งวง หากไม่มีทางสำรอง |
| Star | ทุก node ต่อเข้าจุดกลาง | เพิ่มหรือตัดปลายทางได้ง่าย และแยก link ออกจากกัน | อุปกรณ์กลางสำคัญมากและอาจเป็นคอขวด |
| Mesh | มีหลายเส้นทางเชื่อมระหว่าง node | มีทางเลือกเมื่อบางเส้นทางเสีย | ใช้ link และการจัดการมากขึ้น |
ควรแยก physical topology ออกจาก logical topology ด้วย รูปแบบการต่อสายจริงอาจเป็น star แต่พฤติกรรมการส่งข้อมูลอาจเหมือนใช้สื่อกลางร่วมกัน หรือเครือข่ายจริงอาจมีโครงสร้างซับซ้อน แต่ application มองเห็นเพียงช่องทางเชื่อมต่อเดียว รูปที่เห็นจึงขึ้นอยู่กับว่าเรากำลังมองระบบในระดับใด
2Circuit Switching vs Packet Switching
เมื่อข้อมูลต้องเดินผ่าน node กลาง ระบบจะต้องเลือกว่าจะจัดสรรเส้นทางและทรัพยากรให้การสื่อสารแต่ละครั้งอย่างไร แนวคิดสำคัญมีสองแบบ แบบหนึ่งเตรียมทางไว้ก่อน ส่วนอีกแบบให้ข้อมูลแต่ละก้อนเดินทางร่วมกับข้อมูลของคนอื่น
| รูปแบบ | วิธีจัดสรรทรัพยากร | ผลที่ตามมา |
|---|---|---|
| Circuit Switching | สร้างการเชื่อมต่อและจัดสรรทรัพยากรให้การสื่อสารหนึ่งชุดไว้ล่วงหน้า ตัวอย่างดั้งเดิมคือระบบโทรศัพท์ | บริการคาดการณ์ได้ง่ายกว่าเมื่อจองสำเร็จ แต่ทรัพยากรที่จองไว้อาจว่างในช่วงที่คู่สนทนาไม่ได้ส่งข้อมูล |
| Packet Switching | แบ่งข้อมูลเป็น packet แล้วให้ packet ของผู้ใช้หลายรายแชร์ link ตามจังหวะที่มีข้อมูลส่งจริง | ใช้ทรัพยากรร่วมกันได้คุ้มกว่า แต่ packet อาจต้องเข้าคิว จึงมีความหน่วงที่เปลี่ยนไปตามภาระของเครือข่าย |
Circuit Switching: จัดโต๊ะไว้ก่อนแขกมา
Circuit switching มักประกอบด้วยสามช่วง ได้แก่ setup เพื่อสร้างเส้นทางและจองทรัพยากร, data transfer เพื่อส่งข้อมูลผ่านวงจรที่เตรียมไว้ และ teardown เพื่อคืนทรัพยากรเมื่อสื่อสารเสร็จ
ข้อดีคือหลังจากตั้งวงจรสำเร็จแล้ว การสื่อสารไม่ต้องแข่งขันแย่งทรัพยากรส่วนที่จองไว้กับการสื่อสารอื่นในลักษณะเดียวกับ packet ทั่วไป จึงคาดการณ์อัตราการส่งและความหน่วงได้ง่ายขึ้น แต่ต้องเสียเวลาตั้งวงจรก่อน และหากผู้ใช้เงียบ ทรัพยากรที่เตรียมไว้ก็อาจไม่ได้ทำงานอะไร
Packet Switching: ส่งเมื่อมีข้อมูล และแชร์ทางกับคนอื่น
คอมพิวเตอร์มักส่งข้อมูลเป็นช่วง ๆ เราอาจอ่านหน้าเว็บอยู่นานแล้วคลิกเพียงครั้งเดียว หรือพิมพ์ข้อความอยู่หนึ่งนาทีก่อนกดส่ง หากจองช่องทางเต็มไว้ตลอดช่วงที่เงียบ ทรัพยากรส่วนใหญ่จะถูกปล่อยว่าง Packet switching จึงแบ่ง message ออกเป็น packet แล้วเปิดให้ผู้ใช้หลายรายสลับกันใช้ link ตามเวลาที่มีข้อมูลจริง แนวคิดนี้เรียกว่า statistical multiplexing ซึ่งจะอธิบายต่อในบทถัดไป
เมื่อ packet มาถึง switch มันอาจถูกเก็บไว้ใน buffer ระหว่างรอ link ขาออก หาก link ว่างก็ส่งต่อได้ทันที แต่หากมี packet อื่นรออยู่ก่อนก็ต้องเข้าคิว หาก buffer เต็ม packet ใหม่อาจถูกทิ้ง ดังนั้นความหน่วงของ packet switching ไม่ได้มาจากระยะทางเพียงอย่างเดียว แต่ขึ้นอยู่กับคนอื่นที่แชร์เครือข่ายในเวลานั้นด้วย
Store-and-forward: รับให้ครบก่อนแล้วค่อยส่งต่อ
ในการส่งแบบ store-and-forward switch รับ packet เข้ามาเก็บก่อน แล้วจึงส่งออกทาง link ถัดไป หาก packet มีขนาด L บิต และ link ส่งได้ R บิตต่อวินาที เวลาที่ใช้ผลัก packet ทั้งก้อนลง link หนึ่งเส้นคือ L/R วินาที ซึ่งเรียกว่า transmission delay
หากต้องผ่านหลาย link เวลาส่วนนี้จะเกิดซ้ำในแต่ละช่วง นอกจากนั้นยังมี propagation delay จากการที่สัญญาณต้องเดินทางจริง, processing delay ที่ node ใช้ตรวจและตัดสินใจ และ queueing delay ที่เกิดจากการรอคิว การพูดว่า “ข้อมูลผ่าน switch สามตัว” จึงยังไม่พอจะบอกว่าจะถึงเมื่อไร
Packet ทุกก้อนต้องเดินเส้นทางเดียวกันหรือไม่
ไม่จำเป็นเสมอไป ในเครือข่ายแบบ datagram packet แต่ละก้อนมีข้อมูลปลายทางและอาจถูกตัดสินเส้นทางแยกกัน คล้ายพัสดุแต่ละกล่องที่ศูนย์คัดแยกอ่านที่อยู่แล้วเลือกทางส่ง ส่วน virtual circuit จะสร้างสถานะการเชื่อมต่อเชิงตรรกะไว้ก่อน แล้ว packet ในการสื่อสารนั้นเดินตามข้อมูลวงจรที่กำหนด
คำว่า packet switching จึงไม่ได้แปลว่า “ไม่มีการเตรียมเส้นทางใด ๆ เลย” และคำว่า circuit ก็ไม่ได้แปลว่าต้องมีสายทองแดงเส้นจริงพาดจากต้นทางถึงปลายทางเสมอไป เราต้องแยกทรัพยากรทางกายภาพ ออกจากสถานะการเชื่อมต่อเชิงตรรกะให้ชัด
3Cloud, Internetwork, และการระบุที่อยู่
เมื่อเครือข่ายหนึ่งยังไม่ใหญ่พอ เราไม่ได้สร้างเครือข่ายยักษ์ก้อนเดียวขึ้นมาแทน แต่เชื่อมเครือข่ายหลายชุดเข้าหากัน ปัญหาจึงเปลี่ยนจาก “ส่งภายในเครือข่ายนี้อย่างไร” เป็น “จะข้ามจากเครือข่ายหนึ่งไปอีกเครือข่ายหนึ่งได้อย่างไร”
Internetwork คือเครือข่ายของหลายเครือข่าย
Internetwork คือระบบที่เชื่อมเครือข่ายหลายเครือข่ายเข้าด้วยกัน แม้แต่ละเครือข่ายอาจใช้เทคโนโลยี link ต่างกัน แนวคิดสำคัญไม่ได้อยู่ที่ทำให้ทุกเครือข่ายเหมือนกัน แต่อยู่ที่สร้างข้อตกลงร่วมซึ่งทำให้ข้อมูลข้ามความแตกต่างเหล่านั้นได้ Internet จึงเป็น internetwork ขนาดใหญ่ที่สุด ไม่ใช่เครือข่ายท้องถิ่นก้อนเดียวที่ลากยาวครอบโลก
Router ทำหน้าที่ส่ง packet ระหว่างเครือข่ายโดยพิจารณาที่อยู่และตารางเส้นทาง ส่วนคำว่า gateway ใช้ได้กว้างกว่า และในบางบริบทหมายถึงระบบที่เชื่อมโลกสองฝั่งซึ่งใช้ protocol หรือรูปแบบการทำงานต่างกัน จึงไม่ควรถือว่า router กับ gateway เป็นคำเดียวกันทุกกรณี
Cloud ในแผนภาพคือการบอกว่า “รายละเอียดข้างในยังไม่ใช่ประเด็น”
ในแผนภาพเครือข่าย เรามักวาดส่วนที่ซับซ้อนเป็นรูปก้อนเมฆ คำว่า cloud ในที่นี้ไม่ได้เป็นชื่ออีกคำหนึ่งของ internetwork เสมอไป แต่เป็นสัญลักษณ์ที่บอกว่า ภายในมีระบบบางอย่างทำงานอยู่ เพียงแต่ตอนนี้เราซ่อนรายละเอียดนั้นไว้ก่อน
ก้อนเมฆจึงเป็น abstraction ไม่ใช่เวทมนตร์ หากเรากำลังอธิบาย application เราอาจซ่อน router หลายสิบตัวไว้ในก้อนเดียว แต่ถ้ากำลังวิเคราะห์เส้นทางหรือจุดเสีย เราต้องเปิดก้อนเมฆนั้นออกมาดู การวาด cloud ช่วยลดสิ่งที่ต้องคิดพร้อมกัน ไม่ได้ทำให้สิ่งที่อยู่ข้างในหายไป
Address บอกว่าใคร ส่วน routing ตัดสินว่าจะไปทางไหน
การส่งข้อมูลข้ามหลาย node ต้องอาศัย address เพื่อระบุปลายทาง และ routing เพื่อหาเส้นทางไปยังปลายทางนั้น สองคำนี้เกี่ยวข้องกันแต่ไม่ใช่สิ่งเดียวกัน Address คล้ายที่อยู่บนซอง ส่วน routing คล้ายกระบวนการที่แต่ละศูนย์ไปรษณีย์อ่านที่อยู่ แล้วเลือกว่าจะส่งถุงจดหมายขึ้นรถสายใด
ผู้ส่งไม่จำเป็นต้องเขียนรายชื่อถนนทุกสายลงบนซอง เพียงระบุปลายทางให้ถูกต้อง อุปกรณ์ระหว่างทางใช้ข้อมูลในตารางของตนตัดสินใจทีละช่วง กระบวนการส่ง packet จริงตามการตัดสินใจนั้นเรียกว่า forwarding ส่วนกระบวนการเรียนรู้หรือคำนวณเส้นทางที่ควรใช้เรียกว่า routing
| แนวคิด | คำถามที่ตอบ | ภาพเปรียบเทียบ |
|---|---|---|
| Addressing | ปลายทางคือใครหรืออยู่ที่ใด? | ที่อยู่บนหน้าซอง |
| Routing | ควรเลือกเส้นทางใดไปยังปลายทาง? | การวางแผนว่าจะส่งผ่านศูนย์ใด |
| Forwarding | packet ที่มาถึงตอนนี้ต้องออกทางใด? | เจ้าหน้าที่หยิบซองใส่ถุงส่งต่อใบไหน |
| Switching | จะเชื่อมขาเข้ากับขาออกอย่างไร? | การย้ายของจากสายพานหนึ่งไปอีกสายพาน |
การส่งข้อมูลจึงต้องอาศัยแนวคิดต่อไปนี้:
- Address — ตัวระบุปลายทางภายในขอบเขตของระบบนั้น ไม่จำเป็นต้องหมายถึงตำแหน่งทางกายภาพเสมอไป
- Routing — กระบวนการหาเส้นทางจากต้นทางถึงปลายทาง
- รูปแบบการส่ง: Unicast (1 ต่อ 1), Broadcast (1 ต่อทุกตัว), Multicast (1 ต่อกลุ่มที่กำหนด)
หนึ่งผู้ส่ง ไม่ได้แปลว่าต้องมีผู้รับเพียงคนเดียว
Unicast คือการส่งจากต้นทางหนึ่งไปยังปลายทางหนึ่ง Broadcast คือการส่งไปยังทุก node ภายในขอบเขตที่กำหนด และ Multicast คือการส่งไปยังกลุ่มสมาชิกที่สนใจข้อมูลนั้น การเลือกแบบใดมีผลต่อทั้งประสิทธิภาพและขอบเขตของข้อมูล
หากต้องส่งวิดีโอเดียวกันให้ผู้ชมหนึ่งพันคน การส่ง unicast หนึ่งพันชุดทำให้ต้นทางส่งข้อมูลซ้ำจำนวนมาก Multicast พยายามให้เครือข่ายทำสำเนาเฉพาะจุดที่เส้นทางแยกออกจากกัน แต่ต้องมีกลไกจัดการสมาชิกและอุปกรณ์ระหว่างทางรองรับ ส่วน broadcast แม้เรียบง่าย แต่ถ้าใช้โดยไม่จำกัดขอบเขต ทุก node จะต้องรับข้อมูลที่อาจไม่เกี่ยวกับตนเอง
4สรุปและขั้นตอนถัดไป
- Node คือจุดที่สร้าง รับ หรือส่งต่อข้อมูล ส่วน link คือช่องทางระหว่าง node ซึ่งอาจเป็น point-to-point หรือใช้ร่วมกันหลาย node
- Topology บอกความสัมพันธ์ของ node กับ link และมีผลต่อจำนวนเส้นทาง จุดเสีย ต้นทุน และความสามารถในการขยายระบบ
- Circuit switching เตรียมเส้นทางและทรัพยากรไว้ก่อน จึงคาดการณ์บริการได้ง่ายขึ้น แต่ทรัพยากรอาจว่างระหว่างที่ไม่มีข้อมูล
- Packet switching แบ่งข้อมูลเป็น packet และให้หลายการสื่อสารแชร์ link ตามการใช้งานจริง จึงคุ้มค่ากับข้อมูลที่มาเป็นช่วง แต่ต้องรับมือกับคิว ความหน่วงที่เปลี่ยนแปลง และ packet ที่อาจถูกทิ้ง
- Internetwork คือการเชื่อมหลายเครือข่ายเข้าด้วยกัน ส่วนรูป cloud ในแผนภาพเป็นเพียงการซ่อนรายละเอียดที่ยังไม่ต้องพิจารณา ไม่ใช่ชื่อที่ใช้แทน internetwork ทุกกรณี
- Address ระบุปลายทาง, routing วางเส้นทาง และ forwarding ส่ง packet จริงออกทางขาที่เลือกไว้
จากบทนี้ไปสู่บท Multiplexing
บทนี้อธิบายแล้วว่า packet ของผู้ใช้หลายรายสามารถใช้ link ร่วมกันได้ แต่ยังไม่ได้ตอบว่า “จะแชร์กันอย่างไร” บทถัดไปจึงจะพิจารณา Multiplexing ตั้งแต่การแบ่งตามเวลา แบ่งตามความถี่ ไปจนถึงการแชร์ตามความต้องการจริง
คำถามสำคัญไม่ได้มีเพียงว่า link ส่งได้เร็วเท่าไร แต่คือใครได้รับสิทธิ์ใช้ link ในช่วงใด หากผู้ใช้หนึ่งรายเงียบ ทรัพยากรส่วนของเขาควรถูกเก็บว่างไว้ หรือเปิดให้คนอื่นยืมใช้ก่อน? คำถามนี้เป็นจุดที่ประสิทธิภาพ ความยุติธรรม และความแน่นอนเริ่มดึงระบบไปคนละทาง