校招时的你还不会回答TCP怎样保证可靠传输??快看这里!

面试时,当面试官问你,TCP是如何保证可靠传输的,那我们该怎么言简意赅的回答好这个问题呢?
TCP主要有一下三个方面保证他的可靠传输性:
1、序列号、确认应答、超时重传
2、窗口控制与快速重传(重复确认应答)
3、拥塞机制

下面我们具体谈谈着三个点:

一、 序列号、确认应答、超时重传
当数据到达接收方,接收方需要发出一个确认应答,表示已经收到了该数据段,并且确认序号会说明他下一次需要接收的数据序列号。如果发送方迟迟未收到确认应答,那么可能是发送的数据丢失了,也可能是确认应答丢失了,这时发送方在等待一定事件后就会进行重传。这个时间一般是2*RTT(报文段往返时间)+一个偏差值;

二、窗口控制与快速重传(重复确认应答)
TCP会利用窗口控制来提高重传速度,意思是在一个窗口大小内,不用一定要等到应答才能发送下一段数据,窗口大小就是无需等待确认而可以继续发送数据的最大值。如果不使用窗口控制,每一个没收到确认应答的数据都要重新发送。
使用窗口控制,如果数据段1001-2000丢失,后面数据每次重传,确认应答都会不停的发送序号为1001的应答,表示我要接受1001开始的数据,发送方如果收到三次相同的应答就会立即进行重传;但还有一种情况有可能数据都受到了,但是有的应答丢失了,这种情况下不会进行重发,因为发送方知道,如果时数据段丢失,接收方是不会放过它的,会疯狂的提醒它…

三、拥塞控制
如果窗口很大,发送方连续发送大量的数据,可能会造成网络的拥堵,甚至可能造成网络瘫痪。所以TCP为了防止这种情况产生进行了拥塞控制。

慢启动:定义拥塞窗口,一开始将窗口大小设为1,之后每次收到确认应答(经过一个RRT),将拥塞窗口大小*2。
拥塞避免:设置慢启动阈值,一般开始都设置为65535;拥塞避免是指当拥塞窗口大小达到这个阈值,拥塞窗口的值不再指数上涨,而是加法增加(每次确认应答/每个rrt,拥塞窗口+1),以此来避免拥塞;

将报文的超时重传看成拥塞,则一旦发生超时重传,我们需要先将阈值设置为当前窗口大小的一半,并且将窗口大小初值设置为1,然后重新进入慢启动过程。

快速重传:在遇到3次重复确认应答(高速重发控制)时,代表收到3个报文段,但是这之前的1个段丢失了,便对它进行立即重传。
然后先将阈值设为当前窗口大小的一半,然后将拥塞窗口大小设为慢启动阈值+3的大小。

这样一来,在TCP通信中,网络吞吐量呈现逐渐的上升,并且随着拥堵来降低吞吐量,再进入慢慢上升的过程,网络不会轻易的发生瘫痪。

以上就是关于TCP在网络通信时对可靠性保证的体现!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值