Complete.Org: Mailing Lists: Archives: freeciv-dev: March 2003:
[Freeciv-Dev] Re: (PR#3664) Server doesn't react while send_all_info(&pc
Home

[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]
To: ue80@xxxxxxxxxxxxxxxxxxxxx
Subject: [Freeciv-Dev] Re: (PR#3664) Server doesn't react while send_all_info(&pconn->self);
From: "Raimar Falke" <rf13@xxxxxxxxxxxxxxxxx>
Date: Mon, 10 Mar 2003 23:50:44 -0800
Reply-to: rt@xxxxxxxxxxxxxx

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."




[Prev in Thread] Current Thread [Next in Thread]