18. oktober 2005 - 14:36Der er
7 kommentarer og 1 løsning
Egen pakkesystem: udp vs. tcp
Jeg er med i en projektgruppe, der skal lave et kommunikationssystem mellem en modelhelikopter og en jordstation. Hertil benytter vi både WLAN og radiomodem. WLAN'et benyttes indenfor korte afstande. Skiftet mellem WLAN'et og radiomodemet skal foregå transparent for brugeren. Vi har tænkt os at lave vores eget pakkesystem, men er lidt i tvivl om, hvorvidt vi skal vælge TCP eller UDP. Jeg har læst at pga. stort datatab, vælger man normalt TCP til trådløs overførelse, men set i lyset af, at vi vil lave vores eget pakkesystem, skal vi så ikke vælge UDP? Er det ikke den eneste mulighed vi har for at registrere, hvis pakker går tabt? Ved TCP kan der vel gå lang tid, før vi får af vide, at data er gået tabt?
I et realtimesystem har du sjældent brug for at alle oplysninger overføres korrekt. Du er langt mere interesseret i de aktuelle data. Eksempelvis kan helikopteren sende sin aktuelle position hvert sekund. Skulle en eller flere pakker gå tabt, er du mere interesseret i den nyeste position i stedet for retransmissioner af de tabte pakker.
Det behøves ikke at foregå i realtime. Dataene vi skal have fra helikopteren, er både dens placering og et billede i ny og næ. Først havde vi tænkt mest på TCP, fordi her har vi bl.a. fejlkorrektion, men dengang ville vi heller ikke lave vores eget pakkesystem.
Hvad hvis vi laver vores eget pakkesytem sådan, at et ACK skal returenes ved, hver korrekt modtaget pakke, kan vi så ikke nøjes med UDP også til billedet?
Jo, men du skal implementere retransmission, når der sendes en NAK. Det er du dejligt fri for med TCP. TCP har ganske meget funktionalitet til at gøre sit arbejde - noget af det skal du selv opfinde.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.