TCP为什么可靠

网络安全概论——TCP/IP协议族的安全性 此后,服务器返回自己的序号,并等待确认。ICMP用来处理传输错误,当某个网关发现传输错误,立刻向信源主机发送ICMP报文,报告出错信息。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。对服务器发动攻击,攻击者使用第一个数据包对服务器进行大流量冲击,使服务器一直处于半开放连接状态,导致服务器无法完成三步握手协议。128bit,与IPV4不同,IPV6头部没有校验和字段,并且去掉了所有与分段相关的字段。服务器:我能听到你,客户端,你能听到我吗?客户端:我能听到你,我跟你讲…… 阅读详情

TCP为什么安全可靠

1、序列号与确认号

当发送错误的时候,会发生:

a、超时重传机制

发送方发送的报文中含有序列号,每当发送一个报文后,就启动一个计时器(RTO),该计时器的时间一般是有当前网络来决定的,一个RTT指的是当一个报文从发送到接收到对应的ACK标志的时间,RTO的决定一般是发送方尝试发送几个报文,然后取平均RTT时间来决定计时器的值。 当发送一个报文以后,发送方在计时范围以内,如果没有接收到相应的ACK确认报文,那么发送方就会重传该报文。

b、快速重传机制

该机制指的是,发送方一直发送报文,不会每发一次报文就都要等待到这个报文的ACK标志才发送下个报文。 当接收方发送接受的序列号不对的时候,发送连续的3个ACK标志,告诉发送方,这个报文在传输过程中出现了丢包。发送方如果接收到某个相同序列号的三个ACK报文,那么此时立马重发该报文,不用等待计时器的时间结束。

2、流量控制(滑动窗口)

发送方通过维持一个发送滑动窗口来确保不会发生由于发送方报文发送太快接收方无法及时处理的问题。此时发送方的报文分为四类, 第一类是已经发送并且得到接收方确认的报文,第二类是已经发送但是没有接收到确认的报文,第三类是发送方还没发送,但是滑动窗口还足够巨大,允许被发送的报文, 第四类是还没发送并且窗口已经被占满,不允许发送的报文。 一般来说,滑动窗口的最左端都是介于第一类跟第二类报文的分界线,最右端是第三类跟第四类报文的分界线。

滑动窗口的流量控制可以包括那么几个协议:

a、停等协议。 滑动窗口的大小为1, 每个发送报文都要等到被确认以后,发送方才继续发送下一个报文。

b、后退n步协议。 该协议下,滑动窗口大于1,发送方可以一直发送报文,但是当接收到接收方发送的三个连续的同一序列号的ACK报文时,说明该序列号的报文是已经丢失的,那么此时重发该丢失报文以及该报文以后的报文(包括那些已经发送的)。

c、选择重传。在后退n步协议当中,如果某个报文丢失。那么将要重新发送这个丢失报文及以后的所有报文(包括已经发送的),选择重传协议不用做此要求,只要重新发送丢失的报文即可。

.....................(其实还有几种协议,我这里就不继续说了)

3、拥塞控制

首先要明白拥塞控制与流量控制有什么不同,流量控制考虑的是单纯的发送方与接收方,这两个在全部网络过程中的两个端点。而拥塞控制考虑的是整个网络。可以想象一下,在流量控制当中,接收方跟发送方考虑的只是自己的报文有没有发送并且被接收的问题,假设现在网络阻塞,在超时重传机制当中,发送方没有发送后在计时器时间内没有接收到确认报文,就立马重新发送报文,这时候对已经拥塞的网络来说,无异于雪上加霜。同样实在拥塞的网络情况下,考虑下快速重传机制,同样是这个道理。所以,针对以上问题,TCP应该要有一个拥塞控制机制,不然,后果不堪设想。

在拥塞控制机制当中,发送方会维护一个滑动发送窗口,该窗口与拥塞控制窗口一般是一样大的,除非受到物理限制,假设网络的承载量是无线的,那么拥塞窗口理论上就可以无线增大,但受现在电脑技术限制,我们可能无法将发送窗口与拥塞窗口变得一样大。

下面说明下几个符号说明:

cwnd:拥塞窗口大小

ssthreshold: 拥塞阈值 (该阈值是对网络状况的一个预估,决定在拥塞窗口多大的时候采取怎样的策略,它的初始化一般是一个估计,一般都会给出)

现在可以看下这个拥塞控制机制包括哪几个策略

a、慢启动

此时一般是(记住是一般情况)cwnd<ssthreshold,此时cwnd呈指数形式增长,1、2、4、8、16、32...这种增长趋势

b、拥塞避免

此时一般cwnd>ssthreshold,此时cwnd呈线性增长,32、33、34、35...这种增长趋势

c、拥塞解决

此时一般是遇到了网络拥塞的状况,解决方法是拥塞阈值乘性减即ssthreshold=cwnd/2,cwnd=1,或者ssthreshold=cwnd/2,cwnd=ssthreshold,这两种情况在后面说明

d、快速恢复

一般是启用拥塞结局策略之后,根据不同的情况,进入慢启动或者拥塞避免阶段。

下面我们模拟一下发送方发送报文:假设ssthreshold=8

首先肯定是慢启动阶段,cwnd增长,1、2、4、8,到8的时候,cwnd达到了ssthreshold的值,于是进入拥塞避免阶段,cwnd继续增长8、9、10,假设到10的时候,发生了网络拥塞,这时候拥塞分为两种情况:

第一种,发送方接收到同一序列号的报文的连续三个ACK确认报文,说明出现了丢包,但是接收到接收方发送的丢包信号,说明网络情况还是相对较好的,于是此时发送方做出反应,将ssthreshold=cwnd/2=5,cwnd=ssthreshold=5,然后进入拥塞避免阶段,cwnd继续以5、6、7....这种情况增长。

第二种,发送方接收到同一序列号的报文连续两个ACK确认报文,这时候,就说明网络拥塞情况就比较严重了,连接收方发送的丢包信号都不完整了,这个时候得采取更加严厉的措施了,于是ssthreshold=cwnd/2,cwnd=1,然后重新进入慢启动过程。

这些说的比较简单,只是大概的把过程说明了,有错的话欢迎评论纠正!!!

信号削峰CFR基础知识介绍(一) 接下来,将得到的峰值分成若干段,在每一段中,仅保留该段内所有峰值中幅度最大的峰值。为了减少不必要的带外泄露,削峰后的信号将通过一个低通滤波器,以减少对应于削峰后信号中尖锐拐角的高频信号。首先,它识别出高于由目标PAPR确定的阈值的峰值。在峰值加窗算法中,削峰是通过在峰值区域将原始信号与一个加窗函数相乘来实现的,如下图所示。其中,w(n) 是一种常见的加窗函数,如凯撒窗、高斯窗和汉明窗等,而 p(n) 是一个加权系数。如上图所示,削峰会导致削峰后的信号出现尖锐的拐角,从而引发不必要的带外辐射(ACP增加)。 阅读详情

相关推荐

【HAL库-STM】智能温控按键小风扇【胎教级教学】

硬件设备:DHT11,0.96寸oled屏,二/三/四线风扇(不挑),面包板 、f10的精英板等等。当人在的风扇面前时可以自行控制风扇,不在面前时又想开风扇就让他温控自行开启,(在这里有一个想法就是加上蓝牙和wifi控制的功能能够远程遥控,这个如果做的再全一点就要自主研发是一个多功能app,这里没有做。针对这个dht11,我一开始是卡在了这个check函数里面,一直是我给完dht11低电平和高电平后,dht11不回复我低电平和高电平,这个不是我的问题,当时代码是没毛病的,这个点一直卡着我。吐血五天实现小成品

weixin_52451652的博客 1738

为什么说 TCP 协议是可靠的?

TCP 协议是 TCP/IP 协议栈中的传输层的协议,TCP协议又叫传输控制协议(Transport Control Protocal)。众所周知,它是一个可靠协议。因为它能保证接收端完整地接受到发送端发送的数据包,即保证不丢包。

骏马逸动,心随你动的博客 6118

LabVIEW与三菱PLC通讯实战:ActiveX控件在FX5U上的应用技巧

本文深入探讨了如何利用三菱MX Component中的ActiveX控件,在LabVIEW中实现与FX5U系列PLC的高效、稳定通讯。文章从环境配置、ActiveX控件生命周期管理、数据读写性能优化及容错机制等实战角度,分享了构建工业级健壮通讯程序的核心技巧与架构设计思路。

qsc9012345的博客 889

网络基础:TCP协议-如何保证传输可靠性

TCP协议传输的特点主要就是面向字节流、传输可靠、面向连接。这篇博客,我们就重点讨论一下TCP协议如何确保传输的可靠性的。 确保传输可靠性的方式 TCP协议保证数据传输可靠性的方式主要有: 校验和 序列号 确认应答 超时重传 连接管理 流量控制 拥塞控制 校验和 在数据传输的过程中,将每个发送的数据...

Chenxi13 8万+

离线安装 nvidia-docker2(nvidia-container-toolkit)

很多时候大家都有用docker使用gpu的需求,但是因为网络等原因不是那么好用,这里留了一个给ubuntu的安装包,网络好的话也提供了在线安装方式。

father_yingying的博客 1181

北斗导航 | SPP、RTK、RTD、PPP-RTK、PPP算法原理,公式及完整matlab代码

开发参考:SPP适合入门学习GNSS定位原理和最小二乘。RTK是工程高精度定位主流方案,但依赖基站。PPP适合无基站区域的广域高精度应用。PPP-RTK是融合两者优点的新一代技术,但系统复杂度最高。· 代码资源:raPPPid(VieVS PPP)是功能完整的MATLAB开源PPP工具箱,支持多系统PPP-AR。MATLAB GPS Toolbox 提供从SPP到PPP的完整功能实现。· 实际应用:农业自动驾驶、无人机航测通常使用网络RTK;大地测量、地壳形变监测常采用PPP事后处理;

尘世冰封的专栏 822

【面试点】TCP为什么是安全可靠的传输协议

一 面试问题 1.1 TCP为什么是安全可靠的传输协议 👨‍💻面试官:TCP为什么是安全的 🙋我:因为TCP在 数据传输之前会有三次握手来进行连接 在数据传输时候,有确认、滑动窗口、超时重传、拥塞控制之类机制 数据传输之后会进行四次挥手断开连接来节约系统资源。 具体: 应用数据被分割成TCP认为最适合发送的数据块 TCP 给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层。 校验和: TCP 将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化

Ricardo的树屋 5539

如何使用 Claude Code 搜索 SAP note

当然,Claude Code 自己仍然要有一种合法可用的模型访问方式,例如 Claude 订阅、Anthropic API 或公司配置的模型提供方式,这和 Browser Extension 是两个问题。因为 Claude Code 已经是完整的 MCP Host,而 Microsoft Playwright MCP 又已经明确支持现有 Chrome Session,两者拼起来在技术架构上完全成立。Microsoft Playwright MCP 默认可以创建持久化浏览器 Profile。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 62

TCP为什么是可靠的(怎么保证有效传输的)?

可靠传输就是通过TCP连接传送的数据是没有差错、不会丢失、不重复并且按序到达的。TCP是通过序列号、检验和、确认应答信号、重发机制、连接管理、窗口控制、流量控制、拥塞控制一起保证TCP传输的可靠性的。检验和:在数据传输过程中,吧传输的数据当作一个16位整数。吧所有的数据加起来,最前面的进位补到最后一位,然后取反得到校验和。发送方和接收方验证校验和是否相同。不相同则数据传输有误,相同也可能有问题。

流楚丶格念的博客 5008

OpenClaw(Clawdbot/Moltbot)如何正确的配置浏览器,实现对浏览器的自动化操作功能(浏览器状态为running:false怎么办)

OpenClaw(Clawdbot/Moltbot)浏览器自动化功能无效?🤖 本文详细介绍如何解决这个问题🔧,让你的OpenClaw(Clawdbot/Moltbot)真正具备"睁眼看世界"的能力,支持网页搜索、点击操作和截图等功能 ✅

XiaoqiangClub的博客 8107

Winform从入门到精通(21)——ProgressBar(史上最全)

本介绍ProgressBar控件的详细用法,包含所有属性、事件,绝对史上最全!

qq_34059233的博客 3350

为什么TCP是可靠的

为什么TCP是可靠的 保证TCP可靠的方式主要有: 校验和 序列号 确认应答 超时重传 连接管理 流量控制 拥塞控制 一、校验和 计算方式:在数据传输的过程中,将发送的数据段都当做一个16位的整数。将这些整数加起来。并且前面的进位不能丢弃,补在后面,最后取反,得到校验和。 发送方:在发送数据之前计算检验和,并进行校验和的填充。 接收方:收到数据后,对数据以同样的方式进行计算,求出校验和,与发送方的进行比对。 注意:如果接收方比对校验和与发送方不一致,那么数据一定传输有误。但是如果接收方比对校验和与发送

H_Q_Li的博客 3399

基于Simulink的电机功率因数校正仿真

PF=SP​=视在功率有功功率​=cosϕ⋅Irms​I1​​(非正弦时)位移因数(cosϕ):基波电压电流相位差畸变因数(I1​/Irms​):谐波导致电流有效值增大本文带你完成了电机系统功率因数校正的Simulink仿真,实现了:✅ 理解了低功率因数的成因与危害✅ 搭建了无PFC、无源PFC、有源PFC三种对比模型✅ 掌握了Vienna整流器建模与dq解耦控制方法✅ 实现了PF与THD的自动计算与评估✅ 验证了有源PFC在PF、THD、稳定性上的全面优势。

amy_mhd的博客 154

TCP为什么是可靠的

TCP的定义:是一种面向连接的、可靠的、基于字节流的传输层通信协议那么肯定会有人疑惑,为什么他是可靠的呢?(也是在面试的过程中经常被问得)TCP是怎样实现的呢?TCP在传输的时候会有三次握手、以及四次挥手来建立连接和断开连接在数据传输时候,提供了检验和、序列号/确认应答、超时重传、最大消息长度、滑动窗口、拥塞控制等方法。

Rice_w的博客 1059

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

TCP为什么是可靠的传输

TCP为什么是可靠的传输 (1)检验和 TCP检验和的计算与UDP一样,在计算时要加上12byte的伪首部,检验范围包括TCP首部及数据部分,但是UDP的检验和字段为可选的,而TCP中是必须有的。 计算方法为: 在发送方将整个报文段分为多个16位的段,然后将所有段进行反码相加,将结果存放在检验和字段中,接收方用相同的方法进行计算,如最终结果为检验字段所有位是全1则正确(UDP中为0是正确),否则存...

weixin_45923633的博客 1524

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

TCP为什么可靠?

序列号和确认应答确保数据按顺序且完整地传输。超时重传和快速重传机制保证丢包时数据能够被及时修复。流量控制和拥塞控制避免了网络拥堵和数据丢失。校验和提供了数据完整性保证。数据顺序保证和连接管理确保数据的顺利传输和安全关闭。

萌萌白白的博客 1315

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

tcp为什么要三次握手,tcp为什么可靠

转自https://www.cnblogs.com/LUO77/p/5771237.html 大体看过,没有深入研究,有需要时继续看。 为什么不能两次握手:(防止已失效的连接请求又传送到服务器端,因而产生错误) 假设改为两次握手,client端发送的一个连接请求在服务器滞留了,这个连接请求是无效的,client已经是closed的状态了,而服务器认为client想要建立 一个新的连接,于是向cli...

PizerWang的博客 816

TCP协议为什么可靠?

TCP协议为什么可靠? 建立连接、传输数据两方面

YLC_慕类的博客 3159

TCP为什么可以做到可靠传输?

TCP又称为可靠传输协议,这个可靠是指数据一定可以毫无遗漏的交给对方。但是是不是说我们开发了一个应用程序给另一个应用程序发送消息,他就一定能够收到呢?我们开发的时候用了TCP,而且TCP又是可靠的传输协议,那为什么我们的应用程序依然要处理要处理消息丢失,消息完整性校验等问题?

不爱学习 1万+

TCP协议为什么可靠

最近阅读《图解TCP/IP一书》,在传输层协议一章重点讲述了TCP协议,相比UDP协议,TCP的实时性不够他好,显而易见TCP保证可靠性的同时无疑牺牲了实时性,那么接下来就总结下TCP是如何保证实时性的 使用序列号和确认应答 TCP为了保证传输的信息传达到了,接收方在接收到消息后会返回给发送方一个应答信号,即ACK,如果发送方收到了ACK应答信号,说明消息正确传输到了,但是通常发送方会发多条消息,回复的ACK信号是对应哪一条无法确认,所以TCP给每一条信息都附带了序列号 序列号是TCP按顺序给发送数据的每一

B1azar的博客 2898

为什么有了可靠地TCP还需要不可靠的UDP

近来有些面试中被问到了这个问题,那么就在此总结一下吧,希望对大家有用。 首先,先说一下TCP和UDP的区别。 1.TCP是面向连接的协议,有确认重传机制,流量控制机制等;而UDP是非面向连接的协议,尽力而为的传送数据,重传有上层协议来控制,也可以使用connect()来控制。 2.从头部结构来说,TCP因为有选项部分,所以有首部长度字段;而UDP没有选项部分,所以不需要首部长度字段。

wolfzhaoshuai的专栏 1万+

为什么TCP传输是可靠的

TCP提供一种面向连接的、可靠的字节流服务。   面向连接:意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP。 TCP通过下列方式来提供可靠性: 1、应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据报长度将保持不变。

wujiafei_njgcxy的博客 4133

《TCP》-TCP为什么可靠

事务隔离级别 当我们有多个客户端同时操作数据库的某张表,如何进行隔离操作?MySQL提供了隔离级别。 当MySQL表被多个线程或者客户端开启各自事务操作数据库中的数据时,MySQL提供了一种机制,可以让不同的 事务在操作数据时,具有隔离性。从而保证数据的一致性。 无隔离性的问题 脏读 是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务 也访问这个数据,然后使用了这个数据。 案例: 1.Mary的原工资为1000, 财务人员将Mary的工资改为了8000(但未

WeiMengXS的博客 350

TCP为什么是可靠的呢

TCP为什么是可靠的呢 众所周知,TCP需要经过三次握手才能建立起来,目的是为了使得数据包的发送和接收同步,经过三次“对话”之后,主机之间才正式发送数据。 主要问题集中在,TCP与UDP相比,是如何保证数据的可靠性的。 应用数据会被分割成TCP认为的最适合发送的数据块,由TCP传给IP的信息单位叫做报文段或者段(segment)。UDP传输中,应用程序产生的数据报长度将保持不变。 TCP发送一个segment,它将启动定时器,等待目的端确认接收这个segment。当未在定时器结束前收到确认,将重传这

waiwai1010的博客 2925

TCP为什么可靠,UDP如何实现可靠,二者区别?

https://blog.youkuaiyun.com/Awille/article/details/79748193 https://www.jianshu.com/p/ff36b6ab503e 1 序列号与确认号 ACK机制 由于通信过程的不可靠性,传输的数据不可避免的会出现丢失、延迟、错误、重复等各种状况,TCP协议为解决这些问题设计了一系列机制。 这个机制的核心,就是发送方向接收方发送数据后,接收方要...

try to do 5364
上一篇: 【操作系统】进程小结
下一篇: C++程序中各种变量的内存分配
Awille
博客等级 码龄11年 11粉丝 18原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值