Protokol Masa Rangkaian

Protokol Masa Rangkaian (, 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.

Gambaran Keseluruhan 
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

Unix 
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 
Kesemua versi Microsoft Windows sejak Windows 2000 mengandungi Windows Time Service, 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. Bermula dengan Windows Server 2003, dokumentasi Microsoft menyatakan bahawa Windows Time Service melaksanakan protokol NTPv3 penuh 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."

Rujukan bagi perlaksanaan NTP boleh digunakan pada sistem Microsoft Window.

Lapisan Jam 

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 
Hanya beberapa masalah keselamatan telah dikenalpasti dalam rujukan perlaksanaan pengkalan kod NTP dalam sejarah 25+ tahunnya.

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.

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.

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

Bacaan lanjut

Pautan luar 

 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 
 Pool of public NTP Time Servers
 For a comprehensive list of NTP Servers
 HTTP Time Protocol
 NetTime client
 Alat Ujian NTP Server Atas Talian

Piawaian Internet
Protokol Internet