'''Server Message Block''' (SMB) e'è un [[protocollo di rete|protocollo]], usato soprattutto dai sistemi [[Microsoft Windows]], principalmente per condividere [[file|files]], [[stampante|stampanti]], [[porta seriale|porte seriali]] e comunicazioni di varia natura tra diversi nodi di una [[rete informatica|rete]]. Esso include anche un meccanismo di [[comunicazione tra processi]] [[autenticazione|autenticate]]. E' soprattutto usato dai sistemi [[Microsoft Windowsautenticata]].
== Storia ==
SMB e'è stato inventato da [[Barry Feigenbaum]] presso la [[IBM]], ma la versione piu'più largamente usata e'è stata pesantemente modificata da [[Microsoft]].
Originariamente, il protocollo venne studiarestudiato per operare al di sopra di [[NetBIOS]], sebbene possa agire anche direttamente su [[TCP/IP]] a partire dall'implementazione in [[Windows 2000]].
Nel momento in cui [[Sun Microsystems]] annuncio'annunciò il [[WebNFS]], Microsoft lancio'lanciò l'iniziativa, nel [[1998]], di chiamare SMB '''Common Internet File System''' (CIFS) ed incluse diverse migliorie, inclusocompreso il supporto ai [[linkCollegamento (informatica)simbolico|link simbolici]], la gestione di filesfile di grosse dimensioni e la possibilita'possibilità di operare senza alcun supporto di [[NetBIOS]].
A causa dell'importanza del protocollo SMB, necessario all'interoperabilita'interoperabilità con la piattaforma [[Microsoft Windows]], nacque il progetto [[Samba (software)|Samba]], che rappresenta una un'implementazione [[software libero|free]] usata per garantire compatibilita'compatibilità SMB con [[sistema operativo|sistemi operativi]] non Microsoft.
== Implementazione ==
=== Approccio Client-Server ===
SMB agisce con un approccio [[client]]-[[server]], per cui un client avanza le sue richieste ed il server risponde opportunamente. Una sezione del protocollo e'è dedicata specificatamente all'accesso al [[filesystemfile system]], in modo che i client possano fare richieste al [[file server]], ma ci sono altre sezioni specializzate per le comunicazioni tra processi. SMB e'è stato ottimizzato per l'uso in [[lan|rete locale]], ma puo'può essere usato anche attraverso l'[[Internet]].
I server SMB rendono il loro filesystemfile system e le altre risorse disponibili ai client sulla rete. I client possono avere i loro propri [[disco rigido|dischi]] che non sono pubblicamente accessibili ed accedere comunque al filesystemfile system condiviso e alle stampanti del server, e questa e'è la modalita'modalità primaria di utilizzo del protocollo.
=== Prestazioni ===
Spesso SMB viene considerato SMB un protocollo che richiede un pesante utilizzo di [[banda (informatica)|banda]] in quanto ogni client notifica la sua presenza con un [[broadcast]] all'intera rete. In realta'realtà SMB non usa broadcast, esso viene usato da [[NetBIOS]] per localizzare i server disponibili ad intervalli periodici. Cio'Ciò e'è accettabile in reti con meno di 20 [[host|hosts]]s, ma il traffico dovuto ai broadcast puo'può creare problemi con l'aumentare del numero di macchine connesse. Tale problema puo'può essere mitigato sfruttando [[WINS]], un protocollo di localizzazione dei servizi: usa un sistema di registrazione e centralizzazione delle richieste di servizi piu'più avanzato, ma implica una crescita nella complessita'complessità di manutenzione della rete.
=== Modifiche di Microsoft ===
Con l'obiettivo di semplificare l'interfaccia di utilizzo del protocollo, Microsoft ha aggiunto diverse caratteristiche alla sua implementazione di SMB rispetto alla concezione originaria: ad esempio, la seconda versione di [[NTLM]] venne sviluppata perche'perché la prima (derivata dalla originaria specifica di SMB) utilizzava la cifratura [[DESData Encryption Standard]] (DES) in maniera troppo complessa.
=== Punti di Interesse ===
Il meccanismo di comunicazione tra processi incluso in SMB merita una menzione speciale. Grazie ad esso sono fornite le [[pipePipe (informatica)|named pipes]], con cui e'è implementato il meccanismo di autenticazione e l'implementazione Microsoft del [[DCE/RPC]] (conosciuta come [[MSRPC]]).
SMB e'è anche usato come fondamento del [[Microsoft Distributed File System]].
== Versioni ed Implementazioniimplementazioni Alternativealternative ==
* [[Samba (software)|Samba]], e'è una implementazione [[software libero|freelibera]] del protocollo SMB e dell'estensione Microsoft; include un server e un client a [[interfaccia a lineariga di comando|lineariga di comando]]
* [[Samba TNG (software)|Samba TNG]] e'è un [[Fork (sviluppo software)|fork]] di Samba
* [[Linux]] include due implementazioni di client SMB che agiscono per mezzo del [[virtual file system|VFS]], fornendo accesso al server SMB attraverso la [[Application programming interface|API]] standard
* [[FreeBSD]], [[NetBSD]] e [[MacOS X]] includono implementazioni di client SMB per i rispettivi VFS
* [[Advanced Server for Unix]] (AS/U) e'è il [[porting|port]] del codice del server SMB incluso in [[Windows NT]] 3.51 per [[Unix]], venduto da [[AT&T]] ai maggiori distributori di Unix
* Cascade (meglio noto come [[PC-Netlink]]), di Sun Microsystem, e'è il port di AS/U: Sun impiego' due anni per rendere il codice usabile, a causa della scarsa qualita'qualità del porting originario
* [[Veritas Software]] ha implementato SMB
* [[Santa Cruz Operation]] ha a sua volta portato lo AS/U e sviluppato [[VisionFS]], una implementazione di SMB non dipendente da quella Microsoft e sviluppata facendo riferimento a Samba
* [[Network Appliance]] ha la sua implementazione di server SMB
* [[Sharity]], di [[Objective Development]], e'è un client SMB per Unix
* [[JCIFS]] e'è una implementazione SMB in [[Java (linguaggio di programmazione)|Java]]
* [[RTSMB]] e'è una implementazione SMB in [[ANSI]] [[C (linguaggio)|C]] completamente scritta da zero, indipendente dall'implementazione Microsoft e Samba, e destinata ai [[sistema embedded|sistemi embedded]]
* [http://docs.hp.com/en/B8725-90021/ch01s02.html CIFS9000], di HP, è una implementazione SMB basata su Samba 2.2 prodotta per il proprio sistema operativo HP-UX
== Altri progetti ==
[[de:Server Message Block]]
{{interprogetto|preposizione=sul}}
[[es:Server Message Block]]
[[fr:Server Message Block]]
[[nl:SMB (netwerkprotocol)]]
[[pl:SMB]]
[[zh:CIFS]]
[[en:Server Message Block]]
== Collegamenti esterni ==
[[Categoria: File system]] ▼
* {{FOLDOC}}
{{Componenti di Windows}}
{{Portale|Microsoft}}
▲[[Categoria: File system]]
|