Gå til innhold

Sende/motta over UDP (JAVA)


Anbefalte innlegg

Hei folk. På skolen har vi fått en oppgave som er litt slem med kunnskapene mine. Selve oppgaven går ut på å lage programmer (java) for sikker overføring av data (sender og mottager). Programmet skal bruke UDP for overføring, men TCP ligger jo i mekanismene der allerede.

 

Minimumskravet er å lage et program som deler opp en fil i datagram.pakker, legger på sekvensnr og sjekksum, samt venter på kvittering før neste pakke sendes. Det beste hadde vært om jeg fikk overført et bilde feilfritt, selv om nettverkskabelen trekkes ut av pcen for en liten stund.

 

Noen som har tips om hvordan å angripe dette? Sikkerhet i form av autentisering+kryptering osv, er for a-kandidater – så ser bort fra dette til å begynne med.

 

kanskje greit å legge til detaljene for sender og mottaker:

 

sender skal: lese data fra fil dele innholdet inn i mindre pakker, påføre pakkene sekvensnr, påføre pakkene sjekksum, sende pakkene etter den valgte protokollen - dette innebærer spesielt at det må finnes timere som sørger for retransmisjon hvis kvittering ikke kommer.

 

Mottaker skal: kontrollere sjekksum og sende kvittering hvis pakken er OK. Kontrollere sekvensnummer. lagre data på fil (hvis sekvensnr er riktig)

Lenke til kommentar
Videoannonse
Annonse

Har vel et lignende fag på UiO nå, inf3190. Kommer ikke så tydelig fram hvilket nivå dette er snakk om, vi har ikke om kryptering og sånt.

 

Du kan jo se på foiler på UiO sin hjemmeside (søk etter inf3190). Det du beskriver i andre avsnitt er "Stop and wait". Eller så er vel "sliding window", "go back n" og "selectiv repeate" greie søkeord.

Lenke til kommentar
  • 1 måned senere...

Vell, jeg vet ikke hvilke grunn kunnskaper du har. Men det faktum at du har fått denne oppgaven sier jo litt, så begynner å si at du må da lage en udp tilkobling. (Enkelt eksempel her)

 

 

Du kan etter det lage et interface som inneholder feks metoden send og et par variabler som er crc32 checksum og seq nummer.

 

Så kan du lage en fil leser "randomaccessfile, bufferedreader" jeg foretrekker randomaccessfile. La oss si at pakke størrelse er maks 500byte.

 

1. Du splitter dataen fra filen i 500byte chunks og legger til sekvensnummer

2. Du sjekker crc til hele filen

3. Du sender crc til mottaker

4. Du sender pakkene som du har laget

5. Du setter da sammen pakkene ved hjelp av sekvensnummer du kan feks bruke seek i randomaccessfile hvis du vil skrive til filen med en gang pakken kommer

6. Når du har satt sammen pakkene til en fil genererer du crc av den filen du har motatt og matcher den mot den du fikk i starten

 

Alternativt kan du legge til crc for hver av pakkene slik at du slipper å må sende hele filen på nytt i tilfelle feil.

 

Håper dette hjalp, er ikke noe verdensmester i å forklare men har da prøvd i allefall.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...