## Internet Domain: TCP, UDP, SSL, and TLS

`ssl://`, `tls://`, `sslv2://` & `sslv3://`.

> Note: If no transport is specified, `tcp://` will be assumed.

- `127.0.0.1`
- `fe80::1`
- `www.example.com`
- `tcp://127.0.0.1`
- `tcp://fe80::1`
- `tcp://www.example.com`
- `udp://www.example.com`
- `ssl://www.example.com`
- `sslv2://www.example.com`
- `sslv3://www.example.com`
- `tls://www.example.com`

Internet Domain sockets expect a port number in addition to a target address. In the case of fsockopen() this is specified in a second parameter and therefore does not impact the formatting of transport URL. With stream_socket_client() and related functions as with traditional URLs however, the port number is specified as a suffix of the transport URL delimited by a colon.

- `tcp://127.0.0.1:80`
- `tcp://[fe80::1]:80`
- `tcp://www.example.com:80`

> Note: IPv6 numeric addresses with port numbers
> In the second example above, while the IPv4 and hostname examples are left untouched apart from the addition of their colon and portnumber, the IPv6 address is wrapped in square brackets: `[fe80::1]`. This is to distinguish between the colons used in an IPv6 address and the colon used to delimit the portnumber.

The `ssl://` and `tls://` transports (available only when openssl support is compiled into PHP) are extensions of the `tcp://` transport which include SSL encryption.

`ssl://` will attempt to negotiate an SSL V2, or SSL V3 connection depending on the capabilities and preferences of the remote host. `sslv2://` and `sslv3://` will select the SSL V2 or SSL V3 protocol explicitly.