socket与网络完全开发函数库

来源:互联网 发布:sql为列设置默认值 编辑:程序博客网 时间:2024/05/21 08:00

众所周知,基于socket的网络编程已成为当今不可替代的编程方法。这种编程思想将网络通讯当作“文件”描述字进行处理,对这个“网络文件”(即 socket,套接字/套接口)的操作从编程者的角度来讲与普通的文件操作(如读、写、打开、关闭等)大同小异,从而极大地简化了网络程序开发过程。

 

在众多的网络安全程序、工具和软件中都是基于socket设计和开发的。由于在安全程序中通常需要对网络通讯的细节(如连接双 方地址/端口、服务类型、传输控制等)进行检查、处理或控制,象数据包截获、数据包头分析、数据包重写、甚至截断连接等,都几乎在每个网络安全程序中必须 实现。为了简化网络安全程序的编写过程,提高网络安全程序的性能和健壮性,同时使代码更易重用与移植,最好的方法就是将最常用和最繁复的过程函数,如监听 套接口的打开/关闭、数据包截获、数据包构造/发送/接收等,封装起来,以API library的方式提供给开发人员使用。

 

C开发库简介

 

在Unix系统平台上的网络安全工具开发中,目前最为流行的C API library有libnet、libpcap、libnids和libicmp等。它们分别从不同层次和角度提供了不同的功能函数。使网络开发人员能够 忽略网络底层细节的实现,从而专注于程序本身具体功能的设计与开发。其中,

 

* libnet提供的接口函数主要实现和封装了数据包的构造和发送过程。

 

* libpcap提供的接口函数主要实现和封装了与数据包截获有关的过程。

 

* libnids提供的接口函数主要实现了开发网络入侵监测系统所必须的一些结构框架。

 

* libicmp等相对较为简单,它封装的是ICMP数据包的主要处理过程(构造、发送、接收等)。

 

利用这些C函数库的接口,网络安全工具开发人员可以很方便地编写出具有结构化强、健壮性好、可移植性高等特点的程序,如scanner、sniffer、firewall、IDS等。

参考:http://blog.csdn.net/threewells_14/article/details/2066995

0 0
原创粉丝点击