从应用--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→最后应用层拿到结果或错误

相关推荐
thinking_talk1 小时前
2026中国MongoDB云服务厂商能力榜:选型对比与效能评估
数据库·mongodb·腾讯云
杨云龙UP1 小时前
Oracle 19c 单机环境安装目录规划与磁盘永久挂载操作指南_2026-06-15
运维·服务器·数据库·oracle·部署·目录·规划
JOJO数据科学1 小时前
DbGate Electron 鸿蒙 PC 适配全记录:从桌面数据库工具到 OpenHarmony HAP
数据库·electron·harmonyos
初圣魔门首席弟子1 小时前
AI Agent 核心原理:工具调用(Function Calling)完整工作流程详解
前端·数据库·人工智能
半夜修仙1 小时前
延迟队列的介绍及常见问题
java·数据库·中间件·rabbitmq
herinspace1 小时前
管家婆云辉煌开单优化
服务器·数据库·电脑·管家婆软件·财务软件
码云骑士1 小时前
24-Django请求全链路-WSGI到数据库响应的完整旅程
数据库·python·django
霖霖总总1 小时前
[MongoDB小技巧09]深入浅出 MongoDB 逻辑运算符:$and、$or、$nor、$not 原理与实战
数据库·mongodb
小丶舟1 小时前
MiMo Code实测:5场景对标Claude Code,3个踩坑与选型指南
数据库·人工智能·数据挖掘