前言
這個應該是很基本的網路通訊架構,
但是我一點都不知道XDDDDDDD
K完書,又查了點資料才有點概念。
但如果跑去查封包....
應該還是有點懸
正文
最近在K網路架構,有些東西有點概念了。
此時來看這張圖終於瞭解一點。
ref. A Question of Timing
先來看這張圖,
有幾個關鍵字縮寫必須要先知道
SYN : 同步序列號
ACK : 要求回應
FIN :結束
SEQ : 序列號
這邊簡單講,要更詳細的內容,建議去看一下TCP 三向交握 (Three-way Handshake)
在這張圖裡面沒有SEQ這個,因為沒畫出來,在SYN的時候,就會包含SEQ在裡面了。
流程簡單說是這樣的,TCP是有順序性的。
- clinet 詢問DNS server ,網域與IP的對應
- client 發出請求
- server 回應
- client 回應,我知道你回了。
- server 開始建立ssl憑證
- client 發出內容請求
- server 回應內容
- 結束
好了,再來才是講curl ,
先建立一個 txt檔,
\n
# DNS 解析時間,也就是查詢到 IP 的時間\n
time_namelookup: %{time_namelookup}\n
# TCP 連線時間,就是 TCP 三項交握的時間\n
time_connect: %{time_connect}\n
# SSL 連線的時間\n
time_appconnect: %{time_appconnect}\n
# 從開始到最後一個請求的時間,如果網頁有跳轉就會有時間\n
time_redirect: %{time_redirect}\n
# 從開始到響應開始的時間\n
time_pretransfer: %{time_pretransfer}\n
# 從開始到響應開始傳輸的時間\n
time_starttransfer: %{time_starttransfer}\n
----------\n
# 整體時間\n
time_total: %{time_total}\n
\n
curl -w @curl-format.txt -o /dev/null https://daimom3020.blogspot.com/
這邊要注意, @curl-format.txt 這邊不能使用路徑方式去找檔案。如果怕改天找不到檔案的話,
curl 可以改成下面的指令
curl -o /dev/null https://daimom3020.blogspot.com/ -w "
# DNS 解析時間,也就是查詢到 IP 的時間
time_namelookup: %{time_namelookup}
# TCP 連線時間,就是 TCP 三項交握的時間
time_connect: %{time_connect}
# SSL 連線的時間
time_appconnect: %{time_appconnect}
# 從開始到最後一個請求的時間,如果網頁有跳轉就會有時間
time_redirect: %{time_redirect}
# 從開始到響應開始的時間
time_pretransfer: %{time_pretransfer}
# 從開始到響應開始傳輸的時間
time_starttransfer: %{time_starttransfer}
----------
# 整體時間
time_total: %{time_total}
\n"
搭配上方的圖片來看,
這邊顯示的時間是累加的,如果要算出區間的時間,
需要自行做相減。
例如,
要知道server處理資料的時間多長,
可使用 time_starttransfer - time_pretransfer ,
就可得知server處理資料的時間。
ref.
0 意見:
張貼留言