Računalne mreže
 Studij elektrotehnike
 Tehnički fakultet Sveučilišta u Rijeci
 
 

 

DNS

E-mail

 

Home : O kolegiju : Predavanja : Vježbe : Ocjenjivanje

 

IX. APLIKACIJSKI SLOJ

  • slojevi ispod aplikacijskog sloja osiguravaju pouzdani prijenos, ali ne vrše nikakav konkretni posao za korisnike
  • u aplikacijskom sloju se pored korisničkih aplikacija nalaze i pomoćni protokoli koji omogućuju njihovo izvršavanje: protokoli (i koncepti) koji osiguravaju sigurnost, DNS koji upravlja dodjelom imena na Internetu i protokol za upravljanje mrežom

 


1. DNS - Domain Name System

  • programi rijetko koriste brojčane IP adrese hostova, umjesto njih koriste ASCII stringove to jest tekstualna imena ili puna imena domena (fully qualified domain name, FQDN)
  • potreban je mehanizam za pretvaranje iz jednog oblika u drugi
  • na primjer, umjesto pero@161.53.45.3 -> pero@mapef.pefri.hr
  • sama mreža i dalje koristi IP (mrežne) adrese
  • u početku razvoja ARPANET-a koristila se jedna datoteka hosts koja je sadržavala popis svih hostova sa njihovim IP adresama i koju su hostovi svake noći dohvaćali sa računala koje ju je održavalo
  • povećanjem broja računala u mreži razvila se hijerarhijska shema koja se bazira na imenu domena - DNS (Domain Name System) i koji prvenstveno služi za preslikavanje imena hostova u njihove IP adrese

Korištenje DNS

  • da bi se ime preslikalo u IP adresu, aplikacijski program poziva proceduru koja se naziva resolver i kojoj kao parametar daje ime;
  • resolver šalje UDP paket lokalnom DNS serveru koji pronalazi odgovarajuću IP adresu i vraća je resolveru, a on programu koji ga je pozvao
  • taj program sada ima IP adresu te može uspostaviti TCP vezu sa odredištem ili slati UDP pakete

 


1.1 DNS imena

 

  • Internet je konceptualno podijeljen u preko 200 domena najvišeg nivoa od kojih svaka sadrži mnoštvo hostova,
  • svaka domena najvišeg nivoa podijeljena je u poddomene (subdomains) koje se dalje dijele
  • sve domene mogu prikazati kao stablo čiji su listovi domene bez poddomena (ali sadrže računala), na primjer:

 

Slika: Dio Internet stabla domena (Tanenbaum, 1996)


  • domene najvišeg nivoa mogu biti:
    • generičke (generic domains)
    • domene zemalja (country domains):
  • generičke su:
    • com - komercijalne  (commercial)
    • edu - za obrazovne institucije (educational institutions)
    • gov - za vladine institucije (government)
    • int - za međunarodne organizacije (international organizations)
    • mil - za U.S. vojne institucije (military)
    • net - za davaoce mrežnih usluga (network prowiders)
    • org - za nekomercijalne organizacije (nonprofit organizations)
  • domene zemalja uključuju po jednu oznaku za svaku zemlju
  • 2000. ICANN odobrio nove generičke domene:
    • biz - poslovni korisnici (businesses)
    • info (information)
    • name - imena osoba
    • pro (professions) - zanimanja, na pr. pravnici, liječnici,...
    • aero (aerospace industry) - avionska industrija
    • coop (co-operatives) - zadruge
    • museum - muzeji
  • u praksi skoro sve organizacije u US su pod nekom generičkom domenom, a u ostalim zemljama pod domenom te zemlje
  • domene oblika ime_tvrtke.com lako se registriraju ukoliko već nisu zauzete

 

  • svaka domena je imenovana stazom u stablu od njenog čvora prema neimenovanom korijenu, a komponente su razdvojene točkama, na pr.
    • eng.yale.edu
    • robot.ai.cs.yale.edu
    • edu.sun.com
  • u imenima domena se ne razlikuju mala i velika slova, imena komponenti mogu biti duga do 63 znaka, a čitavo ime do 255 znakova
  • da bi se kreirala nova domena, potrebna je dozvola domene koja bi je trebala sadržavati
  • kad je jednom nova domena kreirana i registrirana, može kreirati svoje poddomene bez potreba da traži dozvolu od nekog višeg od nje u stablu (hijerarhiji)
  • imena slijede organizacijske granice, a ne fizičke mreže -> hostovi u različitim lokalnim mrežama mogu pripadati istoj domeni i obrnuto

 


1.2 Poslužitelji imena (Name Servers) 

  • želi se izbjeći jedan server na kojem je cijela DNS baza -> prostor DNS imena podijeljen je u neprekrivajuće zone, na pr:

Slika: Podjela dijela prostora DNS na zone (Tanenbaum, 1996)

  • svaka zona sadrži dio stabla, te DNS servere koji imaju informacije o toj zoni
  • uobičajeno je da postoji
    • jedan primarni DNS server - informacije dohvaća iz svoje datoteke
    • jedan ili više sekundarnih DNS servera - informacije dobivaju od primarnih DNS servera
  • kad resolver primi upit o imenu domene, šalje ga jednom od lokalnih DNS servera
  • ako domena pripada u njegovu nadležnost, lokalni server vraća traženi podatak: uvijek točan podatak (authoritative record)
  • ako je riječ o udaljenoj domeni za koju lokalno ne postoje informacije, DNS server šalje zahtjev DNS serveru domene najvišeg nivoa kojemu pripada ta tražena domena
  • taj server prosljeđuje zahtjev DNS serverima odgovarajućih poddomena
  • primjer rekurzivnog upita (recursive query):
    • resolver na flits.cs.vu.nl želi saznati IP adresu hosta linda.cs.yale.edu:

Slika: Podjela dijela prostora DNS na zone (Tanenbaum, 1996)

  • kada se podatak o imenu vrati cs.vu.nl DNS serveru, sprema ga u cache - to nije authoritative record jer se ev. promjene koje načini cs.yale.edu neće proslijediti


2. ELEKTRONSKA POŠTA (Electronic mail, email) 

  • usluga za razmjenjivanje poruka na računalima povezanim u Internet - najpopularniji način asinkrone komunikacije
  • prvi email sustavi koristili su običan protokol za prijenos datoteka s tim da je prvi redak poruke (tj. datoteke) sadržavao adresu primatelja
  • neki nedostaci takvog pristupa bili su:
    • poruke nisu imale svoju unutrašnju strukturu, pa je njihova obrada bila teška,
    • slanje poruke grupi ljudi bilo je nezgodno
    • pošiljatelj nije znao da li je njegova poruka stigla do primatelja ili nije
    • korisničko sučelje bilo je loše integrirano sa sistemom za prijenos datoteka,
    • nije bilo moguće kreirati i poslati poruku koja se sastojala i od teksta, grafike, zvuka...
  • 1982. objavljen je ARPANET-ov prijedlog za email sistem kao RFC 821 (protokol za prijenos) i RFC 822 (format poruke)

 


2.1 Arhitektura i usluge 

  • email sistem se obično sastoji od dva podsustava:
    • korisnički (user agents) koji omogućuje slanje i čitanje pošte
    • podsustav za slanje poruka (message transfer) koji prenosi poruke od izvora do odredišta
  • korisnički podsustavi (agenti) su lokalni programi koji omogućuju interakciju sa email sistemom preko naredbenih redaka, menua ili grafičkih sučelja
  • podsustavi (agenti) za slanje poruka su obično deamon programi koji se izvršavaju u pozadini i prenose email poruke kroz sistem
  • 5 osnovnih funkcija email sustava:
  1. izrada (composition) - proces kreiranja poruka i odgovora na poruke
  2. prijenos (transfer) - prenošenje poruka od pošiljatelje do primatelja (uspostavljanje veze - sa odredištem ili nekim strojem na putu, slanje poruke, oslobađanje veze)
  3. izvještavanje (reporting) - da li je poruka dostavljena ili nije
  4. prikaz (displaying) - da bi se pročitale primljene poruke
  5. raspoređivanje (disposition) - spremanje, brisanje, prosljeđivanje... primljenih poruka

 

  • uz osnovne, većina email sustava podržava i dodatne funkcije (npr. automatsko prosljeđivanje poruka na drugu adresu, kreiranje različitih “poštanskih pretinaca” (mailboxes, folders) za čuvanje poruka, kreiranje poštanskih listi (mailing lists), kreiranje šifriranog emaila, definiranje prioriteta poruka...)
  • kod email sustava razlikuje se omotnica (envelope) i sadržaj
  • omotnica uključuje unutar sebe poruku i sadrži sve informacije koje su prijenosnim agentima potrebne za prijenos poruke, odnosno za usmjeravanje na pravu adresu
  • poruka unutar omotnice sastoji se od zaglavlja (header) sa kontrolnim podacima za korisničke agente i tijela (body) sa samom porukom

Slika: Usporedba omotnice i sadržaja obične i elektronske pošte (Tanenbaum, 1996)


2.2 Korisnički podsustav (user agent) 

  • program za:
    • prikazivanje
    • slanje poruka
    • čitanje poruka
    • odgovaranje na poruke i prosljeđivanje
    • upravljanje poštanskim sandučićima
  • programi najčešće koriste izbornike ili ikone kao sučelje -> ista funkcionalnost

Slanje maila

  • navode se barem poruka i odredišna adresa oblika korisnik@dns_adresa

 

Slika: primjer poruke pripremljene za slanje u MS Outlook Express programu

Čitanje poruka

  • prikaz poruka s različitim poljima

Slika: popis pristiglih poruka u MS Outlook Express programu


2.3 Formati poruka

 

  • osnovni ASCII email po RFC 822 i multimedijska proširenja za RFC 822

ASCII email po RFC 822 

  • poruka se sastoji od primitivne omotnice, nekoliko polja zaglavlja, praznog retka i tijela poruke; svako polje zaglavlja se sastoji od jednog retka ASCII teksta sa imenom polja, dvotočkom i (za većinu polja) vrijednosti
  • glavna polja koja se odnose na prijenos poruka:

To:

email adresa primaoca

Cc:

email adrese osoba kojima su poslane kopije poruka

Bcc:

email adrese osoba kojima su poslane kopije, a ostali primaoci ih ne vide

From:

osoba koja je kreirala poruku

Sender:

email adresa pošiljaoca

Received:

kako je poruka putovala od polazišne adrese do odredišta

Return-Path:

bilježi se staza do pošiljaoca

 

  • Najčešća dodatna polja koja koriste e-mail klijenti ili sami korisnici su:

Date:

datum i vrijeme slanja

Reply-To:

email adresa na koju će se poslati odgovor

Message-Id:

jedinstveni broj poruke za kasnije referenciranje

In-Reply-To:

Message-Id poruke na koju se odgovorilo

References:

ostali važni Message-Id

Subject:

 naslov poruke

  • korisnicima je dozvoljeno definirati nova polja za vlastitu upotrebu uz uvjet da njihova imena počinju s X- kako se ne bi zamijenila za službeno definirana polja

  • Primjer: X-Mailer: polje sadrži podatak o email programu korištenom za slanje poruke

 

Multimedijska proširenja za RFC 822 - MIME (Multipurpose Internet Mail Extensions)

  • kod RFC 822 problem za poruke koje pisane na jezicima s posebnim znakovima ili koje sadrže netekstualne sadržaje (slike, zvuk,...)
  • i dalje se koristi RFC 822 format, ali se u tijelo poruke dodaje nova struktura i definiraju se pravila šifriranja za poruke koje nisu ASCII
  • na taj se način MIME poruke mogu slati korištenjem postojećih mail programa i protokola
  • MIME definira 5 novih zaglavlje poruka:
     

    MIME-Version:

    govori da je riječ o MIME poruci određene verzije (poruka koja nema to polje smatra se običnom tekstualnom porukom)

    Content-Description:

    ACSII string koji govori primatelju što je u poruci

    Content-ID:

    služi za identificiranje sadržaja

    Content-Transfer-Encoding:

     način kodiranja (šifriranja) netekstualnog dijela

    Content-Type:

    određuje tip i podtip tijela poruke, npr. video/mpeg

  1. MIME-Version: - govori korisničkom agentu da je riječ o MIME poruci određene verzije (poruka koja nema to polje smatra se običnom tekstualnom porukom)
  2. Content-Description: - ACSII string koji govori primatelju što je u poruci
  3. Content-ID: - za identificiranje sadržaja
  4. Content-Transfer-Encoding: - na koji način je netekstualni dio šifriran da se može prenijeti mrežom, može se koristiti 5 shema:
  • običan ASCII tekst - znakovi koriste 7 bita, a dostavljaju se direktno pomoću email protokola (ako reci ne prelaze dužinu od 1000 znakova)
  • 8-bitno šifriranje - narušava originalni Internet email protokol, pa mu je potrebno implementirati neka dodatke
  • binarno šifriranje - za slanje binarnih datoteka koje ne poštuju ograničenje od 1000 znakova u redu; nepouzdano, bolji način:
  • base64 šifriranje - grupe od 24 bita razbijene su u četiri 6-bitna dijela i svaki se šalje kao ASCII znak; šifra (određuje se za svaku vrijednost od 0-63) je “A” za 0, “B” za 1, ..., nakon velikih slova slijedi 26 malih, zatim 10 brojki i na kraju + za 62 i / za 63; znakovi == i = označavaju da zadnja grupa ima samo 8, odnosno 16 bita
  • quoted-printable šifriranje - 7-bitni ASCII kod kojeg su svi znakovi iznad 127 šifrirani kao znak = nakon kojeg slijedi vrijednost znaka kao 2 heksadecimalne znamenke; koristio se za poruke koje su gotovo cijele ACSII osim nekoliko ne-ASCII znakova

5. Content-Type: - određuje tip i podtip tijela poruke, npr: Content-Type: video/mpeg 

  • MIME tipovi i podtipovi koji su bili početno definirani (u RFC 1521):

text/plain

text/richtext

image/gif

image/jpeg

audio/basic

video/mpeg

application/octet-stream

application/postscript

message/rfc822

message/partial

message/external-body

multipart/mixed

multipart/alternative

multipart/parallel

multipart/digest

 

  • Text, Image, Audio, Video i Application tipovi se odnose na sam multimedijski sadržaj koji se šalje porukom,

  • Message navodi kako je jedna poruka uključena u drugu (npr. kod prosljeđivanja)

  • Multipart opisuje poruku koja se sastoji od više dijelova pri čemu svaki dio ima jasno označen početak i kraj

 Na primjer:

multipart/alternative – za poruku koja je poslana i kao obični tekst i kao HTML tekst

multipart/mixed – za poruku s tekstom i sa slikom kao dodatkom

  • danas su prošireni novim tipovima i podtipovima, na primjer za poruku koja sadrži HTML tekst - Content-Type: text/html 

Primjer multipart poruke:

 

Received: from as104.tel.hr (as104.tel.hr [195.29.150.2])
by mapef.pefri.hr (8.9.3/8.9.3/Debian/GNU) with ESMTP id HAA14139
for <natasah@pefri.hr>; Sun, 11 Mar 2001 07:20:23 +0100
Received: from natasa (ar4-m182.net.hinet.hr [195.29.67.182])
by as104.tel.hr (0.0.0/0.0.0) with SMTP id HAA313598
for <natasah@pefri.hr>; Sun, 11 Mar 2001 07:25:31 +0100 (MET)
From: "Natasa Hoic-Bozic" <natasa.hoic@ri.tel.hr>
To: <natasah@pefri.hr>
Subject: Primjer MIME email poruke
Date: Sun, 11 Mar 2001 07:22:45 +0100
Message-ID: <DLEOJOBEMEHDJAAMJGLHOEICCCAA.natasa.hoic@ri.tel.hr>
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_NextPart_000_0000_01C0A9FC.1176B960"
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0)
Importance: Normal
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400
Status:

This is a multi-part message in MIME format.

------=_NextPart_000_0000_01C0A9FC.1176B960
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0001_01C0A9FC.1176B960"

------=_NextPart_001_0001_01C0A9FC.1176B960
Content-Type: text/plain;
charset="iso-8859-2"
Content-Transfer-Encoding: 7bit

Ovo je poruka u HTML formatu koja ima pridodanu binarnu datoteku sa slikom
jpeg formata.

------=_NextPart_001_0001_01C0A9FC.1176B960
Content-Type: text/html;
charset="iso-8859-2"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE></TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-2">
<META content=3D"MSHTML 5.50.4134.600" name=3DGENERATOR></HEAD>
<BODY bgColor=3D#00ffff>
<DIV><FONT size=3D4><FONT face=3DGaramond><FONT =
color=3D#000080><STRONG>Ovo je poruka=20
u <EM>HTML formatu</EM> koja ima pridodanu binarnu datoteku sa slikom =
<EM>jpeg=20
formata.</EM></STRONG></FONT></FONT></FONT></DIV>
<DIV>&nbsp;</DIV></BODY></HTML>

------=_NextPart_001_0001_01C0A9FC.1176B960--

------=_NextPart_000_0000_01C0A9FC.1176B960
Content-Type: image/jpeg;
name="slika.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="slika.jpg"

/9j/4AAQSkZJRgABAAEAZABkAAD//gAXVS1MZluYy4A/9sAhAADAgICAgI
AgICAwMDAwQIBQQEBAQJBwcFCAsKDAwLCgsLNEQ0LCxAVEBBgSFBQ

(…ovdje dolazi preostali dio kodirane jpeg slike )

------=_NextPart_000_0000_01C0A9FC.1176B960--


2.4. Prijenos poruka

SMTP - Simple Mail Transfer Protocol 

  • na Internetu se email dostavlja tako da izvorišno računalo uspostavi TCP vezu sa portom 25 na odredišnom računalu, na tom portu osluškuje email deamon koji raspoznaje SMTP protokol
  • deamon prihvaća dolazeće veze i kopira poruke s njih u odgovarajuće poštanske sandučiće
  • ako se poruka ne može dostaviti, pošiljatelju se vraća poruka o pogreški
  • SMTP je jednostavan ASCII protokol:
    • nakon uspostavljanja TCP veze na portu 25, klijent (računalo-pošiljatelj) čeka da server (računalo-primatelj) prvi počne slati podatke o svom identitetu i da li je spreman primiti email ili ne
    • ako server nije spreman prihvatiti email, klijent oslobađa vezu; ako je spreman, klijent oglašava od koga je email i za koga
    • ako primatelj postoji, server daje dozvolu za slanje i klijent šalje poruku, a server potvrđuje njen primitak
    • ukoliko postoji još poruka, razmjenjuju se (u oba smjera) i na kraju se veza oslobađa
  • Primjer za komunikaciju (S-sender (primatelj), C-client (pošiljatelj)):

 

Slika: Prijenos email poruke (Tanenbaum, 1996)

 


 2.5. Dostavljanje poruka

POP3 (Post Office Protocol) 

  • jednostavan protokol za dohvaćanje poruka iz udaljenog mailboxa i njihovo spremanje na lokalno računalo korisnika kako bi se mogle čitati i kasnije
  • razvio se zbog potrebe da PC računala koja sama ne mogu slati i primati email izvan npr. kompanije mogu komunicirati s email serverom
  • POP3 započinje kad korisnik pokrene program za čitanje emaila koji putem napr. modemske veze preko ISP uspostavlja TCP vezu na portu 110 sa serverom koji je spremio poruke
  • POP3 ima 3 stanja:
    1. autorizacija - korisnike se prijavljuje korisničkim imenom (login) i šifrom (password)
    2. transakcija - korisnik prikuplja poruke i označava ih za brisanje (opcionalno)
    3. ažuriranje - email poruke se brišu sa servera

 

Slika: Prijenos email poruka s POP3 (Tanenbaum, 2003)

 

IMAP (Interactive Mail Access Protocol) 

  • složeniji od POP3 i omogućuje održavanje pošte na serveru korištenjem različitih udaljenih računala
  • pošta se ne kopira sa servera na osobno računalo jer ih korisnik može imati više (računalo u uredu, kod kuće, prijenosno računalo)
  • ovaj protokol ne podržavaju svi ISP niti svi email klijenti

 Webmail

  • poruke se čitaju i šalju putem Web sučelja
  • koriste se HTML forme za unos podataka i programi na serveru koji sadržaj mailboxa formatiraju i kreiraju HTML stranu za prikaz u pregledniku
Filtriranje poruka
  • mogućnost koju imaju današnji korisnički e-mail programi je definiranje filtera
  • sastoje se od uvjeta i akcije i primjenjuju se na dolazeće poruke
  • primjer: slanje spam poruka u posebne mape

© 2004. N.Hoić-Božić