42
Linguaggi ed Applicazioni mul1mediali Mul1media in rete 04.01 Introduc1on to transport protocols 04.02 Distribu1on of mul1media 04.03 streaming 04.02 Streaming Protocols ISTI Informa1on Science and Technology Ins1tute Maurizio Maffi

Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Linguaggi  ed  Applicazioni  mul1mediali  

Mul1media  in  rete  

04.01-­‐  Introduc1on  to  transport  protocols    04.02-­‐  Distribu1on  of  mul1media    04.03-­‐  streaming      04.02-­‐  Streaming  Protocols  

 ISTI      Informa1on  Science  and  Technology  Ins1tute    Maurizio  Maffi  

Page 2: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Le  applicazioni  mul1mediali  possono  essere  classificate  nelle  seguen1  categorie:  

1.  Real  1me  

2.  Synchronous  (interac1ve)  /  Asynchronous  

3.  Unicast  /  Mul1cast  /  Broadcast  

4.  One-­‐way  /  bidirec1onal  

Applicazioni  mul1mediali  

Page 3: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Applicazioni  mul1mediali  Real  &me  Sostanzialmente  un  sistema  in  tempo  reale  è  un  sistema  che  deve  reagire  ad  un  dato  s1molo  entro  un  tempo  predefinito.    

Hard  &me  i  sistemi  ‘hard’  richiedono  un  rispeUo  rigido  dei  vincoli  di  precisione  temporale,  in  quanto  mancare  una  scadenza  significherebbe  invalidare  il  funzionamento  dell’intero  sistema  

So-  &me  I  ‘soX’  si  limitano  ad  un  rispeUo  sta1s1co  dei  vincoli  che,  se  forza1,  portano  ad  una  degradazione  dell’applicazione  che  può  però  essere  tollerata  in  funzione  del  suo  costo  per  l’u1lizzatore  

Page 4: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Applicazioni  mul1mediali  

Unicast:  il  des1natario  della  tramissione  è  un  unico  host  

Mul&cast:  il  des1natario  è  rappresentato  da  un  gruppo  di  host  

Broadcast:  il  des1natario  della  trasmissione  è  rappresentato  da  ogni  host  raggiungibile  

Page 5: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Applicazioni  mul1mediali  -­‐  Mul1cast  Il  mul&cast  è  un  metodo  per  la  distribuzione  di  da1  verso  un  certo  numero  di  host.  

I  da1  vengono  trasmessi  solo  una  volta  dall’host  sorgente  verso  le  des1nazioni,  che  possono  anche  trovarsi  su  diverse  re1.  

Tipicamente,  il  gruppo  di  des1natari  in  una  trasmissione  mul1cast  è  dinamico,  nel  senso  che  è  sempre  aperto  all’entrata  di  nuovi  host  o  all’uscita  di  quelli  già  esisten1.  

Questo  dinamismo  consente  al  sistema  di  operare  anche  in  caso  di  interruzione  nei  normali  servizi  di  rete.  

Page 6: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Re1  di  computer  Per   una   migliore   comprensione   delle   architeUure,   dei   protocolli   e   tecniche,   è  necessario   introdurre   alcuni   conce\   di   base   rela1ve   alle   re1   di   computer   (in  par1colare  a  rete  Internet).  

Il   modello   ISO/OSI,   concepito   per   re1   di   telecomunicazioni   a   commutazione   di  paccheUo,  è  cos1tuito  da  una  pila  (o  stack)  di  protocolli  aUraverso  i  quali  viene  ridoUa  la  complessità  implementa1va  di  un  sistema  di  comunicazione  per  il  networking.  

In   par1colare   ISO/OSI   è   cos1tuito   da   stra1   (o   livelli),   i   cosidde\   layer,   che  racchiudono  uno  o  più  aspe\  fra   loro  correla1  della   comunicazione   fra  due  nodi  di  una   rete.   I   layers   sono   in   totale  7   e   vanno  dal   livello  fisico   (quello  del  mezzo  fisico,  ossia   del   cavo   o   delle   onde   radio)   fino   al   livello   delle   applicazioni,   aUraverso   cui   si  realizza  la  comunicazione  di  alto  livello.  

Page 7: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Re1  di  computer  

Ogni  layer  individua  un  protocollo  di  comunicazione  del  livello  medesimo.    

ISO/OSI  realizza  una  comunicazione  per  livelli,  cioè  da1  due  nodi  A  e  B,  il  livello  n  del  nodo  A  può  scambiare  informazioni  col  livello  n  del  nodo  B  ma  non  con  gli  altri:  ciò  conferisce  modularità  al  sistema  e  semplicità  di  implementazione  e  reimplementazione.  

Page 8: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Layers  

1

2

3

4

5

6

7

LAYER  

Page 9: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Layer  1  physical  L’obie\vo  di  questo  livello  è  quello  di  trasmeUere  bit  su  un  canale  di  comunicazione.  

Gli  aspe\  di  progeUo  sono:  •  Garan1re  che  la  comunicazione  avvenga  in  modo  correUo  (es.  se  viene  inviato    un  1,  venga  ricevuto  un  1  e  non  uno  0)  •  Ges1one  esplicita  delle  caraUeris1che  meccaniche,  eleUriche  e  procedurali  delle  interfacce  di  rete  (componen1  che  conneUono  l'elaboratore  al  mezzo  fisico)  e  le  caraUeris1che  del  mezzo  fisico  

Si  ges1scono,  ad  esempio:  •  Tensioni  scelte  per  rappresentare  0  ed  1  •  Durata  (in  microsecondi)  di  un  bit  •  Trasmissione  simultanea  in  due  direzioni  oppure  no  •  Forma  dei  conneUori  

Page 10: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Layer  2  data  link  

Obie\vo:  far  sì  che  un  mezzo  fisico  trasmissivo  appaia,  al  livello  superiore,  come  una  linea  di  trasmissione  esente  da  errori  di  trasmissione  non  rileva1.  

TrasmeUe  frame  con  "sufficiente“  affidabilità  tra  due  en1tà  direUamente  connesse,  rileva  errori  di  trasmissione  e  (raramente)  li  corregge.  

Operazioni  legate  ai  frame  –  delimitazione,  ordinamento  dei  bit,  suddivisione  in  campi,  indirizzi,  etc.  

Rilevazione  e  correzione  errori    –  codici  auto  correggen1,  ritrasmissione,  basata  su  pacche\  ACK  (acknowledgement)  

Page 11: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Layer  2  data  link  

Funzionamento  •  SpezzeUa  i  da1  provenien1  dal  livello  superiore  in  frame;  •  Invia  i  frame  in  sequenza  •  AspeUa  un  acknowledgement  (ack)  per  ogni  frame  inviato  

Page 12: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Layer  2  data  link  

Compi1:  •  Aggiunta  di  delimitatori  (framing)  all'inizio  ed  alla  fine  del  frame;  •  Ges1one  di  errori  di  trasmissione  causa1  da:     Errori  in  ricezione     Perdita  di  frame     Duplicazione  di  frame  (da  perdita  di  ack)     regolazione  del  traffico  (per  impedire  che  il  ricevente  sia  "sommerso“)     meccanismi  per  l'invio  degli  ack     piggybacking  (da  pickaback,  cioè  trasportare  sulle  spalle)  dei  pacche\  ACK  Per  le  re1  broadcast  che  devono  controllare  l'accesso  condiviso  al  canale  trasmissivo,è  stato  implementato  uno  speciale  soUolivello  del  livello  data  link,  il  MAC  (Medium  Access  Control)  

Page 13: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Layer  3  network  

Obie\vo:  ges1re  l'instradamento  di  frame  aUraverso  sistemi  intermedi,  e  trovare  percorsi  alterna1vi  in  caso  di  problemi.  

E’  il  primo  livello  che  si  occupa  del  correUo  instradamento  (rou1ng)  dei  pacche\  nella  rete.  

Il  layer  determina  se  e  quale  sistema  intermedio  deve  essere  aUraversato  dai  messaggi  al  fine  di  giungere  a  des1nazione.  

A  questo  scopo  il  layer  u1lizza  apposite  rou1ng  tables  per  consen1rgli  di  individuare  strade  alterna1ve  in  caso  si  presen1no  degli  errori  (fault  tolerance).  

Page 14: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Layer  4  Transport  

Obie\vo  del  layer  4  è  quello  di  garan1re  una  trasmissione  affidabile,  o\mizzando  l'uso  delle  risorse  e  di  faUo  ignorando  la  topologia  della  rete  o  la  presenza  di  ulteriori  sistemi  di  rou1ng  intermediari  (end  to  end).  

Affidabilità:  tuUe  le  trame  arrivano  a  des1nazione,  in  copia  unica  e  in  ordine.  

O\mizzazione:  traffico  ripar1to  sui  canali  disponibili,  prevenzione  della  conges1one  della  rete.  

Deve  acceUare  da1  dal  livello  superiore,  spezzeUarli  in  pacche\,  passarli  al  livello  rete  ed  assicurarsi  che  arrivino  alla  peer  en7ty  corrispondente.  

Page 15: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Layer  4  Transport  

Si  occupa  della  creazione  di  connessioni  di  livello  rete:  1.  Una  connessione  rete  per  ciascuna  connessione  trasporto  2.  Molte  connessioni  rete  per  una  singola  connessione  trasporto  3.  Una  singola  connessione  rete  per  molte  connessioni  trasporto  ,  con  meccanismi  di  

mul1plexing  

Offerta  di  servizi  al  livello  superiore:  1.  canale  punto  a  punto  affidabile,  che  consegna  da1  in  ordine  e  senza  errori  (il  servizio  

più  diffuso,  connec7on  oriented)  3.  invio  di  messaggi  isola1,  con  o  senza  garanzia  di  consegna  (connec7onless)  4.  broadcas1ng  di  messaggi  a  mol1  des1natari  (connec7onless)  

Page 16: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Layer  5  Session  

Obie\vo:  ges1re  il  dialogo  end-­‐to-­‐end  tra  due  programmi  applica1vi  che  devono  comunicare  

Dialogo       garan1re  la  mutua  esclusione  nell'u1lizzo  di  risorse  condivise  (token)       intercalare  domande  e  risposte  garantendo  la  consequenzialità  

Sincronizzazione       stabilire  pun1  intermedi  (checkpoint)  nella  comunicazione  rispeUo  ai  quali  entrambe  le  par1  abbiano  la  garanzia  che  quanto  accaduto  prima  sia  andato  a  buon  fine  

Page 17: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Layer  6  Presenta1on  Obie\vo:  ges1re  la  sintassi  dell'informazione  lungo  l'intero  percorso  end-­‐to-­‐end,  convertendo  i  vari  forma7  (criUografia,  compressione,  ri-­‐formaUazione).  Tre  diverse  seman1che  consentono  di  definire  le  trasformazioni  dei  da1  provenien1  dal  livello  7:  

Sintassi  astraUa  –  definizione  formale  dei  da1  scambia1  dagli  applica1vi  

Sintassi  concreta  locale  –  come  i  da1  sono  rappresenta1  sui  singoli  sistemi  

Sintassi  concreta  di  trasferimento  –  come  i  da1  sono  rappresenta1  lungo  il  percorso  

Page 18: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Layer  7  Applica1on  

Obie\vo:  definire  i  servizi  aUraverso  cui  l'utente  (non  necessariamente  umano)  u1lizza  la  rete,  con  tuUe  le  rela1ve  interfacce  di  accesso  

Servizi  di  utente  –  terminale  virtuale,  trasferimento  di  file,  posta  eleUronica,  servizi  di  directory,  etc.  

Servizi  di  sistema  opera7vo  –  risoluzione  di  nomi,  localizzazione  di  risorse,  sincronizzazione  degli  orologi  tra  sistemi  diversi,  controllo  di  diri\  di  accesso,  etc.  

Page 19: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Protocolli  internet  e  relazioni  con  iso/osi  

Page 20: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Il  protocollo  IP  

il  protocollo  IP  (Internet  protocol)  che  definisce  il  livello  di  rete  (layer  3)  di  internet  è:  

1.  NON  ORIENTATO  ALLA  CONNESSIONE  (connec1onless):  ogni  paccheUo  con1ene  l’indirizzo  di  partenza  e  di  des1nazione  e  può  seguire  un  percorso  diverso  (rou1ng).  

2.  NON  AFFIDABILE:  (best  effort)  ogni  singolo  paccheUo  può  non  arrivare,  o  arrivare  con  un  ritardo  impredicibile  a  priori.  

Page 21: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Il  livello  di  trasporto    

Nella  suite  protocollare  del  livello  di  trasporto  (layer  4)  sono  disponibili  due  diversi  protocolli  di  trasporto    

1.   TCP  (Trasmission  Control  Protocol):  è  un  protocollo  con  connessione  di  1po  affidabile,  ossia  tu\  i  pacche\  spedi1  arrivano  rispeUando  l’ordine  di  arrivo.  

2.   UDP  (User  Datagram    Protocol):  è  un  protocollo  senza  connessione  ed  è  di  1po  non  affidabile  poiché  i  pacche\  spedito  possono  arrivare  in  ordine  diverso  o  nel  caso  peggiore  non  arrivare  affaUo.  

Page 22: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

TCP  vs  UDP  

Possiamo  riassumere  le  differenze  tra  TCP  ed  UDP  nel  seguente  modo:  

TCP     UDP  

Garan1sce  la  consegna  ordinata  dei  pacche\  

NON  garan1sce  la  consegna  ordinata  dei  pacche\  

Richiede  più  banda  e  più  tempo  di  comunicazione  a  causa  dei  controlli  per  garan1re  la  consegna  

Non  dovendo  effeUuare  controlli  per  garan1re  le  consegna  dei  pacche\,  risulta  essere  veloce.  

Page 23: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Tempo  di  trasmissione  

Calcolare  il  tempo  necessario  per  trasferire  un  paccheUo  da  una  sorgente  verso  la  sua  des1nazione  può,  nella  rete,  essere  un’operazione  molto  complessa.  

Una  delle  cause  è  legata  alla  differenza  di  orario  tra  le  due  macchine,  differenza  che  non  può  essere  colmata  con  semplici  operazioni  di  sincronizzazione.  

Page 24: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Tempo  di  trasmissione  

Page 25: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Round  trip  &me  

Al  fine  di  misurare  le  performance  di  rete,  è  possibile  u1lizzare  il  Round  Trip  Time  (RTT),  come  espressione  del  tempo  necessario  ad  un  paccheUo  per  giungere  a  des1nazione  e  tornare  indietro.  

Questo  tempo  può  quindi  essere  calcolato  come  differenza  tra  due  diversi  tempi  oUenu1  con  il  medesimo  orologio.  

Page 26: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Round  trip  &me  

Page 27: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Round  trip  &me  

Page 28: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Applicazioni  mul&mediali  

La  scelta  del  protocollo  di  trasporto  da  u1lizzare  in  ambito  mul1mediale  dipende  fortemente  dal  1po  di  applicazione    mul1mediale  che  si  vuole  realizzare    

   Possiamo  dis1nguere  due  1pi  di  applicazioni    

1.  Applicazioni  che  richiedono  il  download  completo  delle  risorse  mul1mediali.  Esempio:  applicazioni  peer-­‐to-­‐peer.  

2.  Applicazioni  che  NON  richiedono  il  download  completo  delle  risorse  mul1mediali,  ma  operano  su  flussi  genera1  dal  media  con1nuo  nel  tempo  

Page 29: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Applicazioni  mul&mediali  

•     Non  sempre  il  download  completo  del  file  è  una  strategia  u1lizzabile  ed  esistono  addiriUura  casi  in  cui  ciò  rappresenta  una  metodica  di  1po  insostenibile.  

•     Non  è  possibile,  ad  esempio,  il  download  completo  in  caso  di  applicazioni  che  operino  in  tempo  reale,  come  può  essere  per  esempio  la  radio  via  Internet,  o  analogamente  la  TV  via  Internet.  

•     Esistono  poi  casi  in  cui  il  download  sarebbe  possibile  ma  sarebbe  così  lungo  da  scoraggiare  l'utente.  Per  esempio  nel  caso  del  video  on  demand,  il  download  di  un  intero  film  può  richiedere  anche  ore  e  l'utente  non  è  1picamente  disponibile  ad  aUendere  così  tanto  per  iniziare  a  fruire  del  servizio  che  ha  richiesto.  

Page 30: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

STREAMING  

•     quando  il  download  sarebbe  troppo  lungo  allora  si  u1lizza  una  tecnica  nota  come  STREAMING  che  opera  considerando  il  media  come  stream  ,  ovvero  flusso  ,  e  non  come  file.  

•     L’host  ricevente  comincia  il  playout  del  media  con1nuo  (audio  e  video)  prima  che  si  concluda  la  comunicazione  con  l’host  trasmiKente  

comunicazione  

Page 31: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Streaming  

•     Il  meccanismo  di  base  dello  streaming  lo  si  può  semplificare  nel  seguente  modo:  

       L’host  sorgente  inizia  la  trasmissione    

       L’host  des1nazione  riceve  il  primo  paccheUo  dalla  sorgente  e  aspeLa  un  certo  periodo  durante  il  quale  accumula  pacche\  che  arrivano  a  des1nazione  

       terminato  il  periodo  d’aUesa  l’host  di  des1nazione  comincia  il  playout  dei  pacche\  accumula1  

       La  trasmissione  con1nua  con  la  modalità  descriUe  sino  al  termine  

Page 32: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Streaming  su  UDP  

•     Tipicamente  i  sistemi  di  streaming  operano  su  UDP,  cioè  il  protocollo  di  trasporto  che  NON  controlla  l’integrità  della  trasmissione  né  l’ordine  di  arrivo  dei  pacche\  (connec7onless).  

  PRO:  viene  velocizzata  la  trasmissione  liberandola  dai  controlli  

  CONTRO:  possono  esserci  pacche\  persi  e  pacche\  disordina1,  causa1  dal  servizio  best  effort  (massimo  impegno)  offerto  da  IP.  

Page 33: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

JiLer  

•     Se  il  controllo  di  ordine  ed  integrità  non  è  effeUuato  a  livello  di  trasporto  (UDP)  allora  deve  essere  effeUuato  a  livello  applicazione  .  

•  Il  disordine  che  si  produce  presso  la  stazione  ricevente  è  causato  dal  faUo  che  ciascun  paccheUo  impiega  un  tempo  diverso  a  raggiungere  la  des1nazione.    

•  La  variabilità  del  ritardo  (e  conseguentemente  la  sua  impredicibilità)  prodoUo  dalla  trasmissione  è  deUa  DELAY  JITTER  (  variazione  del  ritardo  )  

Page 34: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Buffer  

•  L’host  di  des1nazione  deve  predisporre  uno  spazio  di  memoria  in  cui  accumulare  i  pacche\  in  aUesa  del  playout  (  buffer)    

•  Il  buffer  è  una  struUura  a  pila  di  1po  FIFO  (first-­‐in-­‐first-­‐out)  che  viene  riempita  da  un  lato  e  svuotata  dall’altro  

•  Il  buffer  non  si  riempie  in  modo  regolare    

  Perché  i  pacche\  possono  arrivare  disordinatamente      Perché  alcuni  pacche\  possono  non  arrivare  affaUo  

Page 35: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Buffer  

1  

3J   1  

5J   3   1  

6   5   4   3   1  

6   5   4   3  

8J   6   5   4   3  

9   8   6   5   4  

5   4   3   1  

TIME  

0  

1  

2  

3  

4  

5  

6  

7  

8  

Playout  1  

Playout  3  

Playout  2  

J  =  delay-­‐jiLer  

Page 36: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Packet  Loss  

•  Nell’esempio  precedente    il  paccheUo  #2  non  è  arrivato  in  tempo  per  essere    ascoltato    

•  Questo  1po  di  errore  è  deUo  PACKET  LOSS  e  genera  una  interruzione  del    segnale  

•  Il  paccheUo  perso  può  essere  

  Realmente  perso,  ossia  non  arriverà  mai  al  ricevente    Troppo  in  ritardo,  arriverà  al  ricevente  ma  non  in  tempo  per  il  playout  

Page 37: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Buffer  e  QoS  (Quality  of  Service)  

La  struUura  a  buffer  ha  sia  dei  vantaggi  che  degli  svantaggi  

•  VANTAGGI:  

  EffeUua  automa1camente  il  riordino  dei  pacche\,  tentando  di  compensare  e  ges1re  il  delay  jiUer  

•  SVANTAGGI:  

  I  pacche\  messi  in  aUesa  ritardano  forzatamente  il  momento  del  loro  playout,  con1nuando  ad  occupare  spazio.  Nell’esempio  precedente  il  paccheUo  1  era  presente  al  tempo  1,  ma  il  suo  playout  avviene  solo  al  tempo  6  

Page 38: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Parametri  di  qualità  

•  I  parametri  per  valutare  la  qualità  di  trasmissione  audio/video  su  IP  sono:  

  Il  numero  di  pacche\  persi    

  Il  ritardo  tra  il  momento  in  cui  la  trasmissione  parte  ed  il  momento  in  cui  il  media  viene  visto  o  ascoltato  

  La  variazione  che  questo  ritardo  può  assumere  a  causa  dell’impredicibilità  del  comportamento  della  rete  (  delay  jiUer)  

Page 39: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Percezione    

•  La  percezione  che  l’utente  ha  della  qualità  dello  streaming  è  legata  ai  seguen1    faUori  

  Pacche[  persi:  può  essere  perce\bile,  come  discon1nuità  il  mancato    arrivo  del  paccheUo  

  Ritardo:  ritardo  iniziale  di  buffering  o  aUesa  per  rebuffering  

Page 40: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Protocolli    

Le  applicazioni  di  streaming  in  ambito  web  sono  1picamente  basate  sui  seguen1  protocolli  

Protocolli  per  le  trasmissioni  mul&mediali  real  &me  che  usano  anche  TCP,  ma  preferibilmente  UDP.  

  RTP    (Real  Time  Protocol)    RTCP    (Real  Time  Control  Protocol)  

Protocollo  per  il  controllo  dell’a[vità  di  streaming  

  RTSP    (Real  Time  Streaming  Protocol)    Compressione  e  decompressione      Rimozione  del  jiUer  delay    Correzione  degli  errori  

Page 41: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

RTSP    

CaraUeris1che  dell’  RTSP  

•  Supporto  per  il  controllo  dell’erogazione  in  streaming  del  flusso  da  parte    dell’applicazione    (  client  –  server)  

•  Supporto  per  il  controllo  del  flusso  da  parte  dell’utente  (Rewind,  stop,  play  ..)  

•  Protocollo  di  controllo  “fuori  banda”.  Vengono  usate  due  connessioni,  una  per  lo  stream  mul1mediale  e  una  per  il  controllo.  

Page 42: Linguaggi’ed’Applicazioni’ mul1mediali’ Multimedia_IT.pdf · 2014-08-04 · Linguaggi’ed’Applicazioni’ mul1mediali’ Mul1mediain’ rete’ 04.01 Introduc1on’to’transport

Meta  File    

• La  richiesta  di  a\vazione  di  una  connessione  di  1po  RTSP  avviene  tramite  il    web  ,  con  una  richiesta  di  1po  HTTP  che  parte  da  un  browser  ed  arriva  ad  un  server,  e  

quindi  si  avvia  lo  streaming  tra  client-­‐server.  

• Il  browser  richiede  una  risorsa  che  in  realtà  è  un  meta  file,  ossia  un  file  che    descrive  il  media  di  cui  verrà  faUo  lo  streaming.  

• Il  server  web  risponde  inviandolo.  

• Il  browser  lancia  l’appropriato  player  e  gli  passa  il  meta  file  

• Il  player  seguendo  le  indicazioni  del  meta  file  avvia  lo  streaming