首页 > 其他分享 >socket工作与TCP/IP的哪一层?

socket工作与TCP/IP的哪一层?

时间:2023-06-06 11:02:54浏览次数:38  
标签:Socket IP TCP 服务器 接字 客户端 连接 socket

socket工作与TCP/IP的哪一层?_套接字

 

 

要想明白 Socket,必须要理解 TCP 连接。

TCP 三次握手:握手过程中并不传输数据,在握手后服务器与客户端才开始传输数据,理想状态下,TCP 连接一旦建立,在通讯双方中的任何一方主动断开连接之前 TCP 连接会一直保持下去。

Socket 是对 TCP/IP 协议的封装,Socket 只是个接口不是协议,通过 Socket 我们才能使用 TCP/IP 协议,除了 TCP,也可以使用 UDP 协议来传递数据。

创建 Socket 连接的时候,可以指定传输层协议,可以是 TCP 或者 UDP,当用 TCP 连接,该Socket就是个TCP连接,反之。

Socket 原理

Socket 连接,至少需要一对套接字,分为 clientSocket,serverSocket 

连接分为3个步骤:

(1) 服务器监听:服务器并不定位具体客户端的套接字,而是时刻处于监听状态;

(2) 客户端请求:客户端的套接字要描述它要连接的服务器的套接字,提供地址和端口号,然后向服务器套接字提出连接请求;

(3) 连接确认:当服务器套接字收到客户端套接字发来的请求后,就响应客户端套接字的请求,并建立一个新的线程,把服务器端的套接字的描述发给客户端。一旦客户端确认了此描述,就正式建立连接。而服务器套接字继续处于监听状态,继续接收其他客户端套接字的连接请求.

Socket为长连接:通常情况下Socket 连接就是 TCP 连接,因此 Socket 连接一旦建立,通讯双方开始互发数据内容,直到双方断开连接。在实际应用中,由于网络节点过多,在传输过程中,会被节点断开连接,因此要通过轮询高速网络,该节点处于活跃状态。

很多情况下,都是需要服务器端向客户端主动推送数据,保持客户端与服务端的实时同步。

若双方是 Socket 连接,可以由服务器直接向客户端发送数据。

若双方是 HTTP 连接,则服务器需要等客户端发送请求后,才能将数据回传给客户端。

因此,客户端定时向服务器端发送请求,不仅可以保持在线,同时也询问服务器是否有新数据,如果有就将数据传给客户端。



标签:Socket,IP,TCP,服务器,接字,客户端,连接,socket
From: https://blog.51cto.com/u_4018548/6422795

相关文章

  • macOS Sonoma 发布,全面提升生产力和创意工作流(ISO、IPSW、PKG 下载)
    macOSSonoma发布,全面提升生产力和创意工作流(ISO、IPSW、PKG下载)本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。请访问原文链接:https://sysin.org/bl......
  • 如何使用TypeScript和Styled-Components构建图像轮播组件
    近年来,OTT(over-the-top)视频流媒体平台变得更加创新和易于使用。在他们的用户界面中,电影和连续剧的标题排列得清晰可见。在本教程中,我将指导您完成创建图像轮播组件的过程,该组件看起来就像您在许多OTT平台(想想Netflix)上看到的一样。我们将从创建原子组件开始,例如Tags、Descrip......
  • nginx开启websocket
    http{map$http_upgrade$connection_upgrade{defaultupgrade;''close;}upstreamwebsocket{server192.168.100.10:8010;}server{listen8020;location/{proxy_p......
  • javascript笔记
    javascript笔记获得焦点onfocus,失去焦点onblurisNaN()判断是非数字undefined和数字相加最后的结果是NaNnull和数字相加最后的结果是数字typeof空格变量名或typeof(变量名)可以检测变量的类型parseInt('120.8px')最后的结果是120->数字;自动去掉px......
  • 【网络基础】【HTTP】如何理解是 TCP 面向字节流协议?
    1  前言TCP是面向字节流的协议,UDP是面向报文的协议?这里的「面向字节流」和「面向报文」该如何理解。我们这节来看看哈。2  如何理解字节流?之所以会说TCP是面向字节流的协议,UDP是面向报文的协议,是因为操作系统对TCP和UDP协议的发送方的机制不同,也就是问题原因在发......
  • springboot 整合websocket
    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency>@ConfigurationpublicclassWebsocketConfig{@BeanpublicSe......
  • TypeScript Vs JavaScript 区别
    一、观察1.JS平常的复制类型letval;val=123;val="123";val=true;val=[1,3,5];注意点:由于JS是弱类型的,所以只要定义了一个变量,就可以往这个变量中存储任意类型的数据也正是因为如此,所以会给我们带来一个问题2.假设a是一个数组,b是一个数值func......
  • day09-SpringCloud Sleuth+Zipkin-链路追踪
    SpringCloudSleuth+Zipkin-链路追踪官网:spring-cloud/spring-cloud-sleuth:Distributedtracingforspringcloud(github.com)分布式链路追踪之SpringCloudSleuth+Zipkin最全教程!-bucaichenmou-博客园(cnblogs.com)1.Sleuth+Zipkin是什么在微服务框架中,一个由客户......
  • Rockchip RK3399 - Mali-T864 GPU驱动
    一、图像界面卡顿问题在前面的文章我们已经移植了在NanoPC-T4开发板上移植了uboot2023.04、linux5.2.8、以及ubuntu20.04.4根文件系统。然后在使用ubuntu桌面环境的时候,发现了一个问题,随便打开一个网页,视频都加载不出来,同时看到CPU的占用率会急剧升高;1.1产生原因造成这种......
  • TypeScript开篇
    1.什么是TypeScript(TS)?Typescript为JS带来了类型能力,如今已被越来越多的大型前端项目选用。Typescript的出现大大改善了开发体验,增强了代码的可维护性和稳定性。TypeScript简称TSTS和JS之间的关系其实就是Less/Sass和CSS之间的关系就像Less/Sass是对CSS进行扩展一样,T......