[Freeciv-Dev] Re: (PR#3664) Server doesn't react while send_all_info(&pc
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
On Mon, Mar 10, 2003 at 03:34:22PM -0800, Vasco Alexandre da Silva Costa wrote:
>
> [rfalke - Mon Mar 10 19:50:11 2003]:
>
> > On Mon, Mar 10, 2003 at 08:40:01AM -0800, ue80@xxxxxxxxxxxxxxxxxxxxx
> > wrote:
> > > I don't know how flush_buffer really works but i think that it waits
> > > until the all data is sended before going back.
> >
> > The loop which I didn't found in the first try is in flush_packets.
> >
> > However it looks like flush_packets will wait at most game.netwait
> > seconds. The default for this is 4s. However flush_packets is called
> > for every line of map tiles in send_all_known_tiles. So in the default
> > case send_all_known_tiles can block up to 50*4s = 200s = 3min+. If the
> > player is slower than this the connection will be cut after these
> > 200s.
>
> This analysis is incomplete.
>
> Fact is if the player is seriously lagged he will take more than
> 'tcptimeout' seconds (default = 10s) to read incoming data. In that case
> his connection will be cut and flush_packets will not consider that
> player any more.
AFAIK Thomas this (cutting players) isn't what he experienced. So we
are talking about slow connections.
> I added that call in send_all_known_tiles() because players were getting
> disconnected a lot in large map sends. I dislike using ad-hoc solutions
> but this one was the best at the time.
[snip proposal for struct packet_tile_info ]
Please take a look at the delta patches. It reduces all traffic by
factor 5-10. Merging multiple info packets to save the headers is an
orthogonal idea. However this looks like a band-aid because it builds
another way to solve a problem and so adds redundancy.
> PS: I dislike the idea of using gzip in the Freeciv network protocol.
> However it may be useful for sending the initial world state to a
> client.
>
> PPP supports compression but unfortunately not all ISPs use it.
You can get delta without zlib. But doing zlib on top of delta reduces
the traffic some more by factor 2-3.
Raimar
--
email: rf13@xxxxxxxxxxxxxxxxx
"There are three ways to get something done. Do it yourself, hire someone
to do it for you or forbid your kids to do it."
[Freeciv-Dev] (PR#3664) Server doesn't react while send_all_info(&pconn->self);, Vasco Alexandre da Silva Costa, 2003/03/10
Message not available
[Freeciv-Dev] (PR#3664) Server doesn't react while send_all_info(&pconn->self);, Vasco Alexandre da Silva Costa, 2003/03/10
[Freeciv-Dev] (PR#3664) Server doesn't react while send_all_info(&pconn->self);, Vasco Alexandre da Silva Costa, 2003/03/10
[Freeciv-Dev] (PR#3664) Server doesn't react while send_all_info(&pconn->self);, Vasco Alexandre da Silva Costa, 2003/03/11
[Freeciv-Dev] (PR#3664) Server doesn't react while send_all_info(&pconn->self);, Vasco Alexandre da Silva Costa, 2003/03/11
|
|