Protocolo SMB/CIFS
SMB e CIFS
SMB é um protocolo, não uma implementação.
O protocolo foi criado em muitos sistemas
operacionais, de Windows a UNIX e até em
ambientes de mainframe.
Protocolo SMB/CIFS
Histórico
Protocolo SMB/CIFS
O SMB começou com a IBM e foi implementado pela
Microsoft à medida que a empresa começou a
adaptar seus produtos para redes no início dos anos
1990.
Naquela época, o SMB precisava de um produto
separado, como o LAN Manager ou Windows for
Workgroups, mas o compartilhamento de arquivos
com o tempo foi transformado em parte do sistema
operacional regular com o Microsoft Windows NT.
Protocolo SMB/CIFS
CIFS
A Microsoft continuou a adaptar o SMB para os novos
recursos que passaram a ser introduzidos em seus
sistemas operacionais e, por fim, apresentou uma
versão chamada de CIFS, que propôs como
padronização com a Internet Engineering Task Force.
Protocolo SMB/CIFS
Samba
Na mesma época, um estudante de graduação na Austrália,
Andrew Tridgell, começou o processo de engenharia reversa em
uma implementação de mainframe do SMB e começou a trabalhar
no que acabaria sendo uma versão de software livre do SMB e
dos protocolos da Microsoft, chamado de Samba.
O projeto começou como um modo de mover arquivos e acabou
sendo uma implementação completa de cliente e servidor,
incluindo a capacidade de agir como o controlador de domínio do
Windows e, atualmente na versão 4, como o servidor do Active
Directory.
Protocolo SMB/CIFS
SMB versus CIFS
O CIFS é tecnicamente um dialeto do SMB.
O protocolo SMB foi modificado ao longo dos anos, de modo que
é necessário que o cliente e o servidor negociem o dialeto do
protocolo a ser falado.
O CIFS se refere à série de extensões do NT LAN Manager
(NTLM).
Estranhamente, o protocolo não usa a cadeia de caractere CIFS
para se identificar; em vez disso, usa NT LM 0.12 .
Na prática, pode-se usar os termos SMB e CIFS de forma
intercambiável, visto que o dialeto CIFS do SMB é o dialeto usado
atualmente.
A propósito, CIFS é pronunciado "sifs" em vez de ser soletrado
como no caso do SMB.
Protocolo SMB/CIFS
Visão geral do protocolo SMB
Como protocolo cliente-servidor, o cliente faz contato com o
servidor.
O SMB(Server Message Block)de início exigia uma camada
de API (interface de programação de aplicativos) chamada
Network Basic Input/Output System (NetBIOS).
Essa API fornecia diversos serviços que o SMB usava, bem
como diversos serviços relacionados à resolução de nome e
navegação de rede.
Protocolo SMB/CIFS
O NetBIOS fornece três serviços importantes para uma rede Microsoft:
Serviços de nome para localizar hosts na rede
Serviços de sessão para comunicação confiável e transferências entre um
cliente um servidor
Serviços de distribuição de datagrama para mensagens pequenas e
transmissões de rede.
O SMB, portanto, usava muito os serviços de sessão, mas dependia de outros serviços
para suporte, como uso de serviços de nome para localizar o endereço do servidor.
Protocolo SMB/CIFS
Com o tempo, a predominância do TCP/IP e a mudança da
Microsoft, que passou a depender do Domain Name System
(DNS) para resolução de nomes, levou ao SMB ser
executado diretamente sobre TCP/IP de um modo chamado
hosting direto.
Enquanto o NBT é executado em TCP e no UDP (User
Datagram Protocol), nas portas 137-139, o hosting direto
usa TCP e UDP na porta 445.
Protocolo SMB/CIFS
SMB na pilha OSI
O modelo OSI (Open Systems Interconnection), usado para
explicar as interações entre os protocolos de rede.
O modelo OSI descreve os recursos necessários para que um
aplicativo funcione pela rede e divide os recursos em uma série
de camadas.
Cada camada usa os serviços fornecidos pelas camadas abaixo
dela e fornece serviços para as camadas acima dela.
Protocolo SMB/CIFS
Modelo OSI
Protocolo SMB/CIFS
Protocolo SMB/CIFS
Download

Protocolo SMB/CIFS