XFCE+VNC+SWITCH+TSN全覆蓋!STM32MP25x核心板Debian系統(tǒng)發(fā)布
一、系統(tǒng)概述
本文引用地址:http://www.biyoush.com/article/202503/467840.htmMYD-LD25X搭載的Debian系統(tǒng)包含以太網(wǎng)、WIFI/BT、USB、RS485、RS232、CAN、AUDIO、HDMI顯示和攝像頭等功能,同時(shí)也集成了XFCE輕量化桌面、VNC遠(yuǎn)程操控、SWITCH網(wǎng)絡(luò)交換和TSN時(shí)間敏感網(wǎng)絡(luò)功能,為工業(yè)設(shè)備賦予“超強(qiáng)算力+實(shí)時(shí)響應(yīng)+極簡(jiǎn)運(yùn)維”的體驗(yàn)!
類(lèi)別 | 名稱(chēng) | 描述 |
源碼 | TF-A | Arm Trusted Firmware 2.8 |
OP-TEE | OP-TEE 3.19 | |
Bootloader | U-boot 2022.10 | |
Kernel | Linux Kernel 6.1.82 | |
文件系統(tǒng) | myir-image-debian | Debian12文件系統(tǒng) |
工具 | 燒錄工具 | STM32CubeProgrammer |
文檔 | MYD-LD25X_Debian系統(tǒng)開(kāi)發(fā)指南 | 包含源碼編譯,燒錄等 |
注:目前Debian系統(tǒng)只適配了高配置開(kāi)發(fā)板型號(hào):MYD-LD257-8E2D-150-I
圖 MYC-LD25X核心板及開(kāi)發(fā)板
二、亮點(diǎn)功能介紹
1、Xfce桌面
Xfce是一款輕量級(jí)的開(kāi)源桌面環(huán)境,旨在提供高效、穩(wěn)定和易于使用的桌面體驗(yàn)。
輕量級(jí):Xfce以資源效率為目標(biāo),注重在低資源消耗下提供快速響應(yīng)和流暢的用戶體驗(yàn)。它適用于各種硬件配置,包括舊式計(jì)算機(jī)和嵌入式設(shè)備。
簡(jiǎn)潔和直觀:Xfce遵循簡(jiǎn)潔和直觀的設(shè)計(jì)原則,提供了直觀易用的用戶界面,使用戶能夠快速上手和自定義桌面環(huán)境。
模塊化:Xfce采用模塊化的設(shè)計(jì),桌面環(huán)境由多個(gè)獨(dú)立的組件(如面板、窗口管理器、文件管理器等)組成,用戶可以根據(jù)自己的需求進(jìn)行定制和配置。
1.1. 啟動(dòng)Xfce
myir-image-debian系統(tǒng)默認(rèn)已經(jīng)包含xfce顯示界面,開(kāi)發(fā)板啟動(dòng)進(jìn)入系統(tǒng)后,接上屏幕會(huì)顯示如下界面,說(shuō)明成功啟動(dòng)Xfce,需輸入設(shè)置的賬戶進(jìn)入系統(tǒng)界面。
圖1.1 xfce顯示界面
2、VNC遠(yuǎn)程控制
2.1. vnc簡(jiǎn)介
VNC(Virtual Network Computing,虛擬網(wǎng)絡(luò)計(jì)算)是一種遠(yuǎn)程桌面控制技術(shù),允許用戶通過(guò)互聯(lián)網(wǎng)或局域網(wǎng)遠(yuǎn)程訪問(wèn)和控制另一臺(tái)計(jì)算機(jī)的桌面環(huán)境。系統(tǒng)默認(rèn)安裝了TigerVNC。以下是其核心特點(diǎn)和應(yīng)用:
● 協(xié)議基礎(chǔ):基于RFB協(xié)議(Remote Framebuffer Protocol),通過(guò)傳輸屏幕圖像的更新部分和用戶輸入指令實(shí)現(xiàn)交互。
● 客戶端-服務(wù)端架構(gòu):
服務(wù)端:運(yùn)行在MYD-LD25X上,負(fù)責(zé)分享屏幕并接收客戶端指令。
客戶端:用戶通過(guò)客戶端連接到服務(wù)端,查看并操作遠(yuǎn)程桌面。
● 網(wǎng)絡(luò)傳輸:默認(rèn)使用TCP端口5900+N(N為顯示器編號(hào),如:1對(duì)應(yīng)5901)。
2.2. 啟動(dòng)VNC服務(wù)
Debian系統(tǒng)默認(rèn)上電就開(kāi)啟VNC服務(wù)端,使用下面命令查看vnc服務(wù):
root@myd-ld25x:~# ps -ef | grep vnc
root 2348 1 0 15:14 ? 00:00:00 /usr/bin/perl /usr/bin/vncserver -geometry 1280x720 -depth 24 -localhost no :1
root 2349 2348 0 15:14 ? 00:00:01 /usr/bin/Xtigervnc :1 -localhost=0 -desktop myd-ld25x:1 (root) -rfbport 5901 -PasswordFile /tmp/tigervnc.QQW419/passwd -SecurityTypes VncAuth,TLSVnc -auth /root/.Xauthority -geometry 1280x720 -depth 24
root 2350 2348 0 15:14 ? 00:00:00 /bin/sh /etc/X11/Xtigervnc-session
root 2356 2350 0 15:14 ? 00:00:00 tigervncconfig -iconic
root 4836 3480 0 16:48 ttySTM0 00:00:00 grep vnc
2.3 客戶端連接測(cè)試
● 下載客戶端
Windows下載并安裝客戶端軟件(如RealVNC Viewer),如下圖所示:
圖2.1 客戶端VNC界面
● 獲取連接信息
通過(guò)myd-ld25x開(kāi)發(fā)板獲取目標(biāo)設(shè)備的IP地址或主機(jī)名
(如192.168.40.198或myd-ld25x):
root@myd-ld25x:~# cat /etc/hosts
127.0.0.1 myd-ld25x
root@myd-ld25x:~# ifconfig
end1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 38:d5:47:00:29:62 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 65 base 0xc000
end2:flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.40.198 netmask 255.255.255.0 broadcast 192.168.40.255
inet6 fe80::bd6:742b:ef7e:ee6f prefixlen 64 scopeid 0x20<link>
ether 5e:08:0d:0e:83:b6 txqueuelen 1000 (Ethernet)
RX packets 12454 bytes 2524533 (2.4 MiB)
RX errors 0 dropped 129 overruns 0 frame 0
TX packets 476 bytes 41087 (40.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 68 base 0x8000
通過(guò)VNC服務(wù)器的log,獲取端口/顯示編號(hào),如:1(對(duì)應(yīng)端口5901)或直接指定端口號(hào)5901:
root@myd-ld25x:~# cat .vnc/myd-ld25x:1.log
Xvnc TigerVNC 1.12.0 - built 2023-01-06 16:01
Copyright (C) 1999-2021 TigerVNC Team and many others (see README.rst)
See https://www.tigervnc.org for information on TigerVNC.
Underlying X server release 12101006, X.Org
Mon Mar 3 18:02:44 2025
vncext:VNC extension running!
vncext:Listening for VNC connections on all interface(s), port 5901
vncext:created VNC server for screen 0
3NI3X0 New Xtigervnc server 'myd-ld25x:1 (root)' on port 5901 for display :1.
3NI3X0 Use xtigervncviewer -SecurityTypes VncAuth,TLSVnc -passwd /tmp/tigervnc.otB4Rd/passwd myd-ld25x:1 to connect to the VNC server.
[mi] mieq: warning: overriding existing handler (nil) with 0xaaaae7efad10 for event 2
[mi] mieq: warning: overriding existing handler (nil) with 0xaaaae7efad10 for event 3
..................................................
● 輸入連接地址
依次點(diǎn)擊VNC客戶端界面“File->New connection”輸入服務(wù)器和主機(jī)名,格式如下:
格式:目標(biāo)地址:顯示編號(hào) 或 目標(biāo)地址::端口號(hào)
示例1(主機(jī)名+顯示編號(hào)):myd-ld25x:1
示例2(IP+端口):192.168.40.198:5901
以主機(jī)名為例子,配置完成后,點(diǎn)擊”O(jiān)K”按鈕,如下圖所示:
圖2.2 客戶端VNC配置
● 成功連接
連接成功后,客戶端窗口將顯示遠(yuǎn)程設(shè)備的桌面,可進(jìn)行交互操作。
圖2.3 VNC連接成功界面
3、交換機(jī)功能
3.1. 交換機(jī)簡(jiǎn)介
以太網(wǎng)交換機(jī)是一種硬件設(shè)備,用于連接局域網(wǎng)(LAN)上的設(shè)備,并在這些設(shè)備之間轉(zhuǎn)發(fā)數(shù)據(jù)包。它在OSI模型的數(shù)據(jù)鏈路層(第2層)運(yùn)行,并使用MAC地址來(lái)確定每個(gè)數(shù)據(jù)包的目的地。以太網(wǎng)交換機(jī)可以通過(guò)減少?zèng)_突和擁塞來(lái)提高網(wǎng)絡(luò)性能,同時(shí)還可以提供如虛擬局域網(wǎng)(VLAN)和基于端口的訪問(wèn)控制等安全功能。與以太網(wǎng)橋接器相比,以太網(wǎng)交換機(jī)在CPU使用率方面更為高效。由于硬件以太網(wǎng)交換機(jī)負(fù)責(zé)數(shù)據(jù)轉(zhuǎn)發(fā)、過(guò)濾和優(yōu)先級(jí)排序,因此減輕了CPU的工作負(fù)擔(dān)。這樣一來(lái),CPU可以專(zhuān)注于處理其他任務(wù),從而進(jìn)一步提升網(wǎng)絡(luò)性能。本節(jié)主要介紹myd-ld25x作為交換機(jī)進(jìn)行雙網(wǎng)段轉(zhuǎn)發(fā)功能。
3.2. 網(wǎng)絡(luò)拓?fù)浣榻B
STM32MP257有兩個(gè)以太網(wǎng)控制器,MYD-LD25X以太網(wǎng)控制器1支持交換機(jī)功能。其網(wǎng)絡(luò)拓?fù)淙缦聢D:
圖3.1 網(wǎng)絡(luò)拓?fù)鋱D
根據(jù)上圖很容易了解網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu):
[Device1] (169.254.1.2)
│
├── end2 接口
│
[MP25 板]
│
├── end2 接口: 169.254.1.1(連接 Device1)
├── sw0p2 接口: 192.168.0.20(連接 Device2 end2)
│
└── IP 轉(zhuǎn)發(fā)已啟用 (`echo 1 > /proc/sys/net/ipv4/ip_forward`)
[Device2] (192.168.0.11)
3.3.關(guān)鍵拓?fù)渑渲媒馕?/strong>
● myd-ld25x的配置
從網(wǎng)絡(luò)拓?fù)鋱D可知,myd-ld25x被當(dāng)作為交換機(jī)/網(wǎng)關(guān),連接不同的子網(wǎng)絡(luò),
子網(wǎng)1配置 169.254.1.0/24(通過(guò) end2 接口);子網(wǎng)2:配置192.168.0.0/24(通過(guò) sw0p2 接口)。啟用 ip_forward 后,myd-ld25x可將來(lái)自子網(wǎng)1的流量轉(zhuǎn)發(fā)到子網(wǎng)2,反之亦然。
● Device1 配置
設(shè)置 IP 為 169.254.1.2,默認(rèn)網(wǎng)關(guān)指向 myd-ld25x的 end2 接口 (169.254.1.1)。使得所有非本子網(wǎng)的流量(如訪問(wèn) 192.168.0.11)通過(guò)網(wǎng)關(guān) myd-ld25x 轉(zhuǎn)發(fā)。
● Device2 配置
設(shè)置 IP 為 192.168.0.11,默認(rèn)網(wǎng)關(guān)指向myd-ld25x的 sw0p2 接口 (192.168.0.20)。使所有非本子網(wǎng)的流量(如訪問(wèn) 169.254.1.2)通過(guò)網(wǎng)關(guān)myd-ld25x轉(zhuǎn)發(fā)。
3.4.轉(zhuǎn)發(fā)功能配置與測(cè)試
● 切換交換機(jī)設(shè)備樹(shù)
啟動(dòng)開(kāi)發(fā)板,在uboot階段選擇交換機(jī)設(shè)備樹(shù),如下圖所示:
圖3.2 選擇交換機(jī)設(shè)備樹(shù)
● 轉(zhuǎn)發(fā)功能配置
根據(jù)拓?fù)浣Y(jié)構(gòu)對(duì)myd-ld25x開(kāi)發(fā)板板進(jìn)行配置,啟動(dòng)設(shè)備并設(shè)置 end1/sw0ep 接口,同時(shí)啟用 IP 轉(zhuǎn)發(fā)功能,使設(shè)備能夠充當(dāng)路由器,轉(zhuǎn)發(fā)網(wǎng)絡(luò)流量。
root@myd-ld25x:~# ifconfig end2 169.254.1.1 up
root@myd-ld25x:~# ifconfig sw0p2 192.168.0.20 up
root@myd-ld25x:~# echo 1 > /proc/sys/net/ipv4/ip_forward
配置設(shè)備1(開(kāi)發(fā)板或者PC)網(wǎng)絡(luò)接口IP和路由,這里Device1使用一塊MYD-LD25X開(kāi)發(fā)板:
Board $> ifconfig end2 169.254.1.2 up
Board $> ip route add default via 169.254.1.1
配置設(shè)備2(開(kāi)發(fā)板或者PC)網(wǎng)絡(luò)IP和路由,這里Device2也使用一塊MYD-LD25X開(kāi)發(fā)板:
Board $> ifconfig end2 192.168.0.11 up
Board $> ip route add default via 192.168.0.10
3.5.連通性驗(yàn)證
從Device1->Device2,當(dāng)執(zhí)行 ping 192.168.0.11 時(shí), 數(shù)據(jù)包從 Device1 發(fā)送到默認(rèn)網(wǎng)關(guān)MYD-LD25X (169.254.1.1),MYD-LD25X根據(jù)路由表將數(shù)據(jù)包轉(zhuǎn)發(fā)到 sw0p2 接口 (192.168.0.20)。Device2 收到數(shù)據(jù)包并回復(fù),路徑反向同理。
Board $> ping 192.168.0.11
PING 192.168.0.11 (192.168.0.11) 56(84) bytes of data.
64 bytes from 192.168.0.11: icmp_seq=1 ttl=63 time=0.959 ms
64 bytes from 192.168.0.11: icmp_seq=2 ttl=63 time=0.618 ms
64 bytes from 192.168.0.11: icmp_seq=3 ttl=63 time=0.649 ms
64 bytes from 192.168.0.11: icmp_seq=4 ttl=63 time=0.669 ms
64 bytes from 192.168.0.11: icmp_seq=5 ttl=63 time=0.625 ms
64 bytes from 192.168.0.11: icmp_seq=6 ttl=63 time=0.624 ms
64 bytes from 192.168.0.11: icmp_seq=7 ttl=63 time=0.630 ms
64 bytes from 192.168.0.11: icmp_seq=8 ttl=63 time=0.669 ms
從Device2->Device1,過(guò)程一樣:
Board $> ping 169.254.1.2
PING 169.254.1.2 (169.254.1.2) 56(84) bytes of data.
64 bytes from 169.254.1.2: icmp_seq=1 ttl=63 time=0.761 ms
64 bytes from 169.254.1.2: icmp_seq=2 ttl=63 time=0.688 ms
64 bytes from 169.254.1.2: icmp_seq=3 ttl=63 time=0.678 ms
64 bytes from 169.254.1.2: icmp_seq=4 ttl=63 time=0.640 ms
64 bytes from 169.254.1.2: icmp_seq=5 ttl=63 time=0.676 ms
64 bytes from 169.254.1.2: icmp_seq=6 ttl=63 time=0.614 ms
64 bytes from 169.254.1.2: icmp_seq=7 ttl=63 time=0.608 ms
64 bytes from 169.254.1.2: icmp_seq=8 ttl=63 time=0.543 ms
通過(guò)MYD-LD25X板作為路由中轉(zhuǎn),成功實(shí)現(xiàn)了兩個(gè)不同子網(wǎng)(169.254.1.0/24 和 192.168.0.0/24)間的通信。
4、TSN
4.1.TSN簡(jiǎn)介
TSN代表時(shí)間敏感網(wǎng)絡(luò)(Time-Sensitive Networking),它是由電氣和電子工程師協(xié)會(huì)(IEEE)開(kāi)發(fā)的一系列標(biāo)準(zhǔn),旨在通過(guò)以太網(wǎng)網(wǎng)絡(luò)提供確定性和低延遲的通信。TSN旨在支持實(shí)時(shí)應(yīng)用,如工業(yè)自動(dòng)化、汽車(chē)以及音頻/視頻流傳輸。
TSN通過(guò)在網(wǎng)絡(luò)中的所有設(shè)備之間提供時(shí)間同步,并使用流量整形和調(diào)度機(jī)制為時(shí)間關(guān)鍵型流量分配優(yōu)先級(jí)和網(wǎng)絡(luò)資源,從而實(shí)現(xiàn)確定性通信。TSN還支持冗余和容錯(cuò)機(jī)制,以確保高可用性和可靠性。此處列出了IEEE定義的TSN標(biāo)準(zhǔn)的完整清單。TSN的關(guān)鍵特性包括:
● 時(shí)間同步:TSN使用精確時(shí)間協(xié)議(PTP)來(lái)同步網(wǎng)絡(luò)中所有設(shè)備的時(shí)鐘,精度可達(dá)亞微秒級(jí)。IEEE 802.1AS-Rev
● 流量整形和調(diào)度:TSN使用服務(wù)質(zhì)量(QoS)機(jī)制為時(shí)間關(guān)鍵型流量分配優(yōu)先級(jí)和網(wǎng)絡(luò)資源,并防止擁塞和數(shù)據(jù)包丟失。IEEE 802.1Qav和IEEE 802.1Qbv
● 互操作性:TSN設(shè)計(jì)為與現(xiàn)有以太網(wǎng)網(wǎng)絡(luò)兼容,并支持不同供應(yīng)商和設(shè)備之間的互操作性。
總體而言,TSN為以太網(wǎng)網(wǎng)絡(luò)上的實(shí)時(shí)通信提供了一個(gè)標(biāo)準(zhǔn)化且可靠的解決方案,有助于在各行各業(yè)啟用新的應(yīng)用和用例。802.1Qav和802.1Qbv之間的選擇取決于應(yīng)用的特定需求。802.1Qav通常用于帶寬需求可變且不可預(yù)測(cè)的應(yīng)用,而802.1Qbv則通常用于帶寬需求固定且可預(yù)測(cè)的應(yīng)用。MYD-LD25X獨(dú)立網(wǎng)口end2和switch都支持TSN功能。本節(jié)將以myd-ld25x開(kāi)發(fā)板獨(dú)立以太網(wǎng)為例,展示TSN 802.1Qav如何提升流量整形效果。
4.2. 網(wǎng)絡(luò)拓?fù)浣榻B
通過(guò)預(yù)留4個(gè)帶寬序列,給每個(gè)序列分別不同的優(yōu)先級(jí),如下網(wǎng)絡(luò)拓?fù)鋱D所示:
圖4.1 QAV例子
如上圖所示,配置網(wǎng)口如下:
● 使用4個(gè)隊(duì)列(Q0-Q3)。每個(gè)隊(duì)列在硬件中都有預(yù)留的帶寬。最多支持4個(gè)隊(duì)列。
● 隊(duì)列0無(wú)帶寬限制,用于通用流量。
● 隊(duì)列1預(yù)留了最大帶寬的10%(100Mbps)
● 隊(duì)列2預(yù)留了最大帶寬的20%(200Mbps)
● 隊(duì)列3預(yù)留了最大帶寬的30%(300Mbps)
● Q3是最高優(yōu)先級(jí)隊(duì)列,而Q0是最低優(yōu)先級(jí)隊(duì)列。
4.3. 網(wǎng)絡(luò)流量控制
● 創(chuàng)建vlan端口
在MYD-LD25X開(kāi)發(fā)板發(fā)送端執(zhí)行下面命令創(chuàng)建vlan端口,并建立端口映射:
root@myd-ld25x:~# ip link add link end2 name end2.200 type vlan id 200
root@myd-ld25x:~# ip link set end2.200 type vlan egress 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
root@myd-ld25x:~# ifconfig end2.200 192.168.200.60 netmask 255.255.255.0
在接受端(PC或者其他開(kāi)發(fā)板)接收端創(chuàng)建vlan端口:
root@localhost:~# ip link add link eno0 name eno0.200 type vlan id 200
root@localhost:~# ip link set eno0.200 up
root@localhost:~# ip addr add 192.168.200.30/24 dev eno0.200
l 配置網(wǎng)絡(luò)流量
CBS用于通過(guò)限制流量類(lèi)別的數(shù)據(jù)速率來(lái)強(qiáng)制實(shí)施服務(wù)質(zhì)量;為了將數(shù)據(jù)包劃分為不同的流量類(lèi)別,用戶可以選擇使用mqprio。
root@myd-ld25x:~# tc qdisc add dev end0 clsact
root@myd-ld25x:~# tc qdisc add dev end0 handle 100: parent rootmqprio
num_tc 4
map 0 0 1 1 2 2 3 3 3 3 3 3 3 3 3 3
queues 1@0 1@1 1@2 1@3 hw 0
為每個(gè)隊(duì)列分配不同的帶寬
// Set bandwidth of queue 1 to be 100Mbps
root@myd-ld25x:~# tc qdisc replace dev end0 parent 100:2 cbs
idleslope 100000
sendslope -900000
hicredit 150
locredit -1350
offload 1
// Set bandwidth of queue 2 to be 200Mbps
root@myd-ld25x:~# tc qdisc replace dev end0 parent 100:3 cbs
idleslope 200000
sendslope -800000
hicredit 300
locredit -1200
offload 1
// Set bandwidth of queue 3 to be 300Mbps
root@myd-ld25x:~# tc qdisc replace dev end0 parent 100:4 cbs
idleslope 300000
sendslope -700000
hicredit 450
locredit -1050
offload 1
● 流量測(cè)試
在連接到端點(diǎn)end2且IP地址為192.168.200.30的遠(yuǎn)程PC或其他設(shè)備上運(yùn)行4個(gè)iperf會(huì)話,以生成具有不同優(yōu)先級(jí)的多個(gè)數(shù)據(jù)流。
root@localhost:~# iperf3 -s -p 5003&
root@localhost:~# iperf3 -s -p 5002&
root@localhost:~# iperf3 -s -p 5001&
root@localhost:~# iperf3 -s -p 5000&
在MYD-LD25X開(kāi)發(fā)板,使用iperf3開(kāi)始傳輸數(shù)據(jù)流:
//Stream with SKB priority 6 : TOS=0x14 == SO_PRIORITY=6
// https:man7.org/linux/man-pages/man8/tc-prio.8.html
root@myd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5003 -l1472 -t60 --tos 0x14 &
//Stream with SKB priority 4
root@myd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5002 -l1472 -t60 --tos 0x1a &
//Stream with SKB priority 2
root@myd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5001 -l1472 -t60 --tos 0xa &
//Stream with SKB priority 0 (Best effort)
root@myd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5000 -l1472 -t60 &
● 測(cè)試結(jié)果
對(duì)于優(yōu)先級(jí)為6且?guī)挒?00Mbps的隊(duì)列3,使用TC規(guī)則后:
root@myd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5003 -l1472 -t60 --tos 0x14 &
[1] 5238
root@myd-ld25x:~# warning: UDP block size 1472 exceeds TCP MSS 1448, may result in fragmentation / drops
Connecting to host 192.168.200.30, port 5003
[ 5] local 192.168.200.60 port 56663 connected to 192.168.200.30 port 5003
[ ID] Interval Transfer Bitrate Total Datagrams
[ 5] 0.00-1.00 sec 34.7 MBytes 291 Mbits/sec 24720
[ 5] 1.00-2.00 sec 34.7 MBytes 291 Mbits/sec 24710
[ 5] 2.00-3.00 sec 34.7 MBytes 291 Mbits/sec 24730
[ 5] 3.00-4.00 sec 34.6 MBytes 291 Mbits/sec 24680
[ 5] 4.00-5.00 sec 34.6 MBytes 290 Mbits/sec 24670
對(duì)于優(yōu)先級(jí)為4且?guī)挒?00Mbps的隊(duì)列2,使用TC規(guī)則后:
root@myd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5002 -l1472 -t60 --tos 0x1a &
[1] 5335
root@myd-ld25x:~# warning: UDP block size 1472 exceeds TCP MSS 1448, may result in fragmentation / drops
Connecting to host 192.168.200.30, port 5002
[ 5] local 192.168.200.60 port 33494 connected to 192.168.200.30 port 5002
[ ID] Interval Transfer Bitrate Total Datagrams
[ 5] 0.00-1.00 sec 23.3 MBytes 195 Mbits/sec 16600
[ 5] 1.00-2.00 sec 23.2 MBytes 195 Mbits/sec 16550
[ 5] 2.00-3.00 sec 23.2 MBytes 195 Mbits/sec 16550
[ 5] 3.00-4.00 sec 23.2 MBytes 195 Mbits/sec 16550
[ 5] 4.00-5.00 sec 23.2 MBytes 195 Mbits/sec 16550
[ 5] 5.00-6.00 sec 23.2 MBytes 195 Mbits/sec 16550
對(duì)于優(yōu)先級(jí)為2且?guī)挒?00Mbps的隊(duì)列1,使用TC規(guī)則后:
root@myd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5001 -l1472 -t60 --tos 0xa &
[1] 5376
warning: UDP block size 1472 exceeds TCP MSS 1448, may result in fragmentation / drops
root@myd-ld25x:~# Connecting to host 192.168.200.30, port 5001
[ 5] local 192.168.200.60 port 40923 connected to 192.168.200.30 port 5001
[ ID] Interval Transfer Bitrate Total Datagrams
[ 5] 0.00-1.00 sec 11.7 MBytes 98.3 Mbits/sec 8350
[ 5] 1.00-2.00 sec 11.7 MBytes 97.9 Mbits/sec 8310
[ 5] 2.00-3.00 sec 11.7 MBytes 97.7 Mbits/sec 8300
[ 5] 3.00-4.00 sec 11.7 MBytes 97.9 Mbits/sec 8310
[ 5] 4.00-5.00 sec 11.7 MBytes 97.8 Mbits/sec 8310
[ 5] 5.00-6.00 sec 11.7 MBytes 97.8 Mbits/sec 8300
[ 5] 6.00-7.00 sec 11.7 MBytes 97.9 Mbits/sec 8310
對(duì)應(yīng)優(yōu)先級(jí)為0且?guī)挓o(wú)限制的流量,使用TC規(guī)則后:
root@myd-ld25x:~# iperf3 -c 192.168.200.30 -u -b 0 -p 5000 -l1472 -t60 &
[1] 5426
root@myd-ld25x:~# warning: UDP block size 1472 exceeds TCP MSS 1448, may result in fragmentation / drops
Connecting to host 192.168.200.30, port 5000
[ 5] local 192.168.200.60 port 47330 connected to 192.168.200.30 port 5000
[ ID] Interval Transfer Bitrate Total Datagrams
[ 5] 0.00-1.00 sec 101 MBytes 845 Mbits/sec 71800
[ 5] 1.00-2.00 sec 104 MBytes 875 Mbits/sec 74300
[ 5] 2.00-3.00 sec 105 MBytes 880 Mbits/sec 74750
[ 5] 3.00-4.00 sec 105 MBytes 880 Mbits/sec 74700
[ 5] 4.00-5.00 sec 105 MBytes 881 Mbits/sec 74790
[ 5] 5.00-6.00 sec 105 MBytes 878 Mbits/sec 74560
評(píng)論