2019年3月6日

摘要: 一、进程消亡一个进程消亡之后,它在内核中的户口task_struct结构需要被回收,这个回收必须是主动的通过系统调用来回收,也就是waitpid或者wait4之类的系统调用。但是很多时候,我们并没有关心这个子进程的退出,比如我写的一些测试程序,如果这些进程没有被wait,那么它们是否真的像僵尸一样在 阅读全文
posted @ 2019-03-06 21:02 tsecer 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 一、应用在很多tap虚拟网卡的使用中,bridge也都是被使用的。至少是在qemu的网络模拟和vpn的bridge实现也依赖于bridge这种虚拟设备,所以在看了tap的使用之后,bridge的使用和原理也不可避免的要弱弱的围观一下。这里的bridge并不是一个物理的网桥,而是一个虚拟的网络设备。它 阅读全文
posted @ 2019-03-06 21:01 tsecer 阅读(425) 评论(0) 推荐(0) 编辑
摘要: 一、为什么需要这种通讯机制设想用户态和内核交互数据,主要是通过系统调用read,ioctl,或者是proc文件系统。但是read有一个明显的缺点,它是一个字符流机制,不能定制,也就是无论谁从里面读,读到的内容都是相同的。这种无格式的结构对于网络这种非常繁琐的交互方法来说是不够的。例如,要枚举系统中所 阅读全文
posted @ 2019-03-06 21:01 tsecer 阅读(1187) 评论(0) 推荐(0) 编辑
摘要: 一、网络设备一般一个系统中如果可以连接外网的话,会有一个物理设备,也就是我们通常意义上所说的网卡。但是除了物理上的网卡,系统中还存在这个其他类型的网络设备,这些设备在网络中有着不同的应用场景。例如最为常见的loopback网卡,还有一些不那么常见的网络设备,例如tun/tap网络设备,bridge网 阅读全文
posted @ 2019-03-06 21:00 tsecer 阅读(870) 评论(0) 推荐(0) 编辑
摘要: 一、问题有时候,一个用户态的监控任务可能要定期的获得系统的某个状态,例如CPU利用率,进程切换次数、甚至maps的布局等信息,这些信息一般都是通过内核的proc文件系统来获得。由于是周期性的获得这些信息,为了避免临时抱佛脚,可以在模块初始化的时候打开这个文件,然后下次就不同通过open系统调用,进而 阅读全文
posted @ 2019-03-06 20:59 tsecer 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 一、一些边界及不和谐情况一直以为TCP的connect就是通过三次握手来实现的,但是今天看书看到说有同时打开,这个时候是四次握手。正是印证只有想不到,没有做不到的道理。当然这里不是说这是TCP的bug,而是TCP在自己的RFC中预见并讨论了这种情况,其中说明了这种同时打开出现的场景以及TCP应该表现 阅读全文
posted @ 2019-03-06 20:58 tsecer 阅读(408) 评论(0) 推荐(0) 编辑
摘要: 一、有连接与无连接 上层编程的时候我们比较常见的就是UDP使用sendto发送,而TCP使用send发送,前者是无连接的,后者是面向连接的。或者通俗的说,TCP比UDP更靠谱一些。所谓面向连接就是说这个发送协议栈担任了雷锋侠的角色,就是默默地对链路进行了协调和维护,从而让这个链路看起来更加的稳定。例 阅读全文
posted @ 2019-03-06 20:57 tsecer 阅读(4479) 评论(0) 推荐(0) 编辑
摘要: 一、路由选择 路由选择是IP层最为重要也是最为基本的一个功能,可以说是因特网实现报文交通的基础,所以这个东西还是比较重要的,大部分的网络设备供应商都会提供自己的路由器产品。当然我这里就无缘领教这些东西了,只是从Linux内核的协议栈中看一下一个PC的简单路由功能及实现方法。 之前说过当一个TCP客户 阅读全文
posted @ 2019-03-06 20:56 tsecer 阅读(1196) 评论(0) 推荐(0) 编辑
摘要: 一、习惯性问题刚从C++转到C开发的时候,觉得C里面一些函数调用不用声明函数原型,也不用定义,当时觉得很神奇。后来在C语言下开发久了,发现调用的函数没有声明导致编译错误,又觉得很神奇。看来很多东西习惯了就见鬼不怪了。二、测试的代码[tsecer@Harry GccTest]$ cat MustDec 阅读全文
posted @ 2019-03-06 20:55 tsecer 阅读(4943) 评论(0) 推荐(1) 编辑
摘要: 一、侦听和连接现在暂时不考虑网络拥塞问题,假设我们生活在新闻联播里,网络和谐,网速超快。现在一个好客的server在listen之后通过accept准备接受四面八方的朋友,此时就有一个客户端系统通过connect系统调用来连接这个服务器上的侦听套接口,我们暂时分析一下这个服务器的大致流程。当然,服务 阅读全文
posted @ 2019-03-06 20:54 tsecer 阅读(561) 评论(0) 推荐(0) 编辑

导航