TCP协议的可靠机制

一、通过握手来连接

   双方各自发送和接收几次,传递一些信息。

  例如:

    1、双方是开启了连接,并且是正常工作(因为对方有对数据包的确认回复)。

    2、告诉对方下次能发送的最大数据包大小。(通过窗口来设置)

   3、确定开始通信的序号。

 

二、每次发送数据包,对方都需要确认

   1、发送方发送一个数据包,对方要回复确认。

   2、确认代表对方已经成功收到。

 

三、超时重发

  1、如果发送方发送数据包后,在一定时间内没有收到对方的确认包。(出现超时)

  2、出现超时后,发送方需要再次发送相同的数据包。

 

四、确定数据包的顺序

  1、给每个数据包设置1个序号。

    序号一般是按照自然数递增,例如0、1、2。

 

  2、发送方每次给数据包编号,接收方收到每个数据包后需要排序数据包。

   如果顺序不一致,那么就不发送确认包。

   也就是判断本次序号是否为上次序号加一。

 

五、告诉对方剩余多少空间

  1、接收方回复确认的时候,告诉对方剩余多少缓存空间。

   2、发送方只能发送不超过对方缓冲空间的数据包。

 

六、阻塞时询问

   1、如果对方缓存满了,发送方需要定时询问有没有腾出空间。

   2、接收方收到询问包,需要回复剩余空间。

 

七、关闭确认

  1、当任意一方需要关闭,要通知对方。

    也就是发送一个关闭信号包。

    如果对方没有回复,也需要超时重发。

 

  2、对方收到关闭信号包,需要回复一个确认关闭。

    关闭时对当前缓冲的没有发送数据的处理:

        第一种,立刻丢弃,退出程序。

        第二种,定时发送,超过时间后丢弃。

        第三种,继续发送,直到全部发送成功。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值