| Darren Dunham 2004-11-22, 3:58 am |
| Steven Ding <dwj@asia.com> wrote:
> Several days ago I encountered a very very strange thing.
> I set one of my servers' time backward to sometime in year 2003 with
> rdate. The server has a lot of TCP connections at that time.
> However, several hours later, I found that there were many many sockets
> with the state TIME_WAIT and no local ports available.
Very common. Happened all the time when application folks did Y2K
testing and didn't ask me about it. They'd "test" a machine in Y2K,
then they'd want to bring the time back to "now" without rebooting.
Solaris does not support large backward time jumps. You need to reboot.
> I know of the TIME_WAIT is used for retransmit the FIN2 ack to the peer
> party and it should only be kept in a timer, which in many systems is
> about twice the timer for retranssion.
> But after I checked I found that TCP timers should be counted by a
> "tick" rather than the system time. But the "tick" should not be
> affected by the system time. So I wonder why so many TIME_WAIT sockets
> cannot be cleaned in this case.
I don't know the actual implementation, but it does appear to be related
to the system time.
--
Darren Dunham ddunham@taos.com
Senior Technical Consultant TAOS http://www.taos.com/
Got some Dr Pepper? San Francisco, CA bay area
< This line left intentionally blank to confuse you. >
|