websocket 和 tcp有什么区别

什么是Websocket?

Websocket 是一种在单个tcp连接上进行全双工通信的协议。他通过握手阶段建立连接,然后在连接建立后保持持久连接,用于在客户端和服务器之间传递消息。

Websocket常用于实现实时通信,聊天,游戏等应用,能够实现服务器主动推送消息给客户端,同时也能够客户端主动发送消息给服务器

 

什么TCP?

TCP是以一种面向连接的,可靠的传输协议,它保证了传输数据时的可靠性和有序性。TCP 建立连接后,通过三次握手确认建立连接,然后进行数据传输,最后通过四次挥手关闭连接。

 

区别:

1、连接建立方式

  TCP通过三次握手建立连接,保证了双方连接可靠性,而Websocket则是通过HTTP握手建立连接,成本更低。

2、数据传输方式

  TCP 是一种面向字节流的传输协议,数据传输时需要先将数据拆分成合适大小的数据包,然后通过 TCP 进行传输。

  而 WebSocket 是基于消息的传输协议,可以将数据封装成消息进行传输,无需拆分和组装数据包。

3、服务器推送能力

  WebSocket 可以实现服务器主动推送消息给客户端,适用于实时通信、聊天、游戏等需要实时推送的场景。

  而 TCP 则需要客户端主动请求服务器,然后服务器响应客户端的请求。

4、数据传输效率

  由于 WebSocket 建立连接后保持持久连接,可以在连接保持的情况下进行多次数据传输,因此通信效率更高。

  而 TCP 需要在每次请求和响应之后进行连接的关闭和重新建立,多次连接的开销会导致通信效率较低。

 

posted @ 2023-06-08 09:27  方达达  阅读(14)  评论(0编辑  收藏  举报