自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

阿亮的博客

现实喜欢对称和轻微的时空错移

转载 HTTP,HTTP2.0,SPDY,HTTPS你应该知道的一些事

转自:https://www.cnblogs.com/wjlog/p/5827168.html   web始祖HTTP,全称:超文本传输协议伴随着计算机网络和浏览器的诞生,HTTP 1.0随着而来,处于计算机网络中 的应用层,HTTP是建立在TCP协议之上的,所以HTTP协议的瓶颈及其优化技...

2018-09-06 16:30:33

阅读数 421

评论数 0

原创 网络基础 - 用户访问一个网站的过程的描述

网络基础 - 用户访问一个网站的过程的描述       1.当我们打开浏览器输入网址回车,到看到网页页面.  是一个非常复杂的过程,听我细细道来:   DNS解析   大家都知道,计算机之间只能通过ip相互通信,因为ip不好记,于是才使用dns服务器把域名解析为相应的额ip,这里以...

2018-09-04 15:04:47

阅读数 1573

评论数 0

原创 Linux — lsof和netstat命令

lsof命令   它可以列出某个进程打开的所有文件信息,打开的文件可能是普通文件,目录,nfs文件,块文件,字符文件,共享库 ,常规管道命名管道,符号链接,socket流,网络socket,UNIX域socket. 1.不带任何参数运行lsof会列出所有进程打开的所有文件(lsof -h ...

2018-07-29 23:52:27

阅读数 415

评论数 0

原创 Linux — POSIX 线程基础

线程对于Linux后台程序员来说并不陌生,线程带给我们并发能力的提升,也提高了软件开发和问题定位的难度,本文 尝试结合GlibC 代码, 对POSIX的线程做一个简单说明,重点介绍线程的创建,释放和连接上需要注意的问题。 多进程和多线程的都只有一个目的,并行处理,提高CPU利用率。相比进程,线...

2018-07-29 11:09:07

阅读数 235

评论数 0

原创 原子计数操作 — _syn_fetch_and_add等12个操作

原子计数操作  — _syn_fetch_and_add等12个操作         多线程计数操作,共享状态或者统计相关时间次数,这些都需要在多线程之间共享变量和修改变量,如此就需要在多线 程间对该变量进行互斥操作和访问.我们谭老先生早都说过了! ++i 和 i++都是不是原子性的,...

2018-07-16 22:01:14

阅读数 290

评论数 0

原创 操作系统 — 浅析基于glibc的malloc

浅析基于glibc的mallocLinux的虚拟内存管理有几个关键概念:

2018-07-12 15:26:46

阅读数 244

评论数 0

原创 mysql — 客户端与服务端之间的能力谈判

mysql  —  客户端与服务端之间的能力谈判我们在了解mysql协议的时候

2018-07-05 09:35:26

阅读数 323

评论数 0

原创 mysql — 基于协程的mysql异步代理服务

基于协程的mysql异步代理服务最近在腾讯实习

2018-07-03 18:26:52

阅读数 1710

评论数 2

原创 mysql网络协议分析

mysql网络协议分析我们从客户端本地登陆一个mysql的用户以及使用mysql命令获得想要的消息.  需要去请求mysql的服务器,这个时候就需要用到mysql的网络通信协议.  当你打算编写数据库的代理服务器,数据库的中间件,这些直接对数据包进行直接操作的组件时,你必须了解到mysql网络通信...

2018-07-03 15:14:41

阅读数 2422

评论数 0

转载 常见加密算法 boost SHA1

mysql常见加密算法 boost SHA1#include <boost/uuid/sha1.hpp> #include <iostream> /* @brief SHA1摘要算法:一种很重要的密码学算法,可将任意长度的...

2018-06-18 18:24:14

阅读数 1642

评论数 0

原创 了解吞吐量(TPS),QPS,并发数,响应时间(RT)概念

了解吞吐量(TPS),QPS,并发数,响应时间(RT)概念1.响应时间(RT)响应时间是指系统对请求做出响应的时间. 直观上看,这个指标与人对软件性能的主观感受是非常一致的,因为它完整的记录了整个计算机系统处理请求的时间. 由于一个系统通常会提供许多的功能,而不同功能的处理逻辑也千差万别,因而不同...

2018-06-18 18:22:52

阅读数 1185

评论数 0

原创 Redis学习笔记(一)

初识Redis首先Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库,Redis支持数据的持久化,可以将内存中的数据保存到磁盘中,重启的时候可以进行再次加载使用,Redis不仅仅支持简单的Key-Value类型的数据,同时还提供list,set,zset,hash等...

2018-04-11 11:00:21

阅读数 255

评论数 0

原创 浅析Protobuf数据格式

浅析Protobuf数据格式Protobuf是Google开源的一款类似于Json,XML数据交换格式,其内部数据是纯二进制格式,不依赖于语言和平台,具有简单,数据量小,快速等优点. 目前用于序列化于反序列化官方支持的语言有C++,C#,JAVA,PYTHON. 适用于大小在1M以内的数据,因为像...

2018-04-10 16:28:07

阅读数 1028

评论数 0

原创 网络基础 — TCP的流量控制和拥塞控制

TCP的流量控制和拥塞控制1.利用滑动窗口实现流量控制  如果发送方把数据发送的过快,接收方可能会来不及接受,这就会造成数据的丢失,所谓流量控制就是让发送方的发送速率不要太快.要让接收方来得及接收. 利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制.TCP为每一个连接设有一个持续计...

2018-03-13 00:18:39

阅读数 364

评论数 1

原创 网络基础 — 阅读源码后理解epoll的一个错误纠正

阅读源码后理解epoll的一个错误纠正之前我在这里这篇博客 :epoll的简单结构把epoll吹上天了,但是对于epoll的理解,昨天我牛客网上面看到了一个赛罗奥特曼的帖子! 不愧是奥特曼! 它的观点是epoll当中并没有内存映射的实现,拥有内存映射这是一个错误的观点! 我就点进去看了一看源码! ...

2018-03-12 14:25:15

阅读数 741

评论数 0

原创 操作系统 — 了解CPU cache

CPU cacheCache一词源自法语,其原意为"藏匿处,隐藏的地方". Cache被应用于计算机科学之后,专指CPU与主内存之间的存储器高速缓冲器,Cache的出现是为了缓解CPU的存储需求与主内存的存取性能之间越来越大的差距.现代CPU的Cache都是集成在片内的,越靠近...

2018-03-11 11:10:13

阅读数 548

评论数 0

原创 操作系统 — 协程的简单理解

协程的简单理解协程是一种用户态的轻量级线程, 我们的server的发展如下:IO密集型应用:多进程 -> 多线程 ->事件驱动 ->协程  CPU密集型应用:多进程->多线程 如果说多进程对应多CPU,多线程对应多核CPU,那么事件驱动和协程...

2018-03-10 17:44:43

阅读数 1264

评论数 0

原创 数据结构 — 多阶哈希表

多阶哈希表昨天在腾讯面试的时候,面试官问到我数据结构的时候,可能因为因为我前面答的还还不错就扩展了一下,在我之前对哈希的认知我知道的其实只有开放定制法和开链法这种操作,不过当面试官问到多阶哈希和一致性哈希这种东西的时候! ??? 问的我一脸懵逼! 还是平时学习还是不够细致,对知识点没有扩展性的了解...

2018-03-10 13:21:32

阅读数 1260

评论数 0

原创 网络基础 — https和http之间的区别与联系

https和http之间的区别与联系超文本传输协议HTTP协议被用于在web服务器和网站服务器之间传递消息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密.如果攻击者截取了web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信...

2018-03-05 23:34:42

阅读数 691

评论数 0

原创 大数据处理 — 浅析MapReduce之shuffle

浅析MapReduce -> shuffleshuffle的意思就是洗牌,它是MapReduce的核心,也是被称为奇迹发生的地方,因为MapReduce玩的就是洗数据,然后让数据出现在该出现的位置.官方描述的shuffle过程,我们不太可能明白shuffle的过程,因为它与事实相差挺...

2018-03-05 11:19:31

阅读数 238

评论数 0

原创 大数据处理 — mapreduce的简易见解

大数据处理  — mapreduce的简易见解MapReduce是一种编程模型,用于大规模数据集的并行运算. 概念 Map(映射)和 Reduce(归约), 是他们的主要思想,它极大方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上. 当前的软件实现是指定一个Map(映射)...

2018-03-04 23:26:20

阅读数 3580

评论数 0

原创 GIT — github的代码上传成功但是不显示绿格子解决方案

github的代码上传成功但是不显示绿格子解决方案这个问题可算是困扰了我很久很久,之前一直都是只有创建了一个仓库绿格子才会亮,然后创建仓库之后所有往这个仓库提交的代码,绿格子就完全不会亮,这个就让我很头疼. 之前一直听说是因为绑定邮箱错误所以绿格子不会亮,我自认为既然代码能上传上去那么邮箱肯定没问...

2018-02-16 22:36:43

阅读数 2472

评论数 2

原创 网络基础 — TCP粘包浅析

TCP粘包浅析 粘包问题其实呢还是很容易理解的,从缓冲区来看,后一包的数据的头部紧接着前一包数据的尾部,使得接收方不能准确的读取一包数据,也就是 接收方多读或少读一包数据所造成的现象就是粘包现象. 粘包问题只会在TCP的长连接时才可能发送,因为TCP是面向字节流的,以流的方式处...

2018-02-01 18:33:31

阅读数 253

评论数 0

原创 网络基础 — 浅析IP/TCP协议分片

浅析IP/TCP协议分片 首先我们需要知道一个概念,MTU是链路层中的网络对数据帧的一个限制,以以太网为例,MTU为1500个字节. 一个IP数据报在以太网中传输,如果它 的长度大于该MTU值,就要进行分片传输,使得每片数据报的长度小于MTU. 分片传输的P数据报不一定按序...

2018-01-31 19:52:56

阅读数 348

评论数 0

原创 网络基础 — 浅析ARP协议

浅析ARP协议 MAC地址是用于物理上直接连接的机器相互通信,IP地址是用于不同网络中间的机器相互通信 ,这是由传统的以太网的拓扑结构决定的. 要想了解ARP的作用,首先需要分清两个"地址"(1)TCP/IP的32bit ip地址. 仅知道主机的IP地址不能...

2018-01-30 19:25:53

阅读数 249

评论数 0

原创 操作系统 — 浅析条件变量

浅析条件变量 Single UNIX Specification目前定义了条件变量的两个属性:进程共享属性和时钟属性. 条件变量的作用用于多线程之间关于共享数据状态变化的 通信. 当一个动作需要另外一个动作完成时才能进行时. 也就是说:当一个线程的行为依赖于另外一个...

2018-01-23 11:18:04

阅读数 281

评论数 0

原创 操作系统 — 线程和fork

线程和fork 对于fork相信大家都已经熟悉的不能再熟悉了! 我们最近学习到了线程,我们都知道了新创建的线程可以访问进程的地址空间,并且继承调用线程 的浮点环境和信号屏蔽字.线程中都可以访问到进程的分别有: 1.文件描述符表 2.每种信号的处理方式 3.当前工作目录 4....

2018-01-23 09:17:57

阅读数 290

评论数 0

原创 操作系统 — 信号量 记录锁 互斥量之间的区别

信号量 记录锁 互斥量之间的区别 如果多个进程间共享一个资源,则可以使用这三种技术中的一种来协调访问. 我们可以使用映射到两个进程地址空间中的信号量,记录锁或者互斥 量. 对于这三种技术两两之间在时间上的差别进行比较是有益的. 若使用信号量,则先创建一个包含一个成员...

2018-01-21 16:56:53

阅读数 512

评论数 0

原创 操作系统 — 生产者消费者模型

生产者消费者模型 所谓的生产者消费者模型就是一个类似于队列一样的东西串起来,这个队列可以想像成一个存放产品的"仓库",生产者只需要关心这个"仓库",并 不需要关心具体的消费者,对于生产者而言甚至都不知道有这些消费者存在. 对于消费...

2018-01-21 15:35:34

阅读数 950

评论数 0

原创 操作系统 — 竞争条件

竞争条件 当多个进程都企图对共享数据进行某种处理,而最后的结果又取决于进程运行的顺序时,我们认为发生了竞争条件. 如果fork之后的某种逻辑显示 或者隐式的依赖于在fork之后是父进程先运行还是子进程先运行,那么fork函数就会使竞争条件活跃的滋生地.通常 我们不能预料到哪...

2018-01-19 15:52:30

阅读数 1879

评论数 0

原创 操作系统 — 捕捉信号

捕捉信号从上篇浅析信号中我们了解到信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作为软中断. 从它的命名可以看出来它的实质和使用和中断非常相似,所以,信号也可以说是进程控制的一部分.软中断信号用来通知进程发生了异步事件. 进程之间可以互相通过系统调用kill发送软中断信号...

2018-01-19 12:50:57

阅读数 567

评论数 1

原创 操作系统 — 浅析信号

浅析信号首先每个信号都有一个名字,这些名字都以3个字符SIG开头.例如,SIGABRT是夭折信号,当进程调用abort函数时产生这种信号.SIGALRM是闹钟信号,由alarm函数设置的定时器超时后将产生这种信号. 信号的种类是非常庞大的. 在头文件<signal.h>...

2018-01-18 17:51:04

阅读数 697

评论数 0

原创 操作系统 — 浅析硬链接和软链接

 浅析硬链接和软链接上一篇我们了解到文件系统,我们了解到文件系统的结构包括超级块,inode节点,以及数据块, 其中inode节点包含了inode数组,数组当中存在许多的inode节点.然后每一个文件或者目录都有自己对应的inode,其中我们又引出了其中每一个inode的节点当中有一个链接计数,记...

2018-01-14 20:02:08

阅读数 870

评论数 0

原创 操作系统 — 文件系统

文件系统 在unix文件系统是unix系统的心脏部分,提供了层次结构的目录和文件.文件系统将磁盘空间划分为每1024个字节为一组,称为块(也有用512字节) 为一块的.编号从0到整个磁盘空间的最大块数. 在unix当中,之前我们在文件描述符 文件表项 v节点表项符当...

2018-01-14 16:25:45

阅读数 750

评论数 0

原创 C++总结 — C++知识导论图

C++知识导论图以上就是C++的知识的一点总结,当然这也只是延伸到面,并没有延伸到点. 具体更加细致的知识点需要你更加努力的学习. 上面的知识点我基本也有对应的博客,特别是面向对象那块的我写的应该还是蛮仔细的. 如果不够了解这些知识的人类可以点开C++专栏找到对应的知识点.  还有由于上转图片有限...

2018-01-14 09:52:38

阅读数 1610

评论数 35

原创 C++小项目 — 基于huffman压缩算法的文件压缩项目

基于huffman压缩算法的文件压缩项目 今天我们来看看一个小项目.

2018-01-04 16:37:02

阅读数 713

评论数 0

原创 linux — 浅析文件描述符 文件表项 v节点表项

浅析文件描述符 文件表项 v节点表项符 文件描述符在Linux编程里随处可见,设备读写,网络通信,进程通信. 可是文件描述符到底是什么? 文件描述符是一个简单的整数,用以标明每一个 被进程所打开的文件和socket. 第一个打开的文件时0,第二个是1,以此类推. linux...

2018-01-03 15:10:49

阅读数 1041

评论数 0

原创 Linux — 浅析静态库和动态库

浅析静态库和动态库 呵呵呵呵

2018-01-01 16:05:11

阅读数 264

评论数 0

原创 C语言总结 — 知识点导论图

C语言知识点导论图 上图相应的知识点我大多都会有一篇关于此知识点介绍更多的博客,如果概念不是很清楚,可以从C语言专栏进去寻找相应博客. 还有由于上转图片 有限制所以字体来说,不是很清楚,如果需要原图的话留下邮箱 我给大家发送~  如果有哪些遗漏的知识点还请大家不啬赐...

2017-12-29 21:07:10

阅读数 1857

评论数 69

原创 STL — hash_map/hash_set源代码剖析

 hash_map/hash_set源代码剖析虽然STL只规范复杂度与接口,并不规范实现方法,但STL set多半以RB_Tree. SGI 则是在 STL标准之外另又提供了一个所谓的hash_set,以hashTable的底层机制. 由于hash_set所供应的操作接口,hashTable都提供...

2017-12-27 12:39:18

阅读数 243

评论数 0

提示
确定要删除当前文章?
取消 删除