计算机网络朝花夕拾 [保持更新]
计算机网络朝花夕拾
最后更新:2022.09.06
1. 使用 Chrome 支持 QUIC 协议
进入网址:chrome://flags/ ,搜索 QUIC,将其设置为 Enable 即可。 QUIC 参考:
2. CentOS 配置 IP
我这里的网卡名称 ens33,其他名称的话照猫画虎即可:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
将红色框里面的内容进行像这样的修改,其他不变:
BOOTPROTO="static" IPADDR=192.168.1.104 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 # 阿里的 DNS 或者其他 DNS1=223.5.5.5 DNS2=223.6.6.6
重启网络:
systemctl restart network systemctl status network
这样就好了。
3. WINDOWS 查看 MAC
ipconfig -all
4. 为什么实际传输的 IP报 长度达不到 MTU,而 ICMP 可以
我的宽带 MTU 为 1480 抓 TCP 包: 我抓的最大 1440 那么剩下的 1480 - 1440 = 40 个字节是什么,去哪里了? 为啥不让发那么大? 可以看到 MSS 取决于两边的 MSS,MTU 取决于较小的一方。done!
再试试 UDP: 我抓的最大 1292 那么剩下的 1480 - 1292 = 88 个字节是什么,去哪里了?
Windows 命令可查看 MTU:
netsh interface ipv4 show subinterfaces
如何寻找适合自己的 MTU 值呢?
ping -l 1500 -f baidu.com
把 1500 的数值慢慢修改,修改到不拆分也能发送: 这个数据加上 28(IP 头 20 + ICMP 头 8)就是实际最大 1480。 我抓了几个 ICMP 包,我很纳闷为啥 TCP 协议传输的时候 IP 报长最大才 1440,而 ICMP 协议传输的时候 IP 报文最大能达到 1480?
5. CentOS 使用 ifconfig 和 tranceroute 和 ip route show
5.1 ifconfig
yum install -y net-tools
ifconfig
5.2 tranceroute
yum install -y tranceroute
5.3 ip route show
ip route show
可以查看网关
6. TCP 发送窗口大小取决于对端接收窗口
7. TCP 快速重传
8. 安装 Rust 使用 cargo 命令
curl https://sh.rustup.rs -sSf | sh # 中间按个 1 安装 source $HOME/.cargo/env
更换为国内镜像:
[source.crates-io] registry = "https://github.com/rust-lang/crates.io-index" #指定镜像 replace-with = tuna #清华大学 [source.tuna] registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"
9. CentOS cmake 版本升级
10 CentOS 升级 GCC
11. CentOS 设置网卡开机自启动
vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改 ONBOOT=yes
12. CentOS 安装 Python
最简单的 yum 下载
yum -y install python3
12. CentOS 设置防火墙白名单
firewall-cmd --zone=public --list-ports ##查看已开放的端口 firewall-cmd --permanent --zone=public --add-port=8088/udp firewall-cmd --reload
--zone #作用域 --add-port=8088/udp #添加端口,格式为:端口/通讯协议 --permanent #永久生效,没有此参数重启后失效
13. MSS 和 MTU
MSS:Maximum Segment Size:最大报文段长度 MTU: Maximum Transmit Unit:最大传输单元
UDP 数据包从mtu 大的网络发往mtu小的网络时怎么办?
-
数据包分片。在大的路由器上重新分割成小包。入接口不检测 MTU,出接口检测,分片。
14. Linux 修改主机名称
最简单的方式: 执行命令后重新连接即可。
hostnamectl set-hostname localhost
上一篇:
Java架构师技术进阶路线图