Using the TCP/IP protocol

TCP/IP is a suite of protocols that has gained widespread use with the expansion of the Internet and the world wide web.

UDP is a transport layer protocol that sits on top of IP. SQL Anywhere uses UDP on top of IP to do initial server name resolution and uses TCP for connection and communication after that.

When you use the TCP/IP protocol, you can secure client/server communications using transport-layer security and ECC or RSA encryption technology.

See Transport-layer security.

IPv6 support in SQL Anywhere

On IPv6-enabled computers, the network database server listens by default on all IPv6 addresses, as well as all IPv4 addresses on the computer. IPv6 is supported on Windows, Linux, Mac OS X, Solaris, AIX, and HP-UX.

In most cases, no changes are required to the server start line to use IPv6. In the cases where specifying an IP address is required, the server and the client libraries both accept IPv4 and IPv6 addresses. For example, if a computer has more than one network card enabled, it will probably have two IPv4 addresses and two IPv6 addresses. If you want the database server to listen on only one of the IPv6 addresses, you can specify an address in the following format:

dbsrv11 -x tcpip(MyIP=fd77:55f:5a64:52a:202:5445:5245:444f) ...

Similarly, if a client application needs to specify the IP address of a server, the connection string or DSN can contain the address, in the following format:

...;LINKS=tcpip(HOST=fe80::5445:5245:444f);...

Each interface is given an interface identifier, which appears at the end of an IPv6 address. For example, if ipconfig.exe lists the address fe80::5445:5245:444f%7, the interface identifier is 7. When specifying an IPv6 address on a Windows platform, the interface identifier should be used. On Unix, you can specify either an interface identifier or interface name (the interface name is the name of the interface reported by ifconfig). For example, the interface name is eth1 in the following IPv6 address: fe80::5445:5245:444f%eth1. An interface identifier is required when specifying IPv6 addresses on Linux (kernel 2.6.13 and later). This requirement affects values specified by the following protocol options:

For example, suppose ipconfig.exe lists two interfaces, one with the identifier 1 and the other 2. If you are looking for a database server that is on the network used by interface number 2, you can tell the client library to broadcast only on that interface:

LINKS=tcpip(BROADCAST=ff02::1%2)

Note that ff02::1 is the IPv6 link-local multicast address.

See also

Using TCP/IP with Windows
Tuning TCP/IP performance
Connecting across a firewall
Connecting on a dial-up network connection
Encrypting client/server communications over TCP/IP
Connecting using an LDAP server