IP地址
訪問一個網頁的過程:
- IP獲取DNS解析(本地/更高層次的DNS服務器)
- 建立TCP連接
- OSPF找出最佳路徑
- ARP協議負責求下一個節點Mac地址
- 返回渲染
三次握手:
TIME_WAIT意義:
1、解決有足夠時間讓對端收到ACK
2、有足夠時間讓這個連接不會與後面混在一起
服務器大量time_wait的原因:
若建立連接時,客戶端宕機。服務器重發SYN ACK 5次(1s、2s、4s、8s、16s)=63s,最終會斷開連接
三次握手的必要性:若第一次連接請求在網絡滯留,第三次客戶端會確定這是一個請求。。???
TCP重傳機制:
TCP滑動窗口:
解決可靠傳輸以及包亂序問題
Advertised-window:接收端告訴發送端自己還能有多少緩衝區接收數據,發送端根據這個接收端處理能力發送數據。
- 接收端在ACK中反饋自己的空間
- 發送方根據反饋自己調節發送數據的大小
特殊情況:若發送端不發送,當接收方有window size可用,會發送zwp包給接收方
TCP擁塞控制:
慢啓動,擁塞避免,擁塞發生,快速恢復
慢啓動 |
cwnd=cwnd+1/cwnd cwnd=cwnd+1 |
擁塞避免 |
1、超時:sshthresh=cwnd/2;cwnd=1 2、收到3個ACK:sshthresh=cwnd;cwnd=cwnd/2 |
擁塞發生 |
|
快速恢復 |
重傳指定包:cwnd=sshthresh+3*MSS 若再收到ACK:cwnd=cwnd+1 若收到新的ACK:cwnd=sshthresh |
HTTP方法:GET、POST、HEAD、OPTIONS、PUT、DELETE、TRACE、CONNECT
HTTP請求報文:
- 請求行:請求方法、URL、協議版本
- 請求頭部
- 空行
- 請求正文
HTTP響應報文:
- 狀態行:協議版本、狀態碼、狀態碼描述
- 響應頭部
- 空行
- 響應正文
HTTP請求頭部:
- Host
- User-Agent
- Connection
- Accept-Charset
- Accept-Encoding
- Accept-Language
HTTP相應頭部:
- Server
- Content-Type
- Content-Length
- Content-charset
- Content-Encoding
- Content-Language
與緩存有關的首部字段:
- Last-Modified 和 if-Modified-Since 記錄頁面最後修改時間
- ETag 和 if-None-Match 常用判斷資源是否改變
- Expires、Cacahe-Control 控制失效日期
路由器選擇協議:
- 內部協議:RIP(應用層協議):維護到目的端的最短距離;OSPF(網絡層協議):Dijkstra算法 當鏈路器狀態發生變化時,路由器用洪泛法更新
- 外部協議:BGP(應用層協議):選擇一個路由器作爲BGP發言人,力求尋找一條能達到目的網絡且性能比較好的路由(並非最佳)
- NAT協議:內部服務、外部服務網絡轉化
內部網絡<--->NAT<--->外部網絡
Cookie的作用:存放數據 + 用戶身份
路由器表中存放內容:
目的網段、子網掩碼、網關、接口
交換機:同一個網絡數據交換
路由器:內外網使用
TCP協議:FTP、Telnet、SMTP、POP3、HTTP
UDP協議:DNS、SNMP、TFTP
TCP頭部字段:
sequence number:包的序號
acknowledgement number:ACK,解決不丟包的問題
advertised-window:滑動窗口
TCP Flag:包的類型,操作TCP狀態機
UDP頭部字段:
ping命令過程:
1.stmp ---> 2.打包成IP包 ---> 3.目的端是否同網絡?(1.是否有mac信息?有就用 2.沒有要調用ARP) ---> 4.接收,將IP幀取出,有價值的信息用ICMP應答
|
不同網絡?交給路由器
WebSocket:
Http1.0 的生命週期是一個request
Http1.1 對Http1.0進行了改進,有keep-alive,可以發送多個request
WebScoket是Http協議支持長連接的補丁,加入了upgrade、correction。解決了1被動性,服務端主動給給客戶端發送包(以HTTP形式)
HTTP1.0 與HTTP 1.1區別:
HTTP 1.0默認短連接,要建立長連接,需要keep-alive頭域;HTTP 1.1 默認持久連接
HTTP 1.1引入分塊傳輸狀態碼100 發送post數據之前,客戶端先發送100詢問服務器是否接收大於1024的數據。Request中多了Host域 (一臺物理服務器可存在多個虛擬主機)
HTTPS:
CA: 證明服務器用途類型的證書,客戶端信任該證書從而信任主機
SSL:(1)認證用戶 (2)加密 (3)維護完整性
HTTPS過程:
1.客戶端發起https請求
2.服務端傳輸證書(公鑰)
3.客戶端解析證書
4.客戶端傳輸加密信息
5.服務端解密信息
http:明文傳輸不安全,端口80
https:基於ssl協議,端口443
HTTP響應:
- 1xx:臨時響應
- 2xx:成功
- 3xx:重定向
- 4xx:錯誤
- 5xx:服務器錯誤
網絡功能四大類:
- InetAddress 硬件資源
- URL 資源定位符
- Sockets TCP(ServerSocket類--------Socket類)
- Datagram UDP(DatagramSocket類--------DatagramSocket)
Nagle算法:當數據小時會合併到大包中發送,在發送下一個數據包中會等待前一個包的響應
TCP NO DELAY:將Nagle算法關閉,無論數據包大小都會發送出去
SYN Flood攻擊:建立連接,客戶端下線。解決方法:用Cookie
ARP攻擊:僞造IP與Mac地址
DDos攻擊:分佈式拒絕服務攻擊
利用目標系統網絡服務功能或者直接消耗其系統資源,使該目標系統無法提供正常服務
攻擊者發送請求後,把window設置爲0,服務端只能進行zwp
Xss攻擊:盡一切辦法在目標網站上執行非目標網站上原有的腳本
CSRF攻擊:盜用身份,發送惡意請求。源於web隱式身份驗證機制;解決:客戶增加僞隨機數驗證