Tuesday, February 14, 2006

A question on TCP.

I was challenged by one of my friends here in Phoenix, with a question on TCP and I am posting the same so if someone knows the answer could help me.
Why does TCP need a 3-way handshake ? The below explains the 3-way handshake which happens.
S - Sender C - Client / Receiver

S (SYN) -> C
C (ACK) -> S
S (ACK) -> C

I tried googling and cudnt get a concrete answer. Can someone help me out plz ?
TIA
Joe

6 comments:

Joebi said...

Yep. Wat you have explained below is the 3 way handshake actually. Refer to this linkwhich maps your explanation to the 3 way handshake

Joebi said...

The question is actually why does the Server / Sender require to ACK back to the Client / Receiver

1. SYN
2. ACK
3. ACK - ?? Why do we need this ACK ??

Joebi said...

Ram,
TCP is a Connection Oriented Reliable protocol and it doesnt have any Securit feature on itz own. It depends on the IP layer to provide the Security features as per "Section 2.9. Precedence and Security" in RFC of TCP .
Your point below seems to be valid from a reliability perspective. I will check with my friend with your explanation and get back if he has any qns on ur explanation

Joebi said...

Ram, Looks like the answer you provided is not the exact reason. I got a hint from him. It seems the extra SYN sent is more of Server worry / concern than the Client worry / concern.

Anonymous said...

Hei Joe,

Did you figure out the answer for this?

I'm still waiting for a word from you!

Joebi said...

Hi Kanth,

:( I havent yet figured out. I will get back to you within 2 weeks or so. Else I surrender