ns3仿真学习--应用层(1)

本文例子:*/ns-3.29/examples/udp-client-server目录下的udp-client-server.cc文件

网络拓扑:n0结点装有udp客户端应用,n1结点装有udp服务端应用
                                                         n0        n1
                                                         |              |
                                                         =======      LAN
功能:生成一个从no到n1的UDP flows ,n0一共发5次包,间隔为0.2s

实验过程对源代码做了部分修改

1.给两个结点安装了移动模型

//创建移动模型,设置两结点为静态位置
  MobilityHelper nMobility;
  Ptr<ListPositionAllocator> positionAlloc = CreateObject<ListPositionAllocator> ();
  positionAlloc->Add (Vector (0.0, 250.0, 0.0));
  positionAlloc->Add (Vector (500.0, 250.0, 0.0));
  nMobility.SetPositionAllocator (positionAlloc);
  nMobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
  nMobility.Install (n);

2.修改了发包次数(maxPacketCount)和发包时间间隔(interPacketInterval)

 Time interPacketInterval = Seconds (0.2);
 uint32_t maxPacketCount = 5;

3.生成动画以及.pcap格式的文件,以供netanim和wireshark分析。

  csma.EnablePcapAll ("udpcs");
  AnimationInterface anim ("udpclientserver.xml");

结果分析:

用wireshark打开udpcs-0-1.pcap,发现整个过程可分为两部分:

(1)ARP地址解析过程:n0结点采用广播方式发出询问消息(询问10.1.1.2主机对应的mac地址),n1结点收到该消息后发现消息中ip地址与自身ip地址一致,则n1发送应答信息给n0,告诉n0自己的IP和MAC地址。

注: 学习一下ARP协议数据格式:

         ARP(Address ResolutionProtocol,地址解析协议)协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的进行

打开ARP询问消息,发现十六进制数据与ARP消息格式完全符合。

(2)n0发送5个数据包的过程 

           通过wireshark发现整个发包过程和预期效果一致,除此之外也可利用NetAnim打开动画,看到整个发包过程。

 欢迎点赞收藏

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值