TCP协议的三次握手四次挥手

TCP协议的三次握手四次挥手

一. 介绍

TCP协议是一种面向连接的可靠的通信协议。因此要求在传输数据之前,需要先建立连接,即判断是否两台主机可不可以正常通信,建立连接的过程就是三次握手。当数据传输完毕需要断开连接的时候,断开连接的过程就是四次挥手

二. 三次握手

在这里插入图片描述

1. 握手过程

  1. 主机A先向主机B发送连接请求报文
  2. 主机B收到主机A的连接请求报文后回复一个报文
  3. 主机A受到主机B回复的报文后需要再向主机B发送一个报文

这样连接通道就建立了

2. 解释

数据传输主机A需要可以发送和接收数据,同样主机B也需要

  1. A告诉B:我需要建立连接传输数据
  2. B听到以后回复A:我知道了
    这时候B知道自己的接收数据功能没问题
  3. A这时候还需要再告诉B:好
    A接受到数据的时候知道自己发送、接收数据都没问题,但是这时候B不知道自己的发送数据的功能是不是没问题,所以A需要回复B,告诉B你发送的数据我可以接收到。

但是在第三次握手时,主机A怎么可以确定主机B回复的是连接请求报文呢,而不是其他的数据,一旦是这样就没法确定主机B是不是可以接收到主机A发送的数据

所以主机A需要和B约定一种机制,来保证确实收到了连接请求报文。这个机制就是回复报文中的确认号(Ack)需要等于收到报文的序号(Seq)加上1,即Ack=Seq+1

三. 四次挥手

在这里插入图片描述

1. 挥手过程

  1. 主机A向主机B发送一个FIN数据包,请求断开连接,与请求连接报文不同的是FIN需要赋为1。如果一段时间内没有收到主机B回复的确认包则会重新发送
  2. 主机B收到FIN数据包后,会向主机A发送确认包,把FIN数据包的序列号(Seq)加1作为确认号(Ack),表示收到了主机A的报文
  3. 当主机B在确认没有数据需要发送以后会发送一个FIN数据包用来告诉主机A数据已发送完毕,之后不会再发送数据
  4. 主机A收到主机B的FIN数据包后等待一定时间(2MSL)也会向主机B发送一个确认包,至此两台主机成功完成断开连接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值