鸡肋面试:三次握手能不能变成二次?

 

在面某图的时候,面试管问我 三次握手能不能变为两次,我说不行 并解释了三次握手的过程,然后试图用这个过程来体现三次握手缺一次都不行。

我:三次握手中第一次握手是客户端给服务器发送SYN报文,请求链接;在服务器收到客户端请求之后给客户端回应,回应时发送自己的SYN报文,带上ACK 报文,这也就是第二次握手;然后,客户端给服务器发送ACK报文回应,三次握手完成,连接建立。如果是两次握手,也就是没有第三次 客户端给服务器发送ACK保温这个过程,则 服务器会不确定客户端在发送了请求报文SYN 之后,是否还想要再去建立连接,另外,第三次握手也是客户端给服务器通知自己已经做好连接准备,请求服务器做好连接准备(其实我这里说的是有问题的)

面试官:我(服务器)在给你恢复之后(发送SYN报文 和ACK报文)之后我就做好准备了呀

我:那如果你(服务器)发送了报文之后,我(客户端)突然不想连接你了,我也不说话也不回你消息,那你是等待(阻塞)还是怎么办?~~~~这时我还在试图用这个思路去说服他。但是面试官就认为按照我的说法第三次握手这个过程是不必要的

 

然后,这个问题就相当于在面试的时候挂了

 

后来看一些资料,资料上很简洁的就解释了三次握手不能变成两次握手的原因:

第一次握手和第二次握手是为了证明 客户端的发送和接受功能正常;

第二次握手和第三次握手是为了证明 服务器的发送和接受功能正常;

因为TCP 协议是面向连接的可靠的流式服务,所以他要保证服务器端和客户端双方的收发功能正常,这样才能保证双发能够可靠的传输数据。

这种解释直中要害,不会在表述上和面试官产生异议,也不会让面试官觉得回答的不准确。所以分享出来

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值