组播:
加入组播路由命令:route add -nv 224.224.224.245 dev eth0
查看路由表:route
someip传输层通信协议的选择:大部分时候还是选择UDP通信,原因如下:
UDP | TCP | |
有效载荷数据大小 | 1472 | 流式传输,无限制 |
连接建立时间 | 无 | 三次握手,时间长 |
保证到达 | 不保证 | 保证,失败会重传 |
接收顺序保证 | 不保证 | 保证 |
流量控制 | 不控制,收不过来就扔掉 | 慢启动,拥塞控制 |
广播支持 | 支持(广播或多播) | 不支持,面向连接,只能一对一
|
可以看到TCP是可靠传输,保证数据到达的顺序,但是不支持广播,只能一对一连接。SOME/IP 底层通道如果使用TCP协议,带来的直接便利就是可以在一个 request/response 动作中传输大量数据,比如一次把 2MB的图像数据传递出去。理论上这么做没有问题,但是实际应用中很少这么做。原因在于以下几个问题:
- TCP 有一个连接建立的时间,根据请求和接收端的距离,服务器负载情况,网络负载情况,时间不定,从零点几毫秒到几百毫秒不等。如果每次“请求/响应”动作不能共享同一个连接,就每次都要新建一个连接。
- TCP数据传输时,有一个“慢启动”的过程。因为TCP协议栈不知道当前物理通道的实际带宽是多少,它会以一个较低的速度发送数据,如果丢包率很低就逐步提高速度,当丢包率提高,确认时间变长就再降低速度,最后稳定到一个合适的传输速率。
- TCP 只能一对一连接。SOME/IP 协议中有 Event 和 Field 消息类型。请求者可以要求订阅 Event消息 或 Field 的变化。如果使用TCP,要实现这个要求就需要服务提供者向多个订阅客户端每个都发起一条TCP连接,数据也要发送多次。
TCP/UDP:
查看网络通信命令:netstat -anp,netstat -ant
vsomeip交叉编译:
1.添加宏ENABLE_MULTIPLE_ROUTING_MANAGERS是3.0版本,2.*版本用的是cfg.so不支持这个宏
/usr/bin/cmake --no-warn-unused-cli -DENABLE_MULTIPLE_ROUTING_MANAGERS=1 -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_C_COMPILER:FILEPATH=/opt/gcc-aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc -DCMAKE_CXX_COMPILER:FILEPATH=/opt/gcc-aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ -H/home/zeeuser/workspace/vsomeip -B/home/zeeuser/workspace/vsomeip/build_cross
2.Boost 源代码交叉编译 - 采男孩的小蘑菇 - 博客园
3.(7条消息) Vsomeip交叉编译(AARCH64)中涉及到的boost移植_edwardlulinux的专栏-CSDN博客
USB:
1.开发板和本机通信用串口,客户端软件是secureCRT
2.虚拟机的代码->拷贝到U盘->拷贝到开发板:
fdisk -l
mount /dev/sd? mnu/u_disk
umount /dev/sd?
虚拟机:
虚拟机和开发板ping通:迅为4412开发板开发笔记--开发板与主机和ubuntu的ping通 - 知乎
虚拟机固定IP:(4条消息) Ubuntu16.04虚拟机设置固定IP上网_seiulaomi的博客-CSDN博客_ubuntu虚拟机设置固定ip
arm虚拟机: https://blog.csdn.net/pingxiaozhao/article/details/93631684
虚拟机网络: 虚拟机配置两个网卡:
第一条线路:网线连接:开发板+虚拟机+windows主机 互相能ping通,但是不能上外网,因为开发板IP是固定的。
windows 配置
虚拟机配置:
开发板配置:开发板是主模式 ifconfig eth0:1 172.20.4.12 netmask 255.255.255.0
第二条线路:开发板+虚拟机 互相能ping 通,可以上外网,比如提交代码,下载代码和插件
windows配置:
虚拟机配置:
理解:1.网络功能实际是内核的代码,就等着应用去调用。
2.还需要系统相关的网络配置配好。
参考:
(3条消息) VSSomeIP介绍以及简单使用SampleCode(翻译)_ckr__的博客-CSDN博客
https://github.com/COVESA/vsomeip/wiki/vsomeip-in-10-minutes