Bloque de mensajes del servidor
Server Message Block (SMB) es un protocolo , utilizado principalmente por los sistemas Microsoft Windows , principalmente para compartir archivos , impresoras , puertos serie y comunicaciones de diversa índole entre distintos nodos de una red . También incluye un mecanismo de comunicación entre procesos autenticado .
Historia
SMB fue inventado por Barry Feigenbaum en IBM , pero la versión más utilizada ha sido fuertemente modificada por Microsoft .
Originalmente, el protocolo fue diseñado para operar sobre NetBIOS , aunque también puede actuar directamente sobre TCP/IP desde su implementación en Windows 2000 .
Cuando Sun Microsystems anunció WebNFS , Microsoft lanzó la iniciativa, en 1998 , para llamar SMB Common Internet File System (CIFS) e incluyó varias mejoras, incluida la compatibilidad con enlaces simbólicos , el manejo de archivos grandes y la capacidad de operar sin ningún soporte de NetBIOS .
Debido a la importancia del protocolo SMB, necesario para la interoperabilidad con la plataforma Microsoft Windows , nació el proyecto Samba , que representa una implementación libre utilizada para garantizar la compatibilidad SMB con sistemas operativos que no sean de Microsoft .
Implementación
Enfoque cliente-servidor
SMB actúa con un enfoque cliente - servidor , mediante el cual un cliente realiza sus solicitudes y el servidor responde adecuadamente. Una sección del protocolo está dedicada específicamente a acceder al sistema de archivos , para que los clientes puedan realizar solicitudes al servidor de archivos, pero hay otras secciones especializadas para las comunicaciones entre procesos. SMB se ha optimizado para el uso de la red local , pero también se puede utilizar a través de Internet .
Los servidores SMB ponen sus sistemas de archivos y otros recursos a disposición de los clientes en la red. Los clientes pueden tener sus propios discos que no son de acceso público y aun así acceder al sistema de archivos e impresoras compartidas del servidor, y esta es la forma principal de usar el protocolo.
Rendimiento
SMB a menudo se considera un protocolo que requiere un uso intensivo del ancho de banda , ya que cada cliente notifica su presencia con una transmisión a toda la red. En realidad, SMB no usa difusión, NetBIOS lo usa para ubicar servidores disponibles a intervalos periódicos. Esto es aceptable en redes con menos de 20 hosts , pero el tráfico de difusión puede crear problemas a medida que aumenta la cantidad de máquinas conectadas. Este problema se puede mitigar explotando WINS , un protocolo de localización de servicios: utiliza un sistema de registro y centralización más avanzado para las solicitudes de servicios, pero implica un aumento en la complejidad del mantenimiento de la red.
Cambios de Microsoft
Con el objetivo de simplificar la interfaz para usar el protocolo, Microsoft ha agregado varias características a su implementación SMB en comparación con el concepto original: por ejemplo, la segunda versión de NTLM se desarrolló porque la primera (derivada de la especificación SMB original) usaba Cifrado estándar de cifrado de datos (DES) de una manera que era demasiado compleja.
Puntos de interés
Mención aparte merece el mecanismo de comunicación entre procesos incluido en SMB. Gracias a ella se proporcionan canalizaciones nombradas , con las que se implementa el mecanismo de autenticación y la implementación de Microsoft de DCE/RPC (conocido como MSRPC ).
SMB también se utiliza como base del sistema de archivos distribuido de Microsoft .
Versiones alternativas e implementaciones
- Samba , es una implementación gratuita del protocolo SMB y la extensión de Microsoft; incluye un servidor de línea de comandos y un cliente
- Samba TNG es una bifurcación de Samba
- Linux incluye dos implementaciones de clientes SMB que actúan a través de VFS , proporcionando acceso al servidor SMB a través de la API estándar
- FreeBSD , NetBSD y MacOS incluyen implementaciones de clientes SMB para sus respectivos VFS
- Advanced Server for Unix (AS/U) es el puerto del código del servidor SMB incluido en Windows NT 3.51 para Unix , vendido por AT&T a los principales distribuidores de Unix
- Cascade (más conocido como PC-Netlink ), de Sun Microsystem, es el port de AS/U: Sun tardó dos años en hacer usable el código, debido a la mala calidad del port original
- Veritas Software ha implementado SMB
- La operación Santa Cruz, a su vez, trajo el AS/U y desarrolló VisionFS , una implementación SMB no dependiente de Microsoft desarrollada con referencia a Samba.
- Network Appliance tiene su propia implementación de servidor SMB
- Sharity , de Objective Development , es un cliente SMB para Unix
- JCIFS es una implementación SMB en Java
- RTSMB es una implementación SMB completamente escrita desde cero en ANSI C , independiente de la implementación de Microsoft y Samba, y destinada a sistemas integrados.
- CIFS9000 , de HP, es una implementación SMB basada en Samba 2.2 fabricada para su sistema operativo HP-UX