Ano ang oras ng server? Bakit iba ito sa orasan mo
Kapag sinabing magbubukas ang concert tickets "eksaktong 8 PM", kaninong 8 PM iyon? Hindi ng telepono o computer mo, kundi 8 PM ng server ng ticketing site. Saka lang gumagana ang booking button kapag umabot na sa 8 ang orasan ng server, at ang request na dumating nang mas maaga ay sasagutin ng "hindi pa bukas ang benta".
Ang problema, hindi kailanman eksaktong nagtutugma ang orasan ng server at ng device mo. Karaniwang ilang sampu hanggang ilang daang millisecond ang pagitan (ang 1 millisecond ay 1/1000 ng segundo), at sa server na hindi maayos ang pamamahala, puwedeng ilang segundo pa. Sa sikat na palabas, nauubos ang magagandang upuan sa isa o dalawang segundo, kaya ang maliit na pagitang ito ay puwedeng magpasya ng resulta.
Bakit nagkakaiba ang mga orasan
Binibilang ng computer at telepono ang oras gamit ang maliit na quartz oscillator. Dahil sa temperatura at pagkakaiba ng piyesa, bahagya itong bumibilis o bumabagal. Kahit 0.1 segundo lang ang lihis kada araw, pagkalipas ng ilang araw ay kapansin-pansin na ito.
Kaya karamihan sa mga device ay regular na nag-a-adjust ng oras sa internet ayon sa isang standard time server, gamit ang NTP (Network Time Protocol). Pero magkakaiba ang dalas ng pag-adjust at ang ginagamit na standard depende sa device at kumpanya.
- Telepono: nag-a-adjust gamit ang network ng carrier o time server ng manufacturer.
- Computer: nag-a-adjust ayon sa iskedyul ng operating system, minsan isang beses lang sa ilang araw.
- Ticketing server: nag-a-adjust ayon sa paraan ng pamamahala ng kumpanyang iyon.
Natural lang na magkaiba ang tatlong orasang inaayos sa magkakaibang oras at magkakaibang batayan. Kung ilalapit mo ang telepono sa computer, makikita mong bahagyang magkaiba ang sandaling lumilipat ang segundo, dahil din dito.
Pangalawang salik: network delay
Hindi lang pagkakaiba ng orasan. May oras din mula sa pagpindot mo hanggang makarating ang request sa server. Iyan ang latency, at ang kabuuang oras ng pagpunta ng request at pagbalik ng sagot ay tinatawag na round-trip time (RTT).
Sa wired na koneksyon sa loob ng Korea papunta sa server sa Korea, karaniwang ilang sampung millisecond ang round trip. Sa mobile data o masikip na Wi-Fi, mas matagal at mas pabago-bago ito. Puwedeng ituring na kalahati ng round trip ang oras para makarating ang request sa server.
Sa madaling salita, para pumindot nang eksakto sa takdang oras, dalawang bagay ang kailangan mong malaman: ① gaano kabilis o kabagal ang orasan ng server kumpara sa orasan mo, at ② gaano katagal bago makarating sa server ang request mo. Sinusukat ng server time site ang dalawang ito at sinasabi kung "anong oras na ngayon ayon sa server".
Paano sinusukat ang oras ng server
Kapag binuksan mo ang isang website, nagpapadala ang server ng ilang impormasyon kasama ng page sa header ng sagot. Ang field na Date ay naglalaman ng kasalukuyang oras ayon sa server. Sa pinakasimple, ang pagsukat ng oras ng server ay pagbasa sa value na ito.
Pero ang Date ay tumpak lang hanggang segundo. Sinasabi lang nitong "20:00:03" at hindi kung 3.1 o 3.9 segundo. Kung gagamitin ito nang direkta, puwedeng magkamali nang hanggang 1 segundo.
Hulihin ang sandaling nagbabago ang segundo
Ang paraan para malampasan ito ay magtanong nang paulit-ulit. Itala nang eksakto kung kailan ipinadala ang request at kailan dumating ang sagot, at ihambing sa segundong ibinalik ng server; makakakuha ka ng saklaw kung saan siguradong naroon ang orasan ng server. Kung magpapadala ka ng mga request sa bahagyang magkakaibang oras, kikitid ang pinagsasaluhang bahagi ng mga saklaw hanggang matukoy ang sandaling lumilipat ang segundo ng server sa loob ng ilang sampung millisecond.
Nagpapadala ang Chochim ng 10 ganitong request sa bawat ticketing site, ginagamit ang gitna ng pinagsasaluhang saklaw bilang posisyon ng orasan ng server, at ipinapakita ang kalahati ng lapad nito bilang margin of error (±). Mas maliit ang margin, mas mapagkakatiwalaan ang value.
Inaayos din ang device mo
Nangyayari ang pagsukat sa server ng Chochim, kaya hiwalay din naming sinusukat ang pagkakaiba ng device mo at ng server ng Chochim. Pagbukas mo ng page, ilang maikling signal ang ipinapadala at ibinabalik, at inaayos namin ang orasan ng device mo batay sa pinakamabilis na round trip. Dahil dito, ang oras sa screen ay sumusunod sa orasan ng ticketing server, hindi ng device mo.
Paalala sa pagbasa ng resulta
- Kung malaki ang margin, sukatin ulit. Baka pansamantalang hindi matatag ang koneksyon. Mas matatag kadalasan ang wired kaysa Wi-Fi, at ang Wi-Fi kaysa mobile data.
- Suriin ulit bago magbukas ang benta. Patuloy ding lumilihis ang orasan ng server, at minsan inaayos ito ng administrator. Mainam na sukatin ulit mga 10 minuto bago magbukas.
- May mga site na hindi masusukat nang tumpak. May mga site na may security server o cache sa harap, at ibang orasan ang ipinapakita kumpara sa tunay na booking server. Sa ganoong kaso, gamitin lang bilang sanggunian.
- Sa site na may pila, hindi lang oras ang mahalaga. Ibinibigay ang numero sa pila ayon sa pagkakasunod ng pagdating sa server, kaya pinakamahalaga ang pumasok sa tamang sandali at isang beses lang.
Kaya kailan dapat pumindot?
Kailangang makarating ang request mo sa server sa eksaktong oras, kaya sa teorya, pumindot sa "takdang oras bawas ang one-way delay". Pero kung masyadong maaga itong dumating, "hindi pa bukas" ang sagot at kailangang pumindot ulit, na lalong nakakaubos ng oras. Kaya inirerekomenda ng Chochim na sundan ang takdang oras ng server pero pumindot nang bahagyang huli, 0.1–0.3 segundo. Nasa artikulong Pagbili ng concert tickets mula simula hanggang dulo ang buong estratehiya.