当前位置: 首页 > >

socket 与 websocket 区别

发布时间:

socket 与 websocket

讲到socket与 websocket 首先要讲软件通信过程
软件通信有七层结构(osi模型)中由协议套协议最终组成最高级应用层协议(http等等),下三层结构偏向与数据通信,上三层更偏向于数据处理,中间的传输层则是连接上三层与下三层之间的桥梁,每一层都做不同的工作,上层协议依赖与下层协议。


七层结构的最主要功能就是帮助不同系统的主机在不同的网络中进行数据传输。


数据传输层:tcp、udp协议,tcp协议依赖互联网协议(ip协议)。


socket在第五层会话层,它并不是一个协议,而是一组接口(api),更是一个规范,为了方便使用底层协议而存在的一种抽象层。
websocket,http 。。等协议都是应用层协议(更面向于用户),依赖于传输层tcp协议。


websocket 在进行通信时,使用了http进行一次握手,数据传输使用tcp通道传输


socket更像是一种网络编程的概念,是抽象出来的。


虽然名字很像,但是也有区别

两台机器需要进行通信就需要进行socket连接,进行socket连接就需要依赖底层tcp协议,tcp协议又依赖于ip协议来找寻网络中的主机。找到了主机后,根据端口号( TCP 、UDP 地址)与应用程序进行通信。
对用户来说可以直接使用socket,根据参数让它去符合不同的协议进行通信。


建立tcp连接进行三次握手:
client向server发送请求报文,server回复ack报文并分配资源,client发送报文并分配资源,连接建立。


断开tcp连接进行四次握手:
双方都有可能发起断开连接的请求。
假如由client发起 一个 断开连接的请求,server端接收到了请求 并且回复报文,这时client继续等待server的报文,然后server又发送了一个报文,准备关闭连接了,client接收到了这个报文,它又向server发送了一个报文(client关闭链接),server接收到之后就关闭了连接,client没有收到回复则关闭连接。
由于tcp是面向链接的,所以只能用于端到端的通讯。


tcp是可靠的连接,udp是不可靠的连接


tcp要建立起连接了之后才可以发送数据udp不需要建立连接就可以发送数据



友情链接: