piekenius' Blog

interact

Word count: 644Reading time: 2 min
2023/08/10
  1. 网络打通
    互联网
    路由:同网段-SDN(网络虚拟化);跨网段
  • 路由不一定是对称的
  • 路由工作在IP层,但不一定只在IP层

ARP协议

  • 逻辑同网段才能发送ARP
  • ARP请求广播,ARP应答单播
  • 免费ARP:不用请求就可得知ARP地址,提前判断IP是否有冲突
  • ARP代理

IP协议:唯一标识,互联网通用
Mac地址不能代替IP地址:二层协议有很多
IPv4不够用,如何解决:NAT(家里路由器),内部用户通过NAT设备改源地址IP+端口,不同地址映射到一个地址进行联网

  1. 网络传输
    数据包
    数据包发送
    先请求DNS:DNS协议UDP,递归请求
    TCP三次握手
  • Timewait?
  • 丢包怎么办?
  • 滑动窗口
  • 流量控制

HTTP/HTTP1.1

  • 为什么不用TCP通信?关注代码本身,不用关注协议具体实现
  • HTTP本质还是TCP,使用户更简洁

HTTPS:解密出来仍然是HTTP

SSL/TLS握手:对称加密和非对称加密

  1. 网络架构
    3.1 网络提速
    HTTP2.0:多图并发下载
    多路复用
    HTTP3.0/QUIC:
  • TCP(对)/UDP
  • kernel/userspace(√)
  • 0 RTT:本身支持HTTP协议
  • 弱网优势
    数据中心分布
    同运营商访问
    动态API路径优化
  1. 网络提速优化
    容灾:
  • 专线
  • 外网
  • 自动化容灾系统
  • SDK,云到端,主动降级容灾

故障排查:故障明确-故障止损-故障排查

dig;ping/telnet/nmap;traceroute;iptables;tcpdump

1. UDP socket实现ack,感知丢包重传
- 学会UDP socket编程
- 简单的ack'学习,客户端等待ack再发包
- 什么时候客户端认为是丢包
- 重传怎么考虑效率
- 能不能不阻塞只穿丢掉的中间的段
2. 三台同网段内服务器,模拟实现一个路由器   
    1. Linux操作系统配置
    - 了解Linux路由配置方式
    - 确保是同网段直连可达的环境。在三台机器上另外配置IP网段和路由。
    - 一台机器做客户端,一台机器做路由器,一台机器做服务端
    - 客户端配置到达服务器的下一跳指向路由器,路由器上配置到达服务器的路由
    2. 用户态socket编程实现简易route软件
    - 收到指定的包后,做转发
    - 注意是修改报文的MAC,不是修改IP
    - 实现一个对称路由,可以实现TCP交互
    - 通过ping验证
    - 可以支持traceroute么
CATALOG