2019年3月6日

摘要: 一、线程退出在之前的一篇博客(http://tsecer.blog.163.com/blog/static/150181720120175027358/)中说明了一个进程描述符的回收过程,其中可以看到,只有主线程有权利通知父进程整个线程组已经退出,也就宣告整个任务的结束,其它的线程(一般通过pthr 阅读全文
posted @ 2019-03-06 21:04 tsecer 阅读(547) 评论(0) 推荐(0)
摘要: 一、NAT 为了让一个外部IP供多个内部主机使用,经常需要将一个主机配置为NAT服务器,从而对外部来看只有一个IP。或者说对于一些网站,可能开辟了多个服务,这些服务使用不同的服务器端口,此时单个服务器无法有效的完成对用户请求的响应,例如http服务器的80端口,或者说为了进行负荷分担,可以将同一个I 阅读全文
posted @ 2019-03-06 21:04 tsecer 阅读(535) 评论(0) 推荐(0)
摘要: 一、机制该工具相当于内核中的车匪路霸,它们在内核网络栈中各处安装关卡,对内核中报文的流动进行监控管理,它是Linux系统下实现防火墙的基础,利用用户态的iptables的实现就是netfilter机制的一个典型应用。该机制直接嵌入内核,在内核生成的时候这些监测点就已经被编译入内核,所以是顽固而可靠的 阅读全文
posted @ 2019-03-06 21:03 tsecer 阅读(685) 评论(0) 推荐(0)
摘要: 一、进程消亡一个进程消亡之后,它在内核中的户口task_struct结构需要被回收,这个回收必须是主动的通过系统调用来回收,也就是waitpid或者wait4之类的系统调用。但是很多时候,我们并没有关心这个子进程的退出,比如我写的一些测试程序,如果这些进程没有被wait,那么它们是否真的像僵尸一样在 阅读全文
posted @ 2019-03-06 21:02 tsecer 阅读(284) 评论(0) 推荐(0)
摘要: 一、应用在很多tap虚拟网卡的使用中,bridge也都是被使用的。至少是在qemu的网络模拟和vpn的bridge实现也依赖于bridge这种虚拟设备,所以在看了tap的使用之后,bridge的使用和原理也不可避免的要弱弱的围观一下。这里的bridge并不是一个物理的网桥,而是一个虚拟的网络设备。它 阅读全文
posted @ 2019-03-06 21:01 tsecer 阅读(581) 评论(0) 推荐(0)
摘要: 一、为什么需要这种通讯机制设想用户态和内核交互数据,主要是通过系统调用read,ioctl,或者是proc文件系统。但是read有一个明显的缺点,它是一个字符流机制,不能定制,也就是无论谁从里面读,读到的内容都是相同的。这种无格式的结构对于网络这种非常繁琐的交互方法来说是不够的。例如,要枚举系统中所 阅读全文
posted @ 2019-03-06 21:01 tsecer 阅读(1450) 评论(0) 推荐(0)
摘要: 一、网络设备一般一个系统中如果可以连接外网的话,会有一个物理设备,也就是我们通常意义上所说的网卡。但是除了物理上的网卡,系统中还存在这个其他类型的网络设备,这些设备在网络中有着不同的应用场景。例如最为常见的loopback网卡,还有一些不那么常见的网络设备,例如tun/tap网络设备,bridge网 阅读全文
posted @ 2019-03-06 21:00 tsecer 阅读(1299) 评论(0) 推荐(0)
摘要: 一、问题有时候,一个用户态的监控任务可能要定期的获得系统的某个状态,例如CPU利用率,进程切换次数、甚至maps的布局等信息,这些信息一般都是通过内核的proc文件系统来获得。由于是周期性的获得这些信息,为了避免临时抱佛脚,可以在模块初始化的时候打开这个文件,然后下次就不同通过open系统调用,进而 阅读全文
posted @ 2019-03-06 20:59 tsecer 阅读(512) 评论(0) 推荐(0)
摘要: 一、一些边界及不和谐情况一直以为TCP的connect就是通过三次握手来实现的,但是今天看书看到说有同时打开,这个时候是四次握手。正是印证只有想不到,没有做不到的道理。当然这里不是说这是TCP的bug,而是TCP在自己的RFC中预见并讨论了这种情况,其中说明了这种同时打开出现的场景以及TCP应该表现 阅读全文
posted @ 2019-03-06 20:58 tsecer 阅读(497) 评论(0) 推荐(0)
摘要: 一、有连接与无连接 上层编程的时候我们比较常见的就是UDP使用sendto发送,而TCP使用send发送,前者是无连接的,后者是面向连接的。或者通俗的说,TCP比UDP更靠谱一些。所谓面向连接就是说这个发送协议栈担任了雷锋侠的角色,就是默默地对链路进行了协调和维护,从而让这个链路看起来更加的稳定。例 阅读全文
posted @ 2019-03-06 20:57 tsecer 阅读(4870) 评论(0) 推荐(0)

导航