Implement custom network protocol for local processes
Hi, How can one implement custom header network protocol. I mean header that wraps regular network packets like ethernet, udp, tcp, etc... The sending of this custom packets is done between processes running locally. ie. I get a Ethernet packet, inspect it, then add my custom header and forward it to another process that listens to a socket, and expect to get data wrapped with this custom header. What is a good way to go about and implement this thing? Thanks, Kfir
On Mon, Jan 17, 2011 at 4:24 PM, Kfir Lavi <lavi.kfir@gmail.com> wrote:
Hi, How can one implement custom header network protocol. I mean header that wraps regular network packets like ethernet, udp, tcp, etc... The sending of this custom packets is done between processes running locally. ie. I get a Ethernet packet, inspect it, then add my custom header and forward it to another process that listens to a socket, and expect to get data wrapped with this custom header.
What is a good way to go about and implement this thing?
Have you looked at the tun/tap drivers? Also, try asking this question on a network specific list. -- John
On Mon, Jan 17, 2011 at 11:43 PM, John Mahoney <jmahoney@waav.com> wrote:
On Mon, Jan 17, 2011 at 4:24 PM, Kfir Lavi <lavi.kfir@gmail.com> wrote:
Hi, How can one implement custom header network protocol. I mean header that wraps regular network packets like ethernet, udp, tcp, etc... The sending of this custom packets is done between processes running locally. ie. I get a Ethernet packet, inspect it, then add my custom header and forward it to another process that listens to a socket, and expect to get data wrapped with this custom header.
What is a good way to go about and implement this thing?
Have you looked at the tun/tap drivers?
Yes I did, they can work for me, but I need to modify the code. They expect certain protocols and are not passing anything. It is a bit ugly to go this way.
Also, try asking this question on a network specific list.
-- John
Kfir, On Mon, Jan 17, 2011 at 23:24 +0200, Kfir Lavi wrote:
Hi, How can one implement custom header network protocol. I mean header that wraps regular network packets like ethernet, udp, tcp, etc... The sending of this custom packets is done between processes running locally. ie. I get a Ethernet packet, inspect it, then add my custom header and forward it to another process that listens to a socket, and expect to get data wrapped with this custom header.
You might want to use datagram-oriented UNIX socket to communicate with client processes. Also you have to understand what do you want - getting UDP packets on specific port doesn't require anything special, just bind()'ing to this port. But you can get TCP segments only with SOCK_RAW socket. Thanks, -- Vasiliy
participants (3)
-
John Mahoney -
Kfir Lavi -
Vasiliy Kulikov