As transferências de arquivos SMB usam uma conexão persistente?

2

Estou fazendo alguns testes de velocidade com diferentes tipos de transferências de arquivos na minha rede.

Tenho notado que as transferências de arquivos do Windows (SMB) são mais lentas que o FTP, HTTP e outros tipos de protocolos.

Eu estava pensando que isso pode ter a ver com uma conexão persistente.

Eu tenho algumas perguntas, não apenas uma.

  1. As transferências de arquivos SMB usam uma conexão persistente?

  2. As transferências de arquivos SMB enviam um pacote de cada vez e aguardam um ACK associado? ou eles fazem algo como pipelining HTTP?

  3. Existe alguma maneira de eu encontrar essa informação para mim? (O site da Microsoft não é útil.)

por Nathan McCoy 28.02.2013 / 17:00

1 resposta

4

Algumas dessas coisas dependem da versão do SMB que você está falando. Existem vários dialetos e "sabores" diferentes. Existem livros inteiros escritos sobre o SMB / CIFS - você está falando sobre um tema bastante amplo.

O dialeto SMB original, sobre TCP / IP, envia comandos através de uma única conexão TCP entre o cliente e o servidor. Não há funcionalidade "pipelining".

O SMBv2 adicionou funcionalidade de pipelining, diminuiu o número geral de comandos e simplificou o protocolo, e geralmente reduziu a natureza de retorno e retorno do protocolo que contribuiu para um desempenho ruim em conexões latentes.

A implementação do CIFS é um bom recurso: o protocolo SMB original. Para o SMBv2, eu olharia primeiro para a documentação de protocolo da Microsoft . Alguns outros recursos, da perspectiva do Samba, são:

O SMB3 também adicionou mais lote mais funcionalidades. O Blog do Windows Server no Technet tem alguns detalhes sobre a funcionalidade do SMBv3 .

    
por 28.02.2013 / 17:13