在原始套接字之上实现协议并使用 O_DIRECT

发布于 2024-11-02 10:46:00 字数 531 浏览 2 评论 0原文

所以,我试图在原始套接字之上制作一个 TCP 的玩具(bash?)实现,以更好地理解该协议。

我知道 /dev/raw 已被弃用,取而代之的是 O_DIRECT (为什么?),并且在我的内核中未启用。

$ zgrep -i raw /proc/config.gz
CONFIG_IP_NF_RAW=m
CONFIG_IP6_NF_RAW=m
CONFIG_SERIO_RAW=m
# CONFIG_RAW_DRIVER is not set
CONFIG_SND_RAWMIDI=m
CONFIG_SND_RAWMIDI_SEQ=m
CONFIG_HIDRAW=y
CONFIG_USB_SERIAL_SIERRAWIRELESS=m
CONFIG_USB_GADGET_VBUS_DRAW=2
# CONFIG_LINE6_USB_RAW is not set
CONFIG_ATH6KL_HTC_RAW_INTERFACE=y

我找不到有关如何在没有使用 O_DIRECT 的 Linux TCP 实现的情况下发送数据的信息,我想我应该使用 O_DIRECT。

So, I am trying to make a toy (bash?) implementation of TCP on top of raw sockets, to better understand the protocol.

I understand that /dev/raw is deprecated in favor of O_DIRECT (why?) and is not enabled in my kernel.

$ zgrep -i raw /proc/config.gz
CONFIG_IP_NF_RAW=m
CONFIG_IP6_NF_RAW=m
CONFIG_SERIO_RAW=m
# CONFIG_RAW_DRIVER is not set
CONFIG_SND_RAWMIDI=m
CONFIG_SND_RAWMIDI_SEQ=m
CONFIG_HIDRAW=y
CONFIG_USB_SERIAL_SIERRAWIRELESS=m
CONFIG_USB_GADGET_VBUS_DRAW=2
# CONFIG_LINE6_USB_RAW is not set
CONFIG_ATH6KL_HTC_RAW_INTERFACE=y

I cannot find information on how to send data without linux's TCP implementation using O_DIRECT which is what I guess I should use.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

荒路情人 2024-11-09 10:46:00

这是一篇有关 FreeBSD 7.0 和 Linux 2.6 中原始套接字的信息论文。

SOCK_RAW揭秘

SOCK_RAW Demystified 是我写的一篇关于解释 FreeBSD 7.0 和 Linux 2.6 内核中原始套接字机制实现的论文。它深入研究了网络内部结构,展示了这种强大的套接字类型的详细信息以及它在幕后的工作原理。

http://sock-raw.org/papers.html

如果您没有/dev/tcp 在 Bash 中,您可能需要查看 Richard Stevens 的 sock 程序 (http://www.icir.org/christian/sock.html)。

Here's an informative paper on raw sockets in FreeBSD 7.0 and Linux 2.6.

SOCK_RAW Demystified

SOCK_RAW Demystified is a paper I wrote about explaining the implementation of the raw sockets mechanism in the kernels of FreeBSD 7.0 and Linux 2.6. It delves into network internals showing the details of this powerful socket type and how it works behind the scene.

http://sock-raw.org/papers.html

If you do not have /dev/tcp in Bash, you may want to look at Richard Stevens' sock program (http://www.icir.org/christian/sock.html).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文