通信协议—IP、Http、TCP、UDP与Socket五者的关系

TCP HTTP UDP三者的关系:

TCP/IP:是个协议组,可分为四个层次:网络接口层、网络层、传输层和应用层。

  • 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。
  • 在传输层中有TCP协议与UDP协议。
  • 在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。

TCP/UDP协议:是传输层协议,主要解决数据如何在网络中传输。
HTTP:超文本传输协议,它是一个协议,并且是基于TCP/IP协议基础之上的应用层协议,主要解决如何包装数据。HTTP协议详细规定了浏览器与服务器之间相互通信的规则,是万维网交换信息的基础。(HTTP是基于请求-响应形式并且是短连接,并且是无状态的协议。

共同点:
都是通信协议,也就是通信时所遵守的规则,只有双方按照这个规则“说话”,对方才能理解或为之服务。

Socket:

  1. Socket不属于协议范畴,而是一个调用接口(API),Socket是对TCP/IP协议的封装,通过调用Socket,才能使用TCP/IP协议。如,http就是基于tcp的,用socket可以创建tcp连接,也可以创建udp连接,这意味着,用socket可以创建任何协议的连接,因为其它协议都是基于此的。
  2. Socket是为了实现以上的通信过程而建立成来的通信管道,其真实的代表是客户端和服务器端的一个通信进程,双方进程通过socket进行通信,而通信的规则采用指定的协议。
  3. Socket连接是长连接,理论上客户端和服务器端一旦建立连接将不会主动断开此连接。Socket连接属于请求-响应形式,服务端可主动将消息推送给客户端。

一个形象的比喻:TCP/IP是由SOCKET修建公路,HTTP是公路上跑的车,XML或JSON是车装载的货物。

补充:WebSocket

  1. 命名方面,Socket是一个深入人心的概念,WebSocket借用了这一概念;
  2. 使用方面,完全两个东西;
  3. WebSocket 和 HTTP 一样,是应用层的协议,WebSocket协议弥补了 HTTP协议的不足。想一想HTTP和Socket什么关系,WebSocket和Socket就是什么关系。

你可能感兴趣的:(通信协议—IP、Http、TCP、UDP与Socket五者的关系)