TCP连接的三次握手与四次挥手

  TCP是面向连接的协议,因此每个TCP连接都有三个阶段:连接建立、数据传送和连接释放

  TCP采用客户服务器模式。主动发起连接建立的应用进程称为客户,而被动连接建立的应用进程称为服务器。

  在了解三次握手前,先了解TCP的首部格式。

  TCP报文的首部

  

TCP首部中序号和确认号的含义:

  序号:seq。TCP连接中传送的字节流中的每个字节都要按顺序编号,序号字段值指的是本报文段发送的第一个字节的序号。

  确认号:ack。期望收到对方下一个报文的第一个字节的序号。如果确认号是N,则表明到序号N-1为止的所有数据都已经正确收到。

TCP首部中确认位,同步位与终止位。

  确认位:ACK。当确认位ACK=1时,确认号字段才有效。ACK=0时,确认号无效。

  同步位:SYN。当同步位SYN=1时,表示这是一个连接请求或连接接受报文。

  终止位:FIN。用来释放一个连接。当FIN=1时,表明此报文段的发送方的数据已发送完毕,并要求释放连接。

TCP建立连接的三次握手:

TCP三次握手:

第一步:客户端向服务器端发送TCP连接请求报文段。

第二步:服务端的TCP收到连接请求报文段后,如果同意建立连接,则向客户机发回确认,并为TCP连接分配缓存和变量。

第三步:客户端收到服务端的确认报文后,向服务器给出确认,并为TCP连接分配缓存。

举一个简单的例子,就如同两个同学约定某一天在餐厅聚餐。同学A:请问你要和我一起去聚餐吗?同学B收到邀约,抽出时间,并回复:“已收到邀约,我同意去聚餐,你收到了吗”?同学A回复:“已收到你的同意”。随即,同学A也抽出时间。

TCP释放连接的四次挥手

第一步:客户机打算关闭连接时,向其TCP发送释放连接报文段,并且停止发送数据,主动关闭TCP连接,该报文段的终止位FIN置1。

第二步:服务器收到连接释放报文段后发出确认,然后服务器进入CLOSE_WAIT状态,此时客户机到服务器这个方向的连接就已经关闭。TCP此时连接处于半关闭状态,当服务器向客户端发送数据时,客户端依然要接收数据。

第三步:如果服务器已经没有向客户机发送的数据,就通知TCP释放连接,此时发送FIN=1的连接释放报文段。

第四步:客户机收到连续释放报文段后,必须发出确认,之后进入TIME-WAIT状态。客户机进入TIME_WAIT状态后,还需要等待2MSL(最长报文段寿命)后,才能进入CLOSED状态。

  

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值