Sólin Sólin Rís 05:40 • sest 21:16 í Reykjavík
Tunglið Tunglið Rís 15:13 • Sest 05:59 í Reykjavík
Flóð Flóð Árdegis: 03:57 • Síðdegis: 16:31 í Reykjavík
Fjaran Fjara Árdegis: 10:23 • Síðdegis: 22:34 í Reykjavík

Hvernig verkar tölvupóstur?

Elías Halldór Ágústsson

Þegar maður sendir tölvupóst fer af stað löng atburðarás sem lýkur yfirleitt nokkrum sekúndum síðar er pósturinn lendir á áfangastað.

Ef ég ætlaði að senda þessa grein í tölvupósti myndi ég ýta á "Senda" takkann á póstforritinu mínu. Þá gerist eftirfarandi:

  1. Póstforritið byrjar á að mynda skjalið sem verður hið eiginlega skeyti. Það er gert samkvæmt staðli sem IETF (Internet Engineering Task Force) gefur út og kallast RFC2822.

    Tölvupóstsskjalið hefur tvo aðalhluta, eða haus (e. header) og meginmál (e. body). Hver lína í skjalinu fer ekki yfir 80 stafi og lok hverrar línu er táknuð með sérstöku merki, CR-LF (0D og 0A í ASCII-stafasettinu). Eitt auka CR-LF er notað til að aðgreina haus frá meginmáli.

    Haus er samansettur af mörgum höfuðlínum, sem allar eru á sniðinu "Merki: gildi". Sum merki eru nauðsynleg í haus svo skeyti teljist gilt til sendingar, en þau eru From (frá), To (til), Date (dagsetning) og Message-ID (einkenniskóði skeytis). From er netfang sendanda sem póstforritið fær úr stilliskrám forritsins, To er netfang viðtakanda sem var tilgreint í skeytinu, Date og Message-ID býr póstforritið sjálft til. Póstforritið geymir einnig nafn sendanda og viðtakenda til að nota við sendingu.

    Ef einhver hluti haussins er með öðrum stöfum en í US-ASCII stafasettinu eins og til dæmis séríslenskir stafir, eru þeir kóðaðir á sérstakan hátt, eins og útskýrt er í MIME-staðlinum RFC2045.

    Meginmál skeytis getur verið í mörgum sjálfstæðum einingum sem nefnast viðhengi, en form þeirra er útskýrt í fyrrgreindum MIME-staðli.

  2. Þegar búið er að mynda skeytið þarf að senda það áfram til netþjóns internetfyrirtækisins sem notandinn er í internetáskrift hjá. Póstforrit notandans flettir upp á skilgreindum SMTP-netþjóni í stilliskrám sínum og spyr stýrikerfið hver IP-tala þess netþjóns sé. IP-talan er einkennisnúmer póstþjónsins, nokkurs konar heimilisfang hans. Án hennar myndi forritið ekki vita hvert ætti að senda póstinn. Póstforritið tengist síðan þeirri IP-tölu (á TCP-porti 25), og bíður eftir að fá senda þar línu sem byrjar á tölustafnum 2 og inniheldur annað hvort SMTP eða ESMTP (sem eru sérstakar samskiptareglur sem tölvur nota sín á milli):

    220 mail.hi.is SMTP

  3. Póstforritið hefur samskiptin með því að senda skilaboðin HELO (ef SMTP) eða EHLO (ef ESMTP) ásamt netnafni tölvunnar sem það ætlar að hafa samband við, til dæmis helgafell.rhi.hi.is.

    HELO helgafell.rhi.hi.is

    Póstþjónninn athugar hvaðan skilaboðin koma og svarar:

    250 mail.hi.is Hello elias@helgafell.rhi.hi.is [130.208.69.56], pleased to meet you

  4. Þetta staðfestir að "einhver sé við" hinum megin á línunni. Póstforritið byrjar á að segja að hér sé skeyti frá tilteknum sendanda:

    MAIL FROM:

    Póstþjónn athugar hvort ég sé í lagi og svarar:

    250 2.1.0 ... Sender ok

    Póstforritið tilgreinir þá viðtakendur:

    RCPT TO:

    Og fær svarið:

    250 2.1.5

    Allir póstþjónar sem koma til með að taka við þessu skeyti geyma upplýsingar um sendanda og viðtakendur með skeytinu þótt þær séu ekki raunverulegur hluti þess.

    Síðan getur eiginleg sending skeytisins átt sér stað. Póstforrit segir póstþjóninum að nú hefjist gagnasending:

    DATA

    Og póstþjónn svarar:

    354 Enter mail, end with "." on a line by itself

    Póstforritið getur nú farið að senda sjálft skeytið:


    > Hvernig verkar tölvupóstur?

    Þegar maður sendir tölvupóst fer af stað löng atburðarás sem lýkur yfirleitt nokkrum sekúndum síðar er pósturinn lendir á áfangastað...

    ...og svo framvegis. Línur í haus sem innihalda íslenska stafi eru kóðaðar eins og nefnt var í grein 1). Þegar skeytið er allt komið yfir sendir póstforritið einn punkt sér á línu. Póstþjónninn svarar að skeytið sé móttekið:

    250 2.0.0 j8SNa3u6023446 Message accepted for delivery

    Kóðinn sem kemur á eftir tölunum er einkennisnúmer fyrir þennan póst á þessum póstþjóni.

  5. Póstþjónninn hefur nú tekið við skeytinu, en þarf þá að ákveða hvað gera skuli við það. Ef lénsheitið sem er vinstra megin í póstfanginu er ekki eitt af þeim lénsheitum sem þessi póstþjónn sér um spyr hann stýrikerfið hvaða póstþjónn á netinu sjái um að þjóna þessu léni. Stýrikerfið sendir fyrirspurn til DNS þjóns til að vita nafn þess netþjóns sem er merktur MX í því léni og endurtekur ferli það sem hófst í grein 2).

  6. Þegar póstþjónninn sem er ábyrgur fyrir léni viðtakanda fær póstinn reynir hann að skrifa hann í pósthólf notanda. Pósthólfið sjálft getur verið af ýmsum gerðum, til dæmis flöt textaskrá eða færslur í venslagagnagrunni. Algengast er þó að það sé eins og mappa með einni skrá fyrir hvert skeyti og möguleika á undirmöppum.

    Nú er hlutverki samskiptareglunnar SMTP lokið, pósturinn er kominn á áfangastað í pósthólf viðtakanda hjá netþjónustunni hans.

  7. Nú þarf viðtakandinn að sækja póstinn sinn. Til eru ýmsar leiðir til að gera það og kunna flest póstforrit á nokkrar. Helstu samskiptareglur sem eru notaðar heita POP3 og IMAP. Einnig eru til lítt skjalaðar reglur sem til dæmis Exchange og Lotus Notes nota gagnvart biðlurum sínum. Einnig eru til ýmis vefviðmót sem veita nokkurs konar eftirlíkingu af póstforriti.

  8. Flest póstforrit eru þannig hönnuð að einfaldast er að setja upp svokallaða POP3-tengingu við pósthólf. Ef viðtakandinn er með POP3-tengingu við pósthólfið sitt og smellir á "Sækja póst" þá hefst þetta samtal á milli póstforrits viðtakandans og POP3-póstþjóns hans á TCP-porti 110:

    USER visindi

    POP3 póstþjónninn svarar:

    +OK Name is a valid mailbox

    Póstforritið sendir:

    PASS efla

    POP3 póstþjónninn svarar:

    +OK Mailbox locked and ready

    Póstforritið sendir:

    LIST

    POP3 póstþjónninn svarar:

    +OK scan listing follows 1 6660

    Póstforritið sendir:

    RETR 1

    POP3 póstþjónninn svarar með því að senda allt skeytið yfir (en í þessu tilfelli er það er 6660 stafir að lengd).

    Póstforritið les skeytið og birtir það snyrtilega í fallegum glugga ásamt því að vista það á disk viðtakanda. Póstforritið endar svo samtalið með því að biðja póstþjóninn að eyða afriti skeytisins sem þjónninn geymir:

    DELE 1

    Póstþjónninn svarar:

    +OK message deleted

    Póstforritið sendir:

    QUIT

    Póstþjónninn sendir:

    +OK

Allt þetta ferli, frá því póstur er sendur og þar til viðtakandi sér hann í póstforriti sínu, getur tekið innan við tvær sekúndur. Oftast tekur það örlítið lengur, stundum er póstflæðið það mikið að biðraðir stækka og sumir póstþjónar skima allan póst sem fer í gegn eftir veirum og ruslauglýsingum. Slíkt getur tekið tíma, en verður þó sjaldan meira en örfáar sekúndur fyrir hvern meðalpóst.

Það skal tekið fram að til að einfalda myndina var ekkert var minnst á dulritun, en hún er æskileg á öllum stigum þessa ferlis. Um dulritun er hægt að lesa í svari Snorra Agnarssonar, Er hægt að dulkóða gagnagrunn á heilbrigðissviði þannig að enginn geti fundið ákveðinn einstakling? Ennfremur var ekkert minnst á auðkenningu gagnvart SMTP-þjónum og öruggar auðkenningaraðferðir, af sömu ástæðum.

Ég verð þó að játa hér í lokin að þetta var ekki fyrsta svarið sem kom upp í hugann þegar ég heyrði spurninguna. Fyrstu viðbrögð mín voru að svara bara: "Ágætlega, takk fyrir."

Frekara lesefni af Vísindavefnum:

Ítarefni:

Höfundur

Unix kerfisstjóri hjá Reiknistofnun HÍ

Útgáfudagur

3.10.2005

Spyrjandi

Kári Ólafsson
Karítas Ósk, f. 1990
Jóhann Garðar Þorbjörnsson

Tilvísun

Elías Halldór Ágústsson. „Hvernig verkar tölvupóstur?“ Vísindavefurinn, 3. október 2005. Sótt 19. apríl 2024. http://visindavefur.is/svar.php?id=5303.

Elías Halldór Ágústsson. (2005, 3. október). Hvernig verkar tölvupóstur? Vísindavefurinn. Sótt af http://visindavefur.is/svar.php?id=5303

Elías Halldór Ágústsson. „Hvernig verkar tölvupóstur?“ Vísindavefurinn. 3. okt. 2005. Vefsíða. 19. apr. 2024. <http://visindavefur.is/svar.php?id=5303>.

Chicago | APA | MLA

Spyrja

Sendu inn spurningu LeiðbeiningarTil baka

Hér getur þú sent okkur nýjar spurningar um vísindaleg efni.

Hafðu spurninguna stutta og hnitmiðaða og sendu aðeins eina í einu. Einlægar og vandaðar spurningar um mikilvæg efni eru líklegastar til að kalla fram vönduð og greið svör. Ekki er víst að tími vinnist til að svara öllum spurningum.

Persónulegar upplýsingar um spyrjendur eru eingöngu notaðar í starfsemi vefsins, til dæmis til að svör verði við hæfi spyrjenda. Spurningum er ekki sinnt ef spyrjandi villir á sér heimildir eða segir ekki nægileg deili á sér.

Spurningum sem eru ekki á verksviði vefsins er eytt.

Að öðru leyti er hægt að spyrja Vísindavefinn um allt milli himins og jarðar!

=

Senda grein til vinar

=

Hvernig verkar tölvupóstur?
Þegar maður sendir tölvupóst fer af stað löng atburðarás sem lýkur yfirleitt nokkrum sekúndum síðar er pósturinn lendir á áfangastað.

Ef ég ætlaði að senda þessa grein í tölvupósti myndi ég ýta á "Senda" takkann á póstforritinu mínu. Þá gerist eftirfarandi:

  1. Póstforritið byrjar á að mynda skjalið sem verður hið eiginlega skeyti. Það er gert samkvæmt staðli sem IETF (Internet Engineering Task Force) gefur út og kallast RFC2822.

    Tölvupóstsskjalið hefur tvo aðalhluta, eða haus (e. header) og meginmál (e. body). Hver lína í skjalinu fer ekki yfir 80 stafi og lok hverrar línu er táknuð með sérstöku merki, CR-LF (0D og 0A í ASCII-stafasettinu). Eitt auka CR-LF er notað til að aðgreina haus frá meginmáli.

    Haus er samansettur af mörgum höfuðlínum, sem allar eru á sniðinu "Merki: gildi". Sum merki eru nauðsynleg í haus svo skeyti teljist gilt til sendingar, en þau eru From (frá), To (til), Date (dagsetning) og Message-ID (einkenniskóði skeytis). From er netfang sendanda sem póstforritið fær úr stilliskrám forritsins, To er netfang viðtakanda sem var tilgreint í skeytinu, Date og Message-ID býr póstforritið sjálft til. Póstforritið geymir einnig nafn sendanda og viðtakenda til að nota við sendingu.

    Ef einhver hluti haussins er með öðrum stöfum en í US-ASCII stafasettinu eins og til dæmis séríslenskir stafir, eru þeir kóðaðir á sérstakan hátt, eins og útskýrt er í MIME-staðlinum RFC2045.

    Meginmál skeytis getur verið í mörgum sjálfstæðum einingum sem nefnast viðhengi, en form þeirra er útskýrt í fyrrgreindum MIME-staðli.

  2. Þegar búið er að mynda skeytið þarf að senda það áfram til netþjóns internetfyrirtækisins sem notandinn er í internetáskrift hjá. Póstforrit notandans flettir upp á skilgreindum SMTP-netþjóni í stilliskrám sínum og spyr stýrikerfið hver IP-tala þess netþjóns sé. IP-talan er einkennisnúmer póstþjónsins, nokkurs konar heimilisfang hans. Án hennar myndi forritið ekki vita hvert ætti að senda póstinn. Póstforritið tengist síðan þeirri IP-tölu (á TCP-porti 25), og bíður eftir að fá senda þar línu sem byrjar á tölustafnum 2 og inniheldur annað hvort SMTP eða ESMTP (sem eru sérstakar samskiptareglur sem tölvur nota sín á milli):

    220 mail.hi.is SMTP

  3. Póstforritið hefur samskiptin með því að senda skilaboðin HELO (ef SMTP) eða EHLO (ef ESMTP) ásamt netnafni tölvunnar sem það ætlar að hafa samband við, til dæmis helgafell.rhi.hi.is.

    HELO helgafell.rhi.hi.is

    Póstþjónninn athugar hvaðan skilaboðin koma og svarar:

    250 mail.hi.is Hello elias@helgafell.rhi.hi.is [130.208.69.56], pleased to meet you

  4. Þetta staðfestir að "einhver sé við" hinum megin á línunni. Póstforritið byrjar á að segja að hér sé skeyti frá tilteknum sendanda:

    MAIL FROM:

    Póstþjónn athugar hvort ég sé í lagi og svarar:

    250 2.1.0 ... Sender ok

    Póstforritið tilgreinir þá viðtakendur:

    RCPT TO:

    Og fær svarið:

    250 2.1.5

    Allir póstþjónar sem koma til með að taka við þessu skeyti geyma upplýsingar um sendanda og viðtakendur með skeytinu þótt þær séu ekki raunverulegur hluti þess.

    Síðan getur eiginleg sending skeytisins átt sér stað. Póstforrit segir póstþjóninum að nú hefjist gagnasending:

    DATA

    Og póstþjónn svarar:

    354 Enter mail, end with "." on a line by itself

    Póstforritið getur nú farið að senda sjálft skeytið:


    > Hvernig verkar tölvupóstur?

    Þegar maður sendir tölvupóst fer af stað löng atburðarás sem lýkur yfirleitt nokkrum sekúndum síðar er pósturinn lendir á áfangastað...

    ...og svo framvegis. Línur í haus sem innihalda íslenska stafi eru kóðaðar eins og nefnt var í grein 1). Þegar skeytið er allt komið yfir sendir póstforritið einn punkt sér á línu. Póstþjónninn svarar að skeytið sé móttekið:

    250 2.0.0 j8SNa3u6023446 Message accepted for delivery

    Kóðinn sem kemur á eftir tölunum er einkennisnúmer fyrir þennan póst á þessum póstþjóni.

  5. Póstþjónninn hefur nú tekið við skeytinu, en þarf þá að ákveða hvað gera skuli við það. Ef lénsheitið sem er vinstra megin í póstfanginu er ekki eitt af þeim lénsheitum sem þessi póstþjónn sér um spyr hann stýrikerfið hvaða póstþjónn á netinu sjái um að þjóna þessu léni. Stýrikerfið sendir fyrirspurn til DNS þjóns til að vita nafn þess netþjóns sem er merktur MX í því léni og endurtekur ferli það sem hófst í grein 2).

  6. Þegar póstþjónninn sem er ábyrgur fyrir léni viðtakanda fær póstinn reynir hann að skrifa hann í pósthólf notanda. Pósthólfið sjálft getur verið af ýmsum gerðum, til dæmis flöt textaskrá eða færslur í venslagagnagrunni. Algengast er þó að það sé eins og mappa með einni skrá fyrir hvert skeyti og möguleika á undirmöppum.

    Nú er hlutverki samskiptareglunnar SMTP lokið, pósturinn er kominn á áfangastað í pósthólf viðtakanda hjá netþjónustunni hans.

  7. Nú þarf viðtakandinn að sækja póstinn sinn. Til eru ýmsar leiðir til að gera það og kunna flest póstforrit á nokkrar. Helstu samskiptareglur sem eru notaðar heita POP3 og IMAP. Einnig eru til lítt skjalaðar reglur sem til dæmis Exchange og Lotus Notes nota gagnvart biðlurum sínum. Einnig eru til ýmis vefviðmót sem veita nokkurs konar eftirlíkingu af póstforriti.

  8. Flest póstforrit eru þannig hönnuð að einfaldast er að setja upp svokallaða POP3-tengingu við pósthólf. Ef viðtakandinn er með POP3-tengingu við pósthólfið sitt og smellir á "Sækja póst" þá hefst þetta samtal á milli póstforrits viðtakandans og POP3-póstþjóns hans á TCP-porti 110:

    USER visindi

    POP3 póstþjónninn svarar:

    +OK Name is a valid mailbox

    Póstforritið sendir:

    PASS efla

    POP3 póstþjónninn svarar:

    +OK Mailbox locked and ready

    Póstforritið sendir:

    LIST

    POP3 póstþjónninn svarar:

    +OK scan listing follows 1 6660

    Póstforritið sendir:

    RETR 1

    POP3 póstþjónninn svarar með því að senda allt skeytið yfir (en í þessu tilfelli er það er 6660 stafir að lengd).

    Póstforritið les skeytið og birtir það snyrtilega í fallegum glugga ásamt því að vista það á disk viðtakanda. Póstforritið endar svo samtalið með því að biðja póstþjóninn að eyða afriti skeytisins sem þjónninn geymir:

    DELE 1

    Póstþjónninn svarar:

    +OK message deleted

    Póstforritið sendir:

    QUIT

    Póstþjónninn sendir:

    +OK

Allt þetta ferli, frá því póstur er sendur og þar til viðtakandi sér hann í póstforriti sínu, getur tekið innan við tvær sekúndur. Oftast tekur það örlítið lengur, stundum er póstflæðið það mikið að biðraðir stækka og sumir póstþjónar skima allan póst sem fer í gegn eftir veirum og ruslauglýsingum. Slíkt getur tekið tíma, en verður þó sjaldan meira en örfáar sekúndur fyrir hvern meðalpóst.

Það skal tekið fram að til að einfalda myndina var ekkert var minnst á dulritun, en hún er æskileg á öllum stigum þessa ferlis. Um dulritun er hægt að lesa í svari Snorra Agnarssonar, Er hægt að dulkóða gagnagrunn á heilbrigðissviði þannig að enginn geti fundið ákveðinn einstakling? Ennfremur var ekkert minnst á auðkenningu gagnvart SMTP-þjónum og öruggar auðkenningaraðferðir, af sömu ástæðum.

Ég verð þó að játa hér í lokin að þetta var ekki fyrsta svarið sem kom upp í hugann þegar ég heyrði spurninguna. Fyrstu viðbrögð mín voru að svara bara: "Ágætlega, takk fyrir."

Frekara lesefni af Vísindavefnum:

Ítarefni:...