โครงสร้างอินเทอร์เน็ตที่เราคุ้นเคยในชีวิตประจำวันทำงานบนโปรโตคอล TCP/IP ซึ่งมีสมมติฐานหลักคือการเชื่อมต่อต้องมีความต่อเนื่องและมีความหน่วงเวลา (Latency) ต่ำมาก (ระดับมิลลิวินาที) อย่างไรก็ตาม เมื่อเราขยายขอบเขตการสื่อสารไปยังห้วงอวกาศ การเดินทางระหว่างโลก ดวงจันทร์ หรือดาวอังคาร กฎฟิสิกส์ของความเร็วแสงและการโคจรของวัตถุทำให้สัญญาณขาดหายบ่อยครั้ง และมีความหน่วงเวลาสูงถึงหลายนาทีหรือหลายชั่วโมง
การสร้าง อินเทอร์เน็ตข้ามดาวเคราะห์ (Interplanetary Internet) จึงไม่สามารถใช้สถาปัตยกรรมแบบเดิมได้ แต่ต้องพึ่งพากลไกใหม่ที่เรียกว่า Delay-Tolerant Networking (DTN) ซึ่งเป็นสถาปัตยกรรมที่ออกแบบมาเพื่อรับมือกับความไม่ต่อเนื่องของการเชื่อมต่อ และใช้มาตรฐาน Bundle Protocol (RFC 9171) ในการห่อหุ้มข้อมูล
ทำไม TCP/IP จึงล้มเหลวในอวกาศ?
โปรโตคอล TCP/IP อาศัยกลไกการ Handshake 3 ทาง (Three-way Handshake) ซึ่งต้องการการตอบรับที่รวดเร็ว หากการเชื่อมต่อขาดหายไปเพียงชั่วขณะ (เช่น การที่ยานอวกาศเข้าสู่เงามืดของดาวเคราะห์) TCP จะตีความว่าแพ็กเก็ตข้อมูลสูญหายและตัดการเชื่อมต่อทันที ซึ่งเป็นเรื่องที่ยอมรับไม่ได้ในสภาพแวดล้อมอวกาศ
หลักการทำงานของ DTN: Store-Carry-Forward
DTN แก้ปัญหาดังกล่าวด้วยแนวคิด Store-Carry-Forward แทนที่จะพยายามเชื่อมต่อตลอดเวลา ข้อมูลจะถูกห่อหุ้มเป็นหน่วยที่เรียกว่า Bundle และถูกเก็บไว้ในโหนด (Node) ที่อยู่ใกล้ที่สุด (เช่น ยานอวกาศ หรือสถานีโคจร) จนกว่าจะถึงเวลาที่เหมาะสมและสามารถส่งต่อไปยังโหนดถัดไปได้ นี่คือการเปลี่ยนจากการเชื่อมต่อแบบ ‘Real-time’ เป็นการส่งข้อมูลแบบ ‘Store-and-Forward’ ที่ทนทานต่อความล่าช้าสูง
การจำลองการจัดการ Bundle ด้วย PostgreSQL
ในเชิงระบบ (System Architecture) การจัดการ Bundle เหล่านี้จำเป็นต้องมีฐานข้อมูลที่เชื่อถือได้เพื่อบันทึกสถานะของข้อมูลที่รอการส่ง (Bundles) เราสามารถใช้ PostgreSQL ในการจำลองการเก็บข้อมูลนี้ได้ โดยกำหนดตารางเพื่อติดตาม Bundle แต่ละชุด:
SQL
-- สร้างตารางเพื่อเก็บสถานะของ Bundle ที่รอการส่ง (Store-Carry-Forward) </code>
CREATE TABLE dt_bundles (
bundle_id SERIAL PRIMARY KEY,
source_node VARCHAR(50) NOT NULL,
destination_node VARCHAR(50) NOT NULL,
payload TEXT NOT NULL,
timestamp_stored TIMESTAMP DEFAULT NOW(),
is_transmitted BOOLEAN DEFAULT FALSE
);
-- ตัวอย่างการบันทึก Bundle ใหม่ที่โลกส่งให้ดาวอังคาร (Payload: apple,banana,orange) </code>
INSERT INTO dt_bundles (source_node, destination_node, payload)
VALUES ('Earth', 'Mars', 'apple,banana,orange');
-- การดึง Bundle ที่ยังไม่ได้ส่ง </code>
SELECT * FROM dt_bundles WHERE is_transmitted = FALSE;
บทสรุป
DTN และ Bundle Protocol จึงเป็นรากฐานสำคัญที่ทำให้การสื่อสารข้ามดาวเคราะห์เป็นจริงได้ โดยเปลี่ยนจากการพึ่งพาการเชื่อมต่อที่สมบูรณ์แบบ ไปสู่การออกแบบที่เน้นความทนทานต่อความล่าช้า (Delay Tolerance) ซึ่งเป็นหลักการที่สำคัญในการออกแบบระบบเครือข่ายที่ต้องทำงานในสภาพแวดล้อมที่ผันผวนและไม่แน่นอนอย่างห้วงอวกาศ