I'm a student running Redhat Linux 9, which we have to modify for a project. I am having serious problems trying to follow the TCP 3-way handshake through the kernel code. I am running a basic client/server application and using connect() and accept() to create the connection. Using gdb, I can follow the syn being received and the syn-ack being sent back, but I cannot for the life of me figure out where the kernel code sets the state of the socket on the accept() side to be TCP_SYN_RECV. If anyone could tell me what function changes the state to be TCP_SYN_RECV and exactly how this is accomplished, that would be much appreciated...

Thanks...