Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
HTTP
La posta basata sul web è sempre più utilizzata, introdotta dapprima da Hotmail e poi usata da Google. In questo modo l'user agent è il browser, e l'utente comunica con il server tramite HTTP.
Smistamento della posta
I messaggi possono essere smistati da un programma detto mail forwarder in funzione di un archivio che indica come devono essere gestiti. Il programma è su un email gateway che è un calcolatore dedicato allo smistamento. È molto utile quando viene fornita una mailing list, che deve mantenere l'uniformità degli indirizzi.
Il DNS
Argomento Livello Applicativo Reviewed I servizi Perché è distribuito? Gerarchia Spazio dei nomi di dominio Name resolution Caching DNS Record DNS Messaggi DNS I servizi Per identificare un host utilizziamo due parametri: l'hostname e l'indirizzo IP a 32 bit. Il Domain Name System è in grado di conciliare i due nomi tramite un database distribuito su una serie
dirottato in modo equo tra i vari server. Il DNS svolge un ruolo fondamentale nel funzionamento di Internet, consentendo agli utenti di accedere ai siti web utilizzando nomi di dominio anziché indirizzi IP numerici. Utilizzando il protocollo DNS, i client possono inviare richieste ai server DNS per ottenere l'indirizzo IP corrispondente a un determinato nome di dominio. Il server DNS utilizzato è il Berkeley Internet Name Domain (BIND) 2008, che gira su macchine UNIX. Il protocollo utilizzato è UDP con porta 53, ma viene utilizzato anche TCP per i messaggi di dimensioni superiori a 512 byte. Oltre alla traduzione degli hostname, il DNS fornisce anche altri servizi. Uno di questi è l'host aliasing, che consente di associare uno o più sinonimi (alias) a un hostname complicato. In questo modo, le applicazioni possono richiedere al DNS l'hostname canonico (quello originale). Anche i server di posta possono avere degli alias e utilizzare il DNS per la loro risoluzione. Questo servizio, chiamato mail server aliasing, consente di associare nomi alternativi ai server di posta. Un altro servizio offerto dal DNS è la distribuzione locale. Quando i client utilizzano Content Delivery Network (CDN) con più server, il DNS associa a ogni hostname più indirizzi IP. Quando un client effettua una query DNS per un nome mappato in un insieme di indirizzi, il server DNS risponde con l'intero insieme di indirizzi, ma varia l'ordine in cui vengono restituiti ad ogni risposta. In questo modo, il traffico viene distribuito in modo equo tra i vari server, consentendo una migliore gestione del carico di lavoro.su un indirizzo IP. Questi server sono responsabili di fornire le informazioni DNS per i domini specifici. CacheIl DNS utilizza anche una cache per memorizzare le informazioni DNS precedentemente richieste. Questo consente di ridurre il tempo di risposta delle richieste successive per lo stesso dominio. Risoluzione DNSLa risoluzione DNS avviene quando un client invia una richiesta per un nome di dominio. Il client contatta il server DNS più vicino e richiede l'indirizzo IP corrispondente al nome di dominio. Il server DNS cerca nell'albero gerarchico fino a trovare l'indirizzo IP corrispondente e lo restituisce al client. In conclusione, il sistema DNS è distribuito su diversi server per garantire la disponibilità e l'efficienza del servizio. La gerarchia e la cache sono utilizzate per migliorare le prestazioni e ridurre il carico sui server.i propri IP.Default Name Server (server locale): quando un host si connette a un ISP come un'università, questo gli fornisce un IP tratto da uno dei suoi server locali tramite DHCP.
Ogni nodo è individuato da una label. Alla root è associata una label vuota, a tutti i nodi collegati ad un medesimo nodo da rami diversi sono associate label diverse. Ogni nodo dell'albero ha un nome di dominio dato dalla sequenza di label separate da punti (.), che lette da sinistra a destra forniscono tutte le label associate ai vari nodi a partire da quello in questione fino alla root. Tutti i nomi terminano con un punto (l'ultima label è quella della root, la stringa nulla).
Spazio dei nomi di dominio
Una sequenza di label che termina con una stringa nulla è detta Fully Qualified Domain Name (FQDN), o nome assoluto. Una sequenza di label che non termina con una stringa nulla è detta Partially Qualified Domain Name (PQDN), o nome relativo. Per un PQDNesiste il resolver, che è un parametro configurato opzionalmente su un host per renderlo FQDN. Un dominio è un sottoalbero dello spazio dei nomi di dominio il cui nome è dato dal nome di dominio del nodo in cima al sottoalbero. I domini derivati dalla suddivisione di un dominio sono anche detti sottodomini. Per creare un nuovo sottodominio occorre il permesso del dominio in cui verrà incluso. Lo spazio dei nomi di dominio è suddiviso in zone non sovrapposte. Ogni zona contiene alcune parti dell'albero ed è gestita da uno o più name server che mantengono informazioni di autorità relativamente a quella zona. Normalmente una zona ha un name server primario, che prende le informazioni da un file (di zona) sul proprio disco (creazione, gestione ed aggiornamento sono di sua competenza) ed uno o più server secondari (alcuni, possibilmente, al di fuori della zona stessa) che prendono le informazioni dal name server primario. Ogni name server,oltre a conoscere i nomi/indirizzi della propria zona, è in grado di contattare o i server che si trovano più in basso nella gerarchia o un root server. Name resolution
Il DNS 3
Su un host il resolver invia query DNS al local name server.
Esso non può risolvere il nome di dominio, quindi agisce come client DNS e manda una query a un root server.
Se il root server non conosce il name mapping, manda una query ad un authoritative server.
Riceve una risposta DNS con la mappatura.
Manda una risposta DNS al local name server.
Un root name server potrebbe non conoscere un authoritative server, quindi contatta un intermediate server per trovarlo.
Sono disponibili due tipi di query:
- Query ricorsive: il server DNS dopo aver ricevuto la query dal client, si occupa di fare tutto il lavoro per ottenere la risposta.
- Query iterative: un server DNS contatta un altro server, e se questo server non conosce la risposta, propone di contattare (referral) un altro server che può averla.
connosco questo nome di dominio, ma chiedi a quest'altro server). In questo modo invece di darci la risposta con il dominio, ci fornirà un altro server che il client iniziale dovrà contattare. In questo modo si alleggerisce il lavoro di un server.
Caching DNS
Quando qualsiasi server acquisisce (o impara) una nuova mappatura, la salva in cache, anche se questo indirizzo non fa necessariamente parte del proprio dominio, o non è competente per tale indirizzo.
Le entry nelle cache scadono dopo un po' di tempo (tipicamente 2 giorni) perché gli host e le mappature non sono in alcun modo permanenti.
Record DNS
I server DNS memorizzano i resourse records (RR). Ogni record contiene i seguenti campi:
- Name
- Value
- Type
- TTL
dove TTL è il time to live, ossia il tempo di vita di un record e determina quando una risorsa va rimossa dalla cache. Il significato di eName Value dipende da Type, allore è il nome dell'host e il suo IP.
allora è un dominio e è l'hostname del server diType=NS Name Valuecompetenza di quel dominio., sarà un nome canonico dell'host e sarà l'alias.Type=CNAME Value Name, sarà un nome canonico per server di posta e saràType=MX Value Namel'alias.
Notiamo che se un server non è di competenza allora conterrà un campo NSper il dominio che include l'hostname, e un campo con l'IP del server DNSAcon nome il del record .Value NSL'aggiornamento dei record può essere dinamico DHCP o statico a secondadei casi. Per maggiori dettagli vedere RFC 2136.
Messaggi DNSIl protocollo DNS si compone di messaggi query e reply con lo stesso formato:
Header: il campo header occupa in tutto 12 byte e contiene a sua volta uncerto numero di campi.
Identificatore: un numero di 16 bit, copiato nelle risposte dalle richieste.
Flag: è composto da una serie di bit, il primo indica se si tratta di unaquery 0 o una reply 1 ,
Poi un bit di competenza nelle reply se il server è competente per il nome richiesto, poi il bit di recursion-desired flag che specifica che un client effettua ricorsione quando non dispone del record. Se il server supporta la ricorsione imposta un bit a rappresentare il recursion-available field. Quattro campi che indicano il numero di occorrenze. Campo delle domande, con il nome e il tipo di domanda. Campo delle risposte, con i RR relativi al nome originariamente richiesto. Campo della authority, con i record di altri server di competenza. Informazioni aggiuntive, con RR utili, come ad esempio se in risposta c'è un tipo MX, nelle informazioni aggiuntive c'è il relativo RR di tipo A.
Il DNS 5 Tramite nslookup si può testare l'invio di messaggi a server DNS.
Il DNS 6 Socket Programming Argomento Livello Applicativo Reviewed Socket API Classe InetAddress Classe InetSocketAddress Programmazione socket con TCP Esempio di applicazione java TCPClient.java Classe
sono applicazioni personalizzate che utilizzano protocolli proprietari o specifici per il loro scopo. La classe ServerSocket in Java è utilizzata per implementare un server TCP. Un server TCP è un programma che ascolta su una porta specifica e attende le richieste dei client. Quando un client si connette al server, viene creato un oggetto Socket che rappresenta la connessione tra il client e il server. La classe DatagramSocket in Java è utilizzata per implementare un client o un server UDP. UDP (User Datagram Protocol) è un protocollo di rete senza connessione che consente la trasmissione di datagrammi tra computer su una rete IP. Un datagramma è un pacchetto di dati che contiene l'indirizzo IP di destinazione e il numero di porta. Nel programma UDPClient.java, viene creato un oggetto DatagramSocket per inviare un datagramma a un server specifico. Il server riceve il datagramma utilizzando un oggetto DatagramSocket e invia una risposta al client. Nel programma UDPServer.java, viene creato un oggetto DatagramSocket per ascoltare su una porta specifica e attendere i datagrammi inviati dai client. Quando viene ricevuto un datagramma, il server elabora la richiesta e invia una risposta al client. L'API delle socket fornisce un'interfaccia per la comunicazione tra processi su una rete. Utilizzando le classi Socket, ServerSocket, DatagramSocket e DatagramPacket, è possibile implementare applicazioni di rete che consentono la trasmissione e la ricezione di dati tra client e server.Tipo sono applicazioni proprietarie, che però non potranno interagire con altre applicazioni di terzi in quanto non seguono standard. Quindi la socket è un'interfaccia controllata dai sistemi operativi, in cui le applicazioni possono inviare e ricevere messaggi da/a altre applicazioni, come se fosse un porto netra il processo applicativo e il TCP o UDP.
Classe InetAddressSocket Programming 1La classe gestisce gli indirizzi IP e porte. Supporta sia IPv4 che IPv6, InetAddress tuttavia esistono due cl