美文网首页
Socket-WebSocket

Socket-WebSocket

作者: 易书乂轩羽 | 来源:发表于2017-08-13 10:40 被阅读31次

    Socket:在各个领域有不同的概念,其中操作系统中是进程间通信的工具,网络传输中是封装传输层协议的一种技术,本身是为了方便使用者使用TCP/UDP协议进行网络通信的,所以Socket不仅支持TCP而且支持UDP

    WebSocket:是建立在TCP协议之上的,作为HTTP协议的补充;首先我们要了解HTTP协议是一种无状态的协议,而且1.0是只支持短连接的(一次连接只能有一次request-response),1.1后支持长连接(头部将入keep-alive,但是这种通信过程任然建立在poll之上,服务器被动传输数据,推送成本很高)所以为了弥补这种缺陷,WebSocket支持双向通信(本身HTTP和WebSocket都是建立在TCP协议之上的)

    WebSocket实现长连接方式:

    1、HTTP协议升级(需要客户端支持)

    2、http请求建立连接--应答状态为101

    3、WebSocket-双向通信(TCP通信)

    4、WebSocket-断开连接

    所以可以看出WebSocket和Socket本身没有什么关系,但是在TCP实现长连接的思路是是一致的,都需要3次握手和4次挥手,都需要维持心跳包(Ping、pong)

    心跳包作用:

    虽然说建立了长连接,但是网络不稳定是必然会发生的事情,还有防火墙的隔离都会导致通信中断,那么如何保证两端在发送数据的时候是保持着连接的呢,这就需要每隔一段时间进行一次无数据的空包传输,用于探测是否连接中断,如果中断,需要重新建立连接。

    影响网络因素:

    防火墙,网关,网络波动,而对于移动手机来说当手机接入网络时,其实进入的是局域网,所以ip是随机的,如果是接入电信局的网络,那么为了保证通信,减少路由压力,他会对路由表进行不定期删除,那么手机之前的连接就没有啦,如果需要发送数据,就必须重新建立连接,这也是移动通信的巨大开销诟病的来源。

    所有文章个人理解,如有纰漏,请大佬指点

    相关文章

      网友评论

          本文标题:Socket-WebSocket

          本文链接:https://www.haomeiwen.com/subject/fobsrxtx.html