首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 系统运维 >

深入懂得iputils网络工具-第1篇 简介

2012-09-01 
深入理解iputils网络工具-第1篇 简介1.1iputils软件包简介iputils软件包是linux环境下一些实用的网络工具

深入理解iputils网络工具-第1篇 简介
1.1       iputils软件包简介

    iputils软件包是linux环境下一些实用的网络工具的集合。一开始由Alexey Kuznetsov维护。

    iputils包含以下几个工具:

    1. ping。使用 ping可以测试计算机名和计算机的ip地址,验证与远程计算机的连接。ping程序由ping.c ping6.cping_common.c ping.h 文件构成

    2. tracepath。与traceroute功能相似,使用tracepath测试IP数据报文从源主机传到目的主机经过的路由。tracepath程序由tracepath.c tracepath6.c traceroute6.c 文件构成。

    3. arping。使用arping向目的主机发送ARP报文,通过目的主机的IP获得该主机的硬件地址。arping程序由arping.c文件构成。

    4. tftpd。tftpd是简单文件传送协议TFTP的服务端程序。tftpd程序由tftp.h tftpd.c tftpsubs.c文件构成。

    5. rarpd。rarpd是逆地址解析协议的服务端程序。rarpd程序由rarpd.c文件构成。

    6. clockdiff。使用clockdiff可以测算目的主机和本地主机的系统时间差。clockdiff程序由clockdiff.c文件构成。

    7. rdisc。rdisc是路由器发现守护程序。rdisc程序由rdisc.c文件构成。

1.2       本文简介

   本文是在对源程序的分析的过程中写的总结文档。本文将依次对软件包中的程序进行介绍。介绍主要按照如下几个方面进行:

    1. 在前言中简要介绍程序的基本用途、基本原理等。这是对于软件包中各软件的基本认识的总结。

    2. 在程序使用中介绍程序的使用方法、使用选项等。这是对于使用软件包中程序的使用方法的介绍。

    3. 在程序流程图中给出程序的基本流程。流程图的优点是比较能直观地给出程序的功能实现的流程,方便对程序有全局的掌握。然而不可避免地,流程图隐去了诸多的实现细节,所以如果要进一步分析程序,还需要进一步深入细节。

    4. 介绍全局变量的含义、用途、变化等。全局变量是在程序中任何地方都可以访问的变量,所以分析全局变量有助于理解程序的数据变化流程。

    5. 对于重要函数的介绍。一些重要的函数,不仅在程序的实现上占有重要的作用,而且理解起来有一定的难度,我觉得有必要进行分析。

    6. 对于牵涉到的网络协议的介绍。阅读iputils源码的目的和好处之一就是帮助进一步理解网络协议。iputils涉及到IP、UDP、 ARP、RARP、ICMP、TFTP等不同层次的网络协议。本文将给出网络协议的基本介绍,主要是给出了网络报文的格式等内容。

    7. 对于程序中重要的实现方法的介绍。而在iputils源码分析中,遇到了很多计算机网络方面的概念、思想、策略和机制。结合iputils的具体实现方法,本文将介绍计算机网络方面的相关知识。

   8. 对其他知识的介绍,例如基于linux的多线程编程或linux下socket编程的知识。在分析源码的过程中,不可回避地遇到了这些知识的使用。

1.3       附件说明

    本文基于的源码版本为iputils-s20071127。源代码可以在http://www.linux-ipv6.org/gitweb/gitweb.cgi?p=gitroot/iputils.git中下载。

    在阅读和分析源代码过程中,对代码进行了大量的注释,附件可以在下载http://download.csdn.net/detail/fsdev/4498604。

    为了能够编译通过,定义了rdisc.c需要使用但是源代码中没有定义的宏:

    #define OPEN_MAX   10

    这个宏的意义是程序所能够打开的最大的文件数目。rdisc程序在退到后台之后,需要关闭除了socket文件之外的所有文件,OPEN_MAX宏就是在这里使用的。为了能够输出测试信息,并尽量不修改原程序代码,定义宏:

    #define lixiprintf printf

    所有添加输出信息的部分都使用lixiprintf宏。除了加入注释和以上两个更改外,没有修改程序其他地方。


本文章欢迎转载,请保留原始博客链接http://blog.csdn.net/fsdev/article


热点排行