[200 OK]: A Port80 Software Blog

We're all 200 OK: Web, HTTP and IIS Insights
posts - 204, comments - 1565, trackbacks - 98

Hurry Up and TIME_WAIT

So, ever wonder what all those TIME_WAITs are doing in your netstat listing?

Okay, for those of you who don't spend all your waking hours fooling around with Web servers, let me back up a little and explain what that sentence meant.

Netstat is a little utility that many administrators use to monitor the network connections on their servers. It is quite useful for tracking down that small subset of performance bottlenecks that aren't attributable to yet another piece of convoluted application code that some careless programmer wrote and now you have to take care of. But I digress.

When you run netstat on your busy IIS box, you might get something that looks like this:

C:\>netstat -np tcp

Active Connections

Proto Local Address        Foreign Address      State

TCP   192.168.0.1:80         192.168.0.12:1217     ESTABLISHED
TCP   192.168.0.1:80         192.168.0.5:1218      TIME_WAIT
TCP   192.168.0.1:80         192.168.0.234:1252   TIME_WAIT
TCP   192.168.0.1:80         192.168.0.37:1267     ESTABLISHED
TCP   192.168.0.1:80         192.168.0.23:1298     TIME_WAIT
TCP   192.168.0.1:80         192.168.0.32:1345     TIME_WAIT

And so on and on, for many, many lines. Each line here represents a connection between a TCP socket your server and a matching one on some other machine--usually an HTTP client such as a browser or proxy server, but depending on your architecture you might also see connections to other kinds of servers (database, application, directory, etc.). Each connection has a unique combination of IP addresses and port numbers that identify the endpoints to which the sockets are bound. More to the point, each one also has a state indicator. As connections are set up used and torn down, they pass through a variety of these states, most of which aren't shown here, because they come and go quite quickly).

The connections in the ESTABLISHED state are, well, established--they are neither being set up nor torn down but just used. This is what you will often see the most of. But what about the others? On a busy HTTP server, the number of sockets in this TIME_WAIT state can far exceed those in the ESTABLISHED state. For instance, I checked an IIS 6.0 box that serves a fairly busy corporate site earlier today and got 124 ESTABLISHED connections versus 431 in TIME_WAIT.

What does this all mean? More importantly, is it something you should be worried about?

The answers are:

1. It's complicated.

2. Maybe.

To understand what all those TIME_WAITs are doing there, it's useful to review (or learn) a little TCP. I'll wait here while you brush up on RFC793.

That was fast. Just kidding. The bit you need to know is so simple, even I can explain it.

As you know, TCP provides a reliable connection between two endpoints, across which data can be sent in segmented form. As part of this, TCP also provides a mechanism for gracefully shutting down such connections. This is accomplished with a full duplex handshake, which can be diagrammed like so:

Server                             Client

-------------- FIN -------------->

<------------- ACK ---------------

<------------- FIN  ---------------

-------------- ACK ------------->

As you can see by this very sophisticated diagram, a graceful shutdown requires the two endpoints to exchange some TCP/IP packets with the FIN and ACK bits set, in a certain sequence. This exchange of packets in turn corresponds to certain state changes on each side of the connection. In the diagram, I've labeled the two sides "Server" and "Client" such that the sequence of events mirrors what usually happens when connections are closed by HTTP.

Here is what happens, step-by-step:

1. First the application at one endpoint--in this example, that would be the Web server--initiates what is called an "active close." The Web server itself is now done with the connection, but the TCP implementation that supplied the socket it was using still has some work to do. It sends a FIN to the other endpoint and goes into a state called FIN_WAIT_1.

2. Next the TCP endpoint on the browser's side of the connection acknowledges the server's FIN by sending back an ACK, and goes into a state called CLOSE_WAIT. When the server side receives this ACK, it switches to a state called FIN_WAIT_2. The connection is now half-closed.

3. At this point, the socket on the client side is in a "passive close," meaning it waits for the application that was using it (the browser) to close. When this happens, the client sends its own FIN to the server, and deallocates the socket on the client side. It's done.

4. When the server gets that last FIN, it of course sends back on ACK to acknowledge it, and then goes into the infamous TIME_WAIT state. For how long? Ah, there's the rub.

The socket that initiated the close is supposed to stay in this state for twice the Maximum Segment Lifetime--2MLS in geek speak. The MLS is supposed to be the length of time a TCP segment can stay alive in the network. So, 2MLS makes sure that any segments still out there when the close starts have time to arrive and be discarded. Why bother with this, you ask?

Because of delayed duplicates, that's why. Given the nature of TCP/IP, it's possible that, after an active close has commenced, there are still duplicate packets running around, trying desperately to make their way to their destination sockets. If a new socket binds to the same IP/port combination before these old packets have had time to get flushed out of the network, old and new data could become intermixed. Imagine the havoc this could cause around the office: "You got JavaScript in my JPEG!"

So, TIME_WAIT was invented to keep new connections from being haunted by the ghosts of connections past. That seems like a good thing. So what's the problem?

The problem is that 2MLS happens to be a rather long time--240 seconds, by default. There are several costs associated with this. The state for each socket is maintained in a data structure called a TCP Control Block (TCB). When IP packets come in they have to be associated with the right TCB and the more TCBs there are, the longer that search takes. Modern implementations of TCP combat this by using a hash table instead of a linear search. Also, since each TIME_WAIT ties up an IP/port combination, too many of them can lead to exhaustion of the default number of ephemeral ports available for handling new requests. And even if the TCB search is relatively fast, and even if there are plenty of ports to bind to, the extra TCBs still take up memory on the server side. In short, the need to limit the costs of TIME_WAIT turns out to be a long-standing problem. In fact, this was part of the original case for persistent connections in HTTP 1.1.

The good news is that you can address this problem by shortening the TIME_WAIT interval. This article by Brett Hill explains how to do so for IIS. As Brett explains, four minutes is probably longer than needed for duplicate packets to flush out of the network, given that modern network latencies tend to be much shorter than that. The bad news is that, while shortening the interval is quite common, it still entails risks. As Faber, Touch and Yue (who are the real experts on this) explain: "The size of the MSL to maintain a given memory usage level is inversely proportional to the connection rate." In other words, the more you find yourself needing to reduce the length of TIME_WAIT, the more likely doing so will cause problems.

How's that for a Catch-22?

posted on Tuesday, December 07, 2004 4:56 PM

Feedback

# Hurry Up and TIME_WAIT, part II

12/13/2004 5:33 PM | [200 OK]: A Port80 Software Blog

# re: Hurry Up and TIME_WAIT

I finally decided that I needed to understand what all those TIME_WAITs were for and your explination is the clearest I have found. Thank you for your time and effort.
12/21/2004 4:54 AM | john

# re: Hurry Up and TIME_WAIT

Excellent link.
It really helped me out a lot!
2/20/2005 10:27 PM | Nikhil

# re: Hurry Up and TIME_WAIT

Very Nice article, but I still have questions...
3/22/2005 7:06 AM | Aniruddha

# re: Hurry Up and TIME_WAIT

I have webbrowser as client which opens sockets connections in applet to my servlets running in Jserv .I get lots of TIME_WAIT on my machine which eventually break my Jserv process to die .

does anyone know why ?

manoj
3/30/2005 7:16 AM | manoj

# re: Hurry Up and TIME_WAIT

manoj -- The side shutting down the connection gets the TIME_WAIT. It's typical for a webserver to shutdown the connection immediately after sending a response. If you can instead stash the connection away and give the client time to close it you can push the TIME_WAIT to them. I believe Apache does something like this. In the worst case, if the client doesn't shutdown the connection, say within 5 seconds, you'll have to do it and suffer the TIME_WAIT. However if in that time the client does initiate the close then you have avoided a TIME_WAIT.
4/27/2005 7:40 PM | Steven Reddie

# re: Hurry Up and TIME_WAIT

Is there a way to close a connection on my end that's listed as "FIN_WAIT_1" for a while? Thanks.
5/23/2005 2:03 PM | Gordon

# re: Hurry Up and TIME_WAIT

Excellent artical!!
6/7/2005 11:27 AM | Ravi Shirtekar

# re: Hurry Up and TIME_WAIT

very helpful article - thx
6/8/2005 9:51 AM | spook

# re: Hurry Up and TIME_WAIT

Excellent!!
8/24/2005 2:43 PM | Sean

# re: Hurry Up and TIME_WAIT

Great article!
10/9/2005 1:56 PM | TLGrok

# re: Hurry Up and TIME_WAIT

VERY VERY GOOD ARTICAL!!!!
12/8/2005 6:13 AM | Tyler

# re: Hurry Up and TIME_WAIT

I was really worried about it until I read your superb explanation. Now I only think I might be worried about it (the nightmares of green fanged TCP/IP packets are becoming less frequent).
Thanks
12/10/2005 7:30 AM | Travis

# re: Hurry Up and TIME_WAIT

I always confused by this TIME_WAIT state .. now I feel better understanding Thank you
3/23/2006 7:18 PM | Vijendar Ganta

# Stress tests

And how can one perform stress tests of a web server for example? As I understand, in such case, either the test server or test client would suffer from the limitation of total local port numbers (as somewhere the sockets would stay in TIME_WAIT status)...
3/30/2006 2:19 PM | Lukas Brozovsky

# re: Hurry Up and TIME_WAIT

Actually, TIME_WAIT can create problems for Web server benchmarking.

Here (http://www.junjaewoo.com/oracle/oracle9i/doc/relnotes/webcache.htm) is a pretty simple description of the kind of thing that can go wrong:

[snip]

In particular, if you run stress tests against Oracle Web Cache and continuously open more TCP connections from one client computer to Oracle Web Cache, you may experience periodic oscillation of throughput. This is usually caused by TCP connection TIME_WAIT in your operating system. In real world deployments, this is not an issue since it is unlikely that a single client will generate a huge number of connections.

[/snip]
3/30/2006 4:57 PM | Joe @ Port80

# re: Hurry Up and TIME_WAIT

Great article! Extremely well-written and informative, great for beginners and more advanced readers alike. I'm forwarding this URL around to a few of my friends to read.
5/16/2006 12:15 PM | Ollie

# re: Hurry Up and TIME_WAIT

Nice shot ,it helps a lot.
6/1/2006 12:16 AM | Johnny

# re: Hurry Up and TIME_WAIT

Thanks a lot for a great article. As a webmaster, I found this very useful in dealing with performance optimization issues. Aside from netstat, one tool I also use is echoping, this allows one to test instantly apache response after making configuration changes. Cheers!
6/4/2006 2:19 PM | vivhost

# re: Hurry Up and TIME_WAIT

Hi,

Nice article!

In the following 2 pts, we say that the server sends an ACK to acknowledge the client's FIN. However, in point 3, we say that the client has already deallocated the socket. Why would the server send an ACK to a client with a deallocated socket?
From other articles, it seems that the client does the final close/deallocation only after receiving the ACK.

3. At this point, the socket on the client side is in a "passive close," meaning it waits for the application that was using it (the browser) to close. When this happens, the client sends its own FIN to the server, and deallocates the socket on the client side. It's done.

4. When the server gets that last FIN, it of course sends back on ACK to acknowledge it, and then goes into the infamous TIME_WAIT state. For how long? Ah, there's the rub.

Thanks,

junky_jinka
7/12/2006 12:09 AM | junky_jinka

# re: Hurry Up and TIME_WAIT

I've looked at thousands of traces and have never seen the server side initiate the FIN sequence.

The client always closes the connection like this ...

Client Server

-------------- FIN -------------->

<------------- ACK ---------------

<------------- FIN ---------------

-------------- ACK ------------->

In HTTP, the server can request the client to close the connection with the layer "Connection: close" header. Or it can close the connection itself at Layer 4, with a TCP Reset, but this is unusual.

7/13/2006 10:18 AM | Bill Myers

# re: Hurry Up and TIME_WAIT

It's too bad that the spaces between "Client" and "Server" were removed in my previous post.
7/13/2006 10:20 AM | Bill Myers

# re: Hurry Up and TIME_WAIT

Sorry, Bill -- this blog software is so-so...

:)
7/13/2006 12:09 PM | Chris @ Port80

# re: Hurry Up and TIME_WAIT

Bill,

Thanks for the prompt reply.

We are looking at 2 scenarios:

1. Browser connects to Web Server and requests an ASP page. Is the browser responsible for sending the FIN which starts off the CLOSE process or is it the web server which finishes executing the ASP, sends the data to the browser and then sends out a FIN to the browser?

2. ASP Page (on the web server) connects to the database server using usual ado libraries. Is the web server responsible for sending the FIN or is it the database server?

Thanks,

junky_jinka
7/14/2006 5:48 AM | junky_jinka

# re: Hurry Up and TIME_WAIT

question....I got an application that connects to the server side through winsock(Visual Basic 6) but as soon as messages get transmitted in plenty the server side initiates a close & the application has to use another port to reconnect. This then happens after each subsequent message sent...any remedy for this as the application is time critical.
8/4/2006 12:25 AM | Hassan Issa

# Hurry Up and TIME_WAIT, part II

8/16/2006 4:05 PM | [200 OK]: A Port80 Software Blog

# TIME_WAIT

Observing a lot of these (thousands) when I do a netstat during heavy load testing:
192.168.0.165.63291 192.168.0.163.1234 49322 0 49640 0 TIME_WAIT
There is a good explanation of why here. Bottom line is that it is probably nothing to be
8/28/2006 10:48 AM | A day in the life of...

# re: Hurry Up and TIME_WAIT

liked the article. But are all these comments for real?
10/19/2006 3:03 PM | whatever

# re: Hurry Up and TIME_WAIT

Two years old and still great :-) thanks.
12/18/2006 6:58 AM | Klemens

# re: Hurry Up and TIME_WAIT

Thanks.... searching the web for a TIME_WAIT explaintion and I found it here...

Merry Christmas, peace on earth....

/Steen
12/20/2006 11:44 AM | Steen Alstrup

# re: Hurry Up and TIME_WAIT

Very nice article, thanks.
1/1/2007 11:10 AM | krishna

# re: Hurry Up and TIME_WAIT

I now think I understand why I have so many time_waits on my netstat.
Thank you for your explanation, it was very well explained!!
1/21/2007 9:23 AM | antonio

# Thank You

Thank you for a pretty nice description of the TIME_WAIT problem.
I suppose that much software developer don't understand that as you helped to do.....
3/9/2007 8:47 AM | frozenrain@mail.ru

# re: Hurry Up and TIME_WAIT

Yes, Mr. whatever (http://www.port80software.com/200ok/archive/2004/12/07/205.aspx#18549)...

The comments are real... Who knew TIME_WAIT was worth the wait?

Cheers,
Chris @ Port80
3/15/2007 4:19 PM | Chris @ Port80

# re: Hurry Up and TIME_WAIT

Thank you. We were trying to figure out what we could do about this and this article was the best by far we found.
3/28/2007 11:05 AM | tom noyes

# re: Hurry Up and TIME_WAIT

10-Q, Chris
4/4/2007 11:03 PM | ID10T

# re: Hurry Up and TIME_WAIT

Great article - very clear. I'll share a brief of my experience with port exhaustion: .net web service running on port 81 using NT Authentication on the IIS level... for this situation, every call to the WS opens and closes another socket. With a chatty service (can't help it!), this can use up the sockets rather quickly. I've coded to handle this as I don't want to rely on changing registry settings on a shared production webserver. In the future, this is a good reason to roll your own security as opposed to using NT Auth! As long as anon access is turned on, and keep_alive is true, it'll re-use sockets as opposed to spinning them up as NT Auth causes.
5/2/2007 7:22 AM | Eric Lyna

# re: Hurry Up and TIME_WAIT

Helpful thanks, what about connections in netstat -n that show myself 127.0.0.1 as local host and my IP has a server address?
5/12/2007 11:05 PM | Jacob

# re: Hurry Up and TIME_WAIT

Thanks man. This is pretty clear. Nice joke about RFC793
6/30/2007 9:26 PM | VirtualTycoon

# a lot of TIME_WAITs

Hi,
when I give on MS-DOS prompt the command netstat,
I get a large printout as follows:

TCP my_hostname:3546 my_hostname:3545 TIME_WAIT
TCP my_hostname:3552 my_hostname:3551 TIME_WAIT
TCP my_hostname:3555 my_hostname:3554 TIME_WAIT
TCP my_hostname:3561 my_hostname:3560 TIME_WAIT
TCP my_hostname:3563 my_hostname:3562 TIME_WAIT
TCP my_hostname:3565 my_hostname:3564 TIME_WAIT
TCP my_hostname:3570 my_hostname:3569 TIME_WAIT
TCP my_hostname:3572 my_hostname:3571 TIME_WAIT
TCP my_hostname:3574 my_hostname:3573 TIME_WAIT
TCP my_hostname:3582 my_hostname:3581 TIME_WAIT
TCP my_hostname:3584 my_hostname:3583 TIME_WAIT
TCP my_hostname:3586 my_hostname:3585 TIME_WAIT
TCP my_hostname:3588 my_hostname:3587 TIME_WAIT


Is there someone who can say what this mean?
My laptop uses Microsoft 2000 operating system.

Regards,
Mike
8/8/2007 8:39 AM | Mike

# re: Hurry Up and TIME_WAIT

It's too bad that the spaces between "Client" and "Server" were removed in my previous post
8/31/2007 2:18 PM | oyun oyunlar

# re: Hurry Up and TIME_WAIT

I now think I understand why I have so many time_waits on my netstat.
Thank you for your explanation, it was very well explained!!
12/2/2007 3:13 PM | minik peri

# re: Hurry Up and TIME_WAIT

I've looked at thousands of traces and have never seen the server side initiate the FIN sequence.

The client always closes the connection like this
12/21/2007 9:38 AM | hugo oyunlari

# re: Hurry Up and TIME_WAIT

Thanks.... searching the web for a TIME_WAIT explaintion and I found it here...

Merry Christmas, peace on earth....

/Steen
2/13/2008 1:11 PM | Youtube

# re: Hurry Up and TIME_WAIT

Thank you for a great article.
Especially for the post on how to push the WAIT_TIMEOUT to the client side.
This helped us very much :-)
3/2/2008 11:09 PM | Kurt Andersen

# re: Hurry Up and TIME_WAIT

Thanks.... searching the web for a TIME_WAIT explaintion and I found it here...
3/19/2008 10:53 AM | film izle

# The Server is not Operational in Event Log on SharePoint Web Servers

Wow this one was a major tough one. Thanks to one of my colleagues for figuring it out. We have a SharePoint
3/20/2008 9:44 AM | SharePoint Cowboy

# re: Hurry Up and TIME_WAIT

Excellent article, thanks for explaining in English
3/25/2008 8:21 AM | Bonson

# re: Hurry Up and TIME_WAIT

Great info.. I always wonder why Win does not have a tool like netstats..
4/11/2008 6:16 PM | WONG SEO-UL

# re: Hurry Up and TIME_WAIT

The problem is that 2MLS happens to be a rather long time--240 seconds, by default. There are several costs associated with this. The state for each socket is maintained in a data structure called a TCP Control Block (TCB)..???
4/18/2008 10:25 PM | video watch

# re: Hurry Up and TIME_WAIT

Thanks for the prompt reply.

We are looking at 2 scenarios:

1. Browser connects to Web Server and requests an ASP page. Is the browser responsible for sending the FIN which starts off the CLOSE process or is it the web server which finishes executing the ASP, sends the data to the browser and then sends out a FIN to the browser?

2. ASP Page (on the web server) connects to the database server using usual ado libraries. Is the web server responsible for sending the FIN or is it the database server?
4/30/2008 1:09 PM | subeler

# re: Hurry Up and TIME_WAIT

It's too bad that the spaces between "Client" and "Server" were removed in my previous post
6/2/2008 12:19 AM | Oyun

# re: Hurry Up and TIME_WAIT

thankss so much

6/10/2008 10:13 AM | rmooosh

# re: Hurry Up and TIME_WAIT

This is a well organized and outlined blog. Thanks for taking the time.
cheers, gerardo
6/11/2008 7:33 AM | http://getabu.com

# re: Hurry Up and TIME_WAIT

gerat info thanks
6/15/2008 3:55 AM | çocuk oyunları

# re: Hurry Up and TIME_WAIT

Hello Men
gallery is fantastic "Sunset Waves" very good

I am Blog
6/20/2008 7:19 PM | youtube

# re: Hurry Up and TIME_WAIT

Hello Men
gallery is fantastic "Sunset Waves" very good

I am Blog
6/20/2008 7:19 PM | youtube

# re: Hurry Up and TIME_WAIT

siirtliler forumu
6/24/2008 12:28 PM | siirt

# re: Hurry Up and TIME_WAIT

thankas
6/24/2008 10:52 PM | kral oyun

# re: Hurry Up and TIME_WAIT

Nice article, the explanation is simple enough to let anyone understand it, but I still have questions, the most important one, how to know the software that created the connection?

Thanks!
6/26/2008 10:56 PM | Oil Paintings

# re: Hurry Up and TIME_WAIT

thank you so much
6/28/2008 4:10 AM | bayrak

# re: Hurry Up and TIME_WAIT

Hello Men
gallery is fantastic "Sunset Waves" very good
6/28/2008 2:32 PM | sesli27 sohbet siteleri

# re: Hurry Up and TIME_WAIT

thank you
6/28/2008 5:58 PM | Mirc

# mırc

thank you admin
6/29/2008 8:26 AM | mırc

# re: Hurry Up and TIME_WAIT

10x for gr8 artical..
6/29/2008 8:45 AM | sohbet

# re: Hurry Up and TIME_WAIT

thank you
6/30/2008 12:12 AM | akbudak

# re: Hurry Up and TIME_WAIT

thank you somuch
6/30/2008 5:56 AM | bayrak

# re: Hurry Up and TIME_WAIT

thank you
6/30/2008 6:13 AM | mircalem

# re: Hurry Up and TIME_WAIT

thank you site admin..
6/30/2008 8:45 AM | youtube

# re: Hurry Up and TIME_WAIT

great article.....i m in a support project working on servers and never could found a great explanation on sockets other than this.
6/30/2008 3:49 PM | Surajit

# re: Hurry Up and TIME_WAIT

thank you so much
7/2/2008 7:45 AM | منتديات

# re: Hurry Up and TIME_WAIT

thanks
7/2/2008 7:46 AM | منتدى

# re: Hurry Up and TIME_WAIT

sesli sohbet sesli chat thanks
7/8/2008 3:17 PM | sesli

# Chat

Thanks..
7/15/2008 6:04 PM | Chat

# re: Hurry Up and TIME_WAIT

thankss so
7/18/2008 12:25 AM | kral oyun

# youtube

thx for your plugin I am Blog
7/18/2008 9:51 AM | youtube

# re: Hurry Up and TIME_WAIT

thank you very nice wonderful posted
7/19/2008 5:43 AM | web tasarım

# re: Hurry Up and TIME_WAIT

very nice web
7/19/2008 5:45 AM | Gelinlikler

# re: Hurry Up and TIME_WAIT

thank you very nice web page
7/19/2008 5:47 AM | Mercedes Yedek Parçaları

# re: Hurry Up and TIME_WAIT

very nice web page thanks
7/19/2008 5:48 AM | autocad kursu

# re: Hurry Up and TIME_WAIT

THNK YOU VERY NICE
7/19/2008 5:49 AM | Müzik Dinle

# re: Hurry Up and TIME_WAIT

Thanks very nice.
7/19/2008 5:43 PM | oyun

# re: Hurry Up and TIME_WAIT

I now think I understand why I have so many time_waits on my netstat.
7/20/2008 8:00 AM | youtube

# re: Hurry Up and TIME_WAIT

thanks
7/21/2008 1:11 AM | komik

# re: Hurry Up and TIME_WAIT

thanks.
7/21/2008 10:22 AM | çet

# re: Hurry Up and TIME_WAIT

thanks.
7/21/2008 12:59 PM | mircalem

# re: Hurry Up and TIME_WAIT

thanks.
7/21/2008 1:01 PM | youtube

# Müzik Dİnle

thanks for links
7/21/2008 3:16 PM | müzik dinle

# sohbet

Search motor optimization is noted if you require to get customers from search motors
9/24/2008 6:59 PM | sohbet chat

# re: Hurry Up and TIME_WAIT

thanks for links
9/25/2008 12:44 AM | harew

# re: Hurry Up and TIME_WAIT

thanks for links
9/25/2008 12:45 AM | müzik dinle

# re: Hurry Up and TIME_WAIT

thanks for links
9/25/2008 12:46 AM | Film izle

# re: Hurry Up and TIME_WAIT

hmm... thanks you i do need such documents
9/25/2008 6:56 AM | Msn avatarlari

# re: Hurry Up and TIME_WAIT

thanks for sharing...
9/25/2008 7:03 AM | araba resimleri

# chat

thank you site admin.
9/25/2008 8:17 AM | chat

# re: Hurry Up and TIME_WAIT

thkns for entry
9/25/2008 8:41 AM | neyazsak

# nokia

thkns for entry
9/25/2008 10:00 AM | nokia

# Gonulcafe

i m in a support project working on servers and never could found a great explanation on sockets other than this
9/25/2008 11:00 AM | gonulcafe

# re: Hurry Up and TIME_WAIT

evin sigorta hizmetleri ak sigorta acenteligi
9/25/2008 1:56 PM | ak sigorta

# re: Hurry Up and TIME_WAIT

Wow this one was a major tough one. Thanks to one of my colleagues for figuring it out. We have a SharePoin
9/26/2008 6:30 AM | dikey perde

# autocad kursu

thank you very nice web page wonderful
9/26/2008 8:08 AM | autocad kursu

# belgesel izle

thank you
9/26/2008 8:10 AM | belgesel izle

# film izle

thank you very nice web page
9/26/2008 8:12 AM | film izle

# film izle

thank you very nice web page
9/26/2008 8:13 AM | film izle

# gaziosmanpaşa

thank you very nice
9/26/2008 8:13 AM | gaziosmanpaşa

# gelinlikler

thank you
9/26/2008 8:15 AM | gelinlikler

# müzik dinle

very good online music
9/26/2008 8:20 AM | müzik dinle

# yemek tarifleri

very nice web page thanks
9/26/2008 8:22 AM | yemek tarifleri

# add site

thanks.very nice
9/26/2008 12:12 PM | addsite

# Oynabitir

than you,

add my flash game site
9/27/2008 2:28 AM | oda oyunları

# hack

thank u good work
9/27/2008 3:11 PM | hack

# adtech ile reklam 2.0 dönemi başlıyor ve Trkycmhrytllbtpydrklcktr r10.net seo yarışması

omg !!!.. good work

# Thanks

thanks
10/1/2008 1:10 AM | beren saat fan

# re: Hurry Up and TIME_WAIT

thansk
10/2/2008 12:40 PM | porno

# re: Hurry Up and TIME_WAIT

thanks
10/4/2008 3:25 AM | برامج مجانيه

# re: Hurry Up and TIME_WAIT

thanks this blog is wery good i track on rss
10/5/2008 2:41 AM | I love Google (seo)blog

# re: Hurry Up and TIME_WAIT

thnkx admin..
10/5/2008 3:17 PM | partner

# bayrak

bayrak
10/7/2008 12:18 AM | bayrak

# film izle

film izle
10/7/2008 12:19 AM | film izle

# Pet Market

Pet market vecil hayvan
10/8/2008 7:22 AM | Pet Market

# Muzik dinle

thanks for links very nice good site muzik dinle
10/9/2008 9:38 AM | muzik dinle

# izlekop

Great article! Extremely well-written and informative, great for beginners and more advanced readers alike. I'm forwarding this URL around to a few of my friends to read.
10/9/2008 10:47 AM | izlekop

# re: Hurry Up and TIME_WAIT

thanks for all apologies and articles. best regards
10/10/2008 5:14 AM | mirc

# re: Hurry Up and TIME_WAIT

nice. thanks
10/10/2008 5:15 AM | mirc

# re: Hurry Up and TIME_WAIT

thanks
10/12/2008 6:10 AM | chat

# re: Hurry Up and TIME_WAIT

thank you
10/12/2008 6:12 AM | chat

# re: Hurry Up and TIME_WAIT

very thanks for you!! IOyunx
10/12/2008 4:17 PM | Oyun

# re: Hurry Up and TIME_WAIT

does anyone know why ?
10/12/2008 10:32 PM | musa

# re: Hurry Up and TIME_WAIT

does anyone know why ?
10/12/2008 10:33 PM | oyunhaberleri

# çet

çet
10/13/2008 6:34 AM | çet

# re: Hurry Up and TIME_WAIT

cet sohbet
10/13/2008 6:35 AM | sohbet siteleri

# re: Hurry Up and TIME_WAIT

muhabbet, sohbet, chatsohbetci.net, chat
10/13/2008 8:52 AM | muhabbetgulu

# arkadaş

tnx admin :)
10/14/2008 2:38 AM | arkadaş

# re: Hurry Up and TIME_WAIT

thats nice project.. its name volta. thank you admin
10/15/2008 5:16 AM | mirc

# re: Hurry Up and TIME_WAIT

party time ,)
10/15/2008 6:53 AM | mırc

# re: Hurry Up and TIME_WAIT

thank you very much
10/16/2008 1:16 AM | kelebek

# re: Hurry Up and TIME_WAIT

thats nice project.. its name volta. thank you admin
10/16/2008 11:01 AM | sohbet

# re: Hurry Up and TIME_WAIT

Useful knowledge.. With us invention for thanks
10/17/2008 1:05 PM | film

# re: Hurry Up and TIME_WAIT

I apologize. :( Useful knowledge.. With us invention for thanks
10/17/2008 1:06 PM | film

# re: Hurry Up and TIME_WAIT

I finally decided that I needed to understand what all those TIME_WAITs were for and your explination is the clearest I have found
10/17/2008 1:48 PM | YouTube izleSene

# re: Hurry Up and TIME_WAIT

thanx
10/17/2008 11:14 PM | Seooo

# re: Hurry Up and TIME_WAIT

RLX
10/17/2008 11:15 PM | Rlx

# re: Hurry Up and TIME_WAIT

that is good
10/17/2008 11:16 PM | Rlx

# re: Hurry Up and TIME_WAIT

that is good
10/17/2008 11:16 PM | Rlx

# re: Hurry Up and TIME_WAIT

thank you admin
10/18/2008 3:10 AM | mirc

# re: Hurry Up and TIME_WAIT

Thanks for post
10/18/2008 9:24 PM | recipe

# re: Hurry Up and TIME_WAIT

thank you man
10/18/2008 9:26 PM | admission university

# re: Hurry Up and TIME_WAIT

Thanks a lot
10/19/2008 2:29 AM | sohbet

# re: Hurry Up and TIME_WAIT

sharing for thanks.. i wish the successfrom now on writing
10/20/2008 4:50 AM | film izle

# re: Şişme oyun parkı ve reklam balonu

Article is so cool. Congrats and balon balon balon :)
10/21/2008 10:46 AM | şişme oyun parkı

# re: Hurry Up and TIME_WAIT

thanks
10/21/2008 3:44 PM | chat

# re: Hurry Up and TIME_WAIT

thanks
10/21/2008 3:45 PM | chat

# porno

thanks
10/21/2008 4:41 PM | porno

# re: Hurry Up and TIME_WAIT

trim down the content on your slides. they're so jam packed with info that your audience probably spent a lot of time just reading them and not focusing on you.
10/22/2008 12:55 AM | amatör

# cinsel ürünler

Thanks wery good
10/22/2008 4:38 AM | cinsel ürünler

# evden eve nakliyat

thanks for helpful comments
10/22/2008 10:12 AM | nakliyat

# Oda oyunu

Thanks
10/22/2008 10:46 AM | Oda oyunu

# re: Hurry Up and TIME_WAIT

http://www.batteryfast.com/asus/u5a.htm asus u5a battery,
10/23/2008 7:19 PM | laptop battery

# re: Hurry Up and TIME_WAIT

completely agree with all that here is told
"So you can find the information on it on my search resource :))))
10/24/2008 5:11 PM | evden eve nakliyat

# re: Hurry Up and TIME_WAIT

trim down the content on your slides. they're so jam packed with info that your audience probably spent a lot of time just reading them and not focusing on you. ..
10/25/2008 8:18 AM | porno izle