redocumenting historic cifs - snia · cifs:common internet file system a name given to the suite of...

43
ReDocumenting ReDocumenting Historic Historic CIFS CIFS Christopher R. Hertel Storage Architect and CIFS Geek Founder and CTO www.ubiqx.com SNIA Storage Developer's Conference ● September, 2009 Copyright © 2009 Christopher R. Hertel

Upload: others

Post on 18-Jan-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

ReDocumentingReDocumenting

HistoricHistoric CIFSCIFSChristopher R. HertelStorage Architect and CIFS GeekFounder and CTOwww.ubiqx.com

SNIA Storage Developer's Conference ● September, 2009Copyright © 2009 Christopher R. Hertel

Page 2: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

IntroductionsIntroductions

1SNIA Storage Developer's Conference ● September, 2009

Who am I?

Why am I here?

Where are we going?

Page 3: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

IntroductionsIntroductions

2SNIA Storage Developer's Conference ● September, 2009

...and what am I doing in this handbasket?

Page 4: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

IntroductionsIntroductions

3

Who am I?

This geek here.

SNIA Storage Developer's Conference ● September, 2009

Page 5: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

IntroductionsIntroductions

4

Who am I?

SNIA Storage Developer's Conference ● September, 2009

Samba Team (12± years)

jCIFS Co-Founder

Started with SMB/CIFS circa 1990 (DEC Pathworks)

Page 6: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

IntroductionsIntroductions

V

Who am I?

SNIA Storage Developer's Conference ● September, 2009

I have founded a new companyWe do SAN and NAS consultingWe are a team of geeks

Page 7: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

IntroductionsIntroductions

6

Why am I Here?To tell you about the exciting new documentation...

SNIA Storage Developer's Conference ● September, 2009

Page 8: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

IntroductionsIntroductions

7

Why am I Here?To tell you about the exciting new documentation...

...that covers CIFS circa 19961996.

SNIA Storage Developer's Conference ● September, 2009

Page 9: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

IntroductionsIntroductions

8

Why am I Here?To tell you about the exciting new documentation...

...that covers CIFS circa 19961996.

Yes, really.

Hang on... I'll explain why this is a good thing.

SNIA Storage Developer's Conference ● September, 2009

Page 10: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

IntroductionsIntroductions

9

Why am I Here?To tell you about the exciting new Microsoft documentation...

...that covers CIFS circa 19961996.

Part of the MCPP/WSPP documentation set.

On-line, downloadable, and available to the public.

SNIA Storage Developer's Conference ● September, 2009

Page 11: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

IntroductionsIntroductions

10

Why am I Here?Microsoft asked a member of theSamba Team to document SMB/CIFS.

SNIA Storage Developer's Conference ● September, 2009

Page 12: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

IntroductionsIntroductions

11

Why am I Here?Microsoft asked a member of theSamba Team to document SMB/CIFS

“If you're surprised, you're not paying attention.”—Sam Ramji

SNIA Storage Developer's Conference ● September, 2009

Page 13: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

IntroductionsIntroductions

12

Where are we going?

History:Why it matters.

Scope:What is(n't) covered, & why.

Process:How we are going about it.

Results:The benefit to you.

SNIA Storage Developer's Conference ● September, 2009

Page 14: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

HistoryHistory

13SNIA Storage Developer's Conference ● September, 2009

Page 15: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

HistoryHistory

14SNIA Storage Developer's Conference ● September, 2009

SMB is the COBOL of Network File Systems.

Page 16: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

HistoryHistory

15

In the early days, SMB was documented:1984:1984: IBM Personal Computer Seminar Proceedings, Volume 2, Number 8

1986:1986: OpenNET/Microsoft Networks FILE SHARING PROTOCOL EXTENSIONS, Version 1.9, Microsoft and Intel (XENIX extensions)

1988:1988: Microsoft Networks/OpenNet, Document Version 2, Microsoft and Intel (Core)

1988:1988: Microsoft Networks SMB File Sharing Protocol Extensions Version 2.0, Document Version 3.3, Microsoft Corporation (LAN Manager 1.0)

1989:1989: Microsoft Networks SMB File Sharing Protocol Extensions Version 3.0, Document Version 1.09, Microsoft Corporation (LAN Manager 1.2)

1990:1990: Microsoft Networks SMB File Sharing Protocol Extensions Version 3.0, Document Version 1.11, Microsoft Corporation (LAN Manager 2.0)

19921992: Microsoft Networks SMB File Sharing Protocol Extensions, Document Version 3.4, Microsoft Corporation (LAN Manager 2.1)

SNIA Storage Developer's Conference ● September, 2009

Page 17: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

HistoryHistory

0x10

Then things started thinning out.1992:1992: X/Open CAE Specification, Protocols for X/Open PC Interworking: SMB, Version 2, X/Open Company, Ltd. (Core through LAN Manager 2.0)

1996:1996: Microsoft Networks SMB File Sharing Protocol, Document Version 6.0p, Microsoft (Unfinished draft of NT LAN Manager 0.12 documentation.)

1997:1997: A Common Internet File System (CIFS/1.0) Protocol, IETF INTERNET-DRAFT, Paul J. Leach, Dilip C. Naik (Unfinished draft v2 of NT LAN Manager 0.12 specification.)

2002:2002: Common Internet File System (CIFS) Technical Reference, Revision: 1.0, Storage Networking Industry Association (SNIA)

2003:2003: Implementing CIFS, yours truly, Prentice Hall PTR

SNIA Storage Developer's Conference ● September, 2009

Page 18: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

HistoryHistory

17

Never ascribe to malice that which is adequately explained by incompetence. attributed to Napoleon Bonaparte, among others—

During this time...

[MS|PC]-DOS

OS/2

Windows NT

Windows 2000

Windows XP

Windows 2003

Windows Vista

...and we already knew that the documentation we had was, in places,

Incorrect

Incomplete

Incomprehensible

SNIA Storage Developer's Conference ● September, 2009

Page 19: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

HistoryHistory

18

This situation made people unhappy.

SNIA Storage Developer's Conference ● September, 2009

Page 20: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

HistoryHistory

19

Those who cannot learn from history are doomed to repeat it. Santayana—

The Misinterpretation:“You guys want our source code!”

The Real Problem:No clear, documented standard for interoperability.

The Proposal:“Write it!”

SNIA Storage Developer's Conference ● September, 2009

Page 21: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

HistoryHistory

20

Terms and Conditions

SNIA Storage Developer's Conference ● September, 2009

Page 22: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

ScopeScope

21SNIA Storage Developer's Conference ● September, 2009

Page 23: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

ScopeScope

22SNIA Storage Developer's Conference ● September, 2009

CIFS: A Common Internet File System

What does the term “CIFS” mean this week?Only the NT LM 0.12 dialect

Not DOS or OS/2 LAN ManagerCertainly not the Xenix or Core dialects

The NT LM 0.12 dialect as of:Windows NT3.51 & NT4 ServerWindows NT4 & 98 client

“CIFS” is now a Snapshot in Time

the he

ck

^

Page 24: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

ScopeScope

++22SNIA Storage Developer's Conference ● September, 2009

Very Limited Scope.

Page 25: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

ScopeScope

24SNIA Storage Developer's Conference ● September, 2009

Page 26: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

ScopeScope

25SNIA Storage Developer's Conference ● September, 2009

Related docs are being updated to match

[MS CIFS] content.‑

Page 27: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

ScopeScope

26

Must fit within the Template

Not a developer's dreamThere are unusual rulesThe format is a mix of ISO and IETF Standards stylesIt was put together by non-techies

We are committed to making the best of it.

(Just as we are all committed to making the best of SMB/CIFS, eh?)

SNIA Storage Developer's Conference ● September, 2009

Page 28: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

ProcessProcess

27SNIA Storage Developer's Conference ● September, 2009

Page 29: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

ProcessProcess

28

Information Gathering

The ancient texts:A phenomenal source of...

questions.Oddities in the old IBM docsHold-overs from the Xenix docsA lot to learn from the LANMAN docsThere are forgotten docs tooWho here has noticed the references to a SID field in the SMB header in Leach/Naik?

SNIA Storage Developer's Conference ● September, 2009

Page 30: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

ProcessProcess

29

Where the bodies are buried

What I can say about the NT code is that it is pretty much what we expected:

Relatively thinExposes Windows OS behaviorsUndeadUndead commands (Move/Copy)It is very old code now

SNIA Storage Developer's Conference ● September, 2009

Page 31: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

ProcessProcess

30

All writing is done in a Wiki, maintained within Microsoft.

It's a scratch padA communication mediumProvides opportunities to review/rewriteAvailable for MS to monitorWe add questions and comments to the command write-ups as we proceed.

(Implementing CIFS was written in public.)

SNIA Storage Developer's Conference ● September, 2009

Writing

Page 32: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

ProcessProcess

31

Testing and Code Spelunking

TestingSMB Torture and jCIFS

Kludgey modifications to the abovePlus a little code of our own

Code DiggingResolve questionsDiscover nuancesRaise new questions

SNIA Storage Developer's Conference ● September, 2009

Page 33: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

ProcessProcess

32

Cart/horse placement issues...

SNIA Storage Developer's Conference ● September, 2009

Page 34: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

ResultsResults

33

Those that respect the law and love sausage should watch neither being made. Mark Twain—

SNIA Storage Developer's Conference ● September, 2009

Page 35: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

ResultsResults

34

Pretty much what we expected

Studying CIFS raises as many questions as it answersWe have to "document out" OS behaviorsThe new doc will be

more completemore correctmore detailed than any previous CIFS doc

It's still a CIFS doc

SNIA Storage Developer's Conference ● September, 2009

Page 36: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

ResultsResults

35

Advantages this time 'round:Two very different perspectives"Are you sure that's how that works?"[MS-CIFS] handed off to Microsoft

A preview is available!We do want feedback

http://msdn.microsoft.com/en-us/library/ee230215.aspx

SNIA Storage Developer's Conference ● September, 2009

Page 37: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

ResultsResults

36

What's next?

Rewriting [MS-SMB]to conform to [MS-CIFS].

Review of related docsWe have been working in these docs for monthsHave already started submitting bug reports

SNIA Storage Developer's Conference ● September, 2009

Page 38: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

ResultsResults

37

[MS-SMB] Update

[MS-SMB] is a “delta”

Originally a supplement to Leach/Naik ([CIFS])

Being overhauled to conform to [MS-CIFS]

SNIA Storage Developer's Conference ● September, 2009

Page 39: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

In SummaryIn Summary

38SNIA Storage Developer's Conference ● September, 2009

[MS-CIFS] replaces Leach/Naik and the SNIA CIFS TR as the new baseline SMB/CIFS reference.

It fills a void in Microsoft's MCPP/WSPP documentation set.

[MS-CIFS] provides a sturdy foundation for the other MCPP/WSPP documentation.

Protocol extensions since NT are in [MS SMB].‑

Page 40: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

39SNIA Storage Developer's Conference ● September, 2009

Additional Information (extras)Additional Information (extras)

Definitions (real world):

SMB: Server Message BlockA stateful network file system protocol originally created by IBM in the early 1980s for use with the PC-DOS operating system.

CIFS: Common Internet File SystemA name given to the suite of protocols that include SMB and related supporting protocols. This name was created in the mid 1990's.

SMB2:Server Message Block v2A network file system protocol created by Microsoft for Windows Vista. SMB2 is a redesign of SMB, focusing on improved network efficiency and wide-area-network (WAN) performance.

Page 41: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

40SNIA Storage Developer's Conference ● September, 2009

Additional Information (extras)Additional Information (extras)

Definitions (legal and regulatory world):

CIFS: The Server Message Block file sharing protocol as implemented in Windows NT 3.51, NT 4, and Windows 9x clients.

SMB: The Server Message Block file sharing protocol as implemented in Windows starting with Windows 2000, up to and including current versions of Windows.

SMB2:The Server Message Block protocol, v2 as defined above.

Unfortunately, the terminology changes depending upon who you talk to, when you talk with them, and the context of the conversation.

Page 42: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

The EndThe End

41SNIA Storage Developer's Conference ● September, 2009

Page 43: ReDocumenting Historic CIFS - SNIA · CIFS:Common Internet File System A name given to the suite of protocols that include SMB and related supporting protocols. This name was created

Any Questions?Any Questions?

42SNIA Storage Developer's Conference ● September, 2009