ทำไมเราไม่ซิงค์เวลากับ Public NTP Server

ทำไมเราไม่ซิงค์เวลากับ Public NTP Server

การติดตั้ง NTP Server ภายในองค์กร เพื่อทำหน้าที่เป็นตัวอ้างอิงเวลา (Time Reference) ให้กับอุปกรณ์ต่างๆ ภายในเครือข่ายนั้น เป็นสิ่งที่ควรทำเป็นอย่างยิ่ง เนื่องจากเราสามารถควบคุมเวลาของอุปกรณ์ภายในเครือข่ายของเราเอง ให้มีค่าเวลาที่เท่ากัน แต่นั่นไม่ได้หมายความว่าจะตรงกับเวลา UTC เนื่องจากคอมพิวเตอร์เซิร์ฟเวอร์เวลาที่เราติดตั้งขึ้นมาใช้งานเองนั้น ส่วนใหญ่จะใช้คอมพิวเตอร์เซิร์ฟเวอร์ทั่วๆ ไป ติดตั้งระบบปฎิบัติการ Linux แล้วก็ติดตั้งเซอร์วิสให้บริการเวลา ซึ่งตัวกำเนิดสัญญาณนาฬิกาที่ใช้ในเครื่องเซิฟเวอร์นั้นมีคุณภาพต่ำ มีค่าความคลาดเคลื่อนสูง ถึงแม้ว่าเราจะให้เซิร์ฟเวอร์เวลาของเรา ไปซิงค์เวลากับเซิร์ฟเวอร์เวลาสาธารณะ Public NTP Server ที่ใช้นาฬิกาที่มีความแม่นยำมากที่สุดในโลก หรือสถาบันมาตรวิทยาแห่งประเทศไทย NIMT ซึ่งมีเวลาอะตอมมิก (Cesium clock) ที่สามารถสอบเทียบเวลากลับไปยังมาตรฐานเวลาโลกได้แล้วก็ตาม ก็ยังมีความคลาดเคลื่อนอยู่มาก

ซิงค์เวลากับ Public NTP Server แล้วยัง Error เพราะอะไร?

ซิงค์เวลากับ Public NTP Server แล้วยัง Error เพราะอะไรนั้น มีสาเหตุมาจากการปรับเทียบเวลา Time Synchronization กับ Public NTP Server ผ่านเครือข่ายอินเตอร์เน็ตได้อย่างสมบูรณ์แบบนั้นเป็นไปไม่ได้ เรื่องจากระบบเครือข่ายอินเตอร์เน็ต นั้นเป็นระบบ packet switching ประกอบไปด้วย สวิตช์ เราเตอร์ และโครงสร้างพื้นฐานเครือข่ายอื่นๆ ซึ่งมี Latency Time สูง ทำให้เวลาในการเข้าถึงข้อมูลมากน้อยต่างกันไปขึ้นอยู่กับจำนวน Hop นั้นหมายความว่า โอกาสที่จะได้ค่าเวลาที่ถูกต้อง และค่าแก้เวลา (Correction time) ที่เกิดจากระบบอินเตอร์เน็ตที่ถูกต้องนั้น เป็นไปไม่ได้ ถ้าต้องการความเที่ยงตรงของเวลาในระดับมิลลิวินาที จนถึงนาโนวินาที

ตัวอย่างปัญหา ถ้าเวลาในระบบไม่เท่ากัน

ถ้าเวลาในระบบไม่เท่ากันแล้ว ลองนึกภาพตามดูว่าถ้าคุณมี Log Server อยู่ 10 เครื่อง แต่ละเครื่องมีการเก็บข้อมูลการใช้งานของ User ถ้า Log Server ทั้งหมด มีการใช้ Public NTP server นั่นแปลว่าเวลาของ Log Server ทั้ง 10 เครื่อง จะไม่เท่ากัน ซึ่งนั่นเป็นสาเหตุที่ทำให้ลำดับเหตุการณ์ที่ถูกบันทึกลงใน Log server แต่ละเครื่องไม่สอดคล้องกัน ทำให้การวิเคราะห์ปัญหาทำได้ยาก ยิ่งถ้าเป็นปัญหาเกี่ยวกับเรื่องของเงินๆ ทองๆ ยิ่งน่ากลัว สมมุติว่ามีบริษัทในตลาดหลักทรัพย์ กำลังเปิดซื้อขายหุ้นเป็นวันแรก หรือ IPO ซึ่งมีนักลงทุนรอที่จะซื้อหรือขายเป็นจำนวนมากในช่วงเปิดตลาด ถ้า Servers ที่ใช้งานอยู่ทั้งหมดนั้นมีเวลาที่ไม่ซิงโครไนซ์ซึ่งกันและกันแล้ว การจัดการกับการคำสั่งซื้อขาย ระดับ 1,000 -10,000 ต่อวินาทีนั้น ไม่สามารถจัดการเรื่องลำดับว่าของใครมาก่อน มาหลังได้แน่นอน

วิธีแก้ปัญหาเวลาเครื่องเซิฟเวอร์ ไม่ตรงกันได้อย่างไร?

วิธีแก้ปัญหาเวลาเครื่องเซิฟเวอร์ ไม่ตรงกันได้อย่างไรนั้น สามารถทำได้โดยการติดตั้ง NTP Server ที่มีระดับ Stratum-1 เช่น ELPROMA NTP Server ภายในองค์กร เพื่อทำหน้าที่เป็นตัวอ้างอิงเวลา (Time Reference) ให้กับอุปกรณ์ต่างๆ ภายในเครือข่ายนั้น แทนที่จะให้เครื่องเซิฟเวอร์ และอุปกรณ์ภายในเครือข่ายไปอ้างอิงเวลากับ Public NTP Server ก็ย้ายให้มาอ้างอิงเวลากับ Private NTP Server ของเราเอง ซึ่งจะมีเวลาที่มีความเที่ยงตรงในระดับ Stratum-1 เพราะ ELPROMA NTP Server อย่างรุ่น NTS-PICO3 หรือ NTS-3000 นั้นอ้างอิงเวลาจากระบบดาวเทียมนำร่อง GNSS อย่างเช่น GPS, GLONASS ซึ่งมีความเที่ยงตรงในระดับ Stratum-0 เพราะใช้ตัวกำเนิดสัญญาณนาฬิกา OSC ที่เป็นซีเซี่ยม (Cesium clock) หรือบางทีจะเรียกว่านาฬิกาอะตอม Atomic Clock