This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] LP-CC1352P7:如何在 ti-wisunfantund 中启用 TCP 通信

Guru**** 2644665 points

Other Parts Discussed in Thread: CC1352P7

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1565771/lp-cc1352p7-how-to-enable-tcp-communication-in-ti-wisunfantund

器件型号:LP-CC1352P7
主题中讨论的其他器件:CC1352P7

工具/软件:

TI 团队大家好、

我指的是以下文章:
CC1312R7 Wi-SUN 协议栈 — 是否支持 TCP 流量?

在我的设置中:

  • 对于边界路由器ns_br_src ()、 NO_TCP 宏在中注释掉 cfg_ti_ws_border_router.h

//#define NO_TCP

  • 对于路由器节点ns_node_src ()、 NO_TCP  NO_IP_FRAGMENT_TX 在中注释掉 cfg_ti_ws_router.h

//Additional Optimizations
//#define NO_TCP
#define NO_IPV6_PMTUD
//#define NO_IP_FRAGMENT_TX
#define NO_MLE

但是、除非 ti-wisunfantund 进行了修改、否则仍无法在节点之间传输或接收 TCP 数据包。

您能否建议如何进行修改 ti-wisunfantund 以启用通过 Wi-SUN 进行的 TCP 通信?

提前感谢您。

此致、
Hyunkoo Ryu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨 Hyunkoo:

    您能否解释一下您在 ti-wisunfantund 中修改了哪些内容?  

    但是、除非 ti-wisunfantund 修改、否则仍无法在节点之间传输或接收 TCP 数据包。

    这是否意味着您在修改时有一个有效的解决方案?

    此致、

    Arthur

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Arthur。

    不、不是。
    对于 TCP、TI Guy(Theo    在最初的问题中提到了通过隧道接口修改数据包路由的问题。

    我想知道如何修改 ti-wisunfantund 以启用 Wi-SUN 上的 TCP 流量。

    BR、
    HK Ryu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 HK:

    我将在一天结束时向您介绍我的调查结果。

    此致、

    Arthur

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 HK:

    我仍在研究通过 wisunfantund 路由 TCP 数据包的问题。 我明天会回来的。

    此致、

    Arthur

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 HyunKoo:  

    还有一个问题。 是否要从 Linux 主机运行 TCP 套接字到 Linux 主机、或从节点运行 TCP 套接字 (CC1352P7 到 CC1352P7)、或从节点运行 Linux 套接字?

    此致、

    Arthur

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Arthur。

    我尝试了使用 iperf 从 Linux 主机到 Linux 主机的 TCP 传输、但它不起作用。 我想我们需要先检查一下。
    我还没有达到测试节点到节点或 Linux 到节点通信的阶段。
    我只在没有修改的情况下运行您的示例。

    BR、
    HK Ryu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 HyunKoo:

    好的、我目前正在主机到主机的实施工作。 我可以看到 TCP 消息上行链路似乎被转发、但我们在下行链路上没有收到、这妨碍了我们建立连接。 我仍在调查中。

    此致、

    Arthur

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    同时、您可以使用以下解决方法通过 UDP 路由 TCP 数据包:

    我将向您展示它如何使用 MQTT 消息进行工作


    服务器

    • 9: wfan0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1280 qdisc fq_codel state UNKNOWN group default qlen 500
          link/none
          inet6 2020:abcd::212:4b00:2949:5cad/64 scope global
             valid_lft forever preferred_lft forever
          inet6 fe80::212:4b00:2949:5cad/64 scope link
             valid_lft forever preferred_lft forever
          inet6 fe80::322c:c6ff:95ce:450b/64 scope link stable-privacy
             valid_lft forever preferred_lft forever
      debian@beagle:~/git/udptunnel$ ./udptunnel -s -6 -v 2020:abcd::212:4b00:2949:5cad 5001
      Listening on UDP [2020:abcd::212:4b00:2949:5cad]:5001
    • 设置 MQTT(例如 mosquito)。 使其侦听 /etc/mosquitto/mosquitto.conf 中的 Wi-SUN 接口:
      pid_file /run/mosquitto/mosquitto.pid
      
      persistence false
      persistence_location /var/lib/mosquitto/
      
      log_dest file /var/log/mosquitto/mosquitto.log
      
      include_dir /etc/mosquitto/conf.d
      
      listener 1883 2020:abcd::212:4b00:2949:5cad
      allow_anonymous true

    • 开始在此处收听特定主题“测试“:
      mosquitto_sub -h 2020:abcd::212:4b00:2949:5cad -t test

    客户端

    • 将 udptunnel 设置为客户端:
      ./udptunnel -c -6 -v ::1 1883 2020:abcd::212:4b00:2949:5cad 5001 2020:abcd::212:4b00:2949:5cad 1883
    • 现在通过 udp隧道 发布 MQTT 消息:
      mosquitto_pub -h ::1 -p 1883 -t test -m "I come from the wisun router"

    • 它应该已在服务器上收到。

    同样、这只是一个用于测试的临时权变措施。

    此致、

    Arthur

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Arthur:

    感谢您的解决方法。

    实际上、我已经使用过类似的方法  SOCAT  传动器中。

    以下是我使用的设置:

    服务器

    2020:abcd::212:4b00:2d16:298c

    客户端

    2020:abcd::212:4b00:2d16:29fb

    Server[UDP]- Server_Port -[TCP-to-UDP 代理、UDP_Port] Wi-SUN [TCP-to-UDP 代理、UDP_Port] - Client_Port - Client[TCP]   
    SOCATudp6-listen:[UDP_Port]、reuseaddr、fork tcp6:[ 2020:abcd::212:4b00:2d16:298c ]:[wfan0] Server_Port、interface=wfan0 Client_Port tcp6-listen:[scape]、reuseaddr、fork udp6-Sendto:[ 2020:abcd::212:4b00:2d16:298c ]:[[UDP_Port]

    我发现您的 certification.BorderRouter-CC13x2R7_P7_TI-FAN-Profile-PICS-1v05.pdf 不支持 TCP
    您是否有计划在将来的认证中包含 TCP?

    BR、
    HyunKoo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨 Hyunkoo:

    我必须与系统团队讨论此问题。 他们可能知道这一点。

    此致、

    Arthur

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 HyunKoo:

    您是否有通过 TCP 传输数据吞吐量的目标?  

    谢谢、

    Marie H

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Marie H.

    目前我们没有为 TCP 吞吐量定义目标。
    然而、当使用 50kbps FSK 调制和工作模式 1b 与另一个供应商的解决方案进行测试时、以供参考、
    他观察到吞吐量约为 24 kbps。
    我已经查看了您报告的结果、表明吞吐量为 36 kbps。 我假设此测量是通过 UDP 进行的。

    希望此信息对您有所帮助。

    此致、
    hk

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨 Hyunkoo:

    在对 WiSUN 栈进行以下修改后 (source/third_party/mbed/nanostack/Sal-stack-nanostack/source/TCP/c.c Common_Protocols:1192):  

    #ifdef WISUN_NCP_ENABLE
        {   // forward the whole TCP packet to host
            nanostack_process_stream_net_from_stack(buf);
            buffer_free(buf);
            return NULL;
        }
    #endif

    现在可以通过 wisun 接口转发 TCP 数据包。 这意味着您可以按正常方式发送 MQTT 数据包:

    mosquitto_sub -h 2020:abcd::212:4b00:2949:5cad -t test
    mosquitto_pub -h 2020:abcd::212:4b00:2949:5cad -p 1883 -t test -m "I come from the wisun router"


    我已通过 TCP 运行 iperf、以下是我通过以下测试参数获得的数字:

    • 50kbps PHY
    • 1000 字节数据包

    debian@beagle:~$ iperf -V -i 1 -c 2020:abcd::212:4b00:2949:5cad -B 2020:abcd::212:4b00:2949:5880 -t 10 -l 1000 -b 50k
    ------------------------------------------------------------
    Client connecting to 2020:abcd::212:4b00:2949:5cad, TCP port 5001
    TCP window size: 16.0 KByte (default)
    ------------------------------------------------------------
    [  1] local 2020:abcd::212:4b00:2949:5880 port 52205 connected with 2020:abcd::212:4b00:2949:5cad port 5001 (icwnd/mss/irtt=11/1208/2889000)
    [ ID] Interval       Transfer     Bandwidth
    [  1] 0.0000-1.0000 sec  6.89 KBytes  56.5 Kbits/sec
    [  1] 1.0000-2.0000 sec  5.86 KBytes  48.0 Kbits/sec
    [  1] 2.0000-3.0000 sec  5.86 KBytes  48.0 Kbits/sec
    [  1] 3.0000-4.0000 sec  5.86 KBytes  48.0 Kbits/sec
    [  1] 4.0000-5.0000 sec  6.84 KBytes  56.0 Kbits/sec
    [  1] 5.0000-6.0000 sec  5.86 KBytes  48.0 Kbits/sec
    [  1] 6.0000-7.0000 sec  5.86 KBytes  48.0 Kbits/sec
    [  1] 7.0000-8.0000 sec  5.86 KBytes  48.0 Kbits/sec
    [  1] 8.0000-9.0000 sec  6.84 KBytes  56.0 Kbits/sec
    [  1] 9.0000-10.0000 sec  5.86 KBytes  48.0 Kbits/sec
    [  1] 10.0000-20.1977 sec  1000 Bytes   784 bits/sec
    [  1] 0.0000-20.1977 sec  62.6 KBytes  25.4 Kbits/sec

    此致、

    Arthur

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Arthur:

    我很抱歉迟来的答复。 我是因为假期而离开办公室的。
    我已经确认、TCP 数据包可以与您的补丁一起通过 Wi-SUN 接口转发。
    感谢您的支持。

    我使用 TCP 通过 IPv6 运行 iperf 测试、结果如下:

    ns_node_src ns_br_src
    iperf -V -i 1 -c 2020:abcd::212:4b00:2d16:2aab -B 2020:abcd::212:4b00:2d16:29fb -t 10 -l 1000 -b 50k
    ------------------------------------------------------------
    Client connecting to 2020:abcd::212:4b00:2d16:2aab, TCP port 5001
    TCP window size: 16.0 KByte (default)
    ------------------------------------------------------------
    [ 1] local 2020:abcd::212:4b00:2d16:29fb port 60701 connected with 2020:abcd::212:4b00:2d16:2aab port 5001 (icwnd/mss/irtt=11/1208/420425)
    [ ID] Interval Transfer Bandwidth
    [ 1] 0.0000-1.0000 sec 6.45 KBytes 52.8 Kbits/sec
    [ 1] 1.0000-2.0000 sec 6.21 KBytes 50.8 Kbits/sec
    [ 1] 2.0000-3.0000 sec 6.21 KBytes 50.8 Kbits/sec
    [ 1] 3.0000-4.0000 sec 6.21 KBytes 50.8 Kbits/sec
    [ 1] 4.0000-5.0000 sec 6.21 KBytes 50.8 Kbits/sec
    [ 1] 5.0000-6.0000 sec 6.21 KBytes 50.8 Kbits/sec
    [ 1] 6.0000-7.0000 sec 5.32 KBytes 43.6 Kbits/sec
    [ 1] 7.0000-8.0000 sec 6.21 KBytes 50.8 Kbits/sec
    [ 1] 8.0000-9.0000 sec 6.21 KBytes 50.8 Kbits/sec
    [ 1] 9.0000-10.0000 sec 6.21 KBytes 50.8 Kbits/sec
    [ 1] 10.0000-20.1546 sec 908 Bytes 715 bits/sec
    [ 1] 0.0000-20.1546 sec 62.3 KBytes 25.3 Kbits/sec
    iperf -V -i 1 -s -B 2020:abcd::212:4b00:2d16:2aab
    ------------------------------------------------------------
    Server listening on TCP port 5001
    Binding to local address 2020:abcd::212:4b00:2d16:2aab
    TCP window size: 128 KByte (default)
    ------------------------------------------------------------
    [ 4] local 2020:abcd::212:4b00:2d16:2aab port 5001 connected with 2020:abcd::212:4b00:2d16:29fb port 60701 (peer 2.1.9)
    [ ID] Interval Transfer Bandwidth
    [ 4] 0.0- 1.0 sec 2.01 KBytes 16.5 Kbits/sec
    [ 4] 1.0- 2.0 sec 3.54 KBytes 29.0 Kbits/sec
    [ 4] 2.0- 3.0 sec 0.00 Bytes 0.00 bits/sec
    [ 4] 3.0- 4.0 sec 2.36 KBytes 19.3 Kbits/sec
    [ 4] 4.0- 5.0 sec 2.36 KBytes 19.3 Kbits/sec
    [ 4] 5.0- 6.0 sec 0.00 Bytes 0.00 bits/sec
    [ 4] 6.0- 7.0 sec 1.79 KBytes 14.7 Kbits/sec
    [ 4] 7.0- 8.0 sec 0.00 Bytes 0.00 bits/sec
    [ 4] 8.0- 9.0 sec 2.36 KBytes 19.3 Kbits/sec
    [ 4] 9.0-10.0 sec 1.18 KBytes 9.66 Kbits/sec
    [ 4] 10.0-11.0 sec 2.36 KBytes 19.3 Kbits/sec
    [ 4] 11.0-12.0 sec 4.72 KBytes 38.7 Kbits/sec
    [ 4] 12.0-13.0 sec 2.36 KBytes 19.3 Kbits/sec
    [ 4] 13.0-14.0 sec 3.54 KBytes 29.0 Kbits/sec
    [ 4] 14.0-15.0 sec 0.00 Bytes 0.00 bits/sec
    [ 4] 15.0-16.0 sec 0.00 Bytes 0.00 bits/sec
    [ 4] 16.0-17.0 sec 0.00 Bytes 0.00 bits/sec
    [ 4] 17.0-18.0 sec 0.00 Bytes 0.00 bits/sec
    [ 4] 18.0-19.0 sec 0.00 Bytes 0.00 bits/sec
    [ 4] 19.0-20.0 sec 0.00 Bytes 0.00 bits/sec
    [ 4] 20.0-21.0 sec 0.00 Bytes 0.00 bits/sec
    [ 4] 21.0-22.0 sec 1.18 KBytes 9.66 Kbits/sec
    [ 4] 22.0-23.0 sec 0.00 Bytes 0.00 bits/sec
    [ 4] 23.0-24.0 sec 1.18 KBytes 9.66 Kbits/sec
    [ 4] 24.0-25.0 sec 4.72 KBytes 38.7 Kbits/sec
    [ 4] 25.0-26.0 sec 3.54 KBytes 29.0 Kbits/sec
    [ 4] 26.0-27.0 sec 18.9 KBytes 155 Kbits/sec
    [ 4] 0.0-27.6 sec 62.3 KBytes 18.5 Kbits/sec

    BR、
    hk