专做皮鞋销售网站网络科技公司网站首页

张小明 2026/1/1 14:10:29
专做皮鞋销售网站,网络科技公司网站首页,做网站用win2008系统,网页设计与网站建设步骤上篇文章#xff1a;C/C Linux网络编程13 - 传输层TCP协议详解#xff08;面向字节流和有连接#xff09;-CSDN博客 代码仓库#xff1a;橘子真甜 (yzc-YZC) - Gitee.com 上篇文章中#xff0c;我们详细叙述了TCP的面向字节流和连接机制。TCP还有一个特性是可靠传输 目录…上篇文章C/C Linux网络编程13 - 传输层TCP协议详解面向字节流和有连接-CSDN博客代码仓库橘子真甜 (yzc-YZC) - Gitee.com上篇文章中我们详细叙述了TCP的面向字节流和连接机制。TCP还有一个特性是可靠传输目录一. TCP报头字段说明1.1 序列号和确认序列号1.2 16位窗口大小1.3 标记位和紧急指针二. 确认应答机制三. 超时重传机制四. 流量控制机制五. 滑动窗口机制六. 拥塞控制机制6.1 慢启动6.2 拥塞避免6.3 快重传和快恢复七. 总结一. TCP报头字段说明上篇文章中我们简要提到了TCP报头的格式。这里介绍一个各个字段的作用。源端口目的端口首部长检验和就不过多介绍。功能和UDP的类似可以看前两篇文章1.1 序列号和确认序列号由于TCP是面向字节流的如何保证收到的数据的先后顺序是一致的呢TCP头部的确认序列号就是用于识别某段字节流数据有没有被收到。比如32位确认序列号是 1234则表示对方将1234之前的所有数据都收到了。而32位序号是发送方发送数据使用的用于标记发送字节流的位置。总结一下就是32位序号发送方用于标记自己发送数据的位置是对方报文的确认序号。可以用于确保数据顺序去重标记字节位置32位确认信号接收方接收报文后若ack 1234 表示 1234之前的数据都接收完毕了可以用于确保数据顺序接收方便确认和重传流量控制支持滑动窗口1.2 16位窗口大小讨论一下下面的场景发送方发送数据快于接收方会导致接收方接收缓冲区写满需要额外的时间来处理缓冲区。这样就会导致双方通信的效率降低。发送方发送数据小于接收方会导致对方没有数据处理浪费时间。也会导致双方的通信收到影响。所以我们需要控制双方发送接收数据的速度而16位窗口大小就是用于控制接收数据的速度的。如果对方发送的窗口过大我就发送更多数据如果对方发送的窗口较少我就极少发送的数据。通信双方通过交换窗口大小来获取对方接收数据的能力从而调整发送数据的速度。16位窗口大小是流量控制的基础。1.3 标记位和紧急指针TCP报文是有不同类型的通过标记位来区分不同的TCP报文。SYN表示这个报文是用于握手请求的。FIN表示这个报文是用于挥手请求的。ACK表示这个报文是一个确认报文PSHpush的意思如果对方接收缓冲区满了就会发送PSH报文催促对方上层快点取走数据。当然也能用于告诉对方立即交付数据对方看到psh报文后可以立即将数据推送到上层当然也能直接忽略RST复位报文要求对方重新建立连接。比如我们的连接异常断开了重新连上后发现对方还在向我发送数据。此时就会发送RST报文告诉对方连接异常断开需要重新建立连接URG紧急报文TCP的数据报文是按顺序接收的。如果有紧急数据需要发送咋办比如需要快速判断对方的状态将URG置1就表示有紧急数据发送对方发现一个紧急报文后就使用报头的紧急指针获取数据中的紧急数据。这个数据也称为带外数据。接收方什么时候去读取这个紧急指针的数据呢应用层recv或者send的最后一个参数标志位就是用于读取发送带外数据二. 确认应答机制确认应答机制是基于序列号和确认号实现的。当接收对方是数据X之后我就需要向对方发送确认序号X1表示之前的X数据都接收到来。三. 超时重传机制超时重传机制是TCP用于处理网络丢包问题的。如果发送一个TCP数据报之后如果一段时间内没有接收到对方的响应。就会默认这个数据丢失了发送方就会重新发送一个报文。有两种情况1 发送方发送的包丢失了接收方没有收到2 接收方接收了发送方的包但是接收方返回的响应丢失了两种情况发送方都会进行重传。思考一下1 tcp怎么知道自己发送的数据有没有丢失tcp其实并不知道自己的发送数据有没有丢失只是一段时间内没有收到响应就会进行重传。即便这个报文还在网络中2 既如此对方不会收到多个相同的报文吗对方如何处理通过序列号来进行去重。这样就能保证同一个数据只会接收一次3 TCP如何维持自己发送的数据用于重传呢维持在发送缓冲区通过滑动窗口机制处理4 TCP如何确认超时重传的时间如果对应一直不应答呢由于网络传输的速度是有波动的如果重传过快会浪费时间重传过慢会导致对方迟迟接收不到数据。所以TCP以500ms2*500ms依次向对方重传如果长时间2MSL没有收到对方的回应就会关闭连接。四. 流量控制机制TCP报头就介绍了TCP通过16位窗口来进行流量控制。根据对方发送过来的窗口大小来调整发送数据的数量。从而提高双方通信的效率。通信双方在三次握手时候其实就第一次交换了互相的窗口大小后续会定时的发送窗口探测报文用于确定双方接收数据的能力从而调整发送数据的多少。当接收缓冲区的数据被上层取走之后就会更新自己的窗口大小。TCP首部后面的40字节选项中包含一个字段M实际窗口大小是窗口字段左移M位五. 滑动窗口机制TCP发送报文的时候并不是一个一个发送的而是连续发送很多报文连续处理应答。既如此TCP如何并发处理这些报文即处理确认应答超时重传流量控制观察上面的滑动窗口。已确认用于 确认应答只要接收到对方的应答snd.una指针就会向右移动已发送未确认用于 超时重传如果发现snd.una和snd.nxt中有数据迟迟没有应答就会进行重传可发送用于 流量控制我方只要数据snd.nxt就会向右移动。接收到对方发送的窗口大小后就会移动snd.wnd表示对方的窗口更大我也能发送更多数据。所以说滑动窗户是确认应答超时重传流量控制的基础。在内核中滑动窗口本质是一个环形结构肯定有人放数据有人拿数据所以不会出现越界问题越界了取模即可六. 拥塞控制机制拥塞控制是用于控制网络通信效率的机制。比如我们client发送了10000个报文丢包了10个这是正常的。假如丢掉了99990个呢明显是网络出现了问题此时就要执行拥塞控制用于保证整个网络通信的效率。6.1 慢启动慢启动是指通信前期先少量发送数据然后根据网络状态发送数据。并且以指数增长。TCP中有一个拥塞窗口cwnd。每当收到一个ack之后这个cwnd就会加1。每一次传输轮次cwnd就会翻倍。通过慢启动我们就能够尽快让网络恢复正常的通信。注意网络有一个拥塞窗口根据对方16位窗口会有一个对方接受能力的窗口。滑动窗口 min(拥塞窗口对端发送的窗口)。6.2 拥塞避免由于慢启动是指数增长的若干轮次后cwnd值会很大导致所有进程发送数据过快。从而导致网络拥塞。为了避免cwnd快速增长导致网络阻塞需要进行拥塞避免。当cwnd拥塞窗口到达我们设置的阈值ssthresh就会执行拥塞避免算法。此时每一个轮次不再是2倍增长了而是线性增长。这样就能避免拥塞窗口增加过快导致网络堵塞6.3 快重传和快恢复当接收方收到三个重复的ack之后表示这个网络已经很拥塞了对方由于超时进行重传重传了3个ack都遗留在网络中然后连续到达对方你说是不是非常堵塞。此时就需要执行快重传和快恢复。即将cwnd进行乘法减少一般是*1/2并且设置好新的阈值ssthresh然后继续执行拥塞避免。这样cwnd就会变小整个网络的发送速度就会变小让网络尽快恢复这样我们就能实现网络通信的同时保证整个网络传输的效率。七. 总结TCP通过确认应答机制保证数据被对方顺序接收不重复通过超时重传机制保证数据不会丢失通过流量控制保证双方能够以最高效率收发数据通过滑动窗口机制来支撑前三大机制通过拥塞控制来保证双方通信的同时确保整个网络通信的效率
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

新网站不被收录个人网站图片加载慢

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码获取及仿真…

张小明 2025/12/30 5:19:11 网站建设

随州网站建设网页设计构思

百度搜索不到Qwen-Image?教你从HuggingFace镜像网站快速获取 在AIGC(生成式人工智能)席卷内容创作、广告设计和数字媒体的今天,文生图模型早已不再是“能画画就行”的玩具工具。越来越多的企业与开发者开始追求高精度、可编辑、多…

张小明 2025/12/30 7:18:08 网站建设

上传软件的网站河北建设厅官网站首页

基于 YOLOv5 训练人物识别模型:从零搭建可落地的检测系统 在智能安防、人流统计和行为分析等场景中,准确识别人物是计算机视觉任务的基础能力。尽管市面上已有许多预训练模型可供调用,但在特定环境下(如特定角度、光照或遮挡较多&…

张小明 2025/12/30 7:18:05 网站建设

最牛网站建设是谁网站建设 漳州

免费开源音乐播放器LX Music Desktop:跨平台听歌的完美解决方案 【免费下载链接】lx-music-desktop 一个基于 electron 的音乐软件 项目地址: https://gitcode.com/GitHub_Trending/lx/lx-music-desktop 还在为音乐平台的会员费用烦恼吗?或者因为…

张小明 2025/12/30 7:18:03 网站建设

网站专题页面设计欣赏软文推广文章

跨境电商多站点数据采集的核心是统一接口适配不同站点规则,同时兼顾合规性、数据一致性和稳定性。以下是主流跨境平台(亚马逊、速卖通、Shopee、Lazada)多站点 API 的接入流程、核心能力及实操说明,附带 Python 对接示例。一、多站…

张小明 2025/12/30 7:18:01 网站建设

酒店网站建设的构思东莞seo建站费用

近年来,在深化国有企业改革、推动高质量发展的宏观背景下,建设一支政治过硬、专业精湛、结构合理的干部队伍,已成为国有企业提升核心竞争力的关键。制度惯性、数据壁垒以及 “人” 的复杂性,使得传统干部管理仍较多依赖主观经验与…

张小明 2025/12/30 7:17:58 网站建设