小编Kon*_*ris的帖子

如何在 C 中嗅探数据包时查找 TCP 重传

我写了一个简单的源文件,它可以使用 C 中的 libpcap 库读取 pcap 文件。我可以一个一个地解析数据包并分析它们。我希望能够推断出我解析的 TCP 数据包是否是 TCP 重传。在广泛搜索网络后,我得出结论,为此,我需要跟踪流量行为,这意味着还要分析以前收到的数据包。

我真正想要实现的是,在基本层面上,tcp.analysis.retransmission过滤器在wireshark中所做的事情。

这是一个 MRE,它读取 pcap 文件并分析通过 IPv4 发送的 TCP 数据包。该功能find_retransmissions是分析数据包的地方。

#include <pcap.h>
#include <stdio.h>
#include <netinet/ip.h>
#include <netinet/tcp.h>
#include <sys/socket.h>
#include <stdlib.h>
#include <net/ethernet.h>
#include <string.h>

void process_packet(u_char *,const struct pcap_pkthdr * , const u_char *);
void find_retransmissions(const u_char * , int );

int main()
{
    pcap_t *handle;
    char errbuff[PCAP_ERRBUF_SIZE];
    handle = pcap_open_offline("smallFlows.pcap", errbuff);
    pcap_loop(handle, -1, process_packet, NULL);
}

void process_packet(u_char *args,
                    const struct pcap_pkthdr * …
Run Code Online (Sandbox Code Playgroud)

c tcp pcap libpcap retransmit-timeout

5
推荐指数
1
解决办法
2024
查看次数

标签 统计

c ×1

libpcap ×1

pcap ×1

retransmit-timeout ×1

tcp ×1