как получить значения SYN и SYN+ACK для текущего TCP-подключения любого веб-сайта в браузере?

как получить значения SYN и SYN+ACK для текущего TCP-подключения любого веб-сайта в браузере?

Насколько я знаю,

'$sysctl | grep net.ipv4.tcp'

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

решение1

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, которое бы контролировало время круговой передачи, оно также сильно варьируется в зависимости от того, о каком сервере вы говорите.

Связанный контент