Praesi C-Mesh

487 Aufrufe

Veröffentlicht am

German presentation on a school project on parallel C programs. For details see https://github.com/elHornair/mesh

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
487
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
1
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Praesi C-Mesh

  1. 1. C-Mesh Routing-Simulation in C ( ), 01. Juli 2013Alain Horner @elHornair
  2. 2. Intro
  3. 3. Aufgabenstellung Offizielle Kennen wir alle Aufgabenstellung
  4. 4. Lösungskonzept
  5. 5. Funktionsweise der Knoten Boss-Worker Modell Boss: Auf Paket warten Boss: Paket an Worker weitergeben Worker: Paket verarbeiten
  6. 6. Funktionsweise der Knoten Verteilung der Pakete
  7. 7. Funktionsweise der Knoten Boss-Worker: Implementierung mit Pthreads while (1) { // wait for next package newsockfd = wait_for_connection(sockfd); // let worker handle package pthread_create(&workers[thread_counter], NULL, worker_init, (void *)newsockfd); // alternate workers thread_counter += 1; if (thread_counter >= NUM_WORKERS) { thread_counter = 0; } } Details: Siehe Github
  8. 8. Verbindungen zu Nachbaren Nachbar: Knoten, dessen IP-Adresse und Port bekannt ist Nachbaren-Liste Bidirektionale Verbindungen -> Handshake
  9. 9. Verbindungen zu Nachbaren Handshake
  10. 10. Routing Z.B. “In welcher Richtung liegt das Ziel?” Tabelle mit zwei Einträgen Pro Eintrag: Nachbar (IP-Adresse und Port)
  11. 11. Routing Eigenheit von Aufgabenstellung ausgenutzt: Routingtabelle möglichst früh anpassen Einträge werden nie überschrieben “Pakete werden immer von der Quelle zum Ziel oder vom Ziel zur Quelle gesendet”
  12. 12. Paket-Forwarding Knoten: Paket weiterleiten, falls nicht für mich Routingtabelle verwenden Fallback: Flooding
  13. 13. Paket-Forwarding Flooding
  14. 14. Paket-Forwarding Problem mit ringförmig verbundenen Knoten
  15. 15. Erreichen des Ziels Nur bei Quell- und Zielknoten möglich Ausgabe der Nachricht Umwandlung des Nachrichtenpakets in OK-Paket Routing sehr einfach Schwarze Liste wird ignoriert OK-Paket: Zurück bis zu ursprünglichem Sender
  16. 16. Demo
  17. 17. Demo Python-Testprogramm 1 Startknoten 1 Zielknoten 10 Verbindungsknoten 3 Pakete
  18. 18. Outro
  19. 19. Lessons learned Geteilte Ressourcen immer locken Debugging: Gnu Debugger (GDB)
  20. 20. Weiterführende Links Sourcecode Dokumentation Pthreads
  21. 21. Fragen?
  22. 22. Danke!

×