TCP协议三次握手四次挥手过程


TCP协议是传输控制协议,是以=一个面向连接,在运用此协议进行数据传输的时候会进行连接工作 ,(三次握手)当传输完毕后,双方都会通知彼此释放连接(四次挥手)。

TCP标志位:

SYN (建立联机) 

ACK (确认)

PUSH (传送)

FIN (结束)

RST (重置)

URG (紧急)

Sequence number (顺序号码)

Acknowledge number (确认号码)

图解TCP 三次握手与挥手:


三次握手过程:

第一次握手:

hsot1发送一个TCP标志位,SYN =1 的数据包 ,并随机产生一个 seq number 的数据包发送给host2, 当host2接收到这个数据后,host2根据SYN=1 可知客户端(host1)想要建立连接。

第二次握手:host2 要对客户端(host1)请求进行确认,向host1 发送 ack number=host1的 seq number+1),ACK = 1,SYN=1  并随机产生一个seq number 的数据包,这样就告诉host1 可以进行连接。

第三次握手:

host1收到后会检查ack number 是否正确 ,即第一次发送的seq number+1  以及码 ACK =1 ,若正确host1会发送ACK=1和 ack number =host2 seq+1),若主机收到确认seq number 值与ack=1 则连接建立成功。

 

 一个完整的三次握手就是 请求-----应答------再次确认

  四次挥手的过程:

由于TCP 连接是全双功的,因此每一个方向都必须进行单独关闭,这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向上的连接。

第一次挥手:

当传输的数据到达数据的尾部的时候,host1 host2 发送FIN=1 标志位,可以理解成host1 host2说,我这边数据已经传输完成,准备断开连接。

第二次挥手:

因为TCP的连接需要从两边关闭,当host2收到host1发送的FIN=1 标志位后,host2不会立刻向host1发送FIN=1的请求关闭信息,而是向host1发送一个ACK应答信息,表示 :你请求关闭请求我已经收到,但我可能还有数据没有完成,你在等下,等待数据除传输完毕后就会告诉你。

第三次挥手:

 当host2 数据传输完后,向host1发送FIN=1host1收到请求关闭连接的请求后,host1 就明白host2数据已经传输完成,可以断开连接。

第四次挥手:

 Host1收到FIN=1 hos1还是怕有与网络不稳定的原因,怕host2不知道自己要断开连接,于是向host2发送ACK=1 ,确认信息进行确认,把自己设置为TIME_WITE状态并启动定时器,如果host2没有收到ACK host2端的定时器到达后,会要求host1重新发送ACK,当host2收到ACK后就会断开连接,当host1等待2mls(两倍报文最大生存时间)后没有收到重传请求,就知道host2已收到ACK,所以host1此时关闭自己。

 在TCP 连接的建立与释放的过程中,host1 host2 并没有严格客户端与服务器端之分,谁先发起请求谁就是客户端。

  本篇博文主要参考http://zhaochj.blog.51cto.com/368705/1317226 感谢,感谢 感谢。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值