TCP可靠传输:

TCP的可靠性传输包括以下几个步骤:

  1. 校验(Checksum)

    奇偶检验:就是发送方和接收端设定一个规定,规定传输的信息数据当中的“1”的个数是奇数个或者是偶数个,并在发送端TCP报文段附加位上补上1或者是0,使得数据满足数据中1的个数是奇数个或者是偶数个的要求。这样如果数据在传输过程当中部分的数据编码发生的异变,接收端就能够及时的发现错误。当如果以这种方式作为校验方式有一定的误差,有可能数据段上同时有两位数据发生了异变,那么接收端就无法判断数据传输过程中出现了错误。

CRC校验:就是发送端和接收端设定一个多项式作为除数,然后以传输的信息数据为被除数,除以该多项式,得到一个余数,然后将这个余数作为FSC冗余码放在数据段的尾部。然后接收端接收到数据之后,将数据加上这个冗余码之后再除以约定好的多项式,如果最后的除数是0,那么就代表数据没有发生错误。

2. 序号(Sequence Number)

  • TCP报文段中的序号字段用于标识报文段中第一个数据字节的序号。

  • 发送端为每个发送的字节编号,接收端使用这些序号来重组数据流。

3. 确认(Acknowledgment)

  • 接收端收到数据后,会发送一个确认报文段给发送端,确认已成功接收到数据。

  • TCP使用确认号字段来指示下一个期望接收的字节序号,即已经成功接收的最后一个字节序号加一。

4. 重传(Retransmission)

  • 如果发送端在一定时间内未收到确认,或者收到了超时的确认,会认为数据丢失或者损坏,触发重传机制。

  • 发送端会重新发送之前未收到确认的数据,以确保数据能够可靠传输。

如果某一个序号的数据一直没有被接收端接收到,那么接收端的确认报文当中的ack就会一直是该数据序号,如果发送方发现接收端的确认报文当中的ack连续三次都是该数据的序号时,就会判定该数据已经发生丢失,于是便会重新发送该部分的数据。

当然,除了上述保证数据的可靠性传输,TCP的流量控制以及拥塞控制还保证了数据传输的线路可靠性。

TCP的流量控制:

TCP的流量控制是通过滑动窗口机制来实现的。接收方通过通告窗口大小告诉发送方自己的接收能力,发送方根据这个窗口大小来控制发送的数据量,以避免发送速度过快导致接收方无法及时处理。

具体实现步骤如下:

  1. 接收方通告窗口大小

    • 接收方在TCP报文段的首部中的窗口字段中通告自己的接收窗口大小。接收窗口大小表示了接收方当前能够接收的字节数量。

  2. 发送方根据窗口大小发送数据

    • 发送方会根据接收方通告的窗口大小来控制发送的数据量。如果接收窗口大小为0,则发送方不能发送数据,需要等待接收方通告新的窗口大小。

    • 发送方会维护一个发送窗口,其大小不会超过接收窗口大小和拥塞窗口大小的最小值。发送窗口表示了发送方当前能够发送的字节数量。

  3. 动态调整窗口大小

    • 接收方可以根据自身的处理能力动态调整窗口大小,以适应不同的网络情况。

    • 发送方会根据接收到的新的窗口大小及时调整自己的发送窗口大小,以便更好地控制发送速率。

TCP的拥塞控制:

与流量控制类似,这个tcp拥塞控制也是用于控制发送方发送的数据大小。但流量控制主要考虑的是发送方和接收方两个之间的可靠性,而拥塞控制则考虑的是整个网络之间可靠性,因为一个接收方,比如交换机会有多个发送方,这个时候就需要考虑整个的网络情况(带宽等)。

流量控制的接收窗口:是接收方根据自身缓存区的大小设置的安全值,反应了接收方的容量

拥塞控制的拥塞窗口:是发送方根据整个网络的拥塞程度而设定的值,反应了网络当前的容量。

最终发送方的发送窗口是取这两个窗口大小之间的较小值。

拥塞控制的方法:慢开始,拥塞避免;快恢复、快重传

慢开始、拥塞避免:

慢开始和拥塞避免,先是指数增大拥塞窗口,然后依次增大,最后发生网络拥塞的时候,有进行一次慢开始。

快恢复、快重传:

快恢复和快重传,当发送方接收到了三个相同的ack确认号,也就是代表出现了数据丢失时,便会快速的进行重传,同时将拥塞窗口的大小设置为当前窗口大小的一半,然后逐量增大窗口大小。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值