informatica |
Documentazione della chat-UDP
Dato un programma per la trasmissione di dati che utilizza un protocollo udp da voi preparato si predisponga una esauriente documentazione che evidenzi sia gli aspetti teorici sia glia aspetti legati all'ambito della programmazione
Scopo del programma consiste nel fornire una documentazione abbastanza esauriente circa gli aspetti teorici e pratici presi in considerazione per la produzione di un protocollo UDP. Da tener presente che abbiamo costruito - programmato un protocollo per far in modo che due elaboratori in rete potessero comunicare tra di loro. Il problema consiste su come sviluppare il tutto e quindi quali tecniche si devono utilizzare (ne parlerò in seguito). Abbiamo sviluppato il protocollo prima nel linguaggio C++ successivamente attraverso il Delphi (linguaggio visuale orientato ad oggetti). Durante la prima esperienza non si sono riscontrati molti problemi, è stata un'esperienza utile sia dal punto di vista pratico che da quello teorico in quanto abbiamo visto come viene utilizzato l'interfaccia RS232 e su come avvengono i vari controlli per l'invio delle trame. La seconda è stata più complicata da capire e da fare.
Innanzitutto bisogna dire che abbiamo utilizzato il protocollo UDP (User Datagram Protocol) appartenente al livello Transport dell'architettura TCP/IP anziché il TCP (Trasmission Control Protocol) in quanto mentre il primo consiste in un protocollo non connesso e non affidabile (i pacchetti inviati da un elaboratore ad un altro possono arrivare in ordine diverso da come sono stati spediti o non arrivare affatto), il TCP è un protocollo connesso e affidabile (ossia tutti i pacchetti arrivano, e nell'ordine giusto). Oltretutto tale protocollo frammenta il flusso in arrivo dal livello superiore in messaggi separati che vengono passati al livello 2 o livello Internet. Qualora i pacchetti dovessero essere spediti al livello superiore, tale livello ha la funzione di riassemblare tutti i pacchetti in un flusso di output per il livello superiore. È stato comunque usato l'UDP in quanto più semplice da utilizzare perché non necessita di fare i controlli circa l'arrivo o non dei dati e se questi sono arrivati in ordine o meno!
Tali protocolli appartengono all'architettura TCP/IP; tale è basata sul concetto di pila di protocolli indipendenti. L'architettura TCP/IP prende il nome dai suoi due protocolli principale (TCP e IP). Essa comunque non è un modello nel vero senso della parola, in quanto include i protocolli effettivi, che sono specificati per mezzo di documenti detti RFC (Request For Comments). L'architettura TCP/IP si rifà all modello di riferimento ISO/OSI ma diversifica per il numero di livelli. Mentre quest'ultimo nel possiede sette e ciascuno con la propria caratteristica, il TCP/IP invece ne ha solamente quattro teoricamente, 5 praticamente perché? In fatto consiste che il livello Data Link (2) e Fisico (1) dell'ISO/OSI sono contenuti in un unico livello Host - To - Host per il TCP/IP. Tale livello, il più basso, non è specificato nell'architettura, che prevede di utilizzare quelli disponibile per le varie piattaforme HW e conformi agli standard. Tutto ciò che si assume è la capacità dell'Host di inviare pacchetti IP sulla rete. Il secondo livello è invece quello Internet che come ruolo principale ha la funzione di mandare pacchetti a qualunque rete e fa il possibile per fare in modo che questi possano viaggiare in maniera indipendente e magari per strade diverse fino a destinazione. È quindi un livello protocollo orientato alla conessione e si occupa del controllo per la congestione e dell'instradamento. A livello Internet abbiamo quindi in famoso protocollo noto come IP o Internet Protocol. Passando al livello superiore si incontra il TCP o l'UDP (ne ho parlato sopra) e tali protocolli hanno perciò la funzione di consentire la conversazione delle peer entity sugli host sorgente e destinazione. Infine si ha il livello Application che contiene tutti i protocolli di alto livello che vengono usati dalle applicazioni reali tipo il POP e l'SMTP (per la posta elettronica), l'FTP per il trasferrimento dei file, il TELNET per simulare i terminali, il famoso HTTP utilizzato per il Word Wide Web . e se non ricordo male il Telnet utilizza la porta 23, l'FTP la n° 21, il POP3 la n° 110 e l'SMTP la n° 25.
Ecco quindi la costruzione dei due modelli messi a confronto:
APPLICATION |
PRESENTATION |
SESSION |
TRANSPORT |
NETWORK |
DATA LINK |
FISICO |
I livelli in rosso indicano che sono presenti sia nel TCP/IP sia nell'ISO/OSI. Quelli in nero indicano che sono presenti solo nell'ISO/OSI mentre quelli in viola indicano che, nell'architettura TCP/IP vengono assemblati nell'unico protocollo Host - To - Network.
Passando ora alla chat che abbiamo cercato di creare attraverso anche l'utilizzo di quella già creata dal Delphi. La chat formulata dovrebbe gestire il flusso di messaggi inviati da un elaboratore ad un altro tipo le chat che si trovano in Internet o, più semplicemente, quella della Conversazione in Linea di Windows. Riguardo alla procedura di costruzione di una chat ho dovuto fare in modo che i due elaboratori che interloquiano tra di loro stabilissero che dovesse rappresentare il Server e chi il Client. Utilità necessaria affinché non si creassero problemi su chi dovesse stabilire la connessione e quindi chi dovesse inviare la richiesta di connessione! Fatto ciò si doveva controllare se la connessione è stata fatta correttamente o se invece sono nati degli errori e quindi tale connessione è saltata. Infine si potevano inviare pacchetti di messaggi da uno ad un altro computer.
Il programma della chat inanzittutto va a 'leggere' il nome del computer dove è stato lanciato e soprattutto il suo indirizzo IP. Questo vale sia se i tratta del server sia se si tratta del client. Il nome del Pc e il suo corrispettivo indirizzo Ip hanno lo scopo fondamentale di fare in modo che l'altro pc possa sapere qual è l'indirizzo di destinazione e perciò qual è il conputer ricevente. Per fare questo ho fatto in modo che venga scritto se un edit i due nomi! Oltre ciò si può anche ricavare l'indirizzo della porta su cui andare a scrivere e leggere. Stabiliti quindi Porta e individuati il nome e l'indirizzo del Pc a cui connettersi, si potrà stabilire la connessione premendo per esempio su un bottone Connect e bisognerà indicare al programma l'indirizzo del pc ricevente e successivamente anche l'indirizzo della porta a cui esso fa riferimento. Fatto ciò, sempre se i dati esistono e sono corretti provvederà alla Connessione. Si creeranno problemi se il Pc ricevente non è abilitato alla connessione oppure se tale Pc non dispone di un programma compatibile con quello utilizzato dal Pc chiamante. Lasciano stare i problemi che posso nascere invierò i dati immettendoli in un Edit e premendo un pulsante si potrà inviare i dati al Pc ricevente. In realtà non avviene tutto così semplicemente ma viene utilizzata una funzione speciale che si preoccupa di inviare il pacchetto!!! Il Pc ricevente utilizzerà invece la funzione che si occupa di ricevere il pacchetto! (Le due hanno nomi diversi che però non ricordo).
Il pc ricevente a questo punto si occuperà di riperire i dati ma tale funzione non può avvenire in continuazione e tantomeno a intervalli regolari in quanto, probabilmente, anzi sicuramente, verranno persi grandi quantità di dati e non sarà una chat affidabile. Si utilizza perciò una funzione appositamente esistente che andrà a leggere il pacchetto ogniqualvolta ne arriverà uno e verrà scritto sul memo!!!!
Privacy
|
© ePerTutti.com : tutti i diritti riservati
:::::
Condizioni Generali - Invia - Contatta