[clearfix]
1. 개요
Network Basic Input/Output SystemNetBIOS는 1983년 IBM의 LAN 시스템인 IBM PC Network에서 네임 서비스, 세션 서비스, 데이터그램 서비스를 구현하기 위해 미국 Systek사에서 개발한 네트워크 API 규격이다. BIOS라는 이름이 붙어 있으나, PC의 바이오스와는 별 관련이 없다.
현대(2000년대 이후)에 와서 NetBIOS라고 하면 일반적으로 마이크로소프트 Windows NT에서 주로 사용되는 NetBIOS over TCP/IP(NetBT)를 가리킨다.
2. 상세
21세기인 지금은 LAN이라고 하면 당연히 RJ-45 커넥터의 UTP 케이블을 쓴 IEEE 802.3 이더넷위에서 TCP/IP를, 더 나아가 그 위에서 DNS를 사용하는 것이라고 생각하지만, 이렇게 규격이 통일된 것은 비교적 최근의 일이다. 90년대까지만 해도 계층 무관 서로 호환도 안 되는 수많은 통신 규격이 난립하였는데, NetBIOS 또한 그 시대의 산물이다.당시 IBM에서는 Systek사에 IBM PC에 연결하여 사용할 수 있는 랜카드 개발을 의뢰하였는데, 이 과정에서 만들어진 일종의 네트워크 API가 NetBIOS이다. 정확히 말하자면 IBM과 Systek에서는 IBM PC Network의 네트워크 인터페이스 규격뿐만이 아니라 이것을 구현하기 위해 LAN카드의 ROM에 적재된 마이크로코드까지 전부 NetBIOS라고 불렀고, NetBIOS에 " BIOS"라는 이름이 붙은 이유도 이것 때문이다.
IBM이라는 뒷배를 업고 화려하게 등장한 NetBIOS는 이후 90년대까지 꽤 인기를 끌었으며, NetBIOS를 다른 통신 프로토콜 위에서도 쓸 수 있도록 NetBIOS over IPX/SPX, NetBIOS over TCP/IP[1] 등의 다양한 구현체가 등장하였다. 이 중 이더넷의 프레임 위에서 NetBIOS를 이용할 수 있도록 마이크로소프트에서 개발한 프로토콜인 NBF[2]는 초기 OS/2와 Windows에서 널리 사용되었다. 하지만 NBF는 설계상 라우팅이 불가능하여, 대규모 네트워크로 확장하기에는 부적합한 시스템이었다. 때문에 마이크로소프트는 Windows NT 3.5에서 TCP/IP를 도입하며, 기존 NetBIOS 프로그램들과의 호환성을 유지할 수 있도록 NetBIOS over TCP/IP(NetBT)를 채용하게 된다.
이후 세월이 흐르면서 마이크로소프트 역시 새로운 프로그램을 개발할 때 NetBT를 사용하는 대신 TCP/IP 소켓을 쓰게 되었고, NetBIOS의 사용빈도는 계속해서 줄어들었다. NBF 지원은 이미 Windows Vista 시절에 삭제되었고, SMBv2부터는 NetBT 대신 TCP/IP를 기본으로 사용한다. NetBT 서비스 대부분은 Windows 11까지도 남아 있기는 하지만 기본적으로 비활성화되어 있으며 사용이 권장되지 않는다.
3. 기능
3.1. NetBIOS 네임 서비스
NetBIOS Name Service네트워크 주소가 아니라 NetBIOS 호스트 이름을 이용해 컴퓨터와 통신할 수 있게 해 주는 서비스. TCP/IP에서 DNS의 역할과 비슷하지만, 확장성 면에서 DNS에 비할 바는 못 된다.
마이크로소프트가 NetBT상에서 NetBIOS 네임 서비스를 구현한 것이 WINS(Windows Internet Name Service)이다. 이것도 윈도우 제어판의 네트워크 설정에 흔적기관처럼 남아 있다.
윈도우에 마지막까지 영향력을 끼치고 있는 NetBIOS의 유산 중 하나가 바로 윈도우의 컴퓨터 이름이다. 컴퓨터 이름을 정할 때 대소문자, 숫자, 하이픈(-)으로 최대 15글자(
DESKTOP-1234567
처럼)까지만 입력할 수 있는 이유가, 이게 사실 NetBIOS 네임 서비스 상의 호스트 이름이기 때문이다. WINS 지원은 레거시의 Windows는 물론, 흔히들 레거시의 무덤이라고 부르는
macOS에도 아직 남아 있다.[3]