关于使用TC和IPTABLES模拟丢包的区别

这段时间在做一些有关广域网优化的工作,需要模拟丢包环境进行网络测试,自己写了一个收UDP包与发UDP包的程序,并统计丢包率,基本方法是接收端使用epoll,延时1s的时间,发送端发的udp包中第一个字节写上seq,接收端根据收到的seq置flag数组的相应位置为1,接收端在epoll_wait返回-1时统计flag数组中1的个数来统计丢包率。

在使用TC模拟丢包的过程中发现,在包长度为500B和1000B的时候,统计出的丢包率与tc设置的基本相同,但是当设置为2000B的时候,丢包率统计出大约是设置的2倍,在设置为5000B的时候,统计出的大约是设置的3倍。

tc

后使用iptables模拟了一下,即使在数据包较长的时候,丢包率统计出的和设置的也大致相同。

iptables

 

我在想是不是tc模拟的时候是针对网卡操作,模拟出来的是丢帧,然后接收端收到丢了帧的udp包就直接丢了。2000B的时候需要2帧,然后我这边在tc设置5%的时候一般统计出来10%左右的丢包,我在想是不是两个udp各丢一帧,ip层两个udp包都丢了,就体现出来两倍的丢包率。具体是不是这个原因我还得询问一下老师或者其他了解的人员。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值