- 博客(105)
- 资源 (16)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 linux网络常见概念
Linux用户态和内核态为了减少有限资源的访问和使用冲突,Unix/Linux的设计哲学之一就是:对不同的操作赋予不同的执行等级,就是所谓特权的概念。简单说就是有多大能力做多大的事,与系统相关的一些特别关键的操作必须由最高特权的程序来完成。Intel的X86架构的CPU提供了0到3四个特权级,数字越小,特权越高,Linux操作系统中主要采用了0和3两个特权级,分别对应的就是内核态和用户态。运行于用户态的进程可以执行的操作和访问的资源都会受到极大的限制,而运行在内核态的进程则可以执行任何操作并且在资源的使
2022-02-17 22:50:32
727
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 5G控制面协议之N2接口
N2接口协议概述N2接口是gNB和AMF的接口,协议是NGAP,N2的传输层是SCTP,上层用户是5G-NAS(MM移动性管理、SM会话管理等)。根据官方对N2接口能力的描述,N2接口需具备以下能力:1、支持建立、保持和释放PDU会话的NG-®AN侧(资源、UE上下文)的能力;2、支持intra-RAT和inter-RAT(5G内、5G和4G之间)的切换;3、透传UE和AMF之间的NAS信令;4、用户数据报文的资源预留机制;5、能在协议栈上区分出不同用户,并完成UE相关的信令管理。图1
2020-11-26 20:36:11
18210
7
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 RSA+SHA256+BASE64对数据进行加密解密及校验
需求需要实现加密的认证机制认证原理a) 密钥分配:RSA算法通过工具或方法调用生成公钥和私钥(1024bit),请求端使用公钥,服务端使用私钥。 b) 加密方式:请求端通过密钥分配获取公钥,根据RSA加密算法将进行哈希后的明文请求进行公钥加密生成token;服务端通过密钥分配获取私钥,根据RSA解密算法将请求端的token进行私钥解密。 c) 认证方式:在服务端,如果明文请求的哈希值和私钥
2020-07-28 09:11:38
16649
8
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Logstash概念与原理、与Flume的对比
Logstash概念Logstash是一款开源的数据收集引擎,具备实时管道处理能力。简单来说,logstash作为数据源与数据存储分析工具之间的桥梁,结合ElasticSearch以及Kibana,能够极大方便数据的处理与分析。通过200多个插件,logstash可以接受几乎各种各样的数据。包括日志、网络请求、关系型数据库、传感器或物联网等等。Logstash工作过程如上图,Logst...
2019-07-01 20:59:44
23893
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Map.Entry学习和详解
Map.Entry的定义Map的entrySet()方法返回一个实现Map.Entry接口的对象集合。集合中每个对象都是底层Map中一个特定的键/值对。通过这个集合的迭代器,获得每一个条目(唯一获取方式)的键或值并对值进行更改。Map.Entry中的常用方法如下所示: (1) Object getKey(): 返回条目的关键字 (2) Object getV...
2018-05-01 19:50:30
51838
6
原创 WebSocket从入门到精通
在WebSocket中,只需要服务器和浏览器通过HTTP协议进行一个握手的动作,然后单独建立一条TCP的通信通道进行数据的传送。
2023-07-13 18:50:33
1288
原创 nginx中用到的kill命令
我们都知道,。(其实Ctrl+C也是kill命令)。其中 pid 就是进程的编号,signal是发送给进程的信号。kill命令不仅仅是杀死进程。。默认参数下,kill 发送 SIGTERM(15)信号给进程,告诉进程,你需要被关闭,请自行停止运行并退出。
2022-11-30 22:34:24
3666
1
原创 openresty定时任务
在 OpenResty 中,有时候需要在后台定期地执行某些任务,比如同步数据、清理日志等。OpenResty 提供了 ngx.timer 来解决这类需求,可以把ngx.timer看作是 OpenResty 模拟的客户端请求,用以触发对应的回调函数。OpenResty 的定时任务可以在任意处理阶段发起任意多个定时器,执行任意的功能。
2022-11-30 18:58:31
1556
转载 lua 中 . 和 : 的区别
分析:函数调用时用的 . 不会传递self 只传递1 2 3,而ceshi函数声明时用的 : 默认有一个self在第一位去接收,ceshi函数能接收4个参数,即 self a b c ,所以c没有接收参数为nil。分析:调用ceshi函数时用的:默认传递self为第一个参数,但是函数声明的时候用的 . 所以不会有默认隐藏的self去接收,此时传递参数为 self 1 2 3 但是ceshi函数只接收3个参数所以3被抛弃。分析:默认不传递self,默认不接受self。分析:默认传self,默认接受self。
2022-11-02 21:42:11
1175
原创 lua中的元表---metatable
而这个理解是完全错误的,实际上,即使将A的元表设置为B,而且B中也确实有这个成员,返回结果仍然会是nil,原因就是B的__index元方法没有赋值。,如果__index方法为nil,则返回nil,如果是一个表(上例中father的__index方法等于自己,就是这种情况),那么就到__index方法所指的这个表中查找名为house的成员,于是,最终找到了house成员。注:__index方法除了可以是一个表,还可以是一个函数,如果是一个函数,__index方法被调用时将返回该函数的返回值。
2022-10-31 22:38:37
332
原创 lua中select函数的用法
关于lua的select函数,是可以用于计算参数个数的或者获取指定索引之后的参数;: select(n,…)这个函数返回的是第n个索引后的所有参数;
2022-10-31 21:46:58
504
原创 常用编码格式整理
将一些自然语言中的字符组成一个集合;:字符编码,就是建立一套自然语言中的“字符”跟计算机能够存储 处理的二进制数的映射的规则。即在一个字符集内,用一个特定的二进制数表示一个唯一“字符”,类似于学号跟学生的映射关系。:当数据不利于处理、存储的时候,就需要对它们进行编码。对字符进行编码是因为自然语言中的字符不利于计算机处理和存储。:根据实际需求的差异,编码、解码算法有可能会很复杂,也有可能非常的简单,
2022-10-20 17:59:16
3424
转载 一致性哈希算法---负载均衡
假如说客户端每一次的请求没有被映射到一台指定的server上,而是每一次发来的请求都跳到不同的服务器上,可能会出现zhangsan第一次的请求被映射到1号服务器上,那么在1号服务器做业务处理以后,判断zhangsan输入的id号、用户名、密码都是正确的,则登录成功,在这台服务端就记录了它的session,下一次zhangsan重新发了一个请求,这个请求没有被映射到1号服务器,被映射到0号服务器了,但是zhangsan的session在服务器1上记录的,0号服务器并没有记录。
2022-10-09 21:53:04
1290
原创 记一次apisix编译报错:size of C type is unknown or too large at line 39, context: init_worker_by_lua*
apisix(2.13版本)在启动时会报插件加载失败的错误,且每次加载失败的插件都不太一样;
2022-09-23 09:22:10
450
原创 nginx调优参数整理总结
性能与安全也是一个需要考虑的因素,往往大家注重性能忽略安全或注重安全又忽略性能。比如说我们在设计防火墙时,如果规则过于全面肯定会对性能方面有影响。如果对性能过于注重在安全方面肯定会留下很大隐患。所以大家要评估好两者的关系,把握好两者的孰重孰轻,以及整体的相关性。权衡好对应的点。......
2022-08-31 12:50:03
2006
原创 apisix健康检查测试
被动健康检查不会对目标产生额外的流量,主动进行健康检查会产生额外流量。主动健康检查需要在target中配置要探测URL(可以简单配置为“/”)和判定健康或不健康的状态码,而被动运行状况检查不需要这种配置。在实际使用中,使用被动健康检查可能会误杀一些还处于正常状态的target可以承接的流量,所以应该谨慎使用被动模式;对target进行探活探死的时候,不能进行有冲突的配置,比如HTTP403在主动探测模式下认为是健康的返回码,而在被动模式下却认为是不健康的返回码;;.........
2022-07-27 16:38:22
2831
转载 失效的访问控制
由于缺乏自动化的检测和应用程序开发人员缺乏有效 的功能测试,因而访问控制缺陷很常见。导致攻击者可以冒充用户、管理员或拥有特权的用户,或者创建、访问、更新或删除任何记录。
2022-07-04 09:28:43
1263
原创 在nginx中开发一个HTTP模块
首先来分析一下HTTP模块是怎样介入Nginx的。当master进程fork出若干个workr子进程后,每一个worker子进程都会在自己的for死循环中不断调用事件模块:最常见的分发策略就是依据HTTP头部的URI和配置文件nginx.conf里的location配置项的匹配度来决定怎样分发。如果配置文件里有例如以下配置块:HTTP模块在处理完请求后,会自己主动依次调用HTTP过滤模块对准备返回的响应信息做预处理,比方是否压缩。下面是HTTP模块调用的大致流程图:HTTP模块有一个结构体ngx
2022-06-07 22:51:15
682
转载 OpenResty的核心与cosocket
cosocket 是各种 lua-resty-* 非阻塞库的基础,没 有 cosocket,开发者就无法用 Lua 来快速连接各种外部的网络服务。在早期的 OpenResty 版本中,如果想要去与 Redis、memcached 这些服务交互的话,需要使用 redis2-nginx-module、redis-nginx-module 和 memc-nginx-module这些 C 模块.这些模块至今仍然在 OpenResty 的发行包中。cosocket 功能加入以后,它们都已经被 lua-resty-re
2022-05-19 22:17:11
1080
转载 nginx的反向代理proxy_pass指令
nginx的反向代理proxy_pass指令 1. 首先什么是代理服务器? 客户机发送请求时,不会直接发送到目的主机,而是先被代理服务器收到,代理服务器收到客服机的请求后,再向目的机发出,目的机就会返回数据给客户机,在返回给客户机之前,会被代理服务器先收到,会存放在代理服务器的硬盘中。然后代理服务器会再向客户机发出,最后客户机就会收到目的机返回的数据。 2. 代理服务器的作用有哪些? 1) 可以提高访问速度 ...
2022-05-18 18:24:54
3506
原创 pairs和ipairs的区别
在lua中ipairs 和pairs均可以用来遍历集合,但是两者有区别;同:都是能遍历集合(表、数组),两者均优先按顺序输出没有key的值;异:对于有key的集合:ipairs从第一个数字key开始,依次输出所有的key+1的键值,遇到字母下标并不会结束遍历,只是不输出而已,如果遇到nil则退出;pairs无序输出字母类型key或者数字类型key的键值,遇到nil不输出,但不会停止遍历;例子1:table = { [1] = "test3", [2] = "val1" , [5] = "
2022-05-14 14:59:42
9708
转载 什么是哈希算法
用动画的形式写了一篇科普性的介绍哈希表的文章,希望对题主有帮助,觉得有用麻烦双击一下~散列表 散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。散列函数 散列函数,顾名思义,它是一个函数。如果把它定义成 hash(key) ,其中 key 表示元素的键值,则 hash(key) 的值表示经过散列函数计算得到
2022-05-06 11:22:40
759
转载 LDAP简述及统一认证说明
LDAP简述LDAP相关概念1)轻型目录访问协议(Lightweight Directory Access Protocol),LDAP是一种通信协议,LDAP能够支持TCP/IP。协议就是标准,在这套标准之下,AD(Active Directory)是微软实现的一套产品。可以把AD理解成是个数据库,也有很多人直接把LDAP说成是数据库(一个树形结构的数据库)。LDAP也有服务端和客户端,服务端用来存放资源,客户端进行相应的控制和操作。2)LDAP的存储是树形结构的,数据存储在叶子节点上,因此LDA
2022-04-18 22:25:08
3309
原创 etcd原理
etcd简介ETCD是用于共享配置和服务发现的分布式,一致性的KV存储系统。它是一个优秀的高可用分布式键值对存储数据库。etcd内部采用了Raft协议作为一致性算法,且使用Go实现。ETCD作为一个受到ZooKeeper与docker启发而催生的项目,除了拥有与之类似的功能外,更专注于以下四点:简单:基于HTTP+JSON的API让你用curl就可以轻松使用。安全:可选SSL客户认证机制。快速:每个实例每秒支持一千次写操作。可信:使用Raft算法充分实现了分布式。分布式系统中的数据分
2022-03-28 09:05:56
2797
1
原创 lua-nginx-module
Namengx_http_lua_module - Embed the power of Lua into Nginx HTTP Servers.This module is a core component of OpenResty. If you are using this module,then you are essentially using OpenResty.This module is not distributed with the Nginx source. Seethe .
2022-01-04 11:08:52
1282
原创 APISIX在CentOS7下安装使用
前言因为工作需要用到API网关,所以研究了一下目前常用的API网关。综合考虑选择了APISIX,这个网关已经开源,并且已经进入 Apache 进行孵化。APISIX性能非常好,而且是一款云原生、高性能、可扩展的微服务 API 网关。当然最重要的是这款API网关是国人写的-。-由于公司网络的问题,本次安装均是通过 RPM 包安装,也可以直接用yum安装安装etcd需要安装etcd3.4以上的版本;Apache APISIX 从 v2.0 开始不再支持 v2 版本的 etcd,并且 etcd 最
2021-11-09 17:05:40
3970
原创 SDN拓扑发现原理
SDN网络链路发现前言LLDP(Link Layer Discovery Protocol,链路层发现协议)OpenFlow中LLDP处理流程网络中存在非OpenFlow设备时,如何去做链路发现?参考前言SDN网络的一大特点就是资源由控制器集中管理,控制器管理网络,最基本的当然需要知道网络的拓扑,而网络拓扑可能时时发生变化,所以控制器需要时时监测。对于传统交换机,正常情况他们是通过LLDP等类似的邻居发现协议发现彼此网络设备,形成整网拓扑。OpenFlow的官方没有规定标准的拓扑发现方法,现在的OFD
2021-05-07 09:26:39
3099
原创 软件定义边界SDP
这里写自定义目录标题发生变化的边界模型SDP的概念SDP架构SDP工作流SDP部署模式客户端—网关模型客户端—服务器模型服务器—服务器模型客户端—服务器—客户端模型SDP应用场景企业应用隔离私有云和混合云软件即服务(SaaS)基础设施即服务(IaaS)平台即服务(PaaS)基于云的虚拟桌面基础架构(VDI)物联网(IoT)SDP和VPN之间的区别SDP和SDN之间的关系SDP潜在的挑战商业解决方案发生变化的边界模型传统企业网络架构通过建立一个固定的边界使内部网络与外部世界分离,这个边界包含一系列的防火
2021-04-25 22:20:33
1726
转载 ping 原理
最近看了好多面试的题目,其中也被问到了关于ping的问题以及一些原理性的东西,于是拜读了很多人的博客,最后也是豁然开朗,决定总结一下,也是为了防止遗忘吧。 要想理解ping的原理,我们首先来看一下ARP的报文格式 其中op: 1:表示arp请求2:表示arp应答3:表示rarp请求4:表示rarp应答1234 接下来,...
2021-01-22 10:09:38
777
原创 为什么5G N2接口控制面使用SCTP协议?
概述我们熟知的传输层协议有TCP和UDP,SCTP不太为人所知。但是在4G核心网EPC中,e-NB和MME之间的S1接口传输层使用的是SCTP协议。5G沿用4G的思想,g-NB和AMF之间的N2接口传输层使用的也是SCTP协议。协议栈分别如图1和图2所示。那么电信网络为什么使用SCTP协议而不是TCP或者UDP协议?本文对此问题做一个总结。 图1 4G S1接口控制面(eNB-MME) 和 5G N2接口控制面(gNB-AMF)TCP和UDP的定义TCP和UDP的定义如
2020-11-30 20:29:55
6869
原创 5G服务化接口和参考点
1、概述服务化接口和参考点是5G架构所引入的两种不同的网络实体之间的模型化交互方式,通过对网络功能块和网络实体之间的接口和连接的灵活的定义,来实现5G网络对于多样的、特定的服务类型在各个协议层的灵活的处理方法和处理流程的实现。服务化接口:Service-basedinterface,这个是类似微服务化架构的服务注册和服务发现来实现的功能体对外暴露的接口,这种接口只针对于单个功能体,相关功能体通过服务化接口向外与其他的功能体进行交互,而其他的功能体通过该功能体暴露的接口与此功能体进行交互,实际上这种机
2020-11-11 10:56:45
10208
1
原创 Linux虚拟网络
1、Linux用户态和内核态为了减少有限资源的访问和使用冲突,Unix/Linux的设计哲学之一就是:对不同的操作赋予不同的执行等级,就是所谓特权的概念。简单说就是有多大能力做多大的事,与系统相关的一些特别关键的操作必须由最高特权的程序来完成。Intel的X86架构的CPU提供了0到3四个特权级,数字越小,特权越高,Linux操作系统中主要采用了0和3两个特权级,分别对应的就是内核态和用户态。运行于用户态的进程可以执行的操作和访问的资源都会受到极大的限制,而运行在内核态的进程则可以执行任何操作并且在资
2020-09-27 12:23:00
784
原创 安装neutron的防火墙和负载均衡功能
功能简介FWaaSFirewall as a Service(FWaaS)是 Neutron 的一个高级服务。用户可以用它来创建和管理防火墙,在subnet的边界上对layer 3和layer 4的流量进行过滤。传统网络中的防火墙一般放在网关上,用来控制子网之间的访问。FWaaS 的原理也一样,是在 Neutron 虚拟 router 上应用防火墙规则,控制进出租户网络的数据。FWaaS 有三个重要
2020-08-04 15:46:26
2347
原创 ovs测试vlan
ovs端口默认是trunk模式,且所有的VLAN tag都可以通过。单个网桥实现vlan隔离的场景实验拓扑如下:1、首先创建一个网桥ovs-switch,在命名空间里创建两个接口p0和p1。分别分配地址为192.168.1.100/24和192.168.1.101/24创建网桥并添加接口ovs-vsctl add-br ovs-switchovs-vsctl add-port ovs-switch p0 – set Interface p0 ofport_request=100ovs-vs
2020-07-24 09:34:38
2705
原创 OpenvSwitch命令整理记录
OpenvSwitch简介OVS是一个高质量的、多层虚拟交换机,使用开源Apache2.0许可协议,主要实现代码为可移植的C代码。OpenvSwitch是一个虚拟交换软件,主要用于虚拟机VM环境,作为一个虚拟交换机,支持Xen/XenServer,KVM以及virtualBox多种虚拟化技术。在这种虚拟化的环境中,一个虚拟交换机主要有两个作用:传递虚拟机之间的流量,以及实现虚拟机和外界网络的通信。OpenvSwitch组件OVS包含三个重要的组件:ovsdb-server、ovs-vswitchd
2020-07-19 11:18:16
3908
原创 常见加密算法比较
加密算法常见的 对称加密 算法主要有 DES(数据加密标准)、3DES(三重DES)、AES(高级加密标准) 和Blowfish(河豚鱼)等,常见的 非对称算法 主要有 RSA、DSA 等,散列算法 主要有 SHA-1、SHA-256、MD5 等。HASH算法(散列算法)目前常用的是SHA-256算法是SHA-1的后继算法。MD5消息摘要算法(英语:MD5 Message-Diges...
2020-04-02 17:42:05
1731
原创 入侵检测与防御技术基础
网络入侵简介典型的入侵行为 篡改web网页; 破解系统密码; 复制/查看敏感数据; 使用网络嗅探工具获取用户密码; 访问未经允许的服务器; 其他特殊硬件获取原始网络包; 向主机植入特洛伊木马程序;常见的入侵方式 未授权访问 拒绝服务 假冒和欺诈 线路窃听 ...
2019-12-15 22:58:06
6446
nginx代码学习难度如何
2023-07-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人