ARTS-week20

Algorithms

Best Time to Buy and Sell Stock II
思路:贪心算法。可以操作任意次,获得最大收益即可。那么从头到尾遍历prices,如果price[i] – price[i-1]大于零则计入最后的收益中。

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution {
public:
int maxProfit(vector<int>& prices) {
int n = prices.size();
int res = 0;
for (int i = 1; i < n; ++i) {
if (prices[i] > prices[i - 1]) {
res += prices[i] - prices[i - 1];
}
}
return res;
}
};

Valid Palindrome

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Solution {
public:
bool isPalindrome(string s) {
int left = 0;
int right = s.size() - 1;
while (left < right) {
if (!isalnum(s[left])) {
++left;
} else if (!isalnum(s[right])) {
--right;
} else if (isupper(s[left])) {
s[left] = tolower(s[left]);
} else if (isupper(s[right])) {
s[right] = tolower(s[right]);
} else if (s[left] != s[right]) {
return false;
} else {
++left;
--right;
}
}
return true;
}
};

Review

本周阅读英文文章 Performance comparison of video coding standards: an adaptive streaming perspective

影响视频编码器评估的几个因素:
1)编码器实现
2)编码器设置
编码参数,例如编码通道的数量、并行化工具、速率控制、视觉调整等在结果种引入了高度的可变性。
3)方法
编码器标准化测试方法建立了通用测试条件,常见的测试条件包括了一组相对较小的测试序列(1-10秒的单次拍摄),这些测试序列在输入分辨率下使用一组固定的质量参数进行编码。收集每个质量点的质量(PSNR)和比特率,用于计算BD率。
4)内容
5)度量

Technique

在倪朋飞老师专栏《系统的软中断CPU使用率升高,我该怎么办?》中学到了关于用来查看系统网络收发情况工具sar的使用。

sar不仅可以用来查看系统的网络收发情况,还有一个好处是,不仅可以观察网络收发的吞吐量(BPS,每秒收发的字节数),还可以观察网络收发的PPS,即每秒收发的网络帧数。

监控网络接口统计信息,间隔1秒输出一组数据

1
2
3
4
5
6
7
# sar -n DEV 1
Linux 4.4.0-140-generic (ubuntu) 12/16/2018 _x86_64_ (1 CPU)

11:41:53 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
11:41:54 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:41:54 AM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:41:54 AM eth0 9.90 9.90 0.69 1.17 0.00 0.00 0.00 0.00

第一列:表示报告时间。
第二列:IFACE表示网卡。
第三、四列:rxpck/s、txpck/s分别表示每秒接收、发送的网络帧数,也就是PPS。
第五、六列:rxkB/s、txkB/s分别表示每秒接收、发送的千字节数,也就是BPS。
第七、八列:rxcmp/s、txcmp/s分别表示压缩包接收速率、压缩包传输速率。
第九列:rxmcst/s表示组播包接收速率。

自己查了一下sar相关的资料:
https://linux.die.net/man/1/sar
https://medium.com/@malith.jayasinghe/network-monitoring-using-sar-37bab6ce9f68

还可以用来监视网络接口错误和套接字用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# sar -n EDEV 1
Linux 4.4.0-140-generic (ubuntu) 12/16/2018 _x86_64_ (1 CPU)

11:52:37 AM IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
11:52:38 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:52:38 AM docker0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:52:38 AM eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00


# sar -n SOCK 1
Linux 4.4.0-140-generic (ubuntu) 12/16/2018 _x86_64_ (1 CPU)

11:58:26 AM totsck tcpsck udpsck rawsck ip-frag tcp-tw
11:58:27 AM 141 6 4 0 0 0
11:58:28 AM 141 6 4 0 0 0
11:58:29 AM 141 6 4 0 0 0
11:58:30 AM 141 6 4 0 0 0

Share

本周阅读《计算机安全-原理与实践》无线网络安全

相比有线网络,导致无线网络安全面临更高威胁的一些关键因素:

1)信道:无线网络的通信方式一般为广播通信,比有线网络更容易出线窃听和拥堵现象。无线网络更容易遭受利用通信协议漏洞的主动攻击。
2)移动性:无论从原理还是实践看,无线设备均具有远超过有线设备的可携带、可移动性,这一特点会产生更多的安全隐患。
3)资源:一些无线设备,例如智能手机和平板电脑,其操作系统比较复杂,而设备的内储资源和计算资源有限,这种情况下,可能会面临包括拒绝服务攻击和恶意代码在内的安全威胁。
4)可访问性:一些无线设备,如传感器和机器人,可能需要在无人值守的状态下被留置于偏僻等区域,这就增大了其遭受物理攻击的可能性。

无线传输的主要威胁主要是窃听、篡改或插入消息和破坏消息。抵御窃听攻击的有效对策有两种:

1)信号隐藏技术:组织可以采取多种措施使攻击者难以定位他们的无线接入点,例如关闭无线接入点的服务集标识符(SSID)广播,将SSID设为隐秘的名称,在保证必要的信号覆盖范围的前提下减小信号强度,将无线接入点放置在远离窗户和外墙的建筑物内部。此外,使用定向天线和信号屏蔽技术可以达到更好的安全防护效果。
2)加密:在保证密钥安全的情况下,对无线传输进行加密可以有效地抵御窃听攻击。

移动安全策略

设备安全:在设备获得网络访问权限之前对其进行检查。例如,获得root权限或者已”越狱”的设备不允许访问网络等。
流量安全:对设备流量以加密的方式安全传输。用强大的认证协议来限制移动设备非授权访问组织内部资源。
边界安全:需要安全机制来保护网络避免遭受未授权访问,其中包括针对移动设备流量特定的防火墙机制。防火墙机制能够限定所有移动设备对数据和应用程序的访问范围。类似地,入侵检测和防御系统要对移动设备流量具有更严格的控制规则。

0%