avatar
Articles
40
Tags
0
Categories
0
Home
Archives
LogoLittleYのBlog
Search
Home
Archives

LittleYのBlog

CountDownLatch详解
Created2025-12-24
之前我们通过讨论ReentrantLock学习到了AQS的核心、公平与非公平锁的实现以及Condition的实现原理。但是之前所涉及到的都是非共享锁,也就是独占锁。今天我们来讨论基于AQS的共享模式实现的CountDownLatch组件。本文大体上会分为两部分进行讨论。第一部分为介绍CountDownLatch的使用,第二部分将通过源码来分析CountDownLatch的实现原理。 1. CountDownLatch的使用CountDownLatch是一个使用频率非常高的类, 是AQS共享模式的典型应用。它的名字翻译过来为:倒计时门闩。具体的使用如下所示: 123456789101112131415161718192021222324252627282930313233class Driver2 { // ... void main() throws InterruptedException { CountDownLatch doneSignal = new CountDownLatch(N); Executor e = ...
Endtoend Encrypted Traffic Classification with One dimensional Convolution Neural Networks
Created2025-12-24
此篇方法是第一个将端到端的方法应用到加密流量分类领域,使用数据集ISCX-VPN-NonVPN-2016数据集进行研究。 1、概念介绍1.1 流量加密技术依据ISO/OSI层的不同,加密技术可以分为 应用层加密:应用程序在应用层实现自己的协议以实现数据的安全传输(如BitTorrent或Skype),在一些论文中也称为常规加密。 表示层加密 网络层加密:如IPSec加密协议 1.2 常见加密协议 IPSec协议:网络层加密协议。分为传输与隧道两种模式 传输模式:在IP报头和高层协议报头中插入一个IPSec报头,该模式不会改变IP报头中的目的地址,源IP地址也保持明文状态。 隧道模式:报文的源IP地址以及数据被封装成一个新的IP报文,并在内部和外部报头之间插入一个IPSec报头,原来的IP地址作为需要进行安全业务处理的一部分来提供安全保护,并且该模式下,可以对整个IP报文进行加密操作,常用来实现虚拟专用网VPN。 SSL/TLS协议:传输层协议。对于TLS,简单地说,是在TCP层之上再封装了SSL层。安全套接层协议 SSL 提供应用层和传输层之间的数...
Git常用命令
Created2025-12-24
tags: 开发工具/git Git命令集合1. 提前配置12git config --global user.name USERNAME #配置用户名git config --global user.email USEREMAIL #配置用户邮箱 2. 提交步骤12345git init #初始化git仓库git status #查看文件状态git add #添加到缓存区,追踪文件git commit -m MESSAGE #提交信息,向仓库中提交代码git log #查看提交记录 3. Git撤销123git checkout FILENAME #用暂存区的文件覆盖工作目录中的文件git rm --cached FILENAME #将文件从暂存区删除git reset --hard COMMITID #将git仓库中指定的更新记录恢复出来,并覆盖暂存区和工作目录 4. Git分支1234567git branch #查看分支git branch 分支名称 #创建分支git checkout 分支名称 #切换分支git merg...
Deep Packet A Novel Approach For Encrypted Traffic Classification Using Deep Learning
Created2025-12-24
论文提出的方案称为“深度包”(deep packet),可以处理网络流量分类为主要类别(如FTP和P2P)的流量表征,以及需要终端用户应用程序(如BitTorrent和Skype)识别的应用程序识别。与现有的大多数方法不同,深度报文不仅可以识别加密流量,还可以区分VPN网络流量和非VPN网络流量。网络架构基于CNN与SAE,能同时进行应用识别与流量类型的分类任务。 1、介绍  准确的流量分类已成为提供适当的服务质量(quality of service, QoS)、异常检测等高级网络管理任务的先决条件之一。流量分类在与网络管理相关的学术界和工业界都引起了极大的兴趣。   本文贡献: 在Deep Packet中,不需要专家来提取与网络流量相关的特征。这种方法省去了查找和提取特征的繁琐步骤。(只要是基于DL的方法都能做到这一点) Deep Packet可以在两个粒度级别(应用程序识别和流量表征)上识别流量,并获得最先进的结果。 深度数据包可以准确地分类最难的一类应用程序,已知是P2P。 2、相关工作 Port-based approach(基于端口):提取过程简单,端口号不受...
InnoDB中MVCC的实现原理
Created2025-12-24
MVCC 在 MySQL InnoDB 中的实现主要是为了提高数据库并发性能,用更好的方式去处理读-写冲突,做到即使有读写冲突时,也能做到不加锁,非阻塞并发读。 本文将从以下几点进行讨论: 前置知识介绍; MVCC的原理; MVCC相关的问题 1. 前置知识介绍1.1 快照读和当前读当前读:像 select lock in share mode (共享锁), select for update; update; insert; delete (排他锁)这些操作都是一种当前读。就是它读取的是记录的最新版本,读取时还要保证其他并发事务不能修改当前记录,会对读取的记录进行加锁。 快照读: 不加锁的select操作就是快照读,即不加锁的非阻塞读。是基于提高并发性能的考虑,快照读的实现是基于多版本并发控制,即MVCC,可以认为MVCC是行锁的一个变种,但它在很多情况下,避免了加锁操作,降低了开销;既然是基于多版本,即快照读可能读到的并不一定是数据的最新版本,而有可能是之前的历史版本。 注意:快照读的前提是隔离级别不是串行级别,串行级别下的快照读会退化成当前读。 1.2 当前读,...
JVM中的引用
Created2025-12-24
JVM中的引用有五种,分别是:强引用、软引用、弱引用、虚引用、终结器引用(引用强度逐渐减弱)。区分这几种引用的主要原因是可以根据不同强度的引用来使用不同的垃圾回收策略。 1. 强引用(Strongly Reference)JVM中的默认的引用关系就是强引用,即对象被局部变量、静态变量等GC Root关联的对象引用,只要这层关系存在,普通对象就不能被回收。 2. 软引用(Soft Reference)软引用的引用强度弱于强引用,当一个程序的内存不足时,就会将软引用中的数据进行回收。 软引用主要用于实现缓存。如: 12345678910111213141516public class MyCache { private static Map<Integer, SoftReference<Object>> cache = new ConcurrentHashMap<>(); public static Map<Integer, SoftReference<Object>> getIns...
JVM介绍及结构
Created2025-12-24
1. 什么是JVM?JVM指的是Java虚拟机,本质上是一个运行在计算机上的程序,负责运行Java字节码文件。充当一个适配器的角色,以实现Java跨平台的特性。 1.1 JVM的功能 解释执行字节码指令 管理内存中对象的分配,完成自动的垃圾回收 优化热点代码以提升效率(JIT) 1.2 JVM的组成总体分为,类加载子系统、运行时数据区、执行引擎、本地方法接口四部分。如图: 2. 运行时数据区组成运行时数据区指的是JVM所管理的内存区域。按照是否线程共享分类,分为两类: 线程共享: 方法区、堆 线程不共享: 本地方法栈、虚拟机栈、程序计数器 如下图所示: 2.1 程序计数器(Program Counter Register)也叫PC寄存器,每个线程通过PC来记录当前要执行的字节码地址。主要作用有两个: 用于控制程序指令的进行,实现分支、跳转、异常等逻辑; 多线程下,JVM通过PC记录线程切换钱执行到哪一句指令,并继续解释执行。 2.2 虚拟机栈数据结构如其名,采用栈结构来管理方法调用中的基本数据,每个方法调用采用一个栈帧来保存。每个线程都会包含自己的虚拟机栈。因此,生...
Java内存模型(JMM)
Created2025-12-24
本文要讨论的是Java内存模型(JMM)。它的名字和JVM内存结构(见[[运行时内存详解]])很像,但是他们两个并不在一个层面,解决的问题也不一样。 Java 内存模型定义了 Java 语言如何与内存进行交互,具体地说是 Java 语言运行时的变量,如何与我们的硬件内存进行交互的。 而 JVM 内存模型,指的是 JVM 内存是如何划分的。 JMM是并发编程的基础,只有对JMM有一定了解才能更好的理解Java的一些高级特性,如:volatile等。因此本文将从以下几点进行讨论: 为什么要有Java内存模型? Java内存模型是什么? 并发编程的三个重要特性 1. 为什么要有Java内存模型?Java是从JDK1.5之后才开始使用新的Java内存模型。一般来说,编程语言是可以直接使用操作系统的内存模型的。但是由于Java是一个跨平台的语言,要求JVM层面屏蔽掉不同操作系统和不同硬件的差异。因此自定义了一套Java内存模型。 Java虚拟机规范中定义的Java内存模型(Java Memory Model,JMM),用于屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java...
Java相关笔记
Created2025-12-24
JVM相关[[JVM介绍及结构]] [[常见的垃圾回收器]] [[JVM中的引用]] [[关于双亲委派]] [[JVM中常见的垃圾回收算法]] [[运行时内存详解]] [[Java的对象头结构]] [[Java内存模型(JMM)]] [[类的生命周期及类加载器]] [[Java对象的创建过程]] 多线程相关[[线程的状态]] [[认识AQS]] [[关于Synchronized的一些讨论]] [[开启线程有几种方法?]] [[讨论几个Thread的常用API]] [[ReentrantLock详解(一)—— 加锁和解锁]] [[ReentrantLock详解(二)]] [[ReentrantReadWriteLock详解]] [[Semaphore详解]] [[CountDownLatch详解]] [[CyclicBarrier详解]] [[ThreadLocal详解]] MySQL[[扫盲——脏读、不可重复读、幻读]] [[InnoDB中MVCC的实现原理]] [[InnoDB中的Change Buffer是个啥?]] 设计模式[[设计模式——模版方法]] Netty [[NI...
Learning to Classify A Flow Based Relation Network for Encrypted Traffic Classification
Created2025-12-24
加密流量分类的挑战性问题: 网络数据的不平衡性 模型对真实数据的泛化能力 模型对数据大小的过度依赖。 1、概念介绍1.1 流量加密背景加密技术虽然保护了互联网用户的自由、隐私和匿名性,但也用户避开了防火墙的检测,绕过了监控系统。 由此导致的问题: 攻击者通过加密恶意软件流量来匿名入侵和攻击系统。 犯罪分子使用隐私增强工具(例如Tor)穿透黑暗网络,在那里他们可以购买毒品、武器和伪造的文件(如护照、驾照、提供合同杀手的媒体)来吸引客户. 1.2 流量分类技术的发展(综述部分) 基于端口号 基于有效载荷,也就是DPI方法。1,2只能针对非加密流量 基于流统计特征的方法,分类性能取决于人类的特征工程 基于深度学习的方法: 优点:端到端、具有相当高的学习能力 缺点: 不能解决数据中类的不均衡问题 训练好的模型不能很好适用于真是流量环境,泛化能力差 过分依赖数据集的大小与数据分布的好坏 1.4 文章核心观点引入对于一个新奇概念的样本,人类可以轻易根据对事物共同变化模式的了解,想象该样本在其他环境的样子。如果机器从辨别出在不同环境(原文这里称作幻觉(hallucinat...
12…4
avatar
LittleY
Articles
40
Tags
0
Categories
0
Follow Me
Announcement
欢迎光临
Recent Posts
CountDownLatch详解2025-12-24
Endtoend Encrypted Traffic Classification with One dimensional Convolution Neural Networks2025-12-24
Git常用命令2025-12-24
Deep Packet A Novel Approach For Encrypted Traffic Classification Using Deep Learning2025-12-24
InnoDB中MVCC的实现原理2025-12-24
Archives
  • December 2025 40
© 2025 By LittleY
Search
Loading Database