请你说一下TCP怎么保证可靠性

TCP保证可靠性

1.序列号,确认应答,超时重传
数据到达接收方,接收方会发送一个重传。表示已经收到该数据段。并且确认序号会说明它下一次期望接收的数据序号。如果发送方迟迟没有收到应答,那么可能是发送的数据丢失,或者是应答丢失,这时候,发送方在等待一段时间之后会进行数据的重传。这个时间一般是一段报文的往返时间。

2.窗口控制和高速重传
TCP会利用窗口控制来提高传输速度,意思是在一个串口大小内,不需要等到对方的应答才继续发送数据,串口就是无需等待而可以继续发送数据的最大值。如果没有窗口控制,那么每一个没收到确认应答的数据都要重发。

如果中间有一段1001-2000的数据段丢失了,那么后面每次接收数据,确认应答都会发送确认的序号为1001的应答,发送端如果三次都收到了这个应答,那么会立即重发

3.拥塞控制
如果把窗口设置的很大,发送端可能会发送大量的数据,导致网络拥塞。造成网络瘫痪。

慢开始,拥塞避免:定义拥塞窗口,一开始为1,每次收到确认应答,将窗口值*2. 设置慢开始阈值,如果当拥塞窗口的大小达到这个阈值,拥塞窗口不在以指数形式上升,而是以加法上升。
当每次发生了拥塞,我们就先把阈值设为当前值的一般,然后再将窗口值设为1

快重传,快恢复:当收到3次的重复确认应答时,代表收到了3个报文段,但是之前的一个报文段丢失了,便进行重传。然后将阈值设为当前窗口的一半。窗口大小从阈值开始线性增大。

UDP如何保证可靠性:

传输层无法保证可靠传输,那么只有在应用层来实现 确认机制,重传机制,串口

猜你喜欢

转载自blog.csdn.net/aaaqqq1234/article/details/108294476