Pergunta

Estou tentando entender como O algoritmo RSYNC Funciona com relação às somas de verificação e blocos que combinam de maneira escalonada.

A página da Wikipedia parece sugerir que o remetente e o destinatário calculem e trocam somas de verificação para todos os blocos possíveis. Mas isso significaria enviar essencialmente uma soma de verificação por byte! Eu devo estar esquecendo alguma coisa. Como funciona para poder alinhar blocos?

por exemplo, se s = 16 bytes blocos, e o remetente tem este texto para o arquivo a:

A rápida raposa marrom pula sobre os cães preguiçosos

e o receptor tem este texto para o arquivo B:

A ligeira raposa marrom saltou sobre o cão preguiçoso

Como uma troca do RSYC funcionaria?

Foi útil?

Solução

O receptor calcula e envia somas de verificação de rolagem apenas para blocos não sobrepostos. O remetente pelo contrário calcula -o para cada possível Bloco (mas mantenha o resultado local). Então, para o remetente, é apenas uma questão de verificar se um dos blocos não sobrepostos (enviados pelo receptor) algum (sobreposição) Bloco local.

Seu exemplo é simples demais para ver algo interessante, os dois últimos blocos simplesmente não correspondem e serão enviados para a fusão.

Com um exemplo mais interessante (maiúsculas é um bloco):

remetente:

A B Cabc D

receptor:

A B C D

O receptor enviará o MD5 e o hash rolling para A, B, C e D. O remetente calculará o hash rolling para todo (Sobreposição) Bloco, ele corresponderá a A, para B, para C e para D. desde abc Não é a correspondência, ele o enviará com as informações para onde mesclá -las.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top