Why Your Browser Can't Use Multicast (And What Would Have to Change)

작성자

카테고리:

← 피드로
DEV Community · Rakshyak Satpathy · 2026-07-22 개발(SW)

How Web Browsing Works Today

Browser ----HTTP/HTTPS----> Web Server
        (Unicast)

Enter fullscreen mode Exit fullscreen mode

Every browser opens its own dedicated TCP connection to the server. If a million people load the same page, the server handles a million separate connections and sends a million separate responses.

What Would Need to Change

1. Replace TCP with UDP

HTTP/1.1 and HTTP/2 both run over TCP, which requires:

  • A per-client connection
  • Acknowledgments (ACKs)
  • Retransmissions
  • Congestion control
  • Ordered delivery

None of this works for multicast. A sender cannot maintain separate TCP state for thousands of receivers at once — TCP is fundamentally point-to-point. A multicast-capable browser would need a UDP-based transport instead.

Browser joins multicast group
239.1.1.1:5000

Enter fullscreen mode Exit fullscreen mode

2. Join a Multicast Group

Today, a browser requests a resource directly:

GET /index.html

Enter fullscreen mode Exit fullscreen mode

A multicast-capable browser would instead join a group:

JOIN 239.1.1.1

Enter fullscreen mode Exit fullscreen mode

The operating system sends an IGMP Join message into the network:

Browser
    |
IGMP Join
    |
Router

Enter fullscreen mode Exit fullscreen mode

The router now knows this client wants traffic addressed to 239.1.1.1.

3. Application Protocol Must Become Publish/Subscribe

HTTP is fundamentally request/response:

Request → Response

Enter fullscreen mode Exit fullscreen mode

Multicast is fundamentally publish/subscribe:

Publisher
      |
      |
239.1.1.1
   /   |   \
User1 User2 User3

Enter fullscreen mode Exit fullscreen mode

Instead of requesting a page, a client subscribes to a channel:

JOIN sports/live

Enter fullscreen mode Exit fullscreen mode

4. Content Must Be Identical for Everyone

Multicast only makes sense when every subscriber wants the exact same bytes.

Works well with multicast:

  • Live sports broadcasts
  • Stock price feeds
  • Weather alerts
  • IPTV
  • Emergency broadcasts

Does not work with multicast:

  • Gmail
  • Amazon shopping cart
  • Banking
  • Personalized social media feeds

Why Ordinary Websites Don’t Use Multicast

Suppose one million users visit https://amazon.com at the same moment. Each of them gets:

  • A different cart
  • Different recommendations
  • A different account
  • Different cookies and session state
User A → HTML A
User B → HTML B
User C → HTML C

Enter fullscreen mode Exit fullscreen mode

Since every response is unique, there is nothing to multicast. The efficiency gain of multicast comes entirely from sending one packet stream to many recipients — and that only works when the payload is the same for all of them.

Where Multicast Would Actually Help

Consider a live World Cup match streamed to a million viewers.

Unicast (today):

Server
 ├── Stream → User1
 ├── Stream → User2
 ├── Stream → User3

Enter fullscreen mode Exit fullscreen mode

Total bandwidth at the server:

10 Mbps × 1,000,000 users

Enter fullscreen mode Exit fullscreen mode

Multicast (hypothetical):

Server
     |
239.1.1.1
     |
Network duplicates packets

Enter fullscreen mode Exit fullscreen mode

The server sends the stream once:

10 Mbps

Enter fullscreen mode Exit fullscreen mode

The network itself — not the server — duplicates packets at each branch point, so every subscribed client receives the same stream without multiplying the server’s outbound load.

Why Browsers Don’t Support It Today Regardless

Even if every browser implemented multicast tomorrow, the public Internet largely couldn’t carry it:

  • Most ISPs do not enable multicast routing.
  • Home routers frequently don’t forward Internet multicast traffic.
  • NAT and firewalls complicate multicast delivery.
  • CDNs are architected around scalable unicast, not multicast.

This is why services like YouTube, Netflix, and Twitch rely on many parallel unicast streams distributed through CDNs. It costs more total bandwidth than multicast would, but it works reliably on the Internet as it exists today.

Summary

For a browser to act as a multicast client, it would need to:

  1. Join multicast groups via IGMP.
  2. Use a multicast-capable transport — typically UDP.
  3. Speak a publish/subscribe application protocol instead of request/response.
  4. Receive content that is identical for every subscriber.

This is precisely why multicast is well suited to live broadcasts, but fundamentally incompatible with interactive or personalized web applications.

원문에서 계속 ↗

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다