Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Skal beregne sjekksummen til dette UDP datagrammet:

Image RemovedImage Added

UDP-headere: Avsenderport: 60330, mottakerport: 80, lengde: 14. Nyttelast er 0x484549 som e ASCII for “HEI”"HEI".
Vi skal sende fra IP adresse 192.168.1.45 til 192.168.1.22. UDP har protokollnummer 17 (0x21).
Da ser pseudo-headeren vår slik ut:

 

 




Vi grupperer hvert felt av pseudo-headeren i segmenter på 16-bits hver.

(COA8+012D+C0A8+0116+0021+000E)16=183C216Image Added

Dere ser kanskje at summen på 20 bits, som gjør at vi får overflow på en 16-bits enhet. Vi gjør all mellomregning først, så tar vi hånd om dette til slutt, for husk; det er kun satt av 16-bits til checksum i UDP-headeren.

Nå som vi har summert feltene i pseudo-headeren, er det på tide å summere dette med feltene i UDP-headeren:

(183C2+EBAA+001E+000E+4845+0049)16=2B82616Image Added

Merk at vi har to tilfeller her. Når sender beregner sjekksum, er sjekksumfeltet i UDP headeren 0. Når mottaker beregner den, er den forskjellig fra 0.

...

Splitter summen i to deler: 0x47D9 og 0x0002, og summerer disse og får:

(1011 1000 0010 1000)2=B82816Image Added

Nå gjør vi en bitvis NOT operasjon og får 0x47D7

...