网络基础---TCP连接

本文详细解析TCP连接的建立过程——三次握手,以及连接关闭的四次挥手。TCP协议通过三次握手确保连接可靠性,而四次挥手确保数据传输完成后断开连接。在握手过程中,SYN和ACK标志用于同步和确认,TIME_WAIT状态用于处理可能丢失的ACK报文,保证连接的正确关闭。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TCP协议原理:TCP每发送一个报文段,就启动一个定时器,如果在定时器超时之后还没有收到ACK确认,就重传该报文。 如图所示,数据包由A的缓冲区发往B,B在收到数据包以后,回发一个ACK确认包给A,之后A将该数据包从缓冲区释放。因此,该数据包会一直缓存在A的缓冲区,直到一个ACK确认为止。
这里写图片描述

在TCP/IP协议中,TCP协议提供可靠的面向连接的服务;三次握手(建立连接)和四次挥手(关闭连接);使用滑动窗口机制进行流量控制;
三次握手的详细图解
所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。如图1所示。
这里写图片描述
图1 三次握手建立TCP连接的各状态
(1)第一次握手:建立连接时,客户端A发送SYN包[SYN=1,seq=x]到服务器B,并进入SYN_SEND状态,等待服务器B确认。
(2)第二次握手:服务器B收到SYN包,必须确认客户A的SYN,同时自己也发送一个SYN包,即SYN+ACK包[SYN=1,ACK=1,seq=y,ack=x+1],此时服务器B进入SYN_RECV状态。
(3)第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK[ACK=1,seq=x+1,ack=y+1],此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据。
三次握手完成后,客户端和服务器就建立了TCP连接。这时可以调用accept函数获得此连接三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值