Communication question

From: Miguel Arroz (arroz@guiamac.com)
Date: Thu 22 Jul 2004 - 21:32:56 GMT


Hi!

   I'm asking a question about the page 29 of the "manual-v0.r4.pdf",
where the LongUDP is described. It says that yhe length of the body may
be 0xFFFFFFFF, and that, in that case, the real body length is
calculated from the remaining UDP packet's length.

   This is not a problem if you know where the package ends, more
exactly, if you have a "package" model in your language, like C's
rcvfrom(). But there are other models, specially the "stream" model
used in LISP, where a socket is a stream. The problem is that, when you
receive two packages "at the same time", the LISP stream will join
them, so you don't know where the first one ends and the second one
begins.

   The problem is that if I receive a package where a body size is
0xFFFFFFFF, there is no way I can know where that body ends, in a
"stream" model. I'm analyzing the traffic of a game with ethereal, and
I still didn't found any packet where the size is not explicit (I mean,
I have yet to find a package where the body size is 0xFFFFFFFF). If
this is not used, there is no problem for me. But if it is used, there
is a big problem, because I have no way to know where the UDP package
ends.

   Shouldn't this be fixed on the protocol? I mean, there should be a
terminator, or at least each UDP package should have info about its
size. I also would like to know why UDP was prefered to TCP. The
LongUDP protocol seems like a simple implementation of TCP over UDP, so
why not using TCP in first place?

   Yours

Miguel Arroz

       "I felt like putting a bullet between
        the eyes of every Panda that wouldn't
        scr*w to save its species." -- Fight Club

   Miguel Arroz - arroz@guiamac.com - http://www.guiamac.com



This archive was generated by hypermail 2.1.3 : Thu 22 Jul 2004 - 21:33:26 GMT