# NatTypeTester

| Channel  | Status                                                                                                                       |
| -------- | ---------------------------------------------------------------------------------------------------------------------------- |
| CI       | [![CI](https://github.com/HMBSbige/NatTypeTester/workflows/CI/badge.svg)](https://github.com/HMBSbige/NatTypeTester/actions) |
| Stun.Net | [![NuGet.org](https://img.shields.io/nuget/v/Stun.Net.svg?logo=nuget)](https://www.nuget.org/packages/Stun.Net/)             |

## RFC

- [RFC 3489](https://datatracker.ietf.org/doc/html/rfc3489)
- [RFC 5780](https://datatracker.ietf.org/doc/html/rfc5780)
- [RFC 8489](https://datatracker.ietf.org/doc/html/rfc8489)

## Internet Protocol

- [x] IPv4
- [x] IPv6

## Transmission Protocol

- [x] UDP
- [x] TCP
- [x] TLS-over-TCP
- [x] DTLS-over-UDP

## RFC3489

<details>

![](docs/img/RFC3489.png)

</details>

## RFC5389

### Binding Test

<details>
  <summary>Checking for UDP Connectivity with the STUN Server</summary>

![](docs/img/RFC5780_4.2.png)

</details>

### Mapping Behavior

<details>
  <summary>Determining NAT Mapping Behavior</summary>

![](docs/img/RFC5780_4.3.png)

</details>

### Filtering Behavior

<details>
  <summary>Determining NAT Filtering Behavior</summary>

![](docs/img/RFC5780_4.4.png)

</details>

### Combining Tests

<details>

![](docs/img/RFC5780_4.5.png)

</details>
