NS3网络仿真(9): 构建以太网帧
快乐虾
http://blog.csdn.net/lights_joy/
欢迎转载,但请保留作者信息
在NS3使用了一个叫Packet的类来表示一个数据帧,本节尝试用它构造一个以太网帧。
以下是一个典型的ARP请求帧:
我们就用Packet来创建一个同样的帧。
首先创建一个空的数据包:
Ptr<Packet>pkt = Create<Packet>();
接下来加上ARP头:
//加入arp头
ArpHeader ah;
ah.SetRequest(Mac48Address("00:50:56:c0:00:01"),"192.168.24.1",
Mac48Address("00:0c:29:e6:e9:cd"),"192.168.24.129");
pkt->AddHeader(ah);
这里的SetRequest用以设置ARP包的内容。
/**
* \brief Set the ARP request parameters
* \param sourceHardwareAddress the sourcehardware address
* \param sourceProtocolAddress the source IPaddress
* \param destinationHardwareAddress thedestination hardware address (usually the broadcast address)
* \param destinationProtocolAddress thedestination IP address
*/
void SetRequest (AddresssourceHardwareAddress,
Ipv4AddresssourceProtocolAddress,
AddressdestinationHardwareAddress,
Ipv4AddressdestinationProtocolAddress);
在内存中能够非常清楚地看见此操作加入的内容:
接下来为此ARP帧加上以太帧的帧头:
//加入以太网头
EthernetHeader eh;
eh.SetDestination("00:0c:29:e6:e9:cd");
eh.SetSource("00:50:56:c0:00:01");
eh.SetLengthType(ArpL3Protocol::PROT_NUMBER);
pkt->AddHeader(eh);
再看看生成的数据包的内容:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
哈哈。这就和我们从网络上抓下来的包一模一样了!
!
NS3网络仿真(9): 构建以太网帧的更多相关文章
- NS3网络仿真(10): 解析以太网帧
快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载.但请保留作者信息 解析以太网帧的过程是构建以太网帧的逆过程,当我们接收到一个以太网帧时,仍然以上一节中的ARP帧为例 ...
- NS3网络仿真(7): Wifi节点
快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 在上一节中.我们仿真了一个总线型网络,这一节尝试将上一节中的n0变成一个无线的AP.再连上几个节点 ...
- NS3网络仿真(6): 总线型网络
快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载.但请保留作者信息 在NS3提供的第一个演示样例first.py中,模拟了一个点对点的网络,接下来的一个演示样例代码模 ...
- NS3网络仿真(2):first.py
1 安装基本模块 11 安装Python 12 安装PTVS 13 加入对python-279的支持 2 在vs2013下编译NS3 3 编译NetAnim 4 在vs2 ...
- NS3网络仿真(11): ARP
快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 ARP(Address ResolutionProtocol,地址解析协议)协议的基本功能就是通过 ...
- NS3网络仿真(12): ICMPv4协议
快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 ICMP的全称是 Internet ControlMessage Protocol . 其目的就是 ...
- NS3网络仿真(3): NetAnim
快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 在NS3提供的演示样例first.py中,并没有生成NetAnim所须要的xml文件,本节我们尝试 ...
- NS3网络仿真(4): DataRate属性
快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 在first.py中创建了一个点到点的信道,且配置了两个属性: pointToPoint = ns ...
- NS3网络仿真(5): 数据包分析
快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 在我们生成的xml文件里.是不包括生成的数据包的数据的,在我们的脚本中加入以下的语句: point ...
随机推荐
- Apache web服务
1.apache 1> 世界上使用率最高的网站服务器,最高时可达70%:官方网站:apache.org 2> http 超文本协议 HTML超文本标记语言 3> URL 统一资源定位 ...
- CSS--基础结构层叠
权值:通配符*的权值为0,标签和伪元素的权值为1,类选择符,属性选择器或伪类的权值为10,ID选择符的权值为100,内联样式最高为1000.还有一个权值比较特殊--继承也有权值但很低,有的文献提出它只 ...
- Linux使用yum命令安装软件时,连接不了网路报错:ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'"
错误: 解决方案: 在/etc/sysconfig/network-scripts/ifcfg-eth0文件中配置DNS信息: vim /etc/sysconfig/network-scripts/i ...
- 表连接sql执行计划学习
循环嵌套连接(Nested Loop Join) 合并连接(Merge Join) 哈西匹配(Hash Join) 文章:浅谈SQL Server中的三种物理连接操作 循环嵌套,如果内循环列上有索引, ...
- HDU-1020-Encoding,题意不清,其实很水~~
Encoding Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) http:// ...
- websocket个人理解总结
WebSocket 释义:聊天室.服务.套接字.协议 引用:https://www.ibm.com/developerworks/cn/web/1112_huangxa_websocket/index ...
- CPU问题定位与解决
CPU问题定位基本流程: 性能计数器诊断 主要用到的性能计数器 %Process Time 全实例 (主要用于查看当前服务器的CPU 情况) %Process Time sqlservr (主要用 ...
- [codeVS1204] 单词背诵
题目描述 灵梦有n个单词想要背,但她想通过一篇文章中的一段来记住这些单词. 文章由m个单词构成,她想在文章中找出连续的一段,其中包含最多的她想要背的单词(重复的只算一个).并且在背诵的单词量尽量多的情 ...
- 【2018 Multi-University Training Contest 3】
01:https://www.cnblogs.com/myx12345/p/9420198.html 02: 03: 04:https://www.cnblogs.com/myx12345/p/940 ...
- tomcat并发数
Tomcat的最大并发数是可以配置的,实际运用中,最大并发数与硬件性能和CPU数量都有很大关系的.更好的硬件,更多的处理器都会使Tomcat支持更多的并发. Tomcat默认的HTTP实现是采用阻塞式 ...