click文件:
发送:
SendGet(INTERVAL 1)->out1 :: Queue(200) ->
EtherEncap(0X1110,38:f9:d3:2d:b4:64,FF:FF:FF:FF:FF:FF)->
ToDevice(en0);
SendGet是我改装TimeSource(click自带的element)得到的,它主要功能就是发送我固定的包头格式的包。
在wiki中可以看到很多名字里带source的基本都是发包的元素(以一定的速率等等)
使用EtherEncap封装以太帧的头 ,这里我设置的协议字段为 0x1110 (这个只要是标识我设置的包,这个数值可以根据自己的喜好设定,但是需要在一个范围,具体看下面的补充知识点) 目的mac我使用的是广播,也就是在通信范围内的网卡都能收到。
到这里其实已经可以用wireshark抓到包了
我们也可以写一个接受的click
接收:
在另一台机器上写一个click文件可以用来接收
使用 FromDevice(wlan0)来接收,接受之后可以进行一些输出。
补充知识点:
Ethernet V2帧头结构为 6bytes的源地址+6bytes的目标地址+2Bytes 的协议类型字段+数据。 常见协议类型如下: 0800 IP 0806 ARP 0835 RARP 8137 Novell IPX 809b Apple Talk 如果协议类型字段取值为0000-05dc(十进制的0-1500),则该帧就不是Ethernet V2(ARPA)类型了(PR,SD,PAD,FCS这几个数据段我们不用理它 ,它是由网卡自动产生的,我们要理的是DA,SA,TYPE,DATA四个段的内容.)
常见的的类型 DA SA 之后是 TYPE
而如果协议类型字段小于 0x05dc时,该字段变为 Length ,它指明其后数据域的长度,其取值范围为:46-1500。
更加具体的细分可以在这个博客里看到 https://www.cnblogs.com/TigerGOGO/archive/2013/05/28/3103325.html
本文介绍如何使用Click模块实现定制化的网络数据包发送与接收,包括构造特定格式的数据包、利用EtherEncap封装以太帧头及设定广播目标MAC地址等关键技术点。同时,文章还探讨了EthernetV2帧头结构及其协议类型字段的含义,提供了接收端Click配置示例。
4079

被折叠的 条评论
为什么被折叠?



