7-1. NetBIOS란?

NetBIOS 이름은 NetBIOS Interface를 사용하는 시스템 환경에서 NetBIOS 자원을 식별하는 데 사용된다.
NetBIOS 이름을 사용하는 대표적인 예는 Win-dows NT에서 네트워크상의 개별 서버 이름이다.
Windows NT 시스템은 사용자가 지정한 서버 이름에 서버를 의미하는 식별자20(hex)를 붙여서 이를 고유 이름으로 등록한다.
이외에도 Workstation 서비스 등의 다른 네트워크 서비스들도 모두 NetBIOS 이름을 사용한다.
앞 장에서도 설명했지만, 일반적으로 우리가 많이 보아온 이름 체계는 http://www"라고 시작하는 URI를 사용한 것일 것이다.
하지만 NetBIOS는 UNC에서 사용하는 것이며 "\\computer1\shares" 로 표현된다.
일반적으로 NetBIOS는 NetBEUI와 호환해서 사용하지만 Microsoft TCP/IP를 설치하면 NetBIOS over TCP/IP가 추가된다.
참고로 말하자면 Windows 2000서부터는 NetBEUI를 사용하지 않고 TCP/IP 프로토콜 하나만 사용한다고 한다.

<NetBIOS Unique Names>
등록된 NetBIOS 이름 설명
\\computer<00> 워크스테이션 서비스에 대한 이름
\\computer<03> 메신저 서비스에 대한 이름
\\domain name<1B> 도메인 마스터 브라우저에 대한 이름
\\computer<06> RAS 서버 서비스를 나타낸다.
\\computer<20> 서버 서비스를 나타내는 이름
\\computer<21> 해당 호스트가RAS클라이언트임을 표시
\\computer<BE> 시스템에 설치된 Network MonitorAgent를 표시
\\computer<BF> Network Monitor Utility를 나타낸다.

위의 표에서 port 번호가 <00>, <03>, <20> 인 NetBIOS 이름은 기억하도록 하자.
더 자세한 내용은 Windows NT Server Resource Kit나 다른 문서를 참조하시기 바람.


7-2. NetBIOS 이름 풀기

* 표준 분해 방법
1) 브로드캐스트를 이용한 NetBIOS 이름 풀기
2) NBNS (NetBIOS Name Server)를 이용한 이름 풀기

* Microsoft 분해 방법
1) LMHOST 파일을 이용한 NetBIOS 이름 풀기
2) HOSTS 파일을 이용한 NetBIOS 이름 풀기
3) DNS 파일을 이용한 NetBIOS 이름 풀기

Windows NT 4.0 이후 버전은 위와 같은 방법을 이용해서 이름을 풀 수가 있다.
이들 중 하나가 실패하면 다른 방법을 이용해서 이름 풀기를 시도하는데,
이름 풀기 방식은 아래와 같이 NetBIOS node에 따라 달라진다.

* B node - 브로드캐스트에 의존한다. 적용범위가 로컬로 한정.
* P node - WINS와 같은 특정 Name Server를 이용해서 이름을 푼다.
* M node - B node 후 실패하면 P node로.......
* H node - P node 후 실패하면 B node로.......
그럼, 실제 NetBIOS 이름을 풀어가는 과정을 알아보도록 한다.

위의 그림에서 Domain이라는 로컬그룹 내에 com1과 com2라는 호스트가 존재한다는 것을 알 수 있다.
com1이 shares라는 폴더를 공유하고 있고, com2가 com1의 shares 폴더를 찾아가고자 한다.
1) com2가 net use X:\\com1\shares라고 입력을 하고 이름 풀기 요청을 한다.
2) 데이터가 Application 계층에 있는 NetBIOS를 통과하고자 한다.
3) NetBIOS Name Cache를 검색한다. 결과가 없다면...
4) P node로 가서 NS(name server) 검색.. 결과가 없다면...
5) B node로 가서 전체 호스트들에게 브로드캐스팅을 한다. 응답이 없다면..
6) LMHOSTS에서 검색... com1의 주소가 기록되어 있지 않다면...
7) winsock을 이용.... NO....
8) Hostfile을 검색한다. (203.224.29.61) 그래도 모르겠다...
9) DNS 이용...그래도 몰라요...
10) 마지막 단계.. 에라이 모르겠다.Error창이 브라우저에 뜨게 된다

만약 각 단계에서 com1의 IP Address를 찾는다면 별 문제없이 공유를 할 수 있을 것이다.