![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 73
linux系列知识
Steps-of-time
不断的学习,将来的你会发现,一定会感谢现在拼命的自己。
展开
-
工作之踩坑记录
情景:将框架传递的链接地址采用整形保存传输,在i386架构上导致地址比较大,采用atol转型可能导致数据被截断出现异常。方案:采用atoll更大的数据类型进行处理即可避免该问题。原创 2023-12-13 20:32:20 · 673 阅读 · 2 评论 -
linux之socket创建时内核结构
socket接收数据流程原创 2022-10-22 20:29:31 · 770 阅读 · 0 评论 -
linux之epoll工作原理学习笔记
epoll原理原创 2022-10-20 20:34:31 · 380 阅读 · 0 评论 -
HTTP协议笔记
http原创 2022-10-16 18:58:09 · 2250 阅读 · 0 评论 -
Tcp三次握手内核流程图解
tcp三次握手原创 2022-10-08 18:06:50 · 1220 阅读 · 0 评论 -
linux网卡收数据包内核流程学习笔记
网络数据包收取流程原创 2022-10-08 10:24:58 · 779 阅读 · 0 评论 -
linux笔记杂谈
关键字__thread使用原创 2022-07-27 19:12:08 · 420 阅读 · 0 评论 -
linux之SO_REUSEPORT属性
so_reuseport原创 2022-07-09 09:20:10 · 759 阅读 · 0 评论 -
/usr/lib64/libssl.so.10: symbol private_ossl_minimum_dh_bits, version libcrypto.so.10 not defined问题?
问题描述如下: relocation error: /usr/lib64/libssl.so.10: symbol private_ossl_minimum_dh_bits, version libcrypto.so.10 not defined in file libcrypto.so.10 with link time reference尝试了好久才解决,要么缺失,要么版本不对。原因...转载 2018-04-13 14:18:40 · 9453 阅读 · 0 评论 -
linux环境tcpdump使用时提示无法找到该用户命令。
最近工作中因为在处理业务的时候,遇到了一些问题,程序的跑的过程中总是会出现丢包的现象,在服务器上,优先使用了tcpdump这个工具,但是发现,服务器并没有安装,于是使用了yum源仓库,来进行安装,yum install -y tcpdump.安装过程很顺利,但是当启动使用的时候,出现了如下错误:tcpdump: Couldn't find user 'tcpdump';起先,也没找...原创 2017-11-18 11:35:28 · 21819 阅读 · 0 评论 -
linux高并发多路I/O复用之epoll模型
Epoll模型概念:epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著的减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。因为它会复用文件描述符集合来传递结果,而不是迫使开发者每次等待事件之前都必须重新准备要被侦听的文件描述符集合,另一个原因就是获取事件的时候,它无须遍历整个被侦听的描述符集...原创 2018-04-02 10:08:16 · 918 阅读 · 0 评论 -
linux 文件的遍历
首先,明确一个类型DIR的含义: #include <dirent.h> DIR A type representing a directory stream.(指向一个目录的指针) DIR是在目录项格式头文件dirent.h中定义的,它表示一个目录流类型。一、opendir - open a directory SYNOPSIS#include <sys/types.h&...原创 2018-04-02 10:34:14 · 873 阅读 · 0 评论 -
linux环境的gdb使用法。
linux环境编程之gdb工具的详解GDB命令的使用GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能:1、启动...原创 2017-10-12 21:51:44 · 278 阅读 · 0 评论 -
高并发多路I/O复用之poll模型
Poll模型介绍select() 和 poll() 系统调用的本质一样,poll() 的机制与 select() 类似,与 select() 在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是 poll() 没有最大文件描述符数量的限制(但是数量过大后性能也是会下降)。poll() 和 select() 同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态...翻译 2018-04-02 11:06:26 · 919 阅读 · 0 评论 -
高并发多路I/O复用的select介绍
select1、基本概念IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合: (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。 (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。 (3)如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用到I/O复用。 (4)...原创 2018-04-02 09:28:14 · 289 阅读 · 0 评论 -
linux 线程同步问题之互斥锁
线程的特点是一个轻量级的,所有的线程共享相同的资源,这样一来就产生了问题,多线程如何来同步的合理的使用这些资源呢?在linux中提供了三种形式的同步模式,互斥锁,信号量,互斥变量三种模型来解决该问题。下来就简单介绍这几种情况:<1>互斥锁(mutex) 利用互斥锁来进行线程的同步,让每个线程在某个时间只能让一个线程使用该资源,用完之后释放该资源,供给其他线程使用。如下所示:互斥锁...原创 2018-04-02 20:53:25 · 193 阅读 · 0 评论 -
linux socket编程中的recv和send的返回值介绍及其含义。
recv方法:模型: #include <sys/types.h> #include <sys/socket.h> ssize_t recv(int sockfd, void *buf, size_t len, int flags);参数:sockfd创建的文件描述符fd,buf接收数据的缓冲区,len接收数据的长度,flags表示信息,默认设置为0当应用程序调用recv接...原创 2018-07-10 17:56:08 · 40297 阅读 · 2 评论 -
共享内存特点介绍。
本文根据如下几个问题来介绍共享内存的使用方法,共享内存的使用实现原理?然后共享内存段被映射进进程空间之后,存在于进程空间的什么位置?共享内存段最大限制是多少?根据这三个问题来介绍共享内存的使用信息。不多说了,直接开始介绍。1.什么是共享内存? 共享内存也是ipc通信的一种方式,它是通过将一段内存映射到用户进程空间中,从而达到进程之间的通信方式,(共享内存需要借助其他的同步机制来实现共享内...原创 2018-05-09 14:33:50 · 2383 阅读 · 0 评论 -
ipv6网络通信方式
关于ipv6网络编程方式1.通常我们使用的都是ipv4的方式来进行网路编程通信,本次介绍的是ipv6方式通信方式。直接根据代码实例来说明,以及使用中需要注意事项。2在linux环境下,我们使用ifconfig命令查询网卡信息如下:如上图所示,inet6中两个ipv6地址,这两个地址是有区别的,就是尾部的Global和Link两个关键字。要想使用ipv6进行网路通信,不能...原创 2018-07-05 16:27:01 · 8709 阅读 · 0 评论 -
linux网络编程tcp/ip协议包头结构解析
数据包结构如下:图中括号中的数字代表的是当前域所占的空间大小,单位是bit位。黄色的是数据链路层的头部,一共14字节绿色的部分是IP头部,一般是20字节紫色部分是TCP头部,一般是20字节最内部的是数据包内容黄色部分:链路层目的MAC:当前step目的主机的mac地址源MAC:当前step的源主机的mac地址类型:指定网络层所用的协议类型,通常是IP协议,0x0800绿色部分:网络层,这里用的是I...原创 2018-07-13 16:46:27 · 1555 阅读 · 0 评论 -
linux命令之netstat使用。
netstat命令是linux网络环境编程中使用比较广泛的一种工具,用于显示各种网络信息和自己的主机信息,以及想用额路由表信息等。方便与使用者更好的观察网络信息的变化,从而解决各种相应的问题。netstat命令的各项参数列表如下所示: netstat命令显示: 说明:上图中显示的结果分为Active Internet connections (w/o servers)和Active UNI...原创 2018-05-09 09:41:59 · 261 阅读 · 0 评论 -
TCP打洞方法
1.TCP穿透原理:(俗称打洞机制)我们假设在两个不同的局域网后面分别有2台客户机A和 B,AB所在的局域网都分别通过一个路由器接入互联网。互联网上有一台服务器S。现在AB是无法直接和对方发送信息的,AB都不知道对方在互联网上真正的IP和端口,AB所在的局域网的路由器只允许内部向外主动发送的信息通过。对于B直接发送给A的路由器的消息,路由会认为其“不被信任”而直接丢弃。要实现 AB直接的通讯,就必...原创 2018-04-19 15:44:33 · 5576 阅读 · 2 评论 -
tcp连接之半连接攻击和全连接攻击总结
众所周知,tcp通信是一个面向连接的过程,客户端要和服务端连接,必须进行连接才能进行通信。在tcp连接中,有两种连接攻击方式,是半连接攻击机和全连接攻击,对此搜积相关资料做了一个总结。<1>半连接攻击? 半连接攻击是一种攻击协议栈的攻击方式,坦白说就是攻击主机的一种攻击方式。通过将主机的资源消耗殆尽,从而导致应用层的程序无资源可用,导致无法运行。在正常情况下,客户端连接服...原创 2018-07-17 21:58:27 · 10904 阅读 · 0 评论 -
linux至vim编辑器配置总结
1.vim配置行号 我们在使用vim编辑文本时,为了方便查看文档,可以给文本是行号,有两种方法输入冒号:set nu 回车添加临时行号.如果要永久生效,在~/.vimrc文件中添加 set nu保存退出即可,在后面使用vim自动添加行号。2,vim编辑模式下,退格键失效原因? 解决方法:在~/.vimrc文件中添加如下选项 set backspace=ident,eol......原创 2018-12-24 21:56:47 · 197 阅读 · 0 评论 -
socket通信显示连接被拒绝问题总结
socket通信方式 通常使用的是socket通信模式为c/s模式,就是通过服务端创建连接,并绑定监听相关的端口,客户端通过连接至相应的端口,实现使用tcp的三次握手来进行可靠性连接,从而达到数据传输。如果对应的客户端和服务端在同一台服务器上,因是数据内部通信方式,可直接相连接。但是当我们的客户端和服务端分别部署在不同的服务器上,有时候会出现客户端连接的时候提示connect r...原创 2018-09-17 20:13:24 · 32951 阅读 · 8 评论 -
linux shell之cut命令
cut命令使用与处理文件中按行处理的方式,从字面上理解就是截取字段处理的一个命令。cut命令的语法格式:cut [-bn] [file] 或者 cut [-c] [file] 或 cut [-df] [file]cut命令的各项参数使用介绍:-b参数,标识按照字节截取,可以 制定范围,例如 cut -b 2-10 file.txt,也可以使用 cut -b 1,3,5,...原创 2018-07-16 21:22:30 · 2663 阅读 · 0 评论 -
数据包采集之网卡模式设置混杂模式
这两天处理数据过程,发现采集数据包突然停止不采集数据了,查询了下,发现是网卡的模式被设置为非混杂模式,导致数据数据包不能采集得到,特此总结一下。1,什么是网卡的混杂模式?? 所谓的混杂模式就是指网卡在这种模式下,能够接受一切流经该网卡的数据,并且不管目的地址是否为自身。通常情况下,网卡只接收目的地址发给自身的数据包,包括广播包,其他的包一律丢弃。所以,在混杂模式下,能接受所有流经该网卡的包...原创 2018-07-16 17:52:47 · 3723 阅读 · 0 评论