IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
Не удается получить время по NTP, Time out при запросе по UDP по протоколу NTP v3
GrUm
сообщение 9.4.2016, 1:04
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 2
Регистрация: 9.4.2016
Пользователь №: 4997



Пишу приложение на C#, обращающееся на ваш сервер времени.
Использую вот такой код

Код
// NTP message size - 16 bytes of the digest (RFC 2030)
    var ntpData = new byte[48];

    //Setting the Leap Indicator, Version Number and Mode values
    ntpData[0] = 0x1B; //LI = 0 (no warning), VN = 3 (IPv4 only), Mode = 3 (Client Mode)

    var addresses = Dns.GetHostEntry(ntpServer).AddressList;

    //The UDP port number assigned to NTP is 123
    var ipEndPoint = new IPEndPoint(addresses[0], 123);
    //NTP uses UDP
    var socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

    socket.Connect(ipEndPoint);

    //Stops code hang if NTP is blocked
    socket.ReceiveTimeout = 3000;    

    socket.Send(ntpData);
    socket.Receive(ntpData);


Практически все описанные в сети варианты ntp на c# используют такой алгоритм.

При отправке пакетов по UDP, постоянно получаю time out. Сервер времени майкрософта (time.windows.com) отвечает на этот запрос, но тоже далеко не всегда.

Перебрал все местные сервера, результат одинаковый. При запросе из моей подсети почти никогда не получаю корректный ответ. Из другой - через раз. При этом стандартная утилита сверки времени Windows работает корректно с вашими серверами.

Что я делаю не так?
Перейти в начало страницы
 
+Цитировать сообщение
GrUm
сообщение 12.4.2016, 11:07
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 2
Регистрация: 9.4.2016
Пользователь №: 4997



Проблема решена.

Причиной была Служба Времени Windows, блокирующая 123 порт на локальном адресе.

Система автоматически выдает другой порт, на который не отвечают местные сервера.

Остановил службу времени и зафорсил назначение 123 порта для local IPEndPoint. Работает как часы smile.gif
Перейти в начало страницы
 
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 21.1.2017, 18:18
Материалы сайта предназначены для лиц 12 лет и старше.
HSDN — Рейтинг сайтов