TCP三次握手中的问题

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

慕哥2296688

2019-09-12

图片描述

1、第一次发送数据时,最后一次握手为什么还要发送seq,我个人理解,seq在最后一次握手是没有必要的,因为接受方只需要验证传过来的ack就行了,seq没有用啊!
2、感觉三次握手也存在悖论问题。如果最后一次握手中,报文丢失,那么接受方就一直等着?另外,即使最后一次握手的报文没有丢,那么发送方又是如何知道接收方接收到了呢?那么发送方如何确定什么时候该发送数据报呢?
个人感觉这跟著名的《红蓝军对抗问题》很像,你始终没有办法确定对方接受到了啊

写回答

1回答

咚咚呛

2019-09-15

  1. 最后一次握手已经具备通信性质了,也即是可以进行数据的传输了,这里的seq不只是为了握手而使用的。

  2. 这个疑问挺好的,思考的挺深入。两种情况,设想第三次握手丢失了,由于发送方才是主动请求的一方,一般是客户端,那么客户端在第三次丢失的时候,一段时间没有收到服务端的确认,则会重传,再退一步,假设客户端没有重传,那么服务端打开的这个连接也会在一段时间关闭,因为连接上没有数据传输。

  3. 再假设报文没有丢失,如果没有丢失,那么服务端肯定会发送一个确认号并携带信息,发送方也即是客户端依据可靠传输,一定会受到确认。

  4. 最后,再退一步提问,那么为什么还需要第三次握手呢?这个课程上有介绍,同学可以回顾一下。

0
2
高山流水的烦恼
老师,从您的第2条和第3条的回答来看,也就是说:客户端的第三次握手,服务端也会有响应的,是吗?
2020-02-22
共2条回复

(新版)计算机基础,计算机组成原理+操作系统+网络

编程之前先学这门课,系统补足计算机基础知识,夯实编程地基

7739 学习 · 1580 问题

查看课程