使用Pcap发送巨型帧

时间:2014-03-03 19:59:26

标签: pcap winpcap

我有兴趣发送Jumbo Frames,我有两个问题:

1)我似乎无法知道,在实际尝试(并获得错误)之前,我是否可以发送巨型帧。它似乎只有在存在某种类型的网络适配器时才可能(即千兆网卡)。

有没有办法知道我可以通过pcap发送的最大允许数据包而不需要实际发送和失败?

2)我找不到关于pcap如何处理这么大的数据包的任何文档 - 从那时起它似乎可以很好地工作到1536(+ - ),即使使用合适的设备(即千兆卡),流量也不稳定,和错误显示与pcap_sendpacket()函数相关,并且它无法发送数据(错误是通用的,无法发送数据包错误,与大数据包无关或类似)。

有没有人试图使用Pcap发送这么大的数据包?

(我的环境 - 如果重要的话,是Windows,但代码是跨平台的,我希望在Linux上有相同的“问题”)

1 个答案:

答案 0 :(得分:0)

  

有没有办法知道我可以通过pcap发送的最大允许数据包而不需要实际发送和失败?

不是来自pcap。至少在某些平台上,可能可以确定接口MTU,这可能表明是否支持巨型帧(如果MTU是1500,不;如果MTU大于1500,是的,限制是MTU MAC头的+ 14个字节)。可以采用的方式取决于平台,因此在pcap中提供“获取最大数据包大小”调用可能很有用;但是,它目前没有。

  

我找不到任何关于pcap如何处理这种大数据包的文档

pcap通过将这些数据包交给操作系统来处理这些数据包:-)之后发生的事情是操作系统代码的功能。

  

(我的环境 - 如果重要的话,是Windows,但代码是跨平台的,我希望在Linux上有相同的“问题”)

您的代码可能是跨平台的,但libpcap / WinPcap的代码虽然提供了跨平台的API,但绝对不是跨平台的;它在不同的平台上以不同的方式实现非常,因此您可能会或可能不会在各种操作系统上看到相同的问题。