NTP — यह क्या है, समय प्रोटोकॉल और अनुप्रयोगों में सिंक्रनाइज़ेशन

लेखक: IT Sectr प्रकाशित: 2026-07-14 पढ़ने का समय: 9 मिनट

NTP (Network Time Protocol) एक नेटवर्क समय सिंक्रनाइज़ेशन प्रोटोकॉल है जो स्थानीय नेटवर्क पर मिलीसेकंड और वैश्विक नेटवर्क पर दसियों मिलीसेकंड तक सटीकता प्रदान करता है। 1985 में डेविड मिल्स द्वारा विकसित, यह प्रोटोकॉल सभी आधुनिक ऑपरेटिंग सिस्टम, मोबाइल उपकरणों और नेटवर्क उपकरणों में आंतरिक घड़ियों को UTC संदर्भ समय के साथ सिंक्रनाइज़ करने के लिए उपयोग किया जाता है। NTP Pool Project (2026) के अनुसार, प्रतिदिन 4 अरब से अधिक उपकरण सिंक्रनाइज़ेशन के लिए NTP अनुरोध करते हैं।

मुख्य बातें

  • NTP — नेटवर्क पर समय सिंक्रनाइज़ेशन प्रोटोकॉल, सटीकता 1 ms (LAN) से 50 ms (WAN) तक
  • स्ट्रेटम पदानुक्रम — स्तर प्रणाली (stratum 0–16), जहाँ stratum 0 संदर्भ परमाणु घड़ी है
  • ड्रिफ्ट सुधार — NTP केवल समय सेट नहीं करता, बल्कि निरंतर सटीकता के लिए घड़ी की आवृत्ति को समायोजित करता है
  • SNTP — सीमित संसाधनों वाले उपकरणों के लिए NTP का सरलीकृत संस्करण, IoT और Android में उपयोग किया जाता है
  • सुरक्षा — NTPv4 सममित कुंजियों और NTS (Network Time Security) के माध्यम से प्रमाणीकरण का समर्थन करता है

NTP क्या है?

NTP (Network Time Protocol) एक नेटवर्क प्रोटोकॉल है जो पैकेट-स्विच्ड नेटवर्क पर कंप्यूटर की आंतरिक घड़ी को संदर्भ समय स्रोत के साथ सटीक सिंक्रनाइज़ेशन के लिए डिज़ाइन किया गया है। RFC 5905 (NTPv4) में वर्णित, प्रोटोकॉल सर्वरों की एक पदानुक्रमित प्रणाली का उपयोग करता है, जहाँ प्रत्येक स्तर को स्ट्रेटम कहा जाता है। एक NTP क्लाइंट सर्वर को अनुरोध भेजता है, पैकेट के राउंड-ट्रिप समय (RTT) को मापता है, और संदर्भ समय के सापेक्ष अपनी घड़ी के ऑफ़सेट की गणना करता है। सुधार एल्गोरिदम न केवल एकल ऑफ़सेट को ध्यान में रखता है, बल्कि घड़ी जनरेटर के ड्रिफ्ट को भी ध्यान में रखता है, जिससे बार-बार अनुरोधों के बिना लंबे समय तक सटीकता बनाए रखी जा सकती है।

NTP विकास का इतिहास

प्रोटोकॉल डेविड मिल्स द्वारा 1985 में ARPANET नेटवर्क के लिए विकसित किया गया था। पहली विशिष्टता (RFC 958) ने 100 ms तक सटीकता के साथ एक सरल सिंक्रनाइज़ेशन एल्गोरिदम का वर्णन किया। NTPv3 (RFC 1305, 1992) ने फ़िल्टरिंग एल्गोरिदम और बेहतर विलंब प्रसंस्करण जोड़ा। NTPv4 (RFC 5905, 2010) — वर्तमान संस्करण — में IPv6 समर्थन, स्वचालित सर्वर कॉन्फ़िगरेशन और Network Time Security (NTS) के माध्यम से हमलों से सुरक्षा शामिल है। 40 वर्षों में, प्रोटोकॉल एक शोध परियोजना से एक बुनियादी ढाँचा मानक बन गया है, जिसके बिना वित्तीय लेन-देन, दूरसंचार और मोबाइल नेटवर्क असंभव होंगे।

NTP कैसे काम करता है

NTP का कार्य सिद्धांत नेटवर्क पर पैकेट यात्रा समय को मापने पर आधारित है। क्लाइंट टाइमस्टैम्प T1 (स्थानीय भेजने का समय) के साथ एक अनुरोध भेजता है। सर्वर समय T2 (सर्वर समय) पर अनुरोध प्राप्त करता है, टाइमस्टैम्प T3 के साथ प्रतिक्रिया उत्पन्न करता है और भेजता है। क्लाइंट समय T4 पर प्रतिक्रिया प्राप्त करता है। सभी चार टाइमस्टैम्प का उपयोग करके, क्लाइंट ऑफ़सेट = ((T2 - T1) + (T3 - T4)) / 2 और विलंब = (T4 - T1) - (T3 - T2) की गणना करता है। यदि विलंब 1 सेकंड से अधिक है, तो परिणाम अविश्वसनीय माना जाता है — यह ओवरलोडेड या अस्थिर चैनलों से सुरक्षा करता है।

घड़ी ड्रिफ्ट सुधार

केवल सटीक समय सेट करना पर्याप्त नहीं है — डिवाइस पर क्वार्ट्ज ऑसिलेटर तापमान, उम्र और वोल्टेज के कारण लगातार ड्रिफ्ट (आगे या पीछे जाता) करता है। NTP PLL (Phase-Locked Loop) एल्गोरिदम का उपयोग करके इस समस्या को हल करता है: यह जबरन समय सेट नहीं करता, बल्कि घड़ी की गति को समायोजित करता है। यदि डिवाइस प्रति घंटे 0.1 सेकंड तेज है, तो NTP सिस्टम घड़ी को तब तक धीमा करता है जब तक ड्रिफ्ट की भरपाई नहीं हो जाती। यह दृष्टिकोण स्थिर नेटवर्क पर हर 30 सेकंड के बजाय हर कुछ घंटों में सिंक्रनाइज़ेशन की अनुमति देता है।

cpp
// Simplified NTP algorithm schema
struct NTPPacket {
    uint8_t flags;      // LI, VN, Mode
    uint8_t stratum;    // server stratum level
    uint32_t refTimestamp;  // reference timestamp
    uint32_t originTimestamp; // T1
    uint32_t recvTimestamp;   // T2
    uint32_t xmitTimestamp;   // T3
};

// Calculate offset and delay
double offset = ((t2 - t1) + (t3 - t4)) / 2.0;
double delay = (t4 - t1) - (t3 - t2);

स्ट्रेटा — NTP पदानुक्रम

पूरा NTP सिस्टम एक पदानुक्रम में संगठित है, जहाँ प्रत्येक स्तर को स्ट्रेटम कहा जाता है। स्ट्रेटम 0 संदर्भ घड़ी है: परमाणु घड़ियाँ, GPS रिसीवर, या WWVB रेडियो सिग्नल। ये उपकरण सीधे नेटवर्क से कनेक्ट नहीं होते हैं। स्ट्रेटम 1 — सर्वर जो सीधे संदर्भ घड़ियों से जुड़े होते हैं। स्ट्रेटम 2 स्ट्रेटम 1 से समय प्राप्त करता है, स्ट्रेटम 3 स्ट्रेटम 2 से, और इसी तरह स्ट्रेटम 15 तक। स्ट्रेटम संख्या जितनी अधिक होगी, सटीकता उतनी ही कम होगी — प्रत्येक स्तर थोड़ा विलंब और त्रुटि जोड़ता है। स्ट्रेटम 16 का मतलब है कि समय उपलब्ध नहीं है (सिंक्रनाइज़ नहीं)।

स्ट्रेटमविवरणसटीकता
Stratum 0परमाणु घड़ियाँ, GPS, रेडियो सिग्नलनैनोसेकंड
Stratum 1संदर्भ से जुड़े सर्वरमाइक्रोसेकंड
Stratum 2सार्वजनिक NTP सर्वर1–10 ms
Stratum 3संगठनों के स्थानीय सर्वर10–50 ms
Stratum 4+क्लाइंट उपकरण100 ms तक

स्ट्रेटम के अनुसार सर्वर चुनना

मोबाइल उपकरणों के लिए, स्ट्रेटम 2 सर्वर इष्टतम हैं — वे पर्याप्त संख्या में हैं और सटीकता और उपलब्धता के बीच अच्छा संतुलन प्रदान करते हैं। उदाहरण के लिए, pool.ntp.org दुनिया भर के हजारों सर्वरों का एक पूल है जो स्वचालित रूप से लोड वितरित करता है। Android अनुप्रयोगों के लिए, सीधे स्ट्रेटम 1 का उपयोग करने की अनुशंसा नहीं की जाती है: पहला, यह प्राथमिक सर्वरों पर अत्यधिक लोड बनाता है, और दूसरा, मोबाइल डिवाइस को केवल 10–50 ms सटीकता की आवश्यकता होती है, जो स्ट्रेटम 2 प्रदान करता है। कॉर्पोरेट नेटवर्क में, एक स्थानीय स्ट्रेटम 3-4 सर्वर स्थापित किया जाता है जो बाहरी स्ट्रेटम 2 के साथ सिंक्रनाइज़ होता है।

SNTP — NTP का सरलीकृत संस्करण

SNTP (Simple Network Time Protocol, RFC 4330) सीमित संसाधनों वाले उपकरणों के लिए NTP का एक सरलीकृत कार्यान्वयन है: माइक्रोकंट्रोलर, IoT सेंसर और मोबाइल एप्लिकेशन जिन्हें उच्च सटीकता की आवश्यकता नहीं है। पूर्ण NTP के विपरीत, SNTP कई सर्वरों की फ़िल्टरिंग नहीं करता, घड़ी ड्रिफ्ट का विश्लेषण नहीं करता, और जटिल PLL एल्गोरिदम का उपयोग नहीं करता। एक SNTP क्लाइंट अनुरोध भेजता है, प्रतिक्रिया प्राप्त करता है, और एक बार समय सेट करता है। नेटवर्क के आधार पर SNTP सटीकता 10–100 ms है — यह वित्तीय लेन-देन को छोड़कर, अधिकांश मोबाइल परिदृश्यों के लिए पर्याप्त है।

NTP के बजाय SNTP का उपयोग कब करें

SNTP Android अनुप्रयोगों के लिए उपयुक्त है जिन्हें निरंतर सिंक्रनाइज़ेशन बनाए रखे बिना बस सर्वर से वर्तमान समय प्राप्त करने की आवश्यकता होती है। उदाहरण के लिए, कोई एप्लिकेशन लॉगिन पर सर्वर समय दिखाता है या दिन में एक बार सिंक्रनाइज़ होता है। पूर्ण NTP सर्वर सिस्टम, दूरसंचार उपकरण, वित्तीय प्लेटफ़ॉर्म और वितरित डेटाबेस के लिए आवश्यक है जहाँ निरंतर सटीकता और ड्रिफ्ट निगरानी महत्वपूर्ण है। मोबाइल विकास के लिए, SNTP पर्याप्त है — अंतर्निहित Android समय सेवा Google सर्वरों के साथ आवधिक सिंक्रनाइज़ेशन के लिए इसका उपयोग करती है।

Android में NTP का कार्यान्वयन

Android अनुप्रयोगों में, NTP के माध्यम से सटीक समय प्राप्त करना तब आवश्यक होता है जब सिस्टम समय को उपयोगकर्ता द्वारा बदला जा सकता है या नेटवर्क की कमी के कारण वास्तविक समय से भिन्न होता है। Android में कोई अंतर्निहित सार्वजनिक NTP क्लाइंट नहीं है — डेवलपर Apache Commons Net SntpClient लाइब्रेरी या तृतीय-पक्ष समाधान का उपयोग करते हैं। 2022 में, Google ने Android API (Google Play Services के माध्यम से) में एक आंतरिक SntpClient वर्ग जोड़ा, लेकिन इसे कॉन्फ़िगरेशन की आवश्यकता है और सामान्य उपयोग के लिए दस्तावेज़ित नहीं है। एक वैकल्पिक दृष्टिकोण REST API के माध्यम से समय का अनुरोध करना है जो प्रतिक्रिया निकाय में सर्वर टाइमस्टैम्प लौटाता है।

SNTP क्लाइंट कार्यान्वयन का उदाहरण

Android पर एक बुनियादी SNTP कार्यान्वयन में NTP सर्वर (जैसे pool.ntp.org) पर UDP पैकेट भेजना, प्रतिक्रिया को पार्स करना और ट्रांसमिट टाइमस्टैम्प (T3) निकालना शामिल है। कोड को नेटवर्क टाइमआउट और पार्सिंग त्रुटियों को संभालना चाहिए — वास्तविक एप्लिकेशन में, यह ऑपरेशन बैकग्राउंड थ्रेड पर किया जाता है, और परिणाम अगले सिंक्रनाइज़ेशन तक कैश किया जाता है। Apache Commons Net लाइब्रेरी एक तैयार NTPUDPClient वर्ग प्रदान करती है जिसे build.gradle में निर्भरता जोड़कर न्यूनतम संशोधनों के साथ Android में उपयोग किया जा सकता है।

kotlin
// Get NTP time via Apache Commons Net
fun getNtpTime(server: String = "pool.ntp.org"): Date? {
    return try {
        val client = NTPUDPClient()
        client.setDefaultTimeout(5000)
        val info = client.getTime(InetAddress.getByName(server))
        client.close()
        Date(info.getMessage().getTransmitTimeStamp().getTime())
    } catch (e: Exception) {
        null
    }
}

NTP सटीकता और प्रभावित करने वाले कारक

NTP की सटीकता कई कारकों पर निर्भर करती है: नेटवर्क विलंब (RTT), चैनल स्थिरता, सर्वर लोड और स्थानीय घड़ी जनरेटर की गुणवत्ता। 1 ms से कम विलंब वाले स्थानीय नेटवर्क पर, NTP 0.1–1 ms की सटीकता प्राप्त करता है। 10–50 ms विलंब वाले इंटरनेट पर, सटीकता 10–50 ms तक गिर जाती है। एकल सटीकता से अधिक महत्वपूर्ण है स्थिरता: यदि विलंब भिन्न होता है (jitter), तो NTP को विश्वसनीय ऑफ़सेट की गणना करने के लिए अधिक समय की आवश्यकता होती है। मोबाइल उपकरणों के लिए, अस्थिरता का मुख्य कारक Wi-Fi और मोबाइल नेटवर्क के बीच स्विचिंग है, जहाँ विलंब परिमाण के क्रम से बदल सकता है।

मोबाइल विकास के लिए सिफारिशें

सटीक समय के प्रति संवेदनशील Android अनुप्रयोगों के लिए, यह अनुशंसित है: कई NTP सर्वरों का उपयोग करें और सबसे कम विलंब वाले का चयन करें; नेटवर्क स्विच के दौरान सिंक्रनाइज़ेशन से बचें; अंतिम प्राप्त समय को कैश करें और इसे System.currentTimeMillis के माध्यम से समायोजित करें। गेम और रीयल-टाइम अनुप्रयोगों के लिए (NTP नेटवर्क विलंबता के कारण यहाँ उपयुक्त नहीं है) — प्रत्येक अनुरोध में पारित सर्वर समय का उपयोग करें। वित्तीय अनुप्रयोगों में, हमेशा सर्वर के साथ अंतर की जाँच करें — यदि अंतर 5 सेकंड से अधिक है, तो ऑपरेशन को संभावित रूप से असुरक्षित के रूप में ब्लॉक करें।

अक्सर पूछे जाने वाले प्रश्न

NTP क्या है और इसकी आवश्यकता क्यों है?

NTP (Network Time Protocol) इंटरनेट पर घड़ी सिंक्रनाइज़ेशन प्रोटोकॉल है। इसकी आवश्यकता UTC संदर्भ के साथ उपकरणों पर समय को संरेखित करने के लिए है। NTP के बिना, क्वार्ट्ज ऑसिलेटर ड्रिफ्ट के कारण कंप्यूटर घड़ियाँ प्रतिदिन सेकंड बढ़ जाती हैं, जो वित्तीय लेन-देन, लॉगिंग और सुरक्षा के लिए महत्वपूर्ण है।

NTP पदानुक्रम कैसे संरचित है?

NTP सिस्टम स्तरों — स्ट्रेटा का उपयोग करता है: स्ट्रेटम 0 (परमाणु घड़ियाँ और GPS), स्ट्रेटम 1 (संदर्भ से जुड़े सर्वर), स्ट्रेटम 2 (सार्वजनिक NTP सर्वर), स्ट्रेटम 3–4 (स्थानीय सर्वर), स्ट्रेटम 5–15 (क्लाइंट)। स्ट्रेटम जितना अधिक होगा, संभावित त्रुटि उतनी ही अधिक होगी। स्ट्रेटम 16 का मतलब है कि समय सिंक्रनाइज़ नहीं है।

NTP, SNTP से कैसे भिन्न है?

SNTP सीमित संसाधनों वाले उपकरणों के लिए NTP का एक सरलीकृत संस्करण है। यह सर्वरों को फ़िल्टर नहीं करता, घड़ी ड्रिफ्ट का विश्लेषण नहीं करता, या PLL का उपयोग नहीं करता। SNTP मोबाइल अनुप्रयोगों के लिए उपयुक्त है जहाँ 10–100 ms सटीकता पर्याप्त है। पूर्ण NTP सर्वर, दूरसंचार उपकरण और फिनटेक सिस्टम के लिए आवश्यक है।

Android में NTP के माध्यम से सटीक समय कैसे प्राप्त करें?

Apache Commons Net लाइब्रेरी का उपयोग NTPUDPClient वर्ग के साथ करें। pool.ntp.org पर अनुरोध भेजें, प्रतिक्रिया प्राप्त करें और ट्रांसमिट टाइमस्टैम्प निकालें। वैकल्पिक रूप से, अपने सर्वर के REST API का उपयोग करें, जो Date हेडर या प्रतिक्रिया निकाय में Unix Timestamp प्रारूप में सर्वर समय लौटाता है।

मोबाइल उपकरणों पर समय सिंक्रनाइज़ेशन क्यों महत्वपूर्ण है?

NTP सिंक्रनाइज़ेशन के बिना, डिवाइस पर सिस्टम समय मिनटों या घंटों तक भिन्न हो सकता है। यह पुश सूचनाओं, SSL प्रमाणपत्र सत्यापन, लॉग, कार्य शेड्यूलर और क्रिप्टोग्राफ़िक प्रोटोकॉल को बाधित करता है। वित्तीय अनुप्रयोगों में, 5 सेकंड से अधिक का अंतर सुरक्षा खतरा माना जाता है।

सारांश

  • NTP — एक नेटवर्क समय सिंक्रनाइज़ेशन प्रोटोकॉल जो स्ट्रेटम 0–16 पदानुक्रम के माध्यम से 1 ms (LAN) से 50 ms (WAN) तक सटीकता प्रदान करता है
  • ड्रिफ्ट सुधार — NTP केवल समय सेट नहीं करता, बल्कि PLL के माध्यम से घड़ी आवृत्ति को समायोजित करता है, सिंक्रनाइज़ेशन के बीच घंटों तक सटीकता बनाए रखता है
  • स्ट्रेटम पदानुक्रम — प्रत्येक स्तर (स्ट्रेटम) संभावित त्रुटि जोड़ता है; मोबाइल उपकरणों के लिए, pool.ntp.org जैसे स्ट्रेटम 2 सर्वर इष्टतम हैं
  • SNTP — IoT और Android के लिए NTP का सरलीकृत संस्करण, बिना फ़िल्टरिंग और PLL के; 10–100 ms सटीकता अधिकांश परिदृश्यों के लिए पर्याप्त है
  • Android में कार्यान्वयन — Apache Commons Net (NTPUDPClient) या सर्वर टाइमस्टैम्प के साथ REST API के माध्यम से; प्लेटफ़ॉर्म पर कोई अंतर्निहित सार्वजनिक NTP क्लाइंट नहीं है
  • सुरक्षा — NTPv4 प्रतिक्रिया स्पूफिंग से सुरक्षा के लिए Network Time Security (NTS) का समर्थन करता है; वित्तीय और उद्यम अनुप्रयोगों के लिए महत्वपूर्ण
  • सटीकता कारक — RTT, jitter, नेटवर्क स्विचिंग; मोबाइल ऐप्स को 10–50 ms सटीकता की आवश्यकता होती है, लेकिन महत्वपूर्ण संचालन के लिए सर्वर के साथ अंतर की जाँच आवश्यक है

हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे

IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।

परियोजना पर चर्चा करें

यह भी पढ़ें