TCP的三次握手和四次挥手

三次握手

第一次:SYN包,A向B发送SYN包代表请求B的一个端口。
第二次:如果B要打开了端口,会向A发送一个ACK确认,我已经打开了。然后再发送一个SYN包代表B请求A某个端口打开。
第三次:A同意了打开端口,再给发送一个确认ACK。

四次挥手

第一次:A向B发送FIN包代表,我要关闭端口了。
第二次:B向A发送ACK包,代表我知道了你关闭端口了。而此时,可能B还没有发送完 ,所以这时B还不能告诉A我要关闭端口了。
第三次:B向A发送FIN包,告诉A我也要关端口了。
第四次:A向B发送ACK包,告诉B我知道你要关端口了。

注意:为什么不是3次挥手?

在客服端第1次挥手时,服务端可能还在发送数据。

所以第2次挥手和第3次挥手不能合并。

一个小问题:

当点击一个url时,到数据显示到页面上,在此之间都经过了什么?

  • 首先DNS域名解析,将域名解析成ip地址。
  • 浏览器和服务器进行tcp三次握手。
  • 浏览器向服务器发送http请求。
  • 浏览器获取服务发来的相应,将数据渲染在页面上。
  • 浏览器和服务器进行四次挥手。

你可能感兴趣的:(TCP的三次握手和四次挥手)