后台开发阅读笔记——TCP/IP网络模型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mingfengshan/article/details/84099529

TCP/IP网络模型分为应用层,传输层,网间层,网络接口层。
TCP提供面向有连接的,可靠的服务。IP提供面向无连接的,不可靠的服务。
TCP通过3次握手建立连接,4次挥手取消连接,通过超市重传,滑动窗口,拥塞控制维护连接,保证服务可靠。
拥塞控制有4个核心算法:慢开始,拥塞避免,快速重传,快速恢复。

超时重传:TCP每发送一个报文段,就对这个报文段设置一个计时器,只要计时器设置的重传时间到了,但还没有收到确认,就要重传这个报文段。
影响超时重传机制协议效率的一个关键参数是RTO,即发送端发送数据后,重传数据前等待接收方收到该数据报文的ack时间。
TCP使用自适应算法以适应互联网分组传输延时的变化。这种算法的基本要点是TCP监视每个TCP连接的性能,由每个TCP的连接情况推算出合适RTO值,当连接时延性能变化时,TCP也能够自动修改RTO值。

拥塞控制:拥塞控制是一个全局性的过程,和流量控制不同,流量控制是指点对点通信量的控制。
慢开始:当主机开始发送数据时,如果立即将较大的发生窗口的全部数据字节都注入到网络中,那么由于不清楚网络的情况,有可能引起网络拥塞。比较好的办法是试探一下,即从小到大逐渐增大发生端的拥塞控制窗口数值。在刚刚开始发送报文段时可先将拥塞窗口cwnd设置为一个最大报文段的MSS值,在每收到一个队新报文段的确认后,将拥塞窗口增加至多一个MSS的数值,当rwind足够大时,为了防止拥塞窗口cwnd的增长引起网络拥塞,还需要另外一个变量,即慢开始门限ssthresh。
拥塞避免算法让拥塞窗口缓慢增长,即每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,而不是加倍。具体过程如下:(1)TCP连接初始化,将拥塞窗口设置为1。(2)执行慢开始算法,cwnd按指数规律增长,直到cwind=ssthresh时,开始执行拥塞避免算法,cwnd按线性规律增长。(3)当网络发生拥塞,把ssthresh的值更新为拥塞前ssthresh值得一半,cwnd重新设置为1,按照步骤(2)执行。
快重传:要求接收方在收到一个失序的报文段后就立即发出重复确认,而不是要等到自己发送数据时捎带确认。算法规定,发送方只要一连收到3个重复确认就应当立即重传对方尚未收到的报文段,而不必等待设置的重传计时器时间到期。
快恢复:当发送方连续收到三个重复确认时,就执行乘法减小算法,把ssthresh门限减半。但是接下去并不执行慢开始算法。考虑到如果网络出现拥塞的话就不会收到好几个重复确认,所以发送方现在认为网络可能没有出现拥塞。所以此时不执行慢开始算法,而是将cwnd设置为ssthresh的大小,然后执行拥塞避免算法。

猜你喜欢

转载自blog.csdn.net/mingfengshan/article/details/84099529
今日推荐