About
About this project
ChronoRoute is a student research project on routing in low-Earth-orbit satellite constellations. It defines T-CRH, an IPv6 routing header that carries a planned path and an arrival deadline for every hop, and tests whether those deadlines can serve as a cheap alarm when the network drifts from its plan.
People
Who made it
ChronoRoute is made by Arshpreet Gaba at VIT Vellore, as a project for the Computer Networks course.
How it was built
One specification, three implementations
The wire format and the processing rules are fixed in one specification, spec/tcrh-v1.md, with
golden test vectors that every implementation must reproduce byte for byte.
- Python simulator. The reference implementation of the protocol, with a golden-vector test that runs in the project’s continuous integration, and the data pipeline that builds this site’s orbit data, orbital planes and laser-link model from real CelesTrak downloads.
-
ns-3 module. T-CRH inside the ns-3 network simulator, in real IPv6 Routing Type 253
headers, with a test suite for the same golden vectors (
make ns3-test). It is run locally, not in continuous integration, because building ns-3 there is too slow. - This website. A static site. Its protocol tools run a TypeScript port of the engine, checked against the same vectors when the site is built; its globe computes satellite positions in your browser; and its route planner plans paths with a port of the Python router, checked against Python on every deployment.
Results
The pre-registered experiments, each with its verdict, charts, data and run manifest, are on the
experiments page. The course milestone, an ns-3 run on the real
Starlink 463 km shell, is written up in
docs/course-milestone.md.
The earlier semester experiments were re-run on the bug-fixed code, with a provenance manifest for every
run: see results/legacy-v0.9
and the results changelog,
which explains every number that changed and the claims that were retired.
All of it is in the ChronoRoute repository on GitHub. Start with the protocol, or read how we label our numbers.
Notice
Not affiliated with SpaceX
This project is not affiliated with, endorsed by or connected to SpaceX or Starlink. We use public Starlink orbital elements only as a realistic constellation geometry. Starlink does not use T-CRH, and how Starlink routes traffic is not public; this site never claims to show it.
Credits
Data, imagery, fonts and software
Orbit data
Orbit data courtesy of CelesTrak (celestrak.org); SupGP elements derived from SpaceX ephemerides.
Earth imagery
The globe uses NASA Blue Marble and Black Marble composite images of the Earth. They are not live images. NASA does not endorse this project. Image credits
Fonts
Archivo (Omnibus-Type), IBM Plex Sans and IBM Plex Mono (IBM), under the SIL Open Font Licence 1.1. They are served from this site through Fontsource; your browser does not contact a font service.
Software
- Astro: static site generator (MIT licence)
- React: interactive parts of the pages (MIT licence)
- three.js: 3D globe (MIT licence)
- React Three Fiber and drei: three.js in React (MIT licence)
- satellite.js: SGP4 orbit propagation (MIT licence)
Privacy
No tracking
This site uses no analytics and no cookies. Pages, fonts and data files are all served from this site; your browser makes no requests to third parties while you read it. Links to other sites are ordinary links.
Licence
Open source
ChronoRoute is released under the MIT licence, except the ns-3 module and programs under
ns3/, which are GPL-2.0-only because they build on ns-3. Orbit data keeps CelesTrak’s terms.
The details are in the LICENSE file; the code, the specification
and the golden test vectors are in the repository.