Linux网络协议栈

0. 概述前边我们学习了Linux的进程与内存部分,这里我们来看看linux网络协议栈。从以往的学习中,有如下3点的认识:socket的使用流程:建立、通信、关闭TCP/IP的分层协议栈:链路层、网络层、传输层等Linux操作系统是硬件与应用程序之间的代理特性这样也就组成了对Linux网络协议栈的基

Linux内存管理

1. 概述3种地址逻辑地址、虚拟地址(线性地址)、物理地址逻辑地址:机器语言指令中用来指定一个操作数或者指令的地址。每一个逻辑地址由一个段(segment)和偏移量(offset)组成。虚拟地址:对于32位系统是一个32位的无符号整型数据物理地址:内存芯片单元寻址,与CPU的地址引脚发送到内存总线上

解析红黑树

0. 前言前边Nginx中定时器的实现,以及Linux中完全公平算法都用了红黑树,是时候对它进行整理了。红黑树是一种二叉平衡树,下边先来看看二叉搜索树,毕竟红黑树的用法与二叉树的用法基本是类似的;然后来看看红黑树的原理,为了更好的理解红黑树,我们对照2-3-4树来看;最后来看看红黑树的实现。1. 二

Linux进程调度

前言前边整理了一下Linux环境编程的接口,本阶段来对调度、内存、网络通信3部分进行深一层的学习。本文主要来学习进程的调度。主要目的:掌握调度的基本概念掌握完全公平调度(CFS)以及实时进程调度2种算法整理调度算法的过程,方便看源码概述进程描述符进程描述符存放了很多信息,不仅包含进程属性的字段,还包

Linux环境编程之三

7. 网络通信简介主要对socket套接字进行详细的分析,包括连接的建立、数据的发送与接收等等。连接的建立socket#include <sys/types.h>#include <sys/socket.h>int socket(int domain, int type, i

Linux环境编程之二

6. 进程间通信进程间通信的手段,可以分成2大类:通信类与同步类。前者用于在进程间传递数据,后者用于协调进程间操作。下边来看看它们,包括管道、消息队列、信号量、mmap、共享内存等几种方式。管道简介管道的作用是在有亲缘关系的进程之间传递消息,共同祖先调动pipe函数,打开管道文件就会在fork之后被

Linux环境编程之一

0. 前言本文主要是想整理一下linux环境编程的一些接口,包括一些系统调用,以及更多的glibc的库函数,并不对其中原理进行限制,属于工具字典类型,面向使用。本文主要参考:《Linux环境编程:从应用到内核》1. 文件I/O打开openint open(const char *pathname,

docker-swarm实践总结

1. 规划目前有多个系统,每个系统的运行应该尽量彼此独立使用各自的docker-compose.yml进行部署多个系统采用统一的nginx作为入口每个系统的配置尽量隔离开,这样采用nginx.config中的include属性来隔离开nginx使用的网络要对其他服务开放指定机器上运行多个系统采用统一

docker-swarm集群基础

1. docker swarm基础本周做了一点运维的工作,这里总结一下。基本概念swarm集群工具,管理节点nodedocker节点,分成manager节点与worker节点service在node上可以运行service,每个服务可以有多个任务task具体的任务对应着containerdocker

nginx之upstream机制

1. 概述upstream机制是事件驱动框架与HTTP框架的综合,它既属于HTTP框架的一部分,又可以处理所有基于TCP的应用层协议(不限于HTTP)。它不仅没有任何阻塞地实现了Nginx与上游服务器的交互,同时又很好地解决了一个请求、多个TCP连接、多个读/写事件间的复杂关系。为了帮助Nginx实

nginx之Http模块

1. 概述从事件模块中,隐约可以看出2块内容:1. 模块的初始化,这里边最主要的配置项的解析,以及相关内存的分配;2. 模块的执行流程,就是在进程中的运行逻辑。这个在http框架中表现的更为突出一些。http模块的配置比事件模块更复杂,它分成3个层级:直接隶属于http{}块内的配置项称为main配

nginx事件模块

0. 前言本文是继续上一节来看看事件模块,事件模块是nginx的核心,它负责事件的收集、管理、分发。这里所说的事件,主要以网络事件和定时器事件为主,而网络事件中又以TCP网络事件为主(Nginx毕竟是个Web服务器)。1. 基本结构ngx_event_t简单看就是一个连接data,一个定时器time

nginx基础架构

0. 前言前一段时间对分布式系统进行了整理,其中提到了api网关,常用的api网关就是nginx,这里对nginx进行一个较深入的学习,主要参考《深入理解Nginx:模块开发与架构解析》。初步划分成4篇文章来学习:nginx基础架构nginx事件模块Http模块执行流程upstream机制本篇来看看

Java几点总结

1. 前言这里也是从那几篇旧博客中抽出来的,不算一大部分了,主要介绍Optional、Stream、lambda、Buffer等相关知识点2. Optional基础为了防止NullPointerException的一个工具类,Optional是一个容器,其值可以是null或者不是null。通过对nu

分布式系统模型

回头看了看分布式系统的几篇文章,觉得又有写新的收获,这里记录一下。主题分布式系统的2大主题是:提高吞吐量提高稳定性结构分布式系统可以抽象为以下3大部分包括:网关:用于流量的调度服务:提供服务存储:存取数据方案结构吞吐量稳定性网关负载均衡 服务异步服务调度、故障隔离存储缓存、数据分割备份这里对几个概念

分布式系统原理与范型

前言复习了分布式系统相关的内容后,得出了一个模型,包括分布式系统的目的,分布式系统的分层结构,以及在这个结构之上的相关技术。为了矫正模型,以及更深入的了解分布式系统,学习了一下《分布式系统原理与范性》这本书。这本书最主要的是讲技术原理,而不是实现或者细节,它先总的讲了一下分布式系统的体系结构,然后分

如何设计一个应用层协议

如何设计一个应用层协议前言看完这几个协议的报文,发现有一种共性在其中,于是就引发了一个思考:如何设计一个协议?协议的特点是上层协议依赖下层协议的传输,而TCP协议、IP协议已经比较成熟了,所以在这里加一个限定:应用层协议。在以往的经历中,也接触了一些协议相关的内容,比如最早的USB协议、后来的前置服

网络协议与设备

网络模型这里采用用5层级的网络模型:物理层、链路层、网络层、运输层、应用层。在TCP/IP协议族中,与后4个层级相关,如下图所示:ps:网络的的发展,大概是从局域网,慢慢发展到了广域网,最终实现了互联网。从协议来看,上层的协议依赖底层的协议,那么在出现的顺序上,一定是底层的协议先出现。这样底层的协议

Java加密简介

1. 简介这里也是从那几篇旧博客中抽出来的,不算一大部分了,主要介绍Java的加密相关知识点。本文先对加密算法进行整体的介绍,最后侧重的是散列算法。常见加密如下:对称加密算法的加密与解密 密钥相同;非对称加密算法的加密密钥与解密 密钥不同;散列算法 不需要密钥,生成摘要。2. 非对称加密如果使用 公

Java的Path与File使用总结

前言前边为什么zip时,没使用org.apache.tools.zip,一方面是由于代码本身的zip与unzip都是依赖的java.util.zip,改起来比较麻烦一些,另一方面在org.apache.tools.zip的示例代码中,用到了File,相比而言File会比Path落后一点。这里对Pat
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×