API Socket di Berkeley

Documenti analoghi
Reti di Calcolatori Programmazione di rete ed interfaccia API socket di Berkeley. Delfina Malandrino

L interfaccia Socket

TECN.PROG.SIST.INF. I Socket Roberta Gerboni

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...

LABORATORIO di Reti di Calcolatori

Strato di trasporto. Livello di applicazione SAP. Livello di trasporto. Livello di rete SAP

Programmazione in Rete

Reti di Calcolatori. Master "Bio Info" Reti e Basi di Dati Lezione 3

Organizzazione della lezione

Reti (già Reti di Calcolatori )

Simulazione esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

I.I.S. G.B. PENTASUGLIA MATERA ISTITUTO TECNICO SETTORE TECNOLOGICO LICEO SCIENTIFICO SCIENZE APPLICATE. Classe: 5Ci

Reti di Calcolatori - Laboratorio. Lezione 5. Gennaro Oliva

Corso di Reti di Calcolatori T

Telematica di Base. IL Livello di Trasporto TCP

Esercitazione [7] Client/Server con Socket

Laboratorio di Programmazione in Rete

Lezione n.3 LIVELLO TRASPORTO

Introduzione alle applicazioni di rete

Il livello trasporto: Introduzione e protocollo UDP

Il livello trasporto: Introduzione e protocollo UDP

Corso di Reti di Calcolatori T

L uso di Socket UDP. Usiamo le API Winsock incluse in <Winsock.h> A.A. 2005/06. Dott.ssa Valeria Carofiglio

ALTRI TIPI DI CONNESSIONE

Il livello Trasporto si occupa di come avviene lo scambio dei dati tra mittente e destinatario, gestisce quindi l invio e la ricezione dei dati.

2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1

14/12/2018 Informatici e di Telecomunicazioni

Transmission Control Protocol

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Roadmap. to-end o Relayed. Comunicazione End-to. Comunicazione:

Lo strato di Trasporto

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

Lo strato di applicazione in Internet

Laboratorio di Programmazione in rete

Scrittura dei programmi applicativi di rete

LABORATORIO di Reti di Calcolatori

Corso di Reti di Calcolatori T

MODELLI ISO/OSI e TCP/IP

3: Architettura TCP/IP

Corso di Sistemi di Misura Distribuiti. Ing. Domenico Capriglione

I Socket. Laboratorio Software M. Grotto R. Farina

TCP/IP: summary. Lorenzo Cavallaro, Andrea Lanzi

IPC Inter Process Communication

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 20 Luglio 2005

UNIVERSITA DEGLI STUDI DI PAVIA

UDP. User Datagram Protocol. UDP Connectionless

LABORATORIO di Reti di Calcolatori

MODELLI ISO/OSI e TCP/IP

Sistemi Operativi e Reti 1

L interfaccia socket

Modello client-server

Terminologia e concetti fondamentali La struttura di Internet (hardware e software):

FONDAMENTI DI RETI E TELECOMUNICAZIONI

Uso di Internet: Esempio. Prof. Franco Callegati

Un server di posta (che usa il protocollo SMTP) è identificato dal numero di porta 25.

DATAGRAM SOCKET. Angelastro Sergio Diomede Antonio Viterbo Tommaso

Recupero I Prova in itinere - Rete Internet (ing. Giovanni Neglia) Lunedì 25 Giugno 2007

Informatica: arte e mestiere 3/ed

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 20 Luglio 2005

Introduzione (parte III)

Controllo Winsock di Visual Basic

Remote file access sulla grid e metodi di interconnesione di rete

Architetture di rete. 4. Le applicazioni di rete

Laboratorio reti AA 2006/2007. Dott. Matteo Roffilli Ricevimento in ufficio dopo la lezione

RETI DI CALCOLATORI. I Protocolli TCP e UDP. Livello TRASPORTO. Reti di Calcolatori A.A Carlo Mastroianni. Internet (IP) Trasporto

Parte II: Reti di calcolatori Lezione 13 (37)

Programma e Modalità d Esame

1) (commutazione pacchetto, prodotto banda-ritardo) 2) (frammentazione, commutazione di pacchetto) 3) (Selective Repeat)

Laboratorio reti AA 2007/2008. Dott. Matteo Roffilli Ricevimento in ufficio dopo la lezione

Alma Mater Studiorum- Università di Bologna. Progettazione ed Implementazione di un Hidden TCP Proxy

Sistemi e Tecnologie della Comunicazione

Corso di Informatica

Reti di calcolatori. Ing. Maria Mirto. mail:

TECN.PROG.SIST.INF. TCP socket in Windows Roberta Gerboni

Strato 4 (Transport Layer) Protocolli TCP e UDP

Reti di Calcolatori:

Fondamenti di Internet e Reti. Achille Pattavina, Francesco Musumeci

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Comunicazioni fra processi remoti: i socket nello UNIX di Berkeley

IL LIVELLO TRASPORTO Protocolli TCP e UDP

4 - Il livello di trasporto

LABORATORIO di Reti di Calcolatori

Introduzione. Obiettivo: Sommario: Introduzione alle reti di telecomunicazioni approccio:

Reti di Calcolatori Servizi di Rete Laboratorio di Didattica in Rete

Operazioni di I/O. Schema di collegamento fra dispositivi periferici e CPU

Esercizi sui file. Esercizio 1. Soluzione. Domenico Cotroneo Dipartimento di Informatica e Sistemistica

Introduzione alla rete Internet

Interazione tra processore, cache, memorie e dispositivi di I/O

Filippo Bergamasco ( DAIS - Università Ca Foscari di Venezia Anno accademico:

Cenni di programmazione distribuita in C++ Mauro Piccolo

Applicazioni di rete

Mariarosaria Napolitano. Architettura TCP/IP. Corso di: Laboratorio di tecnologie informatiche e telematiche

Laboratorio Reti di Calcolatori (A.A ) Delfina Malandrino.

IL LIVELLO TRASPORTO Protocolli TCP e UDP

Sistemi Operativi: Concetti Introduttivi

Esercitazione [09] Approfondimento su Letture e Scritture con Descrittori

C 2 = 10 Mb/s τ 2 = 1.5 ms

Reti di calcolatori TCP/IP. Slide a cura di Simon Pietro Romano

RETI DI CALCOLATORI. Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI. Facoltà di Ingegneria Università degli Studi di Udine

Transcript:

Laboratorio Reti di Calcolatori (A.A. 2008-2009) Programmazione di rete ed interfaccia API socket di Berkeley Delfina Malandrino delmal@dia.unisa.it http://www.dia.unisa.it/professori/delmal/ API Socket di Berkeley 2 Si utilizza un meccanismo che svolge il ruolo di interfaccia fra il Sistema Operativo e l applicazione di rete: Interazione con il SO realizzata mediante l invocazione di chiamate di sistema 1

3 Socket di Berkeley E una interfaccia locale all host, controllata dal sistema operativo, creata/posseduta dall applicazione tramite la quale il processo applicativo può inviare/ricevere messaggi a/da un altro processo applicativo (locale o remoto) Creato dinamicamente dal SO su richiesta del processo applicativo utente Persiste solo durante l esecuzione dell applicazione Il suo ciclo di vita è simile a quello di un file: Apertura Collegamento ad un endpoint Lettura/scrittura Chiusura 4 Le origini Inizialmente nasce in ambiente UNIX Negli anni 80 la Advanced Research Project Agency finanziò l università di Berkeley per implementare la suite TCP/IP nel sistema operativo Unix I ricercatori di Berkeley svilupparono il set originario di funzioni che fu chiamato interfaccia socket Rappresentano una estensione delle API di UNIX per la gestione dell I/O su periferica standard (files su disco, stampanti, etc) Rappresentano lo standard di riferimento per tutta la programmazione su reti 2

Interazione tra Applicazione e SO 5 L applicazione chiede al sistema operativo di utilizzare i servizi di rete Il sistema operativo crea un socket e lo restituisce all applicazione restituito un socket descriptor L applicazione utilizza il socket Open, Read,Write,Close L applicazione chiude il socket e lo restituisce al sistema operativo 6 Comunicazione Connection-Oriented In una comunicazione dati Connection-Oriented, i due end-points dispongono di un canale di comunicazione che: trasporta flussi è affidabile è dedicato preserva l ordine delle informazioni 3

Progettazione di un Server TCP 7 Creazione di un endpoint Richiesta al sitema operativo Collegamento dell endpoint ad una porta Ascolto sulla porta Processo sospeso in attesa Accettazione della richiesta di un client Letture e scritture sulla connessione Chiusura della connessione Progettazione di un Client TCP 8 Creazione di un endpoint Richiesta al sistema operativo Creazione della connessione Implementa open di TCP (3-way handshake) Lettura e scrittura sulla connessione Analogo a operazioni su file in Unix Chiusura della connessione Implementa close di TCP (4-way handshake) 4

9 Comunicazione Connection-Oriented socket bind() listen() CLIENT socket() connect() write() Dati (richiesta) Stabilisce una connessione accept() Aspetta una connessione read() SERVER read() Dati (risposta) write() close() Notificazione di fine comunicazione read() close() Comunicazione Connectionless o Datagram 10 In una comunicazione dati Datagram il canale: trasporta messaggi non è affidabile è condiviso non preserva l ordine delle informazioni 5

Progettazione di un Client UDP 11 Creazione di un endpoint Richiesta al sistema operativo Invio e ricezione di datagram Chiusura dell endpoint Progettazione di un Server UDP 12 Creazione di un endpoint Richiesta al sistema operativo Collegamento dell endpoint ad una porta open passiva in attesa di ricevere datagram Ricezione ed invio di datagram Chiusura dell endpoint 6

Struttura di un applicazione UDP 13 CLIENT socket() sendto() recvfrom() Aspetta un datagram close() Dati (richiesta) Dati (risposta) socket() bind() recvfrom() Aspetta un datagram sendto() close() SERVER Connection-Oriented vs Datagram 14 Connection oriented Principali vantaggi: Affidabilità Controllo di flusso Principali svantaggi: Overhead per instaurare la connessione Datagram Principali Vantaggi Basso overhead Principali svantaggi Nessun controllo sulla consegna 7

Connection-Oriented vs Datagram 15 I socket che utilizzano i protocolli Internet sfruttano rispettivamente TCP e UDP per implementare le due tipologie di comunicazione In entrambi i casi il protocollo di livello inferiore è IP (che è un protocollo datagram) Three Way handshake 16 Il server deve accettare connessioni client Invocazione di socket, bind, listen Open passiva Client esegue una Open attiva invocando la system call connect Invio di un segmento SYN Mandata info sul sequence number iniziale no data, solo IP header, TCP header ed eventualmente opzioni TCP Il server risponde con un ACK al SYN del client Invio del sequence number iniziale per i dati che il server invierà in quella connessione SYN ed ACK per il client SYN inviati in un singolo segmento Il client invia l ACK finale 8

Three Way handshake 17 client socket connect (blocks) (active open) connect returns server socket,bind,listen (passive open) accept (blocks) accept returns read (blocks) Terminazione di una connessione TCP 18 L applicazione che per prima invoca la system call close esegue una close attiva Inviato un segmento FIN per indicare che non verranno più inviati dati L altra applicazione esegue una close passiva Viene inviato un ACK Il FIN ricevuto è inviato all applicazione come end-of-file Successivamente, l applicazione che ha ricevuto l end-of-file chiuderà il socket (close) TCP invia un FIN TCP sul sistema che ha eseguito la close attiva invia un ACK per il FIN inviato 9

Four Way handshake 19 client close (active close) server (passive close) read return 0 close 20 Diagram mma a stati di TCP 10

TCP State Transition Diagram 21 TCP State Transition Diagram 22 11