zoukankan      html  css  js  c++  java
  • 计算机网络——TCP如何保证可靠性

    前言:在整理计网这块知识点,顺便总结下TCP是如何保证可靠连接的。

     

    先重新认识下 窗口

      窗口分为滑动窗口和拥塞窗口:

      滑动窗口是接受数据端使用的窗口大小,用来告知发送端接收端的缓存大小,以此可以控制发送端发送数据的大小,从而达到流量控制的目的。

      那么对于数据的发送端就是拥塞窗口了,拥塞窗口不代表缓存,拥塞窗口指某一源端数据流在一个RTT内可以最多发送的数据包

    TCP保证可靠性连接的方法有:

    • 校验和
    • 序列号
    • 确认应答机制(seq、ack)
    • 重传机制
      • 超时重传
      • 快速重传
      • SACK
    • 流量控制:利用滑动窗口实现流量控制
    • 拥塞控制:慢启动、拥塞控制;快重传、快恢复

    一、校验和、序列号、和确认应答机制

      是在端与端在连接与传输数据过程中每次都进行安全匹配、是否有丢失数据。

    二、滑动窗口

    三、重传机制

    •  超时重传:以数据往返的时间为标准
    •  快速重传:以数据为标准
    •  SACK(Selective ACK)选择确认:在内存开辟一块新空间,缓存发送方接收的数据。并告诉发送方已经接受的数据

    四、拥塞控制

    1. 慢启动:发生窗口从小到大(从小数开始,每经过一个传输轮次,拥塞窗口就加倍。逐渐测试接受方的网络速率,最后确定拥塞窗口大小)

    2.拥塞避免:当出现超时后,折半传输伦次,同时设置拥塞窗口为1;然后重新开始线性增长。

    3.快重传:首先要求接受方不要等待值发送数据时才进行捎带确认,而是要立即发送确认。

    4.快恢复:根据接受的相同的确认号个数,恢复(例如现在接受到4个M2,那么现在应该接受到了M6)现在接受到的确认号

      

  • 相关阅读:
    周鸿祎:很多程序员聪明,但我一看就知道他不会成功
    Ubuntu/centos/redhat/SUSE sipp安装(带rtp支持,3.5.1版本)
    ffmpeg源码分析之媒体打开过程
    搜集的动植物分类、检索网站
    sipp命令 各参数含义
    最简单的一个win32程序
    vi学习笔记
    删除结点 (双向链表)
    插入结点(双向链表)
    La=LaULb (单链表)
  • 原文地址:https://www.cnblogs.com/jiox/p/14532836.html
Copyright © 2011-2022 走看看