AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Eigenes Protokoll - Prinzipieller Aufbau
Thema durchsuchen
Ansicht
Themen-Optionen

Eigenes Protokoll - Prinzipieller Aufbau

Ein Thema von blablab · begonnen am 5. Aug 2012 · letzter Beitrag vom 7. Aug 2012
Antwort Antwort
Furtbichler
(Gast)

n/a Beiträge
 
#1

AW: Eigenes Protokoll - Prinzipieller Aufbau

  Alt 7. Aug 2012, 07:26
...
z.B.
- vor alle Daten ein Startcode ...
- dann die Länge des ganzen Blocks
- den Namen/die Kennung des Blocks (mit Längenangabe voran oder Endemarkierung hinten dran, aber ich würde besser immer mit Längenangabe arbeiten)
- und nun die Daten, auch wieder mit Länge, welche man genausi immer mehr verschachteln könnte
- und eventuell noch eine Endemarkierung, CRC usw.

oder
- Startcode
- Datenlänge
- mit TReader/TWriter erstellter Datenblock ...
- CRC32 über Datenlänge+Datenblock
Was passiert, wenn die Datenlänge falsch übermittelt wurde?
Ich würde mindestens ein Endezeichen oder doch eine CRC verwenden.
Eine CRC/Checksum mag redundant sein, aber was passiert, wenn der Empfang in der Mitte eines logischen Streams einsetzt? Dann ist die Datenlänge undefiniert bzw. irgendeine Hausnummer (alles schon dagewesen).
In sehr störanfälligen Netzen kann es zudem trotzdem zu Übertragungsfehlern kommen, auch wenn TCP das angeblich abfängt. Allerdings ist der Fall extrem selten

Weiterhin muss bedacht werden, das Verbindungsabbrüche nicht notwendigerweise erkannt werden, d.h. beide Seiten denken, das die Verbindung ok ist. Hier können Heartbeats helfen, also eine Seite sendet 1x pro Sekunde ein kleines Paket, das von der Gegenstelle zurückgeschickt wird.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.399 Beiträge
 
Delphi 12 Athens
 
#2

AW: Eigenes Protokoll - Prinzipieller Aufbau

  Alt 7. Aug 2012, 09:32
Weiterhin muss bedacht werden, das Verbindungsabbrüche nicht notwendigerweise erkannt werden, d.h. beide Seiten denken, das die Verbindung ok ist.
Das passiert selbst bei DataSnap (siehe alte Threads von mir), wobei es beim Clienten das nächste mal Knallt und er eine neue Verbindung aufbauen könnte.
Aber der Server ist da Problematischer, da er z.B. beim Beenden aus solchen angeblich noch "offenen" Verbindungen hängen bleibt, weil er denen noch Tschüs sagen will.
Aber schlimmer ist es bei den Callbacks, denn da kann es auch im Server knallen und wenn es mal richtig Knallt, dann kannst'e schnell mal die ganze Serveranwendung vergessen.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz