1. Arquitetura
Baseado na infra-estrutura P2P.
Funcionalidade semelhante ao MSN e
ao Yahoo IM.
Técnicas empregadas são distintas.
Linguagens:
Em Windows: a interface do usuário foi
desenvolvida em pascal usando Delphi.
Em Linux : foi desenvolvido usando C++ com Qt.
Em Mac OS X: foi escrita usando Objective-
C com Cocoa.
2. Arquitetura
Ordinary host:
Toda aplicação Skype que possa ser utilizada para
emitir chamadas de voz e envio de mensagens.
Super nodes:
IP publico, CPU, memória e banda
Sevem como ponto de conexão entre um nó
comum e a rede Skype.
Servidor de Login:
Único servidor centralizado
Armazena nomes e senhas
Demais informações são armazenadas e
propagadas de modo descentralizado.
3. Componentes Principais
Porta
Um cliente do Skype:
Escuta uma porta em particular para entrada de
chamadas.
A porta:
abre uma escuta TCP e UDP em uma porta
configurada na conexão da caixa de diálogo.
escolhe um número de porta aleatoriamente
durante a instalação.
4. Componentes Principais
Host Cache
Mantém uma tabela denominada host cache.
Host Cache:
contém os pares endereço de IP e número da porta dos super nós, sendo
construída e atualizada periodicamente pelo cliente.
deve constar pelo menos uma entrada válida.
Todas as informações são armazenadas em um arquivo denominado
shared.xml.
Em Windows XP: C:Documents and Settings<XP
User>Application DataSkype
Em Linux: $(HOMEDIR)/.Skype
5. Componentes Principais
Codecs
Utiliza codecs de banda larga:
SILK – conexão Skype-Skype.
Desenvolvido pelo Skype Limited.
Características:
É um codec wideband.
Amostragem: 8, 12, 16 ou 24kHz.
Bitrate: 6 a 40 kbit/s.
Atraso no algoritmo de 25ms por frame, com look-ahead de 5ms.
Mean Opinion Scores (MOS): 3.22 em testes com perdas de pacotes
(o áudio sem compressão recebeu MOS=3.3).
Características para Skype.
6. Componentes Principais
Codecs
G.729 – conexão para serviços Skype-Out.
Codec padrão ITU.
Muito utilizado em aplicações VoIP.
Principais características:
Quadros de 10ms, com amostragem fixa em 8kHz.
Bitrate fixo: 8 kbit/s.
Tamanho de quadro fixo: 10 bytes.
Atraso no algoritmo de 15ms por frame, com look-
ahead de 5ms.
Mean Opinion Scores (MOS): 3.51 em testes com
perdas de pacotes (G.729a) e 4.04 em condições
ideais (G.729a).
7. Componentes Principais
Codecs
Outros codecs utilizados pelo Skype - desenvolvidos pela Global IP
Sound.
iLBC:
Principais características:
Quadros de 20 ou 30ms, com amostragem fixa em 8kHz.
Bitrate fixo: 15.2 kbit/s para quadros de 20ms e 13.33 kbit/s para quadros de 30ms.
Tamanho de quadro fixo: 303 bits(armazenado em 38 bytes) para quadros de 20ms e
399 bits (armazenado em 50 bytes) para quadros de 30 ms.
Mean Opinion Scores (MOS): 4.14 em condições ideais.
iSAC:
Principais características:
Quadros adaptativos de 30 a 60ms, com amostragem fixa em 16kHz..
Bitrate variável: 10 a 32 kbit/s.
iPCM.
8. Componentes Principais
Codecs, Criptografia, NAT, Firewall
TrueMotionVP – para chamadas de vídeo.
Desenvolvido pela On2 Technologies.
Testes subjetivos.
Capacidade de codificar e decodificar em tempo real.
Características.
Mantém uma lista de contatos:
armazenada na máquina local do usuário (cliente) sem criptografia.
config.xml
Em Windows: C:Documents and Settings<XP User>Application DataSkype
Em Linux: $(HOMEDIR)/.Skype/<skype user id>
Criptografa mensagens.
AES - utilizada pelo governo nos Estados Unidos para proteger informações
sensíveis.
Skype - 256-bit com um total de 1.1 x 10^77 possíveis Principais.
RSA de 1024 bits → negociar as Principais simétricas AES.
10. Funções
Login
Inicialização – Startup:
logo após a instalação:
HTTP do tipo GET .
palavra chave: ‘installed’.
Inicializações subseqüentes:
request HTTP.
palavra chave: ‘getlastversion’.
11. Funções
Login
Login:
Neste processo, o cliente:
Autentica o nome de usuário e senha no servidor de login.
Anuncia presença para outros nós e amigos.
Determina o tipo de NAT e/ou firewall envolvidos.
Identifica os nós online.
Verifica a disponibilidade de uma versão mais recente do software em uso.
Na primeira etapa do processo:
cliente conectando-se a um super nó.
Na ausencia de pelo menos uma entrada valida, falha no login.
Teste.
12. Funções
Login
Primeiro login:
Lista HC:
Bootstrap Super Nodes:
O cliente obtém o endereço IP do servidor de login.
estabelece uma conexão TCP com o servidor.
Após autenticação encerra a conexão.
a conexão estabelecida com o Super Nó persiste.
13. Funções
Login, Busca de Usuários
Login´s Subsequentes:
Similar ao primeiro.
O cliente constrói e passa a atualizar periodicamente a tabela HC.
Busca de Usuários:
Utiliza a tecnologia GI (Global Index):
busca realizada de forma distribuída.
garante a capacidade do sistema encontrar qualquer usuário existente logado nas
últimas 72 horas na rede Skype.
Protocolo fechado e mensagens criptografadas.
14. Busca de
Usuários, Estabelecimento de
O cliente:
Chamadas
busca por um usuário em particular enviando um pacote TCP para o super nó o
qual está conectado.
Aparentemente o super nó fornece para o cliente os pares (IP, porta) de quatro nós
para consulta.
envia pacotes TCP para os nós fornecido.
Caso a busca não seja bem sucedida o cliente informa o super nó que o envia mais
um conjunto de pares (IP, porta).
O processo continua até que o cliente encontre o usuário ou determine que o
mesmo não existe.
Estabelecimento de Chamadas:
realizada através de envios de pacotes TCP do emissor para o receptor, de forma
direta ou indireta.
15. Funções
Estabelecimento de Chamadas, Teardown
Para usuários presentes da lista de amigos do cliente emissor
da chamada.
Procedimentos:
Nó emissor e receptor livres de NAT e firewall.
Nó emissor com NAT e receptor com endereço IP publico.
Ambos, emissor e receptor, com NAT e firewall para UDP.
Teardown:
Sinalização realizada com pacotes TCP.
16. Qualidade de Chamada
Chamada de voz.
Usuários preferem áudio transmitido com bitrates maiores.
3 fatores que governam a taxa de transmissão de uma
chamada de voz:
Bitrate.
Tempo do quadro (frame rate).
Redundância.
17. Qualidade de Chamada
4 fatores que analisa controle de qualidade da
chamada:
Taxa de perdas na rede.
Disponibilidade de banda.
Efeito do Codec.
Padrão da perda dos pacotes.
20. Qualidade de Chamada
4º Fator
Padrão da perda dos pacotes.
A() tenta enviar todos os dados de uma vez.
congestionamento → esperar.
B() espalha o envio de dados por um período maior de tempo
foge de problemas de congestionamento.
A() precisa de mais largura de banda média do que B
ambos enviam a mesma quantidade de dados.
21. Qualidade de Chamada
4º Fator
Network Burstiness.
Network Loss Burstiness.
Burst Ratio:
Equação:
α é a probabilidade de perder o pacote n, se o pacote n-1
chegou
β é a probabilidade de perder o pacote n, se o pacote n-1 foi
perdido
22. Qualidade de Chamada
4º Fator
Razão de redundância analisada para três valores diferentes de
Burst Ratio.
Skype não leva em conta o valor de Burst Ratio para o controle de
redundância.
Conclusão: a política do Skype não é ótima, apesar de obter bons
resultados.
23. Qualidade de Chamada
4º Fator
Para melhorar a qualidade, o Skype tende a utilizar mais banda, devido ao uso da
redundância de pacote.
25. Política de Segurança do Skype
Usernames sempre únicos.
Apresentação de usernames.
Provas de identidades.
Criptografia de mensagens.
26. Política de Segurança do Skype
Privacidade.
Criptografa mensagens transmitidas pela internet.
AES block cipher.
RSA public-key cryptosystem.
Função hash SHA-1.
RC4.
Autenticidade.
Username e password.
E-mail de identificação.
Timeout – quantidade limitada de tentativa de login.
27. Política de Segurança do Skype
Dispobilinidade.
Integridade.
Ligações de boa qualidade, exceto ligações em redes wireless.