+++
title = "Introduzione alle reti"
outputs = ["Reveal"]
+++

### intro sulle reti

---

### Come funziona l'internet?

---

- via radio
- con le antenne telefoniche
- con cavi sottomarini
- con connessioni satellitari

---
#####

![/images/cable_map.png](/images/cable_map.png)

---
<!-- 
![/images/datacenter1.jpeg](/images/datacenter1.jpeg)

---

![/images/datacenter2.jpeg](/images/datacenter2.jpeg)

--- -->

### Un po di sigle

Tanto per confonderci meglio, cerchiamo di capire cosa fanno questi diversi
elementi


---

* ISP
* Router
* WAN
* LAN
* Host(s)
* WLAN


---

### Stack ISO/OSI

Possiamo dividere la rete internet, per come viene vista da un pacchetto,
si puo' suddividere in sette "strati".

---

<img src='/images/iso.png' style='height: 600px;'/>

---

### Dall'alto verso il basso
**Application Layer**

* HTTP (Hypertext Transfer Protocol)
* SMTP (Simple Mail Transfer Protocol)

ce ne sono un sacco, ma chi decide? [RFC](https://datatracker.ietf.org/doc/html/rfc2616), IETF

---

### Transport Layer

Come i dati vengono mandati, se controllando o meno gli errori durante la
connessione.

* TCP (Transmission Control Protocol) - reliable data delivery
* UDP (User Datagram Protocol) - unreliable data delivery


---

### Network Layer

Qui per permettere agli host, più propriamente al sistema operativo,

Questo layer usa:
* IP (Internet Protocol) - Permette di instradare pacchetti da una host
  all'altro
* ICMP (Internet Control Message Protocol) - Errori, debug, che succede.


---

### Link Layer

Come vengono mandati fisicamente i dati nella ferraglia

- quanti modi vi vengono in mente?

---

### Paccheti che si instradano?

Abbiamo trovato un modo molto criptico di dire "dati che si muovono", ma
avviene cio'?

* MAC: 8 byte OUI (Organizational unique identifier) 8 univoci per scheda
  fisica
* IP
* Hostname


---

### Quindi, se visito un sito, che giro faccio?

---

### Layer Applicativo
    * Protocollo HTTP
    * Metodi: GET, POST, vari ed eventuali
    > GET / HTTP/1.1
    > Host: google.com

---
### Layer di trasporto

    - Porte
    - UDP
    - TCP

---

### Layer di Rete
    - IP: destinazione e sorgente


---

### Layer Fisico

    - Incapsula il pacchetto TCP/IP dentro un frame
    - ARP (Address Resolution Protocol)

---

### Quindi se vado su un sito che giro faccio?

![Esempio stack ISO/OSI](/images/stackiso.png)


---

### ROUTE, NETMASK, E ALTRE COSE ORRIBILI

- Ovvero, di cosa ha bisogno il mio computer per attaccarsi al router?
- IP, lo abbiamo visto
- GATEWAY, "da dove passare", quindi l'IP del gateway
- NETMASK, il mio PC sa di essere in una sottorete, ma quanto e'
    grande?

Con questi ingredienti posso collegarmi al router!

---

### DHCP
E' interessante cercare di capire come fa il router a farci collegare
in automatico.

- DHCP
- DHCP DISCOVER
- DHCP OFFER
- DHCP REQUEST
- DHCP ACK
- Riusciamo a vederlo con wireshark?

---

### HTTP
Proviamo! Posso usare internet da terminale?

`curl https://www.wttr.in/turin `


---

### Developer Tools

Ovvero, avevate mai provato a premere **F12** sul browser?

---

### GET

- parametri
- escaping
- content-type

eg. autocompletamento di startpage.com

---

### POST

- parametri
- dati

---
### Live - WS

pad.
