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

TCP“三次挥断”的原因TCP延迟确认机制

在学习wireshark抓包的时候,一般都从最简单的三次握手和四次挥断看起,因为这两步对于每一个完整健康的TCP交互流来说都是必不可少的,通过抓包我们可以更清楚的了解其工作机制。

一、四次挥断和“三次挥断”

1、第一种情况

比如在电脑cmd发起 telnet 119.147.6.185 80 ,客户端抓包:
在这里插入图片描述
从抓包来看是很正常的三次握手和四次挥断

1.服务端FIN :Seq = a , Ack = b #我想断开连接
2.客户端ACK:Seq = b, Ack = a+1 #收到,断开吧
3.客户端FIN :Seq = b, Ack = a+1 #我也想断开连接
4.服务端ACK:Seq = a+1, Ack = b+1 #收到,断开吧

2、第二种情况
通过网页直接访问,或者去curl这个ip+端口,却发现只有三个报文
在这里插入图片描述
分别是:

1.服务端FIN :Seq = a , Ack = b #我想断开连接
2.客户端FIN :Seq = b, Ack = a+1 #收到,断开吧。我也想断开连接
3.服务端ACK:Seq = a+1, Ack = b+1 #收到,断开吧

  • 这么看来是第二步和第三步合并了,那为什么会合并呢?

在林沛满老师的《Wireshark网络分析就这么简单》一书中的第123页图11有出现过这种情况,其原因也在早年的一篇博客文章中也有提到,即 TCP的延迟确认 机制导致。

二、什么是TCP的延迟确认?

RFC 1122文档中的 4.2.3.2 When to Send an ACK Segment 小节有过对延迟确认机制下何时发送ACK的描述:

4.2.3.2 When to Send an ACK Segment
————
A host that is receiving a stream of TCP data segments can increase
efficiency in both the Internet and the hosts by sending fewer than
one ACK (acknowledgment) segment per data segment received; this is
known as a “delayed ACK” [TCP:5].
————
A TCP SHOULD implement a delayed ACK, but an ACK should not be
excessively delayed; in particular, the delay MUST be less than 0.5
seconds, and in a stream of full-sized segments there SHOULD be an ACK
for at least every second segment.
————
DISCUSSION:

A delayed ACK gives the application an opportunity to update the
window and perhaps to send an immediate response. In particular, in
the case of character-mode remote login, a delayed ACK can reduce the
number of segments sent by the server by a factor of 3 (ACK, window
update, and echo character all combined in one segment).
————
In addition, on some large multi-user hosts, a delayed ACK can
substantially reduce protocol processing overhead by reducing the
total number of packets to be processed [TCP:5]. However, excessive
delays on ACK’s can disturb the round-trip timing and packet
“clocking” algorithms [TCP:7].

简单的概括:TCP延迟确认机制,允许接受方在接收到数据帧时不马上回复ACK,而是可以等待一段时间再回复ACK,但这个时间不得大于0.5s(该时间可修改,Windows默认200ms,也可通过参数关闭机制)。

RFC 1122规定,Delayed ACK对单个的小报文可以延长确认的时间,但不允许有两个连续的小报文不被确认。所以,当发送端连续发送两个报文后,接收端必须给予确认。(这点待讨论,很多抓包情况下确实有>2个包才发ACK的情况,这篇文章从代码上也对这个问题进行了讨论分析TCP delay ack机制和实现)

这个延时时间需要注意,它不是在接收到数据的时候开始计时,而是内核会启动一个200ms的定时器,每隔200ms就会检查一次是否有ACK发送,比如定时器在0ms启动,200ms到期,100ms的时候接收到数据,那么200ms的时候没有响应数据,ACK会被发送,这个情况下只延迟了100ms.

  • 那这个作用是什么呢?
    一般来说TCP数据交互过程中,接收方A每收到发送方B发出的一个报文,接收方A需要回复发送方B一个ACK报文,告知我已收到这个包,可以发送下一个。但是在延时大或者拥塞的网络环境上,这种一来一回的交互缺点明显,ACK单独成包代价高,而在TCP延迟确认机制下有如下表现:
    在这里插入图片描述
    即当客户端收到服务器发来的数据后,如果没有数据要发送给对端,则等待一段时间,如果这段时间内有数据要发给服务器的话,会与ACK合并发送(确认这段时间所收到的数据),延迟确认没有直接提高性能,只是减少了部分确认包,减轻网络负担,当然这是一把双刃剑,某些情况下需要关闭。

回到正题,TCP延迟确认机制 对四次挥断也同样生效,第二步的客户端延迟到了和第三步一并发送,客户端收到了服务器的FIN,等待一段时间看自己有没有数据要发给服务器,然后自己也想断开连接FIN就和ACK一起发送:

1.服务端FIN :Seq = a , Ack = b #我想断开连接
2.客户端FIN :Seq = b, Ack = a+1 #收到,断开吧。我也想断开连接
3.服务端ACK:Seq = a+1, Ack = b+1 #收到,断开吧

  • 那既然要结束会话了,为什么客户端还要等待发送数据呢?

    TCP链接是一个全双工的通道,服务端发送了FIN,只表明服务器要结束会话,即自己不再发送数据,但是还可以继续接收数据,因为客户端没有发FIN,客户端也可以继续发送数据。

三、Nagle算法

有这么一种情况,我在国外买了一台服务器搭VPN,从国内连过去后敲一串字符:fdfhaudifhidbfidvfaiudh,每个字符并不大,但是却需要封装成小包逐个发送出去,那是否有机制允许这些小包合并成一个打包一起发送出去呢?有,Nagle算法。

百度百科中对其做了详细的解释:Nagle算法

  • 为了尽可能的利用网络带宽,TCP总是希望尽可能的发送足够大的数据。(一个连接会设置 MSS(单个报文的最大报文段长度) 参数,因此,TCP/IP希望每次都能够以MSS尺寸的数据块来发送数据)。Nagle算法就是为了尽可能发送大块数据,避免网络中充斥着许多小数据块。

  • Nagle算法的基本定义是任意时刻,最多只能有一个未被确认的小段
    所谓“小段”,指的是小于MSS尺寸的数据块,所谓“未被确认”,是指一个数据块发送出去后,没有收到对方发送的ACK确认该数据已收到。

  • Nagle算法的规则(可参考tcp_output.c文件里tcp_nagle_check函数注释):

(1)如果包长度达到MSS ,则允许发送; #即达到单个包最大值,此刻发出数据包
(2)如果该包含有FIN,则允许发送;
(3)设置了TCP_NODELAY选项,则允许发送;#打开TCP_NODELAY选项,则意味着无论数据包是多么的小,都立即发送(不考虑拥塞窗口)
(4)未设置TCP_CORK选项时,若所有发出去的小数据包(包长度小于MSS)均被确认,则允许发送;#当TCP_CORK选项被设置时,TCP链接不会发送任何的小包,即只有当数据量达到MSS时,才会被发送
(5)上述条件都未满足,但发生了超时(一般为200ms),则立即发送。

四、当Nagle算法遇到Delayed ACK

建议参考本文,有很详细的解释:https://my.oschina.net/xinxingegeya/blog/485643

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

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

2021年Java开发爆款推荐!docker部署tomcat

一.java基础面试知识点 java中和equals和hashCode的区别 int、char、long各占多少字节数 int与integer的区别 探探对java多态的理解 String、StringBuffer、StringBuilder区别 什么是内部类?内部类的作用 抽象类和接口区别 抽象类的意义 抽象类与接口的应用…...

阿里P8大牛亲自讲解!java静态变量和实例变量

Redis主从复制 概念 Redis的主从复制概念和MySQL的主从复制大概类似。一台主机master,一台从机slaver。master主机数据更新后根据配置和策略,自动同步到slaver从机,Master以写为主,Slave以读为主。 主要用途 读写分离&#xff1…...

品牌应该如何把握抖音电商的红利:深度拆解花西子如何通过抖音电商一年销售1亿+

最近抖音电商正在逐渐起势,前一阵子老赵去参加了抖音的电商大会和千川大会,从这两个会的火爆程度我们就可以看出,越来越多的品牌正在涌向抖音电商平台,并且越来越重视这个平台。抖音电商将是品牌们的新战场,这个平台让…...

Layui快速入门(2021.06.15)

第一步&#xff1a;下载layui文件 第二步&#xff1a;新建项目&#xff0c;导入下载的文件夹 第三步&#xff1a;参考文档开发 1.layui入门html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>la…...

Mysql异常之Communications link failure

前天线上出现数据数据抖动&#xff0c;收到大量异常告警&#xff0c;都要疯了&#xff0c;数据库出现大量异常&#xff0c;肯定第一件事就是看下数据库监控数据&#xff0c;发现有一个从分片执行时间有一个50多秒的操作&#xff0c;这里肯定有问题了&#xff0c;第一时间找了db…...

储备未完待续

储备 如何精准熬一人份的粥 如何快速晾凉一碗粥 3M手套和钢铁侠 洗手盆三件套 三种门锁、两个门锁 制作书签的一种方法 摩托车和汽车的排气筒 变形金刚和巴巴爸爸 横向冲击和纵向冲击 我和图书馆 影响我的三本书 曲黎敏、亨利我们会追上你的、穷理查历书...

如何成为一个成功的 Java 开发人员?

【此文章转自乐字节】 如果你是一名成功的Java程序员&#xff0c;那么在任何公司中的Java开发人员中&#xff0c;你都有机会获取一席之地。 前言 在当今时代&#xff0c;有很多编程语言可能会塑造我们的未来。然而&#xff0c;当我们开始学习编程时&#xff0c;我们总是从C语…...

代理和负载均衡的详细说明是什么

对客户端提供的代理服务&#xff0c;在客户端无法直接访问服务端的情况下&#xff0c;星池StarPool通过配置代理服务器的方式访问服务端。在整个过程中&#xff0c;客户端请求首先发送到代理服务器&#xff0c;代理服务器再将请求发送到服务端后将结果返回给客户端。从服务端角…...

使用DNSObserver检测DNS安全漏洞

关于DNSObserver DNSObserver是个功能强大的DNS服务&#xff0c;该工具使用Go语言开发&#xff0c;可以帮助广大研究人员轻松检测各种类型的盲注漏洞。它可以监控渗透测试人员所搭建服务器的带外DNS交互信息&#xff0c;并通过Slack发送查询通知。DNSObserver可以帮助我们寻找的…...

整理了 34 个 Python 自动化办公库

本次内容涵盖了Excel、Word、PPT、ODF、PDF、邮件、微信、文件处理等所有能在办公场景实现自动化的库,希望能够对大家有所帮助。 Python Excel自动化库 // 1.xlwings 库 官网: https://www.xlwings.org/ 特点:xlwings 是开源且免费的,预装了 Anaconda 和 WinPython,可…...

【Jenkins插件】之Multiple SCMs

在Jenkins配置中&#xff0c;有的时候我们需要依次拉取多个代码仓库&#xff0c;有时候还会需要既拉取svn代码库&#xff0c;又拉取git代码库&#xff0c;但Jenkins默认的配置是不支持这样操作的。因此&#xff0c;我们需要使用到Jenkins的Multiple SCMs插件。 Multiple SCMs这…...

为什么自己干了这么多活,最后功劳都是别人的?

【本文只针对IT行业技术岗】 一、粉丝留言 自己每天加班到10点&#xff0c;有时候都到凌晨&#xff0c;周6基本全勤&#xff0c;公司项目忙的时候周日还去加班&#xff0c; 做过的项目无数&#xff0c;很多项目都给公司带来了丰厚的利润。 年底年终奖比别人少了一个月&…...

pytest(10)-参数化详解

先看如下情况&#xff0c;即为了测试一个函数&#xff0c;列举了三个测试用例&#xff0c;每个用例其实就是参数不同而已 在test_example.py 文件中编写如下代码&#xff1a; def add(a,b):return (ab)def test_1():assert add(3,5)8def test_2():assert add(2,4)7def test_3(…...

防(反)浏览器指纹技术之指纹浏览器揭秘

什么是指纹浏览器? 首先&#xff0c;这个指纹并不是上班打卡的指纹&#xff0c;也不是你家指纹锁的指纹&#xff01; 这里指的浏览器指纹是指通过浏览器的各种信息&#xff0c;如系统字体、屏幕分辨率、浏览器语言、时区等等&#xff0c;无需 cookie 等技术&#xff0c;就能…...

2021全球暑期量子学习日程汇总,谷歌量子夏季研讨会正在报名中

今日小暑&#xff0c;虽酷热&#xff0c;但学习热忱不减&#xff0c;尤其是在各个科技巨头和高等院校接连发布了量子暑期班的招募通告后&#xff0c;大家可以妥善安排&#xff0c;“错峰出行”。 近日&#xff0c;谷歌也发布了暑期会议相关通告&#xff0c;其量子夏季研讨会 (…...

STM32使用STM32CubeMX配置引脚中断

前言 嵌入式系统中&#xff0c;外部中断&#xff0c;是一个比较常见的功能。中断的灵活使用&#xff0c;大大增强了系统的实时性。使用STM32 最新的HAL库&#xff0c;如何配置一个引脚中断呢&#xff1f; 配置中断 可以借助STM32提供的可视化软件&#xff1a;STM32CubeMX&#…...

最新出炉,头条三面技术四面HR,看我如何一步一步攻克面试官?

最开始面的头条游戏中台&#xff0c;当时是第一次面试&#xff0c;没有经验&#xff0c;导致算法题虽然有思路&#xff0c;但是没有写出最优解&#xff0c;直接挂了。后来又被捞起来&#xff0c;因为此时已有阿里的offer&#xff0c;所以胆子也大起来了&#xff0c;收拾心情开始…...

Linux基本命令

文章目录第一章Linux基础一、基本命令1.ls命令2.cd命令3.文件操作二、用户解读1.用户权限三、linux的基本操作1.软件介绍2.用户操作3.组3.1权限控制4.文件权限控制4.1权限设置5.vim的使用——一开始是命令模式6.寄存器7.find命令格式8.管道符—— |xargs9.grep命令第一章Linux基…...

docker+k8s 报错

dockerk8s报错 问题点&#xff1a;docker容器中或者k8s的pod中执行systemctl相关后台服务 报错信息&#xff1a;Failed to get D-Bus connection: Operation not permitted解决办法 docker&#xff1a;运行容器添加参数–privilegedtrue /sbin/init docker run -tid --name…...

51单片机入门之按键

对于单片机&#xff0c;单片机上电后默认为高电平&#xff0c;所以对于按键&#xff0c;按下去之后变为低电平&#xff08;因为按键接地了&#xff09;&#xff0c;未按下去则为高电平&#xff0c;而因为单片机不仅可以改变引脚电平&#xff0c;也可以读取引脚电平&#xff0c;…...

Golang高并发:生产者消费者模型

Golang高并发&#xff1a;生产者消费者模型 我们本篇博文主要通过几个例子来介绍生产者消费者模型。 案例1 下面看看第一个例子中的生产者协程。 //生产者协程go func() {for {product : strconv.Itoa(time.Now().Nanosecond())chanShop <- "商品" productf…...

[论文阅读]《Database Maanagement Systems》-第九章

第九章 TREE-STRUCTURED INDEXING 树结构索引 &#xff08;P271-301&#xff09; gracefully 优雅的 适当的 because it adjusts well to changes 因为它能很好地适应变化 page boundaries 页面边界 preferable [[ˈprefrəbl]] 更好的 direct [[dəˈrekt; daɪˈrekt]] 管…...

程序员的自我修养——(2)编译与链接

catalog构建预编译编译汇编链接构建 构建build 是 ide里的词&#xff0c;构建 编译 链接。 一个gcc 1.c&#xff0c;其实是&#xff1a; 预处理 编译 汇编 链接 预编译 源文件&#xff0c;被预编译器cpp 编译成&#xff1a; .i文件。 gcc -E 1.c -o 1.i 展开所有的#d…...

Ubuntu 20.04下PyCharm配置QtDesigner,PyUIC和Pyrcc

《ubuntu安装配置QtDesigner》...

OpenLayers源码解析8 ol/source/TileWMS.js

ol/source/TileWMS.js父类 ol/source/TileImage-TileImage 主要功能 WMS服务提供的底图图层源。 参数&#xff1a;TileWMS({}) 参数类型说明paramsObject.<string, *>至少需要LAYER参数。STYLE默认是’VERSION默认是‘1.3.0’WIDTH&#xff0c;HEIGHT&#xff0c;BB…...

Python IDE 详细攻略,拿去吧你~

本文介绍了多个 Python IDE&#xff0c;并评价其优缺点 读者可以参考此文列举的 Python IDE 列表&#xff0c;选择适合自己的编辑器 写 Python 代码最好的方式莫过于使用集成开发环境&#xff08;IDE&#xff09;了。它们不仅能使你的工作更加简单、更具逻辑性&#xff0c;还…...

元力参堂:《披荆斩棘的哥哥》一经上线,能否带动芒果TV会员数增长

随着芒果TV《披荆斩棘的哥哥》大热&#xff0c;播放量就占据了综艺热度榜榜首。芒果超媒发布了2021年半年报&#xff0c;公司2021年1-6月实现营业收入78.53亿元&#xff0c;同比增长36.02%。从财报来看&#xff0c;芒果超媒营收的增长&#xff0c;主要还是来源于其主要业务芒果…...

事件循环机制(Event Loop)刨根问底

事件循环是什么&#xff1f; 为什么有事件循环机制 因为js是单线程的&#xff0c;注意&#xff0c;浏览器是多线程的。浏览器只给一个线程给js渲染&#xff0c; 假设是多线程&#xff0c;可能会存在这种情况&#xff1a; 若一个线程要操作dom,另一个线程要删除dom&#xff0c;就…...

反射动态修改注解属性值

注解Two中有two属性表&#xff0c;在TestTwoAnno这个类初始化结束后&#xff0c;修改Two注解的two属性。 import com.enterprise.support.rocketmq.annotation.Two; import org.springframework.beans.factory.InitializingBean; import org.springframework.stereotype.Compo…...

SpringBoot - MyBatis-Plus使用详解(一)

1&#xff0c;什么是 MyBatis-Plus&#xff1f; &#xff08;1&#xff09;MyBatis-Plus&#xff08;简称 MP&#xff09;是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。我们可以理解为它已经封装好了一些…...

dbc2000 注册机|dbc2000 注册码注册机下载

点击下载来源&#xff1a;dbc2000 注册机 dbc2000 注册机是同名源程序软件的注册机软件&#xff0c;该源程序软件是一款应用于数据库搭建以及数据写入的数据库架设工具&#xff0c;它拥有强大的数据写入功能&#xff0c;在作为应用程序使用时&#xff0c;它不仅可以充当数据属性…...

秋招面经第八弹:网易二面-数据开发工程师

秋招第八弹&#xff1a;网易二面-数据开发工程师 写在最前&#xff1a;秋招以来一直在冲&#xff0c;因为事情比较多&#xff0c;对于笔试面试一直没有复盘&#xff0c;现在靠仅存的记忆把面试的一些问题记录下来&#xff0c;尽可能记录出能回忆到的问题&#xff0c;但可能记的…...

安卓课程格子APP

https://download.csdn.net/download/weixin_57836618/73810452 功能演示&#xff1a; 查看所有课程 点击主页面空白处即可添加课程 添加课程之后查看课程 查看双周课程 查看单周课程 6.查看课程详情...

强化学习——格子世界

强化学习——格子世界 项目源码地址&#xff1a;https://gitee.com/infiniteStars/machine-learning-experiment 1. 实验内容 2. 实验代码 import numpy as np import matplotlib.pyplot as plt from matplotlib.table import Table from xml.dom.minidom import Document #手…...

华为机试 - 跳格子游戏

目录 题目描述 输入描述 输出描述 用例 题目解析 算法源码 题目描述 地上共有N个格子&#xff0c;你需要跳完地上所有的格子&#xff0c;但是格子间是有强依赖关系的&#xff0c;跳完前一个格子后&#xff0c;后续的格子才会被开启&#xff0c;格子间的依赖关系由多组st…...

php 爬课程表信息,Ruby爬取教务系统生成课程表

我为什么要虐自己最近觉得课程格子广告越来越多&#xff0c;乱七八糟的东西越来越多&#xff0c;完全失去了一开始的存在价值&#xff0c;并且没有电脑端app&#xff0c;想查看课程必须拿出手机&#xff0c;而我使用电脑频率要比手机高&#xff0c;所以才有了折腾的动力。于是我…...

android 课程表 ui,UICollectionViewLayout实现课程表布局

因为项目中有课程表的相关模块&#xff0c;第一时间想到用UICollectionView。然而后期的需求越来越复杂&#xff0c;每个格子需要展示的内容越来越多&#xff0c;所以不得不寻找合适的解决方案。最后发现自定义UICollectionViewLayout可以实现我的需求。先放效果图&#xff1a;…...

Android自定义View课程表,Android 自定义View课程表表格

自己闲下来时间写的一个课表控件使用的自定义LinearLayout 里面View都是用代码实现的 最终效果如下图 写的可能有问题希望多多指点创建一个自定义LinearLayout 控件用来装载课程的信息和课程的周数 和节数大概的布局三这样的根据上面的看来觉得总体布局我分了两个 上面的星期是…...

java课程设计设计_java课程设计

1. 团队课程设计博客链接https://www.cnblogs.com/choco1ate/p/12172223.html2.本组课题及本人任务本组课题&#xff1a;泡泡堂(炸弹人)游戏本人任务&#xff1a;Box类(游戏地图中的每个方格)Bomb类(游戏过程中的)游戏玩家输赢信息的文件储存3.需求分析Box类&#xff1a;该类为…...

《课程格子》的一个笔试题目

题目如下&#xff0c;感觉很适合喜欢琢磨的程序员&#xff0c;也是考验你编码风格的时候。 Lets make a tower defense game&#xff08;塔防游戏):1. You have 1 tower, with H health and D dps(damage per second).2. There are n attackers, each with h_i health and d_i …...

Android仿照超级课程表 or 课程格子 一键提取课表功能(方正系统)

参考文章http://blog.csdn.net/sbsujjbcy ,本文仿照‘ 安卓弟 提供的android 项目实战——打造超级课程表一键提取课表功能文章&#xff0c;对他的代码进行了修改和补充&#xff0c;为什么要修改呢&#xff1f;原因是安卓弟的那个源码版本过于老旧&#xff0c;很多方法已经过…...

北京python培训机构排名

现在Python语言火爆&#xff0c;更是受到国家的重视&#xff0c;甚至很多小学都开始开设课程进行学习&#xff0c;随之市场占有率也越来越高。由于Python简单直接&#xff0c;比较适合初学者学习&#xff0c;也让很多人想要通过Python培训机构进行学习&#xff0c;的确有好的老…...

【计算机视觉(CV)】基于图像分类网络VGG实现中草药识别(二)

【计算机视觉&#xff08;CV&#xff09;】基于图像分类网络VGG实现中草药识别&#xff08;二&#xff09; 作者简介&#xff1a;在校大学生一枚&#xff0c;华为云享专家&#xff0c;阿里云专家博主&#xff0c;腾云先锋&#xff08;TDP&#xff09;成员&#xff0c;云曦智划项…...

拥有直播美颜软件,人人都可是网红

泛娱乐时代下&#xff0c;高颜值成为当主播的硬性条件&#xff0c;不论是舞蹈、唱歌&#xff0c;甚至不用露脸的游戏主播&#xff0c;用户都要求主播有高颜值&#xff0c;及时不露脸&#xff0c;也要保证能符合自己期望的形象&#xff0c;不知何时起&#xff0c;颜值的潜在加分…...

关于美颜滤镜您了解多少?

每当说起美颜相信大家都不会太过陌生&#xff0c;毕竟是渗透在大家日常生活中的一个常见功能。有人问起小编第一次听到美颜是在什么时候&#xff1f;那回忆起来要具体落实在当年的一个产品上&#xff0c;这个就是美颜拍照手机&#xff0c;直到现在也依旧有许许多多的手机厂商打…...

应该如何选择直播美颜软件?看下这三个技巧吧

​说起网络直播&#xff0c;相信大家都不会陌生&#xff0c;直播平台中有着许许多多不同的版块提供给用户自主选择观看&#xff0c;游戏、美食、萌宠、户外、颜值这极大版块作为常年的热门&#xff0c;一直聚集着许多年轻群体&#xff0c;特别是“颜值区”。 今天小编就主要来…...

美颜SDK是什么?美颜SDK和美颜APP有什么区别?

当今的网络社交平台已经成了年轻人的必备&#xff0c;就拿小编自己来说吧&#xff0c;平时休息时间都会刷一些短视频&#xff0c;不知不觉间几个小时就过去了&#xff0c;对于宅男宅女来说&#xff0c;网络平台的使用时间甚至超过了现实。也正因现在“颜值至上”风气的产生&…...

美颜SDK架构技术分析

美颜SDK发展至今&#xff0c;功能早已不同于往日&#xff0c;相较于开始最基础的美白、磨皮&#xff0c;发展到现在的滤镜、3D面具等各种不同的功能。在这些新兴功能的背后&#xff0c;离不开强大的渲染能力以及美颜算法。那么&#xff0c;一款优质的美颜SDK应该如何搭建自己的…...

美颜直播调(20181224)

美颜直播调研&#xff08;20181224&#xff09;1. 直播美颜SDK&#xff08;非开源&#xff09;1.1 Face &#xff08;旷视科技&#xff09;美颜直播SDK1.2 涂图美颜直播SDK1.3 蓝色AR美颜直播SDK1.4 锐动天地美颜直播SDK1.5 又拍云美颜直播SDK1.6 拓幻美颜直播SDK1.7 金山云美颜…...

美颜相机android版,美颜相机手机版

美颜相机手机版是一款自拍软件&#xff0c;用户在使用了我们的软件拍照后&#xff0c;能让自己变的更加的有&#xff0c;魅力&#xff01;赶快来试试吧&#xff01;美颜相机手机版软件特色&#xff1a;1.一键美颜&#xff01;精致容颜立即呈现自拍必备&#xff01;超简单的傻瓜…...