
據我所知
'$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 封包的增量時間。例如:
tcpdump -nS -s0 host www.google.com -ttt > /tmp/handshake.txt
cat /tmp/handshake.txt | egrep '\[S\.\]' | awk 'BEGIN { FS = " " } ; { print $1 }'
可以將上述命令添加到簡單的 bash 腳本中以滿足您的要求。
我不確定您在談論與“系統範圍參數”進行比較時的意思。沒有 sysctl 值控制往返時間,它也根據您正在談論的伺服器而變化很大。