包过滤
在linux系统里装了个网站,想用NF_INET_LOCAL_IN处理访问该网站的数据包,问题是在dport 80看不到任何数据。而NF_INET_LOCAL_OUT则可以实现包过滤,请问是怎么回事啊? 自己找到答案了:tcph = (struct tcphdr *)(skb_network_header(skb) + ip_hdrlen(skb));
之前一直tcph = tcp_hdr(skb);用在NF_INET_LOCAL_OUT上没问题,但用在NF_INET_LOCAL_IN上就不行了。 回复 2# ruanhg
对的。NF 在 LOCAL_IN 出 skb 的 data 才指向 IP hdr,就算你调用 tcp_hdr(),拿到的也应该是 IP hdr。要取 TCP hdr,需要自己通过偏移实现
回复 3# Godbach
Godbach你好!打开一个网页,抓包看到客户端与服务器有很多次会话,那如何将这众多次会话归为一类呢?它们的共同特征在哪儿呀?
谢谢!
回复 4# ruanhg
不明白你说的具体是什么。client 和 server 之间交互的是什么内容,走的什么应用协议,你想怎么归类?
关注中。楼主说的问题看看和我想的问题是不是一样子的。 回复 6# Godbach
http协议,我打开一个网页的时候同时在该网页所在服务器上抓包,wireshark显示有很多数据包,比如最初是tcp三次握手,这就是三个包,接着是客户端发出的get请求,然后是服务器的80端口回给客户端的一大堆报文。
虽然只是一次请求,却包含这么多包,那如何判断这些包都是这次请求的呢? 回复 9# ruanhg
简单的判断呢,就是一个 tcp 连接。此外,http 支持 keep alive 的时候,一个 TCP 连接可以传输多个 transaction。
回复 10# Godbach
哦,真的只有一个TCP连接吗?可以理解成只有一个包吗?那么我只要分析包里的内容就可以是否放行这个TCP请求吗? 回复 11# ruanhg
感觉你的基础概念都有点混乱啊,TCP 连接和包的概念你都清楚吗。
页:
[1]