赞
踩
NetBIOS,Network Basic Input/Output System的缩写,一般指用于局域网通信的一套API,相关RFC文档包括 RFC 1001, RFC 1002. RFC 1001主要对NetBIOS及相关协议和服务进行解释说明,RFC 1002给出了相关协议和服务的数据组包格式。
NetBIOS提供三种软件服务:
文主要描述最常见的NBNS
.
NBNS是NetBIOS name service的缩写,是NetBIOS的命名服务,用于将NetBIOS名称映射到IP地址上,是NetBIOS-over-TCP(NBT)协议族的一份子。NBNS是动态DNS的一种,Microsoft的NBNS实现称为WINS
。路由器可以通过发送NBNS状态请求以获取设备名,windows PC 接收到后通过WINS或将本地缓存发送命名信息给路由器。
NBNS的数据报文格式在RFC 1002 Ch4.2中定义,包含以下信息
- > 4.2.1 GENERAL FORMAT OF NAME SERVICE PACKETS
- > 4.2.1.1 HEADER
- > 4.2.1.2 QUESTION SECTION
- > 4.2.1.3 RESOURCE RECORD
- > 4.2.2 NAME REGISTRATION REQUEST
- 4.2.3 NAME OVERWRITE REQUEST & DEMAND
- 4.2.4 NAME REFRESH REQUEST
- > 4.2.5 POSITIVE NAME REGISTRATION RESPONSE
- 4.2.6 NEGATIVE NAME REGISTRATION RESPONSE
- 4.2.7 END-NODE CHALLENGE REGISTRATION RESPONSE
- 4.2.8 NAME CONFLICT DEMAND
- 4.2.9 NAME RELEASE REQUEST & DEMAND
- 4.2.10 POSITIVE NAME RELEASE RESPONSE
- 4.2.11 NEGATIVE NAME RELEASE RESPONSE
- 4.2.12 NAME QUERY REQUEST
- 4.2.13 POSITIVE NAME QUERY RESPONSE
- 4.2.14 NEGATIVE NAME QUERY RESPONSE
- 4.2.15 REDIRECT NAME QUERY RESPONSE
- 4.2.16 WAIT FOR ACKNOWLEDGEMENT (WACK) RESPONSE
- > 4.2.17 NODE STATUS REQUEST
- > 4.2.18 NODE STATUS RESPONSE
本文主要介绍列表中>
开头的部分。
NetBIOS数据包的通用格式如下:
- 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | |
- + ------ ------- +
- | HEADER |
- + ------ ------- +
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | |
- / QUESTION ENTRIES /
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | |
- / ANSWER RESOURCE RECORDS /
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | |
- / AUTHORITY RESOURCE RECORDS /
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | |
- / ADDITIONAL RESOURCE RECORDS /
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
下面先来看HEADER
信息。
- 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | NAME_TRN_ID | OPCODE | NM_FLAGS | RCODE |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | QDCOUNT | ANCOUNT |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | NSCOUNT | ARCOUNT |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
关于OPCODE,如下表所示:
- 0 1 2 3 4
- +---+---+---+---+---+
- | R | OPCODE |
- +---+---+---+---+---+
关于NM_FLAGS, 如下表所示:
- 0 1 2 3 4 5 6
- +---+---+---+---+---+---+---+
- |AA |TC |RD |RA | 0 | 0 | B |
- +---+---+---+---+---+---+---+
RA
与RD
的原文解释如下:
RA
3 Recursion Available Flag. Only valid in responses from a NetBIOS Name Server -- must be zero in all other responses. If one (1) then the NBNS supports recursive query, registration, and release. If zero (0) then the end-node must iterate for query and challenge for registration.RD
6 Recursion Desired Flag. May only be set on a request to a NetBIOS Name Server. The NBNS will copy its state into the response packet. If one (1) the NBNS will iterate on the query, registration, or release.
大致意思是,对于请求、注册和释放,包含递归发送和迭代发送两种方式。RA
为1说明支持递归,为0说明只能迭代,表征的是一种能力;RD
则是说明具体以什么方式发送,如果为1则代表迭代,表征的是一个具体动作,这个值在响应包中会从请求包中复制得到。
NBNS的请求数据段格式如下:
- 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | |
- / QUESTION_NAME /
- / /
- | |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | QUESTION_TYPE | QUESTION_CLASS |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。