- 主题:两台机器以太网直连,发udp会丢包么
只考虑链路层丢包的话,而且还不考虑EMI问题,那我觉得可以认为不会丢包。
但实际情况udp很容易丢包,哪里卡那么一下就丢包了。
【 在 libgcc (承接各种水军业务) 的大作中提到: 】
: 发送接收流量都在理论之内
: 就只说链路层网络层丢包
: 不考虑应用层缓冲区满的问题
: ...................
--
FROM 101.81.86.*
就是前向纠错。这个fpga上塞的进去的。当然不一定必须是kcp。
【 在 libgcc (承接各种水军业务) 的大作中提到: 】
: 感觉很高级的样子
: 感觉你总是能找到一些新奇的,东西。。
--
FROM 101.81.86.*
我记得当时看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.*
这个跟代码行数没关系。
两者的层次不一样。
fpga上来一句printf你就抓瞎了。
都不需要fpga,廉价mcu上来一句printf,可用rom就直接打对折了。
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 所以要让楼主确定一下能不能用。
: kcp 相对来说,还是更简单一些,只有 1200 行代码。
--
修改:lvsoft FROM 101.81.86.*
FROM 101.81.86.*
超过mtu就拆包,mtu一般是1500,扣掉ip/udp头,对于udp来说超过1472就要拆包。
理论上拆成2个包了也不是发不出去,但如果路径上哪个路由器有个设置过滤掉了就没
了。即使所有路由器都让你过了,65000要拆成无数个包,任何一个丢了整个包也没了。
所以udp发65000没意义,哪怕在局域网里也没意义,局域网发也还是要拆包的。
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 是的。。只有确定是在局域网内或者loopback,才能发这么大的包。我试过在
internet 上面发超过 1450 (具体数字忘了,大概就是这么大)的大包,发不出去。
--
FROM 101.81.86.*
多张网卡连同一根物理网线,那就是上古时代,switch出现之前的hub时代了。
那个靠CSMA/CD。
【 在 hjjscofield (heruo) 的大作中提到: 】
: 如果其中一台机器有多张网卡。连到同一物理网线。多张网卡可能有的在发udp,有的
在发tcp探测包。会怎么样?
: 发自「今日水木 on iPhone 7 Plus」
--
FROM 101.81.86.*
jumbo frames不是用在你这个场景的。比如我家里有万兆网,所以我是需要的。
正常人没意义。
另外对于mtu=1500来说,udp发1472和发65000效率上没任何区别,但成功率上就差多
了,所以这也谈不上是优化。
【 在 hgoldfish (老鱼) 的大作中提到: 】
: 没有经过路由器的话问题不大。所以这是一种特殊优化,一般不要开。
: 现在的网卡一般还支持 9KB 的巨帧,开起来发 9000 字节的 UDP 包也不错。我看
不少路由器也支持了。
--
FROM 101.81.86.*
都交换机了,已经不存在同一个物理链路了。
【 在 liuxueshen ( rock) 的大作中提到: 】
: 工业上常用俩交换机通过trunk互联
--
FROM 101.81.86.*