Can you do multicasting with TCP?

Started by
4 comments, last by Washu 11 years, 5 months ago
So far, looking online has not given me a wonderful answer to this question. All I have seen is multicasting can be used with UDP, and that "TCP and multicasting are mutally exclusive." without knowing why it's "mutally exclusive". Can I do multicasting with TCP? If not, may I ask why?
Advertisement
TCP is a connection-oriented streaming protocol. That means that each packet is numbered and sequences and resent if necessary. It would be difficult to have a multicast if every recipient had to be kept in lock-step so that all packets were sequenced properly, it would be very slow and there is room for ambiguity in handling responses so you can't do multicast with TCP. With UDP, the packets are sent out by the multicaster and anyone can pick up a copy.

You could, conceivably, have a connection-oriented streaming protocol do multicasting, if you treated every multicast connection as a separate connection (in which case it's really simultaneous singlecast connections).

Stephen M. Webb
Professional Free Software Developer

I've been lead to believe that multicasting on the open Internet is not a reasonable option.


Can I do multicasting with TCP? If not, may I ask why?
[/quote]
The algorithms that TCP uses requires both peers maintain complex state about one another.
Ah, this kills my curiosity with answers I couldn't get from Googling. It's either that, or ask professionals.:D

Thanks again, everyone.
Recommended reading:

http://www.amazon.com/TCP-Illustrated-Vol-Addison-Wesley-Professional/dp/0201633469
void hurrrrrrrr() {__asm sub [ebp+4],5;}

There are ten kinds of people in this world: those who understand binary and those who don't.

I've been lead to believe that multicasting on the open Internet is not a reasonable option.


Can I do multicasting with TCP? If not, may I ask why?

The algorithms that TCP uses requires both peers maintain complex state about one another.
[/quote]
Its still not, nor will it ever, be a viable option. All the reasons I stated in that thread remain true. While some CDNs might allow multicast, it does not mean that your traffic will operate anywhere outside of said CDN (hint: it won't the instant it hits any router not configured for mutlicasting).

The problem is that there's little to no demand for it on the internet as a whole. CDNs can be configured for it, but that's mainly for them to reduce their traffic overhead while routing through their own networks, not through their peer networks. Since no one else can actually write multicasting applications for internet usage, there's no demand, and because there's no demand, network operators have little to no reason to embark on a quest to implement it. Especially considering how complicated PROPERLY configured multicast is to setup. Not to mention, the more work your router has to do (such as figuring out where all to route a multicast packet) the SLOWER it is. For core ISP and internet routers... that's a significant downside to multicast, so they get filtered out long before they reach those parts of the internet infrastructure.

In time the project grows, the ignorance of its devs it shows, with many a convoluted function, it plunges into deep compunction, the price of failure is high, Washu's mirth is nigh.

This topic is closed to new replies.

Advertisement