Date: Tue, 20 Mar 2018 20:55:25 -0700 From: Matt Joras <mjoras@freebsd.org> To: Eugene Grosbein <eugen@grosbein.net> Cc: Michael Tuexen <michael.tuexen@lurchi.franken.de>, FreeBSD Net <freebsd-net@freebsd.org>, "Ronald F. Guilmette" <rfg@tristatelogic.com> Subject: Re: Raw Sockets: Two Questions Message-ID: <CADdTf%2BjOXsZa_eMnhvgNusbvNtGxt164vMJvWaXbXyfG8apThw@mail.gmail.com> In-Reply-To: <5AB1D4D2.8000001@grosbein.net> References: <98551.1521576540@segfault.tristatelogic.com> <5AB1A9C5.9050707@grosbein.net> <FE503C2B-11C9-4937-8035-0793DCBFE177@lurchi.franken.de> <5AB1D4D2.8000001@grosbein.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Mar 20, 2018 at 8:43 PM, Eugene Grosbein <eugen@grosbein.net> wrote: > On 21.03.2018 08:03, Michael Tuexen wrote: > >>> On 21. Mar 2018, at 00:39, Eugene Grosbein <eugen@grosbein.net> wrote: >>> >>> 21.03.2018 3:09, Ronald F. Guilmette wrote: >>> >>>> I'm going to be doing some stuff with raw sockets pretty soon, and >>>> while scrounging around, looking for some nice coding examples, I >>>> found the following very curious comment on one particular message >>>> board: >>>> >>>> https://stackoverflow.com/questions/7048448/raw-sockets-on-bsd-operating-systems >>>> >>>> "Using raw sockets isn't hard but it's not entirely portable. For >>>> instance, both in BSD and in Linux you can send whatever you want, >>>> but in BSD you can't receive anything that has a handler (like TCP >>>> and UDP)." >>>> >>>> So, first question: Is the above comment actually true & accurate? >>> >>> Not for FreeBSD. >> Are you saying that I can receive on a raw socket SCTP, TCP and UDP packets? > > No. I'm saying one can send/receive RAW IP packets no matter are they SCTP, TCP or UDP > or something else by means of libdnet. It uses raw sockets and BPF internally > but hides this complexity. nmap uses it just fine. > Saying "Not for FreeBSD" is needlessly confusing and not accurate. In the common parlance "raw sockets" does not refer to libdnet, which is not a part of the FreeBSD base system. You cannot use traditional raw sockets on FreeBSD to receive traditional protocol packets. The only way to do that in the base system is to use a BPF handle directly. Matt
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CADdTf%2BjOXsZa_eMnhvgNusbvNtGxt164vMJvWaXbXyfG8apThw>