Featured image of post 滴滴运维开发工程师

滴滴运维开发工程师

TCP 的连接方式

TCP 头结构

tcp_header.png 控制位:

  • SYN:表示希望建立连接,并在其「序列号」的字段进行序列号初始值的设定。
  • ACK:确认位,TCP 规定除了最初建立连接时的 SYN 包之外该位必须设置为 1,用于确认收到数据
  • RST:表示 TCP 连接中出现异常必须强制断开连接
  • FIN:当通信结束希望断开连接时,通信双方的主机之间就可以相互交换 FIN 位为 1 的 TCP 段

tcp_connect.png

TCP 客户端的状态流转围绕 “连接建立 - 数据传输 - 连接关闭” 三个阶段, 核心状态包括:CLOSED → SYN-SENT → ESTABLISHED → FIN-WAIT-1 → FIN-WAIT-2 → TIME-WAIT → CLOSED(主动关闭流程)。

服务端的典型状态流转为: CLOSED → LISTEN → SYN-RECEIVED → ESTABLISHED(连接建立); 若被动关闭:ESTABLISHED → CLOSE-WAIT → LAST-ACK → CLOSED。

tcp_close.png

502、504区别

  • 502 网关错误,通常是后端服务返回了无效响应(如返回了 HTML 而不是 JSON)
  • 504 网关超时,通常是后端服务响应时间超过了网关的超时时间

常用的网络命令

  • ping:测试主机之间的网络连接是否通畅
  • traceroute:跟踪数据包从源主机到目标主机的路径
  • netstat:显示网络连接、路由表和接口统计信息
  • tcpdump:捕获和分析网络流量
  • wget:从网络上下载文件
  • curl:发送 HTTP 请求并显示响应
  • ifconfig/ip:配置和显示网络接口信息
  • route:显示和操作 IP 路由表
  • dig:查询域名系统(DNS)服务器
  • nslookup:查询域名系统(DNS)服务器
  • host:查询域名系统(DNS)服务器
  • whois:查询域名注册信息
  • nmap:网络扫描工具
  • iperf:测试网络带宽
  • tcpdump:捕获和分析网络流量

如何查看80端口的进程ID

  • 查看进程ID:netstat -tuln | grep :80
  • 查看进程详情:ps -ef | grep <pid>

你对稳定性方面做了哪些东西

开放性问题

Licensed under CC BY-NC-SA 4.0

Powered by Hugo | Theme by Stack
Deployed with GitHub Actions 🚀
使用 Hugo 构建
主题 StackJimmy 设计