> ## Documentation Index
> Fetch the complete documentation index at: https://www.checklyhq.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# TCP Monitors Overview

> Monitor the availability and performance of your TCP services.

> [!TIP]
>
> **Monitoring as Code**: Learn more about the [TCP Monitor Construct](https://www.checklyhq.com/docs/constructs/tcp-monitor.md).

## What are TCP Monitors?

Use TCP monitors to verify that your non-HTTP services are working as expected. TCP monitors work by establishing a connection to a host and port, then checking the speed and validity of the response.

For example, use these checks to verify that:

* Your mail server is online and responds to IMAPS requests quickly
* Your FTP server responds correctly to commands
* Your custom TCP-based service returns the expected response when sent a health check message

![TCP monitor overview](https://mintcdn.com/checkly-422f444a/Q-mo1I-Hc45T0Oic/images/next/tcp-monitor-overview-light.png?fit=max\&auto=format\&n=Q-mo1I-Hc45T0Oic\&q=85\&s=8b238831848557644ee6b6ef0ab03d43)

## How TCP Monitoring Works

TCP monitors perform connection-level checks:

1. **Connection Attempt** - Establishes a TCP connection to your service
2. **Port Verification** - Confirms the service is listening on the specified port
3. **Response Validation** - Optionally validates service responses based on your configured assertions

## TCP Monitor Results

Select a specific check run to review its results:

![TCP monitor results page](https://mintcdn.com/checkly-422f444a/daJfNuXC-nCaf4db/images/tcp-monitor-results-page.png?fit=max\&auto=format\&n=daJfNuXC-nCaf4db\&q=85\&s=e738e773bf865985c732462a37b99365)

* **Summary:** Displays the monitor target (hostname and port), the monitor state (`success` for passed and degraded runs, or `error` for failed runs), the request status code and the total check run duration

* **Error details:** If the check failed, the error status code and message log will be shown

* **Request data:** If a payload was sent, it is shown alongside the response received from the server

* **Timing phases:** For each request, we capture the following timing metrics:
  * DNS: Time taken to resolve the hostname to an IP address (if a hostname was provided)
  * Connect: Time taken to establish the TCP connection (SYN, SYN-ACK, ACK)
  * Data: Time taken to send the payload and receive the response data

Learn more in our documentation on [Results](https://www.checklyhq.com/docs/concepts/results.md).

## Troubleshooting

> **TCP monitors on port 25 time out**
>
> TCP monitors to port 25 (SMTP) may fail with a SOCKET\_TIMEOUT error from some Checkly locations.
>
> This happens because [AWS blocks outbound traffic on port 25 by default to prevent spam](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html#port-25-throttle). Some Checkly public locations run on AWS, so connections to port 25 cannot be established from those regions.
>
> **Workarounds:**
>
> * Run the check from a [Private Location](https://www.checklyhq.com/docs/platform/private-locations/overview.md) where port 25 is allowed
>
> * Use an alternative SMTP port such as 587 or 465 if supported


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.