From: thefed Date: 2007-11-30T06:18:07+09:00 Subject: Re: Custom Protocol On Nov 29, 2007, at 8:37 AM, Francis Cianfrocca wrote: > I took a very quick look at UDT and I think it's quite interesting. > The > basic approach has appeared before (people were discussing the > "long-fat-pipe" problem in TCP even before the WWW came along), but > I like > the optimizations in this one. > > If I read their material correctly, UDT is based completely on UDP so > there's no need for you to create another protocol at the IP level > (analogous to TCP, UDP, ICMP, etc). That means you don't need raw > sockets, > which makes your task considerably easier. You don't need to > construct the > IP header either. > > Instead, implementing UDT is analogous to rebuilding TCP inside of > sets of > related UDP packets. Is there any particular reason you want to do > this in > Ruby rather than just wrapping a C or Java implementation? The reason I'd like to do it in Ruby is first for my comprehension of the code. Second, the only implementation so far is in C++, and the bindings there are pretty messy (I think). UDT + Ruby DSL = a lot nicer, IMHO. As you might've seen, there is a lot of information, such as the sub- sequence number and a variety of other things that are important and pertain to the packets. If I didn't use raw sockets, wouldn't that information be held in the payload? Thanks, Ari