Welcome

首页 / 软件开发 / C++ / 运行于以太网的基础协议

运行于以太网的基础协议2010-06-151、引言

前段时间编写了一个网络监听工具。为了分析抓到的数据包,要熟悉各种网络协议。本人痛苦的发现网上很少有集中讲解这方面的文章,而图书大部分讲解得不够仔细,小部分专门研究网络协议的图书又太大,不适合我们的要求。故把常用的以太网协议写出来和大家分享。

2、以太网的特点

以太网采用的是CSMA/CD技术,即带碰撞检测的载波侦听多址访问。在CSMA/CD技术中,如果网络上没有数据,则任何时候都可以将数据传送出去。如果网络被使用,那就要等到网络空闲时再传送。在以太网中传输的数据是无选择的发送到所有网卡的。这就为网络监听创造了条件。

3、以太网数据包

在以太网中,数据是以被称为帧的数据结构体为单位进行交换的。这种数据包结构如下图所示:

报头报文

在以太网桢的报头中包含接收端及发送端的地址,桢的报文部分包含的是数据种类。最后放置的是错去校验和修正码。通常我们抓到的数据包已经去掉了同步码和桢分界符。下面先给出报头部分的定义:

以太网桢报头格式
接收端MAC地址(48位)发送端MAC地址(48位)类型字段(16位)

注意:这里提到的是位,一位就是二进制数据中的一位。通常,一个字节是由8位组成的。

类型字段意义(参考RFC1700)
类型(十六进制)协议
0800IP
0806ARP
8035RARP
809BAppletalk
8137-8138Novell
814CSNMP