oracle-tns,ORACLE-TNS协议分析详解.doc

本文深入剖析Oracle的TNS协议,主要关注基于TCP/IP的传输。内容涵盖TNS协议的不同版本、通用包头结构、连接过程以及不同类型的数据包,如连接(CONNECT)、接受(ACCEPT)、重定向(REDIRECT)等。此外,还详细解析了连接包结构和连接字符串格式。
摘要由CSDN通过智能技术生成

ORACLETNS协议分析

TNS介绍

TNS协议是ORACLE服务端和客户端通讯的协议。TNS协议传输可以使用TCP/IP协议、使用SSL的TCP/IP协议、命名管道和IPC协议传输,其中TCP/IP协议传输是使用明文传送。这里我们只分析基于TCP/IP协议上的TNS数据。

ORACLE网络通讯协议TNS有许多版本,并且大部分向下兼容,我们主要oracle 9.2.0.1.0客户和服务间的传输协议,他的协议版本号为312,其兼容到300。

TNS协议有一个通用的头,通用头包含一个请求数据类型。不同的服务请求和数据传输使用不同的请求数据类型。对于通常意义的查询操作一般使用数据类型,当出现错误或其他情况时可能使用其他类型。在分析过程中发现以下类型数据:

查询语句出错会用标记(marker)类型

客户端向服务器请求失败(如不存在的服务ID),服务器会发送拒绝(refuse)类型

客户机登陆会发送连接类型,而服务器返回一个重定向类型数据

当重定向端口连接完成后客户端重现发送连接类型数据,服务器返回接受类型数据,然后能够正常通讯。

TNS数据格式

TNS数据包含一个通用的包头,这个包头包含包校验,包长度和包类型等信息。

不同的类型的数据实现不同功能的数据传输。

Common Packet Header

8

通用包头

Data

可变

数据

通用包头格式

每个TNS完整数据都包含一个通用包头,他说明接受数据的长度及其相关校验和解析的信息。

Length

2

包的长度,包括通用包头

P

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值