当前位置: 首页 > news >正文

八股训练营第 7 天 | TCP连接如何确保可靠性?拥塞控制是怎么实现的?TCP流量控制是怎么实现的?UDP怎么实现可靠传输?

TCP连接如何确保可靠性

通过差错控制、超时重传、拥塞控制、流量控制等。

  • 序列号:TCP 报文头部有序列号字段,保证报文的顺序性。
  • 差错校验:TCP 通过校验和来检验数据包传输时有没有发生错误,如果发生,会丢弃该数据包,并要求发送方重传。
  • ACK 确认:接收方收到报文后会发送 ACK 确认给发送方。如果发送方没有收到,则会重传。
  • 超时重传:发送方发送报文后会启动一个计时器。如果计时器介绍后未收到接收方确认,则重传。
  • 拥塞控制:发送方会根据网络状况动态调节发送窗口,以避免发生网络拥塞。
  • 流量控制:发送方会根据接收方接收窗口大小调节发送窗口大小,避免发送太多接收方接收不过来的情况。

既然提到了拥塞控制,那你能说说说拥塞控制是怎么实现的嘛

拥塞控制就是根据网络状况,动态调节发送方的数据发送速率,以避免出现网络过载。

主要包括

  1. 慢启动:一开始发送方的发送窗口为 1,然后再收到接收方的 ACK 确认后,按 2、4、8 的指数速度增长。一开始设置较低的速率有助于在网络连接初期避免发送网络拥塞。

  2. 拥塞避免:当发送窗口大小达到慢启动门限阈值时,采用拥塞避免策略。此时发送窗口大小不再按照指数增长,而是线性增长。

    当发生网络拥塞时,发送窗口大小降为 1,慢启动门限阈值降为当前拥塞窗口的一半。之后再进行慢启动。

  3. 快重传:当收到连续多个接收方的对同一消息的确认后,发送方立即重传该报文,无需等待重传计时器超时。这有助于快速从网络拥塞中恢复。

  4. 快恢复:当快重传后,发送窗口无需降为 1,发送窗口和慢启动门限都只需降低到发生拥塞时拥塞窗口的一半。之后执行拥塞避免算法。

TCP流量控制是怎么实现的

流量控制就是让发送方发送速率不要太快,避免出现接收方来不及接收的情况。是通过滑动窗口机制实现的。

  • 接收方 ACK 确认的报文中,会有窗口字段的数据,以告诉发送方自己接收窗口的大小。
  • 发送方会将自己的发送窗口大小设置为接收窗口的大小。
  • 接收方如果缓冲区可用空间不多,就将接收窗口的大小设小些,以避免发送方发送速率过快导致缓冲区溢出。
  • 当接收方告知接收窗口为 0 后,发送方会在等待一段时间后发送 0 报文探测器,以检查接收方有没有增大接受窗口大小。从而避免死锁。

UDP怎么实现可靠传输

UDP 实现可靠传输不能在传输层实现,只能在应用层实现。

可仿照 TCP 的实现方式,增加超时重传机制和报文的序列号。

  1. 在 UDP 报文增加一个首部,记录报文的序列号和时间戳,时间戳用于计算 RTT 从而计算出 RTO。发送报文后,采用停-等机制等待接收方的确认。若在 1 RTO 时间未等到,则超时重传,同时将 RTO * 2。
  2. 接收方收到报文后,从首部提取出序列号和时间戳。放入对已收到报文的确认序列号发送给发送方。然后对收到的报文的序列号进行排序,去除重复的报文。

RTT(Round Trip Time) 和 RTO(Retransmission Time Out) 是 TCP 协议中两个重要的概念。
RTT 是指一个数据包从发送端发送到接收端并返回发送端的总时间,而 RTO 是指在发送数据包后等待确认的超时时间。

http://www.dtcms.com/a/573248.html

相关文章:

  • 清除BSS段(ZI段)
  • 数据库安全配置指导
  • 江苏南京建设局官方网站wordpress开发门户网站
  • 科学休息,我用AI写了个vscode养鱼插件:DevFish发布
  • Spring Boot 项目 GitLab CI/CD 自动构建并推送到 Harbor 教程
  • 彻底理解传统卷积,深度可分离卷积
  • 使用VSCode进行SSH远程连接时无法与xxx建立连接
  • 宁波建设工程报名网站陕西省住房与建设厅网站
  • Rust 练习册 6:生命周期与闭包
  • 公司网站开发的流程高端企业网站公司
  • 第二届中欧科学家论坛暨第七届人工智能与先进制造国际会议(AIAM 2025)在德国海德堡成功举办
  • 微硕WSF3085 MOSFET,汽车电动尾门升降强效驱动
  • 5 Prompt Engineering 高阶技巧:构建智能对话系统的核心技术
  • 汽车系统可靠性与技术融合:智能动力总成及机电一体化诊断
  • 网站建设对企业的重要性线上营销的优势和劣势
  • JavaScript 正则表达式全方位解析:从基础到实战
  • 工业相机成像核心参数解析,帧率与曝光时间的权衡关系
  • Kodiak Perps:Berachain 原生永续合约平台上线
  • 分布式版本控制系统Git的安装和使用
  • 用.echarts文件快速实现日历饼图
  • 影刀RPA一键生成竞品分析!AI智能监控,效率提升100倍[特殊字符]
  • 从卡顿到秒查:Java 项目引入 Elasticsearch 实现亿级地址数据的复杂查询实战
  • 国外可以做推广的网站有哪些广州品牌形象设计
  • 【MySQL】SQL语法详细总结
  • 宿迁华夏建设集团网站下列什么软件不能用于设计网页
  • vue笔记(第一天)
  • cursor和传统idea的区别是什么?
  • SSM--MyBatis框架SQL映射文件获取一对一或者一对多关系值
  • 网站开发实验报告总结阿里云是不是做网站的
  • 1000元级投影选哪款?大眼橙C3D实测体验闭眼入