TCP/IP 三次握手 详细解释

TCP/IP 三次握手 详细解释
转自: http://hi.baidu.com/baoobaoo/blog/item/e2c75f1f821a8ecca686693a.html
 

5 简述TCP协议连接建立时3次握手的过程。根据TCP头部,说明下列3个包在连接建立过程中的次序,为什么?该连接访问的服务是什么服务?

0020        00 50 83 aa 46 49 3e dd 33 96 37 a3 a0 12  ...P..FI>.3.7...

0030   16 a0 c4 c0 00 00 02 04 05 b4 04 02 08 0a d7 9b  ................

0040   62 b7 00 56 4a 2a 01 03 03 02                    b..VJ*....   1

0020        83 aa 00 50 33 96 37 a2 00 00 00 00 a0 02  .....P3.7.......

0030   16 d0 84 1d 00 00 02 04 05 b4 04 02 08 0a 00 56  ...............V

0040   4a 2a 00 00 00 00 01 03 03 00                    J*........    2

0020        83 aa 00 50 33 96 37 a3 46 49 3e de 80 10  .....P3.7.FI>...

0030   16 d0 f3 4b 00 00 01 01 08 0a 00 56 4a 36 d7 9b  ...K.......VJ6..

0040   62 b7                                            b.    3

解:

TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。

第一次握手:建立连接时,客户端发送syn(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的SYNack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYNACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

完成三次握手,客户端与服务器开始传送数据。

2)是第一次握手,flags位上为02,二进制是0000 0010,即表示有syn没有ack

1)是第二次握手,flags位上为12,二进制是0001 0010,即表示有synack

3)是第三次握手,flags位上为10,二进制是0001 0000,即表示有ack没有syn

该连接访问的是80端口,是为HTTPHyperText Transport Protocol,超文本传输协议)开放的,

你可能感兴趣的:(c,tcp,服务器)