我的意图是编写一个应用程序。libnids之上的层进程。使用libnidsAPI的原因是因为它可以模拟Linux内核TCP功能。Libnids将返回hlf->count_new,它是上次调用TCP回调函数的字节数。然而,每次有新数据包进入时都会调用tcp_callback,因此hlf->count_new包含单个TCP段。但是,应用程序。层应该接收TCP窗口缓冲区,而不是单独的TCP段。有什么方法可以获取TCP窗口(而不是TCP段)的数据?换句话说,让libnids传递TCP窗口缓冲区数据。提前致谢! 最佳答案 你误会了。TCP窗口
我正在使用libpcap过滤数据包,并使用“tcpsrclocalhost”之类的过滤器。它过滤所有源为本地主机(我的主机)的数据包。当localhost未收到已发送数据包的TCP确认时,localhost将转发该数据包。并非所有被libpcap过滤的数据包都会到达目的地,我需要识别数据包何时是“转发的数据包”。libpcap有什么方法可以识别转发的数据包吗? 最佳答案 据我了解,您正在寻找TCP重传。这些可以在捕获后通过wireshark中的displayfitters找到。这两个应该可以帮助你:可以通过显示过滤器tcp.anal
我想用libpcap抓包但由于以太网header或802.11header的长度可能会有所不同并且IPheader的长度也可能会有所不同,如何确定IPheader和TCPheader的起始字节(指针)另外,如何区分一个包是纯IP包、TCP包还是UDP包?是否有任何API或方法可以做到这一点?谢谢! 最佳答案 当您使用libpcap时,您可以通过直接查看pcap文件头(用于离线捕获)pcap_file_header.linktype或(用于实时和离线)来确定链路层头的大小捕获)来自对pcap_datalink()的调用。大多数情况下,
有些事情让我很困扰:我想区分来自Youtube的数据包和来自维基百科的数据包:它们都通过HTTPS传输,并且都来自端口443。由于它们使用HTTPS传输,因此无法理解它们的负载,我无法进行完整的深度数据包检测:我只能查看以太网、IP和TCP结构header。我可能会查看两个数据包的IP地址源,看看它们实际来自哪里,但要知道它们是来自Youtube还是维基百科,我应该已经知道这两个站点的IP地址。我想弄清楚的是一种通过HTTP流式传输(就像Youtube所做的那样)和简单的HTML传输(维基百科)来判断的方法,而无需调查有效负载。编辑1:在复制视频期间启动的Wiresharksessio
我使用libpcap捕获了一个TCP数据包,我想将整个数据包(不修改)发送到另一台主机上的特定端口(该主机有另一个嗅探器监听该端口)。有什么办法可以做到这一点吗?非常感谢! 最佳答案 您没有具体说明您使用的是哪种编程语言以及到目前为止您尝试过什么。将IP地址字段更改为目标IP,将TCP端口字段更改为您想要的端口。不要忘记更新两个校验和。如果你想要的是TCP转发,Linuxkernelalreadydoesthisforyou. 关于Linux:如何将整个数据包发送到另一台主机上的特定端口
本次实验是基于ubuntu虚拟机。实验目的(1)准备实验环境;(2)libpcap相关函数;(3)掌握数据包的抓包过程(二)实验内容安装libpcap;在虚拟机中安装QT软件;使用libpcap编码,进行数据抓包、过滤及保存实验步骤安装libcapLibpcap简介Libpcap是unix/linux平台下的网络数据包捕获函数包,大多数网络监控软件都以它为基础。Libpcap可以在绝大多数类unix平台下工作。Libpcap是一个网络数据包捕获函数库,功能非常强大,Linux下著名的tcpdump就是以它为基础的。此安装是基于ubuntu虚拟机进行libpcap的安装。安装gcc:sudoap
我正在编写一个程序,该程序使用libpcap捕获数据包并重组TCP流。我的程序只是监控流量,所以我无法控制数据包的接收和传输。我的程序忽略所有非TCP/IP流量。我从ISN计算下一个预期序列号,然后计算连续的SEQ号。我设置了它,以便每个TCP连接都由一个由源IP、源端口、目标IP和目标端口组成的元组唯一标识。一切顺利,直到我收到一个序列号与我预期不同的数据包。我已上传屏幕截图以帮助说明我所描述的内容here.我的问题是:1.“丢失”数据包中的数据在哪里?2.这种情况下的SEQnumberorder如何恢复?3.我能做些什么来处理这些事件。请记住;但是,我并不是在编写遵循TCP的程序。
我想使用libpcap来捕获IP数据包,并且我想解析IPheader和tcpheader。`中有IP头和TCP头结构和IPheader相对容易解析,但是对于TCPheader,因为有tcp选项,常用选项有MSS、SACK(选择性确认)、时间戳、窗口缩放和NOP。我想要一个函数parse_pkt():structtcphdrtcp_hdr;structipip_hdr;parse_pkt(u_char*pcap_packet,structip*p_ip,structtcp*p_tcp);所以调用该函数后,如果我想知道源ip地址、序列号和MSS,scr_ip=ip_hdr.src_ipse
想知道你们中的任何人都可以给我一些评论和见解。在性能方面,我应该使用哪个,jNetPcap还是Jpcap?谢谢! 最佳答案 引用的帖子包含jNetPcap项目所有者公认的有偏见的意见。它几乎不是真正比较的可靠来源。这两个项目之间的一个明显区别是jNetPcap使用JNI访问native代码。PCap4j(http://www.pcap4j.org/)使用JNA访问native代码和“com.sun”JNA兼容库(https://github.com/twall/jna)。此外,最新版本的jNetPcap不能在MacOSX上构建,即使
我有一个带有voip对话的pcap文件,我如何将RTP数据包与其他数据包分开?我可以获取sip数据包,但我无法将RTP数据包与其他数据包区分开来。 最佳答案 搜索RFC3550中定义的RTPheader在你的文件中。或者更好地使用pcap-filter,例如thiswiki(寻找“问:什么是仅捕获SIP和RTP数据包的好过滤器?”)。 关于c++-如何将RTP数据包与其他数据包分开,我们在StackOverflow上找到一个类似的问题: https://sta