LIVELLO APPLICAZIONE

il sistema telefonico è formato da un albero quindi c’è solo un percorso, nel grafo ci sono piu percorsi, più è connesso più percorsi ci sono. l’idea era mettere la comunicazione e metterli in pacchetti, e deve scegliere la strada per farla andare avanti

Arpanet il primo sistema di reti.

I processi sono programmi in esecuzione, ci sono dati e stack di sistema. I processi comunicano.

l’approccio utilizzato sarà client server, client sta sempre in ascolto, il processo sta in standby e il client quando vuole si connette al server e gli viene data una risposta. whastapp è client e server, deve poter ricevere i messaggi e deve essere in grado di mostrare in video quando digitiamo. Programmi multiprocesso si gesticono tramite thread o fork.

Esempio di server:

Apache HTTP Server è un software web server open-source, gratuito e modulare, tra i più diffusi al mondo per ospitare siti web su sistemi Linux e Windows. Lanciato nel 1995 e gestito da Apache Software Foundation, gestisce in modo sicuro le richieste HTTP/HTTPS, supporta linguaggi come PHP, Perl e Python, e consente l’hosting virtuale.

Apache HTTP Server

Ecco i dettagli chiave su Apache Server:

  • Funzionamento: Agisce come intermediario tra il server fisico e il client (browser), elaborando richieste e restituendo contenuti web.

l’applicativo vuole un canale affidabile.

Scalabilità importante, vuol dire riguarda l’aumento con 0. da 10 a 100 si può fare, 100 a 1000, 1000 a 100000 ecc…, aumentare l’ordine di grandezza. Se il server non permette ……. non abbiamo scalabilità. Google, ad esempio deve essere scalabile altrimenti non funzionerebbe.

Process ID: SERVE al kernel del so per individuare processi. directory fittizia, informazioni del processo. quando due processi parlano, devono identificarsi, quindi lo faranno tramite il numeretto. la comunicazione tra due processi è facile perchè hanno qualcosa in comune, il thread system.

Il processo lo identifico dal port, con qualcuno che sta in ascolto o nessuno. Con firewall ho porta filtrata. Queste sono alcune standardizzate: per evitare attacchi eccessivi ed essere esposti, ad esempio utilizzando SSH, allora cambio porta.Quando mi collego via client spcifico la porta che voglio utilizzare. Oppure un’altra tecnica “knocking door”: Il port knocking è una tecnica di sicurezza di rete che nasconde le porte dei server (come SSH) mantenendole chiuse fino a quando non viene ricevuta una specifica sequenza segreta di tentativi di connessione (il “knock”). knockd, ad esempio, monitora il firewall e apre la porta solo per l’indirizzo IP autorizzato. 1.Well Known Ports: Sono porte che possono essere chieste solo ad un processo, login e pass

2.Registered Ports: l’autore usa un Id

3.Dynamic e private ports

secondo e terzo gruppo possono essere chieste anche non essendo amministratore di sistema

Telnet

Questa immagine mostra un esempio classico di come funziona Telnet (un protocollo per l’accesso remoto) sfruttando i meccanismi di controllo del trasporto del protocollo TCP.

passo dopo passo di cosa succede tra l’Host A (il client) e l’Host B (il server):


  1. L’invio del carattere (Host A → Host B)

L’utente digita il carattere ‘C’ sulla tastiera dell’Host A.

  • Azione: Host A invia un pacchetto a Host B.
  • Parametri TCP: * Seq=42: Il numero di sequenza corrente di A.
    • ACK=79: A dice a B che si aspetta di ricevere il byte numero 79.
    • Data='C': Il carico utile (payload) è il singolo carattere digitato.
  1. L’eco e la conferma (Host B → Host A)

Host B riceve la ‘C’, la inserisce nel suo sistema e deve fare due cose: confermare di aver ricevuto il pacchetto e “rimandare indietro” il carattere per farlo apparire sullo schermo dell’utente (operazione chiamata Eco).

  • Azione: Host B invia un unico pacchetto che contiene sia la conferma (ACK) che il dato di ritorno.
  • Parametri TCP: * Seq=79: Come richiesto prima, B invia il byte 79.
    • ACK=43: B conferma di aver ricevuto tutto fino al byte 42 e si aspetta il 43.
    • Data='C': Questo è l’eco. L’utente vedrà la ‘C’ sul suo terminale solo ora.
  1. La conferma finale (Host A → Host B)

Ora che Host A ha ricevuto l’eco della ‘C’, deve confermare a Host B di aver ricevuto correttamente il pacchetto 79.

  • Azione: Host A invia un pacchetto di solo ACK.
  • Parametri TCP: * Seq=43: Il numero di sequenza che B si aspettava.
    • ACK=80: A conferma di aver ricevuto il byte 79 e si aspetta l’80.

Perché funziona così?

  1. Verifica Visiva (Remote Echo): In Telnet, quello che digiti non appare immediatamente sul tuo schermo perché lo hai premuto tu. Appare perché il server remoto lo ha ricevuto e te lo ha “rispedito”. Questo garantisce all’utente che il server ha effettivamente ricevuto il comando corretto.
  2. Efficienza (Piggybacking): Invece di inviare un pacchetto solo per dire “Ho ricevuto il dato” e un altro per dire “Ecco l’eco del dato”, il TCP unisce queste informazioni. Questo riduce il traffico di rete e il carico computazionale.
  3. Numeri di Sequenza: Nota come i numeri si incrociano: l’ACK di uno diventa il Seq dell’altro nel passaggio successivo. Questo è il meccanismo fondamentale del TCP per garantire che nessun dato vada perso o arrivi fuori ordine.

Qui è tutto in chiaro, anche le password. Programma molto pericoloso, tutti possono effettivamente ascoltare da quetso server. Però telnet su web funziona, parlando in linguaggio http.

problemi di telnet e spiegazione inserire

protocollo banale