TCP三次握手中的问题
来源:11-10 TCP连接的三次握手

慕哥2296688
2019-09-12
1、第一次发送数据时,最后一次握手为什么还要发送seq,我个人理解,seq在最后一次握手是没有必要的,因为接受方只需要验证传过来的ack就行了,seq没有用啊!
2、感觉三次握手也存在悖论问题。如果最后一次握手中,报文丢失,那么接受方就一直等着?另外,即使最后一次握手的报文没有丢,那么发送方又是如何知道接收方接收到了呢?那么发送方如何确定什么时候该发送数据报呢?
个人感觉这跟著名的《红蓝军对抗问题》很像,你始终没有办法确定对方接受到了啊
写回答
1回答
-
最后一次握手已经具备通信性质了,也即是可以进行数据的传输了,这里的seq不只是为了握手而使用的。
这个疑问挺好的,思考的挺深入。两种情况,设想第三次握手丢失了,由于发送方才是主动请求的一方,一般是客户端,那么客户端在第三次丢失的时候,一段时间没有收到服务端的确认,则会重传,再退一步,假设客户端没有重传,那么服务端打开的这个连接也会在一段时间关闭,因为连接上没有数据传输。
再假设报文没有丢失,如果没有丢失,那么服务端肯定会发送一个确认号并携带信息,发送方也即是客户端依据可靠传输,一定会受到确认。
最后,再退一步提问,那么为什么还需要第三次握手呢?这个课程上有介绍,同学可以回顾一下。
022020-02-22
相似问题