以太网数据包概述
计算机网络在传输数据时,为了保证所有共享网络资源的计算机都能公平、迅速地使用网络,通常把数据分割成若干小块作为传输单位进行发送,这样的传输单位我们通常称之为包,也叫“数据包”。以太网数据包有四种分类,接下来一一介绍。
1.Ethernet II协议简介:以太网是当今现有局域网采用的最通用的通信协议标准。该标准定义了在局域网中采用的电缆类型和信号处理方法。EthernetII由DEC,Intel和Xerox在1982年公布其标准,Etherent II协议主要更改了EthernetI的电气特性和物理接口,在帧格式上并无变化。Etherent II采用CSMA/CD的媒体接入和广播机制1。
2.Ethernet 802.2协议简介:Ethernet 802.2协议是IEEE正式的802.3标准,它由Ethernet II发展而来。实质是Ethernet802.2将EthernetII帧头的协议类型字段替换为帧长度字段,并加入了LLC-802.2头,用以标记上层协议。LLC头包含目的服务访问点(DSAP)、源服务访问点(SSAP)和控制(Control)字段1。
3.Ethernet 802.3协议简介:Ethernet802.3是1983年Novell发布其Netware/86网络套件时采用的私有以太网帧格式,该格式以当时尚未正式发布的 IEEE802.3标准为基础;但是当两年以后IEEE正式发布802.3标准时情况发生了变化(IEEE在802.3帧头中又加入了802.2LLC 头),这使得Novell的Ethernet 802.3协议与正式的IEEE 802.3标准互不兼容;Ethernet802.3只支持IPX/SPX协议,是目前所用的最普通的一种帧格式,在802.2之前是IPX网络事实上的标准帧类型1。
4.Ethernet SNAP协议简介:Ethernet SNAP协议是IEEE为保证在802.2LLC上支持更多的上层协议的同时更好地支持IP协议而发布的标准,与802.3/802.2 LLC一样802.3/802.2SNAP也带有LLC头,但是扩展了LLC属性,新添加了一个2字节的协议类型域(同时将SAP的值置为AA),从而使其可以标识更多的上层协议类型;另外添加了一个3字节的厂商代码字段用于标记不同的组织。RFC 1042定义了IP报文在802.2网络中的封装方法和ARP协议在802.2SANP中的实现方法1。
以太网数据包传输方式近年来,以太网承载的信息量成倍增长,对传输带宽的需求更加迫切。早期通信运营商对通信基础设施上进行了很大的投入,大量采用了 SDH 和 PDH 等通信设备,这些设备提供了丰富的 E1 线路资源,但是由于当时技术的限制,很多没有提供以太网线路接口。如果能利用这些现有电信 E1 通信资源来有效地传输以太网业务, 就能节约通信基础设施建设成本,加快网络组建进度,增加用户覆盖范围。 目前采用的技术有 Ethernet over SDH 和 Ethernet over PDH,直接将以太网数据映射进 SDH 或 PDH 设备内的虚容器中,特点是传输开销少、实现简单,但设备复杂,实现成本较高,难以普及,不便用于广大普通用户的接入。还有一种简单的解决方案是以太网网桥,优点是技术简单,成本低廉,利用一路 E1 电路提供以太网接入,但是随着宽带业务的飞速发展,需要传输的以太网的数据量越来越大, 传统的单路 E1 以太网网桥很难满足广大用户的需求。 这里提出了一种以太网数据包分段传输技术来解决这种问题2。
技术原理以太网数据包分段传输技术系统主要由以太网物理层、E1 线路接口单元以及FPGA三部分实现。 以太网物理层采用的是 100M/10M 自适应物理层芯片,主要功能是把以太网物理层信号转换为 MAC 层的MII 信号送给 FPGA, 并把 FPGA 产生的以太网MAC信号转换为物理层信号发送出去。E1 线路接口分为接收端和发送端, 接收端的主要功能是从 E1 线路中恢复时钟,进行时钟抖动衰减处理,提取数据,然后对数据进行 HDB3 解码;发送端的主要功能是对发送数据进行 HDB3 编码,脉冲成型以及线路驱动。 FPGA 承担了技术最主要的处理和转换功能,分成 2 个模块,第一个模块是以太网数据包分段模块,第二个模块是以太网数据包恢复模块。
以太网数据包分段模块的主要功能是把以太网数据包分成数据包段落,并为每个数据包段落添加段落开销, 组成以太网数据包段落 (Ethernet Package Paragraph,EPP)然后进行 HDLC 封装,通过 E1 线路接口发送出去。模块在 FPGA 内部实现,分为 4 个部分,分别是数据包接收存储单元、数据包分段及开销插入单元、E1 线路接口检测单元、HDLC 封装单元。
以太网数据包恢复模块的功能是从 E1 数据流中将 HDLC 封装的 EPP 提取出来,然后根据 EPP 中的段落开销将 EPP 恢复成以太网数据包,通过以太网物理层发送出去。 模块在 FPGA 内部实现,分为 4 部分,即HDLC 检测单元、EPP 调度单元、数据包恢复单元和数据包排队发送单元2。
技术特点总体来说,这项技术具有以下特点:
①灵活: 不需要改变以太网和 E1 线路的现有结构,只需在用户终端加入一个转换设备。 技术可以根据现有的 E1 线路资源将以太网数据包分段成一定长度、一定数量的 EPP,并且每个 EPP 的长度可以不相同,这样可以充分利用现有的 E1 通信线路资源。
②可靠:不改变原来的以太网协议和以太网包的内容,只是对以太网数据包进行了分段以及封装。 接收时可以从接收到任意的 EPP 开始恢复以太网数据包。技术对EPP中的开销采用了CCITT 标准的CRC16 校验,并且对恢复出来的完整以太网数据包进行 CRC32 校验,确保恢复出来以太网数据包的正确性。
③高效:对每个 EPP 添加7个字节的 EPP开销,选择适当的分段长度分割以太网数据包,可以使开销所占的比例很小2。
以太网数据包捕获技术数据包捕获概述目前有两种方法可以从网络中捕获数据包,一种是采用专用硬件,另一种是利用普通计算机与网络连接的通用硬件——网络适配器,即网卡,由软件来完成数据包的捕获。虽然由软件来捕获数据包的方法在性能上比不上专用硬件,但其实现成本相对更低,且易于修改和更新。基于以上原因,采用软件的捕获方法得到了广泛的使用和认同。
从网络捕获数据包是所有网络安全产品实现中非常重要的一环,它是安全产品其它功能的基础,而实现网络捕包的一个最重要的条件就是要能够接收网络上所有的数据包。要满足此条件就必须了解数据包在网络上的传输方式。计算机网络从传输方式的角度分为两类:采用点到点连接的网络和采用广播方式的网络。广域网中一般采用点到点连接方式,而几乎所有的局域网都以广播方式作为通信的基础,网上的站点共享信道,一个站点发出的数据包,其他站点均能收到,也就是说,任一台计算机都可以接收到网络中同一个共享域的所有的数据通讯2。
以太网捕获数据包实现原理在以太网上通讯的每张网卡上都拥有一个全球唯一的物理地址,也叫 MAC 地址。该地址是一个 48 比特的二进制数。在以太网卡中内建有一个数据包过滤器。该数据包过滤器的作用是保留以本身网卡的 MAC 地址为通讯目的的数据包和广播数据包,丢弃所有其它无关的数据包,以免 CPU 对无关的数据报作无谓的处理。这是以太网卡在一般情况下的工作方式。因此在正常情况下,一个合法的网络接口应该只响应这样的两种数据包(帧):
①帧的目标地址具有和本地网络接口相匹配的硬件地址。
②帧的目标地址是“广播地址”(代表所有的接口地址),格式为“FF- FF- FF- FF- FF- FF”。
在接收到上面两种情况的数据帧时,网卡通过 CPU 产生中断,操作系统进行中断处理后将帧中包含的数据传送给上层系统进行进一步处理。在其他情况下数据帧将被丢弃而不作处理。
要想捕获到流经网卡的不属于本主机的数据,必须绕过系统正常工作的处理机制,直接访问网络底层。我们可以把网卡的状态设为“混杂”(promis cuous)模式,当网卡工作在这种“混杂”模式时,该网卡就具备了“广播地址”,它对所接收到的每一个帧都产生一个硬件中断以提醒操作系统处理流经该网卡上的每一个报文包。操作系统通过直接访问链路层,截获相关数据,由应用程序而非上层协议(如IP 层、TCP 层)对数据过滤处理,这样就可以捕获到流经网卡的所有数据。
数据包常规的传输路径依次为网卡、设备驱动层、数据链路层、网络层、传输层、最后到达应用程序。而包捕获机制是在数据链路层增加一个旁路处理,对发送和接收到的数据包做过滤、缓冲等相关处理,最后直接传递到应用程序2。