Lo strato di applicazione in Internet
|
|
|
- Rosalia Sorrentino
- 9 anni fa
- Просмотров:
Транскрипт
1 Lo strato di applicazione in Internet Prof. Ing. Carla Raffaelli a.a. 2004/2005 Protocolli applicativi Sono i protocolli utilizzati dalle applicazioni per scambiarsi informazioni Esempi: HTTP per il web, SMTP per la posta elettronica Hanno in comune alcune caratteristiche generali 1
2 Elementi di un protocollo applicativo Tipi di messaggio che vengono scambiati Es: richieste e risposte Sintassi dei vari tipi di messaggio Significato dell informazione nei campi (semantica) Regole che governano lo scambio dei messaggi Protocolli standard I protocolli dello strato di applicazione per Internet vengono definiti nelle RFC in ambito IETF Se un protocollo e definito nella RFC chiunque si conforma ad esso e in grado di comunicare indipendentemente dalla realizzazione della applicazione di rete Concetto di sistema aperto Esistono protocolli applicativi proprietari Sistemi chiusi 2
3 Caratteristiche dei protocolli applicativi Un protocollo applicativo ha in generale due componenti: Client e server Il lato client di un terminale comunica con il lato server su un altro terminale Es: browser web e server web Per trasferire o ricevere informazione dalla rete il processo applicativo utilizza le API (Application Programming Interface) o socket che vengono viste come porte Architettura del protocollo Processo API Strato di trasporto Protocollo applicativo TCP Processo API Strato di trasporto INTERNET 3
4 Modello client-server La comunicazione tra due applicazioni residenti su macchine distinte avviene seguendo lo schema client-server Un programma SERVER esegue precise funzioni ed attende una richiesta di connessione da un client Un programma CLIENT vuole usufruire di un certo servizio e instaura una connessione col server Indirizzamento dei processi Il processo trasmittente deve poter identificare il processo ricevente Si usa una coppia di informazioni Indirizzo IP + numero di porta Ai protocolli applicativi piu diffusi vengono assegnati numeri di porta standard (RFC 1700) Well known port: porta 80 HTTP, porta 25 SMTP 4
5 L interfaccia Socket Gli standard non specificano come gli applicativi debbano interagire con i protocolli L interfaccia, che non è standardizzata e dipende dall implementazione del sistema operativo, viene comunemente chiamata Socket Interfaccia Socket in Unix-Linux Un programma applicativo interagisce con il sistema operativo mediante system calls: - open: apre la socket - read: legge dalla socket - write: scrive sulla socket - close: chiude la socket 5
6 Uso delle socket Al momento della connessione è necessario un accordo tra i due host per stabilire i numeri di porta da utilizzare L host che inizia la connessione deve comunicare a quale porta si vuole connettere sul server e qual è il numero di porta da lui utilizzato localmente Il numero di porta a cui connettersi deve essere in qualche modo noto a priori all host sorgente (welcome port o well known port) Connessione client-server: welcome port Un processo client, avviato nell host sorgente, tenta di connettersi ad un processo server (demone) nell host destinazione per ottenere un servizio A questo scopo e presente sul server la welcome socket in attesa su una porta definita in fase di configurazione del server Il processo server crea successivamente una socket di connessione identificato da quattro valori: (1) numero di porta sorgente del segmento, (2) indirizzo IP del terminale sorgente, (3) numero di porta destinazione assegnata, (4) proprio indirizzo IP 6
7 Well-known port (esempi) Le porte da 0 a 255 sono riservate e si attribuiscono ai vari demoni dei numeri di porta prefissati, uguali per qualunque host di Internet. Questi numeri riservati danno vita alle well-known port. Numero Nome Tipo di servizio 21 FTP trasferimento file 22 SSH terminale virtuale criptato 23 TELNET terminale virtuale in chiaro 25 SMTP invio posta elettronica 53 DOMAIN server DNS 80 HTTP server web 109 POP ricezione posta elettronica Funzionamento di HTTP E il protocollo utilizzato dal servizio web Al web spetta il merito di aver portato Internet oltre gli ambienti accademici HTTP e definito in RFC 1945 e RFC 2616 HTTP e implementato come programma client (browser) e come programma server Una pagina web consiste di oggetti individuabili ciascuno attraverso un URL File base HTML con vari oggetti referenziati attraverso singoli URL 7
8 URL (Uniform Resource Locator) Consiste di due parti: Nome host Nome del percorso nell host Es: Attraverso la funzione DNS e possibile associare al nome dell host un indirizzo IP Esempio di connessione non permanente 1: il client HTTP inizia una connessione TCP verso il server in cui alla porta 80 il server HTTP e in ascolto 2: il client HTTP invia una richiesta al server attraverso il socket associato alla connessione TCP stabilita al punto 1. Nella richiesta specifica il percorso /home/index.html 3: il server riceve la richiesta, incapsula l oggetto specificato nella risposta HTTP e invia il messaggio al client attraverso la socket 4: il server HTTP invia al TCP la richiesta di chiusura della connessione che ha effetto solo dopo che il messaggio di risposta e stato ricevuto correttamente 5: Il client riceve il messaggio di risposta. La connessione TCP si conclude. Il messaggio indica che l oggetto e un file HTML. Il client lo estrae e trova i riferimenti agli oggetti referenziati 6: i primi 4 passi vengono ripetuti per ciascuno degli oggetti referenziati (eventualmente connessioni in parallelo) 8
9 Tempo di risposta Per ricevere il file base HTML occorre 1 RTT (Round Trip Time) per l instaurazione della connessione TCP 1 RTT per l invio della richiesta e l arrivo della risposta Tempo di trasmissione del file HTML al server Richiesta HTTP Instaurazione connessione TCP + richiesta HTTP Risposta HTTP Tempo di trasmissione del file base Connessione permanente E la connessione di default per HTTP 1.1 Il server non chiede la chiusura della connessione TCP se non dopo che e scaduto un time out durante il quale la connessione non e utilizzata Con parallelismo: e la soluzione di default: viene inviata una richiesta per ogni oggetto individuato nella pagina base -> 1 RTT per tutti gli oggetti Senza parallelismo Viene generata una nuova richiesta ogni volta che si riceve una risposta-> 1 RTT per oggetto Le connessioni permanenti (con e senza parallelismo) richiedono una sola fase di partenza lenta (slow start) del TCP 9
10 Formato dei messaggi HTTP I messaggi sono di due tipi: richiesta e risposta Es. richiesta Caratteri ASCII: 5 linee seguite da un CR/LF GET /home/index.html HTTP 1.1 request line: metodo,url,versione Host: host Connection:close connessione non permanente User-agent:Mozilla/4.0 tipo di browser Accept language: fr indicazione di lingua Attivazione delle porte Il server deve essere in attesa di ricevere sulla porta a cui il client intende connettersi Passive open: il server associa l indirizzo IP alla porta e aspetta Il client effettua active open per comunicare con il server: questa operazione si completa dopo che la procedura TCP si e completata Una volta stabilita la connessione il processo applicativo invoca le funzioni di send e receive sulla porta 10
11 Ancora sulle API/socket Ogni protocollo fornisce un insieme di servizi e l API fornisce la sintassi con cui i servizi possono essere richiamati da un sistema operativo L interfaccia socket fornisce una sintassi generale per diversi tipi di servizi ed e quindi utilizzabile con diversi protocolli In pratica la socket e il punto in cui un a applicazione locale si attacca alla rete La definizione della interfaccia socket consiste nella definizione di come creare la socket, di come inviare e ricevere messaggi attraverso la socket e di come distruggere la socket L interfaccia socket e stata originariamente definita nel sistema operativo UNIX Passo 1: creazione di una socket int socket(int domain,int type, int protocol) Domain: indica la famiglia di protocolli che si utilizza Type indica il tipo di comunicazione: se orientata al byte o al bit Protocol indica lo specifico protocollo utilizzato ES: int socket (PF_INET,SOCK_STREAM, UNSPEC) Indica una socket per protocolli della famiglia Internet orientati al carattere: questa coppia implica TCP Il valore di ritorno e l identificatore della socket da utilizzare 11
12 Passo 2: server int bind( int socket, struct sockaddr *address, int addr_len) Collega la socket ad un indirizzo address e una struttura dati che include sia l indirizzo IP del server che che il numero di porta TCP int listen(int socket, int backlog) Definisce quante conessioni possono essere accettat sulla socket int accept(int socket, struct sockaddr *address, int addr_len Realizza la passive open Non ritorna valore fino a che un utente remoto non stabilisce una connessione In presenza di connessione restituisce un valore di socket nuovo e l indirizzo remoto La vecchia socket continua a servire da passive open Passo 3: client Si realizza la active open int connect(int socket, struct sock_addr address, int addr_len) Address contiene l indirizzo remoto del server La porta del client viene scelta tra quelle disponibili dal sistema operativo Questa operazione ritorna un valore quando la connessione TCP e stata stabilita 12
13 Passo 4: send/receive Il processo applicativo, una volta stabilita la connessione invoca le due funzioni seguenti: int send(int socket, char *message, int msg_len, int flags) per inviare il messaggio message sulla socket int receive(int socket, char *buffer, int buf_len, int flags) per ricevere un messaggio memorizzato in buffer I flag servono per il controllo delle operazioni 13
Reti (già Reti di Calcolatori )
Reti (già Reti di Calcolatori ) Cenni di Socket Programming Renato Lo Cigno http://disi.unitn.it/locigno/index.php/teaching-duties/computer-networks Socket API Programmazione dei socket Obiettivo:imparare
TECN.PROG.SIST.INF. I Socket Roberta Gerboni
2015 - Roberta Gerboni Socket e porte I sistemi operativi multitasking possono fare girare contemporaneamente più processi dove ogni processo può rendere disponibili anche più servizi. Questi devono essere
Esercitazione [7] Client/Server con Socket
Esercitazione [7] Client/Server con Socket Leonardo Aniello - [email protected] Daniele Cono D'Elia - [email protected] Federico Lombardi - [email protected] Sistemi di Calcolo - Secondo
PROTOCOLLI APPLICATIVI PER INTERNET
PROTOCOLLI APPLICATIVI PER INTERNET IC3N 2000 N. 5 La famiglia dei protocolli TCP/IP Applicazioni e-mail,ftp,ssh,www TCP UDP ICMP IP ARP RARP IEEE 802-Ethernet-X25-Aloha ecc. Collegamento fisico 6 1 Protocolli
Le Reti Informatiche
Le Reti Informatiche modulo 8 Prof. Salvatore Rosta www.byteman.it [email protected] 1 Il Livello di Trasporto: 1 L utente non ha il controllo sulla rete; non può risolvere i problemi di un servizio inadeguato
Transmission Control Protocol
Transmission Control Protocol Franco Callegati Franco Callegati IC3N 2000 N. 1 Transmission Control Protocol - RFC 793 Protocollo di tipo connection-oriented Ha lo scopo di realizzare una comunicazione
API Socket di Berkeley
Laboratorio Reti di Calcolatori (A.A. 2008-2009) Programmazione di rete ed interfaccia API socket di Berkeley Delfina Malandrino [email protected] http://www.dia.unisa.it/professori/delmal/ API Socket
Reti di Calcolatori Servizi di Rete Laboratorio di Didattica in Rete
Reti di Calcolatori Servizi di Rete Laboratorio di Didattica in Rete Reti di calcolatori Protocolli di Trasmissione: Il modello ISO/OSI L architettura TCP/IP Protocolli di trasmissione Un protocollo di
Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00
Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette. Cognome: Nome:
Introduzione alle applicazioni di rete
Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza
Strato di trasporto. Livello di applicazione SAP. Livello di trasporto. Livello di rete SAP
Strato di trasporto Lo strato di trasporto si colloca al livello 4 dello strato ISO-OSI e svolge il compito di mettere in comunicazione diversi processi software. La comunicazione tra applicazioni avviene
L uso di Socket UDP. Usiamo le API Winsock incluse in <Winsock.h> A.A. 2005/06. Dott.ssa Valeria Carofiglio
L uso di Socket UDP Usiamo le API Winsock incluse in A.A. 2005/06 TCP TCP vs. UDP UDP Interazione UDP Client/Server Server 1. (Inizializzare una WSA) 2. Creare una socket 3. Assegnare un local
Architetture Client/Server. Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo
Basi di Dati Architetture Client/Server D B M G Architettura centralizzata Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo Tutta l intelligenza
Le Reti Informatiche
Le Reti Informatiche modulo 10 Prof. Salvatore Rosta www.byteman.it [email protected] 1 Nomenclatura: 1 La rappresentazione di uno schema richiede una serie di abbreviazioni per i vari componenti. Seguiremo
MODELLI ISO/OSI e TCP/IP
PARTE I - Reti di Calcolatori ed Internet MODELLI ISO/OSI e TCP/IP 2.1 Reti di Calcolatori Livelli e Servizi Il modello OSI Il modello TCP/IP Un confronto tra OSI e TCP/IP ARPANET Ethernet Reti ATM reti
Esercitazione [6] Client/Server con Socket
Esercitazione [6] Client/Server con Socket Leonardo Aniello - [email protected] Daniele Cono D'Elia - [email protected] Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di
Struttura interna del sistema operativo Linux
Struttura interna del sistema operativo Linux 5. I device driver A cura di: Anna Antola Giuseppe Pozzi DEI, Politecnico di Milano anna.antola/[email protected] -versione del 30 marzo 2004-1-04.-04
Introduzione alla rete Internet
Introduzione alla rete Internet Gruppo Reti TLC [email protected] http://www.telematica.polito.it/ INTRODUZIONE A INTERNET - 1 Internet: nomenclatura Host: calcolatore collegato a Internet ogni host
Livello di trasporto: meccanismi trasferimento dati affidabile, TCP
Livello di trasporto: meccanismi trasferimento dati affidabile, TCP Gaia Maselli Queste slide sono un adattamento delle slide fornite dal libro di testo e pertanto protette da copyright. - Copyright 2013
Dal protocollo IP ai livelli superiori
Dal protocollo IP ai livelli superiori Prof. Enrico Terrone A. S: 2008/09 Protocollo IP Abbiamo visto che il protocollo IP opera al livello di rete definendo indirizzi a 32 bit detti indirizzi IP che permettono
Reti di Telecomunicazione Lezione 6
Reti di Telecomunicazione Lezione 6 Marco Benini Corso di Laurea in Informatica [email protected] Lo strato di applicazione protocolli Programma della lezione Applicazioni di rete client - server
UD 3 PROTOCOLLO ISO-OSI
UD 3 PROTOCOLLO ISO-OSI IL PROTOCOLLO All inizio ogni azienda creava dispositivo hw e sw in grado solo di essere utilizzati e di comunicare con dispositivi dell azienda stessa Sistemi Chiusi Nel tempo
ISO- OSI e architetture Client-Server
LEZIONE 9 ISO- OSI e architetture Client-Server Proff. Giorgio Valle Raffaella Folgieri [email protected] [email protected] Lez 10 modello ISO-OSI e architettura client-server 1 Nelle scorse
MODELLI ISO/OSI e TCP/IP
PARTE I - Reti di Calcolatori ed Internet MODELLI ISO/OSI e TCP/IP Reti di Calcolatori Livelli e Servizi Il modello OSI Il modello TCP/IP Un confronto tra OSI e TCP/IP ARPANET Ethernet Reti ATM reti wireless
Introduzione alla rete Internet
Introduzione alla rete Internet Gruppo Reti TLC [email protected] http://www.telematica.polito.it/ INTRODUZIONE ALLE RETI TELEMATICHE - 1 Copyright Quest opera è protetta dalla licenza Creative Commons
Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione
I semestre 03/04 Comunicazione tra Computer Protocolli Prof. Vincenzo Auletta [email protected] http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 2
Soluzione dell esercizio 2 (TCP) dell esame del 16 giugno 2015
Soluzione dell esercizio 2 (TCP) dell esame del 16 giugno 2015 La soluzione di questo esercizio per quanto riguarda la parte di perdita di pacchetti è data assumendo l'algoritmo di FAST RECOVERY, ossia
la trasmissione è regolata solamente dall algoritmo per il controllo del flusso prima di inviare l ACK.
1. Considerare il problema della stima del Round Trip Time. Supporre che inizialmente RTT valga 200 ms. Il mittente invia un segmento e riceve l ACK relativo dopo 100 ms, quindi invia un altro segmento,
Introduzione alla rete Internet
Introduzione alla rete Internet Gruppo Reti TLC [email protected] http://www.telematica.polito.it/ INTRODUZIONE ALLE RETI TELEMATICHE - 1 Copyright Quest opera è protetta dalla licenza Creative Commons
Protocolli applicativi basati su TCP/IP
Protocolli applicativi basati su TCP/IP A.A. 2005/2006 Walter Cerroni Protocolli applicativi Sono i protocolli utilizzati dalle applicazioni per scambiarsi informazioni attraverso la rete Esempi: HTTP
Reti di calcolatori. Reti di calcolatori
Reti di calcolatori Reti di calcolatori Rete = sistema di collegamento tra vari calcolatori che consente lo scambio di dati e la cooperazione Ogni calcolatore e un nodo, con un suo indirizzo di rete Storia:
Programmazione in Rete
Programmazione in Rete a.a. 2005/2006 http://www.di.uniba.it/~lisi/courses/prog-rete/prog-rete0506.htm dott.ssa Francesca A. Lisi [email protected] Orario di ricevimento: mercoledì ore 10-12 Sommario della
Terminologia e concetti fondamentali La struttura di Internet (hardware e software):
Introduzione Terminologia e concetti fondamentali La struttura di Internet (hardware e software): Accesso alla rete: end-systems, applicazioni, mezzi trasmissivi Nucleo: commutazione, struttura della rete,
Informatica. Alfredo Cuzzocrea. Reti di Calcolatori
Informatica Alfredo Cuzzocrea PROTOCOLLI DI COMUNICAZIONE Protocolli di comunicazione: regole che formalizzano la cooperazione tra calcolatori collegati in rete (dalle caratteristiche fisiche del segnale
Esercitazione. Formato di compitini e compiti: domande ed esercizi "closed book" G. Ferrari - Reti di calcolatori.
Esercitazione Formato di compitini e compiti: domande ed esercizi "closed book" Esercitazione - 1 Domanda 1 In una comunicazione di rete tra due host, quale è il client e quale è il server. Necessario:
I Socket. Laboratorio Software 2008-2009 M. Grotto R. Farina
M. Grotto R. Farina Sommario 1. Applicazioni Distribuite 2. I Socket Introduzione Interfacce e protocolli Descrizione Stile di comunicazione Namespace e protocollo Include e system call Creazione e chiusura
OSOR. Applicazioni di Rete
OSOR Applicazioni di Rete 1 Client-Server in Sistemi Distribuiti Host A Host B Client TCP/UDP IP Network Interface Internet Risultati Server TCP/UDP IP Network Interface Richiesta Applicazioni di Rete
Informatica: arte e mestiere 3/ed
Internet l Indice Storia di Internet Il protocollo TCP/IP Indirizzi IP Intranet e indirizzi privati Nomi di dominio World Wide Web Ipertesti URL e HTTP Motori di ricerca Posta elettronica Architettura
Architettura di rete. Modelli di Riferimento: TCP/IP e OSI. Modello di riferimento OSI. Modelli di riferimento. architettura di rete
I semestre 02/03 Modelli di Riferimento: TCP/IP e OSI Prof. Vincenzo Auletta [email protected] http://www.dia.unisa.it/~auletta/ Architettura di rete architettura di rete insieme delle specifiche funzionali
Esempi di applicazioni internet. WEB Trasferimento File Posta Elettronica Sistema dei nomi di dominio (DNS)
Esempi di applicazioni internet WEB Trasferimento File Posta Elettronica Sistema dei nomi di dominio (DNS) 17 Il Web: terminologia Pagina Web: consiste di oggetti indirizzati da un URL (Uniform Resource
Corso di Reti di Telecomunicazioni. Giovanni Schembra. Trasmissione trame su canale broadcast
Indirizzi LAN e ARP Corso di Reti di Telecomunicazioni Giovanni Schembra 1 Trasmissione trame su canale broadcast I nodi di una LAN si scambiano trame su un canale broadcast: quando un nodo in una LAN
