tcp发送方的发送速度由接收方给出的接收窗口决定_TCP如何保证可靠性?

1c47f0f1e50882e5b5cb19ce9c09d514.png

TCP协议传输的特点主要就是面向字节流、传输可靠、面向连接。本篇文章,我们就重点讨论一下TCP协议如何确保传输的可靠性的。

TCP协议保证数据传输可靠性的方式主要有:

1. 校验和

2. 序列号

3. 确认应答

4. 超时重传

5. 连接管理

6. 流量控制

7. 拥塞控制

二、确认应答与序列号

序列号:TCP传输时将每个字节的数据都进行了编号,这就是序列号。

确认应答:TCP传输的过程中,每次接收方收到数据后,都会对传输方进行确认应答。也就是发送ACK报文。这个ACK报文当中带有对应的确认序列号,告诉发送方,接收到了哪些数据,下一次的数据从哪里发。

序列号的作用不仅仅是应答的作用,有了序列号能够将接收到的数据根据序列号排序,并且去掉重复序列号的数据。这也是TCP传输可靠性的保证之一。

三、 超时重传

在进行TCP传输时,由于确认应答与序列号机制,也就是说发送方发送一部分数据后,都会等待接收方发送的ACK报文,并解析ACK报文,判断数据是否传输成功。如果发送方发送完数据后&#x

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TCP连接是一种可靠的、面向连接的通信协议,用于在发送接收之间进行数据传输。它使用三次握手和四次挥手过程来建立和终止连接。 在建立TCP连接时,首先发送接收发送一个带有SYN标志的数据包。接收接收到该数据包后,会向发送发送一个带有SYN/ACK标志的应答数据包。最后,发送再向接收发送一个带有ACK标志的应答数据包。这样就完成了三次握手,连接建立成功。 建立连接后,发送可以向接收发送数据。发送将数据切割成多个小的数据块,并为每个数据块添加TCP首部信息。发送还会为每个数据块计算校验和,以确保数据在传输过程中的完整性。 接收收到数据后,会对数据进行校验和的验证,并对数据进行重组。如果接收发现数据出现丢失或损坏,它会向发送发送一个带有负确认的数据包,要求重新发送该数据块。 在传输过程中,发送会通过确定接收窗口大小来控制发送数据的速率,以确保接收能够及时处理数据。而接收则会通过确认号来告知发送已经接收到哪些数据。 当发送不再有数据发送时,或者数据传输完成后,发送会向接收发送一个带有FIN标志的数据包,表示关闭连接的意图。接收收到FIN后,会向发送发送一个带有ACK标志的应答数据包,表示接受关闭连接的请求。最后,发送接收发送一个带有FIN标志的应答数据包,接收收到后,就知道可以关闭连接了。 总之,TCP连接通过三次握手建立连接,通过数据的切割、添加首部信息和校验和保证数据传输的可靠性,通过窗口控制和确认号实现流量控制,最后通过四次挥手正常终止连接。通过这些机制,发送接收可以进行有效的数据传输。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值