说说 TCP 与 UDP 的区别,以及各自的优缺点
TCP是面向连接的,发消息之前要建立连接,UDP是无连接的,发送数据之前不需要建立连接。
TCP提供可靠的消息发送,无差错,不会丢失,且按顺序到达,确认消息可靠,有重发机制。UDP尽最大努力交付,不能完全确保消息可靠。
UDP具有较好的实时性,工作效率比TCP高。
每一条TCP信息都是1对1的;UDP支持1对1、1对多、多对多的通信。
TCP对资源要求比较多,UDP对资源要求比较少。
说一下 HTTP 和 HTTPS 的区别
端口不同:HTTP是80端口、HTTPS是443端口
资源消耗不同:HTTPS需要对消息进行加解密处理,需要消耗CPU或者内存资源
开销:HTTPS需要单独购买证书。
TCP三次握手
TCP三次握手,其实就是简历TCP连接的一个过程,客户端和服务端交互需要3个数据包,握手的主要作用是确认双方的接收和发送能力正常。
第一次握手:客户端发送报文,进入等待状态,等待服务器确认
第二次握手:服务器收到报文,需要给客户端发送确认报文,同时服务器也向客户端发送一个报文。
客户端收到报文,向服务端发送确认包。
TCP 如何保证可靠性
序列号和确认机制:发送端发送数据包会有序列号
超时重发机制:发送端发送数据包后有一个定时器,如果一段时间后没有收到返回信息,这个时候进行消息重发
对乱序包进行排序:
丢弃重复数据
流量控制:可变的滑动窗口协议。
OSI 的七层模型都有哪些?
应用层
表示层
会话层
传输层
网络层
物理层