ก่อนที่อินเทอร์เน็ตจะเป็นสิ่งที่ทุกคนใช้ มีเทคโนโลยีอีกหลายชุดที่ตั้งใจจะเป็น เครือข่ายของโลก และหลายชุดนั้นมีคนฉลาดกว่าและเงินมากกว่าอยู่เบื้องหลัง
X.25, Frame Relay, ATM — ชื่อเหล่านี้อยู่ในตำราทุกเล่ม และแทบไม่มีใครใช้แล้ว
เรื่องนี้น่าสนใจไม่ใช่เพราะเป็นประวัติศาสตร์ แต่เพราะ ของที่แพ้ไม่ได้แพ้ เพราะแย่กว่า หลายอย่างมันทำได้ดีกว่าอินเทอร์เน็ตด้วยซ้ำ — รับประกันคุณภาพ ได้ นับปริมาณได้แม่นยำ มีการควบคุมความผิดพลาดในตัว
สิ่งที่มันแพ้คือการเลือกทางที่ต่างกันตั้งแต่ข้อแรก และบทความนี้จะคำนวณให้เห็น ว่าทางเลือกนั้นมีราคาเท่าไหร่ในหน่วยไบต์
ถ้ายังไม่เคยคิดเรื่องนี้ เริ่มตรงนี้
คำถามพื้นฐานของเครือข่ายทุกชนิดมีข้อเดียว — ก่อนจะส่งข้อมูล ต้องจองทางไว้ ก่อนไหม
จองก่อน สร้างเส้นทางให้เสร็จ แล้วค่อยส่ง ทางนั้นเป็นของเราจนกว่าจะเลิกใช้
ไม่จอง ส่งออกไปเลย แต่ละก้อนหาทางเอาเอง และอาจไปคนละทางกัน
โทรศัพท์แบบเก่าเลือกข้อแรก อินเทอร์เน็ตเลือกข้อสอง และเกือบทุกอย่างที่ตามมา เป็นผลของการเลือกนั้น
จองทางไว้ก่อน — และสิ่งที่ต้องจ่าย
การจองวงจรให้สิ่งที่มีค่ามาก — ความแน่นอน เมื่อจองได้แล้ว ความเร็วกับความ หน่วงคงที่ ไม่มีใครมาแย่ง ไม่มีคิว ไม่มีของหาย
ราคาที่จ่ายคือช่องที่จองไว้เป็นของคุณแม้ตอนที่ไม่ได้ใช้ ในบทสนทนาทางโทรศัพท์ ทั่วไป คนพูดสลับกัน และมีช่วงเงียบเยอะ ช่องทางครึ่งหนึ่งจึงว่างเปล่าตลอดสาย
สำหรับข้อมูลคอมพิวเตอร์ยิ่งแย่กว่านั้นมาก เพราะทราฟฟิกเป็นก้อน ๆ ไม่สม่ำเสมอ การเปิดหน้าเว็บใช้แบนด์วิดท์เต็มที่สองวินาที แล้วเงียบไปห้านาที
ส่งทีละก้อน แล้วหาทางเอาเอง
อีกทางคือไม่จองอะไรเลย ใส่ที่อยู่ปลายทางไว้ในทุกก้อน แล้วให้อุปกรณ์กลางทาง ตัดสินใจทีละก้อนว่าจะส่งไปทางไหน ซึ่งเป็นสิ่งที่บทความ IP อธิบายไว้
ข้อดีคือเส้นทางถูกใช้ร่วมกัน ตอนที่คนหนึ่งเงียบ อีกคนได้ใช้เต็มที่ ข้อเสียคือ ไม่มีอะไรรับประกัน — ความหน่วงแกว่ง ของหายได้ มาถึงสลับลำดับได้
และการยอมรับข้อเสียเหล่านั้นคือสิ่งที่ทำให้มันชนะ เพราะการไม่ต้องจำอะไร ไว้ตรงกลางแปลว่าอุปกรณ์กลางทางถูกและง่าย และเครือข่ายขยายได้โดยไม่ต้องนัดกัน ล่วงหน้า
วงจรเสมือน — ทางสายกลางที่เคยดูเหมือนคำตอบ
X.25, Frame Relay และ ATM เลือกทางตรงกลาง — สร้างเส้นทางไว้ล่วงหน้าเหมือน การจอง แต่ไม่กันแบนด์วิดท์ไว้ตายตัว เรียกว่าวงจรเสมือน
ก้อนข้อมูลจึงไม่ต้องพกที่อยู่ปลายทางเต็ม ๆ พกแค่หมายเลขวงจรสั้น ๆ ซึ่งเล็กกว่า และค้นได้เร็วกว่ามาก ในยุคที่อุปกรณ์ยังช้า นี่เป็นข้อได้เปรียบจริง
ราคาที่จ่ายอยู่ตรงที่มองไม่เห็น — อุปกรณ์ทุกตัวบนเส้นทางต้องจำทุกวงจรที่ ผ่านตัวมัน ยิ่งมีผู้ใช้มาก ตารางยิ่งใหญ่ และการเพิ่มเส้นทางใหม่ต้องไปตั้งค่า ที่อุปกรณ์ทุกตัวตลอดทาง
เทียบกับ IP ที่เราเตอร์ไม่ต้องรู้จักการเชื่อมต่อใด ๆ เลย รู้แค่ว่าเลขนำหน้า ชุดนี้ออกทางไหน นั่นคือความต่างที่ตัดสินว่าใครขยายได้ถึงระดับโลก
ATM กับเซลล์ 53 ไบต์
ATM ไปไกลกว่านั้นอีกขั้น มันไม่ส่งก้อนขนาดไม่เท่ากัน แต่หั่นทุกอย่างให้เป็น ชิ้นขนาดคงที่เรียกว่าเซลล์ เพราะชิ้นขนาดเท่ากันทำให้สร้างสวิตช์ที่เร็วมาก ด้วยฮาร์ดแวร์ล้วนได้ และทำให้คำนวณความหน่วงได้แม่นยำ ซึ่งสำคัญมากสำหรับเสียง
ขนาดที่เลือกคือ 53 ไบต์ แบ่งเป็นหัว 5 ไบต์ กับข้อมูล 48 ไบต์
cell 53 bytes
header 5 bytes
payload 48 bytes
ค่าโสหุ้ยจากหัวอย่างเดียวคือ 5 หาร 53 เท่ากับ 9.43% ที่ต้องจ่ายเสมอ ไม่ว่า จะส่งอะไร ไม่ว่าสายจะว่างหรือเต็ม
แต่นั่นยังไม่ใช่ส่วนที่แพงที่สุด
ราคาที่แท้จริงของการหั่นเป็นชิ้นเท่ากัน
การส่ง IP ผ่าน ATM ทำตามที่ RFC 2684 กำหนด — ต่อท้ายด้วยส่วนปิดท้าย 8 ไบต์ แล้วเติมช่องว่างให้ครบทวีคูณของ 48 ก่อนหั่นเป็นเซลล์ เอกสารระบุช่องเติมไว้ว่า PAD (0 - 47 octets)
ผมคำนวณให้ดูว่าเกิดอะไรขึ้น
IP bytes cells on wire overhead
40 1 53 32.5%
41 2 106 158.5%
64 2 106 65.6%
576 13 689 19.6%
1500 32 1696 13.1%
แถวแรกคือ TCP ACK เปล่า ๆ ขนาด 40 ไบต์ ซึ่งเป็นแพ็กเก็ตที่พบบ่อยที่สุดชนิดหนึ่ง บนอินเทอร์เน็ต มันเสียค่าโสหุ้ย 32.5%
แถวที่สองคือสิ่งที่ทำให้คนตกใจ
หน้าผาที่ห่างกันหนึ่งไบต์
เพราะเซลล์มีขนาดตายตัว การเพิ่มข้อมูลหนึ่งไบต์อาจทำให้ต้องเพิ่มอีกทั้งเซลล์
40 bytes -> 53 on wire 1 cell
41 bytes -> 106 on wire 2 cells +53
ตัวเลข +53 คือไบต์ที่เพิ่มบนสายจากการเพิ่มข้อมูลเพียงไบต์เดียว
หน้าผาแบบนี้อยู่ทุก 48 ไบต์ตลอดช่วงขนาด และไม่หายไปที่ขนาดใหญ่ด้วย
1528 bytes -> 1696 on wire 32 cells
1529 bytes -> 1749 on wire 33 cells +53
ค่าโสหุ้ย 13% ที่ขนาดเต็มเฟรม บวกกับ 32% ที่แพ็กเก็ตเล็ก บวกกับหน้าผาทุก 48 ไบต์ คือราคาที่ต้องจ่ายตลอดอายุของเทคโนโลยี เพื่อแลกกับสวิตช์ที่เร็ว และความหน่วงที่คำนวณได้
ตอนที่ ATM ถูกออกแบบ การแลกนี้คุ้ม เพราะการสร้างสวิตช์ที่จัดการก้อนขนาดไม่ เท่ากันด้วยความเร็วสูงยังยากมาก พอฮาร์ดแวร์ตามทัน ข้อได้เปรียบนั้นหายไป แต่ค่าโสหุ้ยยังอยู่
ทำไม 53
ตัวเลข 53 ไม่ได้มาจากการคำนวณทางวิศวกรรม มันมาจากการประนีประนอม
ฝั่งที่สนใจเสียงต้องการเซลล์เล็ก เพราะเซลล์ยิ่งใหญ่ ยิ่งต้องรอเก็บเสียงนานขึ้น ก่อนจะส่งได้ ซึ่งเพิ่มความหน่วงและทำให้ต้องมีตัวหักล้างเสียงสะท้อน ฝั่งที่ สนใจข้อมูลต้องการเซลล์ใหญ่ เพราะค่าโสหุ้ยจากหัวจะได้น้อยลง
ข้อเสนอคือ 32 กับ 64 และสิ่งที่ได้คือ 48 ซึ่งอยู่ตรงกลางพอดี บวกหัว 5 ไบต์ เป็น 53
เลขที่ไม่มีใครอยากได้ กลายเป็นเลขที่ทุกคนต้องจ่ายไปสามสิบปี
หมายเหตุ — ที่มาของการประนีประนอมนี้เป็นเรื่องที่เล่าต่อกันในวงการมาก เอกสารกำหนดของ ITU-T ที่นิยามตัวเซลล์ไม่ได้อธิบายว่าทำไมถึงเลือกเลขนี้ และ ตอนเขียนบทความนี้เซิร์ฟเวอร์ของ ITU ตอบข้อผิดพลาด ผมจึงยืนยันจากต้นทางไม่ได้ สิ่งที่ยืนยันได้คือขนาด 53 กับ 48 ซึ่งอ้างจาก RFC 2684 และค่าโสหุ้ยที่คำนวณ จากตัวเลขนั้น
สิ่งที่รอดมา
เทคโนโลยีเหล่านั้นตายไปแล้ว แต่แนวคิดหนึ่งไม่ตาย — การติดป้ายสั้น ๆ ไว้หน้า ก้อนข้อมูล แล้วให้อุปกรณ์กลางทางตัดสินใจจากป้ายแทนที่จะค้นตารางเส้นทางเต็ม
นั่นคือสิ่งที่ MPLS ทำ และมันอยู่ในเครือข่ายผู้ให้บริการแทบทุกรายจนถึงวันนี้ ต่างจากรุ่นก่อนตรงที่มันวางทับบน IP แทนที่จะพยายามแทนที่ IP
บทเรียนคือของที่ชนะไม่ใช่ของที่ดีที่สุดในทุกด้าน แต่คือของที่ต้องการการ ตกลงกันล่วงหน้าน้อยที่สุด เครือข่ายที่ต่อเพิ่มได้โดยไม่ต้องขออนุญาตใคร ขยายได้เร็วกว่าเครือข่ายที่ต้องตั้งค่าทุกจุดตลอดทาง แม้เครือข่ายหลังจะให้ คุณภาพดีกว่า
เมื่อมันโกหก
"แพ็กเก็ตสวิตชิงมีประสิทธิภาพกว่าเสมอ" ไม่เสมอ ถ้าทราฟฟิกสม่ำเสมอและ ต้องการความหน่วงคงที่ การจองทางชนะชัดเจน นั่นคือเหตุผลที่วงจรเช่ายังขายได้ อยู่จนทุกวันนี้
"ATM ตายเพราะเทคโนโลยีแย่" มันตายเพราะต้นทุนการตกลงกันสูงกว่า และเพราะ ฮาร์ดแวร์ตามทันจนข้อได้เปรียบหลักหายไป ไม่ใช่เพราะออกแบบมาไม่ดี
"ค่าโสหุ้ยไม่กี่เปอร์เซ็นต์ ไม่สำคัญ" 13% บนวงจรที่คิดเงินตามแบนด์วิดท์ เป็นเงินจริงทุกเดือน และ 32% บนทราฟฟิกที่เป็นแพ็กเก็ตเล็กจำนวนมาก ก็ไม่ใช่ ตัวเลขที่มองข้ามได้
"WAN คือ LAN ที่ยาวกว่า" ต่างกันที่ราคาต่อบิตและที่ใครเป็นเจ้าของสายกลาง ซึ่งเปลี่ยนการออกแบบทั้งหมด บทความ Wi-Fi แสดงกรณีคล้ายกัน ว่าเมื่อสื่อกลางถูกแบ่งกับคนอื่น ทุกข้อสมมติเปลี่ยน
ตัวอย่างจริงจากงานจริง
กรณีที่ 1 — คิดค่าโสหุ้ยก่อนซื้อวงจร
สถานการณ์ ผู้ให้บริการเสนอวงจรที่ระบุความเร็วเป็นบิตต่อวินาที ต้องรู้ว่า จะได้ข้อมูลจริงเท่าไหร่
อ่านอย่างไร ถามว่าเป็นการนับที่ชั้นไหน ถ้าเป็นชั้นที่มีการหั่นเป็นเซลล์ ต้องเผื่อค่าโสหุ้ยตามตารางข้างบน และค่านั้นขึ้นกับขนาดแพ็กเก็ตของทราฟฟิก จริง ไม่ใช่ค่าเดียวคงที่ ทราฟฟิกที่มีแพ็กเก็ตเล็กเยอะจะเสียหนักกว่ามาก
สิ่งที่ยังไม่ได้พิสูจน์ ตัวเลขในตารางคำนวณจาก AAL5 ตาม RFC 2684 เท่านั้น วงจรจริงอาจมีชั้นห่ออื่นซ้อนอยู่อีก ซึ่งเพิ่มค่าโสหุ้ยอีก ต้องถามผู้ให้บริการ ว่าตัวเลขที่ขายวัดที่จุดไหน
กรณีที่ 2 — เลือกระหว่างวงจรเช่ากับอินเทอร์เน็ต
สถานการณ์ ต้องเชื่อมสองสาขา และมีสองทางเลือกที่ราคาต่างกันมาก
อ่านอย่างไร ถามว่างานจริงทนความหน่วงที่แกว่งได้ไหม ถ้าเป็นการคัดลอกไฟล์ หรือเว็บ อินเทอร์เน็ตคุ้มกว่ามาก ถ้าเป็นเสียงหรือระบบที่ต้องการเวลาตอบสนอง คงที่ วงจรที่จองไว้ยังมีเหตุผล เพราะสิ่งที่ซื้อไม่ใช่ความเร็ว แต่คือความแน่นอน
สิ่งที่ยังไม่ได้พิสูจน์ ความแน่นอนที่ผู้ให้บริการรับประกันเป็นสัญญา ไม่ใช่ ฟิสิกส์ ต้องอ่านว่ารับประกันอะไรบ้างและวัดอย่างไร ตัวเลขในเอกสารขายกับสิ่งที่ วัดได้จริงอาจต่างกัน
กรณีที่ 3 — อ่านคำว่า "วงจรเสมือน" ในสเปกให้ออก
สถานการณ์ เอกสารของผู้ให้บริการใช้คำนี้ ต้องรู้ว่าหมายถึงอะไร
อ่านอย่างไร ถามสามข้อ
1 แบนด์วิดท์ถูกกันไว้จริง หรือแค่รับประกันเป็นตัวเลขบนสัญญา
2 ถ้าเส้นทางหลักขาด มีการสลับอัตโนมัติไหม ใช้เวลาเท่าไหร่
3 การเพิ่มปลายทางใหม่ต้องตั้งค่าที่จุดไหนบ้าง
ข้อที่สามคือข้อที่แยกวงจรเสมือนออกจาก IP ได้ชัดที่สุด ถ้าคำตอบคือต้องตั้งค่า หลายจุด นั่นคือรูปแบบเดิมที่บทความนี้อธิบาย
สิ่งที่ยังไม่ได้พิสูจน์ คำเดียวกันถูกใช้ต่างความหมายในสินค้าต่างยี่ห้อ คำตอบสามข้อนี้บอกพฤติกรรมที่ต้องการรู้ได้ตรงกว่าการเถียงเรื่องนิยาม
อ้างอิง
มาตรฐานที่โหลดได้ฟรี
- RFC 2684 การห่อ IP ลงบน AAL5 ของ ATM — ที่มาของขนาดเซลล์ 48 ไบต์และช่องเติม
PAD (0 - 47 octets)ที่ใช้คำนวณในบทความนี้ - RFC 2427 การส่งหลายโพรโทคอล ผ่าน Frame Relay
- RFC 1356 การส่งหลายโพรโทคอล ผ่าน X.25
คำนวณเอง
- ตารางค่าโสหุ้ยและหน้าผาทุก 48 ไบต์ คำนวณจากขนาดเซลล์ 53 ไบต์ ข้อมูล 48 ไบต์ และส่วนปิดท้าย AAL5 อีก 8 ไบต์ ตามที่ RFC 2684 ระบุ
สิ่งที่ยืนยันจากต้นทางไม่ได้
- ที่มาของการเลือกเลข 48 จากข้อเสนอ 32 กับ 64 เป็นเรื่องที่เล่าต่อกันมา เอกสารของ ITU-T ที่นิยามเซลล์ไม่ได้อธิบายเหตุผล และตอนเขียนบทความนี้ เซิร์ฟเวอร์ของ ITU ตอบข้อผิดพลาด จึงระบุไว้ตรงนี้แทนที่จะอ้างว่าตรวจแล้ว