ntpd
NTP의 참조 구현입니다. 현재 버전은 4.1.2입니다.
매뉴얼 페이지~인 것 같다즉, iburst
사용 시 응답하지 않는 NTP 서버의 재시도 간격은 16초입니다.
http://doc.ntp.org/4.1.2/confopt.htm
iburst
서버에 연결할 수 없으면 각 폴링 간격마다 일반적인 패킷 대신 8개의 패킷 버스트가 전송됩니다. 서버에 연결할 수 없는 한 패킷 사이의 간격은 모뎀 호출이 완료될 수 있도록 약 16초입니다. 서버에 연결할 수 있게 되면 패킷 사이의 간격은 약 2초입니다. 이는 이 옵션으로 ntpd를 시작할 때 서버 명령 및 주소 획득 속도와 초기 동기화 속도를 높이기 위한 것입니다
-q
.
그러나 공식 NTP "설명서"에는 재시도 간격이 64초로 늘어날 것이라고 나와 있습니다(기본 설정 가정).
https://www.eecis.udel.edu/~mills/ntp/html/poll.html
이
iburst
옵션의 경우 버스트의 패킷 수는 6입니다. 이는 이 옵션에 대한 클록을 동기화하는 데 일반적으로 필요한 수입니다.burst
버스트의 패킷 수는 현재 폴링 인덱스와 최소 폴링 간의 차이에 따라 결정됩니다. 지수(2승)가 결정됩니다. 예를 들어,기본 최소 폴링 인덱스 6(64초), 폴당 하나의 패킷만 전송되지만 폴 인덱스가 9(512초) 이상인 경우 8개의 패킷이 모두 전송됩니다. 이렇게 하면 평균 간격이 최소 간격을 초과하지 않게 됩니다.신중하게 설계하지 않으면 버스트 옵션으로 인해 네트워크 로드가 증가할 수 있습니다. 두 옵션 모두 요금 관리 및 죽음의 키스 패킷 페이지에 설명된 규정을 따릅니다.또한 활성화하거나 활성화하면
iburst
버스트burst
의 첫 번째 패킷이 전송되지만 나머지 패킷은 첫 번째 패킷에 대한 응답이 수신된 경우에만 전송됩니다. 이 옵션에 설정된 시간 초과 후에도 응답을 받지 못하면minpoll
첫 번째 패킷을 다시 전송합니다. 즉, 서버에 연결할 수 없더라도 네트워크 로드는 최소 폴링 간격을 초과하지 않습니다.
iburst
해당 minpoll
옵션도 조정 하지 않는 한 사용 시 재시도 간격이 실제로 64초라는 것을 이해해야 합니까 ?
답변1
이 iburst
설정은 server
서버에 액세스하기 전에 설정을 변경합니다.각 폴링 간격마다하나가 아닌 8개의 패킷을 보냅니다. (8개 패킷 사이의 간격은 응답 수신 여부에 따라 16초 또는 2초입니다.)
질문에 구체적으로 대답하려면 iburst
사용 여부에 관계없이 폴링 재시도 간격은 64초 이상입니다.
- 사용하지 않을 경우
iburst
서버 폴링 재시도당 하나의 패킷이 전송됩니다. - 사용 시
iburst
각 폴링 재시도는 16초 또는 2초 간격으로 최대 8개의 패킷을 전송합니다. - 서버가 연결 가능한 것으로 간주되면(동기화 후보로 간주되면) 이
iburst
플래그는 아무런 효과가 없습니다. iburst
서버가 동기화 후보가 된 후 의미 체계를 사용하려면 이burst
플래그를 추가하세요.- 동일한 서버에서
iburst
및 를 사용하는 것이 허용되지만 반드시 권장되는 것은 아닙니다 .burst
몇 가지 실험을 한 후 실제로 나에게 일어난 일은 다음과 같습니다.
- 지정
iburst
하고 서버가 응답하지 않으면 폴링 간격마다 하나의 패킷이 전송됩니다. - 지정
iburst
하고 서버가 응답하면 6개의 패킷으로 구성된 초기 시퀀스가 2초마다 하나씩 전송됩니다. 이는 후속 폴링 간격에서 반복되지 않으며iburst
더 이상 영향을 미치지 않습니다. 이 6개의 패킷 시퀀스는 서버를 잠재적인 동기화 후보로 표시하는 데 충분합니다(*
의 왼쪽 열에 있음ntpq -np
). - 더 이상의 영향이 없으면
iburst
폴링 간격마다 패킷이 전송됩니다. - 각각의 성공적인 폴링 간격은 도달 가능성을 1씩 증가시킵니다(실제로는 1이 LSB로 푸시되는 비트 시프트 레지스터로 생각함). 일단 777(8진수)에 도달하면 서버는 9개의 연속적인 성공적인 폴링 간격에 해당합니다. 가능한 동기화 소스.
그 중 현재 문서와 일치하는 것은 거의 없습니다!