안녕하세요, 오늘은 Windows 의 네트워크 이름과 밀접한 관계에 있는 NetBIOS 대해 알아보도록 하겠습니다. 

 

NetBIOS 란?

일반적으로 TCP / IP 네트워크에서 사용하는 기기에 고유한 "IP 주소"를 부여하면 서로 문제없이 통신을 할 수 있습니다. TCP / IP 네트워크에서는 IP 주소만 있으면 이름이 부여되지 않아도 서로 통신을 할 수 있기 때문입니다. 하지만 Windows OS의 경우는 차이점이 있습니다. Windows 네트워크에서는 "NetBIOS (Network BIOS)"라는 기술이 사용되고 있으며, IP 주소보다 "컴퓨터 이름 (정확하게는 NetBIOS 이름)"이 중요한 역할을 하고 있습니다.

 

NetBIOS는 네트워크 통신을 위한 아주 기본적인 명령어 세트입니다. 일반적으로 Windows PC는 시스템 부팅 후 기본 입출력장치 (디스플레이 및 키보드, 직렬 / 병렬 통신 포트 등의 통신)을 실시하는 「BIOS (Basic Input Output System) '라는 기능이 포함 되어있습니다. BIOS 와 유사한 네트워크용으로 제공되는 것이 " NetBIOS "라는 시스템 API 구성입니다. 구현이 시작된 초기에는 확장 된 네트워크 카드의 ROM에 구현되어 있었습니다. 네트워크 인터페이스 및 NetBIOS를 이용하면 동일한 네트워크에 연결된 여러 대의 컴퓨터 간에 매우 기본적인 통신을 할 수 있습니다. 구체적으로는 아래와 같은 작업이 가능합니다.

 

기 능

내 용

NetBIOS 이름 등록 / 해제

네트워크에 NetBIOS 이름을 등록하여 네트워크에 참가를 표명한다. 다음에 진행되는 통신이 NetBIOS 이름으로 서로를 식별하게 된다해제 시 NetBIOS 이름을 삭제하고 네트워크에서 이탈한다.

세션 서비스

"세션 지향" 의 통신 서비스를 제공한다. 세션 지향은 먼저 두 컴퓨터 사이에서 통신을 확립하고 서로 통신이 가능한 방식. 전화처럼 먼저 전화 해 상대에 연결하고 통신하는 형태의 서비스. 일대일 통신이 가능하다.

데이터 그램 서비스

"데이터 그램 지향" 의 통신 서비스를 제공한다. 데이터 그램 지향은 상대에 대한 데이터를 일방적으로 보내 버리는 전송에 해당한다. 상대로부터의 응답 확인은 하지 않으며, 응답이 필요하다면 데이터 그램 서비스에서 반환한다. 동시에 여러 상대에게도 통지 할 수 있으므로, 일대일 통신뿐만 아니라 일대 다 통신을 실현할 수 있다.

 

NetBIOS 통신

NetBIOS를 사용한 통신은 아래와 같이 진행된다.

 

1. 시스템 시작 시 NetBIOS 이름 등록 기능을 사용하여 네트워크에 참여합니다.
2. NetBIOS 이름을 사용하여 통신 상대를 식별하고 통신 패킷을 보내는 작업을 반복합니다.
3. 시스템 종료 시 NetBIOS 이름 등록을 삭제하고 네트워크에서 이탈합니다.

 

무엇보다 네트워크에 가입해도 어딘가에 중앙 집중적인 네트워크 관리 서버가 있는 것은 아니며, 간단한 구조로 작동되고 있습니다. 컴퓨터가 자신의 이름을 브로드 캐스트(네트워크상의  모든 컴퓨터에 대한 통보를 진행)를 선언하고 (예를 들면 PC001 - PC002 등), 그에 대한 이의 충돌의 보고가 없으면 그 이름을 계속 사용한다는 의미이다. 통신하려면 상대의 NetBIOS 이름을 지정하여 데이터를 전송하고 네트워크의 컴퓨터는 자신의 NetBIOS 이름의 패킷이라면 수신한다는 방식으로 통신한다. NetBIOS 통신 방법에 대한 자세한 내용은 아래 링크 사이트를 참조 하시기 바랍니다.

 

The NetBIOS Interface (영문 MSDN 사이트)


Windows OS 에서 컴퓨터 이름 요구사항

현재는 순수한 NetBIOS 인터페이스는 더 이상 사용되지 않지만 이전 버전의 Windows 네트워크가 NetBIOS 기능을 이용하여 구현되었습니다. Windows OS의 내부에서는 NetBIOS 이름을 그대로 "컴퓨터 이름"으로 사용하고 있었습니다. 그 결과 NetBIOS 이름에 대한 제약이 그대로 Windows OS의 컴퓨터 이름 등에 대한 제약이 현재에도 제한적인 사항입니다. 구체적으로 아래와 같은 제약이 있습니다.

 

1. 컴퓨터 이름은 최대 15자 까지만 사용이 가능합니다.
2. 네트워크에서 고유한 문자이어야 합니다.

 

이름은 최대 15 자까지 가능합니다.

Windows OS 설치 과정에서 컴퓨터 이름을 지정하게 됩니다. 보통 User 이니 Admin 또는 자신의 이름을 부여하게 되며, 이름을 지정하지 않으면 설치가 더 이상 진행이 되지 않습니다. 이름의 규칙은 영문 숫자 및 기호 등을 포함하여 "최대 15 자 (15bytes)" 까지만 허용이 되고 있습니다. 한글도 사용이 가능하지만 (한국어를 적절히 처리하지 못하는 네트워크 도구가 있기 때문에 한국어로 이름을 사용하지 않는 것을 권장하고 있습니다) 한글 하나의 문자가, 알파벳 두 글자로 환산이 되기 때문에 이름 설정에 주의를 하셔야 합니다. 

 

네트워크에서 고유한 문자이어야 합니다.

컴퓨터 이름은 동일한 네트워크에서 고유한 문자라는 제한이 있습니다. 이 부분도 NetBIOS의 중요한 제한 사항입니다. (여기서 말하는 동일 네트워크란 간단하게 말하면 내부에서 네트워크가 가능한 상태를 말합니다. 예를 들어 공유기를 사용하여 하나의 내부 네트워크에 존재 한다는 의미입니다) 만약 OS에서 중복되는 이름을 넣으려고 시도하면, OS에 따라 다른 부분도 있지만 네트워크가 비활성화 되거나 파일공유 기능을 사용할 수 없습니다.

 

최근에 출시되는 Windows OS에서는 지정된 이름을 그대로 사용할 수 있기도 합니다. 하지만 이름을 그대로 설정을 하면, 동일한 이름을 가진 여러 대의 컴퓨터가 같은 네트워크 상에 존재하기 때문에 원격 서버를 이름으로 지정하여도 연결할 수 없는 상태가 됩니다. 동일 네트워크상의 여러 컴퓨터가 같은 이름(동일한 NetBIOS 이름)을 가지고 NetBIOS 이름에 의한 검색이 작동하지 않을 수 있습니다. 따라서 Windows 네트워크에서는 영문 기준 최대 15 자 각각의 컴퓨터에 다른 이름을 붙이는 것을 원칙으로 합니다.

 

감사합니다.

+ Recent posts