<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>Vasilios Syrakis - sre</title>
    <subtitle>A simple blog made with Zola and Duckquill</subtitle>
    <link rel="self" type="application/atom+xml" href="https://vsyrakis.dev/tags/sre/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://vsyrakis.dev"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-07-07T00:00:00+00:00</updated>
    <id>https://vsyrakis.dev/tags/sre/atom.xml</id>
    <entry xml:lang="en">
        <title>Profit or Poverty: Time is Money (and why NTP isn&#x27;t enough)</title>
        <published>2026-07-07T00:00:00+00:00</published>
        <updated>2026-07-07T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Vasilios Syrakis
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://vsyrakis.dev/blog/draft-precision-time-protocol/"/>
        <id>https://vsyrakis.dev/blog/draft-precision-time-protocol/</id>
        
        <content type="html" xml:base="https://vsyrakis.dev/blog/draft-precision-time-protocol/">&lt;p&gt;In trading, knowing exactly &lt;em&gt;when&lt;&#x2F;em&gt; an event occurred is just as critical as
knowing &lt;em&gt;what&lt;&#x2F;em&gt; occurred. Whether you’re correlating market data to tune a
strategy, or proving to regulators (under frameworks like MiFID II) that your
trades executed fairly, your timestamps need to be flawless.&lt;&#x2F;p&gt;
&lt;p&gt;For most of the tech industry, time synchronization is handled by &lt;strong&gt;[BLANK 1:
The standard internet protocol for clock synchronization]&lt;&#x2F;strong&gt;, which is accurate
to a few milliseconds. In HFT, being off by a millisecond means you missed the
trade completely. We need sub-microsecond, or even nanosecond accuracy.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;enter-blank-2-the-ieee-1588-standard-for-time-synchronization&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#enter-blank-2-the-ieee-1588-standard-for-time-synchronization&quot; aria-label=&quot;Anchor link for: enter-blank-2-the-ieee-1588-standard-for-time-synchronization&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
Enter [BLANK 2: The IEEE 1588 Standard for time synchronization]&lt;&#x2F;h2&gt;
&lt;p&gt;To achieve this extreme level of accuracy across a datacenter, HFT networks
rely on a different protocol entirely.&lt;&#x2F;p&gt;
&lt;p&gt;Unlike the standard protocol, which largely operates in software, this
specialized protocol is heavily reliant on hardware.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-hierarchy-of-clocks&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-hierarchy-of-clocks&quot; aria-label=&quot;Anchor link for: the-hierarchy-of-clocks&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
The Hierarchy of Clocks&lt;&#x2F;h2&gt;
&lt;p&gt;A specialized time network operates in a strict hierarchy: At the very top is
the &lt;strong&gt;[BLANK 3: The primary time source, usually receiving time via GPS
antenna]&lt;&#x2F;strong&gt;. This appliance dictates the time for the entire network.&lt;&#x2F;p&gt;
&lt;p&gt;As the time signals travel through network switches, the switches themselves
must account for the time it takes the packet to traverse their internal
circuitry. They do this by acting as a &lt;strong&gt;[BLANK 4: A switch that intercepts
time packets, updates the time, and forwards them]&lt;&#x2F;strong&gt; or a &lt;strong&gt;[BLANK 5: A switch
that simply calculates its own residency time and adds it to a correction field
in the packet]&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;hardware-timestamping&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#hardware-timestamping&quot; aria-label=&quot;Anchor link for: hardware-timestamping&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
Hardware Timestamping&lt;&#x2F;h2&gt;
&lt;p&gt;The real magic happens at the server level. If we rely on the Linux kernel to
tell us when a packet arrived, we introduce jitter (as discussed in previous
posts).&lt;&#x2F;p&gt;
&lt;p&gt;Instead, SREs configure the Network Interface Cards (NICs) to perform &lt;strong&gt;[BLANK
6: The act of recording the time at the exact moment the packet hits the
physical layer of the NIC]&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;By stamping the packet exactly as it arrives at the physical port (the PHY or
MAC layer), we eliminate the variable delays caused by PCIe bus transfers,
kernel interrupts, and thread scheduling.&lt;&#x2F;p&gt;
&lt;p&gt;Building a network capable of distributing this kind of time accuracy is a core
competency for any trading firm, ensuring that when they measure latency, they
are measuring the code, not the clock.&lt;&#x2F;p&gt;
</content>
        
    </entry>
</feed>
