oleg ha scritto:
Comunque, tralasciando questo, vorrei avere un'idea più chiara di questo settore. Nel libro di Tanenbaum si trattano diversi argomenti visti come strati che compongono le reti di comunicazione. Ora, un programmatore di rete, (qualunque cosa voglia dire) di cosa si occupa esattamente?
Programmatore di rete non significa nulla, così come poco reti.
Ci sono reti e reti, anche se la stragrande maggioranza sono ethernet, non tutte lo sono.
In una centrale nucleare troverai ancora dei token ring implementati in software.
Faccio un esempio, senza nominare grosse aziende. Se devo creare un'app di messaggistica come telegram, cosa mi serve conoscere delle reti. Non penso certamente il funzionamento del cavo coassiale.
Non sono "reti". E' UNA rete (o meglio l'interconnessione di tante reti), basate su IPv4.
Quindi si tratta di reti IPv4 (per il -6 campa cavallo).
Come al solito ci sono vari livelli di conoscenza e quindi di consapevolezza.
A livello più alto c'è un linguaggio in cui c'è una libreria X che consente con 3 righe di codice di aprire un canale tra due applicazioni.
Come ciò avvenga è un mistero.
Questo è il livello pasticcione-bimbomink-googolaro.
A quello più basso c'è chi sa come siano i campi dei frame, poi c'è chi sa qual'è la latenza di propagazione su rame e quindi quanto sia "lungo" un frame, e dunque le ricadute sul detect delle collisioni, quanto può essere lungo un cavo e così via.
Che è il livello laureato-coi-controcoglioni.
Nel mezzo trovi di tutto.
Qual'è la differenza?
Dipende da cosa vuoi fare.
C'è chi, per dire, sa che girando una chiave si avvia un'automobile.
E, magari, la sa guidare anche benissimo.
Però se (sempre per dire) perde olio non saprebbe da che parte iniziare.
Men che meno se avesse un guasto serio
Qualcosa di analogo anche per l'informatica.
Poi, nel libro vengono citate anche le tecnologie come Voip, ma non viene descritto come implementare tali cose. Vorrei capire solo questo.
Qui "solo" c'è un mondo intero, a partire dal PSTN, dalla tensione sui doppini fino al QoS.
Insomma devi sapere da come funzionavano i telefoni a rotella (altrimenti non riuscirai mai a far un gateway fax-IP) fino ai codec moderni etc.
Per "capire" solo questo, così a "naso", servono un 4 esami (di quelli facili, odierni), un annetto circa di prove in proprio, e magari un 5 anni di esperienza sul campo.
La domanda è grosso modo simile a: "vorrei capire solo come trapiantare un fegato".
Certo, non è difficile.
Se lo sai fare (cioè ci hai messo 10 anni).
Così per provare, sono andato a cercare libri sul networking, pur non avendo chiaro cosa racchiuda questo settore, e ci sono diversi libri sulla programmazione di rete in unix e usando librerie fornite dal c++ o java o python. Però, per usare le librerie, bisognerà conoscere della teoria. Il libro di tanenbaum continue quella teoria?
Stai facendo un gran mischione.
Ci sono gli approcci teorici, che poi "collassano" tutti (o quasi) su reti IPv4.
Quindi l'argomento è di tipo sistemistico: come funziona un network di reti IPv4?
Poi c'è quello "a salire", cioè Internet.
Come funziona internet?
Questa è la fascia diciamo così "di base".
Lato programmazione c'è: sapendo come funziona internet (!ahahahha!) scrivere applicazioni che parlino tra di loro attraverso internet.
Ma come? Per fare cosa?