沒有看過我寫的關于網絡協議的第一篇博客可以看【計算機網絡 | 第二篇】常見的通信協議(一)-CSDN博客
TCP的三次握手和四次揮手
TCP三次握手
三次握手是TCP協議建立可靠連接的過程,目的是確保客戶端和服務端雙方的雙向通信能力正常,并同步初始序列號。
簡單回答實例:
第一次握手:客戶端先發送一個SYN報文,帶上自己的初始序列號。
第二次握手:服務端回復一個SYN-ACK,確認客戶端的序列號,并發送自己的序列號。
第三次握手:客戶端回復一個ACK,確認服務端的序列號。
為什么需要三次握手呢??
1.防止歷史連接問題:若客戶端因網絡延遲重發SYN,舊的SYN可能新連接建立之后到達,通過三次握手,客戶端可通過的三次握手拒絕SYN,避免資源浪費。
2.確保雙向通信能力:若只有兩次握手只能確認客戶端的發送能力和服務端的接收能力,無法確認服務端的發送能力和客戶端的接收能力。
三次握手可以攜帶數據嗎?
在TCP三次握手過程中,第三次握手是可以攜帶數據的(客戶端發送完 ACK 確認包之后就進入 ESTABLISHED 狀態了),也就是說一旦完成前兩次握手,TCP協議允許在第三次握手時傳輸數據。
如果第三次握手的 ACK 確認包丟失,但是客戶端已經開始發送攜帶數據的包,那么服務端在收到這個攜帶數據的包時,如果該包中包含了 ACK 標記,服務端會將其視為有效的第三次握手確認。這樣,連接就被認為是建立的,服務端會處理該數據包,并繼續正常的數據傳輸流程。
?
TCP四次揮手
四次揮手是TCP協議安全斷開連接的的過程,目的是確保雙方數據完全傳輸完畢并且有序釋放資源。TCP是全雙工通信,需要雙方獨立關閉各自的數據流,因此需要四次交互。
簡單回答實例:
第一次揮手:主動方先發送FIN表示不再發送數據。
第二次揮手:被動方回復ACK確認收到,但可能繼續發送剩余數據。
第三次揮手:被動方數據發完后,再發送FIN表示準備關閉。
第四次揮手:主動方回復ACK,并等待一段時間確保對方收到。
為什么需要四次揮手?
1.全雙工特性:TCP允許雙方獨立發送和接收數據,關閉連接時,需雙方各自確認數據發送完畢。
2.ACK和FIN無法合并:被動方收到FIN后可能仍需處理數據,需要先發ACK確認,再發FIN關閉自身通道。
HTTP是基于TCP還是UDP?
HTTP/3.0 之前是基于 TCP 協議的,而 HTTP/3.0 將棄用 TCP,改用 基于 UDP 的 QUIC 協議 。
此變化解決了 HTTP/2.0 中存在的隊頭阻塞問題。隊頭阻塞是指在 HTTP/2.0 中,多個 HTTP 請求和響應共享一個 TCP 連接,如果其中一個請求或響應因為網絡擁塞或丟包而被阻塞,那么后續的請求或響應也無法發送,導致整個連接的效率降低。這是由于 HTTP/2.0 在單個 TCP 連接上使用了多路復用,受到 TCP 擁塞控制的影響,少量的丟包就可能導致整個 TCP 連接上的所有流被阻塞。HTTP/3.0 在一定程度上解決了隊頭阻塞問題,一個連接建立多個不同的數據流,這些數據流之間獨立互不影響,某個數據流發生丟包了,其數據流不受影響(本質上是多路復用+輪詢)。
?
IP
IP協議的作用:
IP是TCP/IP協議最重要的協議之一,屬于網絡層協議,主要作用是定義數據包的格式,對數據包進行路由和尋址,保證在網絡傳輸中到達正確目的地。
目前IP協議分為兩種:一種是過去的IPv4,一種是新的IPv6。
IPv4 使用 32 位地址作為其 Internet 地址,這意味著共有約 42 億( 2^32)個可用 IP 地址。
只靠IPv4,地址當然是不夠用的,因此有了IPv6.
IPv6 使用 128 位互聯網地址,這意味著越有 2^128(3 開頭的 39 位數字,恐怖如斯) 個可用 IP 地址。
據說IPv6可以給地球上的每一顆沙子都分配一個地址。
什么是IP地址,IP尋址如何工作?
每個連入互聯網的設備或域(如計算機、服務器、路由器等)都被分配一個 IP 地址(Internet Protocol address),作為唯一標識符。每個 IP 地址都是一個字符序列,如 192.168.1.1(IPv4)、2001:0db8:85a3:0000:0000:8a2e:0370:7334(IPv6) 。
當網絡設備發送 IP 數據包時,數據包中包含了 源 IP 地址 和 目的 IP 地址 。源 IP 地址用于標識數據包的發送方設備或域,而目的 IP 地址則用于標識數據包的接收方設備或域。這類似于一封郵件中同時包含了目的地地址和回郵地址。
網絡設備根據目的 IP 地址來判斷數據包的目的地,并將數據包轉發到正確的目的地網絡或子網絡,從而實現了設備間的通信。
這種基于 IP 地址的尋址方式是互聯網通信的基礎,它允許數據包在不同的網絡之間傳遞,從而實現了全球范圍內的網絡互聯互通。IP 地址的唯一性和全局性保證了網絡中的每個設備都可以通過其獨特的 IP 地址進行標識和尋址。
什么是IP地址過濾?
IP 地址過濾(IP Address Filtering) 簡單來說就是限制或阻止特定 IP 地址或 IP 地址范圍的訪問。例如,你有一個圖片服務突然被某一個 IP 地址攻擊,那我們就可以禁止這個 IP 地址訪問圖片服務。
IP 地址過濾是一種簡單的網絡安全措施,實際應用中一般會結合其他網絡安全措施,如認證、授權、加密等一起使用。單獨使用 IP 地址過濾并不能完全保證網絡的安全。
ARP
什么是Mac地址?
MAC 地址的全稱是 媒體訪問控制地址(Media Access Control Address)。如果說,互聯網中每一個資源都由 IP 地址唯一標識(IP 協議內容),那么一切網絡設備都由 MAC 地址唯一標識。
可以理解為,MAC 地址是一個網絡設備真正的身份證號,IP 地址只是一種不重復的定位方式(比如說住在某省某市某街道的張三,這種邏輯定位是 IP 地址,他的身份證號才是他的 MAC 地址),也可以理解為 MAC 地址是身份證號,IP 地址是郵政地址。MAC 地址也有一些別稱,如 LAN 地址、物理地址、以太網地址等。
APR協議解決了什么問題?
ARP 協議,全稱 地址解析協議(Address Resolution Protocol),它解決的是網絡層地址和鏈路層地址之間的轉換問題。因為一個 IP 數據報在物理上傳輸的過程中,總是需要知道下一跳(物理上的下一個目的地)該去往何處,但 IP 地址屬于邏輯地址,而 MAC 地址才是物理地址,ARP 協議解決了 IP 地址轉 MAC 地址的一些問題。