cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
522
Views
0
Helpful
1
Replies

TCP hand shaking query...

devang_etcom
Level 7
Level 7

as we know tcp works on the three way hand shaking ...

1. SYN

2. SYN-ACK

3. ACK...

my query is why TCP not satart sending data after the 2nd handshaking which is SYN-ACK... as now both the end are exchanging the required paramets... so they can start sending data from the 3rd stage which is again ACK... can anybody explain it me in detail???

regards

Devang

1 Reply 1

gpulos
Level 8
Level 8

tcp 3-way handshake:

frame1:

client sends a SYN to the server.

(this is used to request a synchronization of sequenceNumbers from the server)

frame2:

server sends an ACK as well as a SYN to the client.

(this is used to ACKnowledge the Clients SYN as well as perform a SYN back to the client to request synchronization of sequenceNumbers from the client)

frame3:

client sends an ACK back to the server in response to its SYN.

the reason TCP cannot begin sending data after frame2 (SYN,ACK) is because the TCP handshake is not yet completed. at frame2, the client has not yet ACKnowledged the servers request of synchronizaion of sequenceNumbers.

without this synchronization ACK, which contains the sequenceNumber expected from the client, TCP cannot be sure it is in proper synchronization.

with the proper ACK in frame3 back to the server, TCP is assured it is fully synchronized in both directions. TCP can now begin sending data.

remember, the one major requirement of TCP being able to send data is that it can assure the sequencing of the packets so the data can be reassembled at the receiving end (as TCP frames are often received out of sequence). this would not be possible if the Server has not synchronized its sequenceNumber with the client, hence the need for the client to ACK the servers SYN before TCP can consider the connection established.