websocket 和 tcp有什么区别
什么是Websocket?
Websocket 是一种在单个tcp连接上进行全双工通信的协议。他通过握手阶段建立连接,然后在连接建立后保持持久连接,用于在客户端和服务器之间传递消息。
Websocket常用于实现实时通信,聊天,游戏等应用,能够实现服务器主动推送消息给客户端,同时也能够客户端主动发送消息给服务器
什么TCP?
TCP是以一种面向连接的,可靠的传输协议,它保证了传输数据时的可靠性和有序性。TCP 建立连接后,通过三次握手确认建立连接,然后进行数据传输,最后通过四次挥手关闭连接。
区别:
1、连接建立方式
TCP通过三次握手建立连接,保证了双方连接可靠性,而Websocket则是通过HTTP握手建立连接,成本更低。
2、数据传输方式
TCP 是一种面向字节流的传输协议,数据传输时需要先将数据拆分成合适大小的数据包,然后通过 TCP 进行传输。
而 WebSocket 是基于消息的传输协议,可以将数据封装成消息进行传输,无需拆分和组装数据包。
3、服务器推送能力
WebSocket 可以实现服务器主动推送消息给客户端,适用于实时通信、聊天、游戏等需要实时推送的场景。
而 TCP 则需要客户端主动请求服务器,然后服务器响应客户端的请求。
4、数据传输效率
由于 WebSocket 建立连接后保持持久连接,可以在连接保持的情况下进行多次数据传输,因此通信效率更高。
而 TCP 需要在每次请求和响应之后进行连接的关闭和重新建立,多次连接的开销会导致通信效率较低。