TNS 协议传输可以使用 TCP/IP 协议、使用 SSL 的 TCP/IP 协议、命名管道和 IPC 协议传输,其中 TCP/IP 协议传输是使 用明文传送。
这里只分析基于 TCP/IP 协议上的 TNS 数据。
简介
TNS(Transparent Network Substrate) 协议用于客户端连接Oracle数据库,它可以使用其他一些协议进行通信,如:TCP/IP, IPX/SPX, IPC, Named Pipes等。
结构
TNS 包由一个header和payload 组成
0 8 16 31
+--------------+--------------+
| Packet Length| Packet Chksm |
+------+-------+--------------+ 8 byte header
| Type | Rsrvd | Header Chksm |
+------+-------+--------------+
| P A Y L O A D |
+-----------------------------+
字段说明:
Packet Length: 包长度字段
Packet Chksm:检测包
Header Chksm: 检测头
Type: 包类型
Rsrvd: 未使用
如上图:Packet Chksm 和 Header Chksm 通常是不变的,值为0.
Type字段是包的类型字段, 下面列出type 值对应的类型说明:
Type |
Description |
1 |
Connect |
2 |
Accept |
3 |
ACK |
4 |
Refuse |
5 |
Redirect |
6 |
Data |
7 |
NULL |
8 |
---- |
9 |
ABORT |
10 |
---- |
11 |
Resend |
12 |
Marker |
13 |
Attention |
14 |
Control |
Payload
Connect
连接类型数据如下所示:
Transparent Network Substrate Protocol
Packet Length: 2