V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cloudsigma
V2EX  ›  宽带症候群

op 拨号下, iptv rstp 流 打开慢

  •  
  •   cloudsigma · 2022-05-02 21:21:48 +08:00 · 1504 次点击
    这是一个创建于 696 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT ,

    因,v2ex.com/t/850496 ,让我又把这个问题抛出来了。

    op 拨号下,打开 iptv rstp 流 慢,换台慢 ,播放正常。 但,切换到 hw 光猫拨号,vlan 类型 选择完全锥形,换台切换,都是秒开。

    用 vlc 客户端测试,在首选项 解码 -> live555 流 -> 选择 rtp over rtsp ( tcp ) 也秒开; 选 http ,要等半天。

    请问,有知道问题出在哪里吗?

    tcpdump 日志如下:

    第 1 条附言  ·  2022-05-03 18:28:59 +08:00
    有从 udp 切换到 tcp 的过程。估计这就是换台慢的原因。
    换台开始时,112.86.202.42 通过 udp 不断发包,但是路由器没有回包,多次尝试无回包时,改用 tcp 。
    11 条回复    2022-05-04 10:17:13 +08:00
    viberconnection
        1
    viberconnection  
       2022-05-02 21:43:19 +08:00
    看上去像是傳輸擁塞控制方面所導致的問題。(因爲部分路由器不是小包優先通過的策略)
    huangya
        2
    huangya  
       2022-05-03 13:08:16 +08:00
    我是你引用帖的 op, 你的问题不一定与我相同。我的问题基本已经解决。只是还有一个问题没有搞清楚。你的 tcpdump 没有显示出来。append 一下,我可以帮忙看看。
    cloudsigma
        3
    cloudsigma  
    OP
       2022-05-03 18:07:40 +08:00
    cloudsigma
        4
    cloudsigma  
    OP
       2022-05-03 19:11:25 +08:00
    @huangya 增加了图片,麻烦有空帮忙一起研究下,谢谢!从 wireshark 分析:
    server 先发 udp ,op 回发 icmp ,显示 server 端口不可用。来回几次后,server 发 udp ,op 就是不回包,发 n 次包后,vlc 客户端 改发 tcp ,这时,切换成功。
    huangya
        5
    huangya  
       2022-05-03 19:35:29 +08:00
    这个问题看起来是因为路由器阻止了 112.86.202.42 发过来的包。

    LAN PC(port x,z) -- router(port y, z) -- Internet server

    通常来讲,internet server 那边的包能通过 router, 必须要从 LAN PC 这边先丢一个 udp 包过去,不然 router 的防火墙会挡。
    那从 LAN PC 发出去的包,经过 router 的 NAT , 源 port x 会变成 port y 。x 与 y 可能相等,也可能不等。相等就是完全锥形。一般来讲,不管相等还是不等,后续从 internet server 这边过来的包都可以顺利通过 router 的防火墙到达 LAN PC. 但现在你的情况是看起来是路由器阻止了 112.86.202.42 发过来的包。又根据你的说法,“切换到 hw 光猫拨号,vlan 类型 选择完全锥形,换台切换,都是秒开。”所以我怀疑 OpenWRT 对 udp 不完全锥形有 bug. 你可以:

    1. 在 OpenWRT 系统,确认 x 和 y 是否相等。
    2. 如果 internet server IP 地址固定,在 OpenWRT 系统,防火墙设置把所有这个 internet server IP 的包全部 port forwarding 到你的 vlc client IP 中。目的是让 OpenWRT 的防火墙不要丢掉进来的包。为了防止干扰,先关掉机顶盒。
    cloudsigma
        6
    cloudsigma  
    OP
       2022-05-03 21:46:41 +08:00
    @huangya port x 和 port y 相同。

    添加 iptables -I FORWARD -p udp -j ACCEPT ,问题依旧。应该不是防火墙问题。


    vlc 客户端测试,在首选项 解码 -> live555 流 ->
    对比 rtp over rtsp ( tcp )和 http 的抓包,显示,http 下,多了个 RTCP 和 ICMP ,其中 RTCP 走的时 udp 协议。难道是 op 对应用层协议 RTCP 兼容性有问题?
    cloudsigma
        7
    cloudsigma  
    OP
       2022-05-03 21:49:21 +08:00
    @huangya hw 光猫 里有应用层协议支持: 包括 RTCP RTSP 等。RTCP 应该需要 端口完全锥形
    huangya
        8
    huangya  
       2022-05-03 21:52:56 +08:00
    @cloudsigma

    >添加 iptables -I FORWARD -p udp -j ACCEPT ,问题依旧。应该不是防火墙问题。
    不是这样设置,在 http://router-ip/cgi-bin/luci/admin/network/firewall/forwards 添加端口转发。添加后,看看是否 router 还会对 server 发送 icmp destination unreachable port unreachable. 你上传的 udp 包截图中可以看到这样的 icmp 包。
    huangya
        9
    huangya  
       2022-05-03 21:54:53 +08:00
    @cloudsigma 你说了 port x 和 port y 相同,就表示 OP 已经支持端口完全锥形了
    cloudsigma
        10
    cloudsigma  
    OP
       2022-05-04 09:57:43 +08:00
    @huangya iptv server 应该不会主动给客户端发包,所以不存在需要在防火墙上加端口转发到内网 ip 的 port 。估计是 openwrt 对 RTCP 应用层协议支持度不够造成的,我放弃折腾了,改光猫拨号了。
    bclerdx
        11
    bclerdx  
       2022-05-04 10:17:13 +08:00 via Android
    @viberconnection 什么是小包有限策略?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5163 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 01:18 · PVG 09:18 · LAX 18:18 · JFK 21:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.