Important Notice: Our web hosting provider recently started charging us for additional visits, which was unexpected. In response, we're seeking donations. Depending on the situation, we may explore different monetization options for our Community and Expert Contributors. It's crucial to provide more returns for their expertise and offer more Expert Validated Answers or AI Validated Answers. Learn more about our hosting issue here.

Isn that needlessly complicated — why not just extract the ip packets and pass them on?

0
Posted

Isn that needlessly complicated — why not just extract the ip packets and pass them on?

0

It’s not that simple under Windows. The Windows sockets API has some serious limitations. Raw sockets in general (except ICMP) do not work on any Windows flavor before Windows 2000. Further, the crucial function setsockopt( …, IP_HDRINCL, … ) does not work. Curiously enough, it might be because of these limitations/bugs that Windows “Tracert” utility uses ICMP echo request packets instead of UDP packets as most traceroute utilities do. Further, there is no way to tell that an external host is attempting to connect to an arbitrary local port. That’s why you must tell Basilisk II what ports to listen to if you want to run server software on your Mac. It would be possible to write a TDI filter driver, an NDIS intermediate driver or a Winsock layered service provider to handle the raw packet traffic. None of these three options is a trivial one, let alone portable.

Related Questions

What is your question?

*Sadly, we had to bring back ads too. Hopefully more targeted.

Experts123