2023 年第 33 周 ARTS 打卡
#ARTS #2023 #Week-33
Algorithm - 算法
题目
https://leetcode.com/problems/number-of-black-blocks/
解
m*n = 10^10 -> 不可能枚举 coordinates = 10^5 -> 最高遍历 nlogn (可枚举黑格子)Block 代表:使用左上角的格子代表这个 block 每个 Cell 归属于上下左右四个 block(注意 block 可能不存在)
Review - 英文技术文章阅读与点评
[How NAT traversal works](https://tailscale.com/blog/how-nat-traversal-works/)
- 基础
- 首先,协议应基于 UDP —— 如果想在 NAT 穿越完成后使用 TCP 可考虑使用 QUIC
- 其次,你需要直接控制发送和接收网络数据包的 socket(无法使用现有的网络库,因为需要发送额外包)
- 防火墙
- 有状态防火墙仅在连接建立时进行阻止
- 防火墙限制了直接流入,因此数据包必须先流出再流回
- 双向防火墙的特殊情况
- 都需要突破
- 让每个防火墙都认为对方侧的请求是自己侧请求的响应
- 为了效率:两个端点必须在大致相同的时间尝试通信,这样所有的中间防火墙都会在两个对等点都还在的时候打开
- 有状态防火墙的内存有限,这意味着我们需要定期通信来保持连接存活
-
Tip - 本周学到的技术技巧
- [chroot](https://linux.die.net/man/1/chroot) 除了可以修改跟目录地址外,还可以修改当前用户和用户组(相当于 su/sudo 了)
- **命令行中修改用户有三种方式**
- su
- 切换当前的用户,也可以只使用特定用户执行程序
- 非 root 用户需要输入对应用户的密码
- sudo
- 切换当前的用户,也可以只使用特定用户执行程序
- 依赖 /etc/sudoers 配置切换权限
- chroot
- 切换当前的用户
- 仅 root 用户可用
-
Share - 写一篇技术文章
版权声明: 本文为 InfoQ 作者【Bryan】的原创文章。
原文链接:【http://xie.infoq.cn/article/e8134c3afac735ff020ae9827】。文章转载请联系作者。
评论