Please Whitelist This Site?

I know everyone hates ads. But please understand that I am providing premium content for free that takes hundreds of hours of time to research and write. I don't want to go to a pay-only model like some sites, but when more and more people block ads, I end up working for free. And I have a family to support, just like you. :)

If you like The TCP/IP Guide, please consider the download version. It's priced very economically and you can read all of it in a convenient format without ads.

If you want to use this site for free, I'd be grateful if you could add the site to the whitelist for Adblock. To do so, just open the Adblock menu and select "Disable on tcpipguide.com". Or go to the Tools menu and select "Adblock Plus Preferences...". Then click "Add Filter..." at the bottom, and add this string: "@@||tcpipguide.com^$document". Then just click OK.

Thanks for your understanding!

Sincerely, Charles Kozierok
Author and Publisher, The TCP/IP Guide


NOTE: Using software to mass-download the site degrades the server and is prohibited.
If you want to read The TCP/IP Guide offline, please consider licensing it. Thank you.

The Book is Here... and Now On Sale!

The whole site in one document for easy reference!
The TCP/IP Guide

Custom Search







Table Of Contents  The TCP/IP Guide
 9  TCP/IP Lower-Layer (Interface, Internet and Transport) Protocols (OSI Layers 2, 3 and 4)
      9  TCP/IP Transport Layer Protocols
           9  Transmission Control Protocol (TCP) and User Datagram Protocol (UDP)
                9  TCP/IP Transmission Control Protocol (TCP)
                     9  TCP Basic Operation: Connection Establishment, Management and Termination

Previous Topic/Section
TCP Basic Operation: Connection Establishment, Management and Termination
Previous Page
Pages in Current Topic/Section
12
3
Next Page
TCP Connection Preparation: Transmission Control Blocks (TCBs) and Passive and Active Socket OPENs
Next Topic/Section

TCP Operational Overview and the TCP Finite State Machine (FSM)
(Page 3 of 3)

Finite State Machine Steps Represent the Stages of a Connection

It's important to remember that this state machine is followed for each connection. This means at any given time TCP may be in one state for one connection to socket X, while in another for its connection to socket Y. Also, the typical movement between states for the two processes in a particular connection is not symmetric, because the roles of the devices are not symmetric: one device initiates a connection, the other responds; one device starts termination, the other replies. There is also an alternate path taken for connection establishment and termination if both devices initiate simultaneously (which is unusual, but can happen). This is shown by the color codings in Figure 210.

Thus, for example, at the start of connection establishment, the two devices will take different routes to get to ESTABLISHED: one device (the server usually) will pass through the LISTEN state while the other (the client) will go through SYN-SENT. Similarly, one device will initiate connection termination and take the path through FIN-WAIT-1 to get back to CLOSED; the other will go through CLOSE-WAIT and LAST-ACK. However, if both try to open at once, they each proceed through SYN-SENT and SYN-RECEIVED, and if both try to close at once, they go through FIN-WAIT-1, CLOSING and TIME-WAIT roughly simultaneously.

Key Concept: The TCP finite state machine describes the sequence of steps taken by both devices in a TCP session as they establish, manage and close the connection. Each device may take a different path through the states since under normal circumstances the operation of the protocol is not symmetric—one device initiates either connection establishment or termination, and the other responds.



Previous Topic/Section
TCP Basic Operation: Connection Establishment, Management and Termination
Previous Page
Pages in Current Topic/Section
12
3
Next Page
TCP Connection Preparation: Transmission Control Blocks (TCBs) and Passive and Active Socket OPENs
Next Topic/Section

If you find The TCP/IP Guide useful, please consider making a small Paypal donation to help the site, using one of the buttons below. You can also donate a custom amount using the far right button (not less than $1 please, or PayPal gets most/all of your money!) In lieu of a larger donation, you may wish to consider purchasing a download license of The TCP/IP Guide. Thanks for your support!
Donate $2
Donate $5
Donate $10
Donate $20
Donate $30
Donate: $



Home - Table Of Contents - Contact Us

The TCP/IP Guide (http://www.TCPIPGuide.com)
Version 3.0 - Version Date: September 20, 2005

© Copyright 2001-2005 Charles M. Kozierok. All Rights Reserved.
Not responsible for any loss resulting from the use of this site.