Optimaler Aufbau von Netzwerkpaketen?
-
net schrieb:
...und mach' nicht so' bitgefummle (4,13,14 bits). das musste hinterher mühsam auseinanderfrickeln. mach besser immer vielfache von 8bits (8, 16, 16 bits). die pakete werden dadurch nur minimal länger, aber können schneller verarbeitet werden.
Die Pakete werden sehr viel länger dadurch, und das zusammenpacken und auseinandernehmen geht mit einer eigenen Klasse sehr einfach.
@SeppSchrot: aah, vielen Dank für den Hinweis! Habe ich doch gestern glatt überlesen
Kann man per C++ irgendwie beeinflussen, dass die Checksumme auch verwendet wird? Vielleicht wird sie das auch immer - ich versuche mal das irgendwie rauszufinden.
-
Neku schrieb:
Die Pakete werden sehr viel länger dadurch, und das zusammenpacken und auseinandernehmen geht mit einer eigenen Klasse sehr einfach.
also wenn ich mich jetzt nicht verzählt hab wirds dadurch nur insgesamt um 9bit länger, das sollte man doch verkraften können - finds so mit (14bit, 4bit) bissel unsauber
mfg blan
-
Neku schrieb:
net schrieb:
...und mach' nicht so' bitgefummle (4,13,14 bits). das musste hinterher mühsam auseinanderfrickeln. mach besser immer vielfache von 8bits (8, 16, 16 bits). die pakete werden dadurch nur minimal länger, aber können schneller verarbeitet werden.
Die Pakete werden sehr viel länger dadurch, und das zusammenpacken und auseinandernehmen geht mit einer eigenen Klasse sehr einfach.
@SeppSchrot: aah, vielen Dank für den Hinweis! Habe ich doch gestern glatt überlesen
Kann man per C++ irgendwie beeinflussen, dass die Checksumme auch verwendet wird? Vielleicht wird sie das auch immer - ich versuche mal das irgendwie rauszufinden.Bei UDP wird die checksumme IMMER verwendet. Beschädigte Pakete werden erst garnicht zugestellt.
Es sei denn du machst alles Per "Hand". Aber warum sollte man das Rad neu erfinden sollen?
-
blan schrieb:
Neku schrieb:
Die Pakete werden sehr viel länger dadurch, und das zusammenpacken und auseinandernehmen geht mit einer eigenen Klasse sehr einfach.
also wenn ich mich jetzt nicht verzählt hab wirds dadurch nur insgesamt um 9bit länger, das sollte man doch verkraften können - finds so mit (14bit, 4bit) bissel unsauber
mfg blan
Oben geht es ja nur um den Header. Die Paketdaten selbst benötigen ja wesentlich mehr Speicher.
Andreas XXL schrieb:
Neku schrieb:
@SeppSchrot: aah, vielen Dank für den Hinweis! Habe ich doch gestern glatt überlesen
Kann man per C++ irgendwie beeinflussen, dass die Checksumme auch verwendet wird? Vielleicht wird sie das auch immer - ich versuche mal das irgendwie rauszufinden.Bei UDP wird die checksumme IMMER verwendet. Beschädigte Pakete werden erst garnicht zugestellt.
Es sei denn du machst alles Per "Hand". Aber warum sollte man das Rad neu erfinden sollen?"An all zero transmitted checksum value means that the transmitter generated no checksum (for debugging or for higher level protocols that don't care)."
Wenn die Überprüfung aber standardmäßig aktiviert ist, dann bin ich zufrieden
-
Neku schrieb:
blan schrieb:
Neku schrieb:
Die Pakete werden sehr viel länger dadurch, und das zusammenpacken und auseinandernehmen geht mit einer eigenen Klasse sehr einfach.
also wenn ich mich jetzt nicht verzählt hab wirds dadurch nur insgesamt um 9bit länger, das sollte man doch verkraften können - finds so mit (14bit, 4bit) bissel unsauber
mfg blan
Oben geht es ja nur um den Header. Die Paketdaten selbst benötigen ja wesentlich mehr Speicher.
schau dir halt ma andere opensource games an, ich bin mir fast sicher das die meisten des mit 8bit, 16bit, ... gemacht haben..
mfg blan
-
Natürlich füllt man so einen Header auf 32bit aliasing auf ! Aber trotzdem sollte man einfache flags noch bitweise kodieren anstatt jedem bool gleich nen byte zu geben.
-
Man sollte sich aber im Klaren sein, dass so eine Datenstruktur dann nicht einmal mehr auf bitebene aligned ist und der Zugriff dadurch alles andere als schnell ist.
Wenn die paar Bits wirklich sein müssen, dann würde ich die Daten in dieser Struktur senden/empfangen, aber davor und danach die Daten in Strukturen speichern die richtig aligned sind.
-
User-- schrieb:
Wenn die paar Bits wirklich sein müssen, dann würde ich die Daten in dieser Struktur senden/empfangen, aber davor und danach die Daten in Strukturen speichern die richtig aligned sind.
Logisch, so ist es ja auch. Alles andere wäre mehr als langsam. Es geht hier lediglich um die Netzwerkpakete und um nichts anderes. Diese müssen eben möglichst komprimiert sein.
-
Neku schrieb:
Es geht hier lediglich um die Netzwerkpakete und um nichts anderes. Diese müssen eben möglichst komprimiert sein.
soll's über modem mit 9600 bps oder weniger laufen?
-
net schrieb:
Neku schrieb:
Es geht hier lediglich um die Netzwerkpakete und um nichts anderes. Diese müssen eben möglichst komprimiert sein.
soll's über modem mit 9600 bps oder weniger laufen?
Soll's nur ein einziges Paket werden?
-
Neku schrieb:
Soll's nur ein einziges Paket werden?
das wissen wir nicht. aber wenn's so ist dann liegste mit bit fiddling natürlich richtig...