Distributed System ( )7 TCP/IP four-layer model
Distributed System ( )8 Protocols Application = HTTP, FTP, SMTP, NSF, Telnet, SSH, ECHO, … Presentation = SMB, NCP, … Session = SSH, NetBIOS, RPC, … Transport = TCP, UDP, … Network = IP, ICMP, IPX Data link = Ethernet, Token Ring, ISDN, … Physical = 100BASE-T, 1000BASE-T,
Distributed System ( )9 IP, TCP, and UDP IP (Internet Protocol) TCP (Transmission Control Protocol) UDP (User Datagram Protocol) = Unreliable communication, no ordering guarantee (e.g., DNS, TFTP, VoIP, …)
Distributed System ( )10 Ports A port is a special number present in the data packet. Ports are typically used to map data to a particular process running on a computer (i.e., which process associates with the data determining by port number) IANA ( Internet Assigned Numbers Authority) is responsible for assigning TCP and UDP port numbers to specific used. – Well-known ports (0-1023) – Registered ports ( ) – Dynamic and/or Private ports ( )
Distributed System ( )11 The Client-Server Model
Distributed System ( )12 Socket Application A socket is a connection between two hosts (endpoints). A socket can perform 7 basic operations. – Connect to a remote machine – Send data – Receive data – Close a connection – Bind to a port – Listen for incoming data – Accept connections from remote machines on the bound port
Sistemi distribuiti Sistema distribuito indica una tipologia di sistema informatico costituito da un insieme di processi interconnessi tra loro in cui le comunicazioni avvengono solo esclusivamente tramite lo scambio di opportuni messaggi. Con il termine processo si indica, in genere, una qualsiasi entità capace di comunicare con un altro processo e di eseguire un algoritmo distribuito. A differenza di un algoritmo tradizionale è necessario includere nella definizione di algoritmo distribuito anche i messaggi che vengono scambiati tra i vari processi, poiché anch'essi sono essenziali nell‘ esecuzione e nella terminazione dell'algoritmo.‘ Esempi: cluster, internet, ecc.
Web Service Web Service è un sistema software progettato per supportare l'interoperabilità tra diversi elaboratori su di una medesima rete ovvero in un contesto distribuito. Un Web Service viene implementato associando all'applicazione un'interfaccia software (Web Services Description Language) che descrive il servizio/i associato/i Per mezzo di questa interfaccia altri sistemi possono interagire con l'applicazione stessa tramite appositi "messaggi" di richiesta: tali messaggi di richiesta sono inclusi in una "busta" (REST, SOAP), formattati secondo lo standard XML, incapsulati e trasportati tramite i protocolli del Web (solitamente HTTP), da cui appunto il nome web service.
Socket Nei sistemi operativi moderni, con il termine socket si indica un'astrazione software progettata per poter utilizzare delle API standard e condivise per la trasmissione e la ricezione di dati attraverso una rete oppure come meccanismo di IPC (Inter-Process Communication) È il punto in cui il codice applicativo di un processo accede al canale di comunicazione per mezzo di una porta, ottenendo una comunicazione tra processi che lavorano su due macchine fisicamente separate. Dal punto di vista di un programmatore un socket è un particolare oggetto sul quale leggere e scrivere i dati da trasmettere o ricevere.
Tipi di socket I socket sono stati introdotti nel 1983 in BSD e poi sono stati ripresi da praticamente tutti gli altri sistemi operativi. Per questo motivo solitamente le funzioni di programmazione dei socket vengono chiamate Berkeley socket API. Ci sono due tipi fondamentali di socket: I socket tradizionali su protocollo IP, usati in molti sistemi operativi per le comunicazioni attraverso un protocollo di trasporto (quali TCP o UDP); Unix domain socket (detti anche socket locali), usati nei sistemi operativi POSIX (Portable Operating System Interface for Unix) per le comunicazioni tra processi residenti sullo stesso computer. A sua volta esistono due tipi di socket su IP: Listen, che rappresentano la possibilità di ricevere nuove connessioni. Un socket di questo tipo è identificato dalla terna protocollo di trasporto, indirizzo IP del computer, numero di porta; Established, che rappresentano una particolare connessione attiva. Un socket di questo tipo è identificato dalla 5-tupla: protocollo di trasporto, indirizzo IP sorgente, indirizzo IP destinazione, numero di porta sorgente, numero di porta destinazione.
Application Programming Interface Con Application Programming Interface (API), si indica ogni insieme di procedure, funzioni, strutture dati disponibili al programmatore per implementare un determinato compito all'interno di un certo programma. Vengono realizzate tramite librerie software disponibili in un certo linguaggio di programmazione.