问题标签 [packet-loss]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
525 浏览

java - Java ServerSocket 和使用 ObjectIOStreams 的套接字会丢失数据包吗?

我在我的服务器上使用 ServerSocket 和使用 ObjectIOStreams 通过网络连接发送可序列化对象的套接字。我正在开发一个本质上更具金融性的垄断版本,因此需要发送和确认发送/接收的数据包。我是否需要实现自己的丢包观察器,还是已经使用(服务器)套接字处理了?

我主要是询问在网络故障或诸如此类的情况下丢失数据包,而不是完全连接错误。例如,兄弟姐妹在我的路由器和计算机的 wi-fi 适配器之间移动一个引线板。

http://code.google.com/p/inequity/source/browse/#svn/trunk/src/network 代码可以在network->ClientController和network->Server下找到

0 投票
1 回答
1140 浏览

tcp - TCP 引起的 UDP 丢包和学士论文参考

我目前正在写计算机科学与工程的学士学位论文,我们正在使用 OpenGL 用 C++ 创建一个赛车游戏。在报告中,我比较了 TCP 和 UDP 的使用,我发现了一个来源,声称多个 TCP 连接会导致 UDP 连接中的数据包丢失。我什至得到了很好的参考

问题在于它已有 13 年历史,但我无法找到任何迹象表明任一协议已修改以解决此问题。我也找不到任何更新的、进行类似调查的论文或文章

所以,我的问题是协议是否有任何可能相关的更改和/或我是否应该忘记在论文报告中使用这个旧参考。

0 投票
2 回答
1394 浏览

udp - 由于套接字缓冲区溢出导致的数据包丢失是否被视为网络丢失?

如果主机上的 UDP 数据包由于其套接字缓冲区已满而被丢弃,我是否应该认为这是网络丢失?这种区别将帮助我决定是考虑在应用层实现重传,还是增加缓冲区大小。

我被 UDP 卡住了,但是我的应用程序需要按顺序传输数据包而不会丢失数据包...>_<

0 投票
1 回答
76 浏览

packet-loss - 带宽损失 - 我是被喂了一头公牛还是我有研究要做?

我刚刚和一个男人进行了一次奇怪的谈话,他试图向我解释两个健康的网络不可能在没有明显带宽损失的情况下通过海洋相互通信。

例如 - 如果你有一台机器以 100Mb/sec 的速度连接这里http://www.hetzner.de/en/hosting/unternehmen/rechenzentrum尝试与美国的机器进行通信,其设置与你只能实现的完全相同原始连接速度的一小部分。无论您如何分配负载,这都是正确的 - 距离上的总损耗将是相同的。美国和德国之间的“满负荷”将不到距离数据中心一英里且具有相同设置的数据中心的一半。

如果这是真的,那意味着我对数据包如何工作的整个理解都是错误的。我的意思是,如果没有丢包,为什么除了延迟之外还有其他问题?我试图理解他的论点,但不知所措。他似乎很聪明,并且 100% 确定他的信息。这很难理解,因为他像河流一样解释数据,而我将其视为一系列数据包。

有人可以向我解释我缺少什么,还是我只是在与一个处于权威和自信位置的疯子打交道?

0 投票
1 回答
1282 浏览

c#-4.0 - C#:UdpClient 在调用 close() 时不发送数据很快

在某些计算机上,当 UdpClient.Close() 在 UdpClient.Send() 之后过早调用时,UdpClient 不会发送数据。我正在使用 .NET 4.0 和 WireShark 来验证数据包丢失。

编码的基本部分是:

奇怪的是:

  • 在大多数计算机上,数据将毫无问题地发送
  • 即使没有发送数据包也没有异常或其他错误
  • bytesSent 将始终等于 data.Length
  • 在调用 sender.Close() 之前未发送数据包的计算机上,Thread.Sleep(250) 将解决问题!

那么,即使在 UdpClient.Send() 报告了正确的字节数之后,还有什么可以取消数据包的发送呢?为什么这仅在某些机器上出现?这可能是某些网络驱动程序、防病毒软件等的不同行为吗?

我还尝试明确设置 LingerOptions 这应该是不必要的,因为默认情况是在关闭底层套接字之前发送所有待处理的数据。但是,在执行 sender.Client.LingerState = new LingerOption(true, 10) 时(如http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.lingerstate.aspx中所述)我明白了

有什么想法吗?

问候,七

0 投票
1 回答
1811 浏览

.net - VB.NET 异步套接字数据包丢失

我制作了一个可以同时与多个客户端通信的 TCP 服务器,但我似乎无法使它们稳定。当其中一个客户端向服务器发送 100 个数据包时,服务器只接收到其中的几个。

这是 PasteBin 中的客户端代码。它显示了客户端如何连接到服务器,然后在 For 循环中向服务器发送 100 条消息。

以下是服务器处理连接的方式。我无法粘贴完整的源代码,因为它有数百行,所以如果它缺少任何强制性部分,请告诉我,我也会上传它们。

0 投票
1 回答
290 浏览

flash - Flex中的丢包计算

我如何计算来自Flex的数据包丢失。任何想法?

提前致谢。

0 投票
1 回答
2110 浏览

flash - 丢包测试

有没有人知道如何进行丢包测试,例如 来自闪存技术(Flash 或 Flex)的ping 测试?请帮我。

0 投票
1 回答
1518 浏览

linux - 强制丢包

出于测试目的,为了确定协议实现在存在数据包丢失的情况下如何表现,我想在我的一个网络设备上强制数据包丢失。具体来说,我希望能够将数据包丢失调整在 0% 到 100% 之间的任何位置。我对 iptables 有一点经验,在我看来,我应该能够使用它来实现它,但我做不到。不过,实现 100% 的数据包丢失不是问题;)。关于如何做到这一点的任何想法?

0 投票
0 回答
727 浏览

multicast - 在加入和离开时丢失多播数据报

我的服务器软件遇到了一个问题,如果一个线程加入多播,另一个线程可能不会在同一时刻接收到不同多播的传入数据报。我不确定这是否可以由于 UDP 多播的“不可靠性质”而被视为预期损失,或者这是否是严重的驱动程序/网卡缺陷。数据包捕获在那个时刻也显示了一个间隙。

我在多个 nic 型号和制造商(包括 Intel 和 HP)上观察到了这个问题。我觉得这是网卡或驱动程序问题的原因是,如果我运行数据包嗅探器将接口置于混杂模式,则根本不会出现问题。

是否有可能当 IGMP 加入或离开正在更新 nic 中的转发表时,它只是停止转发所有多播流量?这可以接受吗?