Oracle的TNS协议解析
mhr18 2024-12-20 12:14 52 浏览 0 评论
TNS协议基础介绍
TNS协议主要用于Oracle数据库的通讯使用,TNS可以基于多种协议进行传输,本文将分析基于TCP/IP的TNS。
- 报文头
- TNS协议总共8字节+payload(传输内容,可变)。
- Packet Length: 包长度字段(2字节)。
- Packet Chksm:检测包(2字节)。
- Header Chksm: 检测头(2字节)。
- Type: 包类型(1字节)。
- Rsrvd:未使用(1字节)。
- 详情如下图:
- 报文中type说明
- 针对包类型Type(1字节)共分为14个类型,详情如下图:
具体类型变换流程如下:
1.Oracle进行连接时,客户端向服务端发起建立请求,此时type=1。
2.当服务端接收后,会向客户端发起接受请求,此时type=2,如果重新发送时,此时type=11,并重新执行第一步。
3.当服务端拒绝时,会向客户端发起拒绝请求,此时type=4。如:TNS-12514错误,即提供的SID字符串无效。
4.如果服务端接受请求后,客户端开始发送数据,此时type=6。
具体效果可见下图: