Networks, Hardware and Trading Infrastructure · Technology
12The Asia-Pacific Map
India’s securities regulator received complaints in 2015 that the National Stock Exchange’s colocation facility sent its tick-by-tick data over TCP, member by member, in the order in which members had connected, so that “the first one to connect to the lowest load server would get advantage in terms of receiving the data faster than others”. Its 2019 order described the design in detail and directed the exchange to disgorge 624.89 crore rupees with interest; the appeals tribunal set the disgorgement aside, the regulator appealed, and on 18 September 2026 the Supreme Court allowed a settlement of about 1 492 crore rupees that closed the case. No cable was shorter and no server was faster: the advantage was built into the order in which one computer sent the same message to many.
This chapter maps the Asia-Pacific venues (Tokyo, Hong Kong, Singapore, Sydney, Mumbai) with the method of chapters 10 and 11, and then studies the case: what sequential dissemination does to the time at which each member sees a tick, what a randomiser and a second server change, and why multicast ends the problem. Distances in this region are thousands of kilometres, and several venues do not publish the address of their building, so the site table carries its precision with it.
12.1 Tokyo
JPX runs its co-location in what it calls the JPX Primary Site, where trading participants, information vendors and independent software vendors install their equipment next to the trading systems of the Tokyo Stock Exchange and the Osaka Exchange. JPX does not publish the building’s address; its network, arrownet, reaches the same trading systems from access points outside the site. The site table therefore places Tokyo at city level, which is an error of kilometres (tens of microseconds) and irrelevant at the scale of this map: Tokyo is from Hong Kong, of light in vacuum and in straight fibre.
As of September 2026 — Where the Asia-Pacific venues match
- Tokyo: JPX’s Primary Site hosts co-location next to the TSE and OSE trading systems; the building is not published (city level).
- Hong Kong: HKEX’s data centre in Tseung Kwan O Industrial Estate (1 Chun Ying Street) hosts its co-location.
- Singapore: SGX is moving its primary data centre to a new building, which members may use for co-location, together with its new trading platform, Iris-ST; its secondary data centre is unchanged; mandatory conformance testing runs from January to April 2027 (city level).
- Sydney: ASX runs its primary markets and post-trade platforms from the Australian Liquidity Centre, at Gore Hill, since February 2012.
- Mumbai: NSE’s co-location is at its Exchange Plaza site in the Bandra Kurla Complex, with over 200 members on racks and about 100 more through co-location as a service.
12.2 Hong Kong and Singapore
HKEX offers co-location, which it calls hosting services, in its own data centre in the Tseung Kwan O Industrial Estate, on the eastern side of Hong Kong. SGX is in the middle of a larger move. Its questions and answers on Iris-ST, its new trading platform, say that the platform will go live in a newly built primary data centre that members can also use for co-location, with the trading engine in a “2+1” arrangement (a primary and a hot standby in the primary data centre, a third instance at the secondary site). They also answer a question this chapter is about: from co-location, members will be able to receive the ITCH market data both over TCP and over multicast.
| From | To | Geodesic | Vacuum | Fibre |
| (km) | (ms) | (ms) | ||
| Tokyo | Hong Kong TKO | 2 880.3 | 9.61 | 14.05 |
| Hong Kong TKO | Singapore | 2 577.1 | 8.60 | 12.57 |
| Tokyo | Singapore | 5 311.0 | 17.72 | 25.90 |
| Singapore | Sydney ALC | 6 296.4 | 21.00 | 30.71 |
| Tokyo | Sydney ALC | 7 784.2 | 25.97 | 37.96 |
| Singapore | Mumbai BKC | 3 903.3 | 13.02 | 19.04 |
| Hong Kong TKO | Mumbai BKC | 4 317.3 | 14.40 | 21.05 |
| Tokyo | Mumbai BKC | 6 743.1 | 22.49 | 32.88 |
nw_asia.pair_rows().12.3 Sydney
ASX moved its equities trading platform into the Australian Liquidity Centre, a data centre at Gore Hill on Sydney’s North Shore, in February 2012. Its page states the two rules of chapter 9 in one sentence: every customer is given “identical length cross connects” to the trading platform wherever it sits in the building, and the building is carrier-neutral, so that its customers can bring their own networks. Sydney is the most isolated of the region’s centres: from Singapore ( in vacuum) and from Tokyo. A trading firm in Sydney competes with other firms in the same building for ASX’s own markets, and with nobody nearby for anything else.
fig_asia.py on firm.geomap.12.4 Mumbai and the colocation case
Definition 12.1 (Unicast dissemination)
Unicast dissemination is the distribution of market data by sending a separate copy of each message to each recipient, over a connection per recipient (typically TCP), so that one sender transmits the copies one after another.
NSE’s tick-by-tick feed, according to SEBI’s order, was disseminated over TCP from June 2010 in the futures and options segment, and multicast arrived only in April 2014 (November 2014 in the cash market). The order describes the design in two levels. A dissemination centre sent each batch of ticks to the distribution (POP) servers, one after another, in the order in which the servers had logged in that day. Each POP server ran three sender processes, called ports, and each port sent to its own list of members, one after another, in the order in which the members had logged in. A member who logged in first, on a port of a server that had logged in first, was first in both queues; a member on a lightly loaded server, such as a backup server meant for business continuity, had fewer members ahead of it.
Proposition 12.2 (Sequential unicast)
If the centre spends per copy to a server and a port spends per copy to a member (times a factor for a slower server ), the member at login rank () on a port of the server that ranks in the centre’s order receives a tick after
with a small random delay. With members per port, the median member waits about more than the first on the same port, whatever the network.
Proof. The centre’s copies leave one after another, so the -th server receives the tick after ; the port then sends copies before the -th member’s. The median rank on a port of members is about . ∎
Definition 12.3 (Dissemination fairness)
Dissemination fairness is the property of a market-data distribution that recipients in the same service receive each message at the same time, up to a spread that does not depend on who they are: measured by the spread of receive times for one message and by whether the order of recipients persists from one message to the next.
SEBI’s circular of May 2015 put the rule in regulatory form: exchanges must give co-located members “fair and equal access to facilities and data feeds”, must ensure that they “experience similar latency with respect to exchange provided infrastructure”, and must publish quarterly latency reports. The definition has two parts because the case had two. The spread says how much faster the first recipient is than the last. The persistence says whether it is always the same one: a random order with a large spread gives everyone a turn at being first; a fixed order gives one member every race.
def unicast_us(servers, c_centre=5.0, c_send=10.0, jitter=1.0, rng=None, shuffle=False):
"""Receive time of one tick: the centre's copy to each server in server order, then each
port's sends in login order. shuffle=True redraws both orders for this tick (a randomiser)."""
rng = rng or np.random.default_rng(0)
out = {}
order = list(range(len(servers)))
if shuffle:
rng.shuffle(order)
for q, i in enumerate(order):
s = servers[i]
at_server = (q + 1) * c_centre
for p, n in enumerate(s.ports):
ranks = rng.permutation(n) if shuffle else np.arange(n)
noise = _noise(rng, jitter, n)
for r in range(n):
slot = int(ranks[r])
out[Member(s.name, p, r)] = at_server + (slot + 1) * c_send * s.speed + noise[r]
return out
fig_asia.py, nw_asia.rank_curve().Figure 12.3 and Table 12.2 run the model with parameters chosen for illustration, not taken from the order. Under plain unicast, the first member receives a tick after and the median member after ; the order is the same tick after tick (a rank correlation of 1.00), so the member who was first on one tick beats the median member on every later one. A randomiser, which the order says NSE had developed in 2011 but not implemented in this feed’s dissemination, redraws the order for every tick: the spread does not change, but the rank correlation falls to 0.07. It still leaves the lightly loaded server: in the model the first member of a randomised tick is usually one of the secondary server’s six, and it beats the median member 88% of the time. Closing the secondary to normal traffic brings that to 51%, a coin toss; multicast shrinks the spread itself from about to the jitter.
| Design | First | Median | Spread | Rank | First beats |
| () | () | () | correlation | median | |
| Unicast, fixed login order | 16.0 | 65.6 | 107.7 | 1.00 | 100% |
| Unicast, randomised | 15.1 | 70.7 | 110.2 | 0.07 | 88% |
| Unicast, randomised, no secondary | 15.2 | 69.0 | 106.9 | 0.01 | 51% |
| Multicast | 10.0 | 10.7 | 8.4 | – | 50% |
nw_asia.scenarios(). out = {}
for name, kind, shuffle, topo in DESIGNS:
rng = np.random.default_rng(seed)
t0 = _tick(kind, shuffle, rng, topo)
a, b = _first_and_median(t0)
wins = [fd.race_win(_tick(kind, shuffle, rng, topo), a, b, n=200, seed=k) for k in range(ticks)]
stab = fd.rank_stability(topo, seed=seed, shuffle=shuffle, **PARAMS) if kind == "u" else None
out[name] = {**fd.fairness(t0), "stability": stab, "win_first": float(np.mean(wins))}
return out
As of September 2026 — The NSE co-location case
Complaints to SEBI in 2015; SEBI’s order of 30 April 2019 directing NSE to disgorge 624.89 crore rupees with interest at 12% a year from 1 April 2014; the Securities Appellate Tribunal’s later ruling setting the disgorgement aside, which SEBI appealed; SEBI’s acceptance in July 2026 of NSE’s proposals to settle the co-location and dark-fibre matters for about 1 492 crore rupees (about 1 224 crore for co-location); and the Supreme Court’s order of 18 September 2026 allowing the settlement and closing SEBI’s appeals.
The lesson for a trading firm is not only historical. Wherever a venue or a vendor distributes data over one connection per client (a TCP feed, a websocket stream in chapter 20, a cloud relay in chapter 16), the order of the copies is a latency that no cable can fix, and the questions of this section apply: in what order are the copies sent, does the order change, and who sits on the quieter server.
12.5 Onshore China and its restrictions
China’s securities regulator has regulated co-location as a question of fairness. Its Administrative Rules for Program Trading in the Securities Market, issued in May 2024 and in force from 8 October 2024, require an exchange that offers co-location to follow the principles of “safety, fairness and reasonableness” and to allocate the resources fairly, and brokers to keep trading fair between their clients; the exchanges’ accompanying notice singles out for monitoring accounts that reach 300 orders or cancellations a second, or 20 000 in a day. A consultation of April 2023 on trading-server co-location proposed that exchanges manage co-location in dedicated areas and keep the communication latency from those areas to the front-end processors of the core trading system consistent: the equal-cable rule of chapter 9, written as a latency requirement.
Remark 12.4 (What the map leaves out)
The chapter does not place the mainland Chinese exchanges’ buildings on the map: their co-location is reached through brokers, under the rules above, and the site table would carry only a city. Chapters 22 to 26 add venues by asset class, with the same rule: no row without a source, and a precision note when the source gives only a city.
Method 12.5 (Auditing a venue’s dissemination design)
- Find out how the feed is delivered in co-location: multicast, unicast (TCP), or both, as SGX will offer on its new platform.
- If unicast, ask in what order copies are sent (by login, by connection, randomised per message), how many recipients share a sender, and whether some servers carry fewer recipients.
- Measure: timestamp the same messages on several connections and servers (chapter 5), compute the spread and the rank correlation between messages.
- Compare with the venue’s published latency reports and fairness commitments; report a persistent order to the venue.
12.6 Tutorial: dissemination order
Goal. Extend the site table to Asia, then simulate unicast and multicast dissemination and measure their fairness. End state: Figures 12.1, 12.3 and 12.4 and Tables 12.1 and 12.2.
- Sites. Five rows in
data/networks/sites.csv, each with its precision in its name;nw_asia.pair_rows()computes Table 12.1. - Topology.
nw_asia.topology(m)builds four servers of three ports of members and a secondary server of three ports of two; the costs are inPARAMS. - One tick.
firm_dissem.unicast_us(Listing 12.1) andmulticast_usgive every member’s receive time;fairnesssummarises them. - Many ticks.
rank_stabilityandrace_winmeasure persistence and its value;scenarios()(Listing 12.2) fills Table 12.2.
What to change next. Give the secondary server the same load as the others; halve the per-copy cost; put 20 members on each port and check Proposition 12.2.
fig_asia.py.12.7 Build: the dissemination model
Purpose. A model of a venue’s market-data distribution, to audit a documented design (chapter 22) and to explain a measured spread between connections.
Interface. firm_dissem: Server(name, ports, speed), Member(server, port, rank), members, unicast_us(servers, c_centre, c_send, jitter, rng, shuffle), multicast_us, fairness, rank_stability, race_win.
Rules. Every cost is a parameter and every output is labelled a simulation; the model reproduces the documented order of sending, not a venue’s measured latency.
Acceptance tests. code/firm/dissem/tests/: receive times by hand for a small topology, multicast flat, a fixed order stable and a randomised one not, and the race probabilities at 0 and 50 microseconds.
Stretch. TCP’s own effects (a slow receiver’s window stalling its port, retransmissions); a switch that replicates multicast port by port.
Sources and further reading
- SEBI, Order in the matter of NSE colocation, 30 April 2019; SEBI circular CIR/MRD/DP/07/2015 on co-location and proximity hosting, 13 May 2015; Business Standard, 18 September 2026, on the Supreme Court’s order.
- JPX, connectivity services; HKEX, hosting services; SGX, Iris-ST FAQs (July 2026); ASX, Australian Liquidity Centre; NSE, co-location capacity release (2025).
- CSRC, Administrative Rules for Program Trading in the Securities Market (Trial), 2024, and the 2023 consultation on trading-server co-location (as summarised by JunHe).
12.8 Exercises
Exercise 12.1 ★
What is the one-way latency floor between Singapore and Sydney in vacuum and in fibre?
Solution
Solution of Exercise 12.1.
Over : in vacuum and in straight fibre, one way.
Exercise 12.2 ★
Using Proposition 12.2 with , how much later than the first member does the tenth member on the same port receive a tick?
Solution
Solution of Exercise 12.2.
Nine copies later: (105 against on the first server’s port, without jitter).
Exercise 12.3 ★
Why does a venue’s unpublished building address matter little for Tokyo–Hong Kong, and a great deal inside a data centre?
Solution
Solution of Exercise 12.3.
Between Tokyo and Hong Kong the floor is ; placing Tokyo within its city moves it by tens of microseconds, under 1%. Inside a data centre the competition is over nanoseconds to microseconds, so a building’s exact position, and within it the cable lengths, decide the race.
Exercise 12.4 ★★
A randomiser redraws the order of copies for every tick. Why does it not reduce the spread, and what does it change?
Solution
Solution of Exercise 12.4.
The sender still sends one copy after another at the same cost, so the first and last copies are as far apart as before; what changes is who receives which copy. A fixed order gives the same member the first copy on every tick; a random one gives each member the first copy on some ticks and the last on others, so no one has a persistent advantage (rank correlation near zero).
Exercise 12.5 ★★
In the model, why does the first member of a randomised tick usually sit on the secondary server?
Solution
Solution of Exercise 12.5.
Its ports have two members each instead of ten, so even in last place in the centre’s order its members receive the tick after to , that is 35 to , ahead of most members of busy servers whatever the shuffle. A randomiser removes the advantage of logging in first, not the advantage of being on a quieter server: SEBI’s order treats the secondary servers as a separate issue for that reason.
Exercise 12.6 ★★
SGX will offer ITCH over both TCP and multicast in co-location. Which would you use for a latency-sensitive strategy, and what would you keep the other for?
Solution
Solution of Exercise 12.6.
Multicast for the strategy: every co-located receiver gets the same copy at the same time, up to the switches’ replication and its own cable. TCP for recovery and for places where multicast does not reach (a disaster-recovery site, a remote office); the FAQs say the secondary data centre’s engine is reached over TCP.
Exercise 12.7 ★★★
Coding. Compute the first member’s advantage over the median member for 2, 5, 10 and 20 members per port, and compare with Proposition 12.2.
Solution
Solution of Exercise 12.7.
first_vs_median(m) gives 15.5, 28.5, 50.4 and for , against , 25, 50 and . The proposition captures the growth; the small excess at low comes from the median member’s server lying later in the centre’s order, a few copies of .
Exercise 12.8 ★★★
Find the flaw. “All co-located members had cables of the same length, so all received the tick-by-tick feed at the same time.”
Solution
Solution of Exercise 12.8.
Equal cables equalise the path from the server to each member, not the time at which the server sends each member its copy. Under sequential TCP dissemination the tenth member on a port received every tick nine sends after the first, however long its cable.
12.9 Problem: First to Log In
Problem 12.1
Weekend problem — the value of logging in first
A venue sends its tick-by-tick feed over TCP from four distribution servers, each with three ports of members, and a lightly loaded secondary server; the centre spends per copy to a server, a port per copy to a member. Members react to a tick in on average (standard deviation ).
Part I — One port.
- With , when do the first and the last member of the first server’s first port receive a tick?
- What does the median member of that port wait?
- How does that change on the fourth server in the centre’s order?
- Which member of the whole topology receives first, and which last?
Part II — The advantage.
- From the model, what is the first member’s advantage over the median member for ?
- Compare with Proposition 12.2.
- How often does the first member beat the median member to the engine, tick after tick?
- How large is the advantage against a race decided by a few microseconds (One Quant Book 11)?
Part III — The remedies.
- What does a randomiser do to the spread, the rank correlation and the persistent win rate?
- What does closing the secondary server to normal traffic add?
- What does multicast do?
- Which remedy would you ask the venue for, and why?
Part IV — The verdict.
- State the named result: the first member’s advantage over the median member with ten members per port, with and without multicast.
- Which of the model’s parameters are facts from SEBI’s order, and which are assumptions?
- How would you measure the real spread on a venue’s feed?
- Why does the 2015 circular ask for similar latency with respect to exchange-provided infrastructure, rather than equal cables?
- How does China’s 2023 consultation phrase the same rule?
- Where else does one-copy-per-client distribution appear in this book?
- What is the difference between a latency advantage from a shorter path and one from a sending order?
- In one sentence: why did logging in first matter?
Solution
Solution of Problem 12.1.
Part I.
- First after , last after (plus jitter).
- The fifth and sixth members receive after 55 and : on average.
- Everything is later: 30 for the first member, 120 for the last.
- First: the first member on each port of the first server, at ; last: the tenth members of the fourth server, at .
Part II.
- 15.5, 28.5, 50.4 and .
- Close to : 10, 25, 50, 100; the excess is the centre’s order.
- Every time: 100% in the model, because the order never changes and dwarfs the reaction noise of .
- Decisive: races for stale quotes are decided by microseconds or less, so a member ahead wins nearly every one it enters.
Part III.
- The spread stays about ; the rank correlation falls from 1.00 to 0.07; the persistent win rate falls only to 88%, because the quieter secondary server keeps its members ahead.
- The win rate falls to 51%: no one is persistently first.
- The spread falls to the jitter ( at the extremes, from first to median) and the win rate to 50%.
- Multicast: it removes both the persistence and the spread; the other two only redistribute a spread that remains.
Part IV.
- Named result: with ten members per port, the first member receives each tick about before the median member under sequential unicast, and about before under multicast; under unicast with a fixed order it wins every race against the median member.
- Facts: the two-level sequential order, three ports per server, login order as the sending order, a lightly loaded secondary server. Assumptions: the per-copy costs, the jitter, ten members per port, the reaction-time model.
- Timestamp the same messages on several connections, ports and servers with synchronised clocks (chapters 4 and 5); compute the spread of receive times per message and the rank correlation between messages.
- Because what matters is the time at which data reaches each member, which depends on the whole chain (sending order, server load, cables), not on one piece of it.
- As a requirement that the communication latency from the dedicated co-location areas to the front-end processors be consistent.
- Websocket streams from crypto venues (chapter 20), relays in public clouds (chapter 16), and any vendor fan-out over TCP.
- A shorter path is a fact of geography or engineering, open to anyone who pays for it; a sending order is a choice of the sender, which a fair venue must make independent of who the recipient is.
- Because the feed sent each tick to members one after another in the order they had connected, so the first to connect saw every tick first.
12.10 Interview questions
Interview question 12.1 ★ developer
What is the difference between unicast and multicast market data, and why do exchanges prefer multicast in co-location?
Solution
Solution of Interview question 12.1.
Unicast sends one copy per recipient over its own connection, one after another; multicast sends one copy to a group address that the network replicates. In co-location multicast gives every receiver the same copy at the same time and costs the venue one send per message, however many receivers.
What the interviewer is looking for: Sequential sends and their order; replication in switches; loss and recovery over a separate unicast channel.
Interview question 12.2 ★ developer, trader
Roughly how far apart are Tokyo, Hong Kong and Singapore in light-time, and what does that mean for cross-market strategies?
Solution
Solution of Interview question 12.2.
Tokyo–Hong Kong about ( in vacuum, in fibre), Hong Kong–Singapore about (), Tokyo–Singapore about (). Cross-market strategies there work at millisecond horizons and must choose a home market for each engine.
What the interviewer is looking for: Order of magnitude right; one-way against round trip; the choice of where to put each engine.
Interview question 12.3 ★★ developer
You receive the same TCP feed on two connections and one is consistently 40 microseconds later. How do you find out why?
Solution
Solution of Interview question 12.3.
Check the capture first (both timestamped by synchronised hardware at the same point); then compare the two connections’ servers, ports and login times, and whether the lag is constant (a sending order), grows with bursts (a slow receiver or a queue) or appears after reconnection; reconnect in a different order and see whether the lag moves.
What the interviewer is looking for: Measurement before theory; sending order against queueing; an experiment that separates them.
Interview question 12.4 ★★ trader, researcher
What does “fair access” to market data mean, and how would you test a venue against it?
Solution
Solution of Interview question 12.4.
That every recipient of the same service gets each message at the same time up to a spread that does not depend on who it is. Test it by timestamping the same messages on several connections and checking the spread and whether the order of recipients persists.
What the interviewer is looking for: Both parts: spread and persistence; the venue’s published latency reports; equal conditions within a service tier.
Interview question 12.5 ★★ developer
A vendor streams quotes to clients over websockets from one server. Who receives each update first?
Solution
Solution of Interview question 12.5.
Whoever the server writes to first: usually the order of connection or of an internal list, possibly different per update; the last client waits for all the writes before it, and a slow client can delay the others if the server writes synchronously.
What the interviewer is looking for: Fan-out cost grows with the number of clients; sending order; per-client queues and slow consumers.
Interview question 12.6 ★★★ developer, researcher
Design a market-data distribution for a new venue that cannot favour anyone. What do you measure to prove it?
Solution
Solution of Interview question 12.6.
Multicast in co-location with equal-length cables from one replication point; one service tier per product with published conditions; a unicast recovery channel that is not faster than the multicast; per-message timestamps at every member hand-off, and published statistics of the spread and of the persistence of order.
What the interviewer is looking for: Design and evidence together; the recovery path as a hidden advantage; independent measurement.