TCP三次握手和四次握手最直接的理解

2021-06-25 23:55:17 字數 955 閱讀 1826

網上有很多文章講tcp為什麼建立連線時需要三次握手,關閉連線時需要四次握手,講了很多原理,反而讓很多人難以理解。

其實只有一句話:tcp連線是兩個端點之間的事,由於tcp連線是可靠連線,所以不管是建立連線還是關閉連線,需要兩個端點都要傳送請求和收到確認

其次要理解tcp的通道是全雙工的,是可以讀和寫資料的,理解這個之後就明白了為什麼關閉連線時需要四次握手。

首先講三次握手,建立連線時不涉及到讀寫通道,只是兩個端點的請求和確認。要記住是兩個端點之間的,兩個端點是平等的關係。

從客戶端的角度來說,它只需要傳送乙個請求syn,然後收到ack就能知道連線是可以建立的

從伺服器端的角度,它也只需要傳送乙個請求syn,然後收到ack就能知道連線是可以建立的

所以建立連線時最少只需要三次握手即可,即伺服器端收到客戶端syn,之後向客戶端傳送ack的同時攜帶上自己的syn,這樣就只需要三次握手就能使雙方都發生syn和都收到ack.

當然你自己設計的時候也可以使用4次或者更多的握手,但是最少3次即可

關閉連線時也還是兩個端點都要傳送請求和收到確認。但是關閉連線時涉及到兩個端點的讀寫通道的事。

從客戶端的角度來說,它傳送乙個關閉請求fin,然後收到ack就知道可以關閉連線的

從伺服器的角度來說,它傳送乙個關閉請求fin,然後收到ack就知道可以關閉連線的

但是由於是讀和寫信道,所以伺服器端在收到客戶端的關閉fin時,可能還在往客戶端傳送訊息,所以只能先傳送ack確認客戶端客戶關閉寫信道,這時候服務端不能使用通過一訊息傳送它的關閉fin,只能過會等它自己寫完了,才能重新傳送乙個關閉請求的fin。

所以比建立連線時多了一次握手,關閉連線時最少需要4次握手。理解了為什麼需要4次握手之後,就不難理解tcp半關閉的概念。

TCP三次握手和四次握手最直接的理解

網上有非常多文章講tcp為什麼建立連線時須要三次握手,關閉連線時須要四次握手。講了非常多原理。反而讓非常多人難以理解。事實上僅僅有一句話 tcp連線是兩個端點之間的事。因為tcp連線是可靠連線,所以無論是建立連線還是關閉連線,須要兩個端點都要傳送請求和收到確認 其次要理解tcp的通道是全雙工的。是能...

tcp三次握手和四次握手

建立tcp需要三次握手才能建立,而斷開連線則需要四次握手。整個過程如下圖所示 先來看看如何建立連線的。首先client端傳送連線請求報文,server段接受連線後回覆ack報文,並為這次連線分配資源。client端接收到ack報文後也向server段發生ack報文,並分配資源,這樣tcp連線就建立了...

TCP三次握手和四次握手

ip 網路層 不穩定性。硬體聯絡緊密 傳輸層 1.完全不彌補 udp 無連線不可靠報文傳輸 2.完全彌補 tcp 面向連線的可靠資料報傳遞 tcp傳送資料就包含了tcp三次握手建立連線和關閉連線的四次握手 建立連線用syn傳送,用ack應答 所謂三次握手就是客戶端與伺服器之間的三次應答。伺服器是一直...