自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员的世界

在程序员的世界中要做到:哥写的不是程序,写的是寂寞

  • 博客(22)
  • 资源 (27)
  • 收藏
  • 关注

原创 C语言创建tap设备并且设置ip

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <fcntl.h>#include <sys/socket.h>#include <netinet/in.h>#include <net/if.h>#include &a

2019-01-29 15:03:33 2415

原创 KVM虚拟机典型配置文件xml

<domain type='kvm'> <name>vm64-1</name> //虚拟机名称 <memory unit='MiB'>2300</memory> //最大内存,单位M <currentMemory unit='MiB'>2300</currentMemory> //可用内存,单位M &am

2019-01-29 13:14:29 5586 1

原创 菜鸟学习nginx之总结杂耍

本篇是对Nginx学习最后一篇,若日后工作中对Nginx有了更深入了解,会再次写相关博客。一、关于Nginx几个典型问题1.1、为什么Nginx是高性能HTTP?是如何做到高性能?这种问题比较广,往往出现在面试过程中,比如说阿里、腾讯的人,他们就比较喜欢问这种问题。这种问题让谁说都可能比较头疼,下面是我自己的理解:1.优异框架,采用全异步方式2.优秀数据结构,例如内存池,字符串...

2019-01-17 23:06:54 235

原创 菜鸟学习Nginx之平滑升级

Nginx高可用、高可靠性体现它的平滑升级--在升级过程中能够保证业务不间断,那它是如何实现的呢?接下来我们一起探讨它的实现原理。一、升级过程1.1、查看进程信息先通过命令行感性的了解一下Nginx是如何进行平滑升级的?首先通过命令行查看进程信息,可知,一个master进程、两个worker进程,如下所示:[root@localhost ~]# ps -ef | grep ngi...

2019-01-17 23:06:00 717

原创 菜鸟学习Nginx之定时器

今天来分析一下Nginx定时器实现原理。一、Nginx定时器在网络通信中,客户端给服务端发送一个请求,如果服务端一直没有响应,那么客户端是不能一直傻傻的等待的,一般情况下,客户端需要设置一个超时定时器,当定时器超时后客户端需要进行后续处理。Nginx定期器常用在upstream、子请求中,这些在分析http模块时已经介绍。二、定时器实现2.1 定时器Nginx中定时器事件是...

2019-01-15 23:08:28 952

原创 菜鸟学习nginx之结束HTTP请求

当我们发送响应的时候,意味着我们即将结束当前HTTP请求,注意这里并不是关闭TCP连接,因此TCP连接可能正用在其他请求上。Nginx定义了很多接口用关闭HTTP请求,但用的最多还是ngx_http_finalize_request。接下来分析一下它。一、Nginx管理HTTP核心思想众所周知,Nginx全异步框架,当一个流程可能需要较长时间占用进程,那么Nginx建议派生出子请求(sub...

2019-01-15 09:56:17 4116

原创 菜鸟学习nginx之发送HTTP响应

上一篇介绍了Nginx接收HTTP body流程,今天介绍Nginx发送HTTP响应流程。一、发送HTTP Response header发送响应需要设置两部分内容,Response header和Response body(若有)。这里介绍一下发送的header函数。1.1、存储结构发送HTTP响应行、HTTP响应头保存的数据结构在,ngx_http_request_t中head...

2019-01-14 18:47:41 1499

原创 菜鸟学习nginx之HTTP body接收(3)

上一篇介绍了,Nginx是如何接收body主体流程,但是我们仍然没有了解到,Nginx是如何保存body的?也就是第一篇中提到的问题。本篇主要分析ngx_http_request_body_filter函数,该函数会帮助我们解决。一、ngx_http_request_body_t结构体typedef struct { ngx_temp_file_t ...

2019-01-13 15:29:26 2428 4

原创 菜鸟学习nginx之HTTP body接收(2)

上一篇介绍Nginx是如何丢弃body,虽然是丢弃body但是仍然需要乖乖的从socket缓冲区中读取报文才行。本篇将介绍实际接收流程。一、概要接收流程是比较复杂的,主要涉及到两个方面考虑:body过长如何保存以及一次接收不完body应该如何设置下次接收。Nginx采用如下方式解决上述问题:1、如果一个buffer缓冲区不能够容纳body,则会把body写入到临时文件中。2、如果一...

2019-01-13 15:29:20 4342

原创 菜鸟学习nginx之HTTP body接收(1)

上一篇介绍了Nginx是如何处理HTTP请求的,其实对于一个真正的HTTP请求,往往是有body的,只有处理完body才算真正处理完该请求。对于HTTP body来说一般处理有两种方式,要么是丢弃body,要么是接收body。对于接收body面临比较大的挑战,因为body是不定长,我们无法预先分配内存来接收body。况且http body可能很大,例如都上传一个高清电影,可能就有几个G大小。直...

2019-01-13 15:29:11 2476

原创 菜鸟学习nginx之HTTP请求处理(2)

在上一篇介绍了Nginx定义的11个阶段,本篇将深入介绍Nginx是如何处理HTTP请求的。一、ngx_http_process_request/** * 处理HTTP请求 * @param r HTTP请求 * 当成功接收到请求行和Header时 就可以处理HTTP请求流程 * 至于是否存在body 则在后续流程中处理 */void ngx_http_process_req...

2019-01-10 08:36:25 1109

原创 菜鸟学习nginx之HTTP请求处理(1)

上一篇主要介绍Nginx是如何处理HTTP Header。由于HTTP请求处理这部分代码是Nginx核心内容,打算用两篇文章深入介绍。本篇先介绍HTTP处理的11个阶段。一、HTTP处理11阶段1.1、为什么要有11阶段?这个得从Nginx设计出发。首先Nginx是单线程且完全异步框架,Nginx把所有功能都统一抽象成模块,即“万物皆模块”。每个模块仅仅完成一个独立、简单的功能(说白点...

2019-01-10 08:35:39 1381

原创 菜鸟学习nginx之接收HTTP Header

上一篇介绍了《菜鸟学习nginx之接收HTTP请求行》,本篇介绍Nginx接收HTTP Header处理流程。一、HTTP Header处理流程处理Header与上一篇处理HTTP请求行很类似,比较容易理解1.1、流程图1.2、代码/** * 处理HTTP Header * @param rev 读事件 */static voidngx_http_process...

2019-01-09 08:52:03 5675

原创 PostMan操作etcd数据库

对于通过http api操作etcd网上大部分教程都是通过curl命令行方式(官网介绍方式),但是对于window系统或者测试人员可能更喜欢用HTTP接口测试工具,今天来介绍一下如何用Postman操作etcd,其他HTTP接口测试工具也是一样的。一、查询/v2/keysetcd支持的HTTP api有很多,不可能把所有的都介绍了,这里只把常用api接口进行演示说明。第一个就是查询接口,查...

2019-01-08 18:22:33 1357

原创 菜鸟学习nginx之接收HTTP请求行

上一篇介绍了HTTP会话建立流程,本篇介绍接收HTTP Header流程。由于Nginx是完全异步的,这对编写HTTP框架提出比较高的要求,因此Nginx在实现HTTP框架时定义出11个阶段。后续章节会详细介绍该11阶段。本篇介绍的接收HTTP Header请求在HTTP框架中是逻辑比较简单。HTTP协议本身虽然比较简单,但是对于解析HTTP协议并不是很容易。体现之处就是HTTP协议heade...

2019-01-08 15:22:52 1949

原创 深入剖析Flannel-简介

随着docker容器化兴起,云计算面对的挑战越来越大,例如:网络管理、存储等。一个数据中心很容易搞出成百上千个容器,这么多的容器我们需要如何管理呢?今天来介绍的flannel就是为了解决网络问题。一、网络管理方案目前使用最多的解决方案有两种:直接路由和overlay network。具体差异如下:  特点 代表 直接路由 采用直接路由的方式,这种方式性能损耗最低,...

2019-01-08 15:00:39 19929

原创 菜鸟学习Nginx之HTTP会话

从本篇开始,介绍Nginx中HTTP相关。Nginx做为Web Server那么HTTP必然是重中之重。本篇不打算介绍太深入,本篇最主要内容是如何与事件驱动关联起来。一、监听端口Nginx默认监听端口是80端口,那么Nginx是如何将80端口的listening事件注册到事件驱动(epoll)中呢?这里简单回顾一下,具体内容可参考《菜鸟学习nginx之核心模块ngx_events_modu...

2019-01-07 10:35:41 657

原创 菜鸟学习nginx之惊群处理

“惊群”这个名词是我阅读Nginx时第一次接触到的,也算是学到了一点点知识吧。一、惊群1.1、惊群定义对于惊群的概念简单描述一下:通常场景一个端口P1只能被一个进程A监听,所以端口P1发的事件都会被该进程A所处理。但是,如果进程A通过系统调用fork(),创建子进程B,那么进程B也能够监听端口P1。这样就可以实现多进程监听同一个端口并且进入阻塞状态。这样就引发了一个问题,当客户端发起T...

2019-01-05 15:21:00 706 1

原创 docker-compose.yaml示例

docker提供了一个工具docker-compose命令行,用于批量部署容器,docker-compose需要一个yaml文件(实质为文本文件),默认名字为docker-compose.yaml(docker-compose.yml)。如果熟悉k8s的同学可能对yaml并不是陌生,这里只是做一个笔记方便日后查询。version: '2' services: #服务定义 开始标签 con...

2019-01-03 09:12:05 4923

原创 菜鸟学习nginx之事件模块epoll(2)

上一篇介绍的内容是ngx_epoll_module模块初始化、关闭以及核心内容事件循环。但是具体如何将事件注册到事件驱动中呢?nginx对其进行了封装,ngx_add_event/ngx_del_event。然而上层应用模块,例如HTTP模块并不直接使用这两个接口,而是使用再次封装函数ngx_handle_read_event/ngx_handle_write_event。一、ngx_add_...

2019-01-02 19:38:35 535

原创 死磕Linux防火墙(iptables和firewalld)

对于Linux防火墙无论是使用方式上还是实现机制上理解的都不是很深刻。例如,在windows做端口映射很方便,但是到了linux下面却很头疼,今天打算彻底搞懂它。一、Linux防火墙概述1.1、背景1) iptables和firewalld并不是真正的防火墙,他们两个只是管理工具。通过他们两个自身的服务(配置),去配置内核中Netfilter和TCPwrappers。对于日常工作,这两...

2019-01-02 13:03:56 455

原创 菜鸟学习nginx之事件模块epoll(1)

上一篇介绍核心事件模块,本篇介绍事件模块ngx_epoll_module。Nginx在linux环境下采用epoll网络模型,对于epoll网络型不了解的可自行百度查询,本篇不在阐述。一、问题本篇要澄清以下几个问题:1、当客户端发起TCP连接后,事件模块是如何管理新连接?2、Nginx是如何接收到客户端请求(只是TCP层请求非HTTP请求)?3、Nginx是如何发送响应给客户端...

2019-01-01 16:19:04 1357

纯C语言实现文件下载,并且打印下载文件的MD5值,支持Chunk

纯C语言实现文件下载,并且打印下载文件的MD5值,支持Chunk

2023-06-09

traceentry.tar.gz

java注解实现,基于语法树修改源文件代码,主要功能:函数入口、函数出口打印日志以及生成builder类

2020-11-26

charles-proxy-4.5.6_amd64.tar.gz

linux 64位下charles-proxy-4.5.6_amd64.tar.gz 网络抓包工具 手机+PC 代理抓包神器 用于分析http报文

2020-07-22

MemoryAnalyzer-1.9.2.20200115-linux.gtk.x86_64.zip

linux环境下 java内存分析工具Eclipse Memory Analyzer,1.9.2版本

2020-04-16

Dremel+made+simple+with+Parquet.pdf

推特写的博客,用于描述parquet底层设计。https://blog.twitter.com/2013/dremel-made-simple-with-parquet 生成的pdf

2019-09-30

wireshark-3.0.2.tar.gz

在centos7下通过rpm安装wireshark-3.0.2. centos7升级wireshark版本

2019-06-27

idea样式表

IntelliJ IDEA样式表,比较精简,没有太多复杂的配置。

2019-02-15

vscode支持golang相关bin

window下vscode支持golang语言解析,包括godef.exe gopkgs.exe goreturns.exe guru.exe gocode.exe go-outline.exe gorename.exe go-symbols.exe

2019-01-15

wireshark支持flannel报文解析

wireshark支持flannel报文,支持8285端口解析。支持的wireshark版本为1.12.13 兼容https://download.csdn.net/download/xxb249/10512541

2019-01-03

Nginx实现登录、留言板、文件上传

1、基于Nginx实现登录、留言板、文件上传功能。可参考https://blog.csdn.net/xxb249/article/details/84786822 2、里面包含html、js、css以及.c文件

2018-12-04

无线网卡Rtl8188EUS驱动文件

linux无线网卡,Rtl8188EUS驱动文件。在centos7.4验证通过。 https://mp.csdn.net/postedit/84319897

2018-11-22

html静态页面

bootstrap初级使用,非常简单,正在学习中。制作html页面

2018-10-31

wireshark libwireshark.dll

wireshark支持etcd报文解析,扩展原生wireshark代码,有任何疑问可留言给我

2018-07-01

flannel v0.10.0

flannel v0.10.0 github经常打不开,特地下载传到这里

2018-04-14

oauth-proxy docker 镜像

原生镜像。 registry.access.redhat.com/openshift3/oauth-proxy版本号是v3.7.23-3

2018-03-30

docker的registry镜像

dockerhub经常访问不了,特地将registry下载到本地,供大家学习使用

2018-01-08

opendaylight toaster

基于odl 开发toaster,这是一篇入门级教程,一步一步实现,希望能帮助大家

2017-12-01

java checkstyle插件

java checkstyle插件,离线安装包

2016-01-09

java buildhelper插件连线安装包

java插件,离线安装包,buidhelper,maven编译时提示需要buildhelper

2016-01-09

openvswitch hmap举例

移植openvswitch中数据结构hmap,用于调试其中数据结构。本程序linux 64位 里面也编译好可执行程序,可直接运行。主要是学习openvswitch相关代码。

2015-12-27

Centos6.6 OpenVSwitch-2.3.2.rpm x86

OpenVSwitch-2.3.2.rpm x86_64 支持Centos6.6及以前版本

2015-11-01

Centos6.7 OpenVSwitch-2.4.1.rpm x86

Centos6.7 rpm包 openvswitch2.4.1 x86_64包含 kmod-openvswitch-2.4.1-1.el6.x86_64.rpm openvswitch-2.4.1-1.x86_64.rpm

2015-11-01

UE编辑器之快速添加注释

自己写的脚本,快速添加注释,支持的语言pyhon,C/C++,JavaScript

2012-07-24

VC++模拟操作系统--OS

用VC6.0编写的模拟操作系统 写的不是很好 希望大家多多支持 以后还会发布一个更好的 能够动态配置的

2011-01-08

Asp.net读取Word的实例

Asp.net读取Word的实例,试试吧,应该可以的,我还在寻找更简单的方法

2010-09-07

学校内部资料数据结构教程(ppt)

学校内部资料.有助于开发编程,深入理解,变成开发的奥秘之处

2010-08-01

ie+FF通用的父子模态对话框相互传值

ie+FF通用的父子模态对话框相互传值,已经自己验证过的,保证没有问题

2010-07-28

asp.net+sql2005最简单的新闻发布

非常简陋的新闻发布,希望大家指点一下,刚学一周,做得不好

2010-01-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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