- 主题:两台机器以太网直连,发udp会丢包么
怎么保证不被干扰。。。
【 在 freynew123 的大作中提到: 】
:
: 数据读取能保证及时,不会丢包,只要你的链接是可靠的,不会被干扰
: 【 在 libgcc 的大作中提到: 】
: : 发送接收流量都在理论之内
: : 就只说物理层链路层丢包
#发自zSMTH@MI MAX 3
--
FROM 106.37.229.*
kcp 不是前向纠错,而是丢包重传。需要一定的缓冲区。
KCP 没有带缓冲区控制机制,需要上层应用自己控制。每次在调用 ikcp_send() 之前要调用 ikcp_waitsnd() 看看返回的值(当前正在等待发送的包)是不是大于自己设定的数值。如果是,就得上层应用自己处理——类似于 tcp send() 返回 EAGAIN 一样。
kcp 本身没有带前向纠错,局域网没太大必要用。互联网加 FEC 倒是不错。
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 就是前向纠错。这个fpga上塞的进去的。当然不一定必须是kcp。
--
修改:hgoldfish FROM 125.78.67.*
FROM 125.78.67.*
我用这个东东做了一个那啥,你懂的,给自己用。所以比较熟悉。
KCP 套 UDP 很好用。不过也有缺点就是了:
1. 它是为互联网设计的,优化低延迟,吞吐很小。默认一个 UDP 包 1400 字节太小,建议提升到 65000 大小。不过怀疑你的 FPGA 是不是连 IP 包分帧都没有实现。或者修改 kcp 源代码的 interval,
2. 有额外的协议开销,好像要占用 14 个字节左右。
【 在 libgcc (承接各种水军业务) 的大作中提到: 】
: 感觉很高级的样子
: 感觉你总是能找到一些新奇的,东西。。
--
FROM 125.78.67.*
我以前经历过同一个Linux系统中,两个进程互打UDP丢包的。问题没有定位,没有仔细深挖。
--
FROM 111.203.9.*
估计是速度太快,系统缓冲区满了。
【 在 pfan117 的大作中提到: 】
:
: 我以前经历过同一个Linux系统中,两个进程互打UDP丢包的。问题没有定位,没有仔细深挖。
: --
发自「今日水木 on Mi Note 3」
--
FROM 106.121.65.*
我记得当时看kcp介绍的时候这是卖点之一啊。
只是另一个tcp那意义对lz来说不大。反正都是逻辑复杂的东西,塞kcp也好塞lwip也好对
fpga来说都一样麻烦。
【 在 hgoldfish (老鱼) 的大作中提到: 】
: kcp 不是前向纠错,而是丢包重传。需要一定的缓冲区。
: KCP 没有带缓冲区控制机制,需要上层应用自己控制。每次在调用 ikcp_send() 之前
要调用 ikcp_waitsnd() 看看返回的值(当前正在等待发送的包)是不是大于自己设定的
数值。如果是,就得上层应用自己处理——类似于 tcp send() 返回 EAGAIN 一样。
: kcp 本身没有带前向纠错,局域网没太大必要用。互联网加 FEC 倒是不错。
--
修改:lvsoft FROM 101.81.86.*
FROM 101.81.86.*
你以及前面人说过的各种udp丢包可能性都已经被他用假设排除了。
他只关心链路层,还排除了EMI,那么就是不可能丢包,或者丢包概率小到可以忽略的程
度。
【 在 pfan117 (pfan117) 的大作中提到: 】
: 我以前经历过同一个Linux系统中,两个进程互打UDP丢包的。问题没有定位,没有仔细
深挖。
--
FROM 101.81.86.*
你一个udp包65000基本上也就在局域网上发发了...
跨internet的65000的udp包基本上没有可能顺利发出去...
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 我用这个东东做了一个那啥,你懂的,给自己用。所以比较熟悉。
: KCP 套 UDP 很好用。不过也有缺点就是了:
: 1. 它是为互联网设计的,优化低延迟,吞吐很小。默认一个 UDP 包 1400 字节太小,
建议提升到 65000 大小。不过怀疑你的 FPGA 是不是连 IP 包分帧都没有实现。或者修
改 kcp 源代码的 interval,
: ...................
--
FROM 101.81.86.*
如果其中一台机器有多张网卡。连到同一物理网线。多张网卡可能有的在发udp,有的在发tcp探测包。会怎么样?
【 在 libgcc 的大作中提到: 】
:
: 发送接收流量都在理论之内
:
: 就只说物理层链路层丢包
: 不考虑应用层缓冲区满的问题
: 不考虑电磁干扰之类的
: --
发自「今日水木 on iPhone 7 Plus」
--
FROM 183.195.13.*
是的。。只有确定是在局域网内或者loopback,才能发这么大的包。我试过在 internet 上面发超过 1450 (具体数字忘了,大概就是这么大)的大包,发不出去。
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 你一个udp包65000基本上也就在局域网上发发了...
: 跨internet的65000的udp包基本上没有可能顺利发出去...
: 建议提升到 65000 大小。不过怀疑你的 FPGA 是不是连 IP 包分帧都没有实现。或者修
: ...................
--
修改:hgoldfish FROM 125.78.67.*
FROM 125.78.67.*