@@ -70,7 +70,7 @@ ToS 字段,总共 8 个 bit
7070
7171为优选权子字段,现在已经废弃,这个字段默认值是000,从wireshark抓包结果看,表示的是:
7272
73- ![ 003::每天五分钟入门TCP/IP协议栈::IP协议之TOS字段说明 ] ( https ://s4.51cto .com/images/blog/201804/25/ede8e1de3c98c2fdfeb044cb0cf74034 .png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk= )
73+ ![ ] ( http ://image.iswbm .com/20200723155027 .png)
7474
7575但是在某些协议中仍然是有用的,比如 OSPFv2 协议
7676
@@ -104,9 +104,9 @@ ToS 字段,总共 8 个 bit
104104IP首部中的ToS字段,只能表示一种服务类别,也就是:这4bit字段中,最多只能有一个bit字段为1。
105105
106106看下不同应用下该4bit字段对应的值:
107- ![ 003::每天五分钟入门TCP/IP协议栈::IP协议之TOS字段说明 ] ( https ://s4.51cto .com/images/blog/201804/25/3c42c64b7240ef12b991f69644a145ac .png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk= )
107+ ![ ] ( http ://image.iswbm .com/20200723154704 .png)
108108翻译过来就是:
109- ![ 003::每天五分钟入门TCP/IP协议栈::IP协议之TOS字段说明 ] ( https ://s4.51cto .com/images/blog/201804/25/4f03b09e8081d8fc7073f29870bc1c95 .png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk= )
109+ ![ ] ( http ://image.iswbm .com/20200723154742 .png)
110110** 最小延迟** ,对应于对延迟敏感的应用,如telnet和人login等。
111111** 最大吞吐量** ,对应于对吞吐量要求比较高的应用,如FTP文件应用,对文件传输吞吐量有比较高的要求。
112112** 最高可靠性** ,对网络传输可靠性要求高的应用,如使用SNMP的应用、路由协议等等。
@@ -221,6 +221,145 @@ $ ovs-appctl -t ovs-vswitchd qos/show vhu198063e9-97
221221
222222![ ] ( http://image.iswbm.com/20200709171517.png )
223223
224+
225+
226+ 测试限速
227+
228+ average: 100M
229+
230+
231+
232+
233+
234+ ``` shell
235+ # burst:50
236+ $ nova meta b1575f81-0a33-4872-995e-2c2dd48d52c8 set __system__vif_inbound_average=12500 __system__vif_inbound_burst=7500 __system__vif_outbound_average=12500 __system__vif_outbound_burst=6000
237+
238+
239+ # burst:60
240+ $ nova meta b1575f81-0a33-4872-995e-2c2dd48d52c8 set __system__vif_inbound_average=12500 __system__vif_inbound_burst=7500 __system__vif_outbound_average=12500 __system__vif_outbound_burst=7500
241+
242+ # burst:70
243+ $ nova meta b1575f81-0a33-4872-995e-2c2dd48d52c8 set __system__vif_inbound_average=12500 __system__vif_inbound_burst=8750 __system__vif_outbound_average=12500 __system__vif_outbound_burst=8750
244+
245+ # burst:80
246+ $ nova meta b1575f81-0a33-4872-995e-2c2dd48d52c8 set __system__vif_inbound_average=12500 __system__vif_inbound_burst=10000 __system__vif_outbound_average=12500 __system__vif_outbound_burst=10000
247+ ```
248+
249+
250+
251+ ## 3. 带宽单位换算
252+
253+ 带宽,英文名 Bandwidth,在不同领域的含义各不相同,而在网络服务中,带宽是指单位时间内的流经数据量。
254+
255+ 数据量的单位一般有两种:bit 和 Byte。
256+
257+ 因此,带宽的单位即为,b/s 或者 B/s,如果数值较大,可以使用 K 表示千(Kb/s 或者 KB/s),M 表示 百万(Mb/s 或者 MB/s)。
258+
259+ - Mb/s:Million bits per second的缩写,是一种传输速率单位,指每秒传输的位(比特)数量。通常用于运营商带宽速率的计量。
260+
261+ - MB/s:Million Bytes per second的缩写,是一种传输速率单位,指每秒传输的字节数量。即是我们平时说的下载速度。
262+
263+
264+
265+ Byte 和 bit 是不一样的,Byte = 8 bit,而不同的地方单位不同,需要进行换算,下表整理了在 VMP 中的各个位置的单位
266+
267+ | type | cloud | meta | xml | qos rule | ovs-vsctl/ovs-appctl |
268+ | ---- | ----- | ---- | ---- | -------- | -------------------- |
269+ | ovs | bit | Byte | Byte | | |
270+ | dpdk | bit | Byte | | bit | bit |
271+
272+ ## 4. 带宽限制效果
273+
274+ ### CentOS 安装 iperf3
275+
276+ 源码编译安装 iperf3
277+
278+ ``` shell
279+ yum -y install gcc make wget
280+ cd /tmp
281+ wget https://iperf.fr/download/source/iperf-3.1.3-source.tar.gz
282+ tar zxvf iperf-3.1.3-source.tar.gz
283+ cd iperf-3.1.3
284+ ./configure
285+ make
286+ make install
287+ ```
288+
289+ 使用 rpm 包安装(更简单,推荐)
290+
291+ ``` shell
292+ $ rpm -ih ftp://ftp.pbone.net/mirror/archive.fedoraproject.org/fedora/linux/updates/24/x86_64/i/iperf3-3.1.3-1.fc24.x86_64.rpm
293+ ```
294+
295+ ### Windows 安装 iperf3
296+
297+ 所有的 windows 可用的 iperf3 安装包都可以从这个页面下载:https://iperf.fr/iperf-download.php
298+
299+ 这里直接给出两个 windows 常用的
300+
301+ - windows 10 64位:https://iperf.fr/download/windows/iperf-3.1.3-win64.zip
302+ - windows 10 32 位:https://iperf.fr/download/windows/iperf-3.1.3-win32.zip
303+
304+ 下载到电脑到,并解压后,会得到两个文件:` cygwin1.dll ` 和 ` iperf3.exe ` ,将这两个文件拷贝到 ` c:\windows ` 目录下。
305+
306+ 最后打开 cmd,执行 ` iperf3 --version ` ,若安装成功,会打印出版本信息。
307+
308+ ### iperf3 使用前关闭防火墙
309+
310+ CentOS 关闭防火墙,只要一条命令
311+
312+ ``` shell
313+ $ systemctl stop firewalld
314+ $ systemctl stop iptables
315+ ```
316+
317+ windows 10 手动设置一下
318+
319+ ![ ] ( http://image.iswbm.com/20200716112516.png )
320+
321+
322+
323+ ### iperf3 的使用
324+
325+ iperf3 有客户端 和 服务端之别:
326+
327+ - 服务端:收包,使用 ` -s ` 参数指定
328+
329+ ``` shell
330+ $ iperf3 -s
331+ ```
332+
333+ - 客户端:发包,使用 ` -c xx.xx.xx.xx ` 来指定要往哪个服务端发包
334+
335+ ``` shell
336+ $ iperf3 -c 172.20.20.200
337+ ```
338+
339+ iperf3 还有更多的参数,其中有一些是客户端专用的,有一些是服务端专用的,也有一些是二者共用的。
340+
341+ 具体可以前往这个地址,进行查阅:https://www.cnblogs.com/yingsong/p/5682080.html
342+
343+ 常用的参数有
344+
345+ - ` -u ` :发送 UDP 包,仅客户端 可用
346+ - ` -p ` :后接服务端监听的端口
347+ - ` -i ` :设置带宽报告的时间间隔,单位为秒
348+ - ` -t ` :设置测试的时长,单位为秒
349+ - ` -w ` :设置tcp窗口大小,一般可以不用设置,默认即可
350+
351+
352+
353+
354+
355+ ## 5. 注意事项
356+
357+ 1、vm 在 host1 上,从host2 上 iperf 比在 host1 上限速效果更好
358+
359+ 2、udp 包限速效果差异很大。
360+
361+
362+
224363## 3. 参考文章
225364
226365- https://blog.51cto.com/mangguostudy/2107799
0 commit comments