三次握手
第一次: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请求。
- 浏览器获取服务发来的相应,将数据渲染在页面上。
- 浏览器和服务器进行四次挥手。
网友评论