Tcpdpriv,你让我情何以堪?!

    很早以前,唐老师让我在Tcpdpriv的基础上实现一个报文转发功能。很简单的一个程序,实现了,运行的很好。

    可是,前段时间突然又出现问题了。转发过去的UDP数据被wireshark解析成了Packet Cable Lawful Intercept(PCLI)+IP/IPv6。也就是说,本来是【IP头+UDP头+UDP数据】格式的报文变成了【IP头+UDP头+PCLI+IP/IPv6报文】。

  原因找了很多,刚开始以为是报文被合法截获了,或者是底层网络链路被改动了。可是后面又发现跟底层链路没关系,因为就本地的虚拟机向本地发包都会有这个问题,而且换个网络环境试验同样出现这个问题。后面又以为是wireshark的问题,安装了低版本的wireshark仍然不行。然后又以为是程序的问题,重新写个简单的UDP发送接收程序,问题依旧。究竟是什么原因呢???程序没有问题,链路没有问题,软件没有问题...

    上CSDN发个贴求助,有人建议换个捕获软件试试。于是我从本机向freebSD发UDP包,在freebSD上用TCPDUMP抓包,结果显示抓到UDP包了!而不再是错误的IP包。可是把这个包保存下来用wireshark察看,问题依旧。莫非真是捕获软件的问题?可是之前用的好好的啊!

    因为每个转发的报文都对应着一个端口不可达的ICMP反馈报文,我就想先解决这个问题吧,看是不是因为接受端没开接收程序所以出现ICMP报文。于是写了接收程序,ICMP消失。于是想再换个端口看会不会再有ICMP。于是奇迹就出现了!接收端突然就能收到正常的UDP报文了,一切都正常了,没有PCLI,没有IPv6包,没有IP包!我勒个去,我就把端口从9000换到9001而已啊!而且这个问题刚出来的时候我就已经实验过了换端口的,那时候还是不行的呀!现在突然又行了,你这不是坑爹吗?!

    但是,问题总归是解决了,至少表面上是解决了,虽然现在仍然不知道原因所在。。。

    收获还是有的:更加熟悉了TCPDUMP,现在可以用TCPDUMP抓各种各样的包;更加熟悉了网络报文的格式和层次。虽然这些都比较基础,但总归是收获吧。唉。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值