Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3
  • TDAT2004 - Datakommunikasjon med nettverksprogrammering.
  • Oppgave 12: IMAP4
  • Torkil Solheim og Tor Skuggevik

Widget Connector
width1280
urlhttps://www.youtube.com/watch?v=8CT0h-lv0HQ
height720

Image Modified

1. Innledning

Hvor hører det valgte tema hjemme i lagmodellen. Hvilke standarder eller bestemmelser gjelder for dette temaet.

Internet Message Access Protocol version 4 revision one (IMAP4) er en protokoll brukt av klienter for å motta epost fra en e-post server.

Den første versjonen av IMAP ble designet i 1986 av Mark Crispin, og siden har vi sett flere versjoner inkludert IMAP2, IMAP3 og IMAP2bis.

Historisk har IMAP konkurrert med post office protocol (POP) som den mest utbredte protokollen, selv om flere andre (proprietære) protokoller har blitt brukt.

I nyere tid har den mer avanserte IMAP mer eller mindre foreldet POP selv om de fleste e-post klienter enda har støtte for begge.

2. Ønsket funksjonalitet

...

Hva er det man ønsker å oppnå, hvilke funksjonelle mangler vil man bøte på, hvorfor har man denne tjenesten eller dette systemet.

3. Virkemåte

Beskriv hvordan ting fungerer og gjøres. Oppbygning og struktur. Forklare med illustrasjoner eller skjermklipp, bilder eller analyse av pakkefangst.

4. Referanser

...

Ønsket funksjonalitet med IMAP er å forbedre interaksjonen mellom klienter og eposttjenere.

Med IMAP blir eposter lagret på en tjener og kan derfor aksesseres fra flere enheter samtidig. Handlinger utført på epostene blir synkronisert mellom alle enhetene som er tilkoblet Internett. Når en person for eksempel leser en ny epost blir denne eposten markert som «lest» og blir oppdatert på de andre enhetene. I tillegg vil handlinger en person gjør uten å være tilkoblet Internet bli synkronisert neste gang en internettkobling er etablert. 

Å lagre epostene på en filserver krever verdifull lagringsplass, men er veldig greit siden det vil fungere som en backup i tilfelle harddisken til en bruker blir ødelagt eller skulle gå tapt.

En annen funksjonalitet til IMAP er at brukeren kan velge å hente ut individuelle deler av en mail i MIME-formatet. Dette gjør at brukeren kan hente ut for eksempel kun teksten av en email uten å hente ut vedlagte filer.

I forhold til POP3 er IMAP4 en komplisert protokoll, men tilbyr mer funksjonalitet og er veldig fleksibel i praksis. POP3 lagrer som regel ikke epostene på en tjener, med en gang brukeren har hentet eposten blir den slettet fra tjeneren og kan derfor kun leses på en enhet. Denne protokollen fungerer derfor ikke så bra lenger, ettersom veldig mange har flere enheter som brukes til å lese epost.

 

3. Virkemåte

En sesjon starter med en TCP/IP-tilkobling initiert av klienten på port 143 (standard). Kommunikasjonen mellom klient og tjener oppnås ved spesifikke verb i en spør-svar utveksling, all kommunikasjon skjer med 7-bit tekst.

Det er viktig å påpeke at tilkoblingen er asynkron, det vil si både klient og tjener kan utføre transaksjoner uavhengig av hverandre.

Eksempelvis kan klienten først be om å få se innholdet i en innboks for så å sende en epost før han får svar på den første forespørselen. Tjeneren kan også gjøre dette ved å for eksempel oppdatere innboksen om det kommer ny epost.

Siden kommunikasjonen er asynkron må alle spørringer fra klienten inneholde et inkrementelt sekvensnummer som prefiks. Alle svar fra tjeneren vil da inneholde sekvensnummeret samt en av fem responser.

Disse responsene er:

KodeForklaring
OK

Transaksjonen var suksessfull

NOTransaksjonen feilet
BADSekvensfeil
PREAUTHBrukeren er allerede autorisert
BYETilkobling lukket

 

En sesjon i IMAP består av flere tilstander, der hver tilstand tillater ulike handlinger. Enhver sesjon er kjører så lenge klienten er aktiv.

De ulike tilstandene er:

Not Authenticated - Klienten er ikke autentisert og må etablere identitet og legitimasjon for å få tilgang til serveren.

 

Authenticated - Klienten er autorisert og kan nå lage, slette, samt manipulere postkasser(inkludert mapper). Men man kan ikke forandre innholdet.

 Klienten kan også abonnere/fjerne abonnement på offentlige mapper.

 NB! Innboks-postkassen kan ikke lages eller slettes, men man kan endre navnet, da lages en ny postkasse med det navnet og alle meldinger sendt til innboksen blir videresendt til den nye.

Herifra kan man også velge en postkasse for så å se/manipulere innholdet.

 

Selected - Klienten har åpnet en postkasse med Select, Statuseller Examine og er dermed i Selected-tilstanden.  

 Her kan man manipulere meldinger innenfor en bestemt postkasse.

 

Logout - Dette er perioden mellom en initiert logout og bekreftelse fra serveren.

I mellomtiden vil serveren slette medlinger markert for sletting, oppdatere markeringer, og oppheve valgte postkasser før den til slutt sender responsen BYE og avslutter tilkoblingen.

 

Handlinger:

TilstandKommandoForklaring
AlleCapabilityLister evnene serveren støtter
 NoopGjør i prinsippet ingen ting, men brukes for å holde tilkoblingen i live ved lav aktivitet
 LogoutAvslutter tilkoblingen
Not authenticatedStarttlsStarter TLS(Transport Layer Security) på serveren som muliggjør kryptering av meldinger
 AuthenticateAutentiserer klient med gyldig legitimasjon med gitt autentiseringsmekanisme om serveren støtter den, kan også sette et gitt ekstra sikkerhetslag
 LoginIdentifiserer klienten med brukernavn og passord, Bør ikke brukes på usikret nettverk da passordet sendes i klartekst
AuthenticatedCreate/Delete/RenameLager/sletter/gir nytt navn til en postkasse
 Subscribe/UnsubscribeLegg til/slett abonnering på en postkasse
 List/LSUBList skriver ut alle postkasser brukeren har tilgang til, LSUB skriver ut alle postkassene en bruker abonnerer på
 Select/ExamineSelect åpner en postkasse som brukeren kan både lese og skrive til (Read/write). Examine åpner en postkasse der brukeren kun kan lese innholdet (read-only)
 StatusGir informasjon om innholdet i en postkassen uten å forandre statusen eller innholdet til postkassen, informasjon som blir returnert er blant annet antall meldinger, nye meldinger og meldinger som brukeren ikke har sett
 AppendTar inn en postkasse og melding som parametere, legger inn meldingen i postkassen.
Selected

Copy

Kopierer meldinger til en annen postkasse
 FetchHenter en eller flere meldinger
 

Search

Tar inn søkeparametere og henter indeksnummer til meldinger som oppfyller parameterne
 StoreOverskriver hva en melding er markert som
 UID(Unique ID) Gjør at klienten kan bruke unike identifikatorer for Fetch, Copy, Search og Store istedenfor tall
 CheckServeren lager et checkpoint
 CloseKombinerer Check og Expunge, sesjonen går ut av den valgte postkassen og tilbake til en autorisert tilstand
 ExpungeServeren sletter alle meldinger som er markert for sletting

 

4. Referanser

How IT works: IMAP4

http://www.pop2imap.com/

Internet Message Access Protocol

RFC 3501