www.radians.com.ar © 2014Hoy vamos a hablar del SMB. El Server Message Block (SMB) Protocol es un protocolo de uso compartido de archivos de red. El conjunto de paquetes de mensajes que define una determinada versión del protocolo se llama un dialecto. El Common Internet File System (CIFS) Protocolo es un dialecto de SMB. Tanto SMB y CIFS también están disponibles en VMS, varias versiones de Unix, y otros sistemas operativos.

Para tener en cuenta con las distintas versiones que hay en el mercado de acuerdo a nuestro sistema operativo:

  • CIFS – La versión antigua de SMB que era parte de Microsoft Windows NT 4.0 en 1996. SMB1 reemplaza esta versión.
  • SMB 1.0 (o SMB1) – La versión utilizada en Windows 2000, Windows XP, Windows Server 2003 y Windows Server 2003 R2
  • SMB 2.0 (o SMB2) – La versión utilizada en Windows Vista (SP1 o posterior) y Windows Server 2008
  • SMB 2.1 (o SMB2.1) – La versión utilizada en Windows 7 y Windows Server 2008 R2
  • SMB 3.0 (o SMB3) – La versión utilizada en Windows 8 y Windows Server 2012
  • SMB 3.02 (o SMB3) – La versión utilizada en Windows 8.1 y Windows Server 2012 R2

La referencia técnica para CIFS de parte de Microsoft esta disponible en Common Internet File System (CIFS) Protocol. Aunque su principal objetivo es el intercambio de archivos, Microsoft SMB Protocol ofrece funciones adicionales:

En el modelo de redes OSI, el protocolo Microsoft SMB se utiliza más a menudo como una capa de aplicación o un protocolo de capa de presentación, y se basa en los protocolos de nivel inferior para el transporte. El protocolo de capa de transporte de dicho Protocolo SMB Microsoft es la más utilizada es con NetBIOS sobre TCP/IP. Sin embargo, protocolo Microsoft SMB también se puede utilizar sin un protocolo de transporte de la combinación protocolo Microsoft SMB/NBT se utiliza generalmente para la compatibilidad con versiones anteriores separada.

El protocolo Microsoft SMB es una aplicación cliente-servidor y se compone de un conjunto de paquetes de datos, cada uno con una solicitud enviada por el cliente o una respuesta enviada por el servidor. Estos paquetes se pueden clasificar de la siguiente manera:

  • Sesión de control de paquetes-Establece y suspende una conexión a los recursos compartidos del servidor.
  • Acceso a archivos paquetes de Accesos y manipula los archivos y directorios en el servidor remoto.
  • General message packets—Sends data to print queues, mailslots, and named pipes, and provides data about the status of print queues.

Algunos paquetes de mensajes se pueden agrupar y transmitirse al mismo tiempo para reducir la latencia de respuesta y aumentar el ancho de banda de red. Esto se llama "procesamiento por lotes." Microsoft SMB Protocol Packet Exchange Scenario describe un ejemplo de una sesión de protocolo SMB de Microsoft que utiliza el procesamiento por lotes de paquetes.

El protocolo Bloque de mensajes del servidor (SMB) versión 2 es una extensión del protocolo Bloque de mensajes del servidor (SMB) original. Los equipos cliente usan SMB para solicitar servicios de archivos e impresión desde un sistema de servidor a través de la red. Ambos son protocolos con estado en que los clientes establecen una conexión con un servidor, establecen un contexto autenticado en dicha conexión y después emiten diversas solicitudes para obtener acceso a archivos, impresoras y canalizaciones con nombre para la comunicación entre procesos

SMB2 se introdujo para permitir una comunicación más veloz entre los equipos que ejecutan Windows Vista y Windows Server 2008. SMB 2.1 incorporó importantes mejoras del rendimiento en el protocolo en Windows Server 2008 R2 y Windows 7.

Esta característica puede interesarle a:

  • Los administradores que estén interesados en las opciones de administración de energía para los clientes Windows que tienen acceso a servidores de archivos.
  • Los administradores de redes o servidores interesados en optimizaciones en los sistemas de cliente y servidor en lo que respecta a optimizaciones del protocolo SMB de Windows.
  • Los administradores de servidores que evalúan nueva funcionalidad para Windows Server 2008 R2 en lo referente a los servicios de archivos e impresión.

El protocolo SMB 2 cuenta con varias mejoras en el rendimiento en comparación con la implementación SMB 1, entre las que se incluyen las siguientes:

  • Mejoras generales para permitir un mejor uso de la red
  • Solicitudes compuestas, lo que permite enviar varias solicitudes de SMB 2 como una única solicitud de red
  • Lecturas y escrituras mayores para aprovechar mejor las redes más rápidas, incluso las que tengan una latencia elevada
  • Almacenamiento en caché de propiedades de archivos y carpetas cuando los clientes conserven copias locales de los archivos y las carpetas
  • Identificadores duraderos que permiten que una conexión SMB 2 se vuelva a conectar de manera transparente al servidor en caso de desconexión temporal, como en una conexión inalámbrica
  • Firma de mensajes mejorada con una configuración y interoperabilidad mejores (HMAC SHA-256 reemplaza a MD5 como algoritmo hash)
  • Escalabilidad mejorada para compartir archivos (el número de usuarios, los recursos compartidos y los archivos abiertos por servidor han aumentado considerablemente)
  • Compatibilidad con vínculo simbólicos

SMB 2.1 incorpora importantes mejoras del rendimiento en el protocolo en Windows Server 2008 R2 y Windows 7. Entre estas mejoras, se incluyen las siguientes:

  • Modelo de concesión de bloqueo oportunista de cliente
  • Compatibilidad con MTU grandes
  • Eficiencia energética mejorada para equipos cliente
  • Compatibilidad con versiones anteriores de SMB

Los bloqueos oportunistas se utilizan con frecuencia en SMB para permitir que los equipos cliente almacenen datos e identificadores de archivo en caché. Los bloqueos oportunistas existen hace tiempo en la semántica de archivos de NTFS con la intención principal de facilitar el acceso a archivos a través de una red. Los bloqueos oportunistas permiten que un proceso bloquee un archivo cuando sea posible; no obstante, el análisis de los patrones de acceso a archivos de las aplicaciones determinó que no se podían mantener estos bloqueos La razón era que las aplicaciones abrían archivos varias veces cuando un archivo estaba abierto o la existencia de conflictos de solicitudes de acceso a archivos (por ejemplo, la aplicación A abre un archivo en primer lugar para lectura y después, para lectura y escritura), a menudo con los mismos bloqueos oportunistas de proceso o de interrupción de subproceso mantenidos por el mismo proceso o subproceso.

La introducción del modelo de concesión de bloqueo oportunista de cliente en SMB 2.1 permite que un cliente mantenga bloqueos oportunistas en una gama más amplia de escenarios. Esta característica ofrece una mejora en las oportunidades de almacenamiento de archivos en caché y de almacenamiento de metadatos (información de archivos) en caché para el cliente SMB, y aporta considerables ventajas de rendimiento, ya que limita la cantidad de datos que necesitan transferirse entre el equipo cliente y el servidor. Esta mejora constituye una ventaja especialmente para las redes con alta latencia. Además, dado que el número de operaciones que se deben dirigir hacia el servidor de archivos SMB disminuye, se aumenta la escalabilidad del servidor de archivos SMB.

El nuevo modelo de concesión en SMB 2.1 proporciona mayores oportunidades de almacenamiento en caché de archivos e identificadores para un equipo cliente SMB 2.1, al tiempo que conserva la integridad de los datos y no requiere ningún cambio en las aplicaciones actuales para aprovechar esta funcionalidad.

Las ventajas de esta característica incluyen las siguientes:

  • Consumo reducido de ancho de banda de red
  • Mayor escalabilidad del servidor de archivos
  • Mejor tiempo de respuesta de las aplicaciones al obtener acceso a archivos a través de una red

Compatibilidad con MTU grandes: Uno de los objetivos de diseño para la implementación del protocolo SMB 2.1 en Windows Server 2008 R2 y Windows 7 fue lograr un mejor rendimiento para la redes Ethernet de 10 gigabits (velocidad muy alta/latencia baja). Esto se ha logrado con una nueva característica denominada ”MTU grande” u operaciones ”multicrédito”. La unidad de transmisión máxima (MTU) es el tamaño (en bytes) de la mayor unidad de datos de protocolo que pueda pasar un protocolo de comunicación a través de la red. En SMB 2.1 esta unidad de datos máxima se aumentó de 64 kilobytes (KB) a 1 megabyte (MB). Esto permite que los clientes con redes Ethernet de 10 gigabits aprovechen mejor las capacidades de una red de este tipo. Las tareas tales como copiar archivos grandes mejoran notablemente con esta capacidad.

Podemos habilitar esta opción de configuración mediante una clave del Registro en los equipos cliente SMB.

Otra mejora importante en Windows 7 es la eficiencia energética mejorada para los equipos cliente SMB. Antes de Windows Vista, no se hubiera permitido que un equipo cliente SMB con archivos abiertos en un servidor de archivos SMB entrara en modo de suspensión. Solo se debería permitir que los clientes SMB entren en el modo de suspensión en situaciones en que se pueda garantizar absolutamente la coherencia de los archivos de datos. Aunque los equipos con Windows Vista pueden entrar en un estado de energía en suspensión en una gama limitada de escenarios, se han realizado aún más mejoras en Windows 7 para permitir una mayor variedad de escenarios en que los equipos cliente puedan entrar en un estado de energía en suspensión.

Ahora, el modo de suspensión se permite en las siguientes condiciones:

  • Cuando un cliente SMB con identificadores de archivos de red abiertos no tenga cambios sin escribir en dicho archivo.
  • Cuando un cliente SMB con identificadores de archivos de red abiertos tenga cambios sin escribir pero exista una copia de seguridad de dicho archivo en un almacén sin conexión local (la carpeta está marcada como Siempre disponible sin conexión). Cuando se reanuda el cliente después de la suspensión, esos archivos seguirán disponibles y serán coherentes en el almacén sin conexión local.
  • Cuando un cliente SMB explore recursos compartidos de red o tenga identificadores de directorios abiertos.

Además, se proporciona una configuración de plantilla administrativa de directiva de grupo para aquellos administradores que deseen usar una configuración más segura para que se permita a los equipos cliente que tengan archivos remotos mantenidos abiertos pasar al modo de suspensión. Cuando un equipo cliente SMB tiene un archivo remoto abierto, dicho archivo no tiene una copia de seguridad con archivos y carpetas sin conexión y el cliente no tiene escrituras pendientes en el archivo remoto, se puede permitir que entre en el modo de suspensión. No existe riesgo de incoherencia en los datos con esta configuración; sin embargo, es posible que algunas aplicaciones generen un error (como “no se puede obtener acceso al archivo”) cuando el equipo salga del modo de suspensión.

Compatibilidad con versiones anteriores de SMB: Windows Server 2008 R2 y Windows 7 admiten SMB 1, SMB 2 y SMB 2.1, y usarán automáticamente la versión más adecuada para la comunicación Este proceso de negociación es transparente para el usuario.

La implementación de las mejoras del protocolo SMB 2.1 no requiere ninguna acción específica. Cuando un cliente SMB 2.1 establece contacto con un servidor compatible con SMB 2.1, se negocia la versión del protocolo automáticamente al iniciarse la sesión y no se necesita ninguna instalación para implementarla.

La configuración de administración de energía predeterminada en los equipos cliente con Windows permite que los equipos SMB entren en suspensión cuando no exista riesgo de producirse un error en la aplicación o la pérdida de datos.

Espero que les sea de interés. Saludos, Roberto Di Lello.

Les dejo algunos links de interés:

Avatar photo

By Roberto Di Lello

Hola, soy Roberto Di Lello trabajo como Consultor Senior en Infraestructura, especializado en Tecnologias Microsoft con mas de 25 años en la industria. He sido galardonado como MS-MVP en Active Directory-Enterprise Mobility por 10 años, y actualmente soy MVP Windows Insider, ademas de poseer otras certificaciones de Microsoft. He trabajado en distintos projectos que involucran Migraciones, Implementaciones, y soporte de Active Directory y Microsoft Exchange, y en los ultimos años me he desempeñado armando equipos de trabajo para diferentes paises y areas de sistemas, he planificado a distintas migraciones a datacenters (ambiente cloud y mixtos). He tenido la oportunidad de participar como miembro del staff de Microsoft en eventos internacionales como ser TechEd NorteAmerica y MS Ignite (NA) al ser Trainer Certificado por Microsoft (MCT).