route指令:
显示 kernel's IP routing tables(显示内核的IP表)
结果是自上而下, 就是说, 哪条在前面, 哪条就有优先, 前面都没有, 就用最后一条default
Linux fork函数
http://www.cnblogs.com/bastard/archive/2012/08/31/2664896.html
通过系统调用创建一个与原来进程几乎完全相同的进程
1)在父进程中,fork返回新创建子进程的进程ID;2)在子进程中,fork返回0;
3)如果出现错误,fork返回一个负值;
exit(0)和exit(1)有什么区别
exit()使程序立即正常终止,如果状态值为0则认为正常推出,如果非零则说明存在执行错误。
调用exit()清除和关闭所有打开的文件,写出任何缓冲输出,并且调用所有atexit()登记的程序终止函数。
sleep(0)和sleep(1的区别
当 timeout = 0, 即 Sleep(0),如果线程调度器的可运行队列中有大于或等于当前线程优先级的就绪线程存在,操作系统会将当前线程从处理器上移除,调度其他优先级高的就绪线程运行;如果可运行队列中的没有就绪线程或所有就绪线程的优先级均低于当前线程优先级,那么当前线程会继续执行,就像没有调用 Sleep(0)一样。
(有优先级更高的线程就移除本线程,否则继续至性)
当 timeout > 0 时,如:Sleep(1),会引发线程上下文切换:调用线程会从线程调度器的可运行队列中被移除一段时间,这个时间段约等于 timeout 所指定的时间长度。为什么说约等于呢?是因为睡眠时间单位为毫秒,这与系统的时间精度有关。通常情况下,系统的时间精度为 10 ms,那么指定任意少于 10 ms但大于 0 ms 的睡眠时间,均会向上求值为 10 ms。
(将本线程从队列中移除timeout时间)
ARP协议:
A mapping between IP addresses and MAC addresses
ARP攻击:http://netsecurity.51cto.com/art/200609/31756.htm
分析抓包:
第一部分 Ethernet II为MAC帧头部,MAC帧头部为14字节,6字节Destnation addr,6字节Source addr,2字节类型
2字节的类型表示上一层使用的是什么协议,以便把收到的MAC帧的数据交给上一层这个协议,这里是0800,表示的是IP协议
后面2部分是MAC帧内容,MAC帧的内容大小为46到1500字节之间,(64-18=46),在帧内容之后还有4字节的FCS校验码。
第二部分为IP数据包头,为选中部分,IP包头为20字节到60字节可变,此处为最短的20字节。
版本为4,表示IPV4;
首部长字段为5,表示5*4=20字节;
1个字节长的区分服务字段,没弄明白这段干什么用的
总长度(total length),2个字节,表示首部和数据之和的长度,这里是84,16进制为0054
。。。
第三部分是ICMP数据包 type=8 是询问报文echo
本文详细解析Linux系统中的route指令用于显示内核路由表,阐述了fork函数实现进程复制的原理及使用场景,同时对比了exit(0)与exit(1)在程序退出状态上的区别,并探讨了sleep函数在不同参数下对线程行为的影响。此外,文章还介绍了ARP协议及其攻击手段,并提供了解析抓包过程中Ethernet II帧与IP数据包头部结构的方法,最后以ICMP数据包为例展示了其在询问报文中应用。
7587

被折叠的 条评论
为什么被折叠?



