社区
其它技术问题
帖子详情
把TCP的三次握手改成两次握手,会造成死锁吗?为什么?
pagen_hd
2009-06-24 11:25:21
期末考题,拜托大家了。
...全文
2507
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
三次
握手
第一次
握手
????: 建立连接时,客户端发送syn(同步序列编号)包到服务器,并进入SYN_SENT状态,等待服务器确认。 第二次
握手
????: 服务器收到syn包,必须确认客户端的SYN,同时自己也发送一个SYN包,即SYN+ACK,服务器进入SYN_RECV状态。 第
三次
握手
????: 客户端收到服务器的SYN+ACK包,向服务端发送确认包ACK,发送完毕后客户端和服务器进入
TCP
连接成功状态,完成
握手
。
TCP
四次挥手 第一次挥手????: 客户端发送一个FIN段,并包含一个接
TCP
三次
握手
为何要
三次
握手
1、
TCP
的
三次
握手
最主要是防止已过期的连接再次传到被连接的主机如果采用
两次
的话,
会
出现下面这种情况。 比如是A机要连到B机,结果发送的连接信息由于某种原因没有到达B机; 于是,A机又发了一次,结果这次B收到了,于是就发信息回来,两机就连接。 传完东西后,断开。结果这时候,原先没有到达的连接信息突然又传到了B机,于是B机发信息给A,然后B机就以为和A连上了,这个时候B机就在等待A
详解
TCP
三次
握手
(建立
TCP
连接过程)
1.1 、
TCP
建立连接过程(
三次
握手
)
TCP
协议包结构: (1)第一次
握手
客户端(Client)向服务器(Server)发送一个SYN段(在
TCP
标头中 SYN 位字段为 1 的
TCP
/IP 数据包),该段中也包含一个客户端的初始序列号(Sequence number = x,seq)。 (2)第二次
握手
服务器端返回一个 SYN +ACK 段(在
TCP
标头中SYN和ACK位字段都为 1 的
TCP
/IP 数据包),该段中包含服务器的初始序列号(Sequence number = y);同时使
下
TCP
三次
握手
,为什么是三次?
两次
可以吗
TCP
三次
握手
,为什么是三次?
两次
可以吗? 一、
tcp
的
三次
握手
的过程 客户端与服务端建立连接需要的的三步 1.建立连接时,客户端发送 SYN 包到服务器,随机选择一个初始序号 x,并进入 SYN_SENT 状态,等待服务器确认; 2.服务器收到 SYN 包,必须确认客户的 SYN (ack = x + 1),同时自己也发送一个 SYN 包 (seq = y),即 SYN + ACK 包,此时...
详细解释为什么
TCP
连接需要
三次
握手
?一次
两次
四次 五次
会
怎么样?
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、一次
握手
会
发生什么?二、
两次
握手
三、
三次
握手
前言 本文默认你已经知道
TCP
连接
三次
握手
需要客户端(以下用C表示)和服务器端(以下用S 表示)分别发送SYN SYNACK ACK包过程,着重解释为什么需要
三次
握手
。 一、一次
握手
会
发生什么? 假如想只用一次
握手
来实现
TCP
连接,如果真的能够实现,那真是一项伟大的工作。现在我们看看一次
握手
会
怎么样。 客户端欲发起一条
TCP
连接,
会
向服务器端发送连接请求SYN。 如果实际上总是
其它技术问题
3,881
社区成员
9,044
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章