0
據我所知,在三次握手中,有時接收端在建立連接(捎帶)時會發送一個SYNACK數據包,但是它何時會發送一個SYN然後發送一個ACK數據包?TCP三次握手 - 捎帶應答
例如:
- > SYN
< -SYN_ACK
- > ACK
對:
- > SYN
< -SYN
- > SYN_ACK
謝謝!
據我所知,在三次握手中,有時接收端在建立連接(捎帶)時會發送一個SYNACK數據包,但是它何時會發送一個SYN然後發送一個ACK數據包?TCP三次握手 - 捎帶應答
例如:
- > SYN
< -SYN_ACK
- > ACK
對:
- > SYN
< -SYN
- > SYN_ACK
謝謝!
沒有也不會 - 在這裏就是爲什麼
SYN通常是由「客戶」(比如瀏覽器)。當它要打開一個TCP連接到服務器(例如Web服務器發送的原因。 )。服務器事先沒有辦法「知道」哪個客戶想要打開一個連接(並因此發送一個SYN)給它。所以它不能發送不請自來的SYN。
SYN和ACK是標誌,所以來自服務器的SYN-ACK是對客戶端的SYN(以及它自己的SYN)的ACK。從技術上講,它可以單獨發送它們,但是,單獨發送SYN和ACK將涉及額外的半程往返。 (c)SYN - >,< - SYN(s),< -ACK(s),(c)ACK - >),它不會比三路實現更多的可靠性握手優惠。因此,這樣做沒有意義。
話雖如此,你可以理論上設計一個協議與4方式握手,但TCP並非如此設計。
希望有所幫助。
謝謝!這正是我所期待的! – user1670032
@ user1670032您應該將此標記爲您問題的答案 – FlySoFast