Download Game! Currently 87 players and visitors. Last logged in:KapoAurosHeidelArnoldi

Blitzer's Blog >> 71496

Back to blogs index
Posted: 23 Jul 2026 11:54 [ permalink ]
TC$mC$ on erittC$in mielenkiintoinen ja arkkitehtuurisesti syvC$ aihe.
Hajautetun viestintC$verkoston ja pakettireitityksen suunnittelu ilman suoraa
riippuvuutta perinteisistC$ TCP/IP-osoitteista (kuten IP-osoitteet ja portit)
nojaa vahvasti **overlay-verkkojen (Overlay Networks)** ja **sisC$ltC6keskeisen
 verkotuksen (Content-Centric Networking, CCN)** periaatteisiin.

Tietokonehistoriassa ja nykystandardeissa on useita hienoja malleja, joista
voimme ottaa parhaat opit tC$hC$n Mesh-reititysarkkitehtuuriin.

---

## 1. Paketin rakenne: Sanoman kC$C$re (Envelope Protocol)

Jotta paketti voi liikkua eri ympC$ristC6jen (Browsers, FastAPI, Hauki-X86,
LPT-kanavat) vC$lillC$, sen tC$ytyy olla standardoidusti "koteloitu".

JSON-pohjainen pakettiformaatti voisi noudattaa tietokonehistorian tunnettuja
periaatteita (**RFC 5322 / BGP / Bundle Protocol RFC 4838**):

```json
{
  "head": {
    "v": 1,
    "id": "msg_9f8a3b11-2026",
    "src": "mesh://hauki-obs/chrome/tab_57B254FA",
    "dst": "mesh://*/gemini/*",
    "type": "BROADCAST",
    "ttl": 10,
    "timestamp": 1784793000,
    "trace": ["hauki-obs", "hauki-teacher"]
  },
  "route": {
    "target_type": "HUD_INSTANCE",
    "eval_condition": "typeof window.TELEPATH_HUD_ACTIVE !== 'undefined'"
  },
  "payload": {
    "action": "UPDATE_THEME",
    "data": { "color": "#00ff41" }
  }
}

```

### OtsakekentC$t (Header breakdown):

* **`src` & `dst` (URI-pohjainen osoitteistus):** Looginen osoite muodossa
`mesh://[HOST]/[ENGINE]/[INSTANCE]`. Jokainen taso voi kC$yttC$C$
villikortteja (`*`).
* **`ttl` (Time-To-Live / Hop Count):** EstC$C$ ikuiset silmukat
reitityksessC$. Jokainen yhdyskC$ytC$vC$ (gateway) vC$hentC$C$ luvusta 1.
* **`trace` (ReittijC$lki):** EstC$C$ pakettia palaamasta samaan solmuun,
jossa se on jo kC$ynyt.

---

## 2. Osoitteistus ja reititysmallit

Historia tuntee kolme pC$C$sC$C$ntC6istC$ tapaa ohjata paketteja, joista
voimme yhdistellC$ parhaat puolet:

| Reititystapa | Historiallinen / Standardi esikuva | Miten toimii MeshissC$?
|
| --- | --- | --- |
| **PisteestC$ pisteeseen (Unicast)** | IP-reititys, UUCP, X.25 | Kohdeosoite
on tarkka: `mesh://hauki-obs/chrome/tab_123` |
| **Aihepohjainen (Pub/Sub / Anycast)** | MQTT, AMQP, Matrix | Kohde
mC$C$ritellC$C$n tyypin mukaan: `mesh://*/hud/status` |
| **Ehtopohjainen (Attribute / Eval)** | Content-Centric Networking (NDN) |
Paketti toimitetaan kaikille instansseille, jotka tC$yttC$vC$t ehdon (esim.
tietty muuttuja olemassa). |

---

## 3. Mahalliset toteutustasot

### Taso 1: Saman hostin sisC$inen Tab-to-Tab -reititys (Local Fan-Out)

Saman koneen sisC$llC$ `mailbox_worker.js` toimii lokaalina kytkimenC$
(L2-kytkin):

```
[Tab A (MBOX)] ---> [Mailbox Worker / Gateway] ---> [Tab B (MBOX)]
                                              ---> [Tab C (MBOX)]

```

1. Tab A lC$hettC$C$ paketin osoitteeseen `mesh://localhost/chrome/*`.
2. Mailbox Worker hakee paketin `MBOX_OUT`-laatikosta.
3. Worker katsoo osoitetta (`/chrome/*`), pyytC$C$ FastAPI-sillalta kaikkien
active-tabien ID:t, ja puskee paketin kaikkien saman koneen tabien
`MBOX_IN`-laatikkoon.

---

### Taso 2: Airgap / Viiveensietoinen reititys (DTN & LPT1 / Hauki-X86)

Kun siirretC$C$n dataa fyysisesti rajoitettujen vC$ylien yli (LPT1-rinnakkaispo
rtti, sarjaportti tai offline-tiedostot), kC$ytetC$C$n **Store-and-Forward**
-mallia (sama periaate kuin **UUCP**:ssC$ 1980-luvulla tai **RFC 4838 Bundle
Protocol**:ssa avaruustietoliikenteessC$):

```
[Chrome Tab] ---> [Host GW] ===(LPT1 / Serial)===> [Airgap GW] ---> [Hauki-X86
Kernel]

```

* **Offline-hoppaus:** Jos Hauki-X86 ei ole valmiina ottamaan vastaan
pakettia, `Host GW` tallentaa paketin paikalliseen puskuriin (esim.
`/mnt/mesh_root/spool/out/`).
* **LPT-emulaattori / Airgap:** Gateway lukee puskurista paketteja ja
siirtC$C$ ne LPT1/sarjavC$ylC$n lC$pi tavu kerrallaan. Hauki-X86-kernelin
puolella oleva vastaanotin parsii JSON-paketin ja sijoittaa sen kernelin
sisC$iseen postilaatikkoon.

---

## 4. IRC-verkon hyC6dyntC$minen reititystaulun jakamiseen (Gossip / Control
Plane)

**PC$C$telmC$si IRC:n hyC6dyntC$misestC$ on erinomainen.** Internetin
ydinkytkimet kC$yttC$vC$t BGP-protokollaa (Border Gateway Protocol)
kertoakseen toisilleen *"minun kauttani pC$C$see nC$ihin verkkoihin"*. Voit
kC$yttC$C$ IRC-kanavaa (esim. `#mesh-routing`) tC$ysin vastaavaan
**Gossip-protokollaan**.

### Miten IRC Control Plane toimisi?

1. **Topologian mainostus (Heartbeat / LSA):**
Jokainen kC$ynnistyvC$ Gateway lC$hettC$C$ 30-60 sekunnin vC$lein
IRC-kanavalle lyhyen JSON-ilmoituksen:
```json
{
  "tag": "!mesh-announce",
  "gw_id": "hauki-obs",
  "routes": [
    "mesh://hauki-obs/chrome/*",
    "mesh://hauki-obs/fastapi/*"
  ],
  "capabilities": ["HUD_RENDERER", "BASIC_ENGINE"]
}

```


2. **Reititystaulun muodostaminen (Routing Table):**
Jokainen Mesh Gateway kuuntelee `#mesh-routing`-kanavaa ja yllC$pitC$C$
muistissaan dynamista reititystaulukkoa:

| KohdekUVIO (Pattern) | Seuraava hyppy (Next Hop) | Tyyppi / Ominaisuudet |