您好,欢迎来到尚车旅游网。
搜索
您的当前位置:首页CIFS协议文档

CIFS协议文档

来源:尚车旅游网
精品文档

目录

1CIFS协议1.1CIFS协议概述1.2CIFS协议头格式1.2.1头域1.2.2命令域1.2.3错误类域1.2.4错误代码域1.2.5flags域1.2.6flags2域

1.2.7填充或安全签名域1.2.8TID域1.2.9PID域1.2.10UID域1.2.11MID域

1.2.12 Wordcount和Parameterwords(参数域)1.2.13Bytecount和buffer域(缓冲)1.3CIFS协议的安全机制1.3.1用户级安全1.3.2共享级安全1.3.3加密

1.4CIFS协议的完整性1.4.1机会锁

1.5CIFS协议包交换流程

1.5.1包交换的第一部分——协商和参数传递1.5.1.1建立NetBIOS会话1.5.1.2CIFS协议版本协商1.5.1.3用户登录1.5.1.4连接特定资源

1.5.2包交换的第二部分——数据交换1.5.2.1属性、操作等参数传递1.5.2.2数据交换

2NetBIOS协议2.1NetBIOS概述2.2NetBIOS名称服务2.2.1NetBIOS名称

2.2.2NetBIOS名称属性和格式2.2.3NetBIOS名称解析方式2.2.4NetBIOS名称识别策略2.2.5NetBIOS名称管理

.

3 3 3 3 3 5 5 5 6 8 8 8 8 8 8 9 9 9 9 9 10 10 10 10 11 11 12 12 13 13 14 15 15 15 15 15 15 16 16

精品文档

2.3NetBIOS会话服务2.3.1概述

2.3.2NetBIOS会话原语2.4NetBIOS数据报服务

16 16 17 17

.

精品文档

1、CIFS协议

1.1 CIFS协议概述

通用网际文件系统(

CIFS)是微软服务器消息块协议(

SMB)的增强版本,是计算机

用户在企业内部网和因特网上共享文件的标准方法。

CIFS 通过定义一种与应用程序在本地

CIFS数据包格式为标

磁盘和网络文件服务器上共享数据的方式相兼容的远程文件访问协议使之能够在因特网上进行协作。定义了客户端向服务器端的请求和服务器端得应答报文。准头部+2个可变长区域。

CIFS协议有很多版本,每个协议的版本称为一种方言,并分配一个唯一的字符串来识别。当客户端希望访问远程服务器上的文件时,第一次发送的CIFS数据包是一个协商版本的数据包。在这个数据包中,客户端列出了自己可以提供的版本字符串。包中选择其中一种版本字符串发送给客户端。这样两者就协商出一个

服务器在响应数据CIFS协议的版本。

1.2CIFS协议头格式

0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7

0xFF Command Error code(continued)

树ID(TID)用户ID(UID)

wordcount

Bytecount

Buffer[bytecount] 'S' Error class Flags

填充或者安全签名,通常标准的填充是

'M' Must be zero

Flags2 0

进程ID(PID)多重识别码(MID)

Parameterwords[wordcount]

'B' Error code

1.2.1头域

每个CIFS数据包的开始包含

4个字节的头。第一个字节是

0xFF,第二个字节是字母‘S’

的ASCII表示,第三个字节和第四个字节分别为‘

M’和‘B’。

1.2.2命令域

命令域为1个字节,用来表示

CIFS数据包的类型。其各种命令对应的数值见下:

SMB_COM_CREATE_DIRECTORY 0x00 SMB_COM_DELETE_DIRECTORY 0x01 SMB_COM_OPEN 0x02 SMB_COM_CREATE 0x03

.

精品文档

SMB_COM_CLOSE 0x04 SMB_COM_FLUSH 0x05 SMB_COM_DELETE 0x06 SMB_COM_RENAME 0x07 SMB_COM_QUERY_INFORMASMB_COM_READ 0x0A SMB_COM_WRITE 0x0B

SMB_COM_LOCK_BYTE_RANGE 0x0C SMB_COM_UNLOCK_BYTE_RANGE 0x0D SMB_COM_CREATE_TEMPORARY 0x0E SMB_COM_CREATE_NEW 0x0F SMB_COM_CHECK_DIRECTORY 0x10 SMB_COM_PROCESS_EXIT 0x11 SMB_COM_SEEK 0x12

SMB_COM_LOCK_AND_READ 0x13 SMB_COM_WRITE_AND_UNLOCK 0x14 SMB_COM_READ_RAW 0x1A SMB_COM_READ_MPX 0x1B

SMB_COM_READ_MPX_SECONDARY 0x1C SMB_COM_WRITE_RAW 0x1D SMB_COM_WRITE_MPX 0x1E SMB_COM_WRITE_COMPLETE 0x20 SMB_COM_SET_INFORMATION2 0x22 SMB_COM_QUERY_INFORMA

TION2 0x23

SMB_COM_LOCKING_ANDX 0x24 SMB_COM_TRANSACTION 0x25

SMB_COM_TRANSACTION_SECONDARY 0x26 SMB_COM_IOCTL 0x27

SMB_COM_IOCTL_SECONDARY 0x28 SMB_COM_COPY 0x29 SMB_COM_MOVE 0x2A SMB_COM_ECHO 0x2B

SMB_COM_WRITE_AND_CLOSE 0x2C SMB_COM_OPEN_ANDX 0x2D SMB_COM_READ_ANDX 0x2E SMB_COM_WRITE_ANDX 0x2F

SMB_COM_CLOSE_AND_TREE_DISC 0x31 SMB_COM_TRANSACTION2 0x32

SMB_COM_TRANSACTION2_SECONDARY 0x33 SMB_COM_FIND_CLOSE2 0x34 SMB_COM_FIND_NOTIFY_CLOSE 0x35 SMB_COM_TREE_CONNECT 0x70 SMB_COM_TREE_DISCONNECT 0x71

TION 0x08

SMB_COM_SET_INFORMATION 0x09

.

精品文档

SMB_COM_NEGOTIATE 0x72

SMB_COM_SESSION_SETUP_ANDX 0x73 SMB_COM_LOGOFF_ANDX 0x74

SMB_COM_TREE_CONNECT_ANDX 0x75 SMB_COM_QUERY_INFORMASMB_COM_SEARCH 0x81 SMB_COM_FIND 0x82

SMB_COM_FIND_UNIQUE 0x83 SMB_COM_NT_TRANSACT 0xA0

SMB_COM_NT_TRANSACT_SECONDARY 0xA1 SMB_COM_NT_CREATE_ANDX 0xA2 SMB_COM_NT_CANCEL 0xA4 SMB_COM_OPEN_PRINT_FILE 0xC0 SMB_COM_WRITE_PRINT_FILE 0xC1 SMB_COM_CLOSE_PRINT_FILE 0xC2 SMB_COM_GET_PRINT_QUEUE 0xC3 SMB_COM_READ_BULK 0xD8 SMB_COM_WRITE_BULK 0xD9 SMB_COM_WRITE_BULK_DATA 0xDA

TION_DISK 0x80

1.2.3错误类域

服务器用来指明请求是否成功。ERRDOS (0X01) - 错误是从核心ERRHRD (0x03) ERRCMD (0xFF)

- 硬件错误

- 命令没有在“SMB”格式

通常情况下为DOS操作系统设置

0表示成功,如果不为零,这个域表示该

错误代码是什么类。错误类为以下值之一:

ERRSRV (0x02) - 错误是由服务器的网络文件管理器

1.2.4错误代码域

该域为2字节长度,表示已发生的错误的类型。的数值见下:

通常为0表示没有错误。各种错误对应

1.2.5flags域

长度为1字节,此域包含了

8个的标志。没有设置的标志客户端必须设定为

0,服

务器需要忽略该标志。编号从最低位到最高位其定义如下:

.

精品文档

0:为过时的请求保留位(LOCK_AND_READ,LOCK_AND_CLOSE);

1:保留位。(必须为0);2:保留位。(必须为0);

3:设置为1时,路径名无视大小写,设置为0时,路径名是区分大小写的。

4:保留位。(客户端必须设置为0,服务器端忽略该位);

5:为过时的请求保留位(SMB_COM_OPEN,SMB_COM_CREATE, SMB_COM_CREATE_NEW);

6:为过时的请求保留位(SMB_COM_OPEN,SMB_COM_CREATE,

SMB_COM_CREATE_NEW);

7:设置为1时,表示是服务器对客户端请求的应答,其命令域常与客户端请求的命令域相同。该域可以通过设置为

0和1明确区分是请求还是应答。

1.2.6flags2域

2字节,定义了更多的标志位。

.

精品文档

0:设置为1,表示服务器可能在响应中返回长文件名。1:设置为1,表示客户端知道扩展属性。3:保留位。

6:设置为1,任何请求的路径名为长路径名。11:设置为1,客户端知道扩展安全协商。

(KNOWS_LONG_NAMES)

(KNOWS_EAS)

2:设置为1,表示SMB需要验证。(诚信检查?)(SECURITY_SIGNATURE)

(IS_LONG_NAME)(EXT_SEC)

(DFS)

12:设置为1,SMB中的任何请求的路径名需在分布式文件系统中解决。

13:设置为1,表明如果客户端没有读权限但有执行权限,读命令被允许。这个标志只对读请求有效。

14:设置为1,返回的错误代码为

32位。否则错误类和错误域包含

SMB中都必须为1。

DOS-style错误信息。当

传输协商的NT状态代码时,该域在每个

.

精品文档

16:设置为1,表示数据包中的字符编码为码为ASCII。

UNICODE,设置为0,表示数据包中的字符编

1.2.7填充或安全签名域

通常标准的填充是

0,此栏通常设置为

0。

1.2.8TID域

TID是一个16位的数字,用来标识这个

CIFS数据包指的是什么资源

(通常为磁盘共享

或者打印机)。当数据包交换没有牵涉到某个资源时,这个域是无意义的,可以忽略的。

如果某客户端希望对某资源进行访问,则该客户端发送的为SMB_COM_TREE_CONNECT_ANDX服务器将对该资源和客户端进行验证,就会被设置为上次客户端给定的

然后发送应答表示成功。

CIFS数据包中的命令域设置在这个应答数据包中,

服务TID

。在这个包中就指定共享或者打印机的名称。然后

器可以将TID域设置为任何数字。而从那时起,如果客户端希望对该资源提出请求,

TID数字。

1.2.9PID域

PID是一个16位的数字,用来标识客户端上的哪个进程发出的

CIFS请求。服务器使用

这个数字来检查并发问题(通常是为了保证文件不会被竞争中的客户端进程所损坏)

1.2.10UID域

UID是一个16位的数字,迎来标识在客户端发出一个包含用户名和密码的CIFS请求中均使用该没有必须的权限。一个UID只为已形成的的UID。

注意:如果服务器是在共享级的安全模式下,

UID是无意义的,可以忽略。

NetBIOS会话有效。服务器和不同的用户的其他会话可能使用相同

名和密码之后会应答该请求,

CIFS请求的用户。客户端必须发送

UID。服务器在验证了用户UID。之后该客户端在未来的

UID有

CIFS数据包请求来获得服务器给定的

该应答中包含一个服务器生成的

UID。如果客户端的请求需要检查权限,服务器将验证请求的

1.2.11MID域

MID是一个16位数字,用来标识多个客户端的要求。每当客户端发送一个包,服务器就检查赋予一个新的对应的。

MID以区别以前的请求。每当服务器应答一个

CIFS数据

MID来看它是否还有没有应答的请求。如果有,它保证了新要求会被被

CIFS请求时,发送的应答包

MID相同。这样,用户就知道哪些未完成的请求与收到的应答是

中确保和相应地请求中的

1.2.12 Wordcount和Parameterwords(参数域)

Parameterwords域是一个可变

2字节为单

CIFS数据包使用这两个域来表示命令的具体参数数据。

长(需是16位的整数倍)。Wordcount域实际表明parameterwords域的长度(以

.

精品文档

位)。

每种数据包类型的

wordcount域在CIFS1.0草案中有定义。每个单独的命令都有

wordcount。

2个

wordcount定义,一个是给客户端定义的,一个是给服务器端定义的。这是必要的,因为请求和应答不一定需要相同的

1.2.13 Bytecount

表示buffer域有多少字节。

和buffer(缓冲区)

Buffer域的长度是可变的。

Bytecount

和wordcount、parameterwords的定义非常相似。

参数域和缓冲区的主要区别是存储什么类型的数据。参数域通常包含少量的数据包命令参数

选项,而缓冲区包含大量的原始数据(如共享文件中的数据)

1.3CIFS协议的安全机制

CIFS提供认证和授权这

2种安全机制,其中认证又包括共享级认证和用户级认证。

A是一个对CIFS客户端标记为网络共享可用的共享服务器(通常是一个文件夹或者打印机)。访问共享文件有两种办法:

1.3.1用户级安全

希望访问该共享的客户端必须提供用户名和密码。

(windows NT 和windows 2000)

因此也存在被监听和

用户级认证方式为不同用户提供不同的用户名,因此能提供高于共享级认证的安全性,但用户名和口令是以明文方式传送或者虽然加密也容易受到字典攻击,

破解的威胁。进一步的改进方法可以加密用户名和口令,还可以利用服务器消息块SMB(Server Message Block)的签名机制实现客户机和服务器之间的双向认证。

1.3.2共享级安全

被共享的文件本身需要一个密码来访问,确认。(windows 95和windows98)

在共享级认证方式下,

整个共享点只有一个单一的口令用于共享访问,

提供的安全保障

有限,只能用于对安全性要求不高的公共资源共享或临时资源共享等场合。

客户端访问不需要用户名,

用户的身份不需要

1.3.3加密

用户和共享级安全性中,

实际的密码是以加密格式发送到服务器的。

常用两种加密方法-应答认证,服务器

HASH

较新的NT style和老的LAN manage style,但两种加密方法均采用挑战函数生成一个字节串发送给服务器(其在的???)

就是这个地方不是很明白,在

HASH中,这个随机串扮演什么角色。我理解的是:当

而密码是经过

HASH(或者其他处理)得到

时用户注册时就将用户名明文存储在服务器中,

向客户端发送一个随机字符串并期望得到响应,客户端将用户名和随机数合并后用

HASH函数中使用的密钥就是由口令生成

.

精品文档

的长度确定的字符串存放于服务器中,这样突破服务器只知道用户名,不知道密码。但是这

个密码形成的字符串(设为m)却可以用来验证。客户端将自己的用户名和随机串合并成一个长串,密码再次经过相同的步骤形成定长字符串作为

username(用户名)

key(密码)

m是处理过的key,由key可以很容易得到客户端发送=HASHm(username||string)

服务器将该字节串和自己的计算结果比较,若二者相同则通过认证,否则认证失败。

HASH的密码使用。即如下式:

string(随机字符串)m,由m得到key很难

1.4CIFS协议的完整性

1.4.1机会锁

机会锁(数据完整性,感觉和数据库中的锁异曲同工)文件,就需要对该文件加一个机会锁,服务器。1.level II oplock 2.Exclusive oplock 3.Batch oplock

,当CIFS数据包指定打开一个

其他客户端实体就不

如果服务器将这个文件加锁后,

能再访问这个文件。这允许客户端对这个文件进行任何它想要的修改二不需要将其立即写入

1.5CIFS协议包交换流程

CIFS数据包交换流程一共分为两个部分:1.第一部分(当客户端启动与服务器建立连接时)

:一个NetBIOS会话建立、CIFS版本协商、

发送用户名和密码,这样,服务器端的一个资源被连接。2.第二部分:访问一个共享文件从中读取需要的数据。注意:客户端总是发送到服务器的时端口。此外,以下定:

1.error class/error codes :客户端发送时总为2.Flags:所有数据包均设置成3.Flags2:所有数据包均设置成

0,服务器端应答时也为

0。

0x00。(区分大小写路径)0x0001。(支持长文件名)

0.

TCP的139端口,而服务器应答给客户端自己选择的临

CIFS域可设为下面的默认值,当然也可以根据自己的具体情况进行设

4.填充和安全签名:所有数据包均设为

1.5.1包交换的第一部分——协商和参数传递

当CIFS客户端确定希望访问

CIFS服务器上的资源,交换下面的数据包。首先,NetBIOS

CIFS版本。然后客户端登

会话建立,提供可靠的传输服务。然后,客户端和服务器端协商

录到服务器,发送用户名和密码,服务器验证成功后客户端连接到所需的资源。

.

精品文档

1.5.1.1建立NetBIOS会话

包1C->S请求:

目的:建立NetBIOS会话(listen 和call)首先客户端在

139端口建立一个与服务器之间的全双工

TCP连接。完成之后,客户端通过

NetBIOS

NetBIOS会话。

建立TCP连接和发送NetBIOS会话请求数据包。会话的请求报文中包含客户端的名称,服务器的NetBIOS名称和一个整数常量表示数据包的目的是建立一个包2S->C应答:

目的:NetBIOS会话确认

如果上述会话请求数据包中包含服务器的器会发送一个简单的会话确认数据包(

NetBIOS名称,而且数据包是正确的格式,服务4字节)来表明会话建立成功或者失败。

1.5.1.2CIFS协议版本协商

包3C->S请求:

目的:CIFS协议版本协商客户端发送一个端可以解析的

CIFS请求数据包包含

SMB_COM_NEGOTIATE

命令,缓冲区中包含客户

CIFS协议版本。具体各个域的值为:

Command:SMB_COM_NEGOTIATE(0x72) TID:在这个包中被忽略PID:设置为客户端处理进程的UID:在这个包中被忽略MID:任何唯一的编号Wordcount:0 Parameterwords:无

Butecount:设置为119(可根据客户端可以解析的版本数变化)Buffer:包含119字节的版本描述包4S->C应答:

目的:CIFS协议版本协商服务器响应客户端的协商请求,为:

Command:SMB_COM_NEGOTIATE(0x72) TID:在这个包中被忽略

PID:因为是从服务器发送,被忽略UID:在这个包中被忽略

MID:匹配客户端发送的唯一的编号Wordcount:取决于选择的版本。

Parameterwords:包含选定的版本和许多服务器属性。比较重要的是户端可以发起的请求最大数)和Bytecount:可变,通常大于Buffer:通常包含一个

8

32位能力标志。

MAXMPXCOUNT(客

从客户端给定的版本中选择一个。

应答数据包中各个域的值

ID

8字节的随机字符串,在以后的数据包中,客户端用来加密。

.

精品文档

1.5.1.3用户登录

包5C->S请求:目的:用户登录

客户端发送CIFS数据包,包含用户名和密码,以获得一个Command:SMB_SESSION_SETUP_ANDX(0x73) TID:在这个包中北忽略PID:设置为客户端处理进程的UID:在这个包中被忽略MID:任何唯一的编号Wordcount:12

Parameterwords:列出了客户端的功能。也包含了要在下面缓冲区中提供的密码的大小。Bytecount:可变值,下面的缓冲区包含加密的用户名、密码、操作系统的名称和Manager。Bytecount的值取决于这些尸体的字符串的大小Buffer:包含用户名、密码、操作系统的名称等。包6S->C应答:目的:返回给客户端

UID或者返回错误,如果验证不成功的话。

一旦服务器受到加密的用户名和密码,检查后如果是正确的,发送应答数据包,包中包含UID。如果结果是错误的,这个响应将返回错误类,并设置响应的错误代码。数据包的各个域的值如下:

Command:SMB_COM_SESSION_SETUP_ANDX(0x73) TID:在这个包中被忽略

PID:因为是从服务器发送,被忽略

UID:16位数字,是该服务器分配给客户端的用户身份MID:匹配客户端发送的唯一的编号Wordcount:3

Parameterwords:没有和正常操作有关的内容

Bytecount:可变值,下面的缓冲区包含说明服务器操作系统和Buffer:包含表示服务器操作系统和

LAN Manager类型

LAN Manager类型的字符串

ID

LAN

ID

UID。这个数据包也要转发客户

数据包各个域的值如下:

端功能给服务器,所以即使使用共享级安全也必须发送这个数据包。

1.5.1.4连接特定资源

包7C->S请求:目的:连接到特定资源

客户端已被认证,可以连接到世界的共享文件。共享文件。共享名为

在这个数据包中,客户端指定它希望访问的

UNC格式。数据包中各个域的值如下:

Command:SMB_COM_TREE_CONNECT_ANDX(0x75) TID:在这个包中被忽略PID:设置为客户端处理进程的UID:为包6中服务器发送的MID:任何唯一的编号Wordcount:4

ID UID

.

精品文档

Parameterwords:没有与正常操作有关的内容Bytecount:可变值,取决于一下要求的Buffer:包含客户端希望访问的共享的名称包8S->C应答:

目的:返回TID或者错误,如果共享名称不存在如果共享名称存在,也拥有访问权限,在或者用户不具有访问权限,

则服务器返回一个成功的响应和

TID。如果共享不存如果这个数据包是一个

服务器返回相应地错误类和错误代码。

UNC字符串的大小

表示成功的响应,则客户端可以访问既定的共享文件了。数据包。数据包中各个域的值如下:

Command:SMB_COM_SESSION_SETUP_ANDX(0x73) TID:16位数字代表服务器分配给指定共享资源的PID:因为是从服务器发送,被忽略

UID:16位数字,是该服务器分配给客户端的用户身份MID:匹配客户端发送的唯一的编号Wordcount:3

Parameterwords:没有与正常操作有关的内容Bytecount:可变值,取决于下面的缓冲区Buffer:包含本地文件系统和设备类型的字符串

TID

这是客户端和服务器交换的最后的

ID

1.5.2包交换的第二部分——数据交换

以打开和读取文件数据为例。

1.5.2.1属性、操作等参数传递

包1C->S请求:目的:打开一个文件数据包中各个域的值如下:

Command:SMB_COM_OPEN_ANDX(0x2D) TID:上面服务器应答给定的

TID

ID

UID

PID:设置为处理客户端处理进程的MID:任何唯一的编号Wordcount:15

Parameterwords:指定模式(读、写或者读写)和共享模式(无、读、写)等许多开放的选择

Bytecount:可变值,依赖于文件名的字符串Buffer:包含要打开的文件的名称包2S->C应答:目的:显示文件的应包,其中包含

ID,或者如果有问题则返回错误代码

UID指定的用户有权访问该文件,则发送一个响

FID以便以后对该文件的访问。如果条件不满足,服务器返回相应地错误

服务器检查,如果请求的文件名存在,且

UID:设置为服务器返回的表示客户端的

.

类和错误代码。数据包中各个域的值如下:Command:SMB_COM_OPEN_ANDX(0x2D) TID:16位数字代表服务器分配给指定共享资源的TID

PID:因为是从服务器发送,被忽略

UID:16位数字,是该服务器分配给客户端的用户身份ID MID:匹配客户端发送的唯一的编号Wordcount:15

Parameterwords:表明要发生动作的类型的许多标志和非常重要的16位FID

Bytecount:0 Buffer:没有数据

1.5.2.2数据交换

包3C->S请求:目的:从文件中读取数据包中各个域的值如下:

Command:SMB_COM_READ_ANDX(0x2E) TID:16位数字代表服务器分配给指定共享资源的TID

PID:设置为客户端处理进程的ID

UID:16位数字,是该服务器分配给客户端的用户身份

ID

MID:任何唯一的编号Wordcount:10

Parameterwords:包含FID使得服务器端知道客户端要打开那一个文件。还包含一个文件编译和16位计数值,用来决定有多少文件数据返回Bytecount:0 Buffer:没有数据包4S->C应答:目的:返回文件中的数据数据包中各个域的值如下:

Command:SMB_COM_READ_ANDX(0x2E) TID:16位数字代表服务器分配给指定共享资源的TID

PID:因为是从服务器发送,被忽略

UID:16位数字,是该服务器分配给客户端的用户身份ID MID:匹配客户端发送的唯一的编号Wordcount:12

Parameterwords:表明实际读的数据的长度(???)Bytecount:可变值

Buffer:客户端所要求的文件数据

.

精品文档

32位

精品文档

2、NetBIOS协议

2.1NetBIOS协议概述

NetBIOS协议是由IBM公司开发,主要用于数十台计算机的小型局域网。是一种在局域网上的程序可以使用的应用程序编程接口(

NetBIOS协议

API),为程序提供了请求低级服

几乎所有的局域网都

务的统一的命令集,作用是为了给局域网提供网络以及其他特殊功能,是在NetBIOS协议的基础上工作的。

2.2 NetBIOS名称服务

2.2.1NetBIOS名称:

NetBIOS具备的名称解析概念和能力,其使用的名称解析方式和TCP/IP标准解析方式不同。如果经过NetBIOS名称解析并获得相应地IP地址后,NetBIOS会话就可以建立普通的TCP连接了。

NetBIOS的名字解析是动态的。

计算机必须先注册自己的名称然后才能解析该名称。

NetBIOS只能使用于小范围的局域网。

然动态解析很方便,但由于其复杂性和低效性,使得

2.2.2NetBIOS 名称属性与格式:

1.已注册的NetBIOS名称唯一指代一台工作站或者组名;2.和IP地址类比,NetBIOS名称没有分层格式,即没有3.NetBIOS名称必须包含之一;

“点”(“.字符)”;

@#$%^&( ) - ' {} . ~

字符

A-Z、a-z、0-9范围之内的字符,或者

4.NetBIOS命名允许16个字母用在NetBIOS名称中。而微软只允许安装的功能,登记的设备和服务。

15个字母用在NetBIOS

软件中,区别

名称中,第十六个为NetBIOS后缀。NetBIOS后缀用在Microsoft Networking

2.2.3NetBIOS名称解析方式:

.

精品文档

1.本地广播。可以通过广播某设备的称);

2.缓冲。每个支持

NetBIOS名称查找对应的IP地址,也可通过广播注册

NetBIOS名

自己的NetBIOS名称。(通过广播本设备的名称向其他设备宣告自己使用了这个

NetBIOS的计算机中维护一个

NetBIOS名称和对应IP地址的列表;

3.NetBIOS名称服务器(NBNS);4.预定义文件lmhosts;5.DNS和hosts文件配合识别。

2.2.4NetBIOS名称识别策略:

1.B-node:通过广播方式来进行注册和识别于UDP进行广播。适用于小网络;

2.P-node:使用NetBIOS名称服务器进行名称注册登记和名称识别;3.M-node:综合使用广播和NBNS服务器。首先通过广播方式失败后再使用P-node方式查询;

B-node广播方式进行名称识别过程,

NetBIOS名称。对IP协议上的NetBIOS需要基

4.H-node:首先查找NBNS服务器,然后再使用广播方式查询。windows实际使用的是对标准的内容,然后再查看

H-node方式的扩展。windows系列的计算机首先检查缓存中

WINS),之后

WINS服务器(Miscrosoft实现的NBNS名字服务器为

进行广播,然后将查找lmhosts文件,以及通过hosts和DNS进行查找。实际进行的NetBIOS识别是非常复杂的过程。

2.2.5NetBIOS名称管理:

名称注册:NetBIOS启动时,计算机向整个网络声明占用一个已被占用,返回错误信息。两种方法:向网络广播、向名称更新:每个名称都有个生存期请求更新,刷新服务器上的名称解析:通过广播或查询

TTL,当经历了这个

TTL设置。

NBNS服务器来解析,也可通过

lmhosts和DNS辅助解析。

NetBIOS名称。当

NetBIOS名称,如果该名称

NetBIOS名称服务器登记。TTL的一半时间,客户会向服务器

名称删除:在系统关机或者提供的工作站服务结束时,会删除其占用的名称的TTL超时时也会删除这个名称。

2.3NetBIOS会话服务:

2.3.1概述

NetBIOS会话服务提供给用户程序一种面向连接的可靠的完全双长的信息服务。个是客户端程序,一个是服务器端程序。

每个会话数据包仅在数据前加一个表示数据大小的头部。

CIFS的使用NetBIOS会话服务来发送和接收上层命令,其中包括文件共享和远程打印等。因此CIFS通信的第一步是客户端和服务器之间建立一个

NetBIOS会话。

要求一

.

精品文档

2.3.2NetBIOS会话原语:

1.listen 2.call 3.hang up 4.send 5.recieve 6session status

2.4NetBIOS的数据报服务:

NetBIOS数据报是无连接的非可靠的。其数据包的头包含报的发送者的和是否使用UDP发送。

.

NetBIOS名称

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务