Home
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 设计模式
  • JavaSE
  • JVM
  • JUC
  • Netty
  • CPP
  • QT
  • UE
  • Go
  • Gin
  • Gorm
  • HTML
  • CSS
  • JavaScript
  • vue2
  • TypeScript
  • vue3
  • react
  • Spring
  • SpringMVC
  • Mybatis
  • SpringBoot
  • SpringSecurity
  • SpringCloud
  • Mysql
  • Redis
  • 消息中间件
  • RPC
  • 分布式锁
  • 分布式事务
  • 个人博客
  • 弹幕视频平台
  • API网关
  • 售票系统
  • 消息推送平台
  • SaaS短链接系统
  • Linux
  • Docker
  • Git
GitHub (opens new window)
Home
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 设计模式
  • JavaSE
  • JVM
  • JUC
  • Netty
  • CPP
  • QT
  • UE
  • Go
  • Gin
  • Gorm
  • HTML
  • CSS
  • JavaScript
  • vue2
  • TypeScript
  • vue3
  • react
  • Spring
  • SpringMVC
  • Mybatis
  • SpringBoot
  • SpringSecurity
  • SpringCloud
  • Mysql
  • Redis
  • 消息中间件
  • RPC
  • 分布式锁
  • 分布式事务
  • 个人博客
  • 弹幕视频平台
  • API网关
  • 售票系统
  • 消息推送平台
  • SaaS短链接系统
  • Linux
  • Docker
  • Git
GitHub (opens new window)
  • HTTP

  • TCP

    • 网络模型模型
    • TCP三次握手&四次挥手
    • 重传机制
      • 超时重传
      • 快速重传
      • SACK
    • 流量控制
    • 拥塞控制
    • TCP与UDP区别
    • TCP和UDP可以使用同一个端口吗?
    • 如何解决粘包?
    • 一个服务端进程最多支持多少条TCP连接?
  • UDP

  • IP

  • 网络安全

  • 计算机网络
  • TCP
Nreal
2024-03-03
目录

重传机制

# 超时重传

触发条件:

数据包丢失;确认应答号丢失;

超时重传时间应该略大于RTT;

重发数据再超时,就超时时间间隔加倍;

# 快速重传

不以时间为驱动,以数据驱动;

连续收到3个相同的ack确认号,表示有数据需要重传,比如seq2丢失,345都发送成功,只会返回ack2,这就触发重传机制;

弊端:

如果23都丢失了,456发送成功都回复ack2,是重传一个还是所有;

重传一个2,重传3的话还需要再连续收到三个相同ack才重传;

重传所有,重复的456多余重传;

# SACK

TCP头部加入SACK,将收到的数据信息发送给发送方,就可以知道需要重传哪些丢失的数据;

TCP三次握手&四次挥手
流量控制

← TCP三次握手&四次挥手 流量控制→

Theme by Vdoing | Copyright © 2021-2024
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式