TCP、Socket、Http、WebSocket

2023-03-27  本文已影响0人  叫我颜先生

概览


详细描述

OSI模型
1679993443339.png
TCP/IP协议是什么

TCP/IP协议被组织成四个概念层,TCP/IP 协议可以看做是对 OSI 模型的一种简化

ICP/IP协议族并不包含物理层和数据链路层,因此它不能独立完成整个计算机网络系统的功能,必须与许多其他的协议协同工作

HTTP、FTP、SMTP等

IP、ICMP

Socket是什么

Socket是API调用接口,Socket 并不是一个协议,Socket实际上是对TCP/IP协议的封装, 从而形成了我们知道的一些最基本的函数接口,比如create、listen、connect、accept、send、read和write

socket.gif

主机A的应用程序要能和主机B的应用程序通信,必须通过Socket建立连接,而建立Socket连接必须需要底层TCP/IP协议来建立TCP连接。建立TCP连接需要底层IP协议来寻找网络中的主机。我们知道网络层使用IP协议可以帮助我们根据IP地址来找到目标主机,但是一台主机上可能运行着多个应用程序,如何才能与指定的应用程序通信就要通过TCP或UDP的地址也就是端口号来指定。这样就可以通过一个Socket实例唯一代表一个主机上的一个应用程序的通信链路了

socket-traffic.gif
Http是什么

Http是应用层协议, 短连接,单向,超文本传输协议, web上一问一答的两台计算机之间遵循的通信规则

WebSocket是什么

WebSocket是应用层协议,长连接,双向,是基于Http协议的扩展,用于建立客户端和服务器的双向通道

引入原因: http协议是一种单向的网络协议,在建立连接后,它只允许客户端向服务端发出请求资源后,服务端才能返回相应的数据;而服务端不能主动推送数据给客户端。这样设计的原因当初是为了防止客户端受到广告商强行塞加服务给客户端

传统的轮询方式,即采用http协议不断发送请求,有很多缺点:浪费流量(http请求头比较大)、浪费资源(没有更新也要请求)、消耗服务器、CPU占用(没有信息也要接收请求)

WebSocket是保证只要在服务端和客户端建立连接后任何一端发起消息,相互推送消息,效率也是极大的提高了,并且服务端和客户端之间的标头信息很小,可以降低服务端的资源浪费

WebSocket必须依赖Http协议进行一次握手,握手成功后,数据就直接从TCP通道传输,与Http无关了

WebSocket与Web关系

WebSocket API是HEML5标准的一部分,但这并不代表 WebSocket 一定要用在 HTML 中,或者只能在基于浏览器的应用程序中使用。

实际上,许多语言、框架和服务器都提供了 WebSocket 支持,例如:


文档参考

网络协议——Http、Socket、WebSocket - 简书 (jianshu.com)

Socket 与 WebSocket | ZRONG's BLOG (zengrong.net)

(113条消息) OSI七层模型详解小鹏加油的博客-CSDN博客

(113条消息) WebSocket(2)--为什么引入WebSocket协议_尹立的博客-CSDN博客

上一篇 下一篇

猜你喜欢

热点阅读