随笔分类 -  programming c linux

摘要:主要选项为: ASLR(级别为2),栈保护(-fstack-protector-all/-fstack-protector-strong)、堆栈不可执行(-Wl,-z,noexecstack)、GOT表保护(-Wl,-z,relro),地址无关代码/地址无关可执行(-fPIC/-fPIE -pie) 阅读全文
posted @ 2022-06-07 10:37 codestacklinuxer 阅读(41) 评论(0) 推荐(0)
摘要:前面两篇博客了解了TLS的先关原理!现在开始直面实际问题了!! 问题:目前https cps为500时正常,但是cps为3000 时出现问题,查看log出现 //SSL_shut_down error.1 n=407、 相关log 也就是shutdown的时候sslctx是SSL_R_SHUTDOW 阅读全文
posted @ 2022-05-20 10:08 codestacklinuxer 阅读(72) 评论(0) 推荐(0)
摘要:目前出现一个bug:网络设备代理https 进行ssl卸载时出现一个问题,证书校验失败问题;原因是目前设备的证书没有带上root ca;导致客户端校验证书失败! 现在看看证书校验逻辑!文章转载自 三、证书校验 这一节对前文 2.6证书校验提到的证书校验流程进行详细介绍: 1、X.509数字证书结构举 阅读全文
posted @ 2022-05-18 17:12 codestacklinuxer 阅读(391) 评论(0) 推荐(1)
摘要:转载自 加密解密SSL/TLS,对称非对称、公钥私钥、签名验签 概念 名词简介 对称加密:使用相同密钥与算法进行加解密运算的算法就叫做对称加密算法!非对称加密:就是不相同密钥加解密算法。详细参考非对称加密章节介绍SSL:安全套接层(secure sockets layer)主要是在网络层(TCP)和 阅读全文
posted @ 2022-05-18 10:04 codestacklinuxer 阅读(65) 评论(0) 推荐(0)
摘要:了解一下TLS概念 2.9.1. 简介 SSL全称是Secure Sockets Layer,安全套接字层,它是由网景公司(Netscape)在1994年时设计,主要用于Web的安全传输协议,目的是为网络通信提供机密性、认证性及数据完整性保障。如今,SSL已经成为互联网保密通信的工业标准。 SSL最 阅读全文
posted @ 2022-05-17 15:52 codestacklinuxer 阅读(212) 评论(0) 推荐(0)
摘要:问题:某次共享内存计算key值时,发现文件的inode在变化, 到底是什么原因导致的呢?最后发现是echo 3 > /proc/sys/vm/drop_caches导致的!! https://time.geekbang.org/column/article/278222?utm_source=rel 阅读全文
posted @ 2022-04-07 15:00 codestacklinuxer 阅读(278) 评论(0) 推荐(0)
摘要:1、常用的时间存储方式 1)time_t类型,这本质上是一个长整数,表示从1970-01-01 00:00:00到目前计时时间的秒数,如果需要更精确一点的,可以使用timeval精确到毫秒。 2)tm结构,这本质上是一个结构体,里面包含了各时间字段 struct tm { int tm_sec; / 阅读全文
posted @ 2022-03-16 20:06 codestacklinuxer 阅读(89) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2022-03-03 10:16 codestacklinuxer 阅读(26) 评论(0) 推荐(0)
摘要:目前有个项目要求 Apache以other的身份模拟root 用户权限来执行! 目前想到的就是 fakeroot 以及S位,在此bing转载了一篇setuid相关博客, 转载自:https://www.hrwhisper.me/introduction-to-linux-capability/ Li 阅读全文
posted @ 2022-03-02 11:54 codestacklinuxer 阅读(69) 评论(0) 推荐(0)
摘要:由于IPV4地址为32bits,所以可以使用uint32 来替换,也就是存储到protobuf的时候使用uint32,当转换为xml/json的时候使用转化为为点分制192.168.1.1 这种形式使用; struct in_addr tmp_addr; tmp_addr.s_addr = *(co 阅读全文
posted @ 2022-02-18 10:00 codestacklinuxer 阅读(61) 评论(0) 推荐(0)
摘要:目前已经完成!测试结果如下: 可以看到 cjson 和xml 里面的内容对的上 使用json解析也可以正常解析 目前封装的结果是对外提供两个接口:pb_to_json_string 和 pb_form_json_string 分别将protobuf 和 json 字符串相互转换 封装库执行完覆盖率等 阅读全文
posted @ 2022-01-24 16:14 codestacklinuxer 阅读(122) 评论(0) 推荐(0)
摘要:在linux服务器上创建的用户,登录后发现此用户的CRT的终端提示符显示的是-bash-4.2# 而不是user@主机名 显示方式;原因是在用useradd添加普通用户时,有时会丢失家目录下的环境变量文件,丢失文件如下:1、.bash_profile2、.bashrc以上这些文件是每个用户都必备的文 阅读全文
posted @ 2021-11-24 14:36 codestacklinuxer 阅读(159) 评论(0) 推荐(0)
摘要:rfcx下载地址 :https://www.ietf.org/rfc/ RFC793 : Transmission Control Protocol 该 RFC 正是定义了 TCP 协议的那份 RFC。在该 RFC 中,可以查到 TCP 的很多 细节 RFC1323 : TCP Extensions 阅读全文
posted @ 2021-11-20 17:32 codestacklinuxer 阅读(260) 评论(0) 推荐(0)
摘要:测试盒子设备ipv6的时候出现cps性能上不去, 抓包的时候发现三次握手出现了重传, 查看ifconfig netstat ethtool 等信息时 没有发现丢包! dmesg的时候出现”“nf_conntrack: table full, dropping packet” 如下log, 说明是nf 阅读全文
posted @ 2021-11-11 20:40 codestacklinuxer 阅读(274) 评论(0) 推荐(0)
摘要:Cpu一栏发现ni占用过高,ni又是什么? >ni: 用户进程空间内改变过优先级的进程占用CPU百分比 所以要调整进程优先级!!! CPU管理进程的是按照时间片的方式来划分CPU的资源。CPU可以把1s划分成若干份,轮询时间片。通过设置进程的优先级,让某些重要的进程优先并且长时间获取CPU资源。手段 阅读全文
posted @ 2021-11-01 18:01 codestacklinuxer 阅读(228) 评论(0) 推荐(0)
摘要:在处理问题时,怀疑某个动态的api 调用有问题, 但是代码太多不想找,于是就直接hook 此api,打印出参数值判断此处问题! 具体业务就不展示,在此举一个例子记录一下当前使用的方法 #define _GNU_SOURCE #include <dlfcn.h> #include <stdio.h> 阅读全文
posted @ 2021-10-29 16:06 codestacklinuxer 阅读(498) 评论(0) 推荐(0)
摘要:关于lock-free的问题,经典模型就是mpmc 无锁队列:具体可以参考之前的文章: lock-free队列 lock-free-progress-guarantees 无锁数据结构库liblfds dpdk lock-free-mpmc :https://dpdk-docs.readthedoc 阅读全文
posted @ 2021-09-17 11:44 codestacklinuxer 阅读(708) 评论(0) 推荐(0)
摘要:目前又有需求做性能优化,都已经将mutex_lock 修改为cas atomic MPMC、Thread_local 等lock_free/原子/局部变量等相关操作,目前就缺用户态RCU了!so看下 怎么使用以及 性能怎样 What is RCU, Fundamentally? Is Paralle 阅读全文
posted @ 2021-09-14 20:58 codestacklinuxer 阅读(589) 评论(0) 推荐(0)
摘要:今天被拉过来加班处理性能问题: 优化后对比的结果为:同样在5wcps的情况下,以前的cpu 使用率为90%, 现在cpu使用率为30%! 从cpu 角度看提高了很多, 同时perf top 结果看, close系统调用所占cpu也降低了不少 由于之前采用多线程架构存在如下问题: 1、批量的close 阅读全文
posted @ 2021-09-11 15:12 codestacklinuxer 阅读(276) 评论(0) 推荐(0)
摘要:5.4领导者/追随者(Leader/Follower) 1.问题 多线程是实现并发处理多事件的应用程序的一种常用技术。然而,很难实现高性能的多线程服务器应用程序。这些应用程序通常处理大量同时到达的多类型事件。为了有效地处理这种问题,有三个强制条件必须解决: 1)服务请求可以来自为每个已连接的客户机分 阅读全文
posted @ 2021-09-03 16:43 codestacklinuxer 阅读(115) 评论(0) 推荐(0)