<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[阿亮的博客]]></title><description><![CDATA[现实喜欢对称和轻微的时空错移]]></description><link>https://blog.youkuaiyun.com/Dawn_sf</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Dawn_sf]]></copyright><item><title><![CDATA[HTTP,HTTP2.0,SPDY,HTTPS你应该知道的一些事]]></title><link>https://blog.youkuaiyun.com/Dawn_sf/article/details/82461495</link><guid>https://blog.youkuaiyun.com/Dawn_sf/article/details/82461495</guid><author>Dawn_sf</author><pubDate>Thu, 06 Sep 2018 16:30:33 +0800</pubDate><description><![CDATA[转自：https://www.cnblogs.com/wjlog/p/5827168.html

 

web始祖HTTP，全称：超文本传输协议伴随着计算机网络和浏览器的诞生，HTTP 1.0随着而来，处于计算机网络中

的应用层，HTTP是建立在TCP协议之上的，所以HTTP协议的瓶颈及其优化技巧都是基与TCP协议本身的特性，例

如建立TCP连接的三次握手和断开连接的4次挥手以及每次建立连接带...]]></description><category></category></item><item><title><![CDATA[网络基础 - 用户访问一个网站的过程的描述]]></title><link>https://blog.youkuaiyun.com/Dawn_sf/article/details/82382399</link><guid>https://blog.youkuaiyun.com/Dawn_sf/article/details/82382399</guid><author>Dawn_sf</author><pubDate>Tue, 04 Sep 2018 15:04:47 +0800</pubDate><description><![CDATA[网络基础 - 用户访问一个网站的过程的描述

 

 

 

1.当我们打开浏览器输入网址回车，到看到网页页面.  是一个非常复杂的过程，听我细细道来：

 

DNS解析

 

大家都知道，计算机之间只能通过ip相互通信，因为ip不好记，于是才使用dns服务器把域名解析为相应的额ip，这里以

解析www.baidu.com为例，当我们输入回车之后，浏览器会首先查询浏览器的缓存，这个缓存存活...]]></description><category></category></item><item><title><![CDATA[Linux  — lsof和netstat命令]]></title><link>https://blog.youkuaiyun.com/Dawn_sf/article/details/81277344</link><guid>https://blog.youkuaiyun.com/Dawn_sf/article/details/81277344</guid><author>Dawn_sf</author><pubDate>Sun, 29 Jul 2018 23:52:27 +0800</pubDate><description><![CDATA[lsof命令

 

它可以列出某个进程打开的所有文件信息，打开的文件可能是普通文件，目录，nfs文件，块文件，字符文件，共享库

，常规管道命名管道，符号链接，socket流，网络socket，UNIX域socket.

1.不带任何参数运行lsof会列出所有进程打开的所有文件(lsof -h 查看参数)

2.列出那些进程使用某些文件



lsof /usr/local/apache2/lo...]]></description><category></category></item><item><title><![CDATA[Linux   —  POSIX 线程基础]]></title><link>https://blog.youkuaiyun.com/Dawn_sf/article/details/81268768</link><guid>https://blog.youkuaiyun.com/Dawn_sf/article/details/81268768</guid><author>Dawn_sf</author><pubDate>Sun, 29 Jul 2018 11:09:07 +0800</pubDate><description><![CDATA[线程对于Linux后台程序员来说并不陌生，线程带给我们并发能力的提升，也提高了软件开发和问题定位的难度，本文

尝试结合GlibC 代码， 对POSIX的线程做一个简单说明，重点介绍线程的创建，释放和连接上需要注意的问题。

多进程和多线程的都只有一个目的，并行处理，提高CPU利用率。相比进程，线程的优势体现在以下几个方面：

1.线程创建销毁开销小于进程

2.线程上下文切换开销小于进程

3....]]></description><category></category></item><item><title><![CDATA[原子计数操作  — _syn_fetch_and_add等12个操作]]></title><link>https://blog.youkuaiyun.com/Dawn_sf/article/details/81072411</link><guid>https://blog.youkuaiyun.com/Dawn_sf/article/details/81072411</guid><author>Dawn_sf</author><pubDate>Mon, 16 Jul 2018 22:01:14 +0800</pubDate><description><![CDATA[原子计数操作  — _syn_fetch_and_add等12个操作

 

 

 

 

多线程计数操作，共享状态或者统计相关时间次数，这些都需要在多线程之间共享变量和修改变量，如此就需要在多线

程间对该变量进行互斥操作和访问.我们谭老先生早都说过了！ ++i 和 i++都是不是原子性的，本质上为三步：

1. 从缓存取到寄存器

2. 在寄存器中加1

3. 再存入缓存

但是有时候由于...]]></description><category></category></item><item><title><![CDATA[操作系统  — 浅析基于glibc的malloc]]></title><link>https://blog.youkuaiyun.com/Dawn_sf/article/details/80999962</link><guid>https://blog.youkuaiyun.com/Dawn_sf/article/details/80999962</guid><author>Dawn_sf</author><pubDate>Thu, 12 Jul 2018 15:26:46 +0800</pubDate><description><![CDATA[浅析基于glibc的mallocLinux的虚拟内存管理有几个关键概念：]]></description><category></category></item><item><title><![CDATA[mysql  —  客户端与服务端之间的能力谈判]]></title><link>https://blog.youkuaiyun.com/Dawn_sf/article/details/80921376</link><guid>https://blog.youkuaiyun.com/Dawn_sf/article/details/80921376</guid><author>Dawn_sf</author><pubDate>Thu, 05 Jul 2018 09:35:26 +0800</pubDate><description><![CDATA[mysql  —  客户端与服务端之间的能力谈判我们在了解mysql协议的时候]]></description><category></category></item><item><title><![CDATA[mysql — 基于协程的mysql异步代理服务]]></title><link>https://blog.youkuaiyun.com/Dawn_sf/article/details/80900674</link><guid>https://blog.youkuaiyun.com/Dawn_sf/article/details/80900674</guid><author>Dawn_sf</author><pubDate>Tue, 03 Jul 2018 18:26:52 +0800</pubDate><description><![CDATA[基于协程的mysql异步代理服务最近在腾讯实习]]></description><category></category></item><item><title><![CDATA[mysql网络协议分析]]></title><link>https://blog.youkuaiyun.com/Dawn_sf/article/details/80800183</link><guid>https://blog.youkuaiyun.com/Dawn_sf/article/details/80800183</guid><author>Dawn_sf</author><pubDate>Tue, 03 Jul 2018 15:14:41 +0800</pubDate><description><![CDATA[mysql网络协议分析我们从客户端本地登陆一个mysql的用户以及使用mysql命令获得想要的消息.  需要去请求mysql的服务器，这个时候就需要用到mysql的网络通信协议.  当你打算编写数据库的代理服务器，数据库的中间件，这些直接对数据包进行直接操作的组件时，你必须了解到mysql网络通信协议底层的原理.服务器会使用TCP监听本地socket端口或者本地socket连接. 当一个客户端的连...]]></description><category></category></item><item><title><![CDATA[常见加密算法 boost SHA1]]></title><link>https://blog.youkuaiyun.com/Dawn_sf/article/details/80725561</link><guid>https://blog.youkuaiyun.com/Dawn_sf/article/details/80725561</guid><author>Dawn_sf</author><pubDate>Mon, 18 Jun 2018 18:24:14 +0800</pubDate><description><![CDATA[mysql常见加密算法 boost SHA1#include &amp;lt;boost/uuid/sha1.hpp&amp;gt;  
#include &amp;lt;iostream&amp;gt;  
/*  @brief 
    SHA1摘要算法:一种很重要的密码学算法,可将任意长度的文本压缩成20个字节的 
    独一无二的的摘要(uuid名字生成器使用该算法) 
*/  
using namespace boo...]]></description><category></category></item><item><title><![CDATA[了解吞吐量(TPS)，QPS，并发数，响应时间(RT)概念]]></title><link>https://blog.youkuaiyun.com/Dawn_sf/article/details/80725020</link><guid>https://blog.youkuaiyun.com/Dawn_sf/article/details/80725020</guid><author>Dawn_sf</author><pubDate>Mon, 18 Jun 2018 18:22:52 +0800</pubDate><description><![CDATA[了解吞吐量(TPS)，QPS，并发数，响应时间(RT)概念1.响应时间(RT)响应时间是指系统对请求做出响应的时间. 直观上看，这个指标与人对软件性能的主观感受是非常一致的，因为它完整的记录了整个计算机系统处理请求的时间. 由于一个系统通常会提供许多的功能，而不同功能的处理逻辑也千差万别，因而不同功能的处理逻辑也千差万别，因而不同功能的响应时间也不尽相同，甚至同一功能能在不同输入数据的情况下响应时...]]></description><category></category></item><item><title><![CDATA[Redis学习笔记(一)]]></title><link>https://blog.youkuaiyun.com/Dawn_sf/article/details/79891947</link><guid>https://blog.youkuaiyun.com/Dawn_sf/article/details/79891947</guid><author>Dawn_sf</author><pubDate>Wed, 11 Apr 2018 11:00:21 +0800</pubDate><description><![CDATA[初识Redis首先Redis是完全开源免费的，遵守BSD协议，是一个高性能的key-value数据库，Redis支持数据的持久化，可以将内存中的数据保存到磁盘中，重启的时候可以进行再次加载使用，Redis不仅仅支持简单的Key-Value类型的数据，同时还提供list，set,zset,hash等数据结构的存储. Redis支持数据的备份，既master-slave模式的数据备份. Redis的所...]]></description><category></category></item><item><title><![CDATA[浅析Protobuf数据格式]]></title><link>https://blog.youkuaiyun.com/Dawn_sf/article/details/79882382</link><guid>https://blog.youkuaiyun.com/Dawn_sf/article/details/79882382</guid><author>Dawn_sf</author><pubDate>Tue, 10 Apr 2018 16:28:07 +0800</pubDate><description><![CDATA[浅析Protobuf数据格式Protobuf是Google开源的一款类似于Json,XML数据交换格式，其内部数据是纯二进制格式，不依赖于语言和平台，具有简单，数据量小，快速等优点. 目前用于序列化于反序列化官方支持的语言有C++，C#，JAVA，PYTHON. 适用于大小在1M以内的数据，因为像在移动设备平台，内存是非常珍贵的.使用的方法也比较简单：1.定义用于消息文件.proto2.使用pro...]]></description><category></category></item><item><title><![CDATA[网络基础  — TCP的流量控制和拥塞控制]]></title><link>https://blog.youkuaiyun.com/Dawn_sf/article/details/79528731</link><guid>https://blog.youkuaiyun.com/Dawn_sf/article/details/79528731</guid><author>Dawn_sf</author><pubDate>Tue, 13 Mar 2018 00:18:39 +0800</pubDate><description><![CDATA[TCP的流量控制和拥塞控制1.利用滑动窗口实现流量控制  如果发送方把数据发送的过快，接收方可能会来不及接受，这就会造成数据的丢失，所谓流量控制就是让发送方的发送速率不要太快.要让接收方来得及接收. 利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制.TCP为每一个连接设有一个持续计时器. 只要TCP连接的一方收到对方的零窗口通知，就启动持续计时器，若持续计时器设置的时间到期，就发送...]]></description><category></category></item><item><title><![CDATA[网络基础  —  阅读源码后理解epoll的一个错误纠正]]></title><link>https://blog.youkuaiyun.com/Dawn_sf/article/details/79526229</link><guid>https://blog.youkuaiyun.com/Dawn_sf/article/details/79526229</guid><author>Dawn_sf</author><pubDate>Mon, 12 Mar 2018 14:25:15 +0800</pubDate><description><![CDATA[阅读源码后理解epoll的一个错误纠正之前我在这里这篇博客 ：epoll的简单结构把epoll吹上天了,但是对于epoll的理解，昨天我牛客网上面看到了一个赛罗奥特曼的帖子！ 不愧是奥特曼！ 它的观点是epoll当中并没有内存映射的实现，拥有内存映射这是一个错误的观点！ 我就点进去看了一看源码！ 结果真的没有发现！ 其实内核对用户态是不会绝对信任的，也不会让用户的东西指向内核成员！ 最大的让步就是...]]></description><category></category></item><item><title><![CDATA[操作系统  — 了解CPU cache]]></title><link>https://blog.youkuaiyun.com/Dawn_sf/article/details/79514146</link><guid>https://blog.youkuaiyun.com/Dawn_sf/article/details/79514146</guid><author>Dawn_sf</author><pubDate>Sun, 11 Mar 2018 11:10:13 +0800</pubDate><description><![CDATA[CPU cacheCache一词源自法语，其原意为&quot;藏匿处，隐藏的地方&quot;. Cache被应用于计算机科学之后，专指CPU与主内存之间的存储器高速缓冲器，Cache的出现是为了缓解CPU的存储需求与主内存的存取性能之间越来越大的差距.现代CPU的Cache都是集成在片内的，越靠近CPU流水线的Cache由于需要极其快速的存取速度，只能保持越小的容量，并且单位容量的成本越高.因此，为了进一步缓解需求与...]]></description><category></category></item><item><title><![CDATA[操作系统  — 协程的简单理解]]></title><link>https://blog.youkuaiyun.com/Dawn_sf/article/details/79509433</link><guid>https://blog.youkuaiyun.com/Dawn_sf/article/details/79509433</guid><author>Dawn_sf</author><pubDate>Sat, 10 Mar 2018 17:44:43 +0800</pubDate><description><![CDATA[协程的简单理解协程是一种用户态的轻量级线程, 我们的server的发展如下：IO密集型应用：多进程 -&amp;gt; 多线程 -&amp;gt;事件驱动 -&amp;gt;协程  CPU密集型应用：多进程-&amp;gt;多线程 如果说多进程对应多CPU，多线程对应多核CPU，那么事件驱动和协程则是在充分挖掘不断提高性能的单核CPU的潜力. 异步事件驱动模型中，把会导致阻塞的操作转化为一个异步操作，主线程负责发起这个异步操作，...]]></description><category></category></item><item><title><![CDATA[数据结构  — 多阶哈希表]]></title><link>https://blog.youkuaiyun.com/Dawn_sf/article/details/79506520</link><guid>https://blog.youkuaiyun.com/Dawn_sf/article/details/79506520</guid><author>Dawn_sf</author><pubDate>Sat, 10 Mar 2018 13:21:32 +0800</pubDate><description><![CDATA[多阶哈希表昨天在腾讯面试的时候，面试官问到我数据结构的时候，可能因为因为我前面答的还还不错就扩展了一下，在我之前对哈希的认知我知道的其实只有开放定制法和开链法这种操作，不过当面试官问到多阶哈希和一致性哈希这种东西的时候！ ？？？ 问的我一脸懵逼！ 还是平时学习还是不够细致，对知识点没有扩展性的了解. 今天将这个多阶哈希记录下来.多阶哈希表其实就是一个锯齿般的数组，看起来就是下图那个样子：1.每一行...]]></description><category></category></item><item><title><![CDATA[网络基础  — https和http之间的区别与联系]]></title><link>https://blog.youkuaiyun.com/Dawn_sf/article/details/79452242</link><guid>https://blog.youkuaiyun.com/Dawn_sf/article/details/79452242</guid><author>Dawn_sf</author><pubDate>Mon, 05 Mar 2018 23:34:42 +0800</pubDate><description><![CDATA[https和http之间的区别与联系超文本传输协议HTTP协议被用于在web服务器和网站服务器之间传递消息，HTTP协议以明文方式发送内容，不提供任何方式的数据加密.如果攻击者截取了web浏览器和网站服务器之间的传输报文，就可以直接读懂其中的信息，因此，HTTP协议不适合传输一些敏感信息，比如:信用卡号，密码等为了解决http协议的这一缺陷，需要使用另一种协议：安全套接字层超文本传输协议https...]]></description><category></category></item><item><title><![CDATA[大数据处理  — 浅析MapReduce之shuffle]]></title><link>https://blog.youkuaiyun.com/Dawn_sf/article/details/79441671</link><guid>https://blog.youkuaiyun.com/Dawn_sf/article/details/79441671</guid><author>Dawn_sf</author><pubDate>Mon, 05 Mar 2018 11:19:31 +0800</pubDate><description><![CDATA[浅析MapReduce -&amp;gt; shuffleshuffle的意思就是洗牌，它是MapReduce的核心，也是被称为奇迹发生的地方，因为MapReduce玩的就是洗数据，然后让数据出现在该出现的位置.官方描述的shuffle过程，我们不太可能明白shuffle的过程，因为它与事实相差挺多的，细节也是错乱的. 我们现在这样理解就可以了， shuffle描述着数据从map task输出到reduc...]]></description><category></category></item></channel></rss>