넷웨어 코어 프로토콜

넷웨어 코어 프로토콜(NetWare Core Protocol, NCP)은 노벨의 일부 제품에서 사용되는 네트워크 프로토콜이다. 이 프로토콜은 주로 노벨 네트웨어 클라이언트-서버 운영 체제와 연관되어 있으며, 원래는 주로 MS-DOS 클라이언트 스테이션을 지원했지만, 나중에 마이크로소프트 윈도우, 맥 OS의 역사, 리눅스, 윈도우 NT, Mac OS X, 다양한 유닉스 플랫폼에 대한 지원이 추가되었다.

NCP는 파일, 인쇄, 디렉토리, 클럭 동기화, 메시징, 원격 명령 실행 및 기타 네트워크 서비스 기능에 접근하는 데 사용된다. 원래는 IPX/SPX 프로토콜 스택의 쉬운 네트워크 구성과 작은 메모리 공간을 활용했다. 1991년부터 TCP/IP 구현이 가능해졌다., page 6

노벨 eDirectory는 디렉토리 서비스 트리 내 서버 간의 데이터 변경을 동기화하는 데 NCP를 사용한다.

 기술 정보 

원래 IPX/SPX 서버 구현은 노벨 네트웨어 플랫폼에서만 제공되었으며 현재는 구식이다. TCP/IP 구현은 TCP/UDP 포트 524를 사용하며 이름 해결을 위해 SLP에 의존한다.

IPX/SPX 네트워크에서 NCP 작동을 위해 IPX 프로토콜이 패킷 유형 필드를 17로 설정하여 사용되었다. 워크스테이션(클라이언트 스테이션) 측에서는 IPX 소켓 번호 0x4003이 사용되었고, 서버 측에서는 소켓 번호 0x0451이 사용되었다.

NCP PDU는 다음과 같은 구조를 가진다:

 옥텟  필드 2  NCP 유형 1  시퀀스 번호 1  연결 번호, 하위 옥텟 1  작업 번호 1  연결 번호, 상위 옥텟 1  완료 코드 (응답 패킷에만 해당) 1  연결 상태 (응답 패킷에만 해당) var  데이터

NCP 유형 필드는 작업 유형을 결정한다:

 값  의미 0x1111  서비스 연결 생성 0x2222  서비스 요청 0x3333  서비스 응답 0x5555  서비스 연결 파괴 0x7777  버스트 모드 전송 0x9999  요청 처리 중 (서버 사용 중)

개별 요청은 시퀀스 번호(모듈로 256)로 식별된다. 연결 번호는 서버의 개별 클라이언트 스테이션 연결을 식별한다. 버전 2.x까지의 노벨 네트웨어 서버는 최대 255개의 연결을 지원했으며 연결 번호는 1옥텟만 차지했다. 나중에는 2옥텟으로 확장되었다. 작업 번호는 요청에서 3, 응답에서 1이다. 데이터 필드는 개별 서비스를 구별하는 NCP 함수 번호 옥텟으로 시작한다.

 번호  기능 0  사용자 객체 로그인 1  사용자 암호 변경 2  사용자-스테이션 세트 매핑 3  객체-번호 매핑 4  번호-객체 매핑 5  스테이션의 로그인 정보 가져오기 8  번호-그룹 이름 매핑 9  그룹 G의 멤버 세트 M 가져오기 10  로그인 영역 진입 12  네트워크 일련 번호 확인 13  네트워크 메시지 기록 14  디스크 사용률 가져오기 15  파일 정보 검색 16  파일 정보 설정 17  파일 서버 정보 가져오기 18  네트워크 일련 번호 가져오기 19  인터넷 주소 가져오기 20  객체 로그인 21  객체 연결 목록 가져오기 22  스테이션의 로그인 정보 가져오기 23  암호화 키 가져오기 24  객체 암호화 로그인 31  객체에서 연결 목록 가져오기 50  바인딩리 객체 생성 51  바인딩리 객체 삭제 52  객체 이름 변경 53  바인딩리 객체 ID 가져오기 54  바인딩리 객체 이름 가져오기 55  바인딩리 객체 검색 56  바인딩리 객체 보안 변경 57  속성 생성 58  속성 삭제 59  바인딩리 속성 보안 변경 60  속성 검색 61  속성 값 읽기 62  속성 값 쓰기 63  바인딩리 객체 암호 확인 64  바인딩리 객체 암호 변경 65  세트에 바인딩리 객체 추가 66  세트에서 바인딩리 객체 삭제 67  바인딩리 객체가 세트에 있는지 확인 68  바인딩리 닫기 69  바인딩리 열기 70  바인딩리 접근 수준 가져오기 71  바인딩리 객체 트러스티 경로 검색 72  바인딩리 객체 접근 수준 가져오기 73  호출 스테이션이 관리자인지 확인 74  바인딩리 객체 암호 암호화 확인 75  바인딩리 객체 암호 암호화 변경 76  객체 관계 목록 100  큐 생성 101  큐 파괴 102  큐 현재 상태 읽기 103  큐 현재 상태 설정 104  큐 작업 및 파일 생성 105  파일 닫기 및 큐 작업 시작 106  큐에서 작업 제거 107  큐 작업 목록 가져오기 108  큐 작업 항목 읽기 109  큐 작업 항목 변경 110  큐 작업 위치 변경 111  큐 서버를 큐에 연결 112  큐에서 큐 서버 분리 113  큐 작업 서비스 114  큐 작업 서비스 완료 115  큐 작업 서비스 중단 116  클라이언트 권한으로 변경 117  큐 서버 권한 복원 118  큐 서버 현재 상태 읽기 119  큐 서버 현재 상태 설정 120  큐 작업 크기 가져오기 150  현재 계정 상태 가져오기 151  계정 요금 제출 152  계정 보류 제출 153  계정 메모 제출 200  콘솔 권한 확인 201  파일 서버 설명 문자열 가져오기 202  파일 서버 날짜 및 시간 설정 203  파일 서버 로그인 비활성화 204  파일 서버 로그인 활성화 205  파일 서버 로그인 상태 가져오기 206  지워진 모든 파일 제거 207  트랜잭션 추적 비활성화 208  트랜잭션 추적 활성화 209  콘솔 브로드캐스트 설정 210  연결 번호 지우기 211  파일 서버 다운 212  파일 시스템 통계 가져오기 213  TTS 통계 가져오기 214  디스크 캐시 통계 가져오기 215  드라이브 매핑 테이블 가져오기 216  물리적 디스크 통계 가져오기 217  디스크 채널 통계 가져오기 218  연결 작업 정보 가져오기 219  연결 열린 파일 가져오기 220  파일을 사용하는 연결 가져오기 221  연결 및 파일별 물리적 레코드 잠금 가져오기 222  파일별 물리적 레코드 잠금 가져오기 223  연결별 논리적 레코드 가져오기 224  논리적 레코드 정보 가져오기 225  연결 세마포어 가져오기 226  세마포어 정보 가져오기 227  LAN 드라이버 구성 정보 가져오기 229  연결 사용 통계 가져오기 230  객체의 남은 디스크 공간 가져오기 231  파일 서버 LAN I/O 통계 가져오기 232  파일 서버 기타 정보 가져오기 233  볼륨 정보 가져오기

데이터 필드의 나머지 내용과 길이는 NCP 함수에 따라 달라진다.

 클라이언트 측 구현 
 노벨의 Windows Vista용 Novell 클라이언트.
 노벨의 Windows 2000/XP/2003용 Novell 클라이언트.
 노벨의 Windows 95/98용 Novell 클라이언트.
 노벨의 리눅스용 Novell 클라이언트.
 노벨의 DOS용 NetWare 클라이언트  - 더 이상 지원되지 않는다.
 프로소프트 엔지니어링의 Mac OS X용 NetWare 클라이언트.
 리눅스용 오픈 소스 NCP 클라이언트 구현인 ncpfs.
 마이크로소프트의 NetWare용 클라이언트 서비스.

 각주 

 외부 링크 
 NCP 사양 (기본 Netware RPC 프레임워크 설명 없음)
 Wireshark (오픈 소스 프로토콜 분석기) 문서 - NCP 패킷 필드
 Mac OS X를 Novell과 잘 작동하게 만들기

분류:네트워크 프로토콜
분류:네트워크 파일 시스템
분류:표현 계층 프로토콜
분류:노벨 넷웨어