首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么是重复确认?何时会出现重复确认?

什么是重复确认?何时会出现重复确认?
EN

Stack Overflow用户
提问于 2018-01-08 18:54:11
回答 3查看 56.9K关注 0票数 10

我目前正在学习TCP协议,不知道什么时候会出现重复确认。同样,重传不是只有在没有收到从接收方到客户端的ACK时才会发生吗?为了计算出重传,你必须加上安全余量的往返时间(从3次握手)?

这将是非常有帮助的,如果你可以解释给我一个例子,也许因为我是一个初学者。

EN

回答 3

Stack Overflow用户

发布于 2018-01-09 23:56:30

DupACK是称为TCP Fast retransmit的故障恢复机制的一部分,它保证了TCP协议的可靠性。当接收器接收到乱序分组(假设序列2-4-3)时,发送重复确认。在接收到分组#4时,接收方开始发送重复的ack,因此发送方将开始快速重传过程。另一种情况是丢包。

请记住,数据包丢失在TCP网络中是很正常的。TCP实际上通过丢包作为反馈机制来调整自身。

更多信息:

票数 11
EN

Stack Overflow用户

发布于 2018-08-28 20:13:09

.TCP协议是实现TCP协议的基础,仅在定时器超时时才重传数据包。现在,RDT使用重复的acks以及超时来重传丢失的数据包。

重复acks被用作快速重传和分组恢复的一部分。通常,如果tcp计时器超时,则假定数据包丢失,并且tcp重新传输相同的数据包。但它需要等待,直到计时器超时。作为拥塞控制技术的一部分,TCP在拥塞期间表现得非常有礼貌,将计时器间隔增加2倍,从而使数据包的重传速度变慢,从而不会造成拥塞。但是,假设数据包每次发送时都会丢失,超时将呈指数级增长。

由于增加的超时并且发送方需要等待更长的时间从而导致延迟,所以重发相同的分组是耗时的。

因此,tcp实现了重复的acks,并且它的唯一目的是在超时发生之前贴近发送者。如果发送方和接收方的重复包大于3,则它将重新传输该包。如果无序分段到达,则接收器立即发送重复分组。然而,如果没有发现分组丢失,则ack被延迟,希望以确认背靠背分段并减少网络中的ack数量。这种方法是发送累积确认,而不是向每个数据段发送ack。

如果发送方接收到重复的acks,则发送方立即基于确认号发送丢失的分组,并且在发送丢失的分组之前不发送发送缓冲器中的任何应用数据。然而,接收器不确认重发的分组,而是确认累积。这意味着在发送第一个复制ack之前,它发送确认号作为最后一个最高的成功发送的无序段值。

票数 5
EN

Stack Overflow用户

发布于 2018-11-26 18:08:19

“由于TCP不知道重复的ACK是由丢失的段引起的,还是仅仅是段的重新排序引起的,因此它等待接收少量重复的ACK。假设如果只是段的重新排序,则在处理重新排序的段之前将只有一个或两个重复的ACK,这将生成新的ACK。如果连续收到三个或更多重复的ACK,则强烈表明某个段已丢失。”

有关更多信息,请访问www.isi.edu/nsnam/DIRECTED_RESEARCH/DR_WANIDA/DR/JavisInActionFastRetransmitFrame.html

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48148820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档