Отметка времени UDP-пакетов

0

Я делаю UNIX-приложение, где мне нужно заказывать сообщения, для которых мне нужно отметить все исходящие пакеты. Я мог бы использовать функции, определенные в time.h, и просто добавить временную метку к пакету, но, похоже, Linux уже предоставляет параметр timestamping в API сокета. Каков, как правило, лучший способ отметки времени UDP-пакета?

Теги:
sockets

1 ответ

2
Лучший ответ

Ограниченные по Linux параметры timestamping, которые вы можете установить в сокетах, не делают то, что, по вашему мнению, они делают. В двух словах, они вызывают объекты skbuff, связанные с отметками времени. Цель состоит в том, чтобы получить точные временные метки о том, когда пакеты были фактически отправлены и когда они прибыли. Т.е. эти марки являются локальными метаданными.

Если вам нужны временные метки в фактическом протоколе связи, вы должны добавить их сами в качестве другого поля в формате пакета.

Поскольку вы говорите, что это "заказывать сообщения", если это единственная цель, может быть лучше прометить пакеты не со временем, а с добавочным порядковым номером. Увеличение порядковых номеров не только устанавливает порядок, но также помогает обнаруживать недостающие пакеты, которые не будут выполняться.

  • 0
    +1 да, в конце концов, вот как это делает TCP :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню