56
02 - Introduc~ao a Elementos de um Protocolo de Comunicac~ao Marcelo K. Albertini 7 de abril de 2015

02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

  • Upload
    vantram

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

02 - Introducao a Elementos de um Protocolo deComunicacao

Marcelo K. Albertini

7 de abril de 2015

Page 2: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Conteudo

Introducao a Controle de Erros

2/56

Page 3: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Modelo fısico de comunicacao

Comunicacao e qualquer transmissao, emissao ou recepcao desımbolos, sinais, mensagens, imagens, audio e outras formas dedados por meios condutores tais como fios, radio, sistemas oticosou outros meios eletromagneticos.

RFC 2549IP over Avian Carriers with Quality of Service –http://tools.ietf.org/html/rfc2549

3/56

Page 4: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

RFC 2549

I RFC 1149 - Transmissao de datagramas de IP

I Metropolitan Area Networks

I Servico de alta latencia, baixa largura de banda

I Conexao ponto-a-ponto de longa distancia

I Meio fısico 3D, com sistema intrinsico para evitar colisoes

I Pigeonware 0.15

https://web.archive.org/web/20130531082705/http:

//www.blug.linux.no/rfc1149/pigeonware-0.15.tar.gz

4/56

Page 5: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Script started on Sat Apr 28 11:24:09 2001

vegard@gyversalen:~$ /sbin/ifconfig tun0

tun0 Link encap:Point-to-Point Protocol

inet addr:10.0.3.2 P-t-P:10.0.3.1 Mask:255.255.255.255

UP POINTOPOINT RUNNING NOARP MULTICAST MTU:150 Metric:1

RX packets:1 errors:0 dropped:0 overruns:0 frame:0

TX packets:2 errors:0 dropped:0 overruns:0 carrier:0

collisions:0

RX bytes:88 (88.0 b) TX bytes:168 (168.0 b)

vegard@gyversalen:~$ ping -c 9 -i 900 10.0.3.1

PING 10.0.3.1 (10.0.3.1): 56 data bytes

64 bytes from 10.0.3.1: icmp_seq=0 ttl=255 time=6165731.1 ms

64 bytes from 10.0.3.1: icmp_seq=4 ttl=255 time=3211900.8 ms

64 bytes from 10.0.3.1: icmp_seq=2 ttl=255 time=5124922.8 ms

64 bytes from 10.0.3.1: icmp_seq=1 ttl=255 time=6388671.9 ms

--- 10.0.3.1 ping statistics ---

9 packets transmitted, 4 packets received, 55% packet loss

round-trip min/avg/max = 3211900.8/5222806.6/6388671.9 ms

vegard@gyversalen:~$ exit

Script done on Sat Apr 28 14:14:28 2001

5/56

Page 6: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Pacote RFC 1149

6/56

Page 7: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Comunicacao

FonteTransmissor Sistema de

transmissao

ReceptorDestino

I FonteI Gera os dados

I TransmissorI Converte dados em sinais transmissıveis

I Sistemas de transmissaoI Transporte de sinais

I ReceptorI Converte sinais em dados

I DestinoI Recebe dados enviados

7/56

Page 8: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Tarefas chaves da comunicacao

I Gerenciamento do sistema de transmissao

I Controle de fluxo de informacoes

I Geracao de sinais

I Sincronizacao

I Deteccao e correcao de erros

I Enderecamento e roteamento

8/56

Page 9: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Exemplo de comunicacao simples

I Atores: vizinhas Maria e Ana

I Maria fala espanhol.

I Ana fala ingles.

I As duas sabem LIBRAS.

I Tambem podem usar dicionario bilingue.

I Ela conversam frente a frente.

Maria

Camada 1

Ana

Sımbolos

9/56

Page 10: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Exemplo de comunicacao menos simples

I Ana se muda de cidade.I Antes, ela combina com Maria o uso de duas maquinas.I Uma maquina tradutora de cartas entre ingles e um codigo

especial.I A outra maquina faz o mesmo para espanhol.

Maria Ana

Camada 1 Espanhol Ingles

Maquinatradutora

Camada 2 Mensagem em codigo

Camada 3correios

Maquinatradutora

10/56

Page 11: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Projeto de Protocolos de Comunicacao

I Protocolos de comunicao sao conjuntos de regras paragovernar o formato e significado de quadros, pacotes oumensagens trocadas por entidades.

I Comunicacao entre entidadesI forma de comunicac~ao = procotolo

I CamadasI 1 camada = 1 protocolo mais simples

11/56

Page 12: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

O que e um protocolo

I Abstracao de baixo nıvel: uma maquina de estados

I O estado do protocolo define quais acoes sao desempenhadase como responder a eventos

I Uma maquina de estados comunicante consiste de:I conjunto de estadosI transicoes entre estadosI filas de mensagens

EntradaEstados e Transicoes

Filas de mensagensSaıda

12/56

Page 13: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Projeto de protocolos

I Levantamento de requisitos

I Especificacao e validacao

I Implementacao

I Teste e avaliacao

13/56

Page 14: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Elementos de um protocolo

I SintaxeI Formato preciso para mensagens validasI “A ordem em que bits sao apresentados”I exemplo: 8 primeiros bits sao endereco da origem e depois 8

bits de endereco do destino

I GramaticaI regras de procedimento para trocas de dadosI tempo: controle de fluxo de informacao e manipulacao de erros

I VocabularioI A semantica (significado) das mensagens validas

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

End Src End Dst Data Par

14/56

Page 15: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Elementos de um protocolo: semantica

I SemanticaI vocabulario: significado de cada mensagem validaI como cada secao deve ser interpretada

I exemplo: um endereco identifica a rota a seguir ou o destinofinal?

15/56

Page 16: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Elementos de um protocolo

I Na gramatica: tempoI quando dados e o quao rapido dados devem ser enviados

I exemplo: envio dos dados nao deve ser mais rapido do quedestino consegue receber

16/56

Page 17: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Fluxograma de um protocolo simplificado

Host A - Transmissor

Dados prontos?

Obter dados.

sim

nao

Avisar host B receptor.

Receptor pronto?nao

Enviar dados.

sim

Dados consumidos?nao

sim

Host B - Receptor

Recebe requisicao de envio

nao

Preparar recepcao.

sim

Avisar transmissor.

Dados recebidos? nao

Dados consumidos.

sim

Confirmar recepcao.

Requisicao para Envio (RTS)

Pronto para Recepcao (RTR)

Dados

ACK

17/56

Page 18: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Fluxograma de um protocolo simplificado

I Sinais de comunicacaoI RTS – Ready to SendI RTR – Ready to ReceiveI ACK – Acknowledge

I Um protocolo pode ser especificado na forma de umaMaquina de Estados

18/56

Page 19: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Maquina de Estados

I Um protocolo interage com o ambienteI ativado por eventosI responde realizando acoesI comportamento depende dos eventos passados: o estado

I Maquinas de Estados modelam o fluxo do protocolo

19/56

Page 20: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Maquina de Estados

I Definida por uma tupla (Q, q0, I, O, T, G)

I Q e conjunto de estados

I q0 estado inicial

I I sao os sımbolos de entrada

I O sao os sımbolos de saıda

I T e uma funcao de transicao T : Q × I → Q

I G e uma funcao de saıda, G : Q × I → O

I Funcoes T e G sao chamadas de acordo com a combinacaoQ × I

20/56

Page 21: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

I O = OciosoI P = Pronto para envioI E = Enviar dadosI W = Esperar por confirmacaoI R = RecepcaoI C = Consumo dos dados

I RTS – Ready to SendI RTR – Ready to ReceiveI ACK – Acknowledge

O

P

E

W

Dados prontos: Saıda Evento 1

Dados enviados: Saıda Evento 2

Em espera

RTS

RTR

Dados enviados

ACK

O

R

C

RTS

RTR

ACK

Pronto para Receber: Saıda Evento 3

21/56

Page 22: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Tabela de transicao entre estados do Transmissor

P/RTS representa a transicao para o estado P e a producao dasaıda RTS.

EntradasEstados Evento 1 RTR Evento 2 ACK

O P/RTS O/- O/- O/-P P/- E/- P/- P/-E E/- E/- W/enviar dados E/-W W/- W/- W/- O/-

I O = Ocioso

I P = Pronto para envio

I E = Enviar dados

I W = Esperar por confirmacao

22/56

Page 23: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Protocolo com Maquinas de Estados Comunicantes

I Automatos conectados por mensagens em filasI Transicoes sao ativadas por entradas ou saıda (acoes)

estados etransicoes

fila demensagens

estados etransicoes

fila demensagensentrada

saıda

23/56

Page 24: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Exemplo de implementacao: entrada

1 c l a s s I n p u t { // r e p r e s e n t a c a o das e n t r a d a s2 p r i v a t e S t r i n g i n p u t ;3 p r i v a t e i n t a t u a l ;45 p u b l i c I n p u t ( S t r i n g i n p u t ) {6 t h i s . i n p u t = i n p u t ;7 }89 c h a r r e a d ( ) {

10 i f ( a t u a l >= i n p u t . l e n g t h ( ) )11 r e t u r n 0 ;12 e l s e13 r e t u r n i n p u t . charAt ( a t u a l++) ;14 }15 b o o l e a n hasNext ( ) {16 r e t u r n ( a t u a l >=i n p u t . l e n g t h ( ) ) ;17 }18 v o i d add ( c h a r c ) {19 i n p u t = i n p u t +c ;20 }21 }

24/56

Page 25: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Exemplo de implementacao: estados

1 i n t e r f a c e Estado {2 p u b l i c Estado n e x t ( I n p u t i n ) ;3 }45 enum Maquina implements Estado {6 Ocioso {7 p u b l i c Estado n e x t ( I n p u t word ) { . . . }8 } ,9 ProntoParaEnv io {

10 p u b l i c Estado n e x t ( I n p u t word ) { . . . }11 } ,12 Env iarDados {13 p u b l i c Estado n e x t ( I n p u t word ) { . . . }14 } ,15 E s p e r a r P o r C o n f i r m a c a o {16 p u b l i c Estado n e x t ( I n p u t word ) { . . . }17 } ;18 p u b l i c a b s t r a c t Estado n e x t ( I n p u t word ) ;19 }

25/56

Page 26: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Exemplo de implementacao: estado Ocioso

1 // . . .2 @Override3 Ocioso {4 p u b l i c Estado n e x t ( I n p u t word ) {5 s w i t c h ( word . r e a d ( ) ) {6 c a s e ’ 1 ’ : { // r e c e b e u e v e n t o 17 env ia r RTS ( ) ;8 r e t u r n ProntoParaEnv io ;9 }

1011 d e f a u l t : r e t u r n Ocioso ;12 }13 }14 } , // segue e s t a d o ProntoParaEnv io

26/56

Page 27: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Exemplo de implementacao: estado ProntoParaEnvio

1 // . . .2 @Override3 ProntoParaEnv io {4 p u b l i c Estado n e x t ( I n p u t word ) {5 s w i t c h ( word . r e a d ( ) ) {6 c a s e ’R ’ : { // r e c e b e u : RTR7 r e t u r n Env iarDados ;8 }9 d e f a u l t : r e t u r n ProntoParaEnv io ;

10 }11 }12 } , // . . .

27/56

Page 28: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Exemplo de implementacao: estado EnviarDados

1 // . . .2 @Override3 Env iarDados {4 p u b l i c Estado n e x t ( I n p u t word ) {5 s w i t c h ( word . r e a d ( ) ) {6 c a s e ’ 2 ’ : { // r e c e b e u e v e n t o 27 e n v i a r d a d o s ( ) ;8 r e t u r n E s p e r a r P o r C o n f i r m a c a o ;9 }

10 d e f a u l t : r e t u r n Env iarDados ;11 }12 }13 } , // . . .

28/56

Page 29: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Exemplo de implementacao: estadoEsperarPorConfirmacao

1 // . . .2 @Override3 E s p e r a r P o r C o n f i r m a c a o {4 p u b l i c Estado n e x t ( I n p u t word ) {5 s w i t c h ( word . r e a d ( ) ) {6 c a s e ’A ’ : { // r e c e b e u ACK7 r e t u r n Ocioso ;8 }9 d e f a u l t : r e t u r n E s p e r a r P o r C o n f i r m a c a o ;

10 }11 }12 } ;

29/56

Page 30: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Codigo de teste

1 p u b l i c c l a s s MEF {23 p u b l i c s t a t i c v o i d main ( S t r i n g a r g s [ ] ) {45 Estado s = n u l l ;6 I n p u t i n = new I n p u t ( ”1R2AAA1R2A1” ) ;78 f o r ( s = Maquina . Oc ioso ;9 s != n u l l && i n . hasNext ( ) ;

10 s = s . n e x t ( i n ) ) {}1112 }13 }

30/56

Page 31: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Exemplo: diagrama TCP

CLOSED

LISTEN

SYN_RCVD SYN_SENT

ESTABLISHED

FIN_WAIT_1

CLOSE_WAIT

FIN_WAIT_2

CLOSING

TIME_WAIT

LAST_ACK

data transfer state

starting point

2MSL timeout

passive open

active open

simultaneous close

appl: passive open

send: <nothing> appl: active open

send: SYN

appl: send data

send: SYNrecv

: SYN;

send: S

YN, ACK

recv: R

ST

timeoutsend: RST

recv: SYN

send: SYN, ACKsimultaneous open

recv

: SYN

, ACK

send: A

CK

appl: closesend: FIN

recv: ACKsend: <nothing>

recv: FIN

send: ACK

recv: ACKsend: <nothing>

recv: FIN, A

CK

send: ACK

recv: ACK

send: <nothing>

appl:

close

send: F

IN

recv: FIN

send: ACK

recv: FIN

send: ACK

appl: closesend: FIN

appl: close

or timeout

recv: ACK

send: <nothing>

active close

passive close

normal transitions for clientnormal transitions for server

appl: state transitions taken when application issues operationrecv: state transitions taken when segment receivedsend: what is sent for this transition

[Wright, Stevens: “TCP/IP Illustrated, Volume 2: The Implementation”, 1995]

31/56

Page 32: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Introducao a Controle de Erros

I Controle de Erros e a diferenca entre sistemas confiaveis edisfuncionais

I Teorema da Codificacao de Canais – confiabilidadeI Flexibilidade – criptografia e outras funcionalidadesI CompressaoI Avaliacao de desempenho

FonteCodificadorda Fonte

Codificadordo Canal

Modulador

Canal

DemoduladorDecodificadordo Canal

Decodificadorda Fonte

Consumidor

I Fonte e a origem de dados digitaisI Codificador da Fonte remove redundancia (compressao)I Codificador do Canal introduz redundancia para deteccao e

correcao de errosI Canal e o meio de transmissao

32/56

Page 33: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Conceitos

I Enfoque no codificador e decodificador do canalI Motivacao: Teorema de Codificacao de Canais com Ruıdos de

Shannon (1948)I Ideia: “todo canal tem capacidade C bits/s tal que sempre que

a taxa de transmissao R e menor que C a probabilidade deerros pode ser reduzida de maneira arbitraria”

I Shannon mudou a area: antes acreditava-se que para atingirerros baixos era necessario transmitir em taxa muito baixa oucom muita potencia

I Mas nao explica como fazer a codificacao, o que motivou abusca por codigos.

I Codigo de Hamming (1950)

33/56

Page 34: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Controle de erros simples

I Transmitimos m1 = [1001001].

I Destino recebe com erro m2 = [1101001].

I Receptor tem que detectar erros.

I Podemos usar um bit de paridade adicional: m1p =[10010011]

I Destino recebe com erro m2p = [11010011]

I Receptor percebe que o numero de 1s nao e compatıvel com obit de paridade

34/56

Page 35: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Blocos de codigos

I Dados sao agrupados em segmentos de k bits

I Cada bloco de k bits e codificado para produzir um bloco de nbits, n > k

I O codificador adiciona redundancia nos dados

I A taxa de um codigo e r = kn

1011 codificador 1011100m c

35/56

Page 36: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Adicao e multiplicacao binaria

I 0+0 = 0, 0+1 = 1, 1+0 =1, 1+1 = 0

I 0 * 0 = 0, 0 * 1 = 0, 1 * 0 = 0, 1 * 1 = 1

36/56

Page 37: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Codigos de blocos lineares

I Seja C um codigo feito dos vetores {~c1,~c2, . . . ,~ck}I C e um codigo linear se para qualquer ~ci e ~cj em C, ~ci +~cj

tambem esta em CI Exemplo C = {~c1 = 0000,~c2 = 0110,~c3 = 1001,~c4 = 1111}

I ~c1 +~cx = ~cx para x = 1, 2, 3 ou 4I ~cx +~cx = ~c1I ~c2 +~c3 = ~c4, ~c3 +~c4 = ~c2, ~c2 +~c4 = ~c3I Portanto, C e um codigo linear

I Exemplo C2 = {~c1 = 0001,~c2 = 0111,~c3 = 1000,~c4 = 1110}I ~cx +~cx = 0000 que nao esta em C2

I Portanto, C2 nao e linear

37/56

Page 38: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Peso de Hamming

I Para a palavra-codigo ~cx do codigo C , o seu peso deHamming e o numero de sımbolos em ~cx que nao sao 0

I C = {(0000), (0110), (1001), (1111)}I PH{0000} = 0I PH{0110} = 2I PH{1001} = 2I PH{1111} = 4

38/56

Page 39: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Distancia de Hamming

I Distancia de Hamming entre as palavras-codigos ~ci e ~cj de Ce o numero de posicoes em que diferem.

0000 0110 1001 11110000 0 2 2 40110 2 0 4 21001 2 4 0 21111 4 2 2 0

I ~ci +~cj = 0 nas posicoes em que sao iguais

I ~ci +~cj = 1 nas posicoes em que diferem

I Portanto, DH{~ci ,~cj} = PH{~ci +~cj}

39/56

Page 40: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Distancia mınima

I A distancia mınima de um codigo e a menor distancia deHamming entre duas diferentes palavras-codigos no codigo.

I Nessa matriz de distancias, a distancia mınima e dmin = 2

0000 0110 1001 11110000 0 2 2 40110 2 0 4 21001 2 4 0 21111 4 2 2 0

I Para codigos lineares, dmin = mınimo do peso de Hamming de

todas palavras-codigos excluindo a palavra-codigo ~0 (somentezeros)

I No exemplo, minPH{0110, 1001, 1111} = 2

40/56

Page 41: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Base de um codigo de bloco linear

I C e um codigo de bloco linear

I Escolhe-se como base, k palavras-codigos ~c1,~c2, . . . ,~ckI Todas as palavras-codigos em C podem ser descritas por

combinacoes dessas k palavras-codigosI ~cx = a1~c1 + a2~c2 + a3~c3 + . . . + ak~ck , onde ai ∈ {0, 1}

I No exemplo, base pode ser {0110, 1111}I Assim,

0000 = 0 ∗ 0110 + 0 ∗ 1111 e1001 = 1 ∗ 0110 + 1 ∗ 1111

41/56

Page 42: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Matriz de geracao

G =

~c1~c2...~ck

~cx = ~mxG

onde ~mx e a mensagemcodificada

Dimensoes de G sao k × n, sendoum bloco de k bits codificado porn bits, n > k .

I Exemplo

I G =

[0 1 1 01 1 1 1

][0 0] G = [0 0 0 0][0 1] G = [1 1 1 1][1 0] G = [0 1 1 0][1 1] G = [1 0 0 1]

42/56

Page 43: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Codigos equivalentes

I Os codigos gerados por G1 e G2 sao equivalentes se eles usamas mesmas palavras-codigos mas com um diferentemapeamento para as mensagens codificadas

I Exemplo

G1 =

[0 1 1 01 1 1 1

]G2 =

[1 0 0 11 1 1 1

]

~mx ~cx de G1 ~cx de G2

00 0000 000001 1111 111110 0110 100111 1001 0110

43/56

Page 44: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Codigos sistematicos

I Um codigo e sistematico se os bits da mensagem original ~mestao no inıcio da mensagem codificada ~c

~c = [~m|~p]

I A matriz de geracao de um codigo sistematica e da formaGsist = [Ik |P]

onde Ik e a matriz identidade k × k

I Qualquer matriz geradora pode ser transformada em Gsist

usando uma transformacao linear.

Gsist =

[1 0 0 10 1 1 0

]~mx ~cx de Gsist

00 000001 011010 100111 1111

44/56

Page 45: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Matriz de verificacao de paridade

I Uma matriz de verificacao de paridade H e uma matriz talque ~cHT = ~0

I ~cHT = ~0 pode ser escrito como ~mGHT = ~0

I Portanto, GHT = ~0

I Podemos achar H a partir de Gsist = [Ik |P]

I H = [PT |In−k ]

Se Gsist =

[1 0 0 10 1 1 0

]entao H =

[0 1 1 01 0 0 1

]I H tem dimensoes (n − k)× n

45/56

Page 46: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Exemplo de codigo de Hamming (7,4)

G =

1 1 0 0 1 0 10 1 1 0 1 0 00 0 1 1 0 1 00 0 0 1 1 0 1

Listar as palavras-codigos de um codigo sistematico obtido de G , adistancia mınima entre as palavras-codigos dmin e matriz deverificacao de erros H.

46/56

Page 47: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Decodificacao

I A palavra recebida, ~r = ~c + ~e, onde ~e e um padrao de erroI Por exemplo, se ~c = [1 1 0 0 1 1 0 1]

e ~r = [1 0 0 0 1 1 0 1]entao ~e = [0 1 0 0 0 0 0 0]

I Assumindo que erros acontecem de maneira independentecom probabilidade p < 0.5

I Padroes de erro com menor peso de Hamming sao maisprovaveis que com maior peso

47/56

Page 48: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Exemplo

I Palavras-codigos C = {(00000), (01011), (10110), (11101)}I Mensagem recebida ~r = (11111)

I Se ~c = (00000) entao ~e = (11111) que ocorre comprobabilidade p5

I Se ~c = (01011) entao ~e = (10100) que ocorre comprobabilidade p2(1− p)3

I Se ~c = (10110) entao ~e = (01001) que ocorre comprobabilidade p2(1− p)3

I Se ~c = (11101) entao ~e = (00010) que ocorre comprobabilidade p(1− p)4 > p2(1− p)3 > p5

I Portanto, receptor seleciona ~c = (11101) como a mensagemtransmitida mais provavel e extrai a mensagem equivalente.

48/56

Page 49: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Vetor de Decodificacao Padrao

I Um “vetor de decodificacao padrao” e uma tabela de consultaque mapeia palavras recebidas para as mensagenstransmitidas mais provaveis.

I De uma palavra recebido, obtem-se uma “sındrome” queindica os erros ocorridos

00000 01011 10110 1110100001 01010 10111 1110000010 01001 10100 1111100100 01111 10010 1100101000 00011 11110 1010110000 11011 00110 0110110001 11010 00111 0110011000 10011 01110 00101

49/56

Page 50: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Como construir um Vetor Padrao

I Escrever todas as possıveis palavras que podem ser recebidasI Remover todas as palavras-codigo e coloca-las no topo das

colunas, sendo aquela com todos zeros na coluna mais aesquerda

I Coluna mais a esquerda corresponde ao padrao de erro

I Obter vetor de menor peso das palavras restantes e colocar nacoluna a esquerda

I Adicionar esse vetor a todas palavras-codigos (que estao nalinha do topo) e colocar resultado abaixo daquelapalavra-codigo (e tirar da lista de possıveis)

I Repetir ate a lista de palavras possıveis de serem recebidasacabar

50/56

Page 51: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Decodificacao de sındrome

I Sındrome e o conjunto de bits que indicam um erro

I S =~rHT

I ~r = ~c + ~e, entao S = (~c + ~e)HT = ~cHT + ~eHT = ~eHT

I Todos vetores na mesma linha do vetor padrao produzem amesma sındrome

I A sındrome aponta para um endereco de memoria que contemo padrao de erro mais provavel

I Entao o decodificador computa ~c =~r + ~e

51/56

Page 52: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Exemplo

I Para o nosso codigo

G =

[1 0 1 1 00 1 0 1 1

]H =

1 0 1 0 01 1 0 1 00 1 0 0 1

I Sendo ~r = (01001), entao

[0 1 0 0 1

1 1 00 1 11 0 00 1 00 0 1

=[0 1 0

]

I [010] indica que erro esta na terceira linha do “vetor dedecodificacao padrao”

I Isso indica que a palavra correta e ~c = (01011) e o erro e~e = (00010).

52/56

Page 53: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Exemplo 2

I Para o nosso codigo

G =

[1 0 1 1 00 1 0 1 1

]H =

1 0 1 0 01 1 0 1 00 1 0 0 1

I Sendo ~r = (00111), entao

[0 0 1 1 1

1 1 00 1 11 0 00 1 00 0 1

=[1 1 1

]

I [111] indica que erro esta na oitava linha do “vetor dedecodificacao padrao”

I Isso indica que a palavra correta e ~c = (11111) e o erro e~e = (11000).

53/56

Page 54: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Capacidade de deteccao e correcao de erros de um codigo

I t = numero de erros que decodificador pode sempre corrigir

I J = numero de erros que decodificador pode sempre detectar

I t = dmin−12 quando dmin e ımpar

I t = dmin−22 quando dmin e par

I J = dmin − 1

I Podemos ter codigos que corrigem e detectam erros, entaot + J = dmin − 1 onde J > t

54/56

Page 55: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Resumo

I Protocolos fornecem servicos e funcionalidades

I Protocolos sao definidos por sintaxe, gramatica, semantica etempo

I Protocolos sao implementados por maquinas de estados

I Controle de erros e essencial para sucesso de comunicacao

I Com controle de erros por codigos sistematicos pode-semanter dados originais e adicionar bits de verificacao de erros

55/56

Page 56: 02 - Introdução a Elementos de um Protocolo de Comunicaçãoalbertini/1sem2015/redes/slides/02elementos.pdf · Script done on Sat Apr 28 14:14:28 2001 5/56. Pacote RFC 1149 6/56

Referencias

I Introduction to Error Control Coding. ELG3175 Introductionto Communication Systems. University of Ottawa.

I Lecture Notes ECE 7670. Lecture 1 - Introduction. ErrorControl Coding. Utah State University. T. Moon.

I Introduction to Basics of Communication Protocol. LectureNotes. Indian Institure of Science. P. Venkaratam.

I D. Clark, The Design Philosophy of the DARPA InternetProtocols

I G. J. Holzmann, Tutorial: Design and Validation of Protocols

I G. J. Holzmann, The Model Checker SPIN

56/56