WebSocket相关知识
什么是WebSocket?
WebSocket是一种基于TCP连接的全双工通信协议,即客户端和服务器可以同时发送和接收数据
WebSocket和HTTP有什么区别?
1.WebSocket是双向通信协议,HTTP是单向通信协议
2.WebSocket使用ws://或者wss://作为前缀
3.WebSocket可以支持扩展,用户可以实现部分自定义的子协议
4.WebSocket数据格式比较轻量
WebSocket的工作过程
1.客户端向服务端发起HTTP请求,要求升级协议为WebSocket
2.服务器收到请求后,如果支持WebSocket,回复101状态码,表示成功升级
3.客户端和服务端建立WebSocket连接,可以进行双向的数据传输,以帧的形式传送
4.双方各发送一个关闭帧,TCP连接关闭
通过心跳机制来保持WebSocket连接的稳定性和活跃性
SSE与WebSocket的区别
1.SSE单向通信,WebSocket全双工通信
2.SSE基于HTTP,不需要特殊协议或服务器实现,WebSocket需要单独服务器处理协议
3.SSE只能传送文本消息,WebSocket默认支持传送二进制数据
PING
PING命令的作用是什么?
测试网络中主机之间的连通性和网络延迟
PING命令的工作原理
通过在网络上发送和接收ICMP报文实现的
DNS
DNS是什么?解决了什么问题?
域名管理系统,解决的是域名和IP地址的映射问题
DNS服务器有哪些?
根DNS服务器、顶级域DNS服务器、权威DNS服务器、本地DNS服务器
DNS解析过程
以百度为例:
输入www.baidu.com域名,操作系统会先检查自己本地的 hosts 文件 是否有这个网址映射关系,如果有就先调用这个IP地址映射。如果没有则查找本地 DNS 解析器缓存 ,是否有这个网址映射关系,有直接返回。
如果没有,首先找本地 DNS 服务器 ,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,此解析具有权威性。如果没有,但该服务器已缓存 了此网址映射关系,则调用这个 IP 地址映射,此解析不具有权威性。
如果以上都没有,则根据本地 DNS 服务器的设置进行查询。
非转发模式 :本地 DNS 就把请求发至根 DNS ,根 DNS 服务器返回一个负责该顶级域名服务器的一个IP。本地 DNS 服务器会联系负责 .com 域的这台服务器。这台负责 .com 域的服务器如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(baidu.com)给本地 DNS 服务器。当本地 DNS 服务器找 baidu.com 域服务器,重复上面的动作,进行查询,直至找到结果。
转发模式 :此 DNS 服务器就会把请求转发至上一级 DNS 服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根 DNS 或把转请求转至上上级,以此循环。不管是本地 DNS 服务器用的是转发,还是根提示,最后都是把结果返回给本地 DNS 服务器,由此 DNS 服务器再返回给客户机。
TCP与UDP
TCP三次握手
1.客户端发送带有SYN(SEQ = x)标志的数据包到服务端,然后客户端进入SYN_SEND状态,等待 服务端的确认
2.服务端发送带有SYN+ACK(SEQ = y, ACK = x + 1)标志的数据包到客户端,然后服务单进入 SYN_RECV状态
3.客服端发送带有ACK(ACK = y + 1)标志的数据包到服务端,然后客户端和服务端都进入 ESTABLISHED状态,完成三次握手
为什么要三次握手?
目的是建立可靠的通信信道,双方确认自已与对方的发送与接收是正常的