搬砖:TCP、UDP、HTTP、SOCKET、WebSocket之间的区别

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

搬自:https://blog.csdn.net/sinat_31057219/article/details/72872359

TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,
每层都有相应的协议,如下图

IP:

网络层协议;(高速公路)
TCP和UDP:

传输层协议;(卡车)
HTTP:

应用层协议;(货物)。HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议。客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端。
SOCKET:

套接字,TCP/IP网络的API。(港口码头/车站)Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。
TCP/IP:

代表传输控制协议/网际协议,指的是一系列协议,TCP/IP 模型在 OSI 模型的基础上进行了简化,变成了四层,从下到上分别为:网络接口层、网络层、传输层、应用层。与 OSI 体系结构对比如下:
TCP/UDP区别:
TCP

(传输控制协议,Transmission Control Protocol):(类似打电话)
面向连接、传输可靠(保证数据正确性)、有序(保证数据顺序)、传输大量数据(流模式)、速度慢、对系统资源的要求多,程序结构较复杂,
每一条TCP连接只能是点到点的,
TCP首部开销20字节。
UDP

(用户数据报协议,User Data Protocol):(类似发短信)
面向非连接 、传输不可靠(可能丢包)、无序、传输少量数据(数据报模式)、速度快,对系统资源的要求少,程序结构较简单 ,
UDP支持一对一,一对多,多对一和多对多的交互通信,
UDP的首部开销小,只有8个字节。
tcp三次握手建立连接:

第一次握手:客户端发送syn包(seq=x)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(seq=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。

主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;
主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;
主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。
三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。
Websocket

Websocket协议解决了服务器与客户端全双工通信的问题。

注:什么是单工、半双工、全工通信?
信息只能单向传送为单工;
信息能双向传送但不能同时双向传送称为半双工;
信息能够同时双向传送则称为全双工。

websocket协议解析
wensocket协议包含两部分:一部分是“握手”,一部分是“数据传输”。
WebSocket和Socket区别

可以把WebSocket想象成HTTP(应用层),HTTP和Socket什么关系,WebSocket和Socket就是什么关系。

HTTP 协议有一个缺陷:通信只能由客户端发起,做不到服务器主动向客户端推送信息。

WebSocket 协议在2008年诞生,2011年成为国际标准。所有浏览器都已经支持了。
它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。
参考:

揭开Socket编程的面纱

图解TCP-IP协议

Android 进阶12:进程通信之 Socket (顺便回顾 TCP UDP)

WebSocket与TCP/IP

websocket 历史及使用详解

WebSocket 教程
---------------------  
作者:Mars-xq  
来源:CSDN  
原文:https://blog.csdn.net/sinat_31057219/article/details/72872359  
版权声明:本文为博主原创文章,转载请附上博文链接!

一文搞懂SocketTCPUDPHTTPWebSocket的关系与区别 的视角,带你快速理清这些网络基础概念的本质与联系。无论你是后端开发者、前端工程师还是运维人员,理解这些概念都将帮助你更高效地解决网络问题!:传统HTTP/1.0每次请求后断开(HTTP/1.1支持长连接)(如OSI七层模型或TCP/IP四层模型)。:每次请求独立(通过Cookie/Session维持状态):应用层协议,基于TCP(端口同HTTP,可绕过防火墙):应用层协议,基于TCP(默认端口80/443):一次握手后持续连接(避免HTTP频繁握手):适合实时应用(如聊天室、股票行情) 阅读详情

相关推荐

websocket深入浅出

websocket简介 websocket是什么 答: 它是一种网络通信协议,是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 为什么需要websocket? 疑问? 我们已经有了 HTTP 协议,为什么还需要另一个协议?它能带来什么好处? 答: 因为 HTTP 协议有一个缺陷:通信只能由客户端发起 我们都知道轮询的效率低,非常浪费资源(因为必须不停连接,或者 HTTP...

Leon的博客 13万+

一文说清楚httptcpsocketwebsocket区别

一文说清楚httptcpsocketwebsocket区别

诺浅的专栏 1万+

Spring WebSocket实现实时通信的详细教程

WebSocket 是基于TCP/IP协议,独立于HTTP协议的通信协议WebSocket 连接允许客户端和服务器之间的全双工通信,以便任何一方都可以通过已建立的连接将数据推送到另一方。我们常用的HTTP是客户端通过「请求-响应」的方式与服务器建立通信的,必须是客户端主动触发的行为,服务端只是做好接口被动等待请求。而在某些场景下的动作,是需要服务端主动触发的,比如向客户端发送消息、实时通讯、远程控制等。

lucky_fd的博客 9327

WebSocket(保姆级教学)

快速了解WebSocket,对WebSocket的介绍堪称保姆级,初学者上手即可使用

weixin_70563938的博客 6560

Websocket 详解

详细了解websocket及应用

Hei, Welcome To vickie's Blog,Good Good Study, Day Day Up ~ 2万+

WebSocket(看这一篇就够了)

WebSocket是基于 TCP 的一种新的应用层网络协议。它提供了一个全双工的通道,允许服务器和客户端之间实时双向通信。因此,在 WebSocket 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输,客户端和服务器之间的数据交换变得更加简单。WebSocket 的其他特点包括:(1)建立在 TCP 协议之上,服务器端的实现比较容易。(2)与 HTTP 协议有着良好的兼容性。

m0_74436895的博客 5万+

网络协议socketwebSocket

一、网络协议 网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。 1、OSI七层协议 OSI是一个开放性的通信系统互连参考模型,他是一个定义得非常好的协议规范。OSI模型有7层结构,从上到下分别是 7应用层6表示层5 会话层 4传输层3 网络层 2数据链路层1物理层。 下面的图表显示不同的协议在最初OSI模型中的位置: 7 应用层 例如HTTP、SMTP...

yjclsx的博客 44万+

TCPUDPHTTPSOCKETWebSocket之间区别

TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层, 每层都有相应的协议,如下图IP:网络层协议;(高速公路)TCPUDP:传输层协议;(卡车)HTTP:应用层协议;(货物)。HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议。客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端。SOCKET:套

火星男孩的分享空间 3万+

【Linux网络】TCP UDP socket HTTP webSocket之间区别

本文首先讲述了OSI和TCP/IP模型,重点讲述了TCP UDP socket HTTP webSocket之间区别,介绍了HTTPWebSocket协议

m0_63198468的博客 4385

HTTPTCPSocketWebSocket区别和联系

目录一、OSI网络七层模型二、TCP连接三、HTTP连接四、 WebSocket五、Socket六、SOCKET连接与HTTP连接 七、SOCKET连接与TCP/IP连接八、WebSocketSocket的关系九、WebSocketHTTP的关系 是 的缩写,译为“开放式系统互联”。 模型把网络通信的工作分为 7 层,从下到上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。但是, 只是存在于概念和理论上的一种模型,它的缺点是分层太多,增加了网络工作的复杂性,所以没有大规模应用。后来人

林在闪闪发光的博客 2543

TCP连接、Http连接与Socket连接的区别

文章目录HTTPSocketTCP区别Socket(套接字)Socket长连接什么时候用长连接,短连接TCP连接和HTTP连接的区别TCP连接与Socket连接的区别HTTP连接与Socket连接的区别常见问题什么时候该用HTTP,什么时候该用socket ?浏览器在与服务器建立了一个 TCP 连接后是否会在一个 HTTP 请求完成后断开?什么情况下会断开?一个TCP 连接可以发多少个 HT...

憧憬的专栏 1万+

计算机网络——SOCKETTCPHTTP之间区别与联系

计算机网络——SOCKETTCPHTTP之间区别与联系

NRWHF的博客 7599

TCPUDPSocketWebSocketHTTPHTTPS之间区别

写在前面,公司最近在有关于通过手机或者硬件上报数据给服务器的一个项目,涉及到SocketUDP传输的相关知识,在此记录下学习相关知识的过程。 首先我们来看下网络的七层协议,下面是协议层从底层至顶层的一个模型图: Scoket 单独把Scoket列出来是因为,他不是一个协议,他是两个应用程序之间互相通信得管道,在TCP/IP得上一层,也就是在传输层和应用层之间的抽象层,是一组API,他可以创建T...

YaSuoVery6^^的博客 809

一文梳理HTTPTCPSocketWebSocket区别和联系

单工:信息只能单向传送;半双工:信息能双向传送但不能同时双向传送;全双工:信息能够同时双向传送。

IT全栈 华强工作室 3963

HTTPTCPUDPSocketWebsocket之间的联系与区别

HTTPTCPUDPSocketWebsocket之间的联系与区别 TCP/IP协议(Transmission Control Protocol/InternetProtocol): 网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。 通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP

纸上得来终觉浅 1565

WebSocketSocketTCPHTTP的关系及区别

Websocket:同HTTP一样也是应用层的协议,但是它是一种双向通信协议,是建立在TCP之上的,解决了服务器与客户端全双工通信的问题,包含两部分:一部分是“握手”,一部分是“数据传输”。HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。Socket是对TCP/IP协议的封装,像创建Socket连接时,可以指定使用的传输层协议Socket可以支持不同的传输层协议(TCPUDP),当使用TCP协议进行连接时,该Socket连接就是一个TCP连接。

qq_33588386的博客 1569

webSocketSocket之间区别联系

一、webSocketSocket的概念介绍 1、socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用以实现进程在网络中通信。 2、WebSocket协议是基于TCP的一种新的网络协议,和http协议一样属于应用层协议,是一种让客户端和服务器之间能进行双向实时通信的技术。 二、webSocketSocket区别 1、原理上的区别Socket是传输控制层协议WebSocket是应用层协议Socket是应用层与TC

忆晨的博客 3万+

全面理解WebSocketSocketTCPHTTP的关系及区别

全面理解WebSocketSocketTCPHTTP的关系及区别:http://www.webzsky.com/?p=1388 1.什么是WebSocket及原理 WebSocket是HTML5中新协议、新API。 WebSocket从满足基于Web的日益增长的实时通信需求应运而生,解决了客户端发起多个Http请求到服务器资源浏览器必须要在经过长时间的轮询问题,实现里多路复用,是全双工、双向、单套接字连接,在WebSocket协议下服务器和客户端可以同时发送信息。 原理: WebSock

corleone_4ever的博客 4303
上一篇: 搬砖:《图解HTTP》一
下一篇: 搬砖:理解HTTP,TCP,UDP,Socket,WebSocket
nedwons
博客等级 码龄9年 311粉丝 572原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值