目录:
1、名词解析;
2、WebSocket简介与原理;
3、WebSocket和Http的关系和异同点;
4、WebSocket与Socket的区别;
5、Socket和TCP/IP;
6、一个应用程序的通信链路;
1、基础名词解析:
(1)IP:网络层协议;(高速公路)
(2)TCP和UDP:传输层协议;(卡车)
(3)HTTP:应用层协议(货物);
HTTP(超文本传输协议)是建立在TCP协议之上的一种应用。HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。
(4)Socket:套接字(港口码头/车站):不是一个协议,是抽象层
TCP/IP网络的API。Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。
TCP协议简化一下,就只有三个核心功能:建立连接、发送数据以及接收数据;Socket核心功能也是这样。所以Socket编程,理解为对TCP协议的具体实现。
(5)Websocket:
同HTTP一样也是应用层的协议,但是它是一种双向通信协议,是建立在TCP之上的,解决了服务器与客户端全双工通信的问题,包含两部分:一部分是“握手”,一部分是“数据传输”。握手成功后,数据就直接从 TCP 通道传输,与 HTTP 无关了
(6)通讯方式:
单工:数据只能单向传送;
半双工:数据能双向传送但不能同时双向传送;
全双工:数据能够同时双向传送。
2、WebSocket简介与原理:
(1)WebSocket是HTML5中新协议,新API。实现多路复用,是全双工、双向、单套接字连接,在WebSocket协议下服务器和客户端可以同时发送信息。
(2)WebSocket同HTTP一样也是应用层协议,但是它是双向通信协议,建立在TCP之上。
3、WebSocket和Http的关系和异同点:
(1)每个WebSocket连接都始于一个HTTP请求;
具体来说,WebSocket协议在第一次握手连接时,通过HTTP协议在传送WebSocket支持的版本号,协议的字版本号,原始地址,主机地址等等一些列字段给服务器端.
(2)相同点:
(1)都是建立在TCP之上,通过TCP协议来传输数据。
(2)都是可靠性传输协议。
(3)都是应用层协议。
(3)不同点:
(1)WebSocket支持持久连接,HTTP不支持持久连接。
(2)WebSocket是双向通信协议,HTTP是单向协议,只能由客户端发起,做不到服务器主动向客户端推送信息。
4、WebSocket与Socket的区别:
(1)Socket:不是一个协议,Socket是应用层与TCP/IP协议族通信的中间软件抽象层;
Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面;
(2)而 WebSocket 则不同,它是一个完整的应用层协议,包含一套标准的 API 。
所以,从使用上来说,WebSocket 更易用,而 Socket 更灵活。
5、Socket和TCP/IP:
(1)Socket是对TCP/IP协议的封装,像创建Socket连接时,可以指定使用的传输层协议;
(2)Socket可以支持不同的传输层协议(TCP或UDP);
(3)当使用TCP协议进行连接时,该Socket连接就是一个TCP连接。
6一个应用程序的通信链路:
(1)主机 A 的应用程序要能和主机 B 的应用程序通信,必须通过 Socket 建立连接;
(2)而建立 Socket 连接必须需要底层 TCP/IP 协议来建立 TCP 连接。
(3)建立 TCP 连接需要底层 IP 协议来寻址网络中的主机。
我们知道网络层使用的 IP 协议可以帮助我们根据 IP 地址来找到目标主机,但是一台主机上可能运行着多个应用程序;
(4)如何才能与指定的应用程序通信就要通过 TCP 或 UPD 的地址也就是端口号来指定。
这样就可以通过一个 Socket 实例唯一代表一个主机上的一个应用程序的通信链路了。