2014年12月27日

linux:关于Linux系统中 CPU Memory IO Network的性能监测

摘要: 我们知道:系统优化是一项复杂、繁琐、长期的工作.通常监测的子系统有以下这些:CPUMemoryIONetwork下面是常用的监测工具Linux 系统包括很多子系统(包括刚刚介绍的CPU,Memory,IO,Network,等),下面这张图片很好的总结了 Linux 各个子系统以及监控这些子系统所需... 阅读全文

posted @ 2014-12-27 23:57 胡永光 阅读(127) 评论(0) 推荐(0) 编辑

linux TCP数据包重传过程----小结

摘要: 于TCP/IP协议栈的TCP协议的重传功能是由在linux内核源码(net/ipv4/tcp_output.c)中的函数tcp_retransmit_skb()实现的代码如下:/* This retransmits one SKB. Policy decisions and retransmi... 阅读全文

posted @ 2014-12-27 23:50 胡永光 阅读(799) 评论(0) 推荐(0) 编辑

linux TCP头部的构造的简单分析

摘要: TCP的头部的构造是在函数tcp_transmit_skb()中进行的函数片段如下:/* Build TCP header and checksum it. */ th = tcp_hdr(skb); th->source = inet->inet_sport; th->dest = inet... 阅读全文

posted @ 2014-12-27 23:45 胡永光 阅读(214) 评论(0) 推荐(0) 编辑

linux TCP数据包封装在SKB的过程分析

摘要: 在linux中 tcp的数据包的封装是在函数tcp_sendmsg开始的,在函数tcp_sendmsg中用到skb = sk_stream_alloc_skb(sk, select_size(sk, sg),sk->sk_allocation);分配了一个SKB(暂且称之为old_skb)而真正的... 阅读全文

posted @ 2014-12-27 23:38 胡永光 阅读(269) 评论(0) 推荐(0) 编辑

关于 linux中TCP数据包(SKB)序列号的小笔记

摘要: 关于 SKB序列号的小笔记为了修改TCP协议,现在遇到了要改动tcp分组的序列号,但是只是在tcp_sendmsg函数中找到了SKB的end_seq 一直没有找到seq 不清楚在那里初始化了,就跟踪了分配SKB的函数 sk_stream_alloc_skb()还是没有找到,最后在函... 阅读全文

posted @ 2014-12-27 23:33 胡永光 阅读(623) 评论(0) 推荐(0) 编辑

TCP的TIME_WAIT状态

摘要: 主动关闭的Socket端会进入TIME_WAIT状态,并且持续2MSL时间长度,MSL就是maximum segment lifetime(最大分节生命期),这是一个IP数据包能在互联网上生存的最长时间,超过这个时间将在网络中消失。MSL在RFC 1122上建议是2分钟,而源自berkeley的T... 阅读全文

posted @ 2014-12-27 23:30 胡永光 阅读(161) 评论(0) 推荐(0) 编辑

Linux-2.6.25 TCPIP函数调用大致流程

摘要: 插口层系统调用send sys_send sys_sendtosendto sys_sendto sock_sendmsgsendmsg sys_sendmsg sock_sendmsgwrite sys_write ... 阅读全文

posted @ 2014-12-27 23:05 胡永光 阅读(407) 评论(0) 推荐(0) 编辑

Linux 下不经过BIOS重启(i386)

摘要: 前段时间有个项目,要求在Linux下不经过BIOS重启,i386平台。一、可行性分析 众所周知,BIOS中包含了CPU及其他各种设备的初始化代码,Linux系统运行之后是否能够将各种用到的设备返回到刚被BIOS初始化后的状态是是否可行的关键。 从项目的条件来看,外设并不是问题。因为要首先开... 阅读全文

posted @ 2014-12-27 22:56 胡永光 阅读(525) 评论(0) 推荐(0) 编辑

Linux块设备加密之dm-crypt分析

摘要: 相关的分析工作一年前就做完了,一直懒得写下来。现在觉得还是写下来,以来怕自己忘记了,二来可以给大家分享一下自己的研究经验。 这篇文章算是《Device Mapper代码分析》的后续篇,因为dm-crypt是基于dm框架的,因此与上一篇一样,也以2.6.33内核代码为基础来讲述代码的分析过程。但是本... 阅读全文

posted @ 2014-12-27 22:44 胡永光 阅读(1358) 评论(0) 推荐(1) 编辑

Device Mapper 代码分析

摘要: Device Mapper(DM)是Linux 2.6全面引入的块设备新构架,通过DM可以灵活地管理系统中所有的真实或虚拟的块设备。DM以块设备的形式注册到Linux内核中,凡是挂载(或者说“映射”)于DM结构下的块设备,不管他们是如何组织,如何通讯,在Linux看来都是一个完整的DM块设备。因此... 阅读全文

posted @ 2014-12-27 22:21 胡永光 阅读(525) 评论(0) 推荐(0) 编辑

Linux 下的一个全新的性能测量和调式诊断工具 Systemtap, 第 3 部分: Systemtap

摘要: Systemtap的原理,Systemtap与DTrace比较,以及安装要求和安装步骤本系列文章详细地介绍了一个Linux下的全新的调式、诊断和性能测量工具Systemtap和它所依赖的基础kprobe以及促使开发该工具的先驱DTrace并给出实际使用例子使读者更进一步了解和认识这些工具。 本文是... 阅读全文

posted @ 2014-12-27 21:32 胡永光 阅读(156) 评论(0) 推荐(0) 编辑

Linux 下的一个全新的性能测量和调式诊断工具 Systemtap, 第 2 部分: DTrace

摘要: DTrace的原理本系列文章详细地介绍了一个 Linux 下的全新的调式、诊断和性能测量工具 Systemtap 和它所依赖的基础 kprobe 以及促使开发该工具的先驱 DTrace 并给出实际使用例子使读者更进一步了解和认识这些工具。 本文是该系列文章之二,它详细地讲解了 DTrace 的原理... 阅读全文

posted @ 2014-12-27 21:12 胡永光 阅读(152) 评论(0) 推荐(0) 编辑

Linux 下的一个全新的性能测量和调式诊断工具 Systemtap,第 1 部分: kprobe

摘要: kprobe 的原理、编程接口、局限性和使用注意事项本系列文章详细地介绍了一个Linux下的全新的调式、诊断和性能测量工具Systemtap和它所依赖的基础kprobe以及促使开发该工具的先驱DTrace并给出实际使用例子使读者更进一步了解和认识这些工具。 本文是该系列文章之一,它讲解了kprob... 阅读全文

posted @ 2014-12-27 20:53 胡永光 阅读(199) 评论(0) 推荐(0) 编辑

导航