I'm trying to read the data from HTTP stream with TCP inside Linux kernel. I'm able to get most data from skb_buff
here. However, if the server pushes data to the client without requests, the data won't be copied to user space so that I cannot find it any more.
Using Wireshark, I can find the additional data as a single packet normally. Therefore I think these data should go into kernel somewhere, even if they are not requested by the user space. Is it possible to find all the data when they are retrieved from Network Interface like Wireshark did? If so, where should I find them?
Thanks! Any ideas are appreciable.
EDIT: It should be different from another similar question. I even couldn't get the skb
instance containing the data I need because the client didn't request it. Therefore such data won't be copied into user space. Thanks for pointing that question to me but I still need to find the correct skb
instance first. I suspect I should catch the data somewhere when the data is retrieved from network interface.