Att tänka på vi protokoll skissande ?
Att tänka på vi protokoll skissande ?
Tja!
Jag tänker hitta på ett litet protokoll för att skyffla data mellan mina små nätverkande skräpapplikationer och nu undrar jag, har någon bra tips att komma med ?
Kan tänka mig att det finns endel saker man bör undvika o.s.v. ...
Jag söker alltså mycket generella tips ...
/Anca
Jag tänker hitta på ett litet protokoll för att skyffla data mellan mina små nätverkande skräpapplikationer och nu undrar jag, har någon bra tips att komma med ?
Kan tänka mig att det finns endel saker man bör undvika o.s.v. ...
Jag söker alltså mycket generella tips ...
/Anca
Det enda jag kan komma på är att undvika protokoll som kör stop-and-go, dvs sänder ett paket och väntar på svar innan nästa paket går iväg.
De är visserligen väldigt enkla att koda men överföringshastigheten stinker. Inga som helst problem att få större överföringar att använda mindre än 10% av länkkapaciteten.
De är visserligen väldigt enkla att koda men överföringshastigheten stinker. Inga som helst problem att få större överföringar att använda mindre än 10% av länkkapaciteten.
-Tbred 2700 @ 2.4GHz, 1024MB, WinXP Prof, 800GB
-Tbred 2600 @ 2.225GHz, 1024MB, Linux, 1353GB
-Tbred 1700 @ 1.75GHz, 1024MB, WinXP Prof, 444GB
-P4 3.06GHz, 1024MB, WinXP Prof, 120GB
-PII 2x400MHz, 512MB, Win2k Prof, 79GB
-Tbred 2600 @ 2.225GHz, 1024MB, Linux, 1353GB
-Tbred 1700 @ 1.75GHz, 1024MB, WinXP Prof, 444GB
-P4 3.06GHz, 1024MB, WinXP Prof, 120GB
-PII 2x400MHz, 512MB, Win2k Prof, 79GB
Sökord på google: "sliding window"pwm wrote:Det enda jag kan komma på är att undvika protokoll som kör stop-and-go, dvs sänder ett paket och väntar på svar innan nästa paket går iväg.
De är visserligen väldigt enkla att koda men överföringshastigheten stinker. Inga som helst problem att få större överföringar att använda mindre än 10% av länkkapaciteten.
Oh give me a clone, my very own clone,
with the Y chromosome changed to X!
And since she's my own, of my own flesh and bone,
she'll be thinking of nothing but sex!
with the Y chromosome changed to X!
And since she's my own, of my own flesh and bone,
she'll be thinking of nothing but sex!
Re: Att tänka på vi protokoll skissande ?
Varje gång du tänker "Hum, om jag gör så här så spar jag 12 bitar" så ska du backa och tänka om.Ancalagon wrote:Kan tänka mig att det finns endel saker man bör undvika o.s.v. ...
Jag söker alltså mycket generella tips ...
Oh give me a clone, my very own clone,
with the Y chromosome changed to X!
And since she's my own, of my own flesh and bone,
she'll be thinking of nothing but sex!
with the Y chromosome changed to X!
And since she's my own, of my own flesh and bone,
she'll be thinking of nothing but sex!
Re: Att tänka på vi protokoll skissande ?
Varför?IcePic wrote:Varje gång du tänker "Hum, om jag gör så här så spar jag 12 bitar" så ska du backa och tänka om.Ancalagon wrote:Kan tänka mig att det finns endel saker man bör undvika o.s.v. ...
Jag söker alltså mycket generella tips ...
hej.
Re: Att tänka på vi protokoll skissande ?
För att alla problem med RPC, ASN.1 och Y2k beror allihopa på att man utvecklar idiotprotokolllinc wrote:Varför?IcePic wrote:Varje gång du tänker "Hum, om jag gör så här så spar jag 12 bitar" så ska du backa och tänka om.Ancalagon wrote:Kan tänka mig att det finns endel saker man bör undvika o.s.v. ...
Jag söker alltså mycket generella tips ...
för dataöverföring och lagring som ska göra "smarta saker". Kollar man på XML eller liknande så må de vara
bloatade och äckliga, men det tar 0 tid att överföra datat iaf. Och det är mer eller mindre tokenkelt
att få ut nån sorts info ur dem utan att konstra sig med hur lång en "int" är eller om man har bigendian-vs-littleendian
när man för över binärdata på nätet. Vill man skicka över värdet "hundratusen" så kan man gott
och väl sända 7bitars-ascii i stil med "100000" så kommer alla maskiner kunna tolka det (helst med
nån separator givetvis, semikolon eller nåt mellan varje värde) så blir det oändligt mycket enklare
för en tredjepartsperson att läsa av strömmen och se vad som far förbi istället för att börja
greja med att "ok, max-värdet för X är 100000, så det ryms inom log2(100000)=17 bitar så
om vi klumpar ihop 6 st. sådana så tar det 6*17=102 bitar och ryms inom 13 bytes, och vi får
ett par bitar över för status-fluff".
Jämför den parserkoden och beskrivningen med att istället parsa strängen:
"100000,96650,34534,56777,23455,32377" bara.
Skillnaden i tid att skicka 13 bytes över 100mbit-nätet istället för den 30-40 bytes långa asciisträngen är ju
inte ens mätbar. Samma sak om man ska lagra den på hårddisken.
Skulle man helt plötsligt vilja skicka ett värde på 900000 eller 3 465 456 så kommer asciilösningen
att "bara funka" medans bitpackade versionen måste göras om och helst få nån sorts "versionsbit"
som säger att numera kör vi inte 17 bitar per tal utan 26 eller 42.
Helt plötsligt är det inte bara kod som ska göras om utan protokollet, och det är trist och dumt
att sitta och designa om protokollet mest hela tiden för att man skulle spara 20 bytes i ett ethernetpaket.
Därför ska man inte lägga tid på hur mycket man kunde spara i bitar hit och dit utan göra det
enklast tänkbara även om det kostar en byte per true/false osv.
Oh give me a clone, my very own clone,
with the Y chromosome changed to X!
And since she's my own, of my own flesh and bone,
she'll be thinking of nothing but sex!
with the Y chromosome changed to X!
And since she's my own, of my own flesh and bone,
she'll be thinking of nothing but sex!
Re: Att tänka på vi protokoll skissande ?
Om man inte som jag just arbetar med en applikation där bärarlagret har en överföringshastighet på 20 bps exklusive bortfall för felkorrektion!IcePic wrote:Därför ska man inte lägga tid på hur mycket man kunde spara i bitar hit och dit utan göra det
enklast tänkbara även om det kostar en byte per true/false osv.
-Tbred 2700 @ 2.4GHz, 1024MB, WinXP Prof, 800GB
-Tbred 2600 @ 2.225GHz, 1024MB, Linux, 1353GB
-Tbred 1700 @ 1.75GHz, 1024MB, WinXP Prof, 444GB
-P4 3.06GHz, 1024MB, WinXP Prof, 120GB
-PII 2x400MHz, 512MB, Win2k Prof, 79GB
-Tbred 2600 @ 2.225GHz, 1024MB, Linux, 1353GB
-Tbred 1700 @ 1.75GHz, 1024MB, WinXP Prof, 444GB
-P4 3.06GHz, 1024MB, WinXP Prof, 120GB
-PII 2x400MHz, 512MB, Win2k Prof, 79GB
Tilläggas kan ju att det finns andra saker som t.ex "när ska jag packa mitt data" där den sluga idenlinc wrote:Tack.. bra svar.
verkar vara just att bloat:a på i protokollet/lagringen och sedan köra zip över datat efteråt. Är det
så att man har lämnat en massa nollor (på bit eller bytenivå) så kommer zip äta upp det iaf så de går
nästintill bort ändå, så man kan lika gärna "slösa" på den nivån ändå.
Vissa får ju läskiga ideer som att packa enskilda fält osv, vilket krånglar till allting i onödan.
Oh give me a clone, my very own clone,
with the Y chromosome changed to X!
And since she's my own, of my own flesh and bone,
she'll be thinking of nothing but sex!
with the Y chromosome changed to X!
And since she's my own, of my own flesh and bone,
she'll be thinking of nothing but sex!
Re: Att tänka på vi protokoll skissande ?
Det är 1 miljarddel av alla datoranvändare som har det specialfallet, ni fyra från NASA som pratar live medpwm wrote:Om man inte som jag just arbetar med en applikation där bärarlagret har en överföringshastighet på 20 bps exklusive bortfall för felkorrektion!
marsbilen behöver inte tipsen på 64bits.se's programmeringsforum. Resten av oss sitter med
100mbit-nät, 100G+ diskar och GHz-cpu:er. =)
Oh give me a clone, my very own clone,
with the Y chromosome changed to X!
And since she's my own, of my own flesh and bone,
she'll be thinking of nothing but sex!
with the Y chromosome changed to X!
And since she's my own, of my own flesh and bone,
she'll be thinking of nothing but sex!
Re: Att tänka på vi protokoll skissande ?
Och även om vi inte gör det så kan man designa sin applikation för det fallet. Min segaste maskinIcePic wrote:Resten av oss sitter med 100mbit-nät, 100G+ diskar och GHz-cpu:er. =)
(amiga4000) har 10mbit-nät och 15G disk så om nån gör nåt som tar 30-40 bytes per paket istället
för 17 så lovar jag att tom den kommer orka med det.
Oh give me a clone, my very own clone,
with the Y chromosome changed to X!
And since she's my own, of my own flesh and bone,
she'll be thinking of nothing but sex!
with the Y chromosome changed to X!
And since she's my own, of my own flesh and bone,
she'll be thinking of nothing but sex!