TCP3次握手学习笔记

来源:互联网 发布:知乎用户分析报告 编辑:程序博客网 时间:2024/05/23 01:49

TCP(Transmission Control Protocol) 传输控制协议

三次握手

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:

1.    主机A首先将标志位SYN设置为1同时产生一个随机数seqnumber = 123的数据包,将数据包发送到B,这时候进入SYN_SEND状态。

2.    主机B收到数据包后发现标志位SYN = 1,从而知道A要建立联机。如果B同意,则将标志位ACK设置为1同时设置ack number = 124(主机A seq number +1)。由于B也需要和A联机,所以B也要将标志位SYN设置为1,同时产生一个随机数seqnumber = 234. (跟第一步一样).B将数据包发出,这时候进入SYN_RECV状态。

3.    主机A收到数据包后检查标志位ACK是否为1,为1表示主机B同意,并且查看ack number是否正确。如果正确,主机A设置ACK = 1并且发送ack number = 235(主机B的seq + 1). 主机B收到后确认seq值和ACK = 1. 则连接建立成功。进入ESTABLISHED状态。

 

四次挥手

  • 当主机A完成数据传输后,将控制位FIN置1,提出停止TCP连接的请求
  • 主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1
  • 由B 端再提出反方向的关闭请求,将FIN置1
  • 主机A对主机B的请求进行确认,将ACK置1,双方向的关闭结束。