voip rtp – real time transport protocol. rtp -real time transport protocol zo protocolo de...

29
VoIP RTP – Real Time Transport Protocol

Upload: internet

Post on 17-Apr-2015

106 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

VoIP

RTP – Real Time Transport Protocol

Page 2: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

RTP -Real Time Transport Protocol

O Protocolo de transporte mais utilizado para aplicações é o TCP. , porém, para aplicações em tempo real, o TCP não possui as características desejadas.

Algumas funções do TCP o desqualificam para o seu uso como protocolo de transporte das aplicações de tempo real, como:

Page 3: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

RTP -Real Time Transport Protocol 1 – O TCP é um protocolo ponto-a-ponto e

estabelece conexão entre dois pontos finais. No entanto não é concebido para transmissão multicast.

2 – O TCP inclui mecanismos de retransmissão de longos segmentos, que cheguem fora de ordem. Este tipo de mecanismo não é possível de ser usado em aplicações de tempo real.

3 – O TCP não contém mecanismos convenientes de associação de informação de temporização dos segmentos, que é outro requerimento de aplicações em tempo real.

Page 4: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

RTP -Real Time Transport Protocol

Outro protocolo de transporte largamente usado é o UDP, ele não possui as duas primeiras características listadas, mas da mesma forma que o TCP, não provê informações de temporização. Sozinho, o UDP também não provê as ferramentas para as aplicações de tempo real.

Page 5: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

RTP -Real Time Transport Protocol

Assim o IETF definiu um protocolo na RFC 1889 chamado RTP (Real Time Protocol), para o transporte da aplicação e um protocolo chamado RTPC (Real Time Control Protocol) para o controle do RTP.

O Transporte do Tráfego em Tempo Real difere do tráfego em alta velocidade, como na figura a seguir

Page 6: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

RTP -Real Time Transport Protocol

A Figura ilustra um esquema típico em tempo real. Nela, um servidor gera áudio à ser transmitido a 64

kbps. O sinal de áudio digitalizado é transmitido em pacotes de 160

bytes de dados, assim cada pacote é transmitido à cada 20ms. Estes

pacotes são entregues a uma Internet encaminhados à um PC multimídia, que recompõe este

áudio no instante que chega. No entanto, devido ao delay variável imposto pela Internet, os pacotes

não chegam à cada 20ms no destino. Para compensar isto, os

pacotes que chegam são bufferizados, atrasados um pouco, e então liberados à taxa constante ao software que recompõe o áudio.

Page 7: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

Requerimentos para Comunicação em Tempo Real

Baixo Jitter Baixa Latência Habilidade para integrar facilmente serviços

em tempo real e não em tempo real. Adaptabilidade para dinamicamente mudar

as condições de tráfego da rede

Page 8: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

Boa performance para redes grandes com um número grande de conexões

Requerimentos modestos de bufferização dentro da rede

Alta capacidade efetiva de utilização Baixo overhead em bits de header por

pacote Pequeno processamento do overhead por

pacote dentro da rede e nos sistemas finais.

Requerimentos para Comunicação em Tempo Real

Page 9: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

RTP - Arquitetura

Page 10: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

Header Fixo RTP

RTP header format:

V

00

01

02

03

04

05

06

07

08

09

10

11

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

12

P X CC M Payload Type Sequence Number

Timestamp

Synchronization Source Identifier

V = VersionP = PaddingX = ExtensionCC = CSRC CountM = Marker

Contributing Source Identifiers (0 … 15 entries)

Page 11: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

RTP – Real Time Protocol

Version (2 bits) : A versão atual é 2.

Padding (1 bit): Indica quando octetos de enchimento

aparecerem no fim do payload. O enchimento é usado se a aplicação requer que o payload seja um inteiro múltiplo de algum tamanho, tal como um múltiplo de 32 bits (4 bytes)

Page 12: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

RTP – Real Time Protocol

Extension (1bit): Se setado, o header fixado é seguido

por exatamente um header estendido, que é usado para extensões experimentais do RTP

CSRC Count (4 bits): O número de identificadores de CSRC

que seguem o header fixo

Page 13: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

RTP – Real Time Protocol

Marker (1 bit): A interpretação do Marker bit depende do tipo

de payload; ele é usado para identificar um limite no fluxo de dados. Para sinais de vídeo, é setado para marcar o fim de um quadro de imagem. Para sinais de áudio é setado para marcar o início de um surto de voz.

Payload Type (7 bits): Identifica o formato de um payload RTP, que

seguirá o header.

Page 14: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

RTP – Real Time Protocol

Sequence Number (16 bits): Cada fonte começa com um número de seqüência

randômico, que é incrementado para cada pacote RTP transmitido. Isso permite a detecção de perda de pacotes e geração de estatísticas de timestamp. Um conjunto de pacotes podem ter um mesmo timestamp se são gerados logicamente no mesmo tempo, por exemplo vários pacotes levando o mesmo quadro de vídeo

Timestamp (32 bits): Corresponde ao instante de geração do primeiro octeto

dos dados do payload, a unidade de tempo deste campo depende do tipo de payload. Os valores devem ser gerados por um clock interno.

Page 15: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

RTP – Real Time Protocol

Synchronization Clock Identifier: Um valor gerado randomicamente que

identifica de maneira única a fonte dentro de uma sessão.

Page 16: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

RTP – Infos após Header fixo

Contributing Source Identifier: Identifica uma fonte de contribuição

para o payload. Usada na função mixer.

Page 17: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

RTCP – Real Time Control Protocol

Definição: O protocolo RTP é usado apenas para a

transmissão de dados do usuário, tipicamente em conexões multicast entre todos os participantes em uma sessão. Um protocolo separado de controle (RTCP) também opera de modo multicast para prover a realimentação para as fontes do RTP assim como para todos os participantes de uma sessão.

O RTCP usa o mesmo serviço de transporte do UDP porém em porta diferente. Cada participante manda periodicamente um pacote RTCP para todos os outros participantes da sessão.

A RFC 1889 mostra quatro funções desenvolvidas pelo RTCP:

Page 18: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

RTPC – Tipos de pacotes definidos:

Os pacotes podem ser:

Sender Report (SR) Receiver Report (RR) Source Description (SDES) Goodbye (BYE) Application Specific

Page 19: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

RTPC – Informações nos pacotes

Informações genéricas: Version (2 bits): Versão atual 2 Padding (1 bit): Se setado significa que

este pacote contém bytes de enchimento e é o último desta transmissão. Neste caso, o último byte do enchimento contém o número de bytes de enchimento.

Count (5 bits): O número de blocos de relatório de recepção contido em um pacote SR ou RR, ou o número de fontes contidas em um pacote SDES ou BYE.

Page 20: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

RTPC – Informações nos pacotes

Informações genéricas, cont.: Packet Type (8bits): Identifica o tipo

de pacote RTCP. Lenght (16 bits): Contado em

agrupamentos de 32 bits.Em adição, os pacotes RR e SR

contém os seguintes campos: Synchronization Source Identifier:

Identifica a fonte do pacote RTCP.

Page 21: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

Header de um Pacote RTPC

01

00

02

03

04

05

06

07

09

08

10

11

12

13

14

15

17

16

18

19

20

21

22

23

25

24

26

27

28

29

30

31

V P RC PT=SR=200 length

SSRC of sender

NTP timestamp, most signficant word

NTP timestamp, least signficant word

RTP timestamp

sender's packet count

sender's octet count

hea

der

sen

der

info

V = version

P = padding

RC = reports count

PT = packet type

SR = sender report

SSRC = synchronisation source

NTP = network time protocol

Sender Report:

Page 22: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

Sender Report (SR):

Os receptores RTCP provêem uma realimentação da qualidade usando um pacote Sender Report (SR) ou Receiver Report (RR), dependendo se o receptor é também um transmissor durante esta sessão. O campo Sender Information Block inclui os seguintes campos:

Page 23: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

O campo Sender Information Block

NTP Timestamp (64 bits): Este campo é usado para, em combinação com os timestamps retornados dos relatórios de recepção para medir o tempo de percurso entre esses receptores.

RTP Timestamp (32 bits): Este campo é usado para criar timestamps em pacotes de dados RTP.

Senders Packet Count (32 bits): Número total de pacotes RTP transmitidos pelo transmissor nesta sessão.

Senders Object Count (32 bits): Número total de octetos de payload transmitidos pelo transmissor nesta sessão.

Page 24: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

O campo Sender Information Block, cont.

Seguindo o bloco de informação do transmissor existem zero ou mais blocos reception report. Um bloco é incluído para cada fonte em que este participante tenha recebido dados durante esta sessão. Cada bloco desses possui os seguintes campos: SSRC_n (32 bits): Identifica a fonte referida por

este bloco de relatório. Fraction Lost (8 bits): A fração de pacotes de

dados RTP desta fonte perdidos desde que o pacote SR ou RR imediatamente anterior foi transmitido.

Cumulative Number of Packets Lost (24 bits): Número total de pacotes RTP desta fonte perdidos desde o início desta sessão.

Page 25: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

O campo Sender Information Block, cont.

Extended Highest Sequence Number Received (32 bits): Os 16 bits menos significativos contém o maior número de seqüência dos pacotes RTP recebidos desta fonte. Os 16 bits menos significativos mostra o número de vezes que o número de seqüência foi resetado.

Interarrival Jitter (32 bits): Contém uma estimativa do jitter experimentado pelos pacotes RTP nesta sessão.

Last SR Timestamp (32 bits): Contém o último Timestamp do Bloco SR recebido da fonte.

Delay Since Last SR (32 bits): O delay, expresso em frações de 2-16 segundos, entre a recepção do último SR da fonte n e a transmissão deste relatório.

Page 26: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

Receiver Report

O formato dos pacotes RR é o mesmo que o SR, exceto que o campo Packet Type possui outro valor e não há informações de transmissor.

Page 27: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

Receiver Report

01

00

02

03

04

05

06

07

09

08

10

11

12

13

14

15

17

16

18

19

20

21

22

23

25

24

26

27

28

29

30

31

V P RC PT=RR=201 length

SSRC of sender

SSRC-1 (SSRC of first source)

cumulative number of packets lostfraction lost

extended highest sequence number received

interarrival jitter

last SR

delay since last SR

hea

der

rep

ort

blo

ck 1

Page 28: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

Source Description:

O pacote Source Description (SD) é usado por uma fonte para prover mais informações sobre si. O pacote consiste de um header de 32 bits seguido de zero ou mais comandos, cada um dos quais contém informações de descrição da fonte.

Page 29: VoIP RTP – Real Time Transport Protocol. RTP -Real Time Transport Protocol zO Protocolo de transporte mais utilizado para aplicações é o TCP., porém,

Goodbye:

O pacote BYE indica que um ou mais fontes não estão mais ativas. Isto é usado pelos receptores para deixar de contar o silêncio dessas fontes como falha de comunicação.