【通信篇】【Socket通信机制】

  系列文章

本人系列文章-优快云博客 


1.简介

Socket通信机制是一种计算机网络通信协议,它是基于TCP/IP协议栈的应用层协议,提供了一组API(应用程序接口),允许不同的进程在不同计算机之间进行通信。socket通信一般涉及客户端和服务端两个socket。服务器端首先初始化Socket,然后与端口绑定,并对该端口进行监听。当客户端连接成功后,客户端会发送数据请求,服务器端接收并处理这些请求,然后将回应数据发送给客户端。客户端读取数据后,连接关闭。

socket本身不是协议,是api接口,通过socket,我们可以使用Tcp/ip协议。

图片来自网络(如有侵权,联系我,会删除)

socket流程图

图片来自网络(如有侵权,联系我,会删除)

1.1 Tcp协议

Tcp协议:TCP(Transmission Control Protocol)协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。它旨在适应支持多网络应用的分层协议层次结构,确保数据在传输过程中的可靠性、完整性和顺序性。

1.1.1 Tcp协议的工作原理

1.三次握手建立连接:

第一步:客户端发送一个请求(SYN包)到服务器。

第二步:服务器收到请求后,发送确认和自己连接的请求(SYN/ACK包)给客户端,

第三步:客户端再发送确认(ACK包)连接成功。

socket中TCP协议三次握手如下:

2.数据传输:

发送方将数据划分成小块(称为报文段),并添加头部和校验等信息,然后通过TCP协议将这些报文段发送给接收方。接收方收到报文段后,校验数据的完整性,并把它们重新组装成完整的数据流。

3.四次挥手关闭连接:

第一次挥手:客户端发送断开连接请求,客户端发送一个包含FIN标志的报文,表示客户端已经完成了数据的发送,并请求关闭连接,等待服务端的确认。

第二次挥手:服务端受到客户端发送的FIN标志的报文,发送一个确认(ACK)报文,服务器此时可能还有剩余的数据要发送给客户端。因此服务端继续发送数据,并进入close-wait(等待关闭)状态。而客户端受到确认后,tcp会处于半关闭状态,即:客户端不能发送数据,但是还可以接受数据。

第三次挥手:当服务端完成数据发送以后,服务端发送一个FIN报文给客户端,即服务端向客户端发送断开连接请求。此时服务器进入LASK_ACK(最后确认状态),等待客户端的确认。

第四次挥手:客户端受到服务端的FIN报文后,再次发送一个确认(ACK)报文。然后客户端进入TIME_WAIT(时间等待状态),为了防止网络堵塞,确保服务端已经受到确认报文。然后服务端受到ACK应答报文后,服务端就进入了close状态。此时客户端处于TIME_WAIT状态,此时

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值