首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据包丢失和数据包复制

数据包丢失和数据包复制
EN

Stack Overflow用户
提问于 2012-10-13 17:24:17
回答 2查看 20.3K关注 0票数 8

我正在尝试找出丢包和重复包问题之间的区别。有没有人知道“包复制”是怎么回事?这与在TCP中检测到丢失时重传数据包是否相同?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-13 17:26:13

不是的。在TCP中,“数据包”的传输是可靠的(我认为在这种情况下,术语数据应该更好一些,因为它是面向流的协议)。

丢包和复制是与面向数据报的不可靠协议(如UDP )有关的问题。在UDP中,当你发送一个数据报时,它可能会重复到达、乱序到达,甚至根本不会到达。

中检测到丢失时,这是否与重新传输数据包相同?

是也不是。假设TCP在内部使用ack机制来检测丢失的数据,并自动重新提交它们。因此,丢失的数据对用户是透明的,并由协议本身处理。

有人知道“数据包复制”是怎么回事吗?

在某些情况下,可能会发生IP数据包在通往其目的地的路径上重复的情况。例如,路由器可以决定通过两个不同的网络接口转发传入流量。在这种情况下,两个IP分组都将到达目的地。

TCP处理重复的IP数据包的问题,所以你不关心它们。

UDP不会处理它们。当您收到数据报时,不能保证您以前没有收到过相同的数据报。你应该去检查一下。

票数 12
EN

Stack Overflow用户

发布于 2012-10-13 17:49:33

您可能指的是两个重复的数据包:有效负载(发送的数据)的重复或有效负载和报头的精确复制。TCP将尝试重新发送它没有接收到ACK (来自接收器的确认,数据包到达正常)的数据。然而,这导致了著名的"two Generals“问题,在这个问题中,您永远不能确定数据是否真正到达,或者如果您只是因为ACK数据包丢失而没有得到ACK。接收器本可以收到数据包,并以ACK应答,但ACK随后丢失。在这种情况下,发送方将假设从未接收到该数据包,并使用相同的有效负载复制向发送另一个数据包。由于这种情况,像TCP这样的协议需要处理多次发送数据。在这种情况下,答案是“是”,它们是同一件事。

第二件事重复的数据包可能意味着实际的100%重复的数据包(有效载荷和报头)。这可能是由于软件、硬件或路由问题中的错误或配置错误造成的。在这种情况下,不是,这是一个有点不同的问题与TCP故意发送新的数据包与重复的有效负载从检测到的数据包丢失。在这种情况下,发送方只发送了一个数据包,但路由器或硬件接口在此过程中的某处复制了该数据包。

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

https://stackoverflow.com/questions/12871760

复制
相关文章

相似问题

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