计算机网络----TCP如何实现可靠传输(超时重传、滑动窗口、流量控制、拥塞避免)

  • 停止等待协议
  • 窗口技术(连续的ARQ协议)
  • 累计确认

以字节为单位的滑动窗口技术

如何滑动

image

  • 接收端发送确认号为7
  • 发送端没收到确认不能删
  • 发送端收到确认,窗口后移,发送端删除- 副本
  • 接收端窗口后移,应用程序读取数据(临时文件)

如何保证可靠

重传

  • 当丢失中间一段时,
    接收端发送确认号+选择性确认,SACK:哪一段缺失,发送的只发丢失的

  • 发送端根据确认号窗口后移

超时重传

超时重传时间应略大于加权平均往返时间RTTs(变化)

a大修正快,变动幅度大,就大一点

流量控制

解决通信两端处理速度不一致的问题

通过调整窗口的大小来控制

A定时发送窗口测定数据包,避免B丢包造成一直等待

建立会话

  • 接收计算机B根据缓存设定接收窗口
  • 向A发数据包,确认号ack=0,rwnd=10……
  • A计算机设定发送窗口

通信

  • A连续的ARQ协议
  • B接收窗口还没满就可以发送确认号

网络拥塞

慢开始和拥塞避免算法:(有的版本已经不用了)

拥塞控制虽然不能达到理想状态,但也能避免网络死锁

  • 从1开始

  • 慢开始门限:16,超过就加1

  • 发生拥塞时

  • 计算慢开始门限为拥塞的1/2,

  • 之后又从1开始

控制窗口线性增长而不是指数性,使网络不容易出现拥塞

快重传

采用累计确认

丢包后,立刻确认,不等累计数到
让发送方尽早知道丢包

并且可以让对方判断是否时由于拥塞而丢包的,从而不启动慢开始,而使用快恢复

快恢复:

计算慢开始门限为拥塞的1/2,

  • 之后从新的门限值开始

发送窗口:最多多少数据包等待确认一次(发送数据的速率)
发送窗口上限发送端拥塞窗口、接收端的接收窗口的较小值决定

传输连接管理

建立连接
数据传送
连接释放

发布了53 篇原创文章 · 获赞 4 · 访问量 1317

猜你喜欢

转载自blog.csdn.net/weixin_43351473/article/details/105440072