面試可能遇到的問題總結【一】
(1)簡述TCP的三次握手 1.第一次握手:客戶端請求建立連線時,會將標誌位SYN置為1,隨機產生一個值seq=J,並將該資料包傳送給伺服器,客戶端進入SYN_SENT狀態,等待伺服器確認。 2.第二次握手:伺服器收到來自客戶端的資料包後,根據SYN=1可以得知客戶端請求建立連線,服務端將SYN和ACK都置為1,ack=J+1,隨機產生一個值seq=K,並將該資料包傳送給客戶端確認連線請求,服務端進入SYN_RCVD狀態。 3.第三次握手:客戶端收到確認後,檢查ack是否為J+1,ACK是否為1,如果正確則將標誌位ACK置為1,ack=K+1,並將該資料包傳送給服務端,服務端檢查ack是否為K+1,ACK是否為1,如果正確則連線建立成功,客戶端和伺服器進入ESTABLISHED狀態,完成三次握手。
(2)簡述tcp和udp的區別和優缺點 1.tcp提供有連線的資料傳輸,udp是沒有連線的資料傳輸 2.由於tcp基於有連線的資料傳輸和錯誤重傳機制,因此具有高可靠性,確保傳輸資料的正確性,不出現丟失或亂序,而udp的資料傳輸則相對不可靠 3.由於udp傳輸資料時不需要建立連線,因此具有較好的實時性,工作效率較tcp協議高。udp段結構比tcp的段結構簡單,因此網路開銷也小。
(3)簡述一下iptables的四表五鏈 1.filter表:對資料包進行過濾 INPUT鏈:對傳送到上層應用的資料包進行過過濾 OUTPUT鏈:對上層應用所產生的資料包進行過濾 FORWARD鏈:對經過本機轉發的資料包進行過濾
2.nat表:對資料包中的的地址進行轉換 PREROUTING鏈:進行路由選擇之前修改資料包的ip地址 POSTROUTING鏈:在進行路由選擇之後 且從主機發送出去之前修改資料包的ip OUTPUT鏈:修改上層應用產生資料包的ip
3.mangle表:不能過濾資料包,也不能修改資料包中的地址,僅僅能對報文進行特定的修改(ttl, tos…) INPUT鏈 OUTPUT鏈 FORWARD鏈 PREROUTING鏈 POSTROUTING鏈
4.raw表:決定資料包是否被狀態追蹤機制所處理 組成: PREROUTING OUTPUT