넷웨어 코어 프로토콜

**넷웨어 코어 프로토콜**(NetWare Core Protocol, **NCP**)은 노벨의 일부 제품에서 사용되는 네트워크 프로토콜이다. 이 프로토콜은 주로 노벨 네트웨어 클라이언트-서버 운영 체제와 연관되어 있으며, 원래는 주로 MS-DOS 클라이언트 스테이션을 지원했지만, 나중에 마이크로소프트 윈도우, 맥 OS의 역사, 리눅스, 윈도우 NT, Mac OS X, 다양한 유닉스 플랫폼에 대한 지원이 추가되었다. NCP는 파일, 인쇄, 디렉토리, 클럭 동기화, 메시징, 원격 명령 실행 및 기타 네트워크 서비스 기능에 접근하는 데 사용된다. 원래는 IPX/SPX 프로토콜 스택의 쉬운 네트워크 구성과 작은 메모리 공간을 활용했다. 1991년부터 TCP/IP 구현이 가능해졌다.access-date = 2023-02-08, page 6 노벨 eDirectory는 디렉토리 서비스 트리 내 서버 간의 데이터 변경을 동기화하는 데 NCP를 사용한다.
# 기술 정보
원래 IPX/SPX 서버 구현은 노벨 네트웨어 플랫폼에서만 제공되었으며 현재는 구식이다. TCP/IP 구현은 TCP/UDP 포트 524를 사용하며 이름 해결을 위해 SLP에 의존한다. IPX/SPX 네트워크에서 NCP 작동을 위해 IPX 프로토콜이 패킷 유형 필드를 17로 설정하여 사용되었다. 워크스테이션(클라이언트 스테이션) 측에서는 IPX 소켓 번호 0x4003이 사용되었고, 서버 측에서는 소켓 번호 0x0451이 사용되었다. NCP PDU는 다음과 같은 구조를 가진다: {| class="wikitable" ! 옥텟 !! 필드 |- | 2 || NCP 유형 |- | 1 || 시퀀스 번호 |- | 1 || 연결 번호, 하위 옥텟 |- | 1 || 작업 번호 |- | 1 || 연결 번호, 상위 옥텟 |- | 1 || 완료 코드 (응답 패킷에만 해당) |- | 1 || 연결 상태 (응답 패킷에만 해당) |- | var || 데이터 |} NCP 유형 필드는 작업 유형을 결정한다:access-date = 2023-02-08 {| class="wikitable" ! 값 !! 의미 |- | 0x1111 || 서비스 연결 생성 |- | 0x2222 || 서비스 요청 |- | 0x3333 || 서비스 응답 |- | 0x5555 || 서비스 연결 파괴 |- | 0x7777 || 버스트 모드 전송 |- | 0x9999 || 요청 처리 중 (서버 사용 중) |} 개별 요청은 시퀀스 번호(모듈로 256)로 식별된다. 연결 번호는 서버의 개별 클라이언트 스테이션 연결을 식별한다. 버전 2.x까지의 노벨 네트웨어 서버는 최대 255개의 연결을 지원했으며 연결 번호는 1옥텟만 차지했다. 나중에는 2옥텟으로 확장되었다. 작업 번호는 요청에서 3, 응답에서 1이다. 데이터 필드는 개별 서비스를 구별하는 NCP 함수 번호 옥텟으로 시작한다. {| class="wikitable" |- ! 번호 !! 기능 |- | 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 클라이언트 date=2008-07-20 - 더 이상 지원되지 않는다. * 프로소프트 엔지니어링의 Mac OS X용 NetWare 클라이언트. * 리눅스용 오픈 소스 NCP 클라이언트 구현인 ncpfs. * 마이크로소프트의 NetWare용 클라이언트 서비스.