社区
其它技术问题
帖子详情
把TCP的三次握手改成两次握手,会造成死锁吗?为什么?
pagen_hd
2009-06-24 11:25:21
期末考题,拜托大家了。
...全文
2343
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
打赏
举报
回复
没听说过会造成死锁,我不明白你们老师这个问题题意是什么
题目:
TCP
的
三次
握手
是什么,为什么采用
三次
握手
,
两次
握手
不可以吗?
TCP
连接是通过
三次
握手
进行初始化的。
三次
握手
的目的是同步连接双方的序列号和确认号并交换
TCP
窗口大小信息。以下步骤概述了通常情况下客户端计算机联系服务器计算机的过程: 1. 客户端向服务器发送一个SYN置位的
TCP
报文,其中包含连接的初始序列号x和一个窗口大小(表示客户端上用来存储从服务器发送来的传入段的缓冲区的大小)。 2. 服务器收到客户端发送过来的SYN报文后,向客户端发送一个S
TCP
三次
握手
如果使用二次
握手
代替则
会
出现的问题
简述 第一次
握手
,发送SYN报文,传达信息:“你好,我想建立连接”; 第二次
握手
,回传SYN+ACK报文,传达信息:“好的,可以建立链接”; 第
三次
握手
,回传ACK报文,传到信息:“好的,我知道了,那我们连接”。然后就建立连接了。在发送报文之前各方都要确认可以进行连接。 建立连接的过程是利用客户服务器模式,假设主机A为客户端,主机B为服务器端。
TCP
的
三次
握手
过程:主机A向B发送连接请求;主机B对收到的主机A的报文段进行确认;主机A再次对主机B的确认进行确认。 采用
三次
握手
是为了防止失效的连接请求报
TCP
三次
握手
四次挥手以及
死锁
三次
握手
过程 第一次
握手
:建立连接时,客户端发送SYN包(SYN=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。 第二次
握手
:服务器收到SYN包,必须确认客户的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第
三次
握手
:客户端...
详细解释为什么
TCP
连接需要
三次
握手
?一次
两次
四次 五次
会
怎么样?
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、一次
握手
会
发生什么?二、
两次
握手
三、
三次
握手
前言 本文默认你已经知道
TCP
连接
三次
握手
需要客户端(以下用C表示)和服务器端(以下用S 表示)分别发送SYN SYNACK ACK包过程,着重解释为什么需要
三次
握手
。 一、一次
握手
会
发生什么? 假如想只用一次
握手
来实现
TCP
连接,如果真的能够实现,那真是一项伟大的工作。现在我们看看一次
握手
会
怎么样。 客户端欲发起一条
TCP
连接,
会
向服务器端发送连接请求SYN。 如果实际上总是
TCP
三次
握手
,如果一、二、
三次
握手
丢失各
会
发生什么
TCP
三次
握手
每次
握手
丢失
会
发生什么,正确且易懂
其它技术问题
3,881
社区成员
9,054
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章