如何取得瀏覽器上任何網站目前 tcp 連線的 SYN 和 SYN+ACK 值?

如何取得瀏覽器上任何網站目前 tcp 連線的 SYN 和 SYN+ACK 值?

據我所知

'$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 值控制往返時間,它也根據您正在談論的伺服器而變化很大。

相關內容