네트워크 타임 프로토콜, NTP - Engineer of NiagaraFramework

Tridium, NiagaraFramework, SCADA, HMI, PLC, Automation, SmartFAM etc.. About controls.
나이아가라 프레임워크 QnA : neverlikekami@gmail.com

2017년 10월 7일 토요일

네트워크 타임 프로토콜, NTP

NTP의 이해

DDC난 기타 로레벨 디바이스들의 시간이 안맞는경우 NTP를 이용할 수 있다면 간단히 
해결할 수 있다. 
이 페이지에서는 NTP 프로토콜에 대해 알아보고 Niagara Framework , JACE, WEBS에서 시간동기화를 어떻게 시키는지 알아본다. 

NTP(Network Time Protocol)은 IP 네트워크 상에 연결된 2개의 컴퓨터 사이에 각 장비별 동일한 시간(Synchronization of clock)을 갖게하고, 서로 시간을 교환(Exchange)할 수 있는 프로토콜이다.

현재 IP 네트워크에 연결된 클라이언트 장비들은 각각 클라이언트 장비내의 타이머에 의해 공급 받는 자체 시간을 가지고 있으므로 각 클라이언트 장비별 시간이 다르다. (서로간 시간 동기가 다르다) IP네트워크 상으로 장비에서 장비로 (서버/클라이언트)데이터를 보낼 때 각 장비별 시간이 다를 때 앞으로는 많은 문제점을 야기할 수 있고, 전자 상거래가 활발해지면서 인터넷 상의 보안과 인증이 문제시 되고 있다. 예를 들어, Kerberos 인증(Authentication) 서비스는 Tim자재e-stamping Transaction들로 어떤 형태의 공격들을 차단한다.

이런 문제점을 보완할 수 있는 것이 NTP이다. NTP는 인터넷상에 위치한 무선, 원자, 다른 클럭 소스를 참조하여 정확한 자체 시간을 보장할 수 있는 TCP/IP의 상위에 상주하는 프로토콜이고 수ms오차 내로 시간을 제공한다.

WAN상에서의 컴퓨터 시간 동기는 국제적으로 표준화된 UTC를 요구한다. UTC는 세계 여러 나라에서 사용하는 표준 시간 척도이고 일반 전화망, 무선 항법시스템, 위성 항법 시스템 및 위성 통신 시스템 등과 같은 다양한 채널을 통해 공급된다.

NTP에 의해 제공되는 시간은 UTC 시간이다. UTC 시간의 휙득은 UTC를 공급하는 위에서 열거한 장비와 직접 연결된 컴퓨터에 의해 제공된다.

NTP는 UTC time scale 소스에 연결된 시간을 전송하는 장비들의 경로에 따라 계층구조를 갖는다. 최상위 계층은 레벨0이고 최하위 계층은 레벨15(NTP 프로토콜 버전 3)로 구분한다. UTC time scale은 레벨 0이고 무선, 위성등에 연결된 클럭을 레벨1로 정의한다. 이 클럭을 NTP에 대한 Primary Reference Clock이라 한다. 레벨1 클럭을 소스로 IP 네트워크로부터 수신받은 클럭을 레벨2라 한다.

NTP 클럭 계층 구조

NTP에 의한 시간 수신은 컴퓨터상에서 실행되는 NTP Demon에 의해 관리된다. 프로그램이 수행 될 때 NTP Demon은 사용자에 의해 부여된 어드레스로 클럭을 call하고, 그 demon은 요청과 응답을 정한 루트에 따라 네트워크 delay뿐만 아니라 다수의 클라이언트 장비에서 요청한 클럭 분배에 대한 delay를 고려하여 응답했던 클럭 레벨에서 가장 정밀한 클럭을 선택한다.

SNTP
클라이언트 장비에는 시간 수신과 유지보수를 위해 SNTP가 사용될 것이며, SNTP(Simple Network Time Protocol)는 클라이언트/서버나 멀티캐스트 모드에서 네트워크를 통해 수신된 NTP클럭으로 부터 시간을 얻는다. 이 버전은 자체 유지보수를 위해 알고리즘을 실행하지 않고, 시간을 네트워크를 통해 다른 장비로 공급하지 않는다.

NTP 동기 성능
클라이언트 장비에서 시간 조정은 클라이언트 장비에 상주하는 NTP Task에 의해 만들어 진다. 이것은 클라이언트 장비 자체와 서버에서 공급받는 수신 클럭 사이의 평균 전송 Delay을 계산한다. 이 계산은 클럭이 서버 장비에서 클라이언트 장비로 가는 시간과 돌아오는 시간이 같고 만약 이것이 틀렸다면 Bias에 의해 영향 받을 수 있다라고 가정한 것이다. 이 클라이언트 프로그램은 교환된 시간 데이터의 통계학적 분석을 하고, 통계적 의미로부터 거리가 먼 계산함으로 발생되는 delay를 제외하도록 수신된 delay들을 필터링 한다. 두 클럭에 관련된 시간적 포류물은 Kalman필터에 의해 추정된다.

10 ms의 전형적인 Synchronization performance는 80% 이하의 부하를 갖는 같은 10Mbit/s Ethernet LAN상의 두개의 장비의 내부 NTP 클럭 사이에서 얻어진다.

NTP 네트워크 구성
NTP는 네트워크들의 동기에 많은 유동성을 제공한다. 네트워크로의 물리적 연결은 장비에서 제공하는 커넥터 형태에 따라 연결되고, IP 네트워크와의 정합은 데이터 통신을 하는 것과 같은 일반적인 방법으로 한다. Synchronization은 운용자의 간섭 없이도 유지되고, 여러 개의 NTP장비 중에 소스 선택은 NTP에 의해 처리된다. 만약 선택된 소스에 문제가 있다면 자체 유지보수 기능으로 계산된 가장 마지막 파라미터로 보존된다.

네트워크 장비들 사이의 정확한 시간을 보장하기 위해서 레벨1 클럭을 time scale소스로 연결해야 한다. 2개의 클럭 서버의 사용은 서버의 유용성을 2배로 증대시킨다.

하나의 NTP 서버는 1 ~ 200개 정도의 컴퓨터에 대한 동기를 제공한다. 그 이상이 되면 서버로부터 무응답률이 늘어나고 시간 동기 수행에 저하를 초래한다. 밀집도가 높은 네트워크에서는 100ms이하의 오차를 갖는 정밀한 시간 동기를 필요로 하지 않기 때문에 레벨2 서버들처럼 클라이언트장비들의 배치가 그룹내의 레벨2 장비를 참조하는 서브그룹형태로 분할을 할 수 있다. 또한 다음 레벨 그룹의 클라이언트 장비들은 다수의 레벨2 그룹들을 이용하므로 시간의 유효성을 보장한다. 각각의 레벨2 서버 그룹은 적어도 1개의 레벨1 서버를 참조한다. 장비들이 동작하는 동안 보장된 유효성은 같은 레벨2 그룹에 의해 참조되는 다수의 레벨1 시간 소스를 요구한다.

가장 낮은 레벨의 클라이언트는 간단하게 구현된 SNTP가 사용될 것이다.

NETTIME이라는 프로그램으로 설치후 간단한 설정을 하면 ntp서버 역할을 수행할 수 있다.




설명이 길었다. 
이제 직접 NTP 서버를 돌리고 이것을 JACE에 적용해보자. 


NTP 설치 & 적용(JACE)
NTP 설치
1. http://www.meinberg.de/english/sw/ntp.htm 에 접속해 각 OS별 버전에 맞는 파일을  다운로드 받고 설치한다.

2. 기타 윈도우 설치 프로그램과 같이 실행 시켜 NTP서버를 설치한다



 옵션에 관한 것은 다른 NTP 서버에 설정을 이어 받겠냐는 질문이다.
use fast initial stnc mod => 빠른 동기화 모드를 사용.

 Start NTP service automatically => 자동으로 NTP 서비스 시작
 Disable other Time Services eventurally installed => 다른 NTP서버 비활성화
 Start NTP service right after installation ==> 설치후 NTP 서비스 시작
 allow big initial timestep( >1000secs)
 Enable Multimedia Timer at startup => 멀티미디어 타이머 시작 (오차를 줄인다)
 Check Firewall Settings => 방화벽 설정을 체크
 please specify which existing account is used to run the service
=> 서비스를 실행하는데 사용되는 계정
password of the existing account
=> 패스워드

프로그램을 설치 했을 때 기본폴더는 c:\program file\ntp에 설치가 된다.
 c:\program file\ntp\ntp.conf 파일이 ntp서버설정파일이다
server 127.127.1.0 => 내 자신을 서버화 (상태창에서 local로 나옴)
server 도메인 => 연결할 ntp 서버

간단한 명령어
net stop ntp
=> 서비스 중지

net start ntp
=> 서비스 시작

ntpq -p
 => 서비스 상태 확인
 - 위 스크린샷에서 LOCAL<0>, wano.pcu.ac.kr, kami.pcu.ac.kr 앞에 *모양이 나온것이 NTP 서버로서의 기능을 할 수 있는 서버

NIAGARA에서 NTP 설정하기
jace장비에 접속 한 후

station->config->services->platformservices->ntpplatformserviceQNX을 보면 위 스크린샷과 같은 설정 화면이 나온다.
ip주소를 적어주면 설정 완료
ntp서버 설정 후 적용 되고 있는 로그화면












댓글 없음:

댓글 쓰기

Post list