組播:
加入組播路由命令: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