读书笔记
shenyan008
这个作者很懒,什么都没留下…
展开
-
TCP/IP Illustrated vol 1 笔记 Path MTU
1. MTU (Maximum Transmission Unit):一个Frame(链路层)数据部分最大长度,即从IP层传给链路层的IP分组的最大值;如果IP层的数据包大于MTU,IP层需要执行分割(fragmentation)。MTU值只有有限几个,最大65535(2^1原创 2011-09-08 11:18:39 · 775 阅读 · 0 评论 -
STL 算法 笔记 排序算法
这些算法都需要随机存取迭代器的支持,所以不支持list。pred 参数:默认排序准则为 operator 1. nth_elementtemplate void nth_element(RanIt first, RanIt nth, Ran原创 2011-09-19 12:57:00 · 545 阅读 · 0 评论 -
C++ 标准程序库 笔记 Function Adapters
1. 针对函数对象的配接器,把一个函数对象转化成另外一个函数对象;比如:bind1st 和 bin2nd 把一个需要两个参数的函数对象转化成只要一个参数的函数对象;这种配接方式,只需要在operetor()中重新调用需要被被转化的函数对象即可实现;例子:pos =原创 2011-09-29 12:57:22 · 642 阅读 · 0 评论 -
TDGG 笔记 GNU C Extension
1. Local Declared Labels申明一个 Label 之后,还需要定义它,然后可以 goto 到指定 Label;int main(void){ __label__ something; // 声明一个 Label int原创 2011-09-27 00:06:22 · 1015 阅读 · 0 评论 -
TCP/IP Illustrated 笔记 IP Fragmentation
1. 术语: IP datagram, IP packet 传输层把传输层的数据传给IP层后,IP层加上IP header后,这就是一个IP datagram,由于数据链路层对帧的数据大小有限制(以太网1500字节),IP层需要把一个IP datagram做分割(Fragmentation)以后再传给数据链路层,这种分割以后的就是packet。下图描述了UDP 数据包分割的过程: 2原创 2011-08-27 21:23:32 · 1802 阅读 · 0 评论 -
TCP/IP Illustrated vol1 笔记 Broadcasting and Multicasting
1. 以太网卡多播:网卡MAC地址的最后一字节的第一位置为1,如:01:00:00:00:00:00广播:可以看成是多播的一种特殊情况,所有位置为1,即:ff:ff:ff:ff:ff:ff2. IP层广播类型liminited broadcast address:即 255.255.255.255,主机配置阶段会发送此中广播,目的地为此地址的不会被路由器转发;net-direc原创 2011-11-03 20:59:26 · 706 阅读 · 0 评论 -
TCP/IP Illustrated vol1 笔记 IGMP
1. IGMP 用于支持多播的主机和路由器中;2. IGMP消息封装在IP数据报中,消息是固定长度的8字节,封装格式如下:version 字段为1;type 字段,1的话是query,2是response/report;3. 主机一个进程是在一个指定的接口上加入一个多播组的;主机是通过组ID和接口来确定一个多播组的,主机维护了一张表,表项 包含多播组和它原创 2011-11-04 13:21:15 · 894 阅读 · 0 评论 -
TCP/IP Illustrated vol1 笔记 TCP Half-Close 和 FIN_WAIT_2 State
1. 调用 shutdown 之后,状态如下图:即,half-close中,主动关闭的这一端接收到 ack of FIN 之后,还能读取对端的数据,而complete close的话,主动关闭的这一端会进入FIN_WAIT_2 State,而这个阶段会一直等待对端发送FIN,shutdown把发起主动关闭的这一端从无穷尽的等待中释放出来。伯克利为了防止无穷等待的出现,设置了定时器,超过原创 2011-11-13 23:30:28 · 3889 阅读 · 0 评论 -
TCP/IP Illustrated vol1 笔记 2MSL Wait State
1. 名词解释:incarnation : New instances of a connection are called incarnations of that connection (p243)也就是连接的四个要素都一样的不同连接实例ISN:Initial Sequence Number (p231)2. TIME_WAIT state当主动发起连接(c原创 2011-11-13 23:14:28 · 974 阅读 · 0 评论 -
Practical Packet Analysis 笔记
charpter 6p86 交换机根据MAC地址转发数据包MAC addresses are needed because a switch that interconnects devices on a network uses a Content Addressable Memory (CAM) table, which lists theMAC addresses of a原创 2011-12-22 18:46:56 · 533 阅读 · 0 评论 -
APUE 笔记 信号 阻塞 忽略 信号屏蔽字 及相关概念
1. 当信号产生时,内核向进程投递(delivery)该信号:其实,投递是通过在进程表中设置一个标志实现的;(10.8) 2. 如果该信号没有被忽略,那么投递前该信号处于pending状态。(10.8) 3. 信号被设置为SIG_IGN(signal(,,SIG_IGN)),内核将忽略该信号,那么该信号不会被投递,也不会有pending状态;(10.8,10.3) 4. s原创 2011-08-23 20:29:52 · 962 阅读 · 0 评论 -
Linux High Memory 笔记
Linux 内核占据线性空间的3G~4G(32位)(/include/asm-i386/page.h中,由__PAGE_OFFSET指定,#define__PAGE_OFFSET (0xC0000000)),所以能直接映射到Linux内核空间的物理内存不可能大于 1G,Linux设置这个值为 896M,保存在high_memory变量中,因此,物理内存中高于896M的被称为 high m原创 2011-10-27 20:51:09 · 2176 阅读 · 1 评论 -
TCP/IP Illustrated Vol1&2 笔记:数据流 和 内核数据结构
1. IP层会通过IP Header中的协议字段,把处理后的IP包传递给不同的传输层协议去处理,所以UDP端口是独立于TCP端口的;(TCP/IP vol1 11.2) 参考:TCP/IP vol1 Figure 1.8,IP层会根据协议来分流(demultiplexing)数据;更多内核中的信息流动细节参考,vol2,1.9,1.10 这两节;a). UDP 输出的时候(se原创 2012-04-13 20:45:29 · 1013 阅读 · 0 评论 -
grep egrep sed awk 笔记
1. 多个正则表达式串联,使用'|'egrep -v '^$|^[^1-9]' file_name2. grep 几个特殊字符(正则表达式):^ : []外 表示行首,[]内 表示取反:[^0-9];$ : 表示行尾; . : 一个字符;*: 重复零次或者多次前一个字符,如:.* 表示匹配任意字符串,注意和 ls 命令的通配符 * 的区别,ls * 星号前不需要原创 2011-10-12 17:59:27 · 676 阅读 · 0 评论 -
UNP vol1 笔记 Socket选项
1.SO_REUSEADDR 和 SO_REUSEPORTSO_REUSEADDR 这个名词取得有点问题的,这一选项的目的是重用端口,不重用地址,完全重用地址和端口是针对多播的这种特殊情况的,于是为了支持多播,又加入了SO_REUSEPORT,这个选项是可以重用地址和端口的,结果这两个选项字面上的意思和实际的意思刚好相反;没办法用就用吧,知道意思就行了;(UNP,vol1,p210)原创 2012-05-04 15:02:40 · 971 阅读 · 0 评论 -
UTLK Signal 笔记
1. Signals sent to a process that is not currently executing must be saved by the kernel until that process resumes execution. 2. 信号的两个概念:内核或者一个进程向另一个进程发送信号(send a signal to),包括两个过程:原创 2012-02-27 02:20:18 · 8637 阅读 · 0 评论 -
STL 源码剖析 笔记 2:左右值 值和引用
首先,可以参考吴桐的文章http://blog.csdn.net/csdnji/archive/2004/11/05/169200.aspx,不赞同他把临时变量认为是右值,但是很赞同把引用用于解释左值。 首先纠正下错误观念。1)左值可变,右值不可变。 那么,C++中的const变量认为是右值,我认为这是不合理的。这是不可变的l-value2)左值有地址,右值没有地原创 2010-04-22 12:27:00 · 602 阅读 · 0 评论 -
STL 源码剖析 笔记 1: 函数指针和类型
P57 有如下一段代码:static void (* set_malloc_handler(void (*f)()) )(){ void (* old)() = __malloc_alloc_oom_handler; __malloc_alloc_oom_handler = f; return (old);} 不像函数指针变量定义,也不像函数定义。可以参考:http:/原创 2010-04-19 14:28:00 · 606 阅读 · 0 评论 -
APUE 笔记 Terminal I/O
18.21. Terminal I/O modecanonical mode input processing :终端驱动(终端)每次处理一行(用户)输入,对应的实现模块是 terminal line discipline;noncanonical mod原创 2011-09-16 17:01:36 · 977 阅读 · 0 评论 -
Linux Administration Handbook 笔记 startup script
1. Bootstrapping = BootingBootstrapping :starting up a computerDuring bootstrapping, the kernel is loaded into memory and begins to原创 2011-09-18 01:59:10 · 500 阅读 · 0 评论 -
TCP IP 详解 1: 笔记 icmp ping traceout
习题 8.7 8.8 及其解答 如何区分ping和traceout不同实例?ping 发送回显请求(echo request) 类型 ICMP 消息(message),ICMP消息字头中identifier字段设置的是ping的进程ID;对方回馈的ICMP消息的头原创 2011-07-09 22:56:23 · 1667 阅读 · 0 评论 -
LAH 笔记 cron
1. cron 周期行执行任务2. 配置文件系统任务配置在:/etc/crontab文件,/etc/cron.d目录,/etc/crontab是给系统管理员手动配置用的,/etc/cron.d是一些安装程序复制过来的。/etc/crontab 利用命令 run原创 2011-09-20 13:54:52 · 713 阅读 · 0 评论 -
LAH 笔记 Syslog and Log Files
1. syslog的进程名保存在/etc/run/syslogd.pid/etc/run 下面有很多后缀为.pid的文件,保存的都是相关进程的pid如果需要更新log文件而结束syslogd的话,可以利用这个文件得到pid:kill -signal `cat /var原创 2011-09-20 20:11:39 · 779 阅读 · 0 评论 -
TCP/IP Illustrated 笔记 BGP
1. AS (Autonomous System) 概念:有RIP/OSPF等内部网关协议(IGP)构建的系统。2. BGP (Border Gateway Protocol) 是一个外部网关协议(EGP),用来代替用在ARPANET上的EGP。3. BGP 使用TCP用原创 2011-08-26 16:46:43 · 567 阅读 · 0 评论 -
TCP/IP Illustrated vol1 笔记 RIP OSPF
1. RIP (Routing Information Protocol)用于在路由器之间交换路由记录,每一条路由记录,称作a route。2. RIP message 包含在UDP 数据报中,每一条路由记录用20字节来保存,v1版本主要包含了:目的网路或主机的IP地址、跳数原创 2011-08-26 12:23:37 · 715 阅读 · 0 评论 -
TCP/IP Illustrated 笔记 CIDR
1. CIDR (Classless Interdomain Routing) 使用32-bit mask来做路由决定,而不是根据A,B,C类地址来决定。这样可以解决两个问题,a) 更精细的网络划分,防止直接分配A,B类地址造成的地址浪费;b) 更好的做网络的分层和合并,减少路由原创 2011-08-26 18:46:52 · 601 阅读 · 0 评论 -
APUE 笔记 sigsuspend
解决sigprocmask和pause之间的时间窗口问题,如果分开调用sigprocmask和pause,如果pause所等待发生的信号,在这个时间窗口内发生了,那么pause就错过了这个信号,导致pause无限等待。sigsuspend原子化sigprocmask和paus原创 2011-08-24 16:30:36 · 669 阅读 · 0 评论 -
APUE 笔记 守护进程
1. daemon 是后台进程后台进程有些是内核的(kernel daemons),通常他们的父进程号是0,他们在系统启动阶段启动;有些是用户层的(user-level daemons),所有用户层后台程序是 process group leaders 和 session原创 2011-09-21 12:42:44 · 845 阅读 · 0 评论 -
TCP/IP Illustrated 笔记 UDP Checksum
1. 计算检验和的方法 同 3.2中计算IP header的检验和: 发送端,首先置校验和为全0,然后,每16-bit,用反码相加的方式求和(one's complement sum),对最后的和再取其反码,保存为在checksum字段;(one's complemen原创 2011-08-27 16:05:43 · 1466 阅读 · 0 评论 -
gcc 笔记 C Dialect Options
C dialects 选项 :-ansi 支持 C89,关闭不符和C89的 GNU扩展-std=value value可以是c89,iso9899:1990,iso9989:199409,c99,c9x,iso9899:1999,iso9989:199x,gnu89原创 2011-09-25 00:21:29 · 897 阅读 · 0 评论 -
Unix Network Programming vol1 笔记 TCP/IP的缓冲,全双工,半关闭 shutdown 函数
1. TCP/IP 连接是全双工的连接,连接端两端同时可以发送和接受数据;2. 如果连接的一端A对一个全双工工作的TCP/IP连接调用close,A会先把发送送缓冲区的数据发送完,然后,发送FIN,但同时A却丢弃接受缓冲区的数据,并且对于对方B继续发送的数据,直接丢弃,这会造原创 2011-08-29 15:59:57 · 993 阅读 · 0 评论 -
gcc Warning Options
-Wformat 格式化处理的函数(prrintf,scanf,strftime,strfmon)中,格式字符串 和 参数 类型 不匹配,发出警告;-Wno-format-extra-args C 标准中多余的参数会被忽略,添加这个选项,发出警告;原创 2011-09-26 23:55:02 · 612 阅读 · 0 评论 -
LSH 笔记 X Window System
1. 历史来源于MIT的Athena项目,本来叫W(1980),自然接下来就叫X;1985,Version 10 得到广泛使用,不久之后就除了 11;现在是X11R7.6;XFree86 是X服务器在Linux下的实现,直到2004年,由于条款的变化,XFree8原创 2011-09-27 18:19:18 · 766 阅读 · 0 评论 -
C++ 标准程序库 笔记 13.4.3 Stream 状态和布尔条件测试 类型转换函数he单参构造函数
1. stream重载了两个操作符:其中一个是类型转换操作符:operator void*(),判断stream是否出错,相当于!fail()可以用它判断stream的错误情况:while (std::cin){...}因为控制结构中的布尔条件并非不是非得原创 2011-07-15 17:19:21 · 763 阅读 · 0 评论 -
鸟哥 服务器 笔记: Linux 常用的网络命令 route ifconfig ifup ifdown
1. ifconfigifconfig eth0 192.168.0.2 netmask 255.2555.255.128 mtu 80002. ifup ifdownifup eth0ifup/ifdown 通过/etc/network/(Ubuntu)目录下的脚本来配置接口3. route设置默认路由:route add defa原创 2011-09-13 23:46:25 · 1428 阅读 · 0 评论