計算機網絡知識梳理

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:服務器錯誤

 

網絡功能四大類:

  1. InetAddress 硬件資源
  2. URL 資源定位符
  3. Sockets TCP(ServerSocket類--------Socket類)
  4. Datagram UDP(DatagramSocket類--------DatagramSocket)

 

Nagle算法:當數據小時會合併到大包中發送,在發送下一個數據包中會等待前一個包的響應

TCP NO DELAY:將Nagle算法關閉,無論數據包大小都會發送出去

 

SYN Flood攻擊:建立連接,客戶端下線。解決方法:用Cookie

ARP攻擊:僞造IP與Mac地址

DDos攻擊:分佈式拒絕服務攻擊

                    利用目標系統網絡服務功能或者直接消耗其系統資源,使該目標系統無法提供正常服務

                     攻擊者發送請求後,把window設置爲0,服務端只能進行zwp

Xss攻擊:盡一切辦法在目標網站上執行非目標網站上原有的腳本

CSRF攻擊:盜用身份,發送惡意請求。源於web隱式身份驗證機制;解決:客戶增加僞隨機數驗證

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章