专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

Socket通信工作原理(socket通信基础知识介绍)

来源:小易整编  作者:小易  发布时间:2023-02-07 12:43
摘要:Socket通信工作原理(socket通信基础知识介绍),Socket是一个通讯协议,是网络上两个程序间双向交流连接的一个端点(类似于打电话时的两台手机),基于TCP/IP协议,稳定有序。Asocketisoneendpointofatwo...

Socket通信工作原理(socket通信基础知识介绍),Socket是一个通讯协议,是网络上两个程序间双向交流连接的一个端点(类似于打电话时的两台手机),基于TCP/IP协议,稳定有序。

A socket is one endpoint of a two-way communication link between two programs running on the network. A socket is bound to a port number so that the TCP layer can identify the application that data is destined to be sent to.

An endpoint is a combination of an IP address and a port number. Every TCP connection can be uniquely identified by its two endpoints. That way you can have multiple connections between your host and the server.

套接字Socket=(IP地址:端口号),套接字的表示方法是点分十进制的lP地址后面写上端口号,中间用冒号或逗号隔开。每一个传输层连接唯一地被通信两端的两个端点(即两个套接字)所确定。例如:如果IP地址是192.168.56.103,而端口号是23,那么得到套接字就是(192.168.56.103:23)。

一、Socket通信基本原理

首先Socket 通信是基于TCP/IP 网络层上的一种传送方式,我们通常把TCP和UDP称为传输层。

Socket是基于应用服务与TCP/IP通信之间的一个抽象,它将TCP/IP协议里面复杂的通信逻辑进行分装,对用户来说,只要通过一组简单的API就可以实现网络的连接。

首先,服务端初始化ServerSocket,然后对指定的端口进行绑定,接着对端口及进行监听,通过调用accept方法阻塞,此时,如果客户端有一个socket连接到服务端,那么服务端通过监听和accept方法可以与客户端进行连接。

二、工作流程

要通过互联网进行通信,至少需要一对套接字,其中一个运行于客户端,我们称之为 Client Socket,另一个运行于服务器端,我们称之为 Server Socket。

根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:

1. 服务器监听

所谓服务器监听,是指服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。

2. 客户端请求

所调客户端请求,是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端接字提出连接请求。

3. 连接确认

所谓连接确认,是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,就会响应客户端套接字的请求,建立一个新的线程,并把服务器端套接字的描述发送给客户端。一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,接收其他客户端套接字的连接请求。

三、长连接和短连接

1. 长连接

指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。整个通讯过程,客户端和服务端只用一个Socket对象,长期保持Socket的连接。

长连接过程:连接→数据传输→保持连接(心跳)→数据传输→保持连接(心跳)→……→关闭连接。

这就要求长连接在没有数据通信时,定时发送数据包(心跳),以维持连接状态。

2. 短连接

短连接服务是每次请求都建立链接,交互完之后关闭链接。

其实区分长、短连接就是:整个客户和服务端的通讯过程是利用一个Socket还是多个Socket进行的。

3. 长连接与短连接的比较

长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况。每个TCP连接都需要三步握手,这需要时间。如果每个操作都是短连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,下次处理时直接发送数据包就OK了,不用建立TCP连接。例如:数据库的连接用长连接,如果用短连接频繁的通信会造成Socket错误,而且频繁的Socket 创建也是对资源的浪费。

Socket是针对应用层与TCP/IP数据传输协议封装的一套方案,那么它的底层也是通过TCP/IP或则UDP通信的,所以说Socket本身并不是一套通信协议,而是一套接口的封装。

而TCP/IP协议组里面的应用层包括FTP、HTTP、TELNET、SMTP、DNS等协议,我们知道,http1.0是短连接,http1.1是长连接。我们在打开http通信协议里面在Request Headers中可以看到:Connection: keep-alive。

对应的Response Headers也可以看到。

它是干什么的?

它就是表示长连接,但是它并不是一直保持的连接,有一个时间段(Connection Timeout)。

如果我们想一直保持这个连接怎么办?

那就是在指定的时间内让客户端和服务端进行一个请求,请求可以是服务端发起,也可以是客户端发起,通常我们是在客户端不定时的发送一个字节数据给服务端,这个就是我们称之为心跳包。


本文地址:网络知识频道 https://www.hkm168.com/jiqiao/903042.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


网络知识
小编:小易整编
相关文章相关阅读
  • 计算机按工作原理可分为什么

    计算机按工作原理可分为什么

    计算机按工作原理可分为数字计算机和模拟计算机。数字式电子计算机是当今世界电子计算机行业中的主流,其内部处理的是一种称为符号信号或数字信号的电信号,它有着运算速度快、运算精度高、通用性强等特点。模拟计算机是根据相似原理,用一种连续变化的模拟量...

  • 如何在ThinkPHP6中使用腾讯云IM进行实时通信操作?

    如何在ThinkPHP6中使用腾讯云IM进行实时通信操作?

    随着互联网和移动互联网的快速发展,实时通信技术已经成为了许多应用中不可或缺的一环。而腾讯云im(即即时通信im)作为国内领先的实时通讯平台之一,其功能和性能也得到了广泛的认可。本文将介绍如何在thinkphp6框架中使用腾讯云im进行实时通...

  • 起动机的工作原理是什么

    起动机的工作原理是什么

    起动机是用于启动内燃机的装置,以下是起动机的工作原理:1、启动时,电源通过起动电路提供电流给起动机;2、当电流通过电动机时,开始旋转;3、电动机旋转,将电动机的转动力传递给发动机的曲轴;4、曲轴转动,带动活塞和气门等部件开始运动;5、汽油或...

  • socket error 10054怎么解决

    socket error 10054怎么解决

    解决方法:1、检查网络连接,确保网络连接正常,没有断开或中断;2、检查服务器状态,确认服务器端是否正常运行,并且没有关闭或重启;3、优化网络设置,调整网络设置以提高连接的稳定性和可靠性;4、更新软件版本,确保使用的软件版本是最新的,并且修复...

  • 什么是通信?

    什么是通信?

    通信,指人与人或人与自然之间通过某种行为或媒介进行的信息交流与传递,从广义上指需要信息的双方或多方在不违背各自意愿的情况下采用任意方法,任意媒质,将信息从某方准确安全地传送到另方。通信在不同的环境下有不同的解释,在出现电波传递通信后通信(C...

  • 玻璃硬盘原理

    玻璃硬盘原理

    玻璃硬盘的原理基于激光干涉和全息技术,利用激光束照射到玻璃基底上,通过干涉图案将数据编码为三维像素。这些像素以微米级别的尺寸在玻璃表面形成干涉图案,每个像素都包含数据的二进制信息。由于玻璃基底的稳定性和耐久性,可以使用光学显微镜对存储在其中...

  • 交换机的工作原理是什么

    交换机的工作原理是什么

    交换机的工作原理包括:1、数据帧接收和解析;2、转发表的更新;3、数据帧的转发;4、泛洪处理;5、维护连接。详细介绍:1、数据帧接收和解析,当交换机接收到一个数据帧时,它会首先对数据帧进行解析,提取出其中的源mac地址和目的mac地址等信息...

  • 蜂鸣器的工作原理是什么

    蜂鸣器的工作原理是什么

    蜂鸣器工作原理主要基于压电效应或电磁效应,通过改变输入的电压、频率或者触发信号,可以控制蜂鸣器的声音频率和强度,实现不同的音调和音量效果。本教程操作系统:Windows10系统、DellG3电脑。蜂鸣器(Buzzer)是一种电子器件,用于...

  • 周排行
  • 月排行
  • 年排行

精彩推荐