Skip to main content

Bundle Protocol

Bundle protocol (BP) är ett protokoll som används inom Delay Tolerant Networking (TDN). TDN är nätverksmiljöer med extrem latens - alltså i rymden. TCP/UDP kan inte användas vid extrema latenser, exempelvis är det 8 timmar enkel väg för radiosignaler att skickas till Mars. BP bygger på ett store-and-forward koncept.

Bundle är oberoende av vilken underliggande transportsmetodik som används. På jorden kan TCP/IP användas medans i rymden kommer Licklider Transmission Protocol (LTP) användas.

I BP kommer buffertar att implementeras på samtliga bundle nodes. Noderna sparar sin bundle tills att en bekräftelse har kommit från mottagande bundle nod, om custody transfer används. Mottagande nod skickar då en "Custody Signal" tillbaka till avsändande nod vid mottagen bundle. Varje bundle har även en TTL som gör att den rensas till slut om överföringen inte har fått en bekräftelse.

Det går även att köra som "fire and forget" utan custody transfer. Bekräftelsen kan då vara TCP/ACK i TCP/IP eller LTP-segment-ACK i LTP och då töms bufferten.

Senaste version av BP är i skrivande stund BPv7, 2025-10-10.

Routing

Routing i BP avgör vilket nästa-hopp en bundle ska skickas till och när bundle:n ska skickas dit. I Bundle pekar man ut Endpoint Identifiers (EID). För att nå en slutgiltig EID kan man peka ut en annan EID som next hop.

TCPCL

När TCP Convergence Layer (TCPCL) används, vilket innebär att transportmediumet är IPv4 eller IPv6, så pekas en IP-adress ut för att nå en EID. Det spelar ingen roll om EIDn är direktansluten IP-mässigt eller om det är 15 hopp mellan noderna.

Exempel på post i en BP-routingtabell:

Destination EIDNext Hop EIDCLAKontaktinformation
dtn://mars-orb/dtn://relay-1/tcprelay1.example.net:4556

Contact Graph Routing

För routing i rymden används Contact Graph Routing (CGR). Det finns inga rutt-tabeller i CGR. Rutter räknas ut för varje bundle. CGR räknar ut den bästa tiden för både tid och rum. Bundle-noden har en kontaktplan, Contact Plan Table, som innehåller information om när en annan bundle nod är aktiv samt information om kapacitet, latens och kostnad till de noden.

Exempel:

  1. En satellit vet att den har kontakt med en reläsatellit mellan 10:02–10:05 UTC.

  2. Den räknar ut att markstationen nås via relänätet inom TTL.

  3. Bundlen lagras tills 10:02, skickas via LTP, och tas bort när custody-signal mottas.

LTP själv ansvarar bara för block-överföring och felkorrigering, inte routingbeslut.

Användning

BP används i produktion idag på ex:

  • ISS
  • James Webb Telescope
  • PACE

Vill man installera Bundle på en maskin finns flera publika Github-repon, exempelvis NASAs HDTN.

Källor

RFC 9171 - BPv7