Как я знаю что

'$ sysctl | grep net.ipv4.tcp '

дает общесистемное значение параметра TCP, мне нужно сделать сценарий на Bash для моего практического файла для колледжа, в котором если мы откроем браузер и введем URL-адрес, такой как www.google.com, то время SYN этого соединения и время SYN+ACK нужно принять и сравнить с общесистемным параметром, чтобы принять решение о задержке и отобразить сообщение о SYN и SYN+ACK?

1 ответ1

0

tcpdump позволит вам увидеть дельта-время между SYN и SYN/ACK, что даст вам начальный RTT (при условии, что вы захватываете с клиента).

Например, tcpdump -nS -s0 host www.google.com -ttt показывает информацию, которую вы ищете.

Если вы хотите автоматически извлечь только начальное время обхода, одним простым способом (но не безошибочным) будет перенаправление вывода tcpdump в файл и использование grep и awk для извлечения только дельта-времени для пакетов SYN/ACK. Например:

  1. tcpdump -nS -s0 host www.google.com -ttt > /tmp/handshake.txt
  2. cat /tmp/handshake.txt | egrep '\[S\.\]' | awk 'BEGIN { FS = " " } ; { print $1 }'

Вышеприведенные команды могут быть добавлены в простой скрипт bash в соответствии с вашими требованиями.

Я не уверен, что вы имеете в виду, когда говорите о сравнении с "системным параметром". Не существует значения sysctl, которое контролирует время прохождения сигнала в обоих направлениях, оно широко варьируется в зависимости от того, с каким сервером вы тоже разговариваете.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .