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

安卓逆向一——Smali学习

Something u have to know:

       虽然Android平台使用Java来开发应用程序,但Android程序却不是运行在标准的Java虚拟机上,而是将Java字节码转换成Dalvik字节码,并打包到一个DEX可执行文档当中,Dalvik虚拟机通过解析DEX文件来执行这些字节码。

       因此我们想了解安卓逆向,就要先了解一下Dalvik的语法。

目录

Something u have to know

0x01 工具准备

0x02 语法了解

0x03 举例解读



0x01 工具准备:

        学习时我们可以用J2S2J(Java to Smali to Java转换工具):

            https://www.onlinedown.net/download/1209079?module=download

0x02 语法了解:

       本章节只录入部分,初次阅读快速浏览熟悉部分语法即可。

    1、数据类型对应表:

smali类型java类型
Vvoid (用于返回类型)
Zboolean
Bbyte
Sshort
Cchar
Iint
Jlong (64 bits)
Ffloat
Ddouble (64 bits)

    2、运算符描述表:

smali运算符描述
add-int v0, p1, p2v0 = p1 + p2
sub-int v0, p1, p2v0 = p1 - p2
mul-int v0, p1, p2v0 = p1 * p2
div-int v0, p1, p2v0 = p1 / p2
rem-int v0, p1, p2v0 = p1 % p2
and-int v0, p1, p2v0 = p1 & p2
or-int v0, p1, p2v0 = p1 │ p2
xor-int v0, p1, p2v0 = p1 ^ p2
shl-int v0, p1, p2v0 = p1 << p2
shr-int v0, p1, p2v0 = p1 >> p2
ushr-int v0, p1, p2v0 = p1 >>> p2
add-int/2addr v0, v1v0 = v0 + v1
sub-int/2addr v0, v1v0 = v0 - v1
add-int/lit16 v0, v1, lit16v0 = v1 + lit16
sub-int/lit16 v0, v1, lit16v0 = v1 - lit16
add-int/lit8 v0, v1, lit8v0 = v1 + lit8
sub-int/lit8 v0, v1, lit8v0 = v1 - lit8

    3、类名对照表:

smali类名java类名
Ljava/lang/String;java.lang.String
Ljava/lang/Object;java.lang.Object

4、数组对照表:

smali数组Java数组
[Iint[]
[[Iint[][]
[Ljava/lang/String;String[]
几维就在类型前加几个[号,最多255维

    5、其他指令描述表:

常用指令描述
const/4 v0, 0x0

给v0寄存器赋值0(此格式为int4bit)

move v0, v1将v1的值移入v0中
invoke-调用某方法
if-eq v0, v1, :cond_0

if (v0 == v1) cond_0

(eq==,ne!=,gt>,ge>=,lt<,le<=,eqz==0)

iget取值(默认int,iget-类型)
iput赋值(int,iget-类型)

0x03 举例解读:

    1、乘法运算:

        J2S:

        Java:

public class BaseData
{public int add(int i, int j){return i * j;}
}

        Smali:

.class public LBaseData;    // 本类
.super Ljava/lang/Object;    // 父类
.source "BaseData.java"    // 文件名# direct methods
// 构造方法, 方法名为<init>
.method public constructor <init>()V    // 该段未在java代码中显示,java中默认有一个隐藏的无参数的构造方法.registers 1    // 声明算上参数, 一共需要几个寄存器(寄存器用p) 不算参数使用locals(寄存器用v).prologue.line 1invoke-direct {p0}, Ljava/lang/Object;-><init>()Vreturn-void
.end method# virtual methods
// 自定义的add方法
.method public add(II)I.registers 4.prologue.line 5mul-int v0, p1, p2    // v0=p1*p2return v0
.end method

     2、for循环:

        J2S:

 

        Java:

public class ForData
{public void forFuc(){for(int i = 0;i<10;i++){System.out.println(i);};};public static void main(String[] args){ForData data = new ForData();data.forFuc();}
}

        Smali:

.class public LForData;    // 本类
.super Ljava/lang/Object;    // 父类
.source "ForData.java"    // 文件名# direct methods
// 构造方法, 方法名为<init>
.method public constructor <init>()V    // 该段未在java代码中显示,java中默认有一个隐藏的无参数的构造方法.registers 1    // 声明算上参数, 一共需要几个寄存器(寄存器用p) 不算参数使用locals(寄存器用v).prologue.line 1invoke-direct {p0}, Ljava/lang/Object;-><init>()Vreturn-void
.end method// 主方法
.method public static main([Ljava/lang/String;)V.registers 2.prologue.line 12new-instance v0, LForData;    //根据ForData类创建对象,保存在v0中invoke-direct {v0}, LForData;-><init>()V    //调用<init>构造方法.line 13invoke-virtual {v0}, LForData;->forFuc()V    //调用自定义方法forFuc.line 14return-void
.end method# virtual methods
// 自定义方法forFuc
.method public forFuc()V.registers 3.prologue.line 5const/4 v0, 0x0    // v0 = 0:goto_1const/16 v1, 0xa    // v1 = 10if-ge v0, v1, :cond_d    // if ( v0 > v1 ) 跳转cond_d.line 7sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;    //获取PrintStream类成员变量out对象,并放到v1寄存器中 v1=out()invoke-virtual {v1, v0}, Ljava/io/PrintStream;->println(I)V    //调用printLn方法中V1实例打印v0    println.out(v0).line 5add-int/lit8 v0, v0, 0x1    // v0++goto :goto_1    // 循环.line 9:cond_dreturn-void    // 直接返回、跳出
.end method

       本篇基础引导,可以把自己的一些Java项目通过J2S2J工具转换并分析,熟练掌握Java代码和Smali代码的互相转换,为安卓逆向代码层打好基础。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

CSS四种定位方式的详解,含BATJM大厂

开始 我大学读的是大专&#xff0c;在学校学的是机电一体化。临近毕业的时候选择了学习web前端技术&#xff0c;因为做机电实在又累工资又低&#xff0c;而我更喜欢坐办公室的工作&#xff0c;有空调吹&#xff0c;我很现实&#xff0c;就是想多赚一点钱。到现在做了两年前端的…...

如何系统全面性学习Java语言?面试篇

开头 提起Spring&#xff0c;大家肯定不陌生&#xff0c;它是每一个Java开发者绕不过去的坎。Spring 框架为基于 java 的企业应用程序提供了一整套解决方案&#xff0c;方便开发人员在框架基础快速进行业务开发。 我最近一直在研究大厂的面试&#xff0c;发现现在的不论大大小…...

5G音视频时代还不学NDK开发吗?面试必问

想要成为一名优秀的Android开发&#xff0c;你需要一份完备的知识体系&#xff0c;在这里&#xff0c;让我们一起成长为自己所想的那样。 本文参考了目前大部分 Android 应用启动优化的方案&#xff0c;将大家的方案做一个汇总&#xff0c;如果你有这方面的需求&#xff0c;只…...

Labview需求(部分)

本人从事工控行业多年,有一些资源,目前labview的单子干不过来了,想找几个靠谱的labview工程师跟我合作,想做兼职,接单的labview工程师可以私聊我,另外我有一些项目还需要跟单片机工程师,plc工程师,fpga工程师合作,欢迎大家找我合作!以下是手里比较着急的项目,需要外包 需求1&am…...

2021java1年经验公司面试真题

1面我就省略了&#xff0c;主要就是看你的以前工作情况&#xff0c;以前工作内容能不能清晰表达&#xff0c;还有一些简单的java基础问题&#xff0c;大概20多分钟。二面就是40分钟基础&#xff0c;20分钟业务&#xff0c;10分钟个人情况。下面是二面问题 1.自我介绍 做一下自…...

Unity基础之C#核心篇笔记4:多态

Unity基础之C#核心篇笔记4&#xff1a;多态多态1.多态的概念2.解决的问题3.多态的实现4.总结抽象类和抽象方法1.抽象类2.抽象函数3.总结4.练习题接口1.接口的概念2. 接口的申明3.接口的使用4.接口可以继承接口5.显示实现接口6.总结7.练习题密封方法1.密封方法基本概念2.实例3.总…...

html表单

表单语法&#xff1a; 表单元素格式&#xff1a; 语法&#xff1a; 表单元素&#xff1a; 文本框-语法 <input type"text"(文本框) name"userName"(文本框名称) value"用户名"(文本框初始值) size"30"(文本框长度) maxlength…...

12个夏季旅行彩色lr预设

夏季来临&#xff0c;计划海滩旅行的朋友&#xff0c;可以试试这款12个夏季旅行彩色lr预设&#xff0c;这些预设将帮助您获得清晰、专业的旅行照片&#xff0c;只需单击一下按钮&#xff0c;即可获得完美、专业的触感。 12个夏季旅行彩色lr预设介绍 由来自51个国家和地区的国…...

LeetCode每日一题 - 有多少小于当前数字的数字

题目&#xff1a; 给你一个数组 nums&#xff0c;对于其中每个元素 nums[i]&#xff0c;请你统计数组中比它小的所有数字的数目。 换而言之&#xff0c;对于每个 nums[i] 你必须计算出有效的 j 的数量&#xff0c;其中 j 满足 j ! i 且 nums[j] < nums[i] 。 以数组形式返回…...

用Python爬取彼岸图网图片

用Python爬取彼岸图网图片 *使用了 四个模块 import time import requests from lxml import etree import os 没有的话自行百度安装。 #encoding utf-8 import time import requests from lxml import etree import os# http://www.netbian.com/ 爬虫 if __name__ __mai…...

Ambari2.7.3集群Oozie调度Spark示例

文章目录1.环境准备2.修改配置文件2.1 解压Oozie自带样例包2.2 修改workflow.xml文件2.3 修改job.properties文件3.上传到HDFS4.提交任务5.监控1.环境准备 集群版本&#xff1a;Ambari2.7.3 HDP3.0.1.0-187集群开启Kerberos身份认证&#xff0c;Ranger权限认证 2.修改配置文…...

02.xshell连不上虚拟机linux的解决办法

虚拟机使用的NAT模式&#xff0c;用Xshell一直连接不上虚拟机上的Linux&#xff0c;最后百度搜索之后&#xff0c;解决步骤如下&#xff1a; 1.在虚拟机里面输入ifconfig&#xff0c;查询虚拟机ip地址 2.打开网络连接&#xff0c;修改VMnet1 IP地址改为与虚拟机同一网段 比如…...

第k个数(快速选择)

算法思路 快速选择&#xff1a; 1.即任意选一个数&#xff0c;将数组划分为二。 2.最终根据该数所在的位置&#xff0c;即第&#xff1f;大&#xff0c;选择第k大的数字所在区间进行划分。 时间复杂度分析&#xff0c;第一次划分n,下一次划分期望n/2&#xff0c;n/4…累加和小…...

2021年茶艺师(中级)模拟考试及茶艺师(中级)模拟考试系统

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 茶艺师&#xff08;中级&#xff09;模拟考试是安全生产模拟考试一点通总题库中随机出的一套茶艺师&#xff08;中级&#xff09;模拟考试系统&#xff0c;在公众号安全生产模拟考试一点通上点击茶艺师&#xff08;中…...

yolov5 detect.py报错

新手求助 yolov5训练了自己的数据集后&#xff0c;test没问题&#xff0c;但是运行detect.py就报错了&#xff0c;一直找不到问题所在&#xff0c; 求大佬指点指点...

DEX 争霸战火升级,BabySwap 会否成为下一代黑马?

在 AMM机制大力推动下&#xff0c;DEX的群雄争霸比预想中来得要快且凶猛。伴随着诸如高盛等主流资本逐步认可DeFi 的意义&#xff0c;在真正的去中心化金融爆发的前夜&#xff0c;可以说谁抢占了DEX 红海的先机&#xff0c;谁就赢得了未来。 从早期以太坊的Uniswap和DoDo&…...

flutter 常用的第三方组件

引用文章链接&#xff1a; https://www.jianshu.com/p/a523e5f131b2 1、格式化日期时间组件&#xff1a;https://pub.dev/packages/date_format 2、日期选择组件&#xff1a;https://pub.dev/packages/flutter_cupertino_date_picker 3、轮播图组件&#xff1a;https://pub.…...

nginx隐藏x-real-ip头配置

实现隐藏X-Real-Ip头&#xff0c;可通过配置server{} proxy_set_header实现。 server { listen 10.10.98.10:8080 backlog20480; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_…...

8.文本处理(编码解码/文件操作)

本章主要从文本处理、系统监控、日志、FTP、邮件监控、微信监控等方面来介绍基础运维的相关知识。 8.1 文本处理 在日常的运维工作中一般都离不开与文本,如日志分析、编码转换、ETL加工等。本节从编码原理、文本操作、读写配置文件、解析XML等实用编程知识出发,希望能抛砖引…...

【vue】vue3学习笔记(三)

接上篇 面包屑 安装path-to-regexpcomponent/breadcrumb/index <template><el-breadcrumb class"app-breadcrumb breadcrumb-container" separator"/"><el-breadcrumb-item v-for"(item, index) in levelList" :key"item…...

设计模式之命令模式

概念 命令模式&#xff08;Command Pattern&#xff09;是一种数据驱动的设计模式&#xff0c;它属于行为型模式。请求以命令的形式包裹在对象中&#xff0c;并传给调用对象。调用对象寻找可以处理该命令的合适的对象&#xff0c;并把该命令传给相应的对象&#xff0c;该对象执…...

CSS常用五类选择器,不吃透都对不起自己

前言 JavaScript是面向 Web 的编程语言&#xff0c;获得了所有网页浏览器的支持&#xff0c;是目前使用最广泛的脚本编程语言之一&#xff0c;也是网页设计和 Web 应用必须掌握的基本工具。 JavaScript主要用途 嵌入动态文本与HTML页面对浏览器时间做出相应读写HTML元素在数…...

HTML标签1(2021.6.2)

超文本标记语言标记标签通常被称为HTML标签&#xff0c;HTML标签是HTML语言中最基本的单位&#xff0c;HTML标签是HTML&#xff08;标准通用标记语言下的一个应用&#xff09;最重要的组成部分&#xff0c;HTML标签的大小写无关的。 以下是一些HTML常用标签&#xff1a; 标签 用…...

力扣算法链表篇:设计链表

题解&#xff1a; class MyLinkedList { public://定义链表节点结构体struct LinkedNode{int val;LinkedNode *next;LinkedNode(int val):val(val),next(nullptr){}};//初始化链表MyLinkedList() {//这里定的头结点 是虚拟头结点_dummyHead new LinkedNode(0);_size 0;}// 获…...

selenium中通过ID的部分来定位节点

正常情况下的定位&#xff1a; sixth_item driver.find_element_by_id("coption5") 要仅通过使用 coption 来定位此元素&#xff0c;可以使用以下定位器策略之一&#xff1a; 使用XPATH和starts-with()&#xff1a; sixth_item driver.find_element_by_xpath(&qu…...

CSS字体样式的使用,成功定级腾讯T3-2

开始 我大学读的是大专&#xff0c;在学校学的是机电一体化。临近毕业的时候选择了学习web前端技术&#xff0c;因为做机电实在又累工资又低&#xff0c;而我更喜欢坐办公室的工作&#xff0c;有空调吹&#xff0c;我很现实&#xff0c;就是想多赚一点钱。到现在做了两年前端的…...

Nexus3.x忘记密码处理方式

书山有路勤为径&#xff0c;学海无涯苦作程序猿&#x1f412; 写在前面 最近国家在做网络安全攻防演练&#xff0c;很荣幸的我司被选为防守方。随即&#xff0c;公司内部各种平台密码开始加固&#xff0c;所以弱密码都清理干净了。 而因为这个&#xff0c;我把Nexus3的用户adm…...

小程序样式处理和自定义组件以及生命周期

小程序样式处理 WXSS是一套样式语言&#xff0c;用于描述 WXML 的组件样式。 WXSS 用来决定 WXML 的组件应该怎么显示。 与 CSS 相比&#xff0c;WXSS 扩展的特性有&#xff1a;尺寸单位&#xff0c;样式导入 尺寸单位&#xff1a;rpx&#xff0c;可以根据屏幕宽度进行自适应…...

html表单

表单语法&#xff1a; 表单元素格式&#xff1a; 语法&#xff1a; 表单元素&#xff1a; 文本框-语法 <input type"text"(文本框) name"userName"(文本框名称) value"用户名"(文本框初始值) size"30"(文本框长度) maxlength…...

LeetCode: 523. 连续的子数组和

给你一个整数数组 nums 和一个整数 k &#xff0c;编写一个函数来判断该数组是否含有同时满足下述条件的连续子数组&#xff1a; 子数组大小 至少为 2 &#xff0c;且 子数组元素总和为 k 的倍数。 如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 …...

com/HTML/topic/160927. - 百度,耶鲁大学 公开课.doc

耶鲁大学 公开课.doc耶鲁大学 公开课/publicforum/content/no05/1/168240.shtml/home/yalecourses//education/content/2010-07/28/content_4785350.htm/v_playlist/f4404095.html/content/10/0729/01/1906819shtml/a/2010-08-30/1500192679.shtml/10/0728/09/6CM0EONM00293L7F…...

北大生物信息学公开课学习(1)

https://www.bilibili.com/video/BV1by4y1k7rc?fromsearch&seid8006130703787982050 北大的生物信息学公开课 课程目录 信号通路的分析 常见KEGG 和GO 分析 基于已知的模型对未知的模型进行预测&#xff0c;主要是通过(隐)马尔可夫模型(HMM&#xff09; 如何构建模型&…...

OVS DPDK VXLAN隧道处理

在学习OVS VXLAN实现之前&#xff0c;我们先回顾一下传统VTEP设备是如何处理VXLAN报文的。如下图所示&#xff1a; vxlan报文进入交换机端口后&#xff0c;根据报文头部信息进行vxlan隧道终结。隧道终结后&#xff0c;根据underlay信息进行overlay映射&#xff0c;得到overlay的…...

北大AI公开课第七课--AI赋能 智赢未来by科大讯飞胡郁

今天来打卡英语流利说第三天&#xff0c;希望自己可以坚持下去&#xff0c;说实话&#xff0c;一直以来我都挺喜欢英语的&#xff0c;然后从大一开始&#xff0c;也在网易公开课上听了很多世界名校的计算机专业课、金融、心理学方面的课&#xff0c;感觉对于语感的培养还是很不…...

Hadoop集群格式化

hadoop搭建过程中需要进行格式化&#xff0c;而在进行文件配置过程中难免会出错&#xff0c;导致格式化后集群不能正常启动&#xff0c; 想要重新格式化&#xff0c;删掉hadoop-2.10.1目录下的tmp文件夹: rm -rf tmp hadoop版本因人而异&#xff0c;之后重新进行格式化即可&am…...

配置Hadoop格式化namenode时报错cannot create directory /usr/local/hadoop/tmp/dfs/name/current

格式化namenode时&#xff0c;通过以下字句验证是否成功 status 0 为操作成功&#xff0c;status 1为操作失败&#xff0c;往上翻查找错误原因 该错误是由于权限问题导致的 我们通过 sudo su 进入root操作&#xff0c;然后输入命令&#xff0c;usr/local/hadoop为自己的Hado…...

腾讯会议——录制的视频如何正常观看(转为MP4格式)

1、打开腾讯会议 2、点击历史会议 3、点击你录制的会议 4、点击录制详情 5、点击转码 完成这5步&#xff0c;即可将所保存的视频转为MP4格式&#xff0c;便于观看。...

linux以长格式显示文件名,linux怎样以长格式显示用户目录下所有文件

我现在正在编辑RHCE的培训用书,刚好贴出来大家提提意见.现在计划8月底翻译完033的实验部分和编写前7章的课程.请提出宝贵意见kevinzheloo.com实验1 :文件和目录操作时间:1小时30分钟目标:熟悉一些基本文件和目录操作命令的功能、语法和使用.练习组合以上命令以有效完成用户任务…...

群晖服务器里很多tmp文件,黑群晖 篇一:内存映射解决黑群晖休眠频繁唤醒问题...

黑群晖 篇一&#xff1a;内存映射解决黑群晖休眠频繁唤醒问题2019-12-13 15:21:094点赞40收藏6评论自己组装黑群晖休眠时&#xff0c;大约每1小时唤醒一次&#xff0c;已排除路由器smb问题。经查询发现&#xff0c;经常有logrotate写入logrotate. tmp文件导致的休眠被唤醒。存在…...

tmp 格式无法删除的问题

最近不知怎么的 &#xff0c;F盘突然出现了 tmp格式 的文件夹&#xff08;不知道怎么出现 的&#xff09; 怎么都 删不掉&#xff0c;提示文件是只读 或是其它程序用使用它 卡巴 360 也杀不出毒 并且以肉眼可见的速度不断生成 在摆渡上搜的方法&#xff0c; 进入安全模式…...

AWS Lambda函数实战

AWS Lambda函数实战 实战效果&#xff1a;开发一个函数&#xff0c;它会关注事件中的某个名字&#xff0c;并返回“Hello<名字>&#xff01;”。如果输入事件没有提供名字&#xff0c;则函数返回一个更加通用的问候语“Hello World&#xff01;”。 AWS Lambda函数实战A…...

TCP 流量控制

TCP提供流量控制服务来消除发送方使接收方缓存区溢出的可能性&#xff0c;因此可以说流量控制是一个速度匹配服务&#xff08;匹配发送方的发送速率与接收方的读取速率&#xff09;。 TCP提供一种基于滑动窗口协议的流量控制机制来实现流量控制&#xff0c;在通信过程中&#…...

TCP流量控制原理

TCP的流量控制 1、利用滑动窗口实现 原理&#xff1a;让发送方的发送速率不要太快&#xff0c;要让接收方来得及接收。 原则&#xff1a;发送方的发送窗口不能超过接收方给出的接收窗口的数值。窗口单位是字节&#xff0c;不是报文段。[通过TCP首部窗口字段&#xff08;rwnd&…...

计算机网络什么叫流量控制,计算机网络(十一)-数据链路层-流量控制

一.流量控制1.1 较高的发送速度和较低的接收能力的不匹配&#xff0c;因此流量控制也是数据链路层的一项重要工作。1.2 数据链路层的流量控制是点对点的&#xff0c;而传输层的流量控制是端到端的。1.3 数据链路层流量控制手段&#xff1a;接收方收不下就不回复确认。传输层流量…...

TCP流量控制+拥塞控制

TCP流量控制 为了提高信道利用率&#xff0c;TCP采用连续ARQ协议。发送方维持一个发送窗口&#xff0c;凡位于发送窗口内的分组可以连续发送出去&#xff0c;而不需要等待对方确认。接收方一般采用累积确认&#xff0c;对按序到达的最后一个分组发送确认&#xff0c;表明到这个…...

计算机网络 拥塞控制和流量控制,简述TCP的流量控制与拥塞控制

1. TCP流量控制流量控制就是让发送方的发送速率不要太快&#xff0c;要让接收方来的及接收。原理是通过确认报文中窗口字段来控制发送方的发送速率&#xff0c;发送方的发送窗口大小不能超过接收方给出窗口大小。考虑一种特殊的情况&#xff0c;接收方向发送方发送了零窗口的报…...

TCP流量控制与拥塞控制(重要)

本文参考了一些优秀的书籍->图解TCP/IP,TCP协议卷一,小林coding,还有等等的知乎,百度. 小林coding 小林coding 知乎牛客的文章 : 万字长文 | 23 个问题 TCP 疑难杂症全解析_技术交流_牛客网 本文主要讲解TCP可靠性的机制: 流量控制与拥塞控制 尤其拥塞控制的算法是大公司非…...

【软件测试】测试人的我们,咋做一个如鱼得水的测试员?

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 一千个人&#xff0…...

分布式高可靠:流量控制

分布式高可靠&#xff1a;流量控制前言什么是流量控制&#xff1f;分布式系统流量控制策略漏桶策略令牌桶策略两种策略对比Sentinel 流量控制工作原理知识扩展&#xff1a;什么是拥塞控制&#xff1f;它与流量控制的区别是什么&#xff1f;总结前言 分布式高可靠中的负载均衡的…...

【计算机网络】传输层 : TCP 流量控制 ( 流量控制过程 | 持续计时器机制 )

文章目录一、TCP 流量控制二、TCP 流量控制 过程三、持续计时器机制一、TCP 流量控制 TCP 流量控制 : ① 流量控制 : 控制 发送方 降低发送速率 , 避免 接收方 来不及接收 , 丢弃数据 , 导致重传 ; ② 滑动窗口机制 : TCP 通过 该 滑动窗口机制 实现 流量控制 ; ③ 滑动窗口…...