Scarica

Transcript

Scarica
Telematica II
VoIP
A.A. 2005-06
• Voice over IP
è una tecnologia che rende
possibile effettuare una
conversazione telefonica
sfruttando una connessione
Internet o un'altra rete
dedicata che utilizza il
protocollo IP, anziché
passare attraverso la
normale linea di
trasmissione telefonica.
132 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
I vantaggi di VoIP
• minori costi delle infrastrutture:
– consente di eliminare le centrali di commutazione; tutto
ciò che serve è una rete IP
• economizzare sulla larghezza di banda occupata:
– Vengono instradati sulla rete pacchetti di dati contenenti
le informazioni vocali, codificati in forma digitale, e ciò
solo nel momento in cui è necessario, cioè quando uno
degli utenti collegati sta parlando.
133 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
I vantaggi di VoIP (2)
• minore costo per chiamata, specialmente su
lunghe distanze
• nuove funzionalità avanzate
• l'implementazione di future opzioni non richiederà
la sostituzione dell'hardware
134 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Esempi di utilizzo di VoIP
• Le grandi corporation utilizzano sempre più
spesso la telefonia IP, realizzando reti telefoniche
dedicate per collegare fra di loro le proprie sedi.
In questo modo, di fatto, realizzano una rete
digitale interna al gruppo, che si presta molto
bene ad essere modificata ed adattata per fornire
i più disparati tipi di servizi.
135 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Esempi di utilizzo di VoIP (2)
• VoIP è anche largamente utilizzato dalle
compagnie telefoniche, specialmente nei
collegamenti internazionali. Per gli utenti questo
utilizzo è completamente trasparente, nel senso
che non si accorgono che le loro chiamate sono
instradate su una rete IP anziché passare
attraverso le normali centrali di commutazione.
Telecom Italia, per esempio, instrada su IP una
percentuale significativa delle telefonate
interurbane fra Milano e Roma (circa il 60%, dato
del 2005).
136 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Problematiche del VoIP
• Coerenza temporale dello stream audio
– Il problema di fondo della tecnologia VoIP è la corretta
ricostruzione dei pacchetti di dati ricevuti, tenuto conto
del fatto che durante la trasmissione può cambiare la
sequenza dei pacchetti e che alcuni pacchetti possono
aver subito perdite o danneggiamenti delle informazioni
contenute.
• Latenza dei pacchetti
– Il tempo di latenza dei pacchetti deve essere
sufficientemente basso, in modo che l'utente non debba
aspettare troppo tempo prima di ricevere le risposte
durante le conversazione.
137 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
138 di 223
Modalità di chiamate VoIP
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Tipologie di protocolli richiesti
• Protocolli di segnalazione
– Per effettuare il log-in, cercare gli utenti, instaurare,
modificare e terminare le sessioni.
• Media Transport Protocols
– Per la trasmissione di pacchetti audio/video.
• Protocolli di supporto
– Localizzazione dei gateway, gestione della QoS,
traduzione degli indirizzi, autenticazione interdomini
etc…
139 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
140 di 223
Esempi di protocolli esistenti
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Esempi di protocolli esistenti (2)
• Protocolli di segnalazione
– SIP/SDP, H323
• Media Transport Protocols
– RTP, UDP, TCP
• Protocolli di supporto
– DNS, TRIP (Telephony Routing over IP), RSVP (Resource
Reservation Setup Protocol), COPS (Common Open
Policy Service)
141 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
SIP
• Il SIP (Session Initiation Protocol) è un
protocollo di segnalazione di sessione.
• Il protocollo è stato sviluppato a partire dal 1999
(RFC 2543 e 3261) per iniziativa di IETF e fa parte
della Internet Multimedia Conferencing Suite.
• Esso trova applicazione in:
–
–
–
–
telefonia su IP e servizi telefonici supplementari
video-comunicazione
giochi interattivi
messaggistica instantanea
142 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Principali funzioni
• Invitare gli utenti a partecipare ad una sessione:
–
–
–
–
localizzare gli utenti
acquisire le preferenze degli utenti
negoziare le capabilities
trasportare una descrizione della sessione
• Instaurare le connessioni di sessione
• Gestire eventuali modifiche dei parametri di
sessione
• Rilasciare le parti
• Cancellare la sessione in qualunque momento si
desideri
143 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Dispositivi SIP
• Gli USER AGENT possono essere:
– UA Client (effettuano le chiamate)
– UA Server (aspettano le chiamate in arrivo)
– Entrambi possono essere implementati via SW o HW
144 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Tipologie di server SIP
• SIP Proxy Server
– Inoltra le segnalazioni di chiamata
– Opera in maniera transazionale, cioè non tiene traccia
dello stato della sessione
• SIP Redirect Server
– Redirige le chiamate ad altri server
• SIP Registrar
– Accetta le richieste di registrazione da parte degli utenti
– Mantiene informazioni sulla posizione geografica degli
utenti
145 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Indirizzi SIP
• SIP assegna un indirizzo unico a livello mondiale.
• L’indirizzo viene espresso tramite una URI:
–
–
–
–
sip:[email protected]
sip:[email protected]:5068
sip:[email protected]
sip:[email protected]; geo.position:=48.54_-123.84_120
146 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
147 di 223
Registrazione
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
148 di 223
Esempio di chiamata
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
149 di 223
Struttura dei messaggi
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Metodi (RFC2543)
(
• INVITE
– Inizia una sessione
• ACK
– Conferma che la sessione è stata stabilita
• BYE
– Termina la sessione
• CANCEL
– Cancella una richiesta INVITE pendente
• OPTIONS
– Richiede le capacità dell’altro terminale
• REGISTER
– Effettua il binding di un indirizzo SIP con un indirizzo IP
150 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Header
• Via: mostra il protocollo di trasporto usato e
l’instradamento richiesto, ciascun proxy aggiunge una linea
a questo campo
• From: indirizzo del chiamante.
• To: indirizzo dell’utente chiamato.
• Call-Id: Identificatore univoco per ciascuna chiamata,
contenente l’indirizzo dell’host. Deve essere lo stesso per
tutti i messaggi all’interno di una transazione.
• Cseq: inizia con un numero casuale ed identifica con una
sequenza ciascun messaggio.
• Contact : uno (o più) indirizzi che possono essere usati per
contattare l’utente
• User Agent: nome del client.
151 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
Codici di risposta
A.A. 2005-06
• 1yz Informational
– 100 Trying
– 180 Ringing
– 181 Call is being forwarded
• 2yz Success
– 200 ok
• 3yz Redirection
– 300 Multiple Choices
– 301 Moved Permanently
– 302 Moved Temporarily
152 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Codici di risposta (2)
• 4yz Client Error
–
–
–
–
400
401
482
486
Bad Request
Unauthorized
Loop Detected
Busy Here
• 5yz Server Failure
– 500 Server Internal Error
• 6yz Global Failure
– 600 Busy Everywhere
153 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
154 di 223
Esempio di redirect
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Session Description Protocol (SDP)
• Fornisce le informazioni sufficienti per consentire
la partecipazione ad una sessione multimediale.
• SDP include la descrizione di:
–
–
–
–
–
Media da usare (codec, sampling rate)
Destinazione del media (indirizzo IP e numero di porta)
Nome della sessione e scopo
Tempo per cui la sessione deve rimanere attiva
Informazioni di contatto
• Queste informazioni sono contenute nel payload
dei messaggi SIP
155 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Esempio di parametri SDP
• v = 0 indica la versione in uso
• o = jack 7564657 9823872 IN IP4 134.102.18.1
l'owner della risorsa con un ID di sessione
• c = IN IP4 134.102.18.1 tipo di rete, la versione
del protocollo IP e l'IP stesso
• t = 0 0 tempo di start e di stop
• m = audio 4754 RTP/AVP 0 tipo di media, num. di
porta, protocollo di trasporto e formato
• a = rtpmap: 0 PCMU/8000 attributi audio\video..
se ce ne fossero
• s = festa subject della sessione
156 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Comunicazione multimediale su IP
• SIP essenzialmente stabilisce l’indirizzo IP ed i
numeri di porta tramite i quali i due terminali
della comunicazione possono inviare e ricevere
dati.
• SIP non trasporta i dati
• I pacchetti con i dati non seguono lo stesso
percorso di quelli SIP
• I flussi Audio/Video vengono digitalizzati,
compressi ed inviati in pacchetti UDP
• Le tecniche di compressione sfruttano le
limitazioni degli occhi e delle orecchie umane per
ridurre la bandwidth
157 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
158 di 223
Compressione
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Real Time Transport Protocol (RTP)
• Viene utilizzato per trasportare i flussi
multimediali
• Standardizzato dalla IETF e usato anche da ITU-T
159 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Caratteristiche di RTP
• Fornisce informazioni per:
–
–
–
–
–
–
–
media content type
talk spurts
sender identification
synchronization
loss detection
segmentation and reassembly
security (encryption)
160 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Reti peer-to-peer
• Una rete di computer peer-to-peer (P2P) sfrutta
principalmente la potenza di calcolo e la
bandwidth di tutti i partecipanti alla rete piuttosto
che concentrarla su un relativamente piccolo
numero di server.
• Tali reti sono utili per diversi scopi. Ad esempio:
– Condivisione di files (file sharing) contenenti audio,
video, dati.
– Trasmissione di dati in realtime, come ad esempio
traffico telefonico o di videoconferenza
161 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Reti peer-to-peer (2)
• Una rete peer-to-peer “pura” non prevede il
concetto di client o server, ma solo nodi peer
paritetici che contemporaneamente agiscono sia
da "client" che da "server" per gli altri nodi della
rete.
• Questo modello di organizzazione della rete
differisce da quello client-server dove solitamente
la comunicazione è verso o da un server centrale.
162 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Classificazione
• Reti peer-to-peer pure:
–
–
–
I peer agiscono come client e server
Non esiste un server centrale che gestisce la rete
Non esiste un router centrale
• Reti peer-to-peer ibride:
– Hanno un server centrale che mantiene le informazioni
sui peers
– I peer si occupano della memorizzazione delle risorse,
rendono noto al server centrale le risorse condivise ed
effettuano il download delle risorse ai peer che le
richiedono.
163 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Vantaggi delle reti P2P
• Una caratteristica importante delle reti peer-topeer è che tutti i client forniscono risorse quali
bandwidth, storage, e capacità di calcolo. Quindi
al crescere del numero di peer, la capacità totale
del sistema aumenta di conseguenza. Ciò non è
vero per una architettura client-server con un
numero fisso di server, in cui aggiungere nuovi
client potrebbe significare trasferimento dati più
lento per tutti gli utenti.
• La natura distribuita delle reti peer-to-peer
aumenta la robustezza in caso di guasti
replicando i dati su peer multipli, e – nelle reti P2P
pure – consentendo ai peer di trovare i dati senza
utilizzare un index server centralizzato.
164 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Attacchi alle reti P2P
• poisoning attacks (fornire file i cui contenuti sono diversi da
quelli descritti)
• polluting attacks (inserire chunk/pacchetti “cattivi” in un file
valido)
•
• defection attacks (utenti o software che fanno uso della
rete senza contribuire ad essa condividendo risorse)
• Inserimento di virus nei dati trasportati (i file scaricati
potrebbero essere infetti da virus o malware)
• malware nel software di rete stesso (il software distribuito
contiene spyware)
165 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Attacchi alle reti P2P (2)
• denial of service attacks (attacchi che rendono la
rete molto lenta o la bloccano completamente)
• filtering (gli operatori di rete potrebbero impedire
il transito dei pacchetti delle rete p2p)
• Identity attacks (identificare gli utenti della rete e
perseguirli legalmente)
• spamming (inviare informazioni non richieste agli
utenti attraverso la rete)
166 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Esempio di rete P2P: BitTorrent
• BitTorrent è un protocollo per reti P2P ibride progettato per
distribuire grandi quantità di dati senza far uso di costosi
server e senza usare grande bandwidth.
• E’ stato ideato nel 2001 da Bram Cohen.
• Questo sistema si basa sul principio che durante il
trasferimento di un file, chi scarica lascia inutilizzata la
propria banda in uscita: questo è uno spreco che BT risolve
facendo sì che un client faccia scaricare lo stesso file ad
altri client, usando la propria banda in upload.
167 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Schema di funzionamento di BT
Seeder
Tracker
Leechers
Connessione al Tracker
Download dal Seeder
168 di 223
Protocolli di livello applicativo
Scambio file tra Leechers
S. Coppi
Telematica II
A.A. 2005-06
Funzionamento di BT
• Si scarica, da un web server, un file .torrent contenente
informazioni sul file che si vuole scaricare.
• Si usa il client BT per aprire il file .torrent e collegarsi al Tracker,
un server che contiene la lista dei Seeders (client che dispongono
di tutto il file) e dei Leechers (client che dispongono solo di una
parte del file).
• Il download vero e proprio avviene sia dai Seeders che dagli altri
Leechers.
• Quindi la macchina di un utente fa sia da client che da server per
gli altri.
• E’ necessario un server centrale (Tracker) per coordinare lo
scambio dei file. Il vantaggio è quello di ridurre il consumo di
banda del server centrale.
169 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Limiti del protocollo
• BitTorrent non offre ai suoi utenti l’anonimato.
Poichè i tracker mantengono una lista dei nodi
che condividono file, è possibile ottenere
l’indirizzo IP sia degli utenti correnti ed anche di
quelli che hanno condiviso file in precedenza.
• Un altro limite del modello BitTorrent è che gli
utenti che condividono i file hanno poco incentivo
a diventare seeders dopo che hanno completato il
loro download. Ciò si traduce in una minore
possibilità di ottenere i torrent più vecchi.
170 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Paragone con altri sistemi P2P
• Il metodo usato da BitTorrent per distribuire i file è simile a
quello della rete eDonkey2000, ma i nodi di quest’ultima
rete solitamente condividono e scaricano un maggiore
numero di file, facendo diventare la bandwidth disponibile
per ciascun trasferimento molto più piccola.
• I trasferimenti su BitTorrent sono solitamente molto veloci,
poiché tutti i nodi si concentrano nel trasferimento di un
singolo file.
• Molti nuovi sistemi P2P hanno dei meccanismi per
incentivare l’upload dei file. Ad esempio eMule ha un
sistema di crediti in cui un nodo “ringrazia” gli altri nodi che
gli forniscono file incrementado la loro priorità nella sua
coda.
171 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Paragone con altri sistemi P2P (2)
• BitTorrent non fornisce un metodo per indicizzare
i file condivisi. La conseguenza di ciò è che pochi
siti sono disposti ad ospitare i file .torrent e quindi
sono disponibili un minor numero di files rispetto
alla rete eDonkey.
• Recentemente, Bram Cohen ha rilasciato un
proprio BitTorrent search engine, che cerca i
torrent nei più diffusi tracker BitTorrent, anche se
esso non ospita i file torrent stessi.
• Uno degli obiettivi per la prossima versione 4.1.2
di BitTorrent è l’uso di tracker distribuiti, che
eliminerebbe il single point of failure del sistema.
172 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Codifica bencoding
• Tutti i dati presenti nel file torrent usano la
codifica bencoding.
• Le stringhe sono codificate nel seguente modo:
<lunghezza stringa (decimale)>:<string data>
Esempio: 4:spam rappresenta la stringa "spam“
• Gli interi sono codificati nel seguente modo:
i<intero decimale in ASCII>e
Esempio: i3e rappresenta l’intero "3“
173 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Codifica bencoding (2)
• Le liste sono codificate nel seguente modo:
l<valori bencoded>e
Esempio: l4:spam4:eggse rappresenta la lista: ["spam",
"eggs"]
• I dizionari sono codificati nel seguente modo:
d<bencoded string><bencoded element>e
Esempio: d3:cow3:moo4:spam4:eggse rappresenta il
dizionario:
{ "cow" => "moo", "spam" => "eggs" }
174 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Struttura del file .torrent
• Il contenuto del file .torrent è una dizionario
bencoded, contenente le seguenti chiavi:
–
–
–
info(*) : un dizionario che descrive il file da scaricare
announce(*): announce URL del tracker
creation date: data di creazione del file (intero in
formato Unix epoch)
– comment: stringa con i commenti dell’autore
– created by: nome e versione del prg. usato per
generare il file
175 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Struttura del file .torrent (2)
• Il dizionario info contiene le seguenti voci:
– length(*): lunghezza del file in byte (intero)
– md5sum: stringa di 32 caratteri hex con la md5 sum del
file
– name(*): nome del file (stringa)
– piece length(*): lunghezza in byte di ciascun “pezzo”
in cui è suddiviso il file (intero)
– pieces (*): valore di hash a 20 byte calcolato con SHA1
per ciascun piece.
• Info può contenere anche informazioni su file
multipli associati allo stesso file .torrent.
176 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Protocollo usato dal tracker
• Il tracker è un servizio che risponde alle richieste
HTTP GET.
• Le richieste includono delle metriche fornite dai
client che aiutano il tracker a mantenere delle
statistiche globali.
• Le risposte contengono una lista di peer che
contengono il file da scaricare.
• I parametri vengono codificati nella URL
(contenuta nel file .torrent)
177 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Parametri della richiesta
• info_hash: 20-byte SHA1 hash del valore del campo info
nel .torrent
• peer_id: stringa di 20-byte usata come ID per il client,
generata allo startup del client.
• port: numero della porta su cui il client è in ascolto
(tipicamente 6881-6889)
• uploaded: numero totale di byte trasferiti in upload
• downloaded: numero di byte scaricati
• left: numero di byte rimasti da scaricare
• event: uno tra i valori started, completed, stopped che
indicano lo stato del trasferimento
• ip: indirizzo IP del client (opzionale)
178 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Formato della risposta
• Il tracker risponde con un documento nel tipo
MIME text/plain contenente un dizionario
bencoded con le seguenti chiavi:
– failure reason: motivo del problema (se presente le
altra chiavi ci possono non essere)
– interval: intervallo, in secondi, che il client deve
attendere prima di mandare una nuova richiesta al
tracker
– tracker id: identificativo univoco del tracker
– complete: numero dei peer con il file completo
(seeders)
– incomplete: numero dei peer con parti di file (leechers)
– peers: è una lista di dizionari con le seguenti chiavi:
• peer id, ip, port
179 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Formato della risposta (2)
• I client possono mandare una richiesta al tracker
più spesso dell’intervallo specificato, se viene
invocato un evento (ad es: stopped o completed)
o se il client ha bisogno di conoscere un maggior
numero di peer.
180 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Peer wire protocol
• Il peer protocol facilita lo scambio dei chunk come
descritto nel file .torrent
• Un client deve mantenere informazioni di stato
per ciascuna connessione attiva on un altro peer
remoto:
– choked: indica se il peer remoto ha messo in stato di
“choked” questo client. Quando accade ciò il peer
remoto non accetta richieste da questo client.
– interested: indica se il peer remoto è interessato a
qualcosa questo client ha da offrire. E’ una notifica che il
peer remoto inizierà a richiedere blocchi quando il client
lo pone in stato “unchoked”.
181 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Peer wire protocol (2)
• Un blocco viene scaricato dal client quando
questo è interesato in un peer, e quel peer non ha
messo il client in choking.
• Viene fatto l’upload di un blocco da un client ad
un peer quando il client non ha messo in stato di
choking il peer, e quel peer è interessato al client.
• E’ importante per il client tenere i suoi peer
informati se è interessato a blocchi da essi
posseduti.
182 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Message flow
• Il peer wire protocol consiste di un handshake
iniziale.
• Dopo questo, i peer comunicano attraverso uno
scambio di messaggi a lunghezza prefissata.
183 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Handshake
• L’handshake è un messaggio obbligatorio e deve
essere il primo messaggio trasmesso dal client.
• La sintassi è:
<pstrlen><pstr><reserved><info_hash><peer_id>
–
–
–
–
pstrlen: lunghezza di <pstr>, come singolo raw byte
pstr: stringa che identifica il protocollo
reserved: 8 byte riservati. (attualmente posti a 0)
info_hash: 20-byte SHA1 hash del valore del campo info
nel file torrent.
– peer_id: 20-byte string usata come ID per il client.
184 di 223
Protocolli di livello applicativo
S. Coppi
Telematica II
A.A. 2005-06
Formato dei messaggi
• Tutti i restanti messaggi del protocollo hanno la
seguente struttura:
<length prefix><message ID><payload>
length prefix è un valore a 4 byte big-endian
message ID è un singolo carattere
• Ad esempio il messaggio di choke:
choke: <len=0001><id=0>
unchoke: <len=0001><id=1>
interested: <len=0001><id=2>
185 di 223
Protocolli di livello applicativo
S. Coppi