【计算机网络-传输层】TCP可靠传输、TCP流量控制、拥塞控制

简介: 【计算机网络-传输层】TCP可靠传输、TCP流量控制、拥塞控制

1. TCP的可靠传输

可靠:保证接收方进程从缓存区读出的字节流与发送方发出的字节流是完全一样的。

比如,我客户端一个字节流发送的是,12345,那服务端收到的也是12345

1.1 校验

增加一个伪首部,通过使用二进制反码求和的方法来确定

1.2 序号(seq)

每次在传输的时候,我们的序号都是报文段的第一个字节

1.3 确认(ack)

每次在传输的时候,我们想要的报文段的第一个字节

1.4 重传

确认重传不分家,TCP的发送方在规定的时间内没有收到确认就要重传已发送的报文段。

1.4.1 超时重传

重传时间:TCP采用自适应算法,动态改变重传时间RTTs(加权平均往返时间 根据第一个报文段,根据第二个和第一个报文段 ·······)

1.4.2 快速重传(冗余ack-冗余确认)

每当比期望序号大的失序报文段到达时,发送一个冗余ack,指明下一个期待字节的序号。

发送方已发送1,2,3,4,5报文段

接收方收到1,返回给1的确认(确认号为2的第一个字节 )

接收方收到3,仍返回给1的确认(确认号为2的第一个字节)

接收方收到4,仍返回给1的确认( 确认号为2的第一个字节)

接收方收到5,仍返回给1的确认( 确认号为2的第一个字节)

发送方收到3个对于报文段1的冗余ack- >认为2报文段丢失, 重传2号报文段

2. TCP流量控制

2.1 定义

流量控制:让发送方慢点,要让接收方来得及接收。

2.2 滑动窗口

在通信过程中,接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小,即接收窗口rwnd (接收方设置确认报文段的窗口字段来将rwnd通知给发送方), 发送方的发送窗口取接收窗口rwnd和拥塞窗口(网络堵了)cwnd的最小值。

3. TCP拥塞控制

3.1 慢开始和拥塞避免

拥塞窗口慢慢的变大(从0开始,1-2-4-8-16慢慢的探查),指数规律增长,等到达慢开始的界限值(给定一个初始值)时,由慢开始到拥塞避免,转到增加一个值(16-17-18-19),发生网络拥塞,将拥塞窗口置为1,再慢慢的变大(从0开始,1-2-4-8-16慢慢的探查),指数规律增长,等到达慢开始的界限值(这里的界限值是:发生网络拥塞的值除以2),由慢开始到拥塞避免,转到增加一个值(16-17-18-19)

3.3 快重传和快恢复

当收到3个重复的冗余ack时,直接进行快重传

快重传后,执行快恢复, 快恢复不需要降到0,降到发生堵塞的一半,再执行拥塞避免


相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
27天前
|
运维 架构师 安全
二层协议透明传输:让跨域二层协议“无感穿越”多服务商网络
简介:本文详解二层协议透明传输技术,适用于企业网工、运营商及架构师,解决LLDP/LACP/BPDU跨运营商传输难题,实现端到端协议透传,提升网络韧性与运维效率。
|
6月前
|
运维 监控 安全
如何高效进行网络质量劣化分析与流量回溯分析?-AnaTraf
在数字化时代,网络质量分析与流量回溯对保障业务运行至关重要。网络拥塞、丢包等问题可能导致业务中断、安全隐患及成本上升。传统工具常缺乏细粒度数据,难以溯源问题。流量回溯分析可还原现场,助力精准排障。AnaTraf网络流量分析仪作为专业工具,能高效定位问题,提升团队响应力,降低运营风险。
如何高效进行网络质量劣化分析与流量回溯分析?-AnaTraf
|
5月前
|
人工智能 运维 算法
AI加持下的网络流量管理:智能调度还是流量黑洞?
AI加持下的网络流量管理:智能调度还是流量黑洞?
168 8
|
9月前
|
运维 监控 网络协议
面对全球化的泼天流量,出海企业观测多地域网络质量
网络监控与分析在保证网络可靠性、优化用户体验和提升运营效率方面发挥着不可或缺的作用,对于出海企业应对复杂的网络环境和满足用户需求具有重要意义,为出海企业顺利承接泼天流量保驾护航。
390 226
|
5月前
|
存储 监控 网络协议
了解流量探针,助你更好地优化网络
流量探针是现代网络运维中不可或缺的工具,用于实时监测网络数据包,提供一手数据。它通过镜像方式采集、过滤、分析流量,支持从二层到七层协议解码,助力网络瓶颈排查、业务性能优化及安全威胁检测。合理部署流量探针可实现精细化网络管理,提升性能与安全性。
|
7月前
|
网络协议 物联网
VB6网络通信软件上位机开发,TCP网络通信,读写数据并处理,完整源码下载
本文介绍使用VB6开发网络通信上位机客户端程序,涵盖Winsock控件的引入与使用,包括连接服务端、发送数据(如通过`Winsock1.SendData`方法)及接收数据(利用`Winsock1_DataArrival`事件)。代码实现TCP网络通信,可读写并处理16进制数据,适用于自动化和工业控制领域。提供完整源码下载,适合学习VB6网络程序开发。 下载链接:[完整源码](http://xzios.cn:86/WJGL/DownLoadDetial?Id=20)
247 12
|
8月前
|
网络协议 测试技术 Linux
Golang 实现轻量、快速的基于 Reactor 模式的非阻塞 TCP 网络库
gev 是一个基于 epoll 和 kqueue 实现的高性能事件循环库,适用于 Linux 和 macOS(Windows 暂不支持)。它支持多核多线程、动态扩容的 Ring Buffer 读写缓冲区、异步读写和 SO_REUSEPORT 端口重用。gev 使用少量 goroutine,监听连接并处理读写事件。性能测试显示其在不同配置下表现优异。安装命令:`go get -u github.com/Allenxuxu/gev`。
146 0
|
10月前
|
网络协议
TCP报文格式全解析:网络小白变高手的必读指南
本文深入解析TCP报文格式,涵盖源端口、目的端口、序号、确认序号、首部长度、标志字段、窗口大小、检验和、紧急指针及选项字段。每个字段的作用和意义详尽说明,帮助理解TCP协议如何确保可靠的数据传输,是互联网通信的基石。通过学习这些内容,读者可以更好地掌握TCP的工作原理及其在网络中的应用。
|
11月前
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
260 11
|
11月前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密

热门文章

最新文章