天天看點

網絡方面的一些知識點

文章引用了 : https://www.cnblogs.com/Andya/p/7272462.html

wireshark 用來抓包的軟體  

1.OSI 開放式網際網路參考模型(7層)

實體層,資料鍊路層,網絡層(IP),傳輸層(TCP/UDP),

會話層,表示層,應用層

OSI模型隻是一個參考的标準,并沒有實作

OSI的實作是“TCP/IP”

2.“TCP/IP”協定 分四層

3.IP 協定 網絡層 不可靠傳輸

4.TCP 協定 傳輸層 面向連接配接的、可靠的、基于位元組流的傳輸層通信協定

6個标志位:

URG-緊急指針有效

ACK-确認序号有效

PSH-接收方應盡快将這個封包交給應用層

RST-連接配接重置

SYN-同步序号用來發起一個連接配接

FIN-終止一個連接配接

(IP是用來标示唯一的主機,

  TCP中的端口号用來标示唯一的程序)

5.tcp三次握手

第一次:A(SYN-SENT) ----> B(LISTEN)   SYN=1,seq=x,

第二次: B (SYN-RCVD)  ----> A   SYN=1,ACK=1,seq=y,ack=x+1

第三次:A(ESTABLISHED) ----> B(ESTABLISHED)   ACK=1,seq=x+1,ack=y+1

ACK是用來确認是否接收到了資料

Seq 是用來排序,用來最後将tcp傳輸的包進行排序,

同時防止丢包後,重新發缺少序号的包

網絡方面的一些知識點
網絡方面的一些知識點

server 收到 client 的SYN,回複SYN-ACK的後,為再收到client 發來的 ACK包,sever則會不斷重試請求直至逾時,liunx預設等待是63秒才斷開連接配接,差不多5次

會造成 SYN Flood的防護措施

SYN隊列滿了後,通過tcp_syncookies參數回發SYN Cookie

若為正常連接配接則Client會回發SYN Cookie,直接建立連接配接

建立連接配接後,client出現故障:

保活機制(keep alive time)

1.向對方發送保活探測封包,如果未收到響應則繼續發送

  嘗試次數達到保活探測數仍未響應則應中斷連接配接。

TCP 四次揮手

第一次: A---->B FIN=1,seq=u

第二次:  B---->A ACK=1,seq=v,ack=u+1

第三次:  B---->A FIN=1,ACK=1,seq=w,ack=u+1

第四次:  A---->B ACK=1,seq=u+1,ack=w+1

網絡方面的一些知識點
網絡方面的一些知識點

為什麼會有TIME_WAIT狀态

確定有足夠的時間讓對方收到ACK包

避免新舊連接配接混淆

伺服器出現大量CLOSE_WAIT狀态的原因

對方關閉socket連接配接,我方忙于讀或寫,沒有

及時關閉連接配接

 檢查代碼,特别是釋放資源的代碼

 檢查配置,特别是處理請求的線程配置

 linux 指令:netstat

 UDP協定

 沒有報錯重傳,滑動視窗

 面向非連接配接

 不維護連接配接狀态,支援同時向多個用戶端傳輸相同的消息

 資料包報頭隻有8個位元組,額外開銷較小

 吞吐量隻受限于資料生成速率、傳輸速率以及機器性能

 不拆分或者合并封包

 TCP與UDP 差別

 面向連接配接 VS 無連接配接

 可靠性

 有序性

 速度

 量級

 TCP的滑動視窗

 RTT 和 RTO

 RTT:發送一個資料包到收到對應的ACK,所花的時間

 RTO:重傳時間間隔,需要根據RTT進行計算 

 TCP使用滑動視窗做流量控制與亂序重排

 保證TCP的可靠性

 保證TCP的流控特性 

 可靠性是通過滑動視窗的确認重傳機制

 HTTP:

 http協定的主要特點:

 支援客戶/伺服器模式

 簡單快速

 靈活

 無連接配接

 無狀态

 在浏覽器位址欄輸入url,之後經曆的流程

 1.DNS解析,根據URL 從 浏覽器緩存,系統緩存,路由緩存等等找IP位址

 2.根據IP位址和對應的端口 建立TCP

 3.發送HTTP請求

 4.伺服器處理請求并傳回HTTP封包

 5.浏覽器解析渲染頁面

 HTTP狀态碼

 1xx : 訓示資訊-表示請求已接受,繼續處理

 2xx :成功--表示請求已被成功接收、了解、接受

 3xx : 重定向--要完成請求必須進行更進一步的操作

 4xx :用戶端錯誤--請求有文法錯誤或請求無法實作

 5xx :伺服器端錯誤--伺服器未能實作合法的請求

 200 成功

 400 用戶端請求有文法問題

 401 請求未經授權

 404 沒找到頁面

 403 伺服器接到請求,但拒絕服務

 500 伺服器問題

 503 伺服器目前不能處理用戶端請求,一段時間後才能回複正常

 因為http是無狀态的是以要引用 

 cookie 和 session

 cookie 是由伺服器發給用戶端的特殊資訊,以文本

         的形式存放在用戶端。

         用戶端再次請求的時候,會把Cookie回發

         伺服器接收到後,會解析Cookie生成與用戶端

         相對應的内容

 session 伺服器端的機制,在伺服器上儲存的資訊

         解析用戶端請求并操作session id,按需儲存狀态資訊

         實作方式:使用cookie 或url 實作 jsessionID

cookie 更快  session 更安全

http 與 https 的差別

https 中包含了 

SSL :

    為網絡通信提供安全及資料完整性的一種安全協定

    是作業系統對外的API

    采用身份驗證 和 資料加密 保證安全

https資料的傳輸流程:

    浏覽器将支援的加密算法資訊發送給伺服器

    伺服器選擇一套浏覽器支援的加密算法,以證書的形式回發浏覽器

    浏覽器驗證證書的合法性,并結合證書中的公鑰加密

    資訊發送給伺服器

    伺服器使用私鑰解密資訊,驗證哈希,加密響應消息

    回發浏覽器

    浏覽器解密響應消息,并對消息進行驗真,之後

    進行加密互動資料

https 需要到CA申請證書,Http 不需要

https 密文傳輸 , http 明文傳輸

https 預設使用443端口  http 預設使用80端口

socket

    ip+端口 唯一标示網絡中的程序

繼續閱讀