Используйте SO_TIMESTAMP и найдите сетевой адаптер, который фактически поддерживает временные метки, и тот, который поддерживает временные метки с разрешением лучше миллисекунды.Тогда у вас будет шанс, если вы сможете заставить Java читать входящие cmsg
вспомогательные данные.
Без хорошей аппаратной поддержки пакеты будут помечены ядром с вероятностьюнестабильный таймер низкого разрешения.
(правка №1) Пример кода на C, требующий 2.6.30 или более новое ядро. Я думаю:
http://www.mjmwired.net/kernel/Documentation/networking/timestamping/timestamping.c
(правка # 2) Пример кода для определения задержки ядра в пространстве пользователя в C:
http://vilimpoc.org/research/ku-latency/
(правка # 3) Я рекомендую следовать проекту J-OWAMP, который зависит от таймеров высокого разрешения и тестирования задержки пакетов.Команда OWAMP подталкивает команду ядра Linux к лучшей поддержке SO_TIMESTAMP.
http://www.av.it.pt/jowamp/