千家信息网

十五大原理之零三--TCP/IP的三次握手和四次断开原理

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,重要的标志位含义:ACK:表示确认。只有当ACK标志位为1时,TCP报文的确认字段才有效。SYN:表示同步,在连接建立时用来同步序列号。当SYN=1而ACK=0时,表明这是一个连接请求报文。若对方同意
千家信息网最后更新 2025年01月19日十五大原理之零三--TCP/IP的三次握手和四次断开原理

重要的标志位含义:

ACK:表示确认。只有当ACK标志位为1时,TCP报文的确认字段才有效。

SYN:表示同步,在连接建立时用来同步序列号。当SYN=1而ACK=0时,表明这是一个连接请求报文。若对方同意建立连接时,则在响应报文中,应使SYN=1,ACK=1.因此,同步比特SYN置为1,就表明这是一个连接请求报文或连接接受响应报文。

FIN:用于释放一个连接。当FIN位为1时,表明此报文段的发送端数据已发送完毕,并要求释放连接。

一、TCP/IP的三次握手

第一次握手:首先发送方主机向接收方主机发起一个建立连接的同步(SYN)请求SYN(X),进入SYN_SENT状态,等待接收方主机确认。

第二次握手:接收方在收到这个请求后,如果同意建立连接,则发送确认ACK,确认序列号为收到的序列号加1,并且报文中的SYN也要置1,即向发送方主机回复一个同步/确认(SYN/ACK)应答报文,并进入SYN_RECVD状态。

第三次握手:发送方主机收到此应答报文后,再向接收方发送一个确认(ACK)报文,然后发送方和接收方均进入ESTABLISHED状态,完成三次握手,至此,TCP连接建立成功,发送方和接收方就可以开始传输数据了。

TCP建立连接的三次握手过程如图所示:




二、TCP/IP的四次断开

当应用进程结束数据传送后,就要释放已建立的连接,TCP连接是双向的,每个方向都必须单独进行关闭,首先进行关闭的一方执行主动关闭,而另一方则执行被动关闭。

1、当客户端的数据传输完后,可主动发送出FIN置1的报文给服务端(客户端主动关闭),以关闭客户端至服务端方向的数据传送,并等待服务端的ACK确认应答,同时进入FIN_WAIT1状态。

2、服务端收到FIN置1的报文后,进入被动关闭,回复一个ACK确认报文,并进入CLOSE_WAIT状态;客户端收到该ACK确认报文后,进入FIN_WAIT2状态。

3、至此完成了TCP连接的半关闭,即完成了客户端至服务端方向的数据发送。此时,客户端虽然不能发送数据,但仍然能接受服务端发给客户端的数据,即服务端至客户端方向的连接还未关闭。

4、服务端发送一个FIN置1的报文给客户端,关闭服务端至客户端方向的数据传送,并等待客户端的ACK确认应答,同时进入LAST_ACK状态,客户端收到FIN置1的报文后,回复ACK确认报文,并进入TIME_WAIT状态,经过2倍报文最大生存时间(MSL)后,TCP删除原来建立的链接记录,返回到初始的CLOSED状态。服务端收到ACK确认报文后,进入CLOSED状态,完成链接的双向关闭。

TCP/IP四次断开过程如图:

报文 客户 状态 服务 客户端 数据 收方 主机 方向 同步 端的 主动 序列 序列号 一方 双向 同时 标志 至此 过程 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 chip数据库包括什么 软件开发类公司的男女比例 怎样删除数据库表中的一行数据 如何评价网络安全零信任 数据库防火墙安恒2500 上海诚加网络技术 计算机网络技术文案情绪 软件开发月度例会会议纪要 软件开发设计需要注意什么细节 网络安全宣传周先进事迹材料 眼镜行业软件开发需要多少钱 西城网络安全方案 中国电信网络安全防线 PSS服务器 江西信息化软件开发销售 阿里代理服务器 重庆正规软件开发价格表 测试工程师怎么测试数据库 合肥移动软件开发 数据库分析实验报告心得 erp系统不能连接数据库 天津市网络安全工作培训班 软件开发中说的prd是什么 天津统领时代网络技术有限公司 流行的千种植物数据库 小米防骚扰拦截数据库 雷神有印度服务器的游戏 东营服务管理crm软件开发公司 陕西远程服务器租赁注意什么 天津星微软件开发有限公司
0