个人面试总结

个人面试心得,后面会不断更新。

1.为什么需要三次握手,而不是两次或者四次?

 面试被问到这样一个问题,自己的回答不是很好,就总结了下。之所以要进行三次握手,是因为使用的时全双工通道通信方式。

全双工通信是是连接的两端技能发送数据又能接收数据的一个过程。如果只进行两次握手会出现以下的问题:例如A和B进行通信,当A发送的连接请求可能会因为数据报丢失,从而在此进行重传,当B接收到请求之后,就建立连接了,此时A可以向B发送数据了,当两端发送数据之后,就会断开,而原先丢失的数据如果因为网络原因,延迟到达B的连接请求,当B接收之后,就在此和A进行连接了,但实际上A已经不再向B发送数据了,此刻,连接虽然建立了,B会等待A发送数据,但是A已经不再向B发送数据了,造成B空等待。;另外还可能造成死锁,使用两次连接,因为考虑计算机A和B之间的通信,假定B给A发送一个连接请求分组,A收到了这个分组,并发送了确认应答分组。按照两次握手的协定,A认为连接已经成功地建立了,可以开始发送数据分组。可是,B在A的应答分组在传输中被丢失的情况下,将不知道A是否已准备好,不知道A建议什么样的序列号,B甚至怀疑A是否收到自己的连接请求分组。在这种情况下,B认为连接还未建立成功,将忽略A发来的任何数据分组,只等待连接确认应答分组。而A在发出的分组超时后,重复发送同样的分组。这样就形成了死锁。

猜你喜欢

转载自blog.csdn.net/qq_26105397/article/details/80904502