首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
软件与程序人生
›
DevOps与敏捷开发
›
TCP三次握手
返回列表
发新帖
TCP三次握手
[复制链接]
发表于 2025-12-2 17:41:21
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
. TCP怎么毗连的
三次握手
:
Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,等候Server确认。
Server收到数据包后由标志位SYN=1知道Client哀求创建毗连,Server将标志位SYN和ACK都置1,ack=J+1,随机产生一个值seq=K,并将该数据包发给Client以确认毗连哀求。
Client收到确认后,检测ack是否为J+1,ACK是否为1,假如准确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server。完成三次握手,随后Client与Server之间可以开始传输数据了。
8. 为什么要三次,两次会带来什么标题
不能两次
假如只举行两次握手,客户端发送毗连哀求后,会等候
服务器
端的应答。但是会出现的标题是,假如客户端的SYN迟迟没有到达
服务器
端,此时客户端超时后,会重新发送一次毗连,假如重发的这次
服务器
端收到了,且应答客户端了,毗连创建了。
但是创建后,第一个SYN也到达服务端了,这时服务端会以为这是一个新毗连,会再给客户端发送一个ACK,这个ACK固然会被客户端抛弃。但是此时服务器端已经为这个毗连分配资源了,而且服务器端会不绝维持着这个资源,会造成资源浪费。
两次握手的标题在于服务器端不知道SYN的有效性
,以是假如是三次握手,服务器端会等候客户端的第三次握手,假如第三次握手迟迟不来,服务器端就会
开释相干资源
。
为什么毗连的时间是三次握手,关闭的时间却是四次握手?
创建毗连时由于当Server端收到Client端的SYN毗连哀求报文后,可以直接发送
SYN+ACK
报文。此中ACK报文是用来应答的,SYN报文是用来同步的。以是创建毗连只须要三次握手。
由于TCP协议是一种面向毗连的、可靠的、基于字节省的运输层通讯协议,TCP是
全双工模式
。
这就意味着,关闭毗连时,当Client端发出FIN报文段时,只是表现Client端告诉Server端数据已经发送完毕了。当Server端收到FIN报文并返回ACK报文段,表现它已经知道Client端没有数据发送了,但是Server端照旧可以发送数据到Client端的,以是Server很大概并不会立即关闭SOCKET,直到Server端把数据也发送完毕。
当Server端也发送了FIN报文段时,这个时间就表现Server端也没有数据要发送了,就会告诉Client端,我也没有数据要发送了,之后相互就会舒畅的停止这次TCP毗连。
为什么要等候2MSL?
MSL
:报文段最大生存时间,它是任何报文段被抛弃前在网络内的最长时间。
有以下两个缘故原由:
第一点:包管TCP协议的全双工毗连可以大概可靠关闭
:
由于IP协议的不可靠性大概是别的网络缘故原由,导致了Server端没有收到Client端的ACK报文,那么Server端就会在超时之后重新发送FIN,假如此时Client端的毗连已经关闭处于CLOESD状态,那么重发的FIN就找不到对应的毗连了,从而导致毗连繁芜,以是,Client端发送完末了的ACK不能直接进入CLOSED状态,而要保持TIME_WAIT,当再次收到FIN的收,可以大概包管对方收到ACK,末了准确关闭毗连。
第二点:包管这次毗连的重复数据段从网络中消散
假如Client端发送末了的ACK直接进入CLOSED状态,然后又再向Server端发起一个新毗连,这时不能包管新毗连的与刚关闭的毗连的端标语是差异的,也就是新毗连和老毗连的端标语大概一样了,那么就大概出现标题:假如前一次的毗连某些数据滞留在网络中,这些延长数据在创建新毗连后到达Client端,由于新老毗连的端标语和IP都一样,TCP协议就以为延长数据是属于新毗连的,新毗连就会吸取到脏数据,如许就会导致数据包紊乱。以是TCP毗连须要在TIME_WAIT状态等候2倍MSL,才气包管本次毗连的全部数据在网络中消散。
回复
使用道具
举报
返回列表
浏览过的版块
.Net
物联网
Java
网络安全
Oracle
数据仓库与分析
分布式数据库
SQL-Server
IOS
伤心客
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表