Protokol Masa Rangkaian (bahasa Inggeris: Network Time Protocol , NTP) merupakan protokol bagi penyelarasan jam sistem komputer melalui pertukaran-paket, rangkaian data pendam-pelbagai. NTP menggunakan Protokol Datagram Pengguna (User Datagram Protocol, UDP) melalui port TCP dan UDP 123 sebagai lapisan pengangkutannya. Ia direka khusus bagi menentang kesan pendam pelbagai dengan menggunakan penimbal getaran ("jitter buffer"). NTP turut merujuk kepada rujukan perlaksanaan perisian yang dibekalkan oleh NTP Public Services Project.
NTP merupakan protokol Internet tertua yang masih digunakan (sejak sebelum 1985). NTP pada asalnya direka oleh Dave Mills dari Universiti Delaware, yang mengekalkannya, bersama sekumpulan sukarelawan.
NTP tidak berkait dengan protokol DAYTIME (RFC 867) dan protokol TIME (RFC 868) yang lebih ringkas.
Suit protokol Internet |
---|
Lapisan Penggunaan |
Lapisan Pengangkutan |
Lapisan Internet |
Lapisan Pautan |
Gambaran Keseluruhan
[sunting | sunting sumber]NTP menggunakan algoritma Marzullo, dan memasukkan sokongan bagi ciri-ciri seperti saat lompat ("leap second"). Rekaan rangkaian ini pada versi ke-4nya (NTPv4) biasanya mampu mengekalkan masa sehingga 10 millisaat (1/100 s) melalui Internet Awam, dan mampu mencapai kejituan sehingga 200 mikrosaat (1/5000 s) atau lebih baik dalam rangkaian kawasan setempat di bawah keadaan sesuai.
NTP membekalkan Waktu Universal Selaras. Tiada maklumat mengenai zon waktu atau waktu jimat siang dipancarkan kerana maklumat ini di luar bidangnya dan perlu didapati secara berasingan. Di LAN berasingan, NTP pada dasarnya boleh digunakan bagi menyebar skala masa berbeza (zon waktu tempatan, misalnya), namun kaedah ini adalah luar biasa.
Pada Jun 2010, perlaksanaan rujukan semasa adalah versi 4 (NTPv4), yang merupakan cadangan piwaian sebagaimana didokumen dalam RFC (RFC 5905).
Perlaksanaan NTP yang kurang rumit, menggunakan protokol yang sama tetapi tanpa memerlukan penyimpanan keadaan melalui tempoh masa berpanjangan, dikenali sebagai Protokol Masa Rangkaian Mudah (Simple Network Time Protocol, SNTP). Ia digunakan dalam sesetengah peranti terbenam dan dalam applikasi di mana penyelarasan jangka masa amat tepat tidak diperlukan (RFC 1361, RFC 1769, RFC 2030, RFC 4330 and RFC 5905).
Perlaksanaan aturcara NTP
[sunting | sunting sumber]Unix
[sunting | sunting sumber]Bagi sistem Unix moden, perlaksanaan pelanggan NTP sebagai proses Daemon yang dilaksana secara berterusan di ruang pengguna (ntpd). Bagaimanapun, oleh kerana kesensitifan pada masa, ia adalah penting bagi memiliki jam NTP piwaian perlaksanaan sistem gelung terkunci fasa di ruang kernel. Kesemua versi Linux, BSD, Mac OS X dan Solaris terkini dilaksanakan dalam bentuk ini.
Microsoft Windows
[sunting | sunting sumber]Kesemua versi Microsoft Windows sejak Windows 2000 mengandungi Windows Time Service,[1] yang memiliki keupayaan untuk menyelaras jam komputer dengan pelayan NTP. Bagaimanapun, versi dalam Windows 2000 hanya melaksanakan NTP Mudah, dan melanggar beberapa aspek piwaian NTP versi 3.[2] Bermula dengan Windows Server 2003, dokumentasi Microsoft menyatakan bahawa Windows Time Service melaksanakan protokol NTPv3 penuh[3] sebagaimana ditetapkan dalam RFC 1305.
Bagaimanapun, Windows Time Service tidak mampu mengekalkan waktu sistem lebih tepat dari ruang 1-2 saat. Microsoft "tidak menjamin dan tidak menyokong ketepatan perkhidmatan W32Time antara nod di rangkaian. Perkhidmatan W32Time bukanlah penyelesaian NTP berciri penuh yang memenuhi keperluan applikasi sensitif masa."[4]
Rujukan bagi perlaksanaan NTP boleh digunakan pada sistem Microsoft Window.[5]
Lapisan Jam
[sunting | sunting sumber]NTP menggunakan sistem berhierarki, separa-berlapis tahap sumber jam. Setiap tahap dalam hierarki ini digelar stratum dan diberikan nombor lapisan bermula dengan 0 (sifar) di puncak. Tahap stratum mentakrifkan jaraknya dari jam rujukan dan wujud bagi menghalang kebergantungan siklik dalam hierarki. Adalah penting menyedari bahawa stratum bukanlah petunjuk kualiti atau keutuhan, adalah biasa mendapati sumber masa "stratum 3" yang berkualiti lebih tinggi berbanding sumber waktu "stratum 2". Pengtakrifan "stratum" juga berbeza dengan tanggapan lapisan jam yang digunakan dalam sistem telekomunikasi.
- Stratum 0
- Ini adalah peranti seperti jam atom (sesium, rubidium) , jam GPS atau jam radio yang lain. Peranti Stratum-0 secara tradisi tidak disambung kepada rangkaian; sebaliknya ia disambung tempatan kepada komputer(contohnya., melalui sambungan RS-232 menggunakan isyarat Denyutan sesaat.
- Stratum 1
- Ini merupakan komputer disambungkan kepada peranti Stratum 0. Biasanya ia bertindak sebagai pelayan bagi pemasaan permohonan dari pelayan Stratum 2 melalui NTP. Komputer ini juga dikenali sebagai pelayan masa.
- Stratum 2
- Ini merupakan komputer yang menghantar permohonan NTP kepada pelayan Stratum 1. Biasanya komputer Stratum 2 akan merujuk kepada beberapa pelayan Stratum 1 dan menggunakan algoritma NTP untuk mendapatkan contoh data terbaik, meninggalkan sebarang pelayan Stratum 1 yang jelas silap. Komputer Stratum 2 akan will setara dengan komputer Stratum 2 lain bagi memberikan masa yang lebih stabil dan tahan bagi kesemua peranti dalam kumpulan setara. Komputer Stratum 2 biasanya bertindak sebagai pelayan bagi permohonan Stratum 3 NTP.
- Stratum 3
- Komputer ini menggunakan fungsi NTP yang sama bagi setara dan contoh data seperti Stratum 2, dan diri mereka juga mampu bertindak sebagai pelayan bagi lapisan lebih rendah. NTP (bergantung kepada versi protokol NTP yang digunakan) menyokong sehingga 256 lapisan.
Kebimbangan keselamatan
[sunting | sunting sumber]Hanya beberapa masalah keselamatan telah dikenalpasti dalam rujukan perlaksanaan pengkalan kod NTP dalam sejarah 25+ tahunnya.[6][7]
NTP sendiri telah melalui beberapa semakan dan ia sendiri telah di semak dan kajian semula sepanjang sejarahnya, dan tiada kelemahan keselamatan pernah dilaporkan dijejak langsung kepada spesifikasi NTP.[8]
Pengkalan kod semasa bagi rujukan perlaksanaan sedang melalui audit keselamatan dari beberapa sumber untuk beberapa tahun kini, dan tidak terdapat kelemahan berisiko tinggi dalam aturcara yang dibebaskan kini.[9]
Terdapat bahaya yang dibayangkan dengan pengiraan aliran masa NTP4 64-bit kini sepanjang era. Ia mungkin menghadapai set keadaan timbul pada 2036 yang mungkin menyebabkan masa terlebih laksana atau gelung sekitar peristiwa.
Rujukan
[sunting | sunting sumber]- ^ "Windows Time Service Technical Reference". Diarkibkan daripada yang asal pada 2007-06-13. Dicapai pada 2010-08-09.
- ^ Windows Time Service page at NTP.org
- ^ "Windows Time Service Time Protocols". Diarkibkan daripada yang asal pada 2008-04-17. Dicapai pada 2010-08-09.
- ^ Support boundary to configure the Windows Time service for high accuracy environments
- ^ "doc.ntp.org: NTP 4.x for Windows NT". Diarkibkan daripada yang asal pada 2011-07-16. Dicapai pada 2010-08-09.
- ^ http://support.ntp.org/security
- ^ results returned by a search on "Network Time Protocol"[pautan mati kekal] at http://cert.org]
- ^ Lihat RFC 778, RFC 891, RFC 956, RFC 958, RFC 1305, dan spesifikasi NTPv4 dan perhati tiada kaji semula akibat masalah keselamatan protokol. Samajuga, lihat keputusan oleh pencarian di "Network Time Protocol" at http://cert.org]
- ^ http://support.ntp.org/Main/CodeAudit
Bacaan lanjut
[sunting | sunting sumber]- Mills, David L. Computer Network Time Synchronization: The Network Time Protocol. Taylor & Francis / CRC Press. ISBN 0849358051.
Pautan luar
[sunting | sunting sumber]- NTP Public Services Project This is the home for the NTP (Network Time Protocol) Public Services Project which provides public support for the NTP Project and the IETF NTP Working Group. Also a Wiki with lists of NTP servers.
- NTP Overview and configuration options
- IETF NTP working group
- David Mills' NTP project page
- NTP version 4 Release Notes
- Time and NTP paper
- NTP Survey 2005 Diarkibkan 2019-05-04 di Wayback Machine
- Pool of public NTP Time Servers
- For a comprehensive list of NTP Servers
- HTTP Time Protocol
- NetTime client
- Alat Ujian NTP Server Atas Talian