2011年6月11日

Notes On TCP/IPv1 Ch.18

摘要: 0.貌似在Linux下的tcpdump的输出和TCP/IPv1中所描述的输出有出入,但是tcpdump手册上面的说法也和TCP/IPv1的一样.1. 在tcpdump的输出中,S, F, P, R分别对应SYN, FIN, PSH,RST是个标志位被打开,而"."则表示这四个标志位没有被打开.这四个标志位在一般情况下同时只有一个会被打开.(Page.230)2. 在tcpdump的输出中,只有在S, F,R被打开or报文中数据部分长度不为0的情况下,序号才会被输出,而序号后跟随的括号内的值是这个报文的数据部分的长度.(Page.231)3. 一个链接建立时选择的ISN(in 阅读全文

posted @ 2011-06-11 17:40 Qwertycen 阅读(322) 评论(0) 推荐(0) 编辑

Linux下SO_REUSEADDR于TCP/IPv1中的差异

摘要: TCP/IPv1 老矣! Richard 的去世, 使得这部经典一直无人更新, 虽然书中对IPv4下TCP/IP协议有着清晰的描述, 但是互联网技术日新月异, 一些老的技术不断被改善, 更新以及被取代, 但是书本留在94年成书后就没有任何改变了, 完全没有涉及LINUX和IPv6等等. 回归正题. 在Linux下socket API中的socket选项SO_REUSEADDR完全不同于TCP/IPv1中描述(那么就应该不同与大部分UNIX下的功能). 首先说明本文中IP相同的定义: 除了一般意义上的相同, 通配IP(也就是INADDR_ANY, 或者*)和任何IP相同. 在UDP下: 1. . 阅读全文

posted @ 2011-06-11 17:28 Qwertycen 阅读(1905) 评论(0) 推荐(0) 编辑

2011年6月10日

gnome的环境变量个人设置

摘要: Ubuntu下的alt+F2和win下的win+r类似, 都是用来输入程序名启动程序的, 例如输入gvim启动gvim, 输入firefox启动firefox, 等等. 但是有些时候某些程序名非常的长, 例如chrome的为google-chrome, 终端为gnome-terminal.虽然很多时候都会自动提示, 但是键入超过4个字符去启动一个程序已经不会比用鼠标去打开快了. 于是就想自己自定义这些程序名, 例如google-chrome定为chr, gnome-terminal定为ter, gcacltool定为calc. 开始的时候直接在PATH下的路径直接建立这些符号链接, 但是感觉. 阅读全文

posted @ 2011-06-10 20:05 Qwertycen 阅读(901) 评论(0) 推荐(0) 编辑

2011年5月24日

Notes on TCP/IPv1 Ch.17

摘要: 终于开始看TCP了, 发现TCP的内容好复杂, 好多, 而且有何多points是要记住的. damn!#1 TCP提供的是面向链接, 可靠的, 面向字节流的, 全双工的服务. (Page.223, 226)#2 TCP的面向链接指的是只能由终点(程序)进行通信, 因此TCP并不支持广播和多播. (Page.224)#3 TCP通过数据分割(防止IP层分片), 超时重传, 接收确认, 强制校验和(和UDP一样, 校验和出错不发送通知), 排序, 去重, 流量控制这些机制来保证TCP的可靠性. (Page.224)#4 TCP提供面向字节流的服务, 多个连续的数据可能被合并在一起发送, 但是接收方 阅读全文

posted @ 2011-05-24 20:11 Qwertycen 阅读(154) 评论(0) 推荐(0) 编辑

Notes on TCP/IPv1 Ch.16

摘要: #1 BOOTP是一个比较老的协议了, 现在已被DHCP取代.(Page.222)#2 BOOTP用以取代RARP, (1)由于RARP只能获得IP地址(BOOTP能够包含大量信息); (2)RARP是链路层协议, RARP请求/应答只能限制在一个LAN里, 因此每个LAN都需要配备一个RARP server; (3)RARP需要操作链路层帧, server较难实现并且各平台实现不同. (Page.215)#3 BOOTP的数据包定长为300字节. (Page.215)#4 BOOTP数据包的transaction ID(事务ID)的作用相当于identification, client以此来 阅读全文

posted @ 2011-05-24 14:35 Qwertycen 阅读(236) 评论(0) 推荐(0) 编辑

2011年5月23日

Notes on UNPv1 Ch.5

摘要: #1 一般的私有服务器绑定端口时应该应该使用5001~49151区间内的端口. 0~1023为熟知端口, 1024~5000为传统BSD程序使用的临时端口, 49141~65535为一般系统分配时使用的临时端口.(Page.122)#2 子进程在结束时会向父进程发送信号SIGCHLD, 父进程应使用wait*等函数来获取子进程的终止状态信息, 否则子进程会变成僵尸(APUE有介绍...忘记了). (Page.129)#3 理所当然的, 信号既可以由内核产生(如SIGCHLD等等信号对应不同的情况), 也可以有进程产生(kill函数). (Page.129)#4 一般来说大部分信号都可以通过si 阅读全文

posted @ 2011-05-23 18:09 Qwertycen 阅读(133) 评论(0) 推荐(0) 编辑

导航