From 5860de399848b4d5d79cc976dbf82a5e37a98043 Mon Sep 17 00:00:00 2001 From: Srayan Jana Date: Thu, 11 Sep 2025 12:16:44 -0700 Subject: [PATCH 1/4] begin writing blog post --- content/en/blog/you-do-not-need-ice.md | 57 +++++++++++++++++++++ static/img/comment_from_paul_louis.png | Bin 0 -> 58747 bytes static/img/connect_to_minecraft_server.png | Bin 0 -> 34169 bytes 3 files changed, 57 insertions(+) create mode 100644 content/en/blog/you-do-not-need-ice.md create mode 100644 static/img/comment_from_paul_louis.png create mode 100644 static/img/connect_to_minecraft_server.png diff --git a/content/en/blog/you-do-not-need-ice.md b/content/en/blog/you-do-not-need-ice.md new file mode 100644 index 0000000..16bb817 --- /dev/null +++ b/content/en/blog/you-do-not-need-ice.md @@ -0,0 +1,57 @@ +--- +title: You do not need ICE for WebRTC +Description: How to direct connect to a public server or someone on the same local network! +date: 2025-09-11 +authors: ["Srayan Jana"] +--- + +After I published [my previous blog post](https://pion.ly/blog/making-a-game-with-pion/), I got a comment from the creator of [libdatachannel](https://github.com/paullouisageneau/libdatachannel) Paul-Louis Ageneau on their official Discord: + +![Comment from Paul](/img/comment_from_paul_louis.png) + +Wait, what? + +Sure enough, if you take the [pion-to-pion](https://github.com/pion/webrtc/tree/master/examples/pion-to-pion) example, and change [line 44 in answer/main.go](https://github.com/pion/webrtc/blob/634a904ba9d5e0a71ad62b33d4a2983bd9599104/examples/pion-to-pion/answer/main.go#L44) and [line 48 in offer/main.go](https://github.com/pion/webrtc/blob/634a904ba9d5e0a71ad62b33d4a2983bd9599104/examples/pion-to-pion/offer/main.go#L48) to: + +``config := webrtc.Configuration{}`` + +They still connect: + +``` +PS C:\github\webrtc\examples\pion-to-pion\answer> go run . +Peer Connection State has changed: connecting +Peer Connection State has changed: connected +New DataChannel data 824636419654 +Data channel 'data'-'824636419654' open. Random messages will now be sent to any connected DataChannels every 5 seconds +Sending 'lNvvvVoiaJovwvc' +Message from DataChannel 'data': 'wLxIGjlgKSKzmue' +Sending 'jWxUUNvVdNusRKI' +Message from DataChannel 'data': 'LyNhyhMxmQinOsq' +``` + +``` +PS C:\github\webrtc\examples\pion-to-pion\offer> go run . +Peer Connection State has changed: connecting +Peer Connection State has changed: connected +Data channel 'data'-'824635869196' open. Random messages will now be sent to any connected DataChannels every 5 seconds +Sending 'wLxIGjlgKSKzmue' +Message from DataChannel 'data': 'lNvvvVoiaJovwvc' +Sending 'LyNhyhMxmQinOsq' +``` + +So why is that? I thought that you *needed* ICE for WebRTC to function? Not so! + +In the following blog post, I hope to explain why it's not necessary, and dig into the specifics of how ICE, STUN, TURN, and SDP all work. + +## TODO: Fill out the rest of this blog post with a high-level overview of ICE and how it works + + +## Possible use cases +So why would you even want to direct connect to an IP? Well, the example off the top of my mind is connecting to a dedicated server for a multiplayer video game. You don't need to set up STUN/TURN for your game if everything is just using dedicated servers. Something like this would work right out of the box: + +![Connect to Minecraft Server (Image taken from Apex Hosting)](/img/connect_to_minecraft_server.png) + +## Acknowledgements + +A big thanks to Paul Lous and [Nemirtingas +](https://github.com/Nemirtingas) from [the libdatachannel Discord](https://discord.gg/jXAP8jp3Nn) to clearing up my mind on this. \ No newline at end of file diff --git a/static/img/comment_from_paul_louis.png b/static/img/comment_from_paul_louis.png new file mode 100644 index 0000000000000000000000000000000000000000..94051e4f63406a428078653626033aad58e64854 GIT binary patch literal 58747 zcmZU)1z1#T)Hb{ahL%q0)S*G??vzGEkVZ;U1col@Mp7C?K)OL11SAKf1f)}P=oG%~ z`(EFF&iTKK4YOxvv#*)8*0a`q-)lV)n(B(U*p%1+0N^Ss$!P-s+CF%miir;X4KHxE z10Nu++KMtj#VGY}@CnpfT1^@Ns^f5O&CtN-Sk6i>T>${E=kG71->KLV05%Ae<)n4t z#(N7MJ|w+27)Zo{u?80n3d5unX4^$YJ_#v_Zjw2-Nz0w?UcRn8p=~}rqtf9IX)hcs ztWSbOUi9&c6$cU>l3X6^=Ufa}&$9$8Jt0q9JPfU@J#w-#HUQ0u&v{MGD<~A9X8$@$ zxMbEIsk!XWJ@*WZ^0?hud01(1yf<%Wb-+>vYkh=hx5c=p4j^OjDr$W`&$T=f@i^=F zAStXHO8t!7tm+jaL-yo>MZ+iVlt?sh({Y$FR? zDuKRcSL^lJ=k7}Z7|3PW;EmbFZ|5|IE~fX!p6)Sjdy@|}qN&kh*EC8R)is^Y!2>;-ox|YUq_?j5QJ!G=#-l$hRJaI-RsYVx_YBz0-RCTAQEBEw6!*8Tgu5@^NO1V&z45 zzzuD@_0kjkU-$H4VvcHUdq0|~vVB%0A(6 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 literal 0 HcmV?d00001 diff --git a/static/img/connect_to_minecraft_server.png b/static/img/connect_to_minecraft_server.png new file mode 100644 index 0000000000000000000000000000000000000000..fc4e41da447a0f873dbdc9e1b4d900618f8b5b83 GIT binary patch literal 34169 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%0D&{yGo!$5s0yssnC_h808|;SQG&g=@rg}*S^GQhv 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 literal 0 HcmV?d00001 From 6ef7665a8c8de2ae7e769772b98b4987e8c99f56 Mon Sep 17 00:00:00 2001 From: Srayan Jana Date: Thu, 11 Sep 2025 12:18:12 -0700 Subject: [PATCH 2/4] Add reference to revolt chat --- content/en/blog/you-do-not-need-ice.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/blog/you-do-not-need-ice.md b/content/en/blog/you-do-not-need-ice.md index 16bb817..2a1d485 100644 --- a/content/en/blog/you-do-not-need-ice.md +++ b/content/en/blog/you-do-not-need-ice.md @@ -51,6 +51,8 @@ So why would you even want to direct connect to an IP? Well, the example off the ![Connect to Minecraft Server (Image taken from Apex Hosting)](/img/connect_to_minecraft_server.png) +Also, this exact technique of direct connecting to a server is apparently how [Revolt](https://revolt.chat/) does their WebRTC voice call implementation. + ## Acknowledgements A big thanks to Paul Lous and [Nemirtingas From 611ec0b05f945e87491a36f6381718e77045f518 Mon Sep 17 00:00:00 2001 From: Srayan Jana Date: Thu, 11 Sep 2025 15:25:45 -0700 Subject: [PATCH 3/4] adjust sentence to be more correct --- content/en/blog/you-do-not-need-ice.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/blog/you-do-not-need-ice.md b/content/en/blog/you-do-not-need-ice.md index 2a1d485..8b1b1fc 100644 --- a/content/en/blog/you-do-not-need-ice.md +++ b/content/en/blog/you-do-not-need-ice.md @@ -39,7 +39,7 @@ Message from DataChannel 'data': 'lNvvvVoiaJovwvc' Sending 'LyNhyhMxmQinOsq' ``` -So why is that? I thought that you *needed* ICE for WebRTC to function? Not so! +So why is that? I thought that you *needed* STUN or TURN for WebRTC to function? Not so! In the following blog post, I hope to explain why it's not necessary, and dig into the specifics of how ICE, STUN, TURN, and SDP all work. From 53b622f4491bb9e55a22d18d816060a7e8fc29c2 Mon Sep 17 00:00:00 2001 From: Srayan Jana Date: Thu, 11 Sep 2025 15:32:00 -0700 Subject: [PATCH 4/4] Change title as well since ICE isn't totally right --- .../{you-do-not-need-ice.md => you-do-not-need-stun-or-turn.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename content/en/blog/{you-do-not-need-ice.md => you-do-not-need-stun-or-turn.md} (98%) diff --git a/content/en/blog/you-do-not-need-ice.md b/content/en/blog/you-do-not-need-stun-or-turn.md similarity index 98% rename from content/en/blog/you-do-not-need-ice.md rename to content/en/blog/you-do-not-need-stun-or-turn.md index 8b1b1fc..f29bb6e 100644 --- a/content/en/blog/you-do-not-need-ice.md +++ b/content/en/blog/you-do-not-need-stun-or-turn.md @@ -1,5 +1,5 @@ --- -title: You do not need ICE for WebRTC +title: You do not need STUN or TURN for WebRTC Description: How to direct connect to a public server or someone on the same local network! date: 2025-09-11 authors: ["Srayan Jana"]