理解TCP的三次握手与四次挥手

TCP是安全的,面向连接的,基于字节流传递数据的传输层控制协议。

 

TCP的六个标志位

  • ACK(acknowledgement 确认)          表示已接收到对方传递的数据
  • PSH(push传送) 
  • FIN(finish结束)                                  表示连接已断开
  • RST(reset重置) 
  • URG(urgent紧急)
  • SYN(synchronous建立联机)             表示已同步(建立连接)

TCP的两个号码:

  • seq:   Sequence Number(顺序号码)           数据报的顺序号
  • ack:   Acknowledge Number(确认号码)      希望接收的下一个数据报的顺序号

三次握手

TCP传递数据之前需要通过客户端与服务端进行三次数据传递,保证连接创建成功。

1.客户端发起连接请求,将SYN状态位置为1,表示客户端已准备好建立连接;

   同时发送一个数据报,此数据报的序列号为a

2.服务端收到此连接请求,同意则将SYN状态位置为1建立联机关系,同时返回ACK状态位表明已接收到客户端发来的数据;

   服务端发送ack号码,希望下次客户端发送序号为a+1的数据报;

   服务端也需要向客户端发送一个数据报,此数据报的序号为b

3.客户端收到服务端的数据,将ACK置为1表示接收到消息;

   同时发送序号位seq为a+1的报文,并希望服务端下次传来seq为b+1的数据报

此时,连接建立成功,两者可互相传递数据

 

通过步骤1.2,客户端确认了自己的发送数据和接收数据的能力,

通过步骤1,服务端确认自己的接收数据的能力

通过步骤3,服务端确认自己接收数据的能力

 

 

四次挥手

TCP层需要通过四次数据交互,才能完成断开连接,此称为四次挥手。

 

1.主动方发起断开连接请求,将FIN状态位置为1,表示主动方已准备好断开连接;

   同时发送一个数据报,此数据报的序列号为a

2.被动方收到此结束请求,返回ACK状态位表明已接收到客户端发来的数据;

   服务端发送ack号码,希望下次客户端发送序号为a+1的数据报;

   服务端也需要向客户端发送一个数据报,此数据报的序号为b

   之后服务端需要完成一些剩余任务后,方能关闭连接

3.被动方处理完工作后,发起FIN,表示关闭;

   同时发送序号位seq为c的报文,并希望服务端下次传来seq为a+1的数据报

4.主动方发送ACK,表示收到消息,并返回数据给被动方。

   被动方收到数据后,关闭连接完成。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值