從url到頁面加載的過程:
- 輸入地址 => 先到歷史記錄和書籤等地方查找;
- 瀏覽器查找域名ip地址 => DNS查找,瀏覽器的緩存,操作系統的緩存,路由緩存,isp緩存,dns緩存 => 遞歸搜索
- 瀏覽器向web服務器發送一個http請求;
- 服務器永久重定向響應;
- 瀏覽器跟蹤永久重定向地址;
- 服務器處理請求;
- 服務器返回一個響應;
- 瀏覽器顯示html;
- 瀏覽器發送請求獲取嵌入在html中的資源;
- 瀏覽器發送異步請求;
- 頁面構建完成。
tcp/ip的三次握手和四次揮手:
三次握手:
- 建立連接時,客戶端發送SYN包(SYN=i)到服務器,並且進入SYN-SENT(同步已發送狀態)狀態;
- 服務器接收到SYN包必須確認客戶的SYN同時自己也發送一個SYN包即:SYN+ACK;此時服務器進入到SYN-RCVD(同步收到)狀態;
- 客戶端接收到服務器的SYN+ACK包,向服務器發送確認報文ACK,此包發送完畢後,客戶端進入ESTABLISHED(已建立連接)狀態,完成三次握手。
四次揮手:
- 客戶端發送一個FIN,用來關閉客戶端到服務器端的數據傳遞;
- 服務器端就收一個FIN,它發回一個ACK,確認序列號爲收到的序列號+1;
- 服務器端關閉與客戶端的連接,發送一個FIN給客戶端;
- 客戶端發回ACK報文確認,並將序列號設置爲收到的序列號+1,此包發送完畢,完成四次揮手。
注意:(SYN攻擊)在三次握手過程中,Server發送SYN-ACK之後,收到Client的ACK之前的TCP連接稱爲半連接(half-open connect),此時Server處於SYN_RCVD狀態,當收到ACK後,Server轉入ESTABLISHED狀態。SYN攻擊就是Client在短時間內僞造大量不存在的IP地址,並向Server不斷地發送SYN包,Server回覆確認包,並等待Client的確認,由於源地址是不存在的,因此,Server需要不斷重發直至超時,這些僞造的SYN包將產時間佔用未連接隊列,導致正常的SYN請求因爲隊列滿而被丟棄,從而引起網絡堵塞甚至系統癱瘓。
檢測:
SYN攻擊時一種典型的DDOS攻擊,檢測SYN攻擊的方式非常簡單,即當Server上有大量半連接狀態且源IP地址是隨機的,則可以斷定遭到SYN攻擊了。windows下打開cmd,輸入命令:”netstat -n -p TCP“,查看是否有大量的”SYN_RECEIVED“狀態。
防範:第一種是通過防火牆等過濾網關防護,另一種是通過加固TCP/IP協議棧進行防範(詳情見http://netsecurity.51cto.com/art/201009/225615.htm)。