网络流量测量软件的设计与实现
摘
要:
为了方便网络编程,
90 年代初,由 Microsoft 联合了其他
几 家 公 司 共 同 制 定 了 一 套
WINDOWS 下 的 网 络 编 程 接 口 , 即
Windows Sockets 规范,它不是一种网络协议,而是一套开放的、支
持多种协议的
Windows 下的网络编程接口。本篇论文主要是介绍了
在
TCP/IP 基础上利用 winsock2 对网卡进行编程,以达到网络流量
监 测 的 目 的 。 论 文 首 先 介 绍 了
TCP/IP 协 议 , 旨 在 介 绍
IP,TCP,UDP 等比较重要的协议。主要是介绍 IP 头,TCP 头,
UDP 头的特点,以便从 IP 头中可以获取源地址,目的地址,协议类
型等信息。在随后的章节中提出了
Socket 的概念,Socket 实际上
提供了一个通信端口使所有拥有
Socket 的端口的计算机之间能够
相互通信,在本论文中主要说明了
socket 的建立,监听和撤销的过
程。具体到程序实现中,对网卡混杂模式的设置是通过原始套接字
(
raw socket)来实现的。为了让原始套接字能接受所有的数据,
还需要通过将
SOCK_RAW 设置成 SIO_RCVALL。对数据包的获取通
过
recv()函数来完成。最后要完成的工作就是对所捕获的 IP 数据包
进行分析以提取出我们所需要的信息。在论文的最后是旨在说明进一
步工作的展开。
关键字:
TCP/IP,Winsock,原始套接字,NetBios
- I -