Your telegrams —
Your protocol. Your rules.

Client and server development over RFC 1006 (ISO-on-TCP) for .NET. Exchange raw data and your own telegrams between applications, controllers, and systems — vendor-independent, over an open transport protocol.

4.8/5 on Trustpilot · 224 reviews
Free evaluation
Royalty-free
Client & server in one SDK
May 2015 Available since
10+ Years in productive use
Open Vendor-independent
Client & Server in one SDK

Exchange raw data.
Client and server in a few lines.

From server start to the first received telegram — and from client connect to the first transmit. All in C#.

Server.cs — RFC 1006 Server
// Start an RFC 1006 server and wait for messages
using (var server = new Rfc1006Server("rTSAP", "lTSAP")) {
    server.Start();
    server.Connect();  // Wait for a client

    var message = server.ReceiveString();
    Console.WriteLine($"Received: {message}");
}

Start the server, wait for clients, receive data.

Define TSAPs, start the server, wait for incoming connections. Receive messages as byte arrays or strings — the SDK handles the TPKT/COTP packets behind the scenes.

TPKT and COTP packets are generated automatically
Receive as byte array or string — decode however you like
Standard port 102 or a custom one
Client.cs — RFC 1006 Client
// RFC 1006 client — send a message
using (var client = new Rfc1006Client(
    "192.168.0.80", "rTSAP", "lTSAP")) {
    client.Connect();
    client.Transmit("Hello World!");
}

Connect and send — in three lines.

Provide an IP address and TSAPs, Connect, Transmit — done. Send byte arrays, strings, or your own binary telegrams. The SDK automatically partitions the data into RFC 1006-compliant DT packets.

Send strings and byte arrays as payload
Automatic DT packet partitioning
Custom TSAPs for client and server
Events.cs — Connection events
// Event-driven communication
var server = new Rfc1006Server("rTSAP", "lTSAP");
server.AutoReceive = true;

server.Received += (s, e) =>
    Console.WriteLine(
        $"Data: {e.BufferLength} bytes");

server.Connected += (s, e) =>
    Console.WriteLine("Client connected");

server.Start();

Event-driven — AutoReceive and events.

With AutoReceive and the built-in events, your server reacts automatically to incoming data and connection changes — no manual polling. Ideal for permanent communication channels.

AutoReceive for automatic data reception
Connected, StatusChanged, and Timeout events
Drop detection with automatic reconnect

Six reasons that make the difference

Each of these addresses a real problem that development teams hit when integrating over transport protocols.

Client and server — in one SDK

Both roles in a single package. Start a server that waits for connections, or connect as a client to an existing endpoint — with the same API.

Client + server · One SDK

Royalty-free — one license, unlimited applications

Build as many applications as you want. No per-unit licenses, no runtime fees, no hidden per-deployment costs.

∞ applications · 1 license

Industrial reliability — around the clock

Stable in continuous operation, automatic reconnect on dropped connections, PDU-optimized access for consistent data. In production since 2015.

.NET 6+ · Auto-reconnect · since 2015

Vendor-independent — one open protocol

RFC 1006 is an open, vendor-independent transport protocol. Talk to S7 controllers, other PLCs, or your own applications — regardless of manufacturer.

Open · Vendor-independent · ISO 8073

Support straight from the development team

Support requests for the LINK SDK are answered by the team that builds and maintains it — short paths, technically grounded answers, no ticket cascade through external call centers.

Support team · Developer contact

Raw data — your format, your structure

Send and receive byte arrays, strings, or your own binary telegrams. The SDK handles the TPKT and COTP packets — you define the payload.

Bytes · Strings · Custom telegrams

„We've been running the SDK for a few years now. Everything has worked flawlessly so far and left nothing to be desired.
Best value for money!"

Accuratech
Actemium Cegelec
Ingenieurbüro Roth
Inline3D
primtec
QC-S
Armaturenfabrik Franz Schneider
Werner Maschinenbau

One SDK. Client and server.

Free evaluation with a 30-minute trial license per application launch. Royalty-free licensing and developer support included.

RFC 1006 / ISO-on-TCP

TR1K6 LINK .NET SDK

RFC 1006 client and server development for .NET. Exchange raw data and your own telegrams between any participants — over the open ISO-on-TCP transport protocol.

Enthalten: Client & server development
Enthalten: RFC 1006 / ISO-on-TCP / TP0
Enthalten: Custom TSAPs
Enthalten: PDU-optimized communication
Enthalten: Auto-reconnect & events
Enthalten: Byte & string transfer
Enthalten: AutoReceive mode
Enthalten: All .NET platforms & Docker
Try for free

RFC 1006 defines an ISO transport service (TP0, ISO 8073 Class 0) over TCP/IP. Standard port 102. Usable regardless of vendor — from controllers to gateways to your own applications.

RFC 1006ISO-on-TCPTP0 / ISO 8073Port 102S7 controllersCustom applications

What's inside the SDK

One open transport protocol, a symmetric API for client and server, robust connection mechanics. The key facts at a glance. Behind the name: TR1K6 — Traeger RFC 1006, in engineering notation: 1K6 = 1006.

Protocol & transport
Standard
RFC 1006 — ISO Transport Service on top of TCP (since 1987)
Transport class
ISO 8073 / TP0 — Class 0
Telegram type
DT packets (Data Telegrams), partitioned automatically
Endpoint
IP address or hostname · custom TSAPs (local + remote, max. 255 bytes)
Payload
Any byte arrays or strings — your own telegram format
API model
Namespace
Rfc1006LibNet.Advanced
Core classes
Rfc1006Client, Rfc1006Server, Rfc1006Base, Rfc1006IPEndPoint
Send
Transmit(byte[]) · Transmit(string)
Receive
Receive, ReceiveString · AutoReceive mode with Received event
Events
Connecting / Connected / Disconnecting / Disconnected · Receiving / Received · Transmitting / Transmitted · StatusChanged · Timeout
Robustness & tuning
Auto-reconnect
Automatic re-establishment with a configurable reconnect interval
KeepAlive
TCP KeepAlive with your own values for AliveTime and interval
Fast-Acknowledge
Optionally enabled for short packets in dense succession
Timeouts
Your own values for Connect, Receive, and Transmit — millisecond-precise
Connection defaults
Default values on connection setup — each individually overridable.
TCP port
102
Standard port for ISO-on-TCP
Connection timeout
5,000 ms
Wait time for connection setup
Reconnect interval
1,000 ms
Pause between reconnect attempts
Server connections
up to 256
Parallel clients per server instance

License once. Deploy without limits.

License model

Perpetual license
One-time payment. Valid indefinitely. Royalty-free. Incl. 12 months of Support and Update Service.
Subscription license
Annual payment. Lower entry cost. Support & updates always included.

License type

Single developer
For one developer at one workstation.
Site license
For all developers at one site.
Enterprise license
Tailored — get in touch.

All licenses are royalty-free — unlimited applications, no per-deployment unit costs.

License models in detail
Dominik Scharnagl

„RFC 1006 is the Swiss Army knife of industrial communication — open, proven, and vendor-independent. Our SDK makes it accessible to .NET developers."

Dominik Scharnagl Managing Director & CTO, Traeger GmbH

Ready for open communication
over ISO-on-TCP?

Download the SDK, send your first telegram — or talk directly to our team.