社区
其它技术问题
帖子详情
把TCP的三次握手改成两次握手,会造成死锁吗?为什么?
pagen_hd
2009-06-24 11:25:21
期末考题,拜托大家了。
...全文
2491
12
打赏
收藏
把TCP的三次握手改成两次握手,会造成死锁吗?为什么?
期末考题,拜托大家了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chenmeilizhuce
2012-01-06
打赏
举报
回复
hao
yiyefangzhou24
2012-01-06
打赏
举报
回复
什么叫死锁?有很多种用途只用两次握手啊,比如SYN半开扫描
songdm2009
2009-10-04
打赏
举报
回复
学习了
猫已经找不回了
2009-06-25
打赏
举报
回复
1) 第1步:客户端向服务器发送一个同步数据包请求建立连接,该数据包中,初始序列号(ISN)是客户端随机产生的一个值,确认号是0;
2) 第2步:服务器收到这个同步请求数据包后,会对客户端进行一个同步确认。这个数据包中,序列号(ISN)是服务器随机产生的一个值,确认号是客户端的初始序列号+1;
3) 第3步:客户端收到这个同步确认数据包后,再对服务器进行一个确认。该数据包中,序列号是上一个同步请求数据包中的确认号值,确认号是服务器的初始序列号+1。
你怎么改成2步?服务器的seq的序列号不用确认的?
你们老师连怎么改都没说清
jieao111
2009-06-25
打赏
举报
回复
死锁容易产生歧义
liao05050075
2009-06-25
打赏
举报
回复
1
TCP的三次握手最主要是防止已过期的连接再次传到被连接的主机。
如果采用两次的话,会出现下面这种情况。
比如是A机要连到B机,结果发送的连接信息由于某种原因没有到达B机;
于是,A机又发了一次,结果这次B收到了,于是就发信息回来,两机就连接。
传完东西后,断开。
结果这时候,原先没有到达的连接信息突然又传到了B机,于是B机发信息给A,然后B机就以为和A连上了,这个时候B机就在等待A传东西过去。
或者这就是你老师所说的死锁
haggard_hunan
2009-06-25
打赏
举报
回复
嗯,TCP/IP啊!
你们老师要问的是这样,如果采用二次握手,没有每三次的话,打个比方:
客户端A - 服务器B
服务器B在回应A的序列号,从理论上说如果A能正常收到服务器B的序列号,二次也是没有关系的,关键是网络不是100%正常的,如果每二次的确认包丢了以后,A是不知道B的超始序列号的,这样如果服务器B发消息给A,A就会把消息全丢了,这样就会导致B不停的重发消息(因为B已经认为链路建好了).但是由于A每一次就没有收到B的确认以及起始序列号,导致B就会不停重发,从而导致B会发消息发死了,你们老师认为的死锁是这样的,如果是三次握手的话,每二次如果没有成功,就不会有每三次,也不会有后会的消息重发,即使每三次失败了,A也知道B这个连接的起始序列号,可以要求B重发每二次的起始序列号就可以了.
说多了,表达的可能不是很清楚,详细去看TCP/IP卷啊.
知道半开攻击原理吗?,半连接就是使用了这样原理攻击服务器的!
Wind_Runner
2009-06-25
打赏
举报
回复
[Quote=引用 2 楼 liao05050075 的回复:]
TCP的三次握手最主要是防止已过期的连接再次传到被连接的主机。
如果采用两次的话,会出现下面这种情况。
比如是A机要连到B机,结果发送的连接信息由于某种原因没有到达B机;
于是,A机又发了一次,结果这次B收到了,于是就发信息回来,两机就连接。
传完东西后,断开。
结果这时候,原先没有到达的连接信息突然又传到了B机,于是B机发信息给A,然后B机就以为和A连上了,这个时候B机就在等待A传东西过去。
或者这…
[/Quote]
B发信息给A,A也要确认,之后连接才算建立成功的;
另外,TCP有保活定时器可以查询A机是否还存在这个连接,也不会造成死锁啊
blueink_200451
2009-06-25
打赏
举报
回复
TCP的三次握手吗?我记得是“三次半”握手。
amossavez
2009-06-25
打赏
举报
回复
很容易死锁
iambic
2009-06-25
打赏
举报
回复
楼主厉害,期末题都能盗出来!
arong1234
2009-06-24
打赏
举报
回复
没听说过会造成死锁,我不明白你们老师这个问题题意是什么
自我学习36:
TCP
三次
握手
和四次挥手
本文详细介绍了
TCP
连接的
三次
握手
过程和断开连接的四次挥手步骤,解释了为何
握手
和挥手次数不同的原因。同时,针对常见面试问题,解释了
两次
握手
可能导致的
死锁
问题以及客户端故障时的处理策略。
TCP
三次
握手
本文解释了
TCP
协议中
三次
握手
的必要性,通过对比
两次
握手
可能引发的问题,如过期连接和
死锁
,阐述了
三次
握手
如何确保可靠地建立连接。
详解
TCP
三次
握手
(建立
TCP
连接过程)
本文介绍了
TCP
协议的包结构,特别是序号、确认号和ACK、SYN字段的作用,并详细阐述了
TCP
三次
握手
的过程,以确保可靠连接的建立。通过
三次
握手
,避免了网络问题导致的连接
死锁
。最后,讨论了为何必须是
三次
握手
而不是
两次
。
下
TCP
三次
握手
,为什么是三次?
两次
可以吗
本文详细解释了
TCP
三次
握手
的过程及原因,重点分析了为何需要
三次
握手
而非
两次
或更多次,通过示例说明了如果减少
握手
次数可能导致的问题。
详细解释为什么
TCP
连接需要
三次
握手
?一次
两次
四次 五次
会
怎么样?
本文详细探讨了
TCP
连接建立过程中的一次
握手
、
两次
握手
存在的问题,以及为何最终选择了
三次
握手
作为标准。通过分析各种可能的情况,如SYN包丢失、ACK丢失等,证明了
三次
握手
能确保连接的可靠性,避免资源浪费和
死锁
问题,从而实现
TCP
的稳定连接。
其它技术问题
3,881
社区成员
9,044
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章