从应用--DB发一条 SQL的数据流向

1) 应用层(Application Layer)------"业务在说什么"

干什么:产生"有意义的数据"并定义"对话语义"

典型单位:请求/响应/SQL/事务/HTTP报文/协议消息

例子(Oracle 语境):

•客户端应用 / JDBC / OCI 要做的:登录认证、发 SQL、取行、commit/rollback

•Oracle 协议层:把它封装成 Oracle Net 的消息(TNS 层在上面跑)

•OS 看到的,已经是"一串要发出去的 payload",但此时还不知道走哪根线、怎么保证不丢

关键点:

•应用层不等价"你写的应用代码",它更像是"带语义的最终载荷"

•你前面说"VIP漂移让应用层快速知道失败"------更准确说法是:TCP 把失败信号(RST/写错误)一路返回给 socket API,最终应用层拿到错误并决定重连

  1. 传输层(Transport Layer)------"这条连接怎么可靠送到"

干什么:在两台机器的 进程端口之间,管:

•端到端投递(靠端口:1521/3306/...)

•可靠性(重传、排序、ack、窗口)

•连接状态机(三次握手、四次挥手、keepalive)

典型协议:TCP / UDP

单位:Segment(段),头里最关键的是:

•SrcPort / DstPort

•Seq/Ack(排序与确认)

•标志位(SYN / ACK / FIN / RST)

Oracle 语境里它负责什么:

•客户端连 VIP:1521,靠的就是 TCP(IP+端口=连接四元组)

•"TCP 超时太长很难受"的根源就在这一层:

•如果链路"中间变黑洞",TCP 会 重传(retransmission)​ 等 RTO 增长

•很多时候不是应用层迟钝,而是传输层还在努力抢救连接

•VIP 漂到另一节点后,新节点 没有旧 TCP 状态,通常会回 RST​ → 传输层立刻告诉应用层:"别等了,死透了"

一句话:传输层管的是"这条管道通不通、按序到没到",不管你 SQL 在管道里说了什么。

  1. 网络层(Network Layer)------"往哪个IP走、过哪些路由器"

干什么:把包从源 IP​ 送到 目的 IP(寻址 + 路由选择)

典型协议:IP(IPv4/IPv6)、ICMP

单位:Packet / Datagram(包)​

头里最关键:

•SrcIP / DstIP

•TTL(跳数限制)

•Protocol(告诉对方这是 TCP=6 还是 UDP=17)

Oracle/VIP 语境里它负责什么:

•VIP 本质上就是一个 IP 地址资源,漂移=把这个 IP 从节点A的网卡摘下来,配到节点B的网卡

•漂移后会发生 ARP 更新(IP→MAC 映射变啦),让局域网交换机把去往该 IP 的帧送到新网卡

•路由表决定:"去 VIP 下一跳是谁、从哪个网卡出去"

一句话:网络层不管'端口/连接状态',只管'IP 到 IP 的路径'。

  1. 物理层(Physical Layer)------"比特怎么在线上跑"

干什么:把"0/1"变成电信号/光信号/无线电,送上介质

单位:比特 / 符号(电压、光脉冲、电磁波)

例子:

•双绞线电平、光纤光强、Wi‑Fi 调制

•网卡 PHY、交换机端口状态(up/down)、速率、双工

跟DB/RAC 最相关的事实:

•你看到 ip link show里 state DOWN,基本就是物理层/链路层断了(网线松、交换机 shutdown、端口 err-disable)

•物理层一断,上面三层在短时间内会表现为"hang",直到链路层/传输层判定不可达(RST/超时)才会上报应用层

用一张"发一条 SQL"的顺向/逆向把四层钉死(你前面那张数据流图的正身)

请求下去(Client → DB)

1.应用层:拼出 SQL/OCI消息

2.传给 传输层(TCP):套上 TCP 头(src-port→VIP:1521),变成 segment

3.传给 网络层(IP):套上 IP 头(ClientIP→VIP),变成 packet

4.往下到 链路/物理层:封装成帧/信号,从网卡发到交换机→服务器

回包/失败往上(DB → Client)

4→3→2→1 逐层剥头:帧→packet→segment→最后应用层拿到结果或错误

相关推荐
360智汇云8 小时前
Valkey 9.1上线:从Redis兼容到AI数据能力探索
数据库
标致的自行车8 小时前
Entity Framework之问题收集
jvm·数据库·oracle
啵啵鱼爱吃小猫咪8 小时前
Franka机械臂安装实时内核
数据库·postgresql
今天也是元气满满的一天呢9 小时前
从单机架构到负载均衡的互联网架构全流程
数据库·系统架构
SelectDB9 小时前
快手 AB 场景提速 145 倍,从 Spark 到 Apache Doris 的加速实践
数据库·spark·开源
SelectDB9 小时前
阶跃星辰 Agent 可观测实践:为什么 Trace 数据底座选择 SelectDB?
大数据·数据库·agent
冷静的楼房9 小时前
使用ThreadPool发起同步的调用
数据库
一个天蝎座 白勺 程序猿9 小时前
自动SQL优化实战|吃透调优接口+报告配置+统计+索引全流程落地
数据库·sql·sql优化
TDengine (老段)9 小时前
# TDengine TMQ 最佳实践 — 可靠消费、容错与监控
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
杨云龙UP10 小时前
Windows SQL Server 备份无法传输至异地共享目录排查处理
运维·服务器·数据库·windows·共享·smb·异地备份传输