1. TCP的三次握手?TCP的四次挥手?
客户端要建立连接:三次握手
客户端要断开连接,四次挥手,因为TCP连接是一个双工的通信模式。
TCP的三次握⼿和四次挥⼿
TCP协议是7层⽹络协议中的传输层协议,负责数据的可靠传输。在建⽴TCP连接时,需要通过三次握⼿来建⽴,过程是:
- 客户端向服务端发送⼀个SYN
- 服务端接收到SYN后,给客户端发送⼀个SYN_ACK
- 客户端接收到SYN_ACK后,再给服务端发送⼀个ACK
在断开TCP连接时,需要通过四次挥⼿来断开,过程是:
- 客户端向服务端发送FIN
- 服务端接收FIN后,向客户端发送ACK,表示我接收到了断开连接的请求,客户端你可以不发数据了,不过服务端这边可能还有数据正在处理
- 服务端处理完所有数据后,向客户端发送FIN,表示服务端现在可以断开连接
- 客户端收到服务端的FIN,向服务端发送ACK,表示客户端也会断开连接了
2. 从浏览器输入URL到页面加载完毕,都经历了什么?
- 经过域名解析DNS将url转成ip地址
- 将这个IP地址和服务器建立TCP网络连接,三次握手,随后向服务器发出http请求。http协议是tcp的上层协议。
- 服务器收到请求,处理完成后,将相应放到http相应信息里面,返回客户端
- 客户端对相应信息渲染,展示
3.TCP和UDP的区别?
-
TCP是一种面向连接的、可靠的、传输层通信协议,面向字节流,按顺序执行,不会重复,传输慢。
特点: 好比是打电话:面向连接的,点对点的通信,高可靠的,效率比较低,占用的系统资源比较多。 -
UDP是一种无需建立连接的, 不可靠的、传输层通信协议,以报文的方式传输,不可靠信道,效率高。
特点:好比是广播:不需要连接,发送方不管接收方有没有准备好,直接发消息;可以进行广播发送的;传输不可靠,有可能丢失消息;效率比较高;协议就会比较简单,占用的系统资源就比较少。 -
HTTP是TCP 的上层协议。
TCP建立连接三次握手,断开连接四次挥手。
如果是两次握手,可能造成连接资源浪费的情况。