写在前面,公司最近在有关于通过手机或者硬件上报数据给服务器的一个项目,涉及到Socket、UDP传输的相关知识,在此记录下学习相关知识的过程。
首先我们来看下网络的七层协议,下面是协议层从底层至顶层的一个模型图:
Scoket
单独把Scoket列出来是因为,他不是一个协议,他是两个应用程序之间互相通信得管道,在TCP/IP得上一层,也就是在传输层和应用层之间的抽象层,是一组API,他可以创建TCP和UDP两种链接,所以他和Websocket没有特别大的关系,可以把WebSocket想象成HTTP(应用层),HTTP和Socket什么关系,WebSocket和Socket就是什么关系。
HTTP 协议有一个缺陷:通信只能由客户端发起,做不到服务器主动向客户端推送信息。下一篇博文学习如何使用socket进行UDP或者TCP传输。
webSocket
相同点:1. 都是一样基于TCP的,都是可靠性传输协议。2. 都是应用层协议。
不同点:1. WebSocket是双向通信协议,模拟Socket协议,可以双向发送或接受信息。HTTP是单向的。2. WebSocket是需要握手进行建立连接的。
联系:WebSocket在建立握手时,数据是通过HTTP传输的。但是建立之后,在真正传输时候是不需要HTTP协议的。
相对于传统 HTTP 每次请求-应答都需要客户端与服务端建立连接的模式,WebSocke