RFM12 Source Routing

Aus Ethersex_Wiki
Wechseln zu: Navigation, Suche

Hintergrund von Source-Routing/Packet Forwarding ist folgender:

  +--------------+      +-------------+         +-------------+
  | Client A     | ---> | Forwarder   |  ====>  | Router      |  ==> Ethernet 192.168.23.0/24
  | 192.168.5.50 |      | 192.168.5.2 |         | 192.168.5.1 |
  |              |      |  ID = 17    |         |             |
  +--------------+      +-------------+         +-------------+
                      ,^   ,^
  +--------------+   /    /
  | Client B     | -'    /
  | 192.168.5.51 |      /
  +--------------+     /
                      /
  +--------------+   /
  | Client C     | -'
  | 192.168.5.52 |
  +--------------+

Stell' dir vor, die Clients A..C haben schlechte Antennen und können den Router nicht direkt erreichen, dann können sie das Paket erst an den Forwarder (mit besserer Antenne) routen, der das Paket dann nochmal sendet und der Router es schließlich an Ethernet weitergibt ...

Einer der Clients erstellt ein UDP/IP-Paket an 192.168.23.42, versieht das mit einem Source-Route Header. Dann sendet er:

                                gültiges RFM12/UDP/IP-Paket
                     ,----------------^------------------------------------,
 0x80  Länge  17   |  0x00  Länge  |  IP Header  |  UDP Header  |  Nutzlast
`------v---------'

  Source-Route
     Header

Der Forwarder empfängt das Paket und erkennt den Source-Route Header (erstes Bit gesetzt), guckt dann auf das dritte Byte (die 17) und erkennt, dass diese seiner ID entspricht. Daraufhin sendet er das angehängte Paket (also 0x00 | Länge | IP | UDP | Nutzlast) unverändert wieder in die Luft ...

... andere RFM12-Geräte verwerfen das Paket, weil es Source-Routed ist und sie nicht zuständig sind; resp. gar nichts von Source-Routing wissen und es als ungültiges Paket verwerfen ...

Der Router empfängt dann das diesmal "richtige" Paket und leitet weiter, weil er erkennt, dass zwei unterschiedliche Netze betroffen sind ...

--Stella 20:57, 23. Feb. 2010 (UTC)