Tabular Data Stream(TDS) is anapplication layerprotocolused to transfer data between adatabase serverand a client. It was initially designed and developed bySybaseInc. for theirSybase SQL Serverrelational databaseengine in 1984, and later byMicrosoftinMicrosoft SQL Server.
Communication protocol | |
Abbreviation | TDS |
---|---|
Purpose | Database |
Developer(s) | SybaseInc.,Microsoft |
Introduction | 1984 |
OSI layer | Application layer(7) |
Port(s) | TCP/1433 |
History
editDuring the early development of Sybase SQL Server, the developers at Sybase perceived the lack of a commonly accepted application level protocol to transfer data between adatabase serverand itsclient.In order to encourage the use of its products, Sybase promoted the use of a flexible pair oflibraries,callednetlib
anddb-lib
,to implement standardSQL.A further library was included in order to implement "Bulk Copy" calledblk
.Whilenetlib
's job is to ferry data between the two computers through the underlyingnetwork protocol,db-lib
provides an API to the client program, and communicates with the server vianetlib
.db-lib
sends to the server a structured stream of bytes meant for tables of data, hence a Tabular Data Stream.blk
provides, likedb-lib
,an API to the client programs and communicates with the server vianetlib
.
In 1990 Sybase entered into a technology-sharing agreement withMicrosoftwhich resulted in Microsoft marketing its own SQL Server —Microsoft SQL Server— based on Sybase's code. Microsoft kept thedb-lib
API and addedODBC.(Microsoft has since added additional APIs.) At about the same time, Sybase introduced a more powerful successor todb-lib
,calledct-lib
,and called the pairOpen Client.db-lib
,though officially deprecated, remains in widespread[quantify]use.
The TDS protocol comes in several varieties, most of which had not been openly documented because they were regarded[by whom?]asproprietary technology.The exception was TDS 5.0, used exclusively by Sybase, for which documentation is available from Sybase.[1]This situation changed when Microsoft published the TDS specification in 2008,[2]as part of theOpen Specification Promise.
TheFreeTDSteam has developed a free native-library implementation of the TDS protocol,[3]licensed under theLGPLlicense.WireSharkhas a protocol decoder for TDS.[4]
Oracle CorporationprovidesOracle Net- software analogous to TDS.[5]
See also
editReferences
edit- ^"TDS 5.0 Functional Specification, Version 3.8"(PDF).Retrieved2009-07-08.
- ^"[MS-TDS]: Tabular Data Stream Protocol".Retrieved2014-04-29.
- ^Chip Andrews; David Litchfield; Bill Grindlay (2003).SQL server security.McGraw-Hill Professional.p. 260.ISBN0-07-222515-7.
- ^protocol/tds,Wireshark.org wiki
- ^
"SQL Server Integration Services with Oracle Database 10g".SQL Server Technical Article. Microsoft. May 2008. p. 2.Retrieved2017-07-20.
Oracle Net is analogous to the SQL Server Tabular Data Stream (TDS) transport facility.
External links
edit- [MS-TDS]: Tabular Data Stream Protocolspecification, Microsoft
- What is TDS?,sybase.com
- FreeTDS
- TinyTDS,Ruby bindings to FreeTDS.
- jTDS,a pure-JavaJDBCdriver for TDS databases
- jBCP,an extension of jTDS to include BCP protocols
- United States Patent 7318075: Enhanced tabular data stream protocol,Microsoft
- Patent: TRANSPORTING TABLE VALUED PARAMETER OVER TABULAR DATA STREAM PROTOCOL,Microsoft
- Patent application: COMPRESSING NULL COLUMNS IN ROWS OF THE TABULAR DATA STREAM PROTOCOL,Microsoft
- WireShark wiki: Protocol tds