计算机网络复习--TCP可靠传输、流量控制、拥塞控制原理

1、TCP可靠传输:TCP是可靠的传输层协议,主要用过序号确认机制和超时重传机制来实现可靠传输。

(1)、序号确认机制:TCP将要传送的整个应用层报文看成一个个字节组成的数据流,然后对每个字节进行编号,
所以对于同一个应用层报文,每一个字节都一个唯一的序号,这个序号代表着这个字节在这个报文中是第几个字节数据。
在连接建立时,TCP将每一次所传送的报文段中的第一个数据字节的序号,放在TCP首部的序号字段中。

	 TCP的确认是对接收到的数据的最高序号表示确认,所以返回的确认序号是最高序号加1(因为确认序号
期望下次收到的数据的第一个字节的序号),因此确认具有累积效果。
	
	 由于TCP能提供全双工通信,因此通信双方不必专门发送确认报文,可以在传输数据报文是将确认信息捎带传送。

(2)、超时重传机制:超时重传机制最关键因素是重传定时器的定时设置,但是确定合适的往返时延RTT是很困难的事情。 
所以 针对不同 的网络以及不同的情况计算往返时延,TCP采用了一种自适应算法。算法思想如下:记录每一个报文发出时间
以及确认报文收到的时间,计算出的两个时间差就是报文往返时延。  将各个报文往返时延加权平均,就得到平均往返时延。
每次发送了一个报文就记录其往返时延,然后重新计算平均往返时延。 这个算法存在一个问题:无法判断,收到的确认报文
是对之前发的报文的确认还是对重发的报文的确认,因此,Karn 对上述算法提出修改, 若这个报文被重发了那么不再计算其
往返时延。这样做提高了往返时延的准确性。

(3)、定时器:TCP中有三种定时器,重传定时器(在超过计算出的重传时间没接收到确认报文,则重新发送报文),
持续定时器(这个定时器是为了测试,接收方接收窗口是否更新(窗口更新是相对窗口为0而言),保活定时器,
这个定时器的作用是为了测试通信的另一发是否存活,若不存活吗,则断开连接。

2、TCP流量控制

	流量控制的思想很简单,在TCP报文首部会有一个字段记录发送信息一方最大能接收的字节数,TCP通过这个字段来控制发送
的字节数,从而达到控制流量的效果,由于这个字段大小可以根据实际情况进行改变,所以这种方法也被称为滑动窗口。

3、TCP拥塞控制

	拥塞控制的基本功能是避免网络发生拥塞,或者缓解已经发生的拥塞。TCP/IP 拥塞控制机制主要集中在传输层实现。
TCP为了有效的进行拥塞控制,需要通过拥塞窗口来衡量网络的拥塞程度。需要注意的是发送的数据量是拥塞窗口和接收
窗口的较小值,当TCP连接刚刚建立时,将拥塞窗口cwnd设置为一个报文段大小,并且当cwnd <= ssthresh 时,指数方式增大cwnd(即每经过一次传输,cwnd 加倍)。
	(2)、拥塞避免:当cwnd >=  ssthresh 时,为了避免网络阻塞,采用拥塞避免算法,按线性方式增大cwnd ,即每经过一次
传输,cwnd 只增大一个报文段大小。
	(3)、快速重传:如果发送方连续收到三个重复确认的ACK(在传输过程中会出现out-of-order的现象,但是在滑动窗口中
会严格的顺序控制,假设有4,5,6三个待接收的数据包,先收到了5,6,协议栈是不会回复对5,6包的确认,而是根据TCP协议的
规定,当接收方收到乱序片段时,需要重复发送ACK, 在这个地方会发送报文4 seq的ACK,表明需要报文4没有被接收到,
如果此后收到的是报文7,那么仍然要回报文4 seq的ACK,如果连续发送3个 dup ACK,接收端认为这个片段已经丢失,进行快速重传。),也就是说如果收到连续的相同的包ACK包则表示,这个包的,接收方并没有收到,故需要重传,而不必等到重传定时器超时之后再重传。
	(4)、快速恢复:快速恢复算法是指当采用快速重传算法时,直接执行拥塞避免算法,这样可以提高传输效率。

猜你喜欢

转载自blog.csdn.net/weixin_43352448/article/details/85862639