首页 文章 精选 留言 我的

精选列表

搜索[天玑9500],共10000篇文章
优秀的个人博客,低调大师

天杀的他们居然说 J2Cache 有后门,2.8.5 给它关上!

昨天有个朋友的公司要用 J2Cache ,然后用公司的一些工具对这个项目检测,居然发现 J2Cache 暗藏后门!!! 而且还截图给我看,如下图: 我的天啊,jansi.dll 我第一眼看到的这个名字以为是 : 监视.dll 原来是 J2Cache 使用的一个三方依赖 jline 包里包含了这个“后门”。不过大家也不用担心,因为 J2Cache 用 jline 只是一个测试小工具,用来对两级缓存进行测试的,实际作为缓存使用的时候并不会用到。 没有必要依赖这个项目,紧急发布了一个更新版本 2.8.5 ,去掉了 jline 这个依赖! 版本信息: <dependency> <groupId>net.oschina.j2cache</groupId> <artifactId>j2cache-core</artifactId> <version>2.8.5-release</version> </dependency> 建议更新。 是我无知了,这不是后门: 已经证实这不是一个后门,而是 jline 依赖了另外一个开源项目 jansi Jansi是一个 Java 类库,它能够让你在控制台输出色彩缤纷的文字。 示例代码: AnsiConsole.systemInstall(); AnsiConsole.out.println("HelloWorld");

优秀的个人博客,低调大师

聊会天,三次握手和四次挥手就被搞定了

PS:通俗一点的解释都会在引用块中 Nothing is true, Everything is permitted. 0. 什么是TCP TCP,全称Transmission Control Protocol,是一种面向连接、可靠的、基于字节流的单播协议。与我们常说的TCP/IP协议不同,TCP/IP是一个协议族,涉及到OSI模型中的网络层、应用层和应用层。而我们要聊的TCP就是在传输层的协议,现在应用的特别广泛的HTTP请求,就是基于TCP的。 1. 三次握手 所谓面向连接很好理解,就像我们要对远程服务器发出一个指令,首先我们需要登录上去。这个登录就是一个连接的过程。 在做数据交换之前,通信双方必须在彼此建立一条连接。也就是通信双方都维护了一份对方的信息,比如IP地址和端口号。说到建立连接,就不得不提到经典的三次握手和四次挥手。 1.1 为什么不两次握手 三次握手让通信双方都明确有一个连接正在建立,也为了确保客户端和服务器同时具有发送和接收的能力。而两次握手做不到这一点。我们现在从另外一个角度来看一下三次握手,那就是为什么要三次握手?我两次握手它不香吗?让我们用一段对话来模拟如果真的采用两次握手,会带来什么问题。 朋友:喂,喂?听得到吗 你:听得到...你声音能不能小点 这就是两次握手。 按照人的逻辑来说,这已经是一次正常的对话了是吧,下一步难道不是建立连接吗?说下一步之前,需要先了解做三次握手的目的是什么。三次握手让通信双方都明确有一个连接正在建立,也为了确保客户端和服务器同时具有发送和接收的能力。 我们来分析一下上面的那段对话。 朋友问你能不能听到,说明朋友具有发送能力;你听到了朋友的问题,说明你具有接收能力 如果只有两次握手,问题在哪儿呢? 站在朋友的角度,他知道你同时具有发送和接收能力 但站在你(服务器)的角度,你只知道朋友具有发送能力,因为你不知道你发的声音能不能小点,他到底有没有收到 服务器不清楚客户端是否有接收能力的情况下,就算数据包真的发出去了,但无法知道客户端是否收到了数据。这样的就是不可靠的连接了。 而且,真实的网络传输中,出现网络延迟是常有的事,如果客户端发送了请求建立连接的数据包,由于网络延迟,数据包没有到达,客户端又发了一次,服务器收到之后建立了连接。 但是当前的连接关闭后,由于网络延迟的没有到达的包到了服务器,服务器又建立了连接,但是此时客户端已经断开了,这样就白白浪费了服务器的资源。 如果觉得上面的例子还是不能让你理解, 为什么两次握手不行。请看下面这个终极例子。 朋友:快借我点钱,XX宝账号123XXXXXXXX 你:好的, 你的帐号是123XXXXXXXX吗 。。。。。。(无应答) 你的内心:?????? 如果你是被借钱的那个,你敢把钱转过去吗? 简单总结一下两次握手所带来的问题:不可靠,还会造成网络资源的浪费。 1.2 三次握手的过程 上面我们讨论了为什么要三次握手,接下来我们用几个专业术语来解释一下三次握手的过程。 服务器开始监听某个端口,此时服务器进入了LISTEN状态 客户端最初是CLOSED状态,然后向服务器发送一个SYN标志位的数据包,主动发起连接。客户端变成SYN-SENT状态 服务器接收到客户端的SYN数据包,通过标志位知道了客户端想要建立连接。于是回了客户端一个SYN和ACK,表示收到了请求。服务器的自身状态变为了SYN-RCVD 客户端收到了服务器的ACK,表示服务器知道了客户端想要建立连接。然后客户端再给服务器回了一个ACK表示自己收到了(或者说能够收到)服务器的消息,发送完这个ACK后,客户端的状态变成了ESTABLISH 服务器收到了客户端的ACK,服务器的状态也变成ESTABLISH 2. 四次挥手 2.1 模拟四次挥手 老规矩,还是让我们用一段对话来模拟TCP的四次挥手。 场景,你跟你的朋友们正在外面high 你:你们继续玩,我就先走了,明天还要上班(第一次) 老铁:(老铁看到你在跟他说话且从你说的话中知道你要走了,老铁也用肢体语言告诉你他知道你要走了)(第二次) 老铁:那好吧, 路上注意安全哈 (第三次) 你:好的,下次再约 (第四次) 这就是通俗版本的四次挥手的解释,下面从专业的角度来看看。 2.2 四次挥手的过程 我们来看一下完整的流程。 最初,客户端和服务器都处于ESTABLISH状态 客户端想要断开连接,便主动向服务器发送标志位为FIN的数据包。发送之后客户端的状态变为FIN-WAIT-1,同时客户端也变成了半关闭状态,即无法向服务器发送数据包了,只能接收来自服务器的数据 服务器收到客户端的FIN数据包,状态变为CLOSE-WAIT,并回给客户端一个表示确认的数据包ACK 客户端收到了ACK之后,状态变为FIN-WAIT-2 然后,服务器向客户端发送FIN数据包,服务器状态变为LAST-ACK 客户端收到FIN数据包,客户端状态变为TIME-WAIT。然后回一个确认数据包ACK给服务器 然后客户端等待2MSL,如果在这段时间内,没有收到服务器重发的消息,说明服务器收到了ACK 四次挥手到此结束,连接断开 我们再来模拟一次刚刚的场景。 场景,你跟你的朋友们正在外面high 你:你们继续玩,我就先走了,明天还要上班(第一次) 老铁:(老铁喝high了,反射弧无限延长) 你肯定得再说一次啊,给朋友说你要走了,于是你又说了一次。 你:你们继续玩,我就先走了,明天还要上班(第一次) 老铁:(老铁喝high了,反射弧无限延长) 。。。。。。 如此反复 实际情况是,如果是两次挥手,也就是把服务器给客户端的ACK和FIN合并为同一个,如果此时网络出现了延迟,站在客户端的角度来看,客户端会认为刚刚发送的FIN报文并没有到达服务器,于是会在再重新发送一次。如果延迟的时间较长,那么客户端将会一直重新发送FIN的TCP报文。 2.3 对比分析 结合抽象和具体的四次挥手,其实就很好理解了,我们用一个表格来总结一下。 描述状态 实际情况 你和你的朋友在外面high 客户端和服务器建立了连接 你和朋友说你要走了 客户端主动向服务器发送FIN,客户端状态变为FIN-WAIT-1 你的朋友听到了并理解了你要说的话,并通过肢体语言反馈给你他知道了 服务器收到FIN数据包,并回了一个ACK,服务器的状态变为CLOSE-WAIT。客户端收到ACK之后变为FIN-WAIT-2 你的朋友说“那好吧, 路上注意安全哈” 服务器向客户端发送FIN包,服务器变为LAST-CHECK。 你说“好的,下次再约” 客户端收到FIN包后状态变为TIME-WAIT。并回一个ACK给服务器。 你迟疑了一下,你的朋友并没有挽留你 客户端等待2MSL,如果没有收到服务器的重发消息,则说明服务器收到了ACK。 你离开了和朋友的聚会 四次挥手结束,连接断开 2.4 为什么要等待 MSL,即Maximun Segment LifeTime,报文最大生存时间。为什么在TIME-WAIT之后还需要等待2MSL呢?主要是两个原因,让我们结合例子来理解一下。 保证服务器收到ACK 假设你说了“好的,下次再约”。由于大家都在high,声音太大了。导致你的朋友没有听到你说的“好的,下次再约”这句话,然后你转头就走了。 如果你站在你朋友的角度,肯定会心里很不爽,好心提醒你,连句道别的话都没有? 这种情况就是服务器并没有收到客户端收到的ACK,站在服务器的角度,服务器并不知道客户端收到了自己发的FIN包。也就不会断开连接,但是客户端已经单方面的断开连接了。又造成了服务器的资源浪费,服务器也无法进入正常的关闭连接状态。 防止失效的数据包 同样,你说了”好的, 下次再约“后,你没有确认你的朋友是否听到了,扭头就走。你的朋友也喝多了,此时心里很不爽,骂了一句傻X。 这句话刚好被路过、站到了你刚刚站的位置上的哥们接住了,以为在说他,心里就很不爽,提着拳头就把你的朋友揍了一顿。 这种情况是指,客户端没有等待2MSL就直接断开,但是服务器此时仍然有些数据包需要发送,或者已经发了出去。但是数据包到了后,此时的端口已经被新的连接占用了,老的TCP报文就会与新连接的TCP报文冲突、混淆。 3. 结尾 后面如果我有时间,会继续尝试把枯燥的理论抽象成生活中一些简单的现象并且与专业的知识结合起来的文章风格,来帮助那些看理论知识很吃力的人。其实只要理解了整个思路,是不需要去死记硬背的。 如果文章中有不对的地方,还望各位大佬不吝赐教。 本篇文章已放到我的 Github github.com/sh-blog 中,欢迎 Star。微信搜索关注【SH的全栈笔记】,回复【队列】获取MQ学习资料,包含基础概念解析和RocketMQ详细的源码解析,持续更新中。 如果你觉得这篇文章对你有帮助,还麻烦点个赞,关个注,分个享,留个言。

优秀的个人博客,低调大师

这里,看懂无人零售业态的现在与未来只需3天!

零售回归线下,无人零售业态成新风口 零售行业的变革已然到来!2016年10月,马云提出新零售概念,自此零售业线上线下大融合的理念被业界广泛认可,技术俨然成为这一轮线上线下融合的强力催化剂,众多新技术如大数据、云计算、人工智能、图像识别及生物支付等的应用,加速零售的智能化进程,同时,在零售智能化发展的进程中,数据正扮演着“零售业原料”(马云语)的角色,重要性不言而喻! 数据的重要性相当程度地改变了零售行业的传统观念,加速了零售业在技术上的迭代进程,藉由数据衍生的诸多数据采集技术、供应链管理、物流应用等已成为零售行业的重要角逐点。 尽管国内两大线上巨头(阿里巴巴及京东)的增长依然保持高速,但其未来的增量空间显然已颇有限,这也是两大巨头近来频频发力线下的首要原因,线上的增长已快接近“天花板”。但就整体而言,线下依然占据整体零售业市场80%以上的份额,可以预见,线下将成为未来零售市场竞争最为重要的战场! 目前,我国GDP增速呈减缓之势,实体经济将成最为重要的发展引擎。国家在实体经济的发展上不遗余力,政策的天平亦在向其倾斜。作为实体经济重要组成部分的线下零售市场,正享受着天时地利的优势,政策、资本及技术三者合力下的零售行业正迎来突飞猛进地变革。 长远而言,线下实体零售被持续看好,但政策、资本及技术都有其滞后性,实体零售的现状正面临着转型之痛,人工、租金及水电等成本的持续增长在不断压榨着传统零售商的利润,业绩低迷、下滑、亏损乃至关门歇业几近业界常态,再加上线上巨头们纷纷布局线下,企图分一杯羹,使得传统零售商不得不面临两难选择,不变则等死,变则可能求生。 零售新业态在不断涌现,其中,无人零售的诞生堪称当下实体零售的一抹亮色,得益于支付、生物识别、人工智能及RFID等相关配套技术的成熟,无人零售在提升购物体验的同时,亦在一定程度上缓解了零售商在人工及租金等方面的支出,一时之间,深兰科技、缤果盒子、F5未来商店、小麦便利店、便利蜂等诸多主打无人零售业态的企业成为资本市场的宠儿,纷纷获得千万级乃至亿元级的融资,资本新近的动作则是每日优鲜便利购宣布完成2亿美元A+B轮融资,其中腾讯领投A轮合计5300万美金,元生资本、时代资本、KTB跟投;鼎晖领投B轮合计1.44亿美金。 野蛮生长的背后,业界交流平台成急需 无人零售业态野蛮生长的背后,一则说明当前线下实体零售确实需要新业态的加入,以激活原有的存量市场;二则亦反映出当下实体零售所面临的问题,如人力、租金等成本的持续增加等。准确地说,当下的无人零售业态主要是指无人便利店、无人货柜及无人货架这几类。就无人货架而言,无论是资深行业人士还是专业媒体从业者,普遍的观感是大家为了所谓的抢点都在烧钱,这跟当初的共享出租、共享单车颇为相似,无人货架竞争的最后,会不会演变成当下共享出租、共享单车的局面?这对广大参与者而言是一个颇值得深思的问题,因此相关的探讨就显得颇为必要了。 对无人便利店及无人货柜而言,一个较为普遍的现象是传统的零售创业者们都对此保持浓厚兴趣,但涉及到的相关技术非常多,想RFID、二维码、计算机视觉识别、重力感应识别等等,大家对各种技术的优劣与应用场合并不了解,有一种不得其门而入的感觉,因此行业内相应技术的展示与交流就显得适逢其时,这正是主办方物联传媒举办2018中国国际零售信息化暨无人售货展的初衷。 全力打造零售及无人售货业界朋友交流及合作的平台 作为一家专业的展会服务机构,物联传媒(www.ulinkmedia.cn)成立于2005年,是国内领先的物联网专业传媒机构。其IOTE&ISHE两大展会品牌经历多年发展,已成为业界发展的风向标,多项平台和服务都创造了业界第一,是目前业界浏览量最多,影响力最大,人气最旺,企业和个人用户支持率最高的行业综合物联网平台。 2018年,为更好的为零售业界朋友搭建一个广泛交流与合作的平台,物联传媒将于4月25日-27日在苏州国际博览中心举行2018中国(苏州)国际零售信息化暨无人售货展,展位面积超过2万平米,而7月31日-8月2日在深圳会展中心举行的2018中国(深圳)国际零售信息化暨无人售货展,展位面积更是超过了5万平米!届时,主办方将邀请国内外零售一线设备商、软硬件服务商、方案集成商、第三方研究机构及业界知名人士等共同参与,为零售业界朋友提供一站式的交流、合作、资源对接平台! 本文出处:畅享网 本文来自云栖社区合作伙伴畅享网,了解相关信息可以关注vsharing.com网站。

优秀的个人博客,低调大师

怎样三天训练出AI围棋大师?教你AlphaGo Zero的3个trick

本文来自AI新媒体量子位(QbitAI) 过去一年,AI领域最exciting的进展可能要数AlphaGo的不断进步。AlphaGo Zero不仅提出了新的网络架构,也带来了一些新的神经网络训练技巧。 虽然DeepMind发表了论文,并在Reddit论坛上进行了一次公开答疑,后来还有人将AlphaGo Zero的算法实现了出来,但如何训练?其中有哪些trick? 发表在HackerNoon上的一篇最新博客文章做出了直观的解读: 先从AlphaGo各个版本一脉相承的两种方法说起:一是前瞻的蒙特卡洛树搜索,二是凭“直觉”来对落子位置进行评估,也就是DeepMind所说的策略网络和价值网络。这两种方法结合起来,构成了每一版AlphaGo的核心。 从更高的层面讨论,AlphaGo Zero的工作方式和AlphaGo差不多,它们都使用了基于MCTS

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册