<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/introduction-to-ice-and-libnice-a0pnq0z3n" -->

---
title: Introduction to ICE and libnice | daily.dev
description: An introductory talk by Philip Withnall covering ICE, STUN, and TURN protocols for NAT traversal, and how they fit together within the libnice library. Slides,...
canonical: https://daily.dev/posts/introduction-to-ice-and-libnice-a0pnq0z3n
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Introduction to ICE and libnice | daily.dev
og:description: An introductory talk by Philip Withnall covering ICE, STUN, and TURN protocols for NAT traversal, and how they fit together within the libnice library. Slides,...
og:url: https://daily.dev/posts/introduction-to-ice-and-libnice-a0pnq0z3n
og:image: https://api.daily.dev/og/posts/A0pnQ0z3N.png
og:image:alt: Introduction to ICE and libnice
og:image:width: 1200
og:image:height: 630
og:locale: en
---

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

# Introduction to ICE and libnice

**[Collabora Blog](https://daily.dev/sources/collabora)** · 2 min read · 0 upvotes · 0 comments

## Summary

An introductory talk by Philip Withnall covering ICE, STUN, and TURN protocols for NAT traversal, and how they fit together within the libnice library. Slides, handout, and source are made available under CC-BY-SA 4.0.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.collabora.com/about-us/blog/2014/10/31/introduction-to-ice-and-libnice>

## Questions this post answers

### What is libnice and what protocols does it implement for NAT traversal?

libnice is an open source library that implements ICE (Interactive Connectivity Establishment), STUN, and TURN — the core protocols used for NAT traversal in real-time communication. ICE is defined in RFC 5245, STUN in RFC 5389, and TURN in RFC 5766. Together they allow peers behind NATs to discover and establish direct or relayed connections.

_Developers building WebRTC or peer-to-peer networking features track libnice and NAT traversal topics on daily.dev._

## Similar posts on daily.dev

- [How WebRTC Scales: Signaling, NAT Traversal, and the Mesh/SFU/MCU Tradeoff](https://daily.dev/posts/how-webrtc-scales-signaling-nat-traversal-and-the-mesh-sfu-mcu-tradeoff-muxbaugy1) · freeCodeCamp · 0 upvotes · 0 comments
- [A p2p Vision for QUIC](https://daily.dev/posts/a-p2p-vision-for-quic-4zgj0tdli) · Hacker News · 1 upvotes · 0 comments
- [Improving NAT traversal, pt. 3: looking ahead](https://daily.dev/posts/improving-nat-traversal-pt-3-looking-ahead-sd7jm9lvd) · Tailscale · 0 upvotes · 0 comments
- [How OpenAI Delivers Low-Latency Voice AI for 900M Users](https://daily.dev/posts/how-openai-delivers-low-latency-voice-ai-for-900m-users-dyatzvnes) · ByteByteGo · 18 upvotes · 2 comments

---

[View this post on daily.dev](https://daily.dev/posts/introduction-to-ice-and-libnice-a0pnq0z3n)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Introduction to ICE and libnice","url":"https://daily.dev/posts/introduction-to-ice-and-libnice-a0pnq0z3n","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/introduction-to-ice-and-libnice-a0pnq0z3n"},"datePublished":"2026-08-11T08:55:43.016Z","dateModified":"2026-08-11T09:29:02.299Z","description":"An introductory talk by Philip Withnall covering ICE, STUN, and TURN protocols for NAT traversal, and how they fit together within the libnice library. Slides,...","image":"https://media.daily.dev/image/upload/s--0_ODbtD2--/f_auto/v1722860399/public/Placeholder%2008","thumbnailUrl":"https://media.daily.dev/image/upload/s--0_ODbtD2--/f_auto/v1722860399/public/Placeholder%2008","isAccessibleForFree":true,"articleSection":"Collabora Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Collabora Blog","logo":"https://media.daily.dev/image/upload/s--ZGZ0FjqS--/f_auto,q_auto/v1786438306/logos/collabora?_a=BAMAMicg0","url":"https://daily.dev/sources/collabora"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/introduction-to-ice-and-libnice-a0pnq0z3n","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"","timeRequired":"PT2M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Collabora Blog","item":"https://daily.dev/sources/collabora"},{"@type":"ListItem","position":3,"name":"Introduction to ICE and libnice"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/introduction-to-ice-and-libnice-a0pnq0z3n#faq","mainEntity":[{"@type":"Question","name":"What is libnice and what protocols does it implement for NAT traversal?","acceptedAnswer":{"@type":"Answer","text":"libnice is an open source library that implements ICE (Interactive Connectivity Establishment), STUN, and TURN — the core protocols used for NAT traversal in real-time communication. ICE is defined in RFC 5245, STUN in RFC 5389, and TURN in RFC 5766. Together they allow peers behind NATs to discover and establish direct or relayed connections. Developers building WebRTC or peer-to-peer networking features track libnice and NAT traversal topics on daily.dev."}}]}
```

